@font-face{font-family:PP Formula Extended;src:url(/fonts/PPFormulaExtended-Bold.otf) format("opentype");font-weight:700;font-display:swap}@font-face{font-family:Saans;src:url(/fonts/Saans-Regular.otf) format("opentype");font-weight:400;font-display:swap}@font-face{font-family:Saans;src:url(/fonts/Saans-Bold.otf) format("opentype");font-weight:700;font-display:swap}:root{--orange: #ea580c;--orange-dark: #c2410c;--orange-soft: #fff1e7;--orange-line: #fdba74;--graphite: #334155;--graphite-dark: #1e293b;--ink: #0f172a;--ink-soft: #475569;--ink-mute: #7c8899;--line: #e4e9f0;--line-soft: #eef2f7;--surface: #ffffff;--surface-sunk: #f6f8fb;--bg: #f4f6f9;--pos: #047857;--pos-soft: #ecfdf5;--neg: #dc2626;--neg-soft: #fef2f2;--warn: #b45309;--warn-soft: #fffbeb;--info: #1d4ed8;--info-soft: #eff4ff;--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--sidebar: 216px;--control-h: 36px;--control-h-sm: 30px;--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 1px 3px rgba(15, 23, 42, .06);--shadow-pop: 0 4px 6px -1px rgba(15, 23, 42, .1), 0 10px 24px -4px rgba(15, 23, 42, .12);--font-head: "PP Formula Extended", Arial, sans-serif;--font-body: "Saans", -apple-system, BlinkMacSystemFont, Arial, sans-serif;--nums: "Saans", ui-monospace, monospace}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-body);font-size:14px;line-height:1.5;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-head);color:var(--ink);line-height:1.15}h1{font-size:23px;letter-spacing:-.015em}h2{font-size:16px;letter-spacing:-.01em}h3{font-size:13.5px}a{color:var(--orange-dark);text-decoration:none;cursor:pointer}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--orange);outline-offset:2px;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar);flex-shrink:0;background:var(--surface);border-right:1px solid var(--line);padding:var(--s4) var(--s3);display:flex;flex-direction:column;gap:var(--s1);position:sticky;top:0;height:100vh}.sidebar .logo{display:flex;align-items:center;gap:var(--s2);padding:var(--s1) var(--s2) var(--s5)}.logo-mark{width:30px;height:30px;border-radius:var(--radius-sm);flex-shrink:0;background:var(--graphite);color:#fff;font-family:var(--font-head);font-size:13px;display:flex;align-items:center;justify-content:center}.logo-mark i{color:var(--orange);font-style:normal}.sidebar .logo span{font-family:var(--font-head);font-size:14.5px;white-space:nowrap}.sidebar nav{display:flex;flex-direction:column;gap:1px;flex:1}.nav-section+.nav-section{margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid var(--line-soft)}.nav-section-title{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-mute);padding:0 var(--s2);margin-bottom:var(--s2)}.sidebar nav a{color:var(--ink-soft);padding:7px var(--s2);border-radius:var(--radius-sm);font-size:13.5px;display:flex;align-items:center;gap:var(--s2);transition:background .12s,color .12s}.sidebar nav a:hover{background:var(--surface-sunk);color:var(--ink);text-decoration:none}.sidebar nav a.active{background:var(--orange-soft);color:var(--orange-dark);font-weight:700}.sidebar nav a .count{margin-left:auto;font-size:10.5px;font-weight:700;line-height:1.6;background:var(--neg);color:#fff;border-radius:20px;padding:0 6px;min-width:18px;text-align:center}.sidebar .user{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);font-size:12.5px;color:var(--ink-soft);padding-top:var(--s3);border-top:1px solid var(--line-soft)}.sidebar .user span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main{flex:1;min-width:0;padding:var(--s5) var(--s5) var(--s6)}.wrap{max-width:1360px;margin:0 auto}.tabbar{display:none}.page-head{display:flex;align-items:flex-start;gap:var(--s4);flex-wrap:wrap;margin-bottom:var(--s4)}.page-head .titles{flex:1;min-width:220px}.page-head .actions{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap}.subtitle{color:var(--ink-soft);font-size:13px;margin-top:3px}.breadcrumb{font-size:12px;color:var(--ink-mute);margin-bottom:var(--s2);display:flex;gap:6px;align-items:center}.breadcrumb a{color:var(--ink-soft)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--s4);margin-bottom:var(--s4)}.card.flush{padding:0;overflow:hidden}.card.flush>.section-head{padding:var(--s3) var(--s4) 0}.card>h2{margin-bottom:var(--s3)}.card.accent{border-color:var(--orange-line)}.card.danger{border-color:#fecaca}.section-head{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s3);flex-wrap:wrap}.section-head h2,.section-head h3{flex:1}.grid{display:grid;gap:var(--s4)}.cols-2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.cols-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.cols-4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--s3) var(--s4)}.stat .label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-mute);font-weight:700;margin-bottom:2px}.stat .value{font-family:var(--font-head);font-size:22px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat .value.pos{color:var(--pos)}.stat .value.neg{color:var(--neg)}.stat .hint{font-size:11.5px;color:var(--ink-mute);margin-top:3px}.stat.lead{background:var(--graphite);border-color:var(--graphite)}.stat.lead .label{color:#a7b3c4}.stat.lead .value,.stat.lead .value.pos,.stat.lead .value.neg{color:#fff}.stat.lead .hint{color:#94a3b8}.table-scroll{overflow-x:auto}table.list{width:100%;border-collapse:collapse;font-size:13px}table.list th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-mute);font-weight:700;padding:var(--s2) var(--s3);border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface);position:sticky;top:0}table.list th.right,table.list td.right{text-align:right}table.list td{padding:7px var(--s3);border-bottom:1px solid var(--line-soft);vertical-align:middle}table.list td.num{text-align:right;font-family:var(--nums);font-variant-numeric:tabular-nums;white-space:nowrap}table.list tbody tr.clickable{cursor:pointer}table.list tbody tr.clickable:hover{background:var(--orange-soft)}table.list tbody tr:last-child td{border-bottom:0}table.list tfoot td{padding:var(--s2) var(--s3);font-weight:700;border-top:2px solid var(--line);font-family:var(--nums);font-variant-numeric:tabular-nums;background:var(--surface-sunk)}table.list tfoot td:first-child{font-family:var(--font-body)}.strong{font-weight:700}.muted{color:var(--ink-mute)}.pos{color:var(--pos)}.neg{color:var(--neg)}.nowrap{white-space:nowrap}.right{margin-left:auto}.num{font-family:var(--nums);font-variant-numeric:tabular-nums}.badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:2px 7px;border-radius:6px;background:var(--surface-sunk);color:var(--ink-soft);white-space:nowrap;border:1px solid var(--line)}.badge.orange{background:var(--orange-soft);color:var(--orange-dark);border-color:var(--orange-line)}.badge.green{background:var(--pos-soft);color:var(--pos);border-color:#a7f3d0}.badge.red{background:var(--neg-soft);color:var(--neg);border-color:#fecaca}.badge.amber{background:var(--warn-soft);color:var(--warn);border-color:#fde68a}.badge.info{background:var(--info-soft);color:var(--info);border-color:#c7d7fe}.badge.graphite{background:var(--graphite);color:#fff;border-color:var(--graphite)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font:inherit;font-size:13px;font-weight:700;padding:0 var(--s3);border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink);white-space:nowrap;transition:background .12s,border-color .12s;height:var(--control-h);line-height:1}.btn:hover{background:var(--surface-sunk);border-color:var(--ink-mute)}.btn.primary{background:var(--orange);border-color:var(--orange);color:#fff}.btn.primary:hover{background:var(--orange-dark);border-color:var(--orange-dark)}.btn.dark{background:var(--graphite);border-color:var(--graphite);color:#fff}.btn.dark:hover{background:var(--graphite-dark)}.btn.danger{color:var(--neg);border-color:#fecaca}.btn.danger:hover{background:var(--neg-soft)}.btn.sm{padding:0 var(--s2);font-size:12px;height:var(--control-h-sm)}.btn.icon{padding:0;width:var(--control-h)}.btn.icon.sm{width:var(--control-h-sm)}.btn.link{border:0;background:none;color:var(--orange-dark);padding:0 6px;height:var(--control-h-sm)}.btn.link:hover{background:var(--orange-soft)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-row{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center}.field{margin-bottom:var(--s3);min-width:0}.field>label{display:block;font-size:11.5px;font-weight:700;color:var(--ink-soft);margin-bottom:4px}.field .help{font-size:11.5px;color:var(--ink-mute);margin-top:3px}.field .field-error{font-size:11.5px;color:var(--neg);margin-top:3px;font-weight:700}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=range]),textarea,.select-trigger{width:100%;font:inherit;font-size:13px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);height:var(--control-h);line-height:1.4}input[type=date],input[type=time],input[type=datetime-local]{padding-right:6px}input[type=date]::-webkit-datetime-edit,input[type=time]::-webkit-datetime-edit{padding:0}input[type=date]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}textarea{height:auto;min-height:76px;padding:8px 10px;resize:vertical;line-height:1.5}input:hover,textarea:hover,.select-trigger:hover{border-color:var(--ink-mute)}input:focus,textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px #ea580c1f}input::placeholder{color:var(--ink-mute)}.form-grid{display:grid;gap:0 var(--s4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.form-row{display:flex;gap:var(--s2);align-items:flex-end;flex-wrap:wrap}.select{position:relative}.select-trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);cursor:pointer;text-align:left}.select-trigger[aria-expanded=true]{border-color:var(--orange);box-shadow:0 0 0 3px #ea580c1f}.select-trigger .chev{color:var(--ink-mute);flex-shrink:0}.select-trigger.placeholder{color:var(--ink-mute)}.select-menu{position:absolute;z-index:40;top:calc(100% + 4px);left:0;right:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-pop);padding:var(--s1);max-height:260px;overflow-y:auto;min-width:100%}.select-option{display:flex;align-items:center;gap:var(--s2);width:100%;padding:6px var(--s2);border:0;background:none;cursor:pointer;font:inherit;font-size:13px;text-align:left;color:var(--ink);border-radius:6px}.select-option:hover,.select-option.active{background:var(--surface-sunk)}.select-option[aria-selected=true]{background:var(--orange-soft);color:var(--orange-dark);font-weight:700}.select-option .tick{margin-left:auto;color:var(--orange)}.toggle{display:inline-flex;align-items:center;gap:var(--s2);cursor:pointer;font-size:13px}.toggle input{position:absolute;opacity:0;width:0;height:0}.toggle .track{width:36px;height:20px;border-radius:20px;background:var(--line);position:relative;transition:background .15s;flex-shrink:0}.toggle .track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow);transition:transform .15s}.toggle input:checked+.track{background:var(--orange)}.toggle input:checked+.track:after{transform:translate(16px)}.toggle input:focus-visible+.track{outline:2px solid var(--orange);outline-offset:2px}.toggle.disabled{opacity:.5;cursor:not-allowed}.segmented{display:inline-flex;background:var(--surface-sunk);padding:2px;border-radius:var(--radius-sm);border:1px solid var(--line);gap:2px;height:var(--control-h)}.segmented button{border:0;background:none;cursor:pointer;font:inherit;font-size:12.5px;font-weight:700;color:var(--ink-soft);padding:0 var(--s3);border-radius:6px;white-space:nowrap;height:100%}.segmented button:hover{color:var(--ink)}.segmented button.active{background:var(--surface);color:var(--orange-dark);box-shadow:var(--shadow)}.error,.notice{border-radius:var(--radius-sm);padding:9px var(--s3);font-size:13px;margin-bottom:var(--s3);border:1px solid}.error{background:var(--neg-soft);color:var(--neg);border-color:#fecaca}.notice{background:var(--orange-soft);color:#7c2d12;border-color:var(--orange-line)}.notice.info{background:var(--info-soft);color:#1e3a8a;border-color:#c7d7fe}.notice.plain{background:var(--surface-sunk);color:var(--ink-soft);border-color:var(--line)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:var(--s4);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{font:inherit;font-size:13px;font-weight:700;cursor:pointer;border:0;background:none;color:var(--ink-soft);padding:var(--s2) var(--s3);border-bottom:2px solid transparent;white-space:nowrap;min-height:38px}.tabs button:hover{color:var(--ink)}.tabs button.active{color:var(--orange-dark);border-bottom-color:var(--orange)}.props{display:grid}.props-row{display:flex;gap:var(--s3);padding:6px 0;font-size:13px;border-bottom:1px solid var(--line-soft)}.props-row:last-child{border-bottom:0}.props-row .k{width:172px;color:var(--ink-mute);flex-shrink:0}.props-row .v{flex:1;min-width:0}.props-row.missing .v{color:var(--neg)}.bar{background:var(--line-soft);border-radius:20px;height:6px;overflow:hidden}.bar>span{display:block;height:100%;background:var(--orange);border-radius:20px}.bar.green>span{background:var(--pos)}.bar.red>span{background:var(--neg)}.share{display:flex;height:8px;border-radius:20px;overflow:hidden;background:var(--line-soft)}.share>span{display:block;height:100%}.issue-row{display:flex;gap:var(--s3);padding:var(--s3) 0;align-items:flex-start;border-bottom:1px solid var(--line-soft)}.issue-row:last-child{border-bottom:0}.issue-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex-shrink:0}.issue-dot.high{background:var(--neg)}.issue-dot.medium{background:var(--warn)}.issue-dot.low{background:var(--ink-mute)}.issue-title{font-weight:700;font-size:13px}.issue-detail{font-size:12.5px;color:var(--ink-soft)}.dropzone{border:1.5px dashed var(--line);border-radius:var(--radius-sm);padding:var(--s4);text-align:center;cursor:pointer;color:var(--ink-soft);font-size:13px;background:var(--surface-sunk);transition:border-color .12s,background .12s}.dropzone:hover,.dropzone.over{border-color:var(--orange);background:var(--orange-soft);color:var(--orange-dark)}.note{border:1px solid var(--line);border-radius:var(--radius);padding:var(--s3) var(--s4);margin-bottom:var(--s3);background:var(--surface);box-shadow:var(--shadow)}.note.pinned{border-color:var(--orange-line);background:var(--orange-soft)}.note-head{display:flex;gap:var(--s2);align-items:center;margin-bottom:6px;font-size:12px;color:var(--ink-mute);flex-wrap:wrap}.note-body{font-size:13px;white-space:pre-wrap;line-height:1.55}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--s4);background:var(--bg)}.login-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--s6) var(--s5);box-shadow:var(--shadow-pop)}.login-card .logo-mark{width:40px;height:40px;font-size:16px;margin-bottom:var(--s4)}.spinner{width:15px;height:15px;border:2px solid var(--line);border-top-color:var(--orange);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;color:var(--ink-mute);padding:var(--s6) var(--s4);font-size:13px}.toolbar{display:flex;gap:var(--s2);align-items:center;margin-bottom:var(--s3);flex-wrap:wrap}.toolbar .search{max-width:280px;flex:1 1 200px}.stack{display:flex;flex-direction:column;gap:var(--s2)}.row{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap}.rowcards,.topbar{display:none}@media(max-width:900px){body{font-size:14.5px}.sidebar{display:none}.main{padding:var(--s3) var(--s3) 84px}.tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:50;background:var(--surface);border-top:1px solid var(--line);padding:4px 4px calc(4px + env(safe-area-inset-bottom));box-shadow:0 -1px 3px #0f172a0f}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border-radius:var(--radius-sm);font-size:10.5px;font-weight:700;color:var(--ink-mute);position:relative;min-height:48px;justify-content:center}.tabbar a.active{color:var(--orange-dark);background:var(--orange-soft)}.tabbar a .count{position:absolute;top:2px;right:calc(50% - 20px);background:var(--neg);color:#fff;border-radius:20px;font-size:9.5px;padding:0 4px;min-width:15px;text-align:center}.topbar{display:flex;align-items:center;gap:var(--s2);margin:0 0 var(--s3)}.topbar .logo-mark{width:26px;height:26px;font-size:11px}.topbar .who{font-size:12px;color:var(--ink-mute);margin-left:auto}h1{font-size:20px}.page-head{gap:var(--s2);margin-bottom:var(--s3)}.page-head .actions{width:100%}.page-head .actions .btn{flex:1}.card{padding:var(--s3);border-radius:var(--radius-sm)}.grid{gap:var(--s2)}.cols-2,.cols-3,.cols-4{grid-template-columns:1fr 1fr}.stat{padding:var(--s2) var(--s3)}.stat .value{font-size:18px}.stat.lead{grid-column:1 / -1}.card.table-card>.table-scroll{display:none}.rowcards{display:flex;flex-direction:column;gap:var(--s2)}.rowcard{border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--s3);background:var(--surface)}.rowcard.clickable{cursor:pointer}.rowcard-head{display:flex;align-items:baseline;gap:var(--s2);margin-bottom:6px;flex-wrap:wrap}.rowcard-head .title{font-weight:700;font-size:14px}.rowcard-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px var(--s3);font-size:12.5px}.rowcard-grid dt{color:var(--ink-mute)}.rowcard-grid dd{font-family:var(--nums);font-variant-numeric:tabular-nums;text-align:right}.props-row{flex-direction:column;gap:1px;padding:5px 0}.props-row .k{width:auto;font-size:11.5px}.form-grid{grid-template-columns:1fr}.segmented{width:100%}.segmented button{flex:1}.toolbar .search{max-width:none}.tabs{margin-bottom:var(--s3)}:root{--control-h: 42px;--control-h-sm: 36px}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),textarea,.select-trigger{font-size:15px}textarea{min-height:88px}.select-option{padding:9px var(--s2);font-size:15px}.toggle .track{width:44px;height:26px}.toggle .track:after{width:22px;height:22px}.toggle input:checked+.track:after{transform:translate(18px)}}@media(max-width:560px){.cols-2,.cols-3,.cols-4{grid-template-columns:1fr}.rowcard-grid{grid-template-columns:1fr 1fr}}
