:root{--bg:oklch(0.985 0.004 240);--surface:#fff;--surface-2:oklch(0.97 0.004 240);--line:oklch(0.91 0.006 240);--line-strong:oklch(0.82 0.008 240);--text:oklch(0.21 0.012 250);--text-2:oklch(0.45 0.012 250);--text-3:oklch(0.62 0.012 250);--accent:oklch(0.55 0.13 260);--accent-2:oklch(0.58 0.13 165);--warn:oklch(0.62 0.13 25);--warn-bg:oklch(0.965 0.025 25);--warn-line:oklch(0.88 0.05 25);--gold:oklch(0.72 0.12 75);--radius:6px;--row-h:46px;--shadow:0 1px 0 oklch(0.91 0.006 240),0 1px 2px oklch(0.91 0.006 240/0.4)}*{box-sizing:border-box}body,html{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.45}button,input,select{font:inherit}a,button{color:inherit}.shell{--bg:oklch(0.985 0.004 240);--surface:#fff;--surface-2:oklch(0.97 0.004 240);--line:oklch(0.91 0.006 240);--line-strong:oklch(0.82 0.008 240);--text:oklch(0.21 0.012 250);--text-2:oklch(0.45 0.012 250);--text-3:oklch(0.62 0.012 250);--warn-bg:oklch(0.965 0.025 25);--row-h:46px;display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh;background:var(--bg);color:var(--text)}.shell[data-theme=dark]{--bg:oklch(0.16 0.015 250);--surface:oklch(0.20 0.015 250);--surface-2:oklch(0.23 0.015 250);--line:oklch(0.30 0.015 250);--line-strong:oklch(0.38 0.015 250);--text:oklch(0.96 0.005 240);--text-2:oklch(0.78 0.01 240);--text-3:oklch(0.62 0.012 240);--warn-bg:oklch(0.32 0.06 25);--shadow:0 1px 0 oklch(0.30 0.015 250),0 1px 2px oklch(0 0 0/0.3)}.shell[data-density=compact]{--row-h:38px}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;overflow:auto;padding:18px 12px;background:var(--surface);border-right:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center;padding:6px 8px 14px;margin-bottom:10px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.brand-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:6px;color:#fff;font-weight:700;background:linear-gradient(135deg,var(--accent),var(--accent-2))}.brand-text{display:flex;min-width:0;flex-direction:column;line-height:1.12}.brand-text b{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.brand-text span{color:var(--text-3);font-size:11px}.nav-section{padding:10px 8px 6px;color:var(--text-3);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase}.nav-item{display:flex;width:100%;align-items:center;justify-content:space-between;padding:7px 10px;border:0;border-radius:var(--radius);background:transparent;color:var(--text-2);cursor:pointer;text-decoration:none;text-align:left}.nav-item.active,.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{font-weight:600}.badge-inline{color:var(--text-3);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.sidebar-contact{margin-top:auto;padding-top:18px}.sidebar-contact .nav-section{padding-top:0}.contact-line{display:grid;gap:2px;padding:7px 8px;color:var(--text-3);font-size:11px}.contact-line a,.contact-line b{color:var(--text-2);font-size:12px;font-weight:650;text-decoration:none}.contact-line a:hover{color:var(--accent);text-decoration:underline}.main{min-width:0;padding-bottom:36px}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 28px;border-bottom:1px solid var(--line);background:oklch(from var(--bg) l c h/.88);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.topbar h1{margin:2px 0 0;font-size:19px;font-weight:650;letter-spacing:0}.crumb{letter-spacing:.02em;text-transform:uppercase}.crumb,.topbar-meta{color:var(--text-3);font-size:12px}.topbar-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px}.pulse{width:6px;height:6px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 3px oklch(from var(--accent-2) l c h/.15)}.page{width:min(1320px,100%);padding:22px 28px 60px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}.detail-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}.kpi{min-width:0;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.kpi .label{color:var(--text-3);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase}.kpi .value{margin-top:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:25px;font-weight:650}.kpi .delta{overflow:hidden;margin-top:4px;color:var(--text-2);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.kpi .delta.pos{color:var(--accent-2)}.kpi .delta.warn{color:var(--warn)}.detail-grid,.ds,.two-col{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.card{margin-bottom:18px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:10px 16px;border-bottom:1px solid var(--line)}.card-h h3{margin:0;font-size:13px;font-weight:650}.collapse-h{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit;cursor:pointer;text-align:left}.collapse-h:hover{background:var(--surface-2)}.collapse-mark{color:var(--accent);font-size:12px}.empty,.hint,.meta{color:var(--text-3);font-size:12px}.card-body{padding:14px 16px}.empty{padding:16px;text-align:center}.btn,.link-btn{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:6px 12px;border:1px solid var(--line);border-radius:5px;background:var(--surface);cursor:pointer;text-decoration:none}.btn:hover,.link-btn:hover{background:var(--surface-2)}.btn.primary{border-color:var(--accent);background:var(--accent);color:#fff}.btn.subtle{border-color:transparent;color:var(--text-2)}.btn.subtle,.link-btn{background:transparent}.link-btn{border:0;color:var(--accent);padding:0}.btn:disabled{opacity:.65;cursor:wait}.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.filter-label{margin-left:4px;color:var(--text-3);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase}.seg{display:inline-flex;max-width:100%;padding:2px;border:1px solid var(--line);border-radius:5px;background:var(--surface-2)}.seg button{min-width:0;padding:4px 9px;border:0;border-radius:4px;background:transparent;color:var(--text-2);cursor:pointer;font-size:12px;white-space:nowrap}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-weight:600}.input{min-width:190px;color:var(--text)}.check,.input{min-height:30px;padding:5px 10px;border:1px solid var(--line);border-radius:5px;background:var(--surface-2)}.check{display:inline-flex;align-items:center;gap:6px;font-size:12.5px}.table-card{padding:0}table.t{width:100%;border-collapse:collapse}table.t td,table.t th{height:var(--row-h);padding:0 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;font-size:13px}table.t th{background:var(--surface-2);color:var(--text-3);cursor:pointer;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;-webkit-user-select:none;user-select:none}table.t th.active{color:var(--text)}table.t tr.row:hover td{background:var(--surface-2);cursor:pointer}table.t tr.incomplete td{background:oklch(from var(--warn-bg) l c h/.55)}.num{text-align:right!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.strong{font-weight:650}.muted{color:var(--text-3)}.sort{margin-left:4px;color:var(--accent);font-size:9px}.pack-cell{display:flex;align-items:center;gap:8px;min-width:260px}.pack-cell b,.top-row .name b{display:block;overflow:hidden;max-width:420px;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.pack-cell small,.top-row .name small{display:block;color:var(--text-3);font-size:11px}.arrow{color:var(--text-3);text-align:right}.dot{display:inline-block;width:6px;height:6px;flex:0 0 auto;border-radius:50%}.dot.ok{background:var(--accent-2)}.dot.warn{background:var(--warn)}.prio{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:22px;padding:0 7px;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:700}.p-S,.p-Splus{background:oklch(from var(--accent) l c h/.13);color:var(--accent)}.p-A,.p-B{background:oklch(from var(--accent-2) l c h/.13);color:var(--accent-2)}.badge,.p-C,.p-D,.tag{border:1px solid var(--line);background:var(--surface-2);color:var(--text-2)}.badge,.tag{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border-radius:4px;font-size:11.5px}button.tag{cursor:pointer}.badge.warn,.warn-text{color:var(--warn)}.badge.warn{border-color:var(--warn-line);background:var(--warn-bg)}.value-number{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;white-space:nowrap}.diamond-inline{width:15px;height:15px;flex:0 0 auto;object-fit:contain;filter:drop-shadow(0 1px 0 oklch(1 0 0/.4))}.bars .track{overflow:hidden;flex:1 1;height:5px;border-radius:2px;background:var(--surface-2)}.bars .fill{display:block;height:100%;border-radius:2px;background:var(--accent)}.top-list{display:flex;flex-direction:column;margin:-14px -16px}.top-row{display:grid;grid-template-columns:26px minmax(0,1fr) 48px 70px 22px;gap:12px;align-items:center;width:100%;min-height:50px;padding:10px 16px;border:0;border-bottom:1px solid var(--line);background:transparent;cursor:pointer;text-align:left}.top-row:hover{background:var(--surface-2)}.idx{color:var(--text-3);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.bars{display:flex;flex-direction:column;gap:8px}.bar-row{display:grid;grid-template-columns:98px minmax(0,1fr) 72px;gap:12px;align-items:center;color:var(--text-2);font-size:12.5px}.bar-row b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-align:right}.compbox{padding:0}.comp-h{display:flex;justify-content:space-between;padding:10px 16px;background:var(--surface-2);color:var(--text-3);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.comp-h,.comp-row{border-bottom:1px solid var(--line)}.comp-row{display:grid;grid-template-columns:40px minmax(0,1fr) 118px 112px 90px;gap:12px;align-items:center;padding:9px 16px}.comp-row:last-child{border-bottom:0}.comp-row.missing{background:oklch(from var(--warn-bg) l c h/.55)}.comp-row .quantity-formula{overflow:hidden;font-size:11.5px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.icon{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);color:var(--text-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;font-weight:700}.icon.item-thumb{padding:2px;object-fit:contain}.speedup-icon{padding:0;overflow:visible}.speedup-label{fill:#fff;stroke:oklch(.18 .02 250);stroke-width:3px;paint-order:stroke;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:13px;font-weight:800}.speedup-arrow-side{fill:#2b6f9e}.speedup-arrow-main,.speedup-arrow-side{stroke:#123957;stroke-linejoin:round;stroke-width:2}.speedup-arrow-main{fill:#dff7ff}.speedup-arrow-cut{fill:#b9eaf8;stroke:#4c9fc6;stroke-linejoin:round;stroke-width:.9}.speedup-arrow-highlight{fill:#fff;opacity:.72}.name{min-width:0}.name b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.name small{display:block;color:var(--text-3);font-size:11.5px}.name small.temporary-value{display:flex;align-items:center;gap:5px;color:var(--warn)}.temporary-value-popover{position:relative;display:inline-flex;flex:0 0 auto}.temporary-value-hint{display:inline-grid;place-items:center;width:14px;height:14px;border:1px solid var(--warn-line);border-radius:50%;background:var(--warn-bg);color:var(--warn);cursor:help;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:10px;font-weight:800;line-height:1}.temporary-value-hint:focus-visible{outline:2px solid var(--warn);outline-offset:2px}.temporary-value-tooltip{position:absolute;left:calc(100% + 8px);top:50%;z-index:20;width:min(320px,72vw);padding:9px 10px;border:1px solid var(--warn-line);border-radius:6px;background:var(--surface);box-shadow:0 12px 32px oklch(0 0 0/.16);color:var(--text-2);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:11.5px;font-weight:500;line-height:1.35;opacity:0;pointer-events:none;text-align:left;transform:translate(4px,-50%);transition:opacity .12s ease,transform .12s ease;white-space:normal}.temporary-value-tooltip:after{content:"";position:absolute;left:-5px;top:50%;width:9px;height:9px;border-left:1px solid var(--warn-line);border-bottom:1px solid var(--warn-line);background:var(--surface);transform:translateY(-50%) rotate(45deg)}.temporary-value-hint:focus+.temporary-value-tooltip,.temporary-value-popover:hover .temporary-value-tooltip{opacity:1;transform:translateY(-50%)}.notes{margin-bottom:16px;padding:12px 14px;border:1px solid oklch(from var(--accent) l c h/.2);border-radius:var(--radius);background:oklch(from var(--accent) l c h/.06);color:var(--text-2);font-size:12.5px}.notes b{color:var(--text)}.screenshot{display:block;width:100%;max-height:420px;object-fit:contain;border-radius:4px;background:var(--surface-2)}.stat-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,1.3fr);gap:12px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:13px}.stat-row span{color:var(--text-3)}.stat-row b{overflow-wrap:anywhere;text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:500}.miss-head,.miss-row{display:grid;grid-template-columns:40px minmax(180px,1fr) 80px 90px minmax(240px,1.2fr);gap:14px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.miss-head{background:var(--surface-2);color:var(--text-3);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.unknown-icon{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:4px;background:repeating-linear-gradient(45deg,var(--surface-2) 0 4px,transparent 4px 8px),var(--bg);color:var(--text-3);font-weight:700}.unknown-icon.item-thumb{background:var(--surface-2);object-fit:contain}.desc{margin-bottom:6px;color:var(--text-2);font-size:12.5px}.chips{display:flex;flex-wrap:wrap;gap:6px}.url-box{padding:10px;border:1px solid var(--line);border-radius:4px;background:var(--surface-2);color:var(--text-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;overflow-wrap:anywhere}.wiki-page{max-width:1080px}.wiki-document{padding:24px 28px 34px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.wiki-document h1,.wiki-document h2,.wiki-document h3{margin:0;letter-spacing:0;line-height:1.2}.wiki-document h1{padding-bottom:14px;border-bottom:1px solid var(--line);font-size:28px}.wiki-document h2{margin-top:34px;padding-top:18px;border-top:1px solid var(--line);font-size:20px}.wiki-document h3{margin-top:24px;font-size:15px}.wiki-document p{max-width:820px;margin:12px 0 0;color:var(--text-2)}.wiki-document ol,.wiki-document ul{max-width:820px;margin:10px 0 0;padding-left:22px;color:var(--text-2)}.wiki-document li{margin:5px 0}.wiki-document code{padding:1px 5px;border:1px solid var(--line);border-radius:4px;background:var(--surface-2);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}.wiki-document pre{max-width:900px;margin:14px 0 0;overflow:auto;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.wiki-document pre code{padding:0;border:0;background:transparent}.db-page,.items-page{max-width:none}.compact-select{min-width:132px}.category-select{min-width:190px}.item-search{flex:1 1 260px}.items-table td{height:54px}.item-cell{display:flex;align-items:center;gap:10px;min-width:260px}.item-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);object-fit:contain}.item-icon.fallback{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700}.item-icon.fallback,.item-subtag{color:var(--text-3);font-size:11px}.item-subtag{display:block;margin-top:4px}.value-stack{display:grid;gap:2px}.value-stack b{font-weight:650}.value-stack small{max-width:190px;overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.value-quality,.value-stack small{color:var(--text-3);font-family:Inter,ui-sans-serif,system-ui,sans-serif}.value-quality{justify-self:end;width:fit-content;padding:1px 5px;border-radius:4px;background:var(--surface-2);font-size:10.5px;font-weight:650}.value-quality.temporary{border:1px solid var(--warn-line);background:var(--warn-bg);color:var(--warn)}.db-tabs{display:flex;gap:8px;overflow-x:auto;padding:0 0 12px;scrollbar-width:thin}.db-tabs button{display:flex;flex:0 0 auto;flex-direction:column;gap:2px;min-width:150px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text-2);cursor:pointer;text-align:left}.db-tabs button.active,.db-tabs button:hover{border-color:var(--line-strong);background:var(--surface-2);color:var(--text)}.db-tabs button.active{box-shadow:inset 0 0 0 1px oklch(from var(--accent) l c h/.25)}.db-tabs small{color:var(--text-3);font-size:11px}.db-card .card-h{align-items:flex-start}.db-card .card-h h3{margin-bottom:3px}.db-table-wrap{overflow:auto;max-height:calc(100vh - 250px)}table.db-table{min-width:max-content}table.db-table th{position:sticky;top:0;z-index:1;min-width:120px;height:auto;padding:8px 12px;cursor:default;vertical-align:top}table.db-table th small,table.db-table th span{display:block}table.db-table th small{margin-top:2px;color:var(--text-3);font-size:10px;letter-spacing:0;text-transform:none}table.db-table td{max-width:420px;height:auto;min-height:var(--row-h);padding:9px 12px;white-space:pre-wrap;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;vertical-align:top}table.db-table .null-cell{color:var(--text-3);font-style:italic}.settings-wrap{position:fixed;right:16px;bottom:16px;z-index:10;display:grid;justify-items:end;gap:8px}.settings-toggle{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:8px;background:color-mix(in oklch,var(--surface) 90%,transparent);box-shadow:0 10px 28px oklch(0 0 0/.13);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:var(--text-2);cursor:pointer}.settings-toggle:hover,.settings-toggle[aria-expanded=true]{border-color:var(--line-strong);color:var(--text)}.settings-toggle svg{width:21px;height:21px}.settings-panel{display:grid;gap:8px;width:190px;padding:12px;border:1px solid var(--line);border-radius:8px;background:color-mix(in oklch,var(--surface) 86%,transparent);box-shadow:0 12px 40px oklch(0 0 0/.12);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:var(--text);font-size:12px}.settings-panel label{display:grid;grid-template-columns:72px 1fr;align-items:center;gap:8px;color:var(--text-3)}.settings-panel select{min-width:0;padding:4px 6px;border:1px solid var(--line);border-radius:5px;background:var(--surface-2);color:var(--text)}@media (max-width:980px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;display:flex;flex-wrap:wrap;gap:8px;padding:10px;border-right:0;border-bottom:1px solid var(--line)}.brand{width:100%;margin:0;padding-bottom:10px}.nav-section{display:none}.nav-item{width:auto}.sidebar-contact{width:100%;margin-top:0;padding-top:4px;border-top:1px solid var(--line)}.contact-line{display:inline-grid;margin-right:10px;padding:4px 0}.topbar{position:static;align-items:flex-start;padding:14px 16px}.page{padding:16px 16px 90px}.detail-kpis,.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid,.ds,.two-col{grid-template-columns:1fr}}@media (max-width:720px){.topbar,.topbar-meta{flex-direction:column;align-items:flex-start}.detail-kpis,.kpi-grid{grid-template-columns:1fr}.card.table-card{overflow-x:auto}table.t{min-width:860px}.comp-row{grid-template-columns:40px minmax(160px,1fr) 118px 112px 80px;overflow-x:auto}.miss-head,.miss-row{grid-template-columns:36px minmax(180px,1fr)}.miss-head span:nth-child(n+3),.miss-row>div:nth-child(3),.miss-row>div:nth-child(4){display:none}.settings-wrap{left:16px;right:16px}.settings-panel{width:min(100%,260px)}}