:root{--bg:#e7ebe9;--surface:#f8faf9;--ink:#1a2220;--muted:#5a6762;--line:#cbd3cf;--accent:#1e5c86;--label:#f3cb45;--label-ink:#1a2220}@media (prefers-color-scheme:dark){:root{--bg:#121715;--surface:#1b2220;--ink:#e4eae7;--muted:#96a39e;--line:#2d3833;--accent:#74aedb;--label:#ddb53a;--label-ink:#16130a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);color:var(--ink);margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.45}main{max-width:1080px;margin-inline:auto;padding:16px}.brand{background:var(--label);color:var(--label-ink);letter-spacing:.04em;border-radius:3px;margin:0;padding:0 8px;font-size:24px;display:inline-block}.muted{color:var(--muted)}.panel{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;gap:12px;padding:16px;display:flex}.panel h2{margin:0}.btn{border:1px solid var(--line);background:var(--surface);min-height:44px;color:inherit;font:inherit;cursor:pointer;border-radius:8px;padding:10px 14px;font-weight:600}.btn.primary{border-color:var(--accent);background:var(--accent);color:var(--surface)}.link{min-height:40px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;font-weight:600}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.signin{text-align:center;max-width:420px;margin:10vh auto 0}.signin .brand{align-self:center}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:root{--bad:#a92a1e;--radius:8px;--mono:ui-monospace, Consolas, monospace}@media (prefers-color-scheme:dark){:root{--bad:#f2877c}}button,input,select,textarea{font:inherit;color:inherit}input[type=text],input[type=search],select,textarea{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:100%;min-height:44px;padding:10px 12px}textarea{resize:vertical;min-height:64px}.btn.danger{border-color:var(--bad);color:var(--bad)}.btn.danger.armed{background:var(--bad);color:var(--surface)}.btn:disabled{opacity:.5;cursor:default}.top .who{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.inv-layout{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.inv-main{min-width:0}.places{gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.places-h{display:none}.place,.chip{border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:8px;min-height:40px;padding:6px 12px;font-size:14px;display:flex}.place{justify-content:space-between;font-weight:600}.place span,.chip span{color:var(--muted);font-family:var(--mono);font-size:12px;font-weight:500}.place[aria-current=true],.chip[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--bg)}.place[aria-current=true] span,.chip[aria-pressed=true] span{color:inherit;opacity:.7}.place-manage{min-height:40px;color:var(--accent);white-space:nowrap;cursor:pointer;background:0 0;border:0;flex:none;padding:6px 8px;font-size:14px;font-weight:600}@media (width>=860px){.inv-layout{grid-template-columns:210px minmax(0,1fr);gap:28px}.places{flex-direction:column;align-self:start;gap:2px;position:sticky;top:16px;overflow:visible}.places-h{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:6px 10px;font-size:13px;font-weight:700;display:block}.place{border-radius:var(--radius);background:0 0;border-color:#0000;padding:8px 10px}.place-manage{text-align:left}}.manage{margin-bottom:14px}.manage h2,.group-h{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:13px;font-weight:700}.group-h{margin:18px 0 6px}.pm-row{align-items:center;gap:6px;display:flex}.pm-row input{flex:auto;min-width:0}.pm-row small{color:var(--muted);white-space:nowrap;font-size:12.5px}.icon-btn{border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:6px;flex:none;width:40px;height:40px;font-size:18px;line-height:1}.icon-btn:disabled{opacity:.35;cursor:default}.toolbar{flex-wrap:wrap;gap:8px;display:flex}.toolbar input{flex:220px}.chips{gap:6px;padding-block:12px;display:flex;overflow-x:auto}.items{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.item{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);align-items:center;gap:8px;padding:6px;display:flex}.item-main{text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:12px;min-width:0;padding:2px;display:flex}.thumb{background:var(--label);width:52px;height:52px;color:var(--label-ink);letter-spacing:.06em;border-radius:5px;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%}.item-text{flex-direction:column;min-width:0;display:flex}.item-name{overflow-wrap:anywhere;font-weight:600}.item-specs{font-family:var(--mono);opacity:.85;overflow-wrap:anywhere;font-size:13px}.item-loc{color:var(--muted);overflow-wrap:anywhere;font-size:12.5px}.stepper{flex:none;align-items:center;gap:2px;display:flex}.stepper button{border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:6px;width:40px;height:40px;font-size:20px;font-weight:600;line-height:1}.qty{text-align:center;flex-direction:column;min-width:56px;line-height:1.1;display:flex}.qty b{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:16px}.qty small{color:var(--muted);font-size:11.5px}.empty{max-width:52ch;color:var(--muted);text-align:center;margin-inline:auto;padding:32px 16px}.empty strong{color:var(--ink);margin-bottom:6px;font-size:20px;display:block}.empty .btn{margin-top:12px}.welcome{margin-bottom:14px}.welcome ol{margin:0;padding-left:20px}dialog{background:var(--surface);width:min(580px,100% - 24px);max-height:calc(100% - 24px);color:var(--ink);border:0;border-radius:12px;padding:0;box-shadow:0 20px 60px #00000059}dialog::backdrop{background:#0a0e0c8c}.dlg{flex-direction:column;max-height:calc(100dvh - 24px);display:flex}.dlg-h,.dlg-f{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex}.dlg-h{border-bottom:1px solid var(--line)}.dlg-h h2{margin:0;font-size:22px}.dlg-f{border-top:1px solid var(--line)}.dlg-b{grid-template-columns:1fr 1fr;gap:12px;padding:16px;display:grid;overflow:auto}.dlg-b .full{grid-column:1/-1}@media (width<=480px){.dlg-b{grid-template-columns:1fr}}.field{min-width:0;color:var(--muted);flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.field small{font-weight:400}.photo{align-items:center;gap:12px;display:flex}.photo-prev{border:1px dashed var(--line);background:var(--bg);width:88px;height:88px;color:var(--muted);text-align:center;border-radius:8px;flex:none;place-items:center;font-size:12px;display:grid;overflow:hidden}.photo-prev img{object-fit:cover;width:100%;height:100%}.photo-actions{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.filebtn{position:relative;overflow:hidden}.filebtn input{opacity:0;cursor:pointer;position:absolute;inset:0}.stock-rows{flex-direction:column;gap:10px;display:flex}.srow{grid-template-columns:minmax(0,1.1fr) 80px minmax(0,1.4fr) 40px;align-items:center;gap:6px;display:grid}.pick-chips{flex-wrap:wrap;grid-column:1/-1;gap:6px;display:flex}.srow .estimate{min-height:40px;color:var(--muted);grid-column:1/-1;align-items:center;gap:8px;font-size:13px;display:flex}.srow .estimate input{width:20px;height:20px}@media (width<=520px){.srow{grid-template-columns:minmax(0,1fr) 80px 40px}.srow .spot{grid-area:2/1/auto/3}.srow .icon-btn{grid-area:1/3}}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stock-total{color:var(--muted);margin-left:auto;font-size:13px}.move{border-radius:var(--radius);background:var(--bg);grid-template-columns:minmax(0,1fr) 80px minmax(0,1fr) auto;align-items:center;gap:6px;padding:8px;display:grid}.move p{color:var(--muted);grid-column:1/-1;margin:0;font-size:13px}@media (width<=520px){.move{grid-template-columns:minmax(0,1fr) 80px}.move .btn{grid-column:1/-1}}.err{color:var(--bad);font-size:13px}#toast{bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:50;background:var(--ink);max-width:calc(100% - 32px);color:var(--bg);border-radius:8px;padding:10px 16px;font-size:14px;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000040}.chip.to-complete{border-color:var(--label)}.drafts{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.draft-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;cursor:pointer;flex-direction:column;gap:4px;width:100%;padding:8px;display:flex}.draft-photo{aspect-ratio:4/3;background:var(--bg);border-radius:6px;place-items:center;display:grid;overflow:hidden}.draft-photo img{object-fit:cover;width:100%;height:100%}.prow{grid-template-columns:minmax(0,1fr) 100px auto 56px 40px;align-items:center;gap:6px;display:grid}.prow.panel{grid-template-columns:minmax(0,1fr) 72px auto 72px auto 48px 40px}.prow .spot{grid-column:1/-1}.prow .times{color:var(--muted)}@media (width<=520px){.prow{grid-template-columns:minmax(0,1fr) auto 56px 40px}.prow.panel{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto 48px 40px}.prow select{grid-column:1/-1}}.quick-matches{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.quick-match{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);text-align:left;cursor:pointer;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:56px;padding:6px 8px;display:grid}.quick-match .thumb{width:48px;height:48px}.quick-match small{color:var(--muted);display:block}.quick-target{border:1px solid var(--accent);border-radius:var(--radius);padding:10px}.quick-target p{margin:0 0 4px}.quick{max-width:580px;margin-inline:auto}.quick-h{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.quick-h h1{margin:0;font-size:22px}.quick-qty{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.quick-form .estimate{min-height:40px;color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.quick-form .estimate input{width:20px;height:20px}:root{--ok:#23704a;--ok-bg:#dcefe3;--warn:#94600f;--warn-bg:#f7e7c6;--bad-bg:#f6dcd8;--out:#5a6762;--out-bg:#e2e6e4}@media (prefers-color-scheme:dark){:root{--ok:#6ccb95;--ok-bg:#183326;--warn:#e8b45a;--warn-bg:#3a2c12;--bad-bg:#3d1c19;--out:#a4b0ab;--out-bg:#262e2b}}.tabs{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:3px;display:flex}.tabs a{min-height:40px;color:inherit;border-radius:999px;align-items:center;gap:6px;padding:8px 16px;font-weight:600;text-decoration:none;display:flex}.tabs a[aria-selected=true]{background:var(--ink);color:var(--bg)}.count{font-family:var(--mono);opacity:.7;font-size:12px}.newproj{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.newproj input{flex:220px}.plist{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.plist .empty{grid-column:1/-1}.pcard{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);height:100%;color:inherit;flex-direction:column;gap:8px;padding:14px;text-decoration:none;display:flex}.pcard h3{overflow-wrap:anywhere;margin:0;font-size:20px}.pmeta{color:var(--muted);font-size:12.5px}.mini{flex-wrap:wrap;gap:6px;display:flex}.pill{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:12.5px;font-weight:600;display:inline-flex}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.partial,.pill.to-count{background:var(--warn-bg);color:var(--warn)}.pill.missing{background:var(--bad-bg);color:var(--bad)}.pill.outside{background:var(--out-bg);color:var(--out)}.pill.done{background:var(--ink);color:var(--bg)}.bar{background:var(--line);border-radius:3px;height:6px;display:flex;overflow:hidden}.bar i{display:block}.bar .ok{background:var(--ok)}.bar .partial,.bar .to-count{background:var(--warn)}.bar .missing{background:var(--bad)}.bar .outside{background:var(--out)}.project .back{align-items:center;text-decoration:none;display:inline-flex}.pd-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}input[type=text].title-input{background:0 0;border-color:#0000;flex:260px;font-size:26px;font-weight:700}input[type=text].title-input:hover,input[type=text].title-input:focus{border-color:var(--line);background:var(--surface)}.project textarea{margin-top:6px}.summary{flex-direction:column;gap:8px;margin-block:14px 6px;display:flex}.foot{border-top:1px solid var(--line);margin-top:28px;padding-top:14px}.menu{position:relative}.menu-btn{font-size:20px}.menu-list{z-index:20;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-direction:column;min-width:200px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000002e}.menu-list a,.menu-list button{min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;padding:8px 12px;text-decoration:none;display:flex}.menu-list a:hover,.menu-list button:hover{background:var(--bg)}.menu-who{padding:6px 12px;font-size:13px}.settings{max-width:480px}.settings input{max-width:120px}.pd-grid{grid-template-columns:minmax(0,1fr);gap:20px;margin-top:10px;display:grid}@media (width>=860px){.pd-grid{grid-template-columns:minmax(0,1fr) 320px}}.section-h{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:0 0 8px;font-size:15px;font-weight:700}.lineform{grid-template-columns:minmax(0,1fr) 84px 110px;gap:6px;margin-bottom:8px;display:grid}.lineform .btn{grid-column:1/-1}@media (width>=600px){.lineform{grid-template-columns:minmax(0,1fr) 84px 110px auto}.lineform .btn{grid-column:auto}}.lineform+.pick-chips{margin-bottom:8px}.chip.free{color:var(--muted);font-style:italic}.linked{color:var(--ok);margin:0 0 8px;font-size:13px}.lines{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.line{border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--radius);background:var(--surface);grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"main qty del""pill pill pill""extra extra extra";align-items:center;gap:6px 10px;padding:10px 8px 10px 12px;display:grid}.line.k-ok{border-left-color:var(--ok)}.line.k-partial,.line.k-to-count{border-left-color:var(--warn)}.line.k-missing{border-left-color:var(--bad)}.line.k-outside{border-left-color:var(--out)}.line-main{grid-area:main;min-width:0}.line-name{overflow-wrap:anywhere;font-weight:600}.line-sub{color:var(--muted);overflow-wrap:anywhere;font-size:12.5px}.line-sub .m{font-family:var(--mono)}.line .pill{white-space:normal;grid-area:pill;justify-self:start}.line-extra{grid-area:extra}.line-qty{color:var(--muted);grid-area:qty;align-items:center;gap:4px;font-size:13px;display:flex}.line-qty input[type=text]{width:70px;min-height:40px;font-family:var(--mono);text-align:right;padding:6px 8px}.line-del{width:40px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;grid-area:del;font-size:20px}.line-del:hover{border-color:var(--line)}.side{flex-direction:column;gap:16px;display:flex}.count-box{border-radius:var(--radius);background:var(--bg);flex-direction:column;gap:8px;padding:8px;display:flex}.count-row{grid-template-columns:minmax(0,1fr) 100px;align-items:center;gap:8px;font-size:14px;display:grid}.count-row small{color:var(--muted)}.shop{flex-direction:column;gap:4px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.shop li{border-bottom:1px dashed var(--line);align-items:center;gap:8px;padding-bottom:4px;display:flex}.shop li b{font-family:var(--mono);white-space:nowrap;margin-left:auto}.shop li.checked .shop-check span{color:var(--muted);text-decoration:line-through}.shop-check{overflow-wrap:anywhere;cursor:pointer;flex:auto;align-items:center;gap:8px;min-width:0;min-height:40px;display:flex}.shop-check input{flex:none;width:20px;height:20px}.shop-add{grid-template-columns:minmax(0,1fr) 70px auto;gap:6px;display:grid}.dlg-b.purchase{grid-template-columns:minmax(0,1fr)}.purchase-row{border-bottom:1px dashed var(--line);flex-direction:column;gap:8px;padding-bottom:12px;display:flex}.purchase-fields{grid-template-columns:minmax(0,1fr) 90px;gap:6px;display:grid}.lineform.length{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media (width>=600px){.lineform.length{grid-template-columns:minmax(0,1fr) 160px auto}}.line-cuts input[type=text]{text-align:left;width:150px}@media (width<=480px){.line:has(.line-cuts){grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main del""qty qty""pill pill""extra extra"}.line-cuts,.line-cuts input[type=text]{width:100%}}.cut-plan{margin:4px 0 0;padding-left:20px;font-size:13px}.line-buy{color:var(--bad);margin:4px 0 0;font-size:13px}.pill.check{background:var(--warn-bg);color:var(--warn)}.bar .check{background:var(--warn)}.line.k-check{border-left-color:var(--warn)}.dlg-b.done{grid-template-columns:minmax(0,1fr)}.dlg-b.done section{flex-direction:column;gap:8px;display:flex}.done-row{grid-template-columns:minmax(0,1fr) 100px;align-items:center;gap:8px;font-size:14px;display:grid}.done-row small{color:var(--muted)}.done-list{margin:0;padding-left:20px;font-size:14px}.done-add{grid-template-columns:minmax(0,1fr);gap:6px;display:grid}.done-scrap{border-bottom:1px dashed var(--line);grid-template-columns:minmax(0,1fr) 90px auto;align-items:center;gap:6px;padding-bottom:8px;font-size:14px;display:grid}.done-scrap select,.done-scrap input[data-scrap-spot]{grid-column:1/-1}.done-scrap:has([data-scrap-width]){grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.done-scrap:has([data-scrap-width])>span{grid-column:1/-1}.done-scrap.thrown span{color:var(--muted);text-decoration:line-through}.done-throw,.done-missing{align-items:center;gap:6px;min-height:40px;display:flex}.done-bad{border:1px solid var(--bad);border-radius:var(--radius);background:var(--bad-bg);color:var(--bad);padding:8px}.done-projects{margin-top:20px}.done-projects summary{min-height:40px;color:var(--muted);cursor:pointer;padding:8px 0;font-weight:700}.done-title{margin:0;font-size:26px}.ops{flex-direction:column;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.op{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;padding:10px;display:flex}.op details{flex:260px;min-width:0}.op summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:6px;min-height:40px;display:flex}.op-label{overflow-wrap:anywhere}.op.undone .op-label{color:var(--muted);text-decoration:line-through}.shop-cuts{color:var(--muted);display:block}@media (width<=480px){.top{flex-wrap:nowrap;gap:8px}.top .brand{font-size:18px}.tabs a{padding:8px 10px}}.purchase-fields:has(input[aria-label^=Barres],input[aria-label^=Panneaux]){grid-template-columns:minmax(0,1fr)}.done-list li+li{margin-top:6px}.done-detail{color:var(--muted);font-size:13px;display:block}
