:root{color-scheme:light;--bg: #f1f5f3;--surface: #ffffff;--surface-muted: #f6f8f7;--surface-active: #e2f1ed;--ink: #182321;--text: #33413e;--muted: #71807c;--line: #d8e1de;--line-strong: #bccbc6;--primary: #0d766e;--primary-strong: #095f59;--primary-soft: #dff2ee;--danger: #b42318;--danger-soft: #fff0ee;--warning: #a15c0b;--focus: #0f9d94;--shadow-sm: 0 8px 24px rgba(24, 45, 40, .055);--shadow-lg: 0 24px 70px rgba(18, 37, 33, .18);--radius-sm: 8px;--radius: 11px;--radius-lg: 16px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.45;color:var(--text);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}html{min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;margin:0;background:var(--bg)}button,input,textarea{font:inherit}button{border:0}input::placeholder,textarea::placeholder{color:#95a19e}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(15,157,148,.24);outline-offset:2px}h1,h2,p{margin:0}.app-shell{width:min(1480px,100%);min-height:100vh;margin:0 auto;padding:0 24px 28px}.topbar{position:sticky;top:0;z-index:20;display:flex;min-height:76px;align-items:center;justify-content:space-between;gap:24px;padding:11px 4px;border-bottom:1px solid rgba(188,203,198,.82);background:#f1f5f3eb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{display:flex;min-width:0;align-items:center;gap:11px}.brand-mark{display:grid;flex:0 0 42px;width:42px;height:42px;place-items:center;border-radius:10px;background:var(--ink);color:#f1faf8;font-weight:800;letter-spacing:-.02em}h1{overflow:hidden;color:var(--ink);font-size:1.08rem;font-weight:790;letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap}.brand p{margin-top:1px;color:var(--muted);font-size:.8rem;white-space:nowrap}.topbar-meta,.save-status,.preview-actions,.modal-actions{display:flex;align-items:center}.topbar-meta{flex:0 0 auto;gap:10px}.save-status{gap:7px;color:var(--muted);font-size:.82rem;font-weight:650;white-space:nowrap}.save-status svg{color:var(--primary)}.button,.icon-button{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.button{min-height:42px;gap:8px;padding:0 14px;border:1px solid transparent;font-weight:730;white-space:nowrap}.button.primary,.icon-button.primary-icon{background:var(--primary);color:#fff}.button.primary:hover:not(:disabled),.icon-button.primary-icon:hover:not(:disabled){background:var(--primary-strong);box-shadow:0 5px 14px #0d766e2e}.button.secondary{border-color:var(--line);background:var(--surface);color:var(--ink)}.button.secondary:hover:not(:disabled){border-color:var(--line-strong);background:var(--surface-muted)}.button.danger-secondary{border-color:#efc6c1;background:var(--surface);color:var(--danger)}.button.danger-secondary:hover{border-color:#e7aaa3;background:var(--danger-soft)}.button.danger-solid{background:var(--danger);color:#fff}.button.danger-solid:hover{background:#951d14}.icon-button{flex:0 0 auto;width:42px;height:42px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}.icon-button:hover:not(:disabled){border-color:var(--line-strong);background:var(--surface-muted)}.icon-button.compact{width:36px;height:36px}.icon-button.danger{color:var(--danger)}.icon-button.danger:hover:not(:disabled){border-color:#efb7b0;background:var(--danger-soft)}.eyebrow{display:block;margin-bottom:3px;color:var(--muted);font-size:.7rem;font-weight:780;letter-spacing:.055em;line-height:1.25;text-transform:uppercase}.start-workspace{display:grid;width:min(980px,100%);min-height:calc(100vh - 76px);grid-template-columns:minmax(0,1fr) 320px;gap:72px;align-items:start;margin:0 auto;padding:clamp(76px,12vh,120px) 0 96px}.start-panel{max-width:610px}.start-icon{display:grid;width:52px;height:52px;margin-bottom:22px;place-items:center;border:1px solid #b9dcd6;border-radius:14px;background:var(--primary-soft);color:var(--primary-strong)}.start-panel h2{color:var(--ink);font-size:clamp(1.85rem,1.5rem + 1.2vw,2.45rem);font-weight:800;letter-spacing:-.035em;line-height:1.08}.start-description{max-width:520px;margin-top:12px;color:var(--muted);font-size:1rem}.start-form{margin-top:32px}.start-form>label,.add-company>label,.form-field>span:first-child,.import-field>span:first-child{display:block;margin-bottom:7px;color:var(--text);font-size:.8rem;font-weight:740}.start-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.start-entry input{width:100%;min-width:0;height:48px;padding:0 14px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink)}.start-entry .button{min-height:48px;padding-inline:19px}.start-alternative{display:flex;align-items:center;gap:12px;margin-top:14px}.start-alternative>span{color:var(--muted);font-size:.8rem}.privacy-note{display:flex;align-items:center;gap:7px;margin-top:28px;color:var(--muted);font-size:.8rem}.privacy-note svg{flex:0 0 auto;color:var(--primary)}.start-guide{padding:6px 0 6px 32px;border-left:1px solid var(--line-strong)}.start-guide h2{max-width:270px;color:var(--ink);font-size:1.1rem;font-weight:760;letter-spacing:-.015em}.start-guide ol{display:grid;gap:20px;margin:26px 0 0;padding:0;list-style:none}.start-guide li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;align-items:start}.start-guide li>span{display:grid;width:30px;height:30px;place-items:center;border:1px solid var(--line-strong);border-radius:50%;background:var(--surface);color:var(--primary-strong);font-size:.78rem;font-weight:800}.start-guide strong,.start-guide small{display:block}.start-guide strong{color:var(--ink);font-size:.9rem}.start-guide small{margin-top:2px;color:var(--muted);font-size:.8rem}.workspace{display:grid;grid-template-columns:minmax(220px,248px) minmax(460px,1fr) minmax(340px,400px);gap:16px;align-items:start;margin-top:16px}.workspace>*{min-width:0}.panel{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.company-panel,.preview-panel{position:sticky;top:92px;padding:14px}.editor-panel{min-height:calc(100vh - 108px);padding:18px}.editor-panel.is-empty{min-height:0}.panel-heading,.editor-head,.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-heading{margin-bottom:14px}.panel-heading h2,.modal-head h2,.confirm-modal h2{color:var(--ink);font-size:1.02rem;font-weight:770;letter-spacing:-.012em}.panel-heading>svg{color:#52635f}.search-field,.model-entry{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted)}.search-field{height:40px;padding:0 10px;margin-bottom:10px}.search-field input,.model-entry input,.add-company input,.company-name-input,.printer-model,.quantity-control input,.count-entry{width:100%;min-width:0;border:0;background:transparent;color:var(--ink)}.search-field input,.model-entry input,.add-company input{height:100%}.model-entry:focus-within{border-color:var(--focus);box-shadow:0 0 0 3px #0f9d9429}.model-entry input:focus-visible{outline:0}input::-webkit-calendar-picker-indicator{display:none!important}.company-list{display:grid;max-height:calc(100vh - 286px);gap:5px;overflow:auto;padding-right:2px}.company-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:40px;padding:8px 9px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text);text-align:left;cursor:pointer}.company-item:hover{background:var(--surface-muted)}.company-item.active{border-color:#a8d2cc;background:var(--surface-active);color:var(--primary-strong)}.company-item span{overflow:hidden;font-size:.9rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.company-item strong{min-width:24px;padding:2px 6px;border-radius:999px;background:#ffffffb8;color:inherit;font-size:.75rem;text-align:center}.add-company{margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}.add-company-row{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:7px}.add-company input,.count-entry{height:40px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.add-company .icon-button{width:40px;height:40px}.editor-head{align-items:flex-start}.editor-head>div:first-child{min-width:0;flex:1 1 auto}.company-name-input{display:block;height:44px;margin-left:-5px;padding:0 5px;color:var(--ink);font-size:clamp(1.55rem,1.25rem + .8vw,2rem);font-weight:800;letter-spacing:-.025em}.company-name-input:hover,.company-name-input:focus{border-radius:var(--radius-sm);background:var(--surface-muted)}.order-actions{display:flex;gap:6px;align-items:center}.printer-form{display:grid;grid-template-columns:minmax(0,1fr) 104px auto;gap:10px;align-items:end;margin:18px 0;padding:13px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-muted)}.form-field{min-width:0}.model-entry{height:44px;padding:0 11px}.count-entry{height:44px}.button.add-printer{min-height:44px;background:var(--ink);color:#fff}.button.add-printer:hover:not(:disabled){background:#263633}.printer-list{display:grid;gap:7px}.printer-row{display:grid;grid-template-columns:minmax(0,1fr) auto 36px;gap:10px;align-items:center;min-height:60px;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);transition:border-color .16s ease,background-color .16s ease}.printer-row:hover{border-color:var(--line-strong)}.printer-row.excluded{background:#fbfaf7}.printer-row.excluded .printer-model{color:var(--muted)}.printer-row.excluded code{color:var(--warning)}.printer-main{min-width:0}.printer-model{height:28px;font-weight:720}.printer-main code{display:block;overflow:hidden;color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.quantity-control{display:grid;grid-template-columns:36px 54px 36px;gap:4px;align-items:center}.quantity-control input{height:36px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-muted);text-align:center;font-weight:780}.empty-state,.preview-empty{display:flex;align-items:center;justify-content:center;color:var(--muted);text-align:center}.preview-panel.is-empty .preview-empty{height:340px}.empty-state{min-height:170px;gap:12px;border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface-muted)}.empty-state>div{text-align:left}.empty-state strong,.empty-state span,.preview-empty strong,.preview-empty span{display:block}.empty-state strong,.preview-empty strong{color:var(--text);font-size:.9rem}.empty-state span,.preview-empty span{margin-top:2px;font-size:.8rem;font-weight:500}.report-preview,.preview-empty{width:100%;min-height:340px;height:min(56vh,620px);max-height:620px;border-radius:var(--radius-sm)}.report-preview{max-width:100%;margin:0;overflow:auto;padding:15px;border:1px solid #263532;background:#111a19;color:#edf6f4;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.8rem;line-height:1.55;white-space:pre}.preview-empty{flex-direction:column;gap:5px;border:1px dashed var(--line-strong);background:var(--surface-muted)}.preview-empty svg{margin-bottom:7px;color:#8c9a96}.preview-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:12px}.preview-actions .button{width:100%}.toast{position:fixed;right:18px;bottom:18px;z-index:70;max-width:min(420px,calc(100vw - 36px));padding:11px 14px;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-sm);background:var(--ink);box-shadow:var(--shadow-lg);color:#fff;font-size:.9rem;font-weight:720}.toast.success{background:var(--primary-strong)}.toast.danger{background:var(--danger)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:20px;background:#0d191680}.modal{width:min(720px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:22px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg)}.modal-head{align-items:flex-start}.modal-description{max-width:590px;margin-top:12px;color:var(--muted);font-size:.88rem}.import-field{display:block;margin-top:18px}.import-area{display:block;width:100%;min-height:340px;padding:13px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--ink);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.88rem;line-height:1.5;resize:vertical}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px}.confirm-modal{display:grid;width:min(460px,100%);grid-template-columns:44px minmax(0,1fr);gap:15px}.confirm-modal p{margin-top:6px;color:var(--muted);font-size:.88rem}.confirm-icon{display:grid;width:44px;height:44px;place-items:center;border-radius:12px;background:var(--danger-soft);color:var(--danger)}.confirm-modal .modal-actions{grid-column:1 / -1}@media(max-width:1240px){.workspace{grid-template-columns:minmax(220px,248px) minmax(0,1fr)}.preview-panel{position:static;grid-column:1 / -1}.report-preview,.preview-empty{height:auto;min-height:300px;max-height:520px}}@media(max-width:860px){.app-shell{padding:0 12px 24px}.topbar{position:static;min-height:70px}.start-workspace{min-height:auto;grid-template-columns:1fr;gap:44px;align-items:start;padding:56px 12px 72px}.start-guide{padding:28px 0 0;border-top:1px solid var(--line-strong);border-left:0}.start-guide ol{grid-template-columns:repeat(3,1fr)}.workspace{grid-template-columns:1fr;gap:10px;margin-top:10px}.company-panel,.preview-panel{position:static;padding:13px}.editor-panel{min-height:auto;padding:14px}.company-list{display:flex;max-height:none;overflow-x:auto;padding:0 0 3px;scroll-snap-type:x proximity}.company-item{min-width:145px;scroll-snap-align:start}.add-company{margin-top:10px;padding-top:10px}.printer-form{grid-template-columns:minmax(0,1fr) 96px}.model-field{grid-column:1 / -1}.add-printer{min-width:0}.printer-row{grid-template-columns:minmax(0,1fr) 36px}.quantity-control{grid-column:1 / -1;grid-template-columns:44px minmax(72px,1fr) 44px;order:3}.quantity-control input,.quantity-control .icon-button{height:42px}.quantity-control .icon-button{width:44px}.report-preview,.preview-empty{min-height:300px}}@media(max-width:560px){.app-shell{padding-inline:10px}.topbar{gap:10px;padding-inline:2px}.brand-mark{flex-basis:40px;width:40px;height:40px}.brand h1{font-size:1rem}.brand p{max-width:150px;overflow:hidden;text-overflow:ellipsis}.save-status{display:none}.topbar-meta .button{min-height:40px;padding-inline:10px}.start-workspace{gap:36px;padding:36px 4px 56px}.start-icon{margin-bottom:18px}.start-panel h2{font-size:1.85rem}.start-form{margin-top:26px}.start-entry{grid-template-columns:1fr}.start-alternative{display:grid;grid-template-columns:1fr;gap:8px}.start-alternative>span{text-align:center}.start-alternative .button{width:100%}.start-guide{display:none}.panel-heading{margin-bottom:11px}.editor-head{display:grid;grid-template-columns:minmax(0,1fr) auto}.editor-head.has-order-controls{grid-template-columns:1fr}.company-name-input{font-size:1.45rem}.order-actions{align-self:start;margin-top:2px}.editor-head:not(.has-order-controls) .order-actions{margin-top:0}.order-actions .icon-button{width:38px;height:38px}.printer-form{grid-template-columns:1fr;margin-block:14px;padding:11px}.model-field{grid-column:auto}.count-entry,.add-printer{width:100%}.report-preview,.preview-empty{min-height:280px;font-size:.76rem}.modal-backdrop{align-items:end;padding:0}.modal{max-height:92vh;padding:18px;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.import-area{min-height:300px}.modal-actions{display:grid;grid-template-columns:1fr 1fr}.modal-actions .button{width:100%}.confirm-modal{grid-template-columns:40px minmax(0,1fr)}.confirm-icon{width:40px;height:40px}}@media(max-width:360px){.topbar-meta .button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
