:root{--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--bg: #f6f4ef;--card: #ffffff;--text: #1f2421;--muted: #6b716d;--border: #e3e0d8;--accent: #2f6b4f;--accent-text: #ffffff;--accent-soft: #e5f0ea;--warn: #a5610a;--warn-soft: #fdf3e2;--bad: #b3261e;--bad-soft: #fbe9e7;--ok: #2f6b4f;--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg);line-height:1.45;-webkit-font-smoothing:antialiased}@media(prefers-color-scheme:dark){:root{--bg: #161917;--card: #1f2321;--text: #e8ebe9;--muted: #9aa19d;--border: #333a36;--accent: #5fae86;--accent-text: #0f1411;--accent-soft: #23352b;--warn: #e0a548;--warn-soft: #3a2e1a;--bad: #f08a80;--bad-soft: #3d2220;--ok: #5fae86}}*{box-sizing:border-box}body{margin:0;background:var(--bg)}h1,h2,h3,p,ul,ol{margin:0}h1{font-size:1.5rem;line-height:1.25}h2{font-size:1.15rem;line-height:1.3}h3{font-size:1rem}a{color:var(--accent)}main{max-width:960px;margin:0 auto;padding:var(--s5) var(--s4)}.stack{display:flex;flex-direction:column;gap:var(--s4)}.stack-s{display:flex;flex-direction:column;gap:var(--s2)}.row{display:flex;gap:var(--s2);align-items:center}.wrap{flex-wrap:wrap}.between{justify-content:space-between}.gap-l{gap:var(--s5);row-gap:var(--s2)}.grow{flex:1;min-width:0}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--s3)}.narrow{max-width:420px;margin:0 auto}.narrow-wide{max-width:720px}.center{text-align:center;padding:48px var(--s4)}.card{display:flex;flex-direction:column;gap:var(--s3);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s4)}.card.info{background:var(--accent-soft);border-color:transparent}.warn-card{background:var(--warn-soft)}.ok-card{background:var(--accent-soft)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;padding:var(--s3) var(--s4);background:var(--card);border-bottom:1px solid var(--border)}.topbar .brand{font-weight:700;text-decoration:none;color:var(--text)}.topbar nav{display:flex;gap:var(--s4);row-gap:var(--s1);align-items:center;flex-wrap:wrap;font-size:.95rem}.topbar nav a{text-decoration:none;color:var(--muted)}.topbar nav a.active{color:var(--text);font-weight:600}.muted{color:var(--muted)}.small{font-size:.875rem}.big{font-size:1.15rem}.error{color:var(--bad)}.success{color:var(--ok)}.warn{color:var(--warn)}.note{white-space:pre-wrap;background:var(--bg);padding:var(--s2) var(--s3);border-radius:8px}.steps{padding-left:var(--s5);display:flex;flex-direction:column;gap:var(--s2)}button,.button{font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);padding:var(--s2) var(--s3);border-radius:8px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);line-height:1.2}button:hover:not(:disabled),.button:hover{border-color:var(--muted)}button:disabled{opacity:.5;cursor:default}button.primary,.button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}button.link{border:none;background:none;padding:0;color:var(--muted)}button.icon{border:none;background:none;padding:var(--s1);color:var(--muted);border-radius:6px}button.icon:hover:not(:disabled){color:var(--bad);background:var(--bad-soft)}button.danger,button.icon.danger{color:var(--bad)}.small-btn{padding:var(--s1) var(--s2);font-size:.85rem}.file-btn{cursor:pointer}input,select,textarea{font:inherit;width:100%;padding:var(--s2) var(--s3);border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text)}input[type=checkbox]{width:auto}label{display:flex;flex-direction:column;gap:var(--s1);font-size:.9rem;flex:1;min-width:180px}label.inline-label{flex-direction:row;align-items:center;gap:var(--s2);min-width:0;flex:none}.num-input{width:90px;text-align:right;padding:var(--s1) var(--s2)}.num-input.tiny{width:60px;display:inline-block}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--s4)}.login .card{width:100%;max-width:360px}.badge{font-size:.75rem;padding:2px var(--s2);border-radius:99px;background:var(--bg);border:1px solid var(--border);white-space:nowrap}.badge.status-open{background:var(--accent-soft);border-color:transparent;color:var(--ok)}.badge.status-closed,.badge.status-ordered{background:var(--warn-soft);border-color:transparent;color:var(--warn)}.badge.ok{background:var(--accent-soft);color:var(--ok);border-color:transparent}.badge.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.badge.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}.chips{display:flex;flex-wrap:wrap;gap:var(--s2)}.chip{font-size:.8rem;padding:2px var(--s3);border-radius:99px;background:var(--bg);color:var(--muted)}.chip.done{background:var(--accent-soft);color:var(--ok)}.order-card{gap:var(--s2);text-decoration:none;color:var(--text)}.order-card:hover{border-color:var(--accent)}.progress{height:8px;background:var(--bg);border-radius:99px;overflow:hidden}.progress>div{height:100%;background:var(--accent)}.admin-actions{border-top:1px dashed var(--border);padding-top:var(--s3)}.tabs{display:flex;gap:var(--s1);overflow-x:auto;border-bottom:1px solid var(--border)}.tabs a{padding:var(--s2) var(--s3);text-decoration:none;color:var(--muted);white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px}.tabs a.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.segmented{display:inline-flex;align-self:flex-start;border:1px solid var(--border);border-radius:8px;overflow:hidden;flex-wrap:wrap}.segmented button{border:none;border-radius:0;background:var(--card)}.segmented button.active{background:var(--accent-soft);color:var(--ok);font-weight:600}.items{list-style:none;padding:0}.item{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.item:first-child{padding-top:0}.item:last-child{border-bottom:none;padding-bottom:0}.item img,.img-placeholder{width:48px;height:48px;object-fit:cover;border-radius:6px;background:var(--bg);flex:none}.items.compact .item img,.items.compact .img-placeholder{width:36px;height:36px}.item a{text-decoration:none;color:var(--text);font-weight:500}.item .price{min-width:90px;text-align:right}.qty{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:8px}.qty button{border:none;padding:var(--s1) var(--s3);background:none}.qty span{min-width:24px;text-align:center}.qty-static{color:var(--muted)}.table-scroll{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th,.table td{padding:var(--s2);border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.table th:first-child,.table td:first-child{padding-left:0}.table th:last-child,.table td:last-child{padding-right:0}.table th{font-weight:600;color:var(--muted);font-size:.8rem}.table .num{text-align:right;white-space:nowrap}.table tfoot td{border-bottom:none}.table tr.total td{font-weight:700;border-top:2px solid var(--border)}.table .row-warn td{background:var(--warn-soft)}.table .row-warn td:first-child{padding-left:var(--s2)}.table .row-warn td:last-child{padding-right:var(--s2)}.table.lines select{min-width:140px}.totals{display:flex;flex-direction:column;gap:var(--s2);align-items:flex-end;text-align:right}.checklist{list-style:none;padding:0}.checklist li{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding:var(--s2) 0;border-bottom:1px solid var(--border)}.checklist li:last-child{border-bottom:none}.checklist li label{flex-direction:row;align-items:center;gap:var(--s2);min-width:0;font-size:1rem;cursor:pointer}.checklist li.checked .grow{text-decoration:line-through;color:var(--muted)}.qty-badge{font-weight:700;min-width:36px}.item.diff{padding:var(--s2);border-radius:8px;border-bottom:none;margin-bottom:var(--s1)}.item.diff:last-child{margin-bottom:0}.diff-new,.diff-more{background:var(--accent-soft)}.diff-less{background:var(--warn-soft)}.diff-removed{background:var(--bad-soft)}.diff-removed a{text-decoration:line-through;color:var(--muted)}.diff-removed img{opacity:.5}.diff-text-new{color:var(--ok);font-weight:600}.diff-text-changed{color:var(--warn);font-weight:600}.diff-text-removed{color:var(--bad);font-weight:600}.issue{border:1px solid var(--border);border-radius:8px;padding:var(--s3)}.alloc{padding-left:var(--s5);display:flex;flex-direction:column;gap:var(--s1)}.person.me{border-color:var(--accent)}.person [role=button]{cursor:pointer}.actions{justify-content:flex-end}.bookmarklet{display:inline-block;padding:var(--s1) var(--s3);border-radius:8px;background:var(--accent);color:var(--accent-text)!important;text-decoration:none;font-weight:600;cursor:grab}kbd{font-family:inherit;font-size:.8rem;border:1px solid var(--border);border-radius:4px;padding:0 var(--s1)}@media(max-width:600px){main{padding:var(--s4) var(--s3)}.card{padding:var(--s3)}.item .price{min-width:0}.table{font-size:.85rem}}.item.unavailable a{text-decoration:line-through;color:var(--muted)}.item.unavailable img{opacity:.5}select.availability{width:auto;padding:var(--s1) var(--s2);font-size:.85rem}ul.stack-s{list-style:none;padding:0}.summary{display:flex;flex-direction:column;gap:var(--s1);border-top:1px solid var(--border);padding-top:var(--s3)}.summary .strong{font-weight:700}.discount-tag{color:var(--ok);font-weight:600}.item s{color:var(--muted)}.stepper{list-style:none;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s1)}.step{position:relative}.step>a,.step>span{display:flex;flex-direction:column;align-items:center;gap:var(--s1);text-align:center;text-decoration:none;color:var(--muted);padding:var(--s1)}.step:not(:last-child):after{content:"";position:absolute;top:18px;left:calc(50% + 20px);right:calc(-50% + 20px);height:2px;background:var(--border)}.step.done:not(:last-child):after{background:var(--accent)}.step-dot{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--border);background:var(--card);font-weight:700;font-size:.9rem;position:relative;z-index:1}.step.done .step-dot{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.step.current .step-dot{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.step-text{display:flex;flex-direction:column}.step-label{font-weight:600;font-size:.9rem}.step.current .step-label,.step.done .step-label{color:var(--text)}.step-hint{font-size:.75rem}.step>a:hover .step-label{text-decoration:underline}.next-step{border-left:4px solid var(--accent)}.next-step.wait{border-left-color:var(--muted)}.next-step.done{border-left-color:var(--accent);background:var(--accent-soft)}.table tr.success td{color:var(--ok)}@media(max-width:600px){.step-hint{display:none}.step-label{font-size:.75rem}.step-dot{width:26px;height:26px;font-size:.8rem}.step:not(:last-child):after{top:16px;left:calc(50% + 17px);right:calc(-50% + 17px)}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#00000073;display:flex;align-items:center;justify-content:center;padding:var(--s4)}.modal{width:100%;max-width:440px;box-shadow:0 12px 40px #00000059}button.danger-solid{background:var(--bad);border-color:var(--bad);color:#fff}.toasts{position:fixed;z-index:110;left:50%;bottom:var(--s4);transform:translate(-50%);display:flex;flex-direction:column;gap:var(--s2);width:min(440px,calc(100vw - 32px))}.toast{padding:var(--s3) var(--s4);border-radius:var(--radius);background:var(--text);color:var(--bg);box-shadow:0 6px 24px #0000004d;font-size:.92rem}.toast.ok{background:var(--accent);color:var(--accent-text)}.toast.error{background:var(--bad);color:#fff}.row.end{justify-content:flex-end}.stack-xs{display:flex;flex-direction:column;gap:2px}.badge.neutral{background:var(--bg);color:var(--muted)}.segmented .segmented-select{width:auto;border:none;border-left:1px solid var(--border);border-radius:0;padding:var(--s2) var(--s3);background:var(--card)}.segmented .segmented-select.active{background:var(--accent-soft);color:var(--ok);font-weight:600}.pdf-frame{width:100%;border:1px solid var(--border);border-radius:8px;background:#fff}.step.viewing>a,.step.viewing>span{background:var(--accent-soft);border-radius:var(--radius)}.step.viewing .step-label{color:var(--ok)}.file-btn{flex:none;min-width:0}
