:root{--bg:#f6f7f5;--surface:#fff;--surface-2:#f0f3f0;--border:#dfe4df;--text:#1d2a24;--muted:#66746d;--green:#1f5a43;--green-2:#2e7a5c;--green-soft:#e3efe8;--ok:#2e7a5c;--ok-soft:#e3f1e8;--warn:#9a6a10;--warn-soft:#fbf1db;--danger:#a33a32;--danger-soft:#f8e5e2;--info:#2f5f86;--info-soft:#e4eef6;--r-normal:#2e7a5c;--r-watch:#b0821c;--r-dormant:#c4622d;--r-critical:#a33a32;--r-zero:#6b3d7a;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-family:Inter,Segoe UI,system-ui,-apple-system,Roboto,sans-serif;font-size:15px;line-height:1.45}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1{color:var(--green);margin:0 0 .3rem;font-size:1.5rem;font-weight:650}h2{margin:0;font-size:1.05rem;font-weight:600}.lead{color:var(--muted);margin:0 0 1rem}.muted{color:var(--muted)}.small{font-size:.82rem}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.85rem}.nowrap{white-space:nowrap}.ok-text{color:var(--ok)}.loading{text-align:center;color:var(--muted);padding:3rem}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:.7rem 1.4rem;padding-top:max(.7rem, env(safe-area-inset-top));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.brand{align-items:center;gap:.7rem;display:flex}.logo{color:var(--green);display:flex}.brand-title{color:var(--green);font-size:1.05rem;font-weight:700}.brand-sub{color:var(--muted);font-size:.8rem}.topbar-right{flex-wrap:wrap;align-items:center;gap:.7rem;display:flex}.active-pill{background:var(--green-soft);color:var(--green);border-radius:999px;padding:.25rem .7rem;font-size:.82rem}.nav{background:var(--surface);border-bottom:1px solid var(--border);z-index:5;-webkit-overflow-scrolling:touch;gap:.2rem;padding:0 1.2rem;display:flex;position:sticky;top:0;overflow-x:auto}.nav-item{cursor:pointer;font:inherit;color:var(--muted);white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;padding:.75rem .85rem}.nav-item:hover{color:var(--green)}.nav-item.active{color:var(--green);border-bottom-color:var(--green);font-weight:600}.nav-item.sub{font-size:.88rem}main{flex:1;width:100%;max-width:1500px;margin:0 auto;padding:1.4rem}.page>*+*{margin-top:1rem}.foot{text-align:center;color:var(--muted);padding:1rem;padding-bottom:max(1rem, env(safe-area-inset-bottom));font-size:.8rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem 1.1rem}.card+.card{margin-top:1rem}.card-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem;display:flex}.card.soon{border-style:dashed}.card.soon h2{color:var(--green);margin-bottom:.5rem}.grid-2{grid-template-columns:1fr 1fr;align-items:start;gap:1rem;display:grid}@media (width<=900px){.grid-2{grid-template-columns:1fr}}.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:7px;min-height:36px;padding:.45rem .9rem;font-size:.9rem}.btn:hover:not(:disabled){border-color:var(--green-2);color:var(--green)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.primary:hover:not(:disabled){background:var(--green-2);color:#fff}.btn.danger{color:var(--danger)}.btn.danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger);background:var(--danger-soft)}.btn.small{min-height:30px;padding:.2rem .6rem;font-size:.82rem}.seg{flex-wrap:wrap;gap:.4rem;display:flex}input,select{font:inherit;border:1px solid var(--border);color:var(--text);background:#fff;border-radius:6px;min-height:34px;padding:.35rem .5rem;font-size:.9rem}input:focus,select:focus{outline:2px solid var(--green-soft);border-color:var(--green-2)}input[type=checkbox]{width:1.05rem;height:1.05rem;min-height:auto;accent-color:var(--green)}.form-row{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.form-row label{color:var(--muted);flex-direction:column;gap:.2rem;font-size:.85rem;display:flex}.form-row label strong{color:var(--text);font-size:.95rem}.form-row input[type=number]{width:7rem}.dropzone{border:2px dashed var(--border);background:var(--surface);color:var(--muted);border-radius:10px;flex-wrap:wrap;justify-content:center;align-items:center;gap:.8rem;padding:1.6rem;display:flex}.dropzone.drag{border-color:var(--green);background:var(--green-soft)}.alert{border:1px solid;border-radius:8px;padding:.7rem .9rem}.alert.danger{background:var(--danger-soft);color:var(--danger);border-color:#ecc5c0}.alert.warn{background:var(--warn-soft);color:var(--warn);border-color:#eedcae;margin-top:.6rem}.alert.info{background:var(--info-soft);color:var(--info);border-color:#c8dbea}.warnings{margin:0;padding-left:1.2rem}.warnings li{margin:.2rem 0}.badge{white-space:nowrap;background:var(--surface-2);color:var(--muted);border:1px solid #0000;border-radius:999px;padding:.1rem .5rem;font-size:.76rem;font-weight:500;display:inline-block}.tone-ok{background:var(--ok-soft);color:var(--ok)}.tone-warn{background:var(--warn-soft);color:var(--warn)}.tone-danger{background:var(--danger-soft);color:var(--danger)}.tone-info{background:var(--info-soft);color:var(--info)}.tone-risk-normal{background:var(--ok-soft);color:var(--r-normal)}.tone-risk-watch{color:var(--r-watch);background:#fbf3dc}.tone-risk-dormant{color:var(--r-dormant);background:#fbe9dd}.tone-risk-critical{background:var(--danger-soft);color:var(--r-critical)}.tone-risk-zero{color:var(--r-zero);background:#f1e6f4}.tone-risk-noStock,.tone-risk-unknown{background:var(--surface-2);color:var(--muted)}.hints{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.hints .badge{white-space:normal}.rx-select{max-width:15rem;min-height:30px;padding:.2rem .4rem;font-size:.82rem}.rx-select.tone-ok{border-color:#b8d9c6}.rx-select.tone-danger{border-color:#e4b7b1}.rx-select.tone-warn{border-color:#e8d29d}.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.8rem;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.8rem 1rem}.stat-value{color:var(--green);font-size:1.6rem;font-weight:650}.stat.tone-warn .stat-value{color:var(--warn)}.stat.tone-neutral .stat-value{color:var(--muted)}.stat-label{color:var(--muted);font-size:.85rem}.stat.tone-ok,.stat.tone-warn,.stat.tone-neutral{background:var(--surface)}.rules{margin:0 0 .6rem;padding:0;list-style:none}.rules li{border-bottom:1px solid var(--surface-2);padding:.3rem 0}.check-label{cursor:pointer;align-items:center;gap:.5rem;display:flex}.check-label span:first-of-type{flex:1}.family-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.3rem 1rem;display:grid}.toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.toolbar .search{flex:1;min-width:220px}.toolbar.bulk{margin:.4rem 0 .6rem}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:.87rem}table.data th{text-align:left;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap;padding:.45rem .55rem;font-weight:600}table.data td{border-bottom:1px solid var(--surface-2);vertical-align:middle;padding:.4rem .55rem}table.data tr:hover td{background:#fafcfa}table.data tr.selected td{background:var(--green-soft)}table.data .right{text-align:right}table.data .center{text-align:center}table.data th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.data th.sortable:hover{color:var(--green)}table.data .check{text-align:center;width:2rem}table.data td.empty{text-align:center;color:var(--muted);padding:1.5rem}table.data.compact td,table.data.compact th{padding:.3rem .5rem}table.data.raw td{white-space:nowrap;text-overflow:ellipsis;max-width:260px;overflow:hidden}table.data th.mapped{background:var(--green-soft);color:var(--green)}table.data td.mapped{background:#f4f9f6}.map-label{font-size:.72rem;font-weight:500}table.data.mapping select{min-width:220px}tr.row-warn td{background:var(--warn-soft)}.sort-ind{font-size:.7rem}.table-footer{color:var(--muted);justify-content:space-between;align-items:center;padding-top:.5rem;font-size:.85rem;display:flex}.pager{align-items:center;gap:.5rem;display:flex}@media (width<=700px){main{padding:.8rem}.topbar{padding:.6rem .8rem}.active-pill{display:none}}tr.clickable{cursor:pointer}.bar-col{width:35%}.bar{background:var(--surface-2);border-radius:4px;height:10px;overflow:hidden}.bar-fill{border-radius:4px;height:100%}.bar-fill.risk-zero{background:var(--r-zero)}.bar-fill.risk-critical{background:var(--r-critical)}.bar-fill.risk-dormant{background:var(--r-dormant)}.bar-fill.risk-watch{background:var(--r-watch)}.bar-fill.risk-normal{background:var(--r-normal)}.bar-fill.risk-unknown{background:var(--muted)}.problem-total{border-top:2px solid var(--border);justify-content:space-between;margin-top:.3rem;padding:.6rem .5rem;display:flex}.problem-total strong{color:var(--green)}.toplist{margin:0;padding-left:1.4rem;font-size:.87rem}.toplist li{border-bottom:1px solid var(--surface-2);padding:.25rem 0}.toplist li>*{vertical-align:middle}.tl-name{width:calc(100% - 15rem);min-width:10rem;display:inline-block}.tl-val{float:right}.chips{flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem;display:flex}.chip{font:inherit;border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:999px;min-height:32px;padding:.25rem .75rem;font-size:.82rem}.chip.on{border-color:var(--green);background:var(--green-soft);color:var(--green);font-weight:600}.chip.on.risk-zero{border-color:var(--r-zero);color:var(--r-zero);background:#f1e6f4}.chip.on.risk-critical{border-color:var(--r-critical);background:var(--danger-soft);color:var(--r-critical)}.chip.on.risk-dormant{border-color:var(--r-dormant);color:var(--r-dormant);background:#fbe9dd}.chip.on.risk-watch{border-color:var(--r-watch);color:var(--r-watch);background:#fbf3dc}.toolbar.ranges{color:var(--muted);gap:.9rem;font-size:.85rem}.toolbar.ranges label{align-items:center;gap:.3rem;display:flex}.toolbar.ranges input:not([type=checkbox]){width:5.5rem}.totals{flex-wrap:wrap;gap:.5rem;margin:.4rem 0 .6rem;display:flex}.card-actions{gap:.5rem;display:flex}.shortcut{background:var(--surface-2);border-radius:8px;margin:.6rem 0;padding:.6rem}.tabs{border-bottom:1px solid var(--border);gap:.3rem;display:flex}.tab{font:inherit;cursor:pointer;color:var(--muted);background:0 0;border:none;border-bottom:3px solid #0000;padding:.55rem .9rem}.tab.active{color:var(--green);border-bottom-color:var(--green);font-weight:600}.cls-layout{grid-template-columns:290px 1fr;align-items:start;gap:1rem;display:grid}.cls-main{min-width:0}.cls-tree{max-height:calc(100vh - 4.5rem);padding:.8rem;position:sticky;top:3.4rem;overflow-y:auto}@media (width<=1000px){.cls-layout{grid-template-columns:1fr}.cls-tree{max-height:22rem;position:static}}.small-seg{margin-bottom:.6rem}.small-seg .btn{flex:1}.progress-line{color:var(--muted);margin-bottom:.6rem;font-size:.8rem}.progress-line .bar{height:6px;margin-top:.25rem}.tree,.tree ul{margin:0;padding:0;list-style:none}.tree ul{padding-left:1.3rem}.tree-row{align-items:center;display:flex}.tree-toggle{cursor:pointer;color:var(--muted);background:0 0;border:none;width:1.3rem;padding:0;font-size:.85rem}.tree-item{text-align:left;width:100%;font:inherit;cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:6px;flex:1;justify-content:space-between;gap:.5rem;padding:.35rem .5rem;font-size:.88rem;display:flex}.tree-item:hover{background:var(--surface-2)}.tree-item.on{background:var(--green-soft);color:var(--green);font-weight:600}.tree-item.warn{color:var(--warn)}.tree-item.empty{color:var(--muted)}.tree-item.sub{font-size:.84rem}.tree-item .count{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:400}tr.row-tocheck td{background:#fffbf1}.cat-picker{max-width:22rem}.modal-back{z-index:50;background:#14231c59;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:12px;flex-direction:column;gap:.8rem;width:min(520px,100%);padding:1.2rem 1.3rem;display:flex;box-shadow:0 10px 40px #0003}.modal h2{color:var(--green)}.modal p{margin:0}.modal .cat-picker{width:100%;max-width:none}.field{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.modal-actions{justify-content:flex-end;gap:.5rem;display:flex}.tax-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.8rem;margin-bottom:1rem;display:grid}.tax-univers{border:1px solid var(--border);border-radius:8px;padding:.6rem}.tax-head{gap:.4rem;margin-bottom:.4rem;display:flex}.tax-name{color:var(--green);flex:1;font-weight:600}.tax-cats{margin:0 0 .4rem;padding:0;list-style:none}.tax-cats li{align-items:center;gap:.4rem;margin:.2rem 0;display:flex}.tax-cats input{flex:1;min-height:30px;font-size:.85rem}.add-inline{gap:.4rem;display:flex}.add-inline input{flex:1;font-size:.85rem}.check-inline{align-items:center;gap:.3rem;display:flex}.sel-group{border-top:1px solid var(--border);margin-top:.8rem;padding-top:.8rem}.sel-group-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.4rem;display:flex}.sel-group-head h3{color:var(--green);margin:0;font-size:1rem}.warn-text{color:var(--warn)}.btn.link{color:var(--green);background:0 0;border:none;margin-top:.3rem;padding-left:0}.sel-table td{vertical-align:top}.sel-table tr.group-row td{background:var(--green-soft);color:var(--green);padding-top:.5rem;font-weight:600}.sel-table tr.validated td{background:#f6fbf8}.sel-table select{max-width:13rem}textarea.comment{font:inherit;border:1px solid var(--border);resize:vertical;border-radius:6px;width:100%;min-width:12rem;padding:.3rem .4rem;font-size:.85rem}.pro-cell{min-width:13rem}.pro-cell .check-inline{margin-top:.2rem}.backup-banner{margin-bottom:1rem}.down{color:var(--ok)}.up{color:var(--r-dormant)}
