@font-face{font-family:Silent Brush;src:url(/polices/silent-brush.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:optional}.app-root{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", "Courier New", monospace;--font-marker:"Marker Felt", "Ink Free", "Segoe Print", "Bradley Hand", "Comic Sans MS", cursive;--font-titre:"Silent Brush", var(--font-marker);--bg:#e4d4b0;--surface:#fbf5e9;--surface-2:#f1e4c8;--ink:#2a241d;--ink-soft:#6b5d46;--border:#c7ad7c;--red:#b8431b;--red-bg:#f6dfcf;--green:#4c7a52;--green-bg:#dcead9;--blue:#395670;--blue-bg:#dce6ed;--amber:#a66a16;--amber-bg:#f3e3c4;--radius:10px;--shadow:0 2px 6px #2a241d26;font-family:var(--font-sans);color:var(--ink);background:var(--bg);box-sizing:border-box;background-image:radial-gradient(circle at 1px 1px,#2a241d0d 1px,#0000 0),radial-gradient(circle at 2px 3px,#2a241d09 .8px,#0000 0),repeating-linear-gradient(135deg,#00000005 0 2px,#0000 2px 7px);background-size:3px 3px,5px 5px,auto;min-height:100vh}.app-root *{box-sizing:border-box}.shell{min-height:100vh;padding-bottom:calc(78px + env(safe-area-inset-bottom));flex-direction:column;display:flex}.main-col{flex:1;min-width:0;padding:0 12px}@media (width>=1020px){.shell{flex-direction:row;align-items:flex-start;gap:32px;max-width:1600px;margin:0 auto;padding:28px clamp(24px,4vw,56px) 40px}.main-col{padding:0}}.sidebar{display:none}@media (width>=1020px){.sidebar{flex-direction:column;flex-shrink:0;align-self:flex-start;gap:22px;width:240px;display:flex;position:sticky;top:24px}}.brand{align-items:center;gap:10px;display:flex}.brand h1{font-family:var(--font-titre);color:var(--red);letter-spacing:.5px;margin:0;font-size:21px;font-weight:700}.brand .icon-wrap{background:var(--amber-bg);color:var(--amber);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex;transform:rotate(-6deg)}.side-nav{flex-direction:column;gap:4px;display:flex}.nav-btn{text-align:left;width:100%;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:14px;font-weight:600;display:flex}.nav-btn:hover{background:#0000000a}.nav-btn.active{background:var(--red-bg);color:var(--red)}.nav-btn .badge{font-family:var(--font-mono);background:#00000014;border-radius:10px;margin-left:auto;padding:2px 7px;font-size:10px}.side-foot{border-top:1px dashed var(--border);flex-direction:column;align-items:flex-start;gap:10px;padding-top:14px;display:flex}.countdown{font-family:var(--font-mono);background:var(--red-bg);color:var(--red);border:1px solid var(--red);white-space:nowrap;border-radius:20px;padding:5px 12px;font-size:12px;font-weight:600;transform:rotate(-2deg)}.settings-btn{background:var(--surface-2);border:1px solid var(--border);cursor:pointer;color:var(--ink);white-space:nowrap;border-radius:8px;align-items:center;gap:8px;padding:9px 12px;font-family:inherit;font-size:13px;font-weight:600;display:flex}.link-btn{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:0;font-family:inherit;font-size:12px;display:flex}.mobile-header{z-index:10;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin:12px 0 10px;padding:12px 14px;position:sticky;top:0}.mobile-header .brand h1{font-size:18px}.mobile-header .brand .icon-wrap{width:30px;height:30px}.mobile-header-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.mobile-header-row{align-items:center;gap:8px;margin-top:10px;display:flex}.mobile-header-row .settings-btn{margin-left:auto;padding:7px 12px;font-size:12.5px}.mobile-header-row .countdown{padding:5px 10px;font-size:12px;transform:none}@media (width>=1020px){.mobile-header{display:none}}.mobile-nav{z-index:20;background:var(--surface);border-top:1px solid var(--border);padding:6px 4px calc(8px + env(safe-area-inset-bottom));justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 6px #2a241d1f}@media (width>=1020px){.mobile-nav{display:none}}.mobile-nav-btn{cursor:pointer;min-width:64px;min-height:48px;color:var(--ink-soft);background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;padding:6px 10px;font-family:inherit;display:flex}.mobile-nav-btn.active{color:var(--red)}.mobile-nav-btn .label{font-size:10.5px;font-weight:600}.nav-icon{display:flex;position:relative}.nav-dot{font-family:var(--font-mono);color:var(--surface);text-align:center;border-radius:8px;min-width:14px;padding:1px 4px;font-size:9px;position:absolute;top:-6px;right:-10px}.nav-dot.red{background:var(--red)}.nav-dot.blue{background:var(--blue)}.modal-overlay{z-index:40;background:#2a241d73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:400px;padding:26px 24px;box-shadow:0 8px 24px #2a241d4d}.modal-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-head h2{font-family:var(--font-marker);color:var(--red);margin:0;font-size:20px;font-weight:400}.icon-btn{cursor:pointer;color:var(--ink-soft);background:0 0;border:none;padding:4px;display:flex}.field-label{color:var(--ink-soft);margin-bottom:5px;font-size:12px;font-weight:600;display:block}.field-input{width:100%;font-family:var(--font-sans);border:1px solid var(--border);background:var(--surface-2);color:var(--ink);border-radius:8px;margin-bottom:16px;padding:9px 10px;font-size:14px}.field-input.mono{font-family:var(--font-mono)}.modal-foot{border-top:1px dashed var(--border);justify-content:space-between;align-items:center;gap:10px;padding-top:14px;display:flex}.btn-danger-link{color:var(--red);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:12.5px;text-decoration:underline}.btn-ok{background:var(--ink);color:var(--surface);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:9px 18px;font-family:inherit;font-size:13px;font-weight:600}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 14px}@media (width>=1020px){.panel{padding:22px 24px}}.empty{color:var(--ink-soft);border:1px dashed var(--border);text-align:center;border-radius:8px;padding:18px;font-size:13px}.add-panel{border-bottom:1px dashed var(--border);margin-bottom:16px;padding-bottom:16px}.add-row{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.add-row input[type=text],.add-row select{font-family:var(--font-sans);border:1px solid var(--border);background:var(--surface-2);color:var(--ink);border-radius:6px;padding:8px 10px;font-size:13px}.add-row input[list]{min-width:130px}.add-row input[type=text]:not([list]){flex:1;min-width:160px}.suggestion-list{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:4px 10px;margin-bottom:10px;padding:10px;display:grid}.suggestion-row{align-items:center;gap:6px;padding:3px 0;display:flex}.suggestion-label{cursor:pointer;flex:1;font-size:12.5px}.qty-input{font-family:var(--font-mono);border:1px dashed var(--border);background:var(--surface);width:40px;color:var(--ink);border-radius:5px;padding:2px 4px;font-size:12px}.custom-item-row{gap:8px;margin-bottom:10px;display:flex}.custom-item-row input{font-family:var(--font-sans);border:1px solid var(--border);background:var(--surface-2);border-radius:6px;flex:1;padding:7px 10px;font-size:13px}.btn-add-sm{background:var(--surface-2);border:1px solid var(--border);cursor:pointer;color:var(--ink-soft);border-radius:6px;justify-content:center;align-items:center;padding:0 10px;display:flex}.pending-list{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.pending-chip{background:var(--green-bg);color:var(--green);border:1px solid var(--green);border-radius:20px;align-items:center;gap:5px;padding:4px 6px 4px 10px;font-size:11.5px;display:flex}.pending-chip button{cursor:pointer;color:var(--green);background:0 0;border:none;display:flex}.toggle-chip{font-family:var(--font-sans);cursor:pointer;border:1px solid var(--border);background:var(--surface-2);color:var(--ink-soft);-webkit-user-select:none;user-select:none;border-radius:20px;padding:7px 12px;font-size:12px;font-weight:600}.toggle-chip.on.fragile{background:var(--red-bg);color:var(--red);border-color:var(--red)}.toggle-chip.on.priority{background:var(--amber-bg);color:var(--amber);border-color:var(--amber)}.btn-add{font-family:var(--font-sans);background:var(--ink);color:var(--surface);cursor:pointer;border:none;border-radius:6px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;display:flex}.search-row{align-items:center;gap:8px;margin-bottom:12px;display:flex}.search-row input{font-family:var(--font-sans);border:1px solid var(--border);background:var(--surface-2);border-radius:20px;flex:1;padding:7px 12px 7px 32px;font-size:13px}.search-wrap{flex:1;position:relative}.search-wrap svg{color:var(--ink-soft);position:absolute;top:50%;left:10px;transform:translateY(-50%)}.room-group{margin-bottom:14px}.room-head{font-family:var(--font-sans);color:var(--ink-soft);text-transform:uppercase;letter-spacing:.4px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.room-head-label{cursor:pointer;align-items:center;gap:6px;min-width:0;display:flex}.room-head-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-dot{border-radius:50%;flex-shrink:0}.room-head .room-dot{width:8px;height:8px}.room-progress{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;height:4px;margin-bottom:8px;overflow:hidden}.room-progress span{background:var(--green);height:100%;transition:width .3s;display:block}.code-input{font-family:var(--font-mono);text-align:center;text-transform:uppercase;letter-spacing:.5px;border:1px dashed var(--border);background:var(--surface-2);width:58px;color:var(--ink);border-radius:5px;padding:3px 4px;font-size:11px;font-weight:600}.carton-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.carton-card{background:var(--surface-2);border:1.5px dashed var(--border);border-radius:8px;padding:10px 10px 8px;transition:transform .18s,box-shadow .18s;position:relative;overflow:hidden}.carton-card:hover{transform:translateY(-4px);box-shadow:0 10px 18px #2a241d38}.carton-card:before{content:"";background:#ffffff8c;border:1px solid #0000000d;width:36px;height:14px;position:absolute;top:-6px;left:14px;transform:rotate(-4deg)}.carton-card:after{content:"";background:#ffffff80;width:12px;height:28px;position:absolute;top:-4px;left:50%;transform:translate(-50%)rotate(4deg)}.dog-ear{border-top:0 solid #0000;border-bottom:14px solid #2a241d1f;border-left:14px solid #0000;border-right:0 solid #0000;width:0;height:0;position:absolute;bottom:0;right:0}.carton-card.arrived{opacity:.55}.carton-head{justify-content:space-between;align-items:center;gap:6px;display:flex}.carton-num{align-items:center;gap:6px;min-width:0;display:flex}.carton-num .room-dot{width:7px;height:7px}.carton-label{font-family:var(--font-mono);letter-spacing:.5px;color:var(--red);border:2px solid var(--red);white-space:nowrap;border-radius:3px;padding:1px 6px;font-size:12px;font-weight:700;transform:rotate(-2deg)}.ship-line{font-family:var(--font-mono);color:var(--ink-soft);border:1px dashed var(--border);white-space:nowrap;text-overflow:ellipsis;background:#ffffff80;border-radius:4px;margin-top:8px;padding:3px 5px;font-size:9.5px;overflow:hidden}.carton-content{color:var(--ink-soft);word-break:break-word;min-height:16px;margin:4px 0 8px;font-size:12.5px}.carton-tags{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.stamp{font-family:var(--font-marker);cursor:pointer;border-radius:4px;padding:2px 6px;font-size:10px;display:inline-block}.stamp.fragile{color:var(--red);border:1.5px solid var(--red);transform:rotate(-3deg)}.stamp.priority{color:var(--amber);border:1.5px solid var(--amber);transform:rotate(2deg)}.carton-foot{justify-content:space-between;align-items:center;display:flex}.arrive-check{color:var(--green);cursor:pointer;align-items:center;gap:5px;font-size:11.5px;font-weight:600;display:flex}.arrive-check .box{border:1.5px solid var(--green);background:var(--surface);border-radius:3px;justify-content:center;align-items:center;width:16px;height:16px;transition:transform .25s cubic-bezier(.34,1.56,.64,1),background .2s;display:flex}.carton-card.arrived .arrive-check .box{background:var(--green);color:#fff;transform:scale(1.12)rotate(-6deg)}.empty-box{text-align:center;border:1px dashed var(--border);color:var(--ink-soft);border-radius:10px;padding:28px 18px;font-size:13px}.empty-draw{width:80px;height:56px;margin:0 auto 12px;position:relative}.empty-draw .corps{background:var(--surface-2);border:1.5px solid var(--border);border-radius:0 0 4px 4px;width:80px;height:40px;position:absolute;bottom:0;left:0}.empty-draw .corps:before,.empty-draw .corps:after{content:"";background:var(--border);width:2px;height:40px;position:absolute;top:0}.empty-draw .corps:before{left:8px}.empty-draw .corps:after{right:8px}.empty-draw .rabat{background:var(--surface-2);border:1.5px solid var(--border);border-radius:3px;width:44px;height:16px;position:absolute;top:0}.empty-draw .rabat.gauche{transform-origin:100% 100%;left:-2px;transform:rotate(-24deg)}.empty-draw .rabat.droite{transform-origin:0 100%;right:-2px;transform:rotate(24deg)}.del-btn{cursor:pointer;color:var(--ink-soft);opacity:.6;background:0 0;border:none}.del-btn:hover{opacity:1;color:var(--red)}.progress-bar-outer{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;height:8px;margin-bottom:14px;overflow:hidden}.progress-bar-inner{background:var(--green);height:100%;transition:width .3s}.progress-label{color:var(--ink-soft);font-size:12px;font-family:var(--font-mono);margin-bottom:6px}.task-row{border-bottom:1px solid var(--surface-2);align-items:center;gap:10px;padding:8px 4px;font-size:13.5px;display:flex}.task-row.done .task-label{color:var(--ink-soft);text-decoration:line-through}.task-check{border:1.5px solid var(--ink-soft);cursor:pointer;background:var(--surface);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.task-row.done .task-check{background:var(--green);border-color:var(--green);color:#fff}.task-label{flex:1}.section-title{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.4px;color:var(--blue);margin:18px 0 6px;font-size:13px;font-weight:700}.section-title:first-child{margin-top:0}.add-task-row{gap:8px;margin-top:12px;display:flex}.add-task-row input{font-family:var(--font-sans);border:1px solid var(--border);background:var(--surface-2);border-radius:6px;flex:1;padding:8px 10px;font-size:13px}.timeline{flex-direction:column;gap:0;display:flex}.milestone-row{border-left:3px solid var(--border);align-items:center;gap:10px;padding:10px 4px 10px 14px;display:flex;position:relative}.milestone-row.overdue{border-left-color:var(--red)}.milestone-row.done{border-left-color:var(--green)}.milestone-date{font-family:var(--font-mono);min-width:70px;color:var(--ink-soft);font-size:12px;font-weight:600}.milestone-row.overdue .milestone-date{color:var(--red)}.milestone-label{flex:1;font-size:13.5px}.milestone-row.done .milestone-label{color:var(--ink-soft);text-decoration:line-through}.milestone-days{color:var(--ink-soft);font-size:11px;font-family:var(--font-mono)}.date-input-sm{font-family:var(--font-mono);border:1px dashed var(--border);background:var(--surface-2);border-radius:5px;width:118px;padding:3px 5px;font-size:12px}.loading-screen{min-height:100vh;color:var(--ink-soft);justify-content:center;align-items:center;padding:20px;font-size:13px;display:flex}.login-screen{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;width:100%;max-width:360px;padding:28px 24px}.login-card h1{font-family:var(--font-titre);color:var(--ink);margin:0 0 6px;font-size:26px}.login-card p{color:var(--ink-soft);margin:0 0 18px;font-size:13px}.login-input{width:100%;font-family:var(--font-sans);color:var(--ink);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:11px 12px;font-size:15px}.login-btn{width:100%;font-family:var(--font-sans);color:var(--surface);background:var(--ink);border-radius:var(--radius);cursor:pointer;border:none;padding:11px;font-size:15px;font-weight:600}.login-btn:disabled{opacity:.5;cursor:default}.login-error{color:var(--red);background:var(--red-bg);border-radius:var(--radius);margin-top:12px;padding:8px 10px;font-size:13px}.sync-banner{font-size:12px;font-family:var(--font-mono);border-radius:var(--radius);align-items:center;gap:8px;margin-bottom:12px;padding:7px 12px;display:flex}.sync-banner.offline{color:var(--amber);background:var(--amber-bg)}.sync-banner.syncing{color:var(--blue);background:var(--blue-bg)}.sync-banner.error{color:var(--red);background:var(--red-bg)}.sync-banner.warning{color:var(--amber);background:var(--amber-bg)}.pending-dot{background:var(--amber);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-left:6px;display:inline-block}
