:root{--paper: #f6f7f9;--card: #fff;--ink: #1b222a;--muted: #5c6772;--line: #e3e7ec;--accent: #2563eb;--accent-soft: #eaf0fe;--good: #1e7a4e;--bad: #c0392b;--hover: #eceff3;--row-hover: #f8fafc;--row-open: #f4f7fb;--row-line: #eef1f4;--chip: #eef1f4;--input-line: #cfd6dd;--btn-hover: #f2f5f8;--warn-soft: #fff6d6;--warn-ink: #7a5c00;--clone-soft: #7c5cff22;--clone-line: #7c5cff33;--clone-ink: #5b3fd6;--shadow-back: rgba(20,28,38,.45)}:root[data-theme=dark]{--paper: #14181d;--card: #1c2229;--ink: #e8ecf0;--muted: #94a0ac;--line: #2a323c;--accent: #5b8ef5;--accent-soft: #1d2a45;--good: #4cb782;--bad: #e0705f;--hover: #242c35;--row-hover: #212932;--row-open: #232e3b;--row-line: #232b34;--chip: #262e37;--input-line: #3a444f;--btn-hover: #242c35;--warn-soft: #332b12;--warn-ink: #d9b44a;--clone-soft: #7c5cff2e;--clone-line: #7c5cff4d;--clone-ink: #a493f0;--shadow-back: rgba(0,0,0,.6)}:root[data-theme=dark] .modal{box-shadow:0 10px 40px #00000080}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.45}.layout{max-width:1200px;margin:0 auto;padding:0 16px 48px}.brand{font-size:20px;font-weight:800;letter-spacing:-.01em}.brand small{color:var(--muted);font-weight:400;font-size:12px;margin-left:8px}.shell{display:flex;min-height:100vh}.sidebar{width:232px;flex-shrink:0;position:sticky;top:var(--banner-h);align-self:flex-start;height:calc(100vh - var(--banner-h));display:flex;flex-direction:column;background:var(--card);border-right:1px solid var(--line);padding:10px 8px 0}.sidebar.mini{width:64px}.sb-brand{font-weight:800;font-size:20px;padding:6px 12px 10px;letter-spacing:-.01em;white-space:nowrap;cursor:pointer;border-radius:8px;-webkit-user-select:none;user-select:none}.sb-brand:hover{color:var(--accent)}.sb-brand:focus-visible{outline:2px solid var(--accent);outline-offset:0}.sb-brand small{color:var(--muted);font-weight:400;font-size:11px;margin-left:6px}.sidebar.mini .sb-brand{text-align:center;padding:4px 0 10px}.sidebar.mini .sb-brand small{display:none}.sb-nav{display:flex;flex-direction:column;gap:1px;overflow-y:auto;flex:1}.sb-nav a{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;color:var(--muted);text-decoration:none;font-size:16px;font-weight:500;white-space:nowrap}.sb-nav a svg{flex-shrink:0}.sb-nav a:hover{background:var(--hover);color:var(--ink)}.sb-nav a.active{background:var(--accent);color:#fff}.sidebar.mini .sb-nav a{padding:8px 12px}.sidebar.mini .sb-label{display:none}.sb-search{margin-top:auto;padding:6px 12px}.sb-search-row{display:flex;align-items:center;gap:10px;color:var(--muted)}.sb-search .picker-list{top:auto;bottom:calc(100% + 6px);width:300px;right:auto}.sb-foot{display:flex;align-items:center;justify-content:space-between;padding:8px 12px 10px}.sidebar .ghostbtn{min-width:0;min-height:0}.sidebar.mini .sb-foot{flex-direction:column-reverse;align-items:flex-start;gap:10px}.ghostbtn{border:none;background:transparent;color:var(--muted);cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-size:16px;font-weight:600;font-family:inherit;min-width:32px;min-height:32px}.ghostbtn:hover{color:var(--ink)}.ghostbtn:focus-visible{outline:2px solid var(--accent);outline-offset:0}.main-col{flex:1;min-width:0;padding:0 20px 48px}.main-col>.inner{max-width:1240px;margin:0 auto}.topbar{display:flex;align-items:center;gap:12px;padding:10px 0;flex-wrap:wrap}.userbox{margin-left:auto;display:flex;gap:10px;align-items:center;color:var(--muted);font-size:12px}.cards{display:flex;gap:12px;flex-wrap:wrap;margin:6px 0 18px}.stat{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px 18px;min-width:128px}.stat b{display:block;font-size:20px;font-variant-numeric:tabular-nums}.stat span{font-size:12px;color:var(--muted)}.panel{background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden}.panel+.panel{margin-top:14px}.panel-scroll{overflow:auto;max-height:64vh}.tbl{border-collapse:collapse;width:100%}.tbl th{text-align:left;padding:7px 12px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--card);z-index:1}.tbl td{padding:7px 12px;border-bottom:1px solid var(--row-line);font-size:14px;vertical-align:top}.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:var(--row-hover)}.tbl tr.open td{background:var(--row-open)}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.neg{color:var(--bad)}.dim{color:var(--muted)}.sub{background:var(--row-hover)}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.input{padding:7px 12px;font-size:14px;border:1px solid var(--input-line);border-radius:8px;background:var(--card);color:var(--ink)}.input:focus{outline:2px solid var(--accent);outline-offset:0}.btn{padding:8px 16px;font-size:14px;border:1px solid var(--input-line);background:var(--card);color:var(--ink);border-radius:8px;cursor:pointer}.btn:hover{background:var(--btn-hover)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.badge{display:inline-block;font-size:12px;border-radius:4px;padding:2px 8px;background:var(--chip);color:var(--muted);white-space:nowrap}.tabs{display:inline-flex;gap:2px;padding:3px;background:var(--chip);border-radius:8px;margin-bottom:12px;flex-wrap:wrap}.tabs button{padding:5px 12px;font-size:14px;border:1px solid transparent;background:transparent;border-radius:6px;cursor:pointer;color:var(--muted)}.tabs button:hover{color:var(--ink)}.tabs button.active{background:var(--card);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #00000024}h2.page{font-size:20px;margin:10px 0 12px}.empty{padding:28px;text-align:center;color:var(--muted)}.modal-back{position:fixed;inset:0;background:var(--shadow-back);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;z-index:50;overflow:auto}.modal{background:var(--card);border-radius:8px;padding:20px 22px;width:100%;max-width:680px;box-shadow:0 10px 40px #0003}.modal h3{margin:0 0 14px;font-size:18px}.form-row{display:flex;gap:10px;margin-bottom:10px;flex-wrap:wrap;align-items:center}.form-row label{font-size:12px;color:var(--muted);min-width:90px}.form-row select,.form-row .input{flex:1;min-width:160px}select.input{appearance:auto}.picker{position:relative;flex:1}.picker-list{position:absolute;top:100%;left:0;right:0;background:var(--card);border:1px solid var(--line);border-radius:8px;max-height:220px;overflow:auto;z-index:10;box-shadow:0 6px 20px #0000001f}.picker-list div{padding:7px 12px;cursor:pointer;font-size:14px}.picker-list div:hover{background:var(--accent-soft)}.lines-tbl td{padding:4px 6px}.err{color:var(--bad);font-size:12px;margin:8px 0 0}.labels-sheet{display:flex;flex-wrap:wrap;gap:4mm;background:#fff;padding:6mm}.label{width:58mm;min-height:40mm;border:1px dashed #ccc;padding:2.5mm;display:flex;flex-direction:column;align-items:center;gap:1mm;text-align:center;background:#fff;color:#000}.label-name{font-size:10.5px;font-weight:600;line-height:1.2}.label-art{font-size:9px;color:#333}.label-price{font-size:15px;font-weight:800}.label svg{max-width:100%;height:auto}@media print{.no-print,.topbar{display:none!important}body{background:#fff}.layout{max-width:none;padding:0}.label{border:none;page-break-inside:avoid}}@media(max-width:720px){.shell{flex-direction:column}.sidebar,.sidebar.mini{position:static;width:100%;height:auto;flex-direction:row;align-items:center;border-right:none;border-bottom:1px solid var(--line);padding:6px 8px;gap:2px}.sb-brand,.sidebar.mini .sb-brand{padding:0 8px;font-size:14px}.sb-brand small{display:none}.sb-nav,.sidebar.mini .sb-nav{flex-direction:row;overflow-x:auto;-webkit-overflow-scrolling:touch}.sb-nav a,.sidebar.mini .sb-nav a{padding:6px 8px;font-size:12px;gap:5px}.sidebar.mini .sb-label{display:inline}.sb-foot{margin:0 0 0 auto;flex-direction:row;padding:0 4px;gap:2px}.sb-foot .ghostbtn svg{width:28px;height:28px}.main-col{padding:0 12px 40px}.topbar{gap:8px;padding:8px 0}.cards{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.stat{min-width:118px;flex:0 0 auto}.panel-scroll{max-height:70vh}.tbl{min-width:560px}.modal{padding:14px}h2.page{font-size:18px}}.size-58x40 .label{width:58mm;min-height:40mm}.size-58x30 .label{width:58mm;min-height:30mm}.size-58x30 .label-name{font-size:9.5px}.size-43x25 .label{width:43mm;min-height:25mm;padding:1.5mm}.size-43x25 .label-name{font-size:8px}.size-43x25 .label-price{font-size:12px}.tabs.sub button{font-size:12px;padding:4px 10px}select,textarea{color:var(--ink)}select{background:var(--card)}:root{--banner-h: 0px}html.has-banner{--banner-h: 30px}html.has-banner body{padding-top:30px}.vgroup{margin-bottom:12px;padding:0 16px 10px}.vsticky{position:sticky;top:var(--banner-h);background:var(--card);z-index:2;margin:0 -16px 6px;padding:10px 16px 6px;font-size:14px;border-radius:8px 8px 0 0}@media(prefers-reduced-motion:reduce){.vsticky{position:static}}.vnum{cursor:default;-webkit-user-select:none;user-select:none}.chip{display:inline-block;font-size:11px;border-radius:4px;padding:1px 7px;margin-left:8px;vertical-align:1px;background:var(--accent-soft);color:var(--accent)}.chip.ok{background:#178a431f;color:#178a43}.ch-row{display:flex;gap:10px;align-items:flex-start;padding:3px 0;font-size:13px;line-height:1.35;overflow-wrap:anywhere}.ch-row.has-card{cursor:pointer;border-radius:6px}.ch-row.has-card:hover{background:#1c5cab12}:root[data-theme=dark] .ch-row.has-card:hover{background:#7fb2ef1a}.ch-row.ch-edited{border-left:2px solid var(--accent);padding-left:6px}.ch-tag{width:18px;text-align:center;flex-shrink:0;cursor:pointer;font-size:14px;line-height:1.3}.ch-dash{width:18px;text-align:center;flex-shrink:0;color:var(--muted)}.ch-text{flex:1}.cardm{opacity:.5;margin-left:6px;font-size:12px}.ch-row:hover .cardm{opacity:1;color:var(--accent)}.rv-box{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:1px solid var(--line);border-radius:4px;font-size:12px;font-weight:700;cursor:pointer;flex-shrink:0;margin-top:1px;-webkit-user-select:none;user-select:none}.rv-note{font-size:11.5px;margin-left:8px}.rv-shots{font-size:11.5px;margin-left:8px;color:var(--accent)}.rvlog-mark{margin-left:6px;cursor:pointer;font-size:12px;opacity:.7}.tkbadge{display:inline-block;background:var(--accent-soft);color:var(--accent);border-radius:4px;padding:0 6px;margin:0 3px;font-size:11.5px;cursor:pointer;white-space:nowrap}.btn.chf{font-size:12.5px;padding:5px 10px}.btn.chf.on{border-color:var(--accent);color:var(--accent)}.sx-wrap{position:relative;display:inline-block}.sx{position:absolute;right:8px;top:50%;transform:translateY(-50%);cursor:pointer;color:var(--muted);font-size:12px}.kanban{display:flex;gap:12px;overflow-x:auto;align-items:flex-start;padding-bottom:8px}.kcol{flex:0 0 250px;padding:12px 14px;border-radius:8px}.kprog{height:6px;background:var(--chip);border-radius:3px;overflow:hidden}.kprog span{display:block;height:100%;background:#178a43}.kcard{display:flex;gap:8px;align-items:flex-start;font-size:12px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;margin-bottom:6px;cursor:pointer}.kcard.done{background:#178a4314;border-color:#178a4340}.kcard.wip{background:#e0a80012;border-color:#e0a8004d}.drawer{position:fixed;top:var(--banner-h);right:0;bottom:0;width:min(560px,92vw);background:var(--card);border-left:1px solid var(--line);box-shadow:-8px 0 30px #00000026;z-index:55;display:flex;flex-direction:column}.drawer.full{width:100vw;border-left:none}.drawer-head{display:flex;gap:8px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.drawer-body{padding:14px 16px;overflow:auto}.tkico{width:30px;height:30px;padding:0;display:inline-flex;align-items:center;justify-content:center}.note{background:var(--row-hover);border-radius:8px;padding:10px 12px;font-size:12px;margin:8px 0}.build-banner{position:fixed;top:0;left:0;right:0;height:30px;z-index:220;display:flex;align-items:center;justify-content:center;background:#c0392b;color:#fff;font-size:12.5px;cursor:pointer;box-shadow:0 3px 14px #b400184d}.build-banner:hover{filter:brightness(1.08)}.build-banner b{margin:0 4px}.build-banner u{margin-left:6px}.tkbtn{position:fixed;right:16px;bottom:16px;width:32px;height:32px;border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:8px;font-size:19px;line-height:1;cursor:pointer;opacity:.7;z-index:130}.tkbtn:hover{opacity:1;color:#c0392b;border-color:#c0392b}.btn.tkprio{width:32px;height:30px;padding:0;font-weight:700}.btn.tkprio.on.critical{background:var(--bad);border-color:var(--bad);color:#fff}.btn.tkprio.on.high{background:#c07f00;border-color:#c07f00;color:#fff}.btn.tkprio.on.normal,.btn.tkprio.on.low{background:var(--ink);border-color:var(--ink);color:var(--card)}.tkgal{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}.tkitem{border:1px solid var(--line);border-radius:8px;padding:6px 8px;display:grid;gap:4px}.tktext{font-family:ui-monospace,monospace;font-size:11.5px;background:var(--row-hover);border-radius:6px;padding:6px 8px;max-height:120px;overflow:auto;white-space:pre-wrap}.tknoshot{border:1px dashed #c07f00;color:#c07f00;border-radius:6px;padding:8px;font-size:12px}.tkgrid{display:grid;grid-template-columns:minmax(360px,1.15fr) minmax(340px,1fr);gap:20px}@media(max-width:860px){.tkgrid{grid-template-columns:1fr}}.tkhist{border-left:2px solid var(--line);padding-left:12px;font-size:12.5px;color:var(--muted);display:grid;gap:3px}.tkmsgs{max-height:240px;overflow:auto;display:grid;gap:6px}.tkmsg{border:1px solid var(--row-line);border-radius:8px;padding:6px 10px}.tkdraft{border:1px solid #2f6de8;background:#2f6de812;border-radius:10px;padding:10px 14px;margin-top:10px}.tagx{display:inline-block;background:var(--chip);border-radius:5px;padding:1px 7px;margin:0 4px 4px 0;font-size:12px}.tagx span{cursor:pointer;color:var(--muted)}.tkcarousel{position:fixed;inset:0;background:#080c12e6;z-index:200;display:flex;align-items:center;justify-content:center;gap:18px}.tkcarousel figure{margin:0;text-align:center}.tkcarousel img{max-height:78vh;max-width:80vw;border-radius:10px;border:1px solid rgba(255,255,255,.2)}.tkcarousel figcaption{color:#fff;font-size:13px;margin-top:8px}.tknav{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;font-size:22px;cursor:pointer}.tknav:hover{color:#ff6b6b;border-color:#ff6b6b}.mono{font-family:ui-monospace,SFMono-Regular,monospace}.btn:focus-visible,.tabs button:focus-visible,.sb-nav a:focus-visible,.sb-collapse:focus-visible,select:focus-visible,.tbl tr.click:focus-visible{outline:2px solid var(--accent);outline-offset:0}
