*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}html{color-scheme:light;text-size-adjust:100%}dd,dl,h1,h2,h3,ol,p,pre,ul{margin:0}button,input,select,textarea{font:inherit;color:inherit;margin:0}table{border-collapse:collapse;width:100%}a{color:inherit}:root{--sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI","PT Sans","Helvetica Neue",sans-serif;--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;--ink:#181b1f;--ink2:#4a5058;--ink3:#7a8089;--line:#e2e5e9;--line2:#eceef1;--paper:#f3f4f6;--card:#fff;--muted:#f1f3f5;--brand:#0f6b5b;--brand-ink:#0b5447;--brand-weak:#e1efeb;--ok:#1d7348;--ok-bg:#e5f3eb;--warn:#8a5300;--warn-bg:#fff1d6;--warn-line:#eed29a;--bad:#ae2318;--bad-bg:#fcebe8;--bad-line:#f2c0b9;--info:#1d4e99;--info-bg:#e7eefa}body{font:13px/1.45 var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);font-size:.92em}.muted{color:var(--ink3)}.ink2{color:var(--ink2)}.small{font-size:12px}.nowrap{white-space:nowrap}.mt8{margin-top:8px}.mt12{margin-top:12px}.mb12{margin-bottom:12px}.row{display:flex;gap:10px;align-items:center}.row.wrap{flex-wrap:wrap}.sp{flex:1 1}.stack{display:flex;flex-direction:column;gap:14px}.shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}.side{background:#fbfbfc;border-right:1px solid var(--line);padding:16px 10px}.brand{display:flex;align-items:center;gap:10px;padding:2px 8px 16px;border-bottom:1px solid var(--line);margin-bottom:12px}.brand-mark{width:26px;height:26px;border-radius:7px;background:#1f2933}.brand b{font-weight:650;font-size:13.5px;display:block}.brand small{color:var(--ink3);font-size:11.5px}.nav{display:flex;flex-direction:column;gap:2px}.nav a{display:block;padding:8px 10px;border-radius:7px;color:#3a414a;font-weight:520;text-decoration:none}.nav a:hover{background:#f0f2f4}.nav a.on{background:#e6eceb;color:#0e1a17;font-weight:640}.top{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:10px 24px;border-bottom:1px solid var(--line);background:#fff}.top .who{color:var(--ink2)}.main{padding:18px 24px 48px}.page-h{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}.page-h h1{font-size:20px;font-weight:680;letter-spacing:-.01em}.page-h p{color:var(--ink2);margin-top:4px;max-width:760px}.crumbs{font-size:12.5px;color:var(--ink3);margin-bottom:6px}.panel{background:var(--card);border:1px solid var(--line);border-radius:10px}.panel-h{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line)}.panel-h h2{font-size:13.5px;font-weight:650}.panel-h p{font-size:12px;color:var(--ink3);margin-top:2px}.panel-b{padding:14px}.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.t{font-size:12.5px}.t th{text-align:left;font-weight:600;color:#59616b;background:#f7f8fa;border-bottom:1px solid var(--line);white-space:nowrap;font-size:11.5px}.t td,.t th{padding:7px 10px}.t td{border-bottom:1px solid var(--line2);vertical-align:top}.t tr:last-child td{border-bottom:0}.t tbody tr:hover td{background:#fafbfc}.t tr.sel td{background:#f2f7f6}.t tr.click{cursor:pointer}.t .r{text-align:right}.t .sub{display:block;font-size:11.5px}.empty,.t .sub{color:var(--ink3)}.empty{padding:28px;text-align:center}.split{grid-template-columns:minmax(0,1fr) 340px;grid-gap:14px;gap:14px;align-items:start}.kv,.split{display:grid}.kv{grid-template-columns:180px 1fr;grid-gap:8px 16px;gap:8px 16px;font-size:12.5px}.kv dt{color:var(--ink3)}.pre{font-family:var(--mono);font-size:11.5px;background:#f6f7f9;border:1px solid var(--line2);border-radius:6px;padding:8px 10px;white-space:pre-wrap;word-break:break-all;color:#2b323a}.was{color:#8a2f25}.now{color:#1d5e3a}.cap{font-size:11px;color:var(--ink3);display:block}.chip{display:inline-flex;align-items:center;gap:5px;padding:1px 8px;border-radius:999px;font-size:11.5px;font-weight:550;line-height:1.6;white-space:nowrap;border:1px solid transparent}.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.mut{background:var(--muted);color:var(--ink2)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.bad{background:var(--bad-bg);color:var(--bad)}.chip.info{background:var(--info-bg);color:var(--info)}.chip.line{background:#fff;border-color:var(--line);color:var(--ink2)}.chips{gap:4px;flex-wrap:wrap}.btn,.chips{display:inline-flex}.btn{align-items:center;justify-content:center;gap:6px;height:32px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:#fff;font-weight:560;white-space:nowrap;cursor:pointer}.btn:hover{background:#fafbfc;border-color:#d6d9de}.btn.pri{background:var(--brand);border-color:var(--brand);color:#fff}.btn.pri:hover{background:var(--brand-ink)}.btn.danger{border-color:var(--bad-line);color:var(--bad)}.btn.sm{height:28px;padding:0 10px;font-size:12.5px;border-radius:7px}.btn.xs{height:24px;padding:0 8px;font-size:12px;border-radius:6px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.locked{background:#f4f4f2;border-style:dashed;color:var(--ink2);opacity:1}.lock-wrap{display:inline-flex;flex-direction:column;gap:2px;align-items:flex-start}.lock-hint{font-size:11px;color:#5a616b}.link{color:var(--brand-ink);text-decoration:underline;-webkit-text-decoration-color:rgba(15,107,91,.35);text-decoration-color:rgba(15,107,91,.35);text-underline-offset:2px;cursor:pointer;background:none;border:0;padding:0}.actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field label{font-size:12.5px;font-weight:600;color:var(--ink2)}.field .hint{font-size:12px;color:var(--ink3)}.field .err{font-size:12px;color:var(--bad)}.inp{width:100%;height:32px;border:1px solid #d8d4ca;border-radius:8px;padding:0 10px;background:#fff}textarea.inp{height:auto;min-height:72px;padding:8px 10px;resize:vertical;line-height:1.4}.inp:focus{outline:2px solid rgba(15,107,91,.25);border-color:var(--brand)}.inp.color{width:48px;padding:2px}.check{display:inline-flex;gap:6px;align-items:center;cursor:pointer}.note{border-radius:8px;padding:9px 12px;font-size:12.5px;line-height:1.45}.note.warn{background:var(--warn-bg);color:#5e3b00}.note.info{background:var(--info-bg);color:#1a3d74}.note.mut{background:var(--muted);color:var(--ink2)}.note.bad{background:var(--bad-bg);color:#7d1a12}.note.ok{background:var(--ok-bg);color:#14532d}.note ul{margin:6px 0 0;padding-left:18px}.chead{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:12px}.chead h2{font-size:18px;font-weight:680}.chead .meta{color:var(--ink3);font-size:12.5px;margin-top:2px}.strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px;margin-top:12px}.tile{border:1px solid var(--line2);border-radius:8px;padding:8px 10px}.tile .l{font-size:11.5px;color:var(--ink3)}.tile .v{font-size:15px;font-weight:650;margin-top:2px}.tile .s{font-size:11.5px;color:var(--ink2)}.tile.ok{border-top:3px solid #2e9c63}.tile.warn{border-top:3px solid #d08a16}.tile.bad{border-top:3px solid var(--bad)}.tile.none{border-top:3px solid var(--line)}.tabs{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--line);margin-bottom:12px}.tabs a{padding:8px 10px;border-bottom:2px solid transparent;color:#4b535d;white-space:nowrap;font-weight:520;text-decoration:none}.tabs a.on{border-color:#1f2933;color:#111;font-weight:640}.origin{font-size:11px;font-weight:600;padding:1px 6px;border-radius:4px;white-space:nowrap}.origin.scan{background:#eaf0fa;color:#2a4f8c}.origin.manual{background:#f4eedf;color:#7a5a16}.publish-bar{background:#fff;border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:10px;padding:12px 14px}.msg{border:1px solid var(--line2);border-radius:10px;padding:10px 12px}.msg.user{background:#edf0f3}.msg .who{color:var(--ink3);margin-bottom:4px;display:flex;flex-wrap:wrap}.msg .who,.src{font-size:11.5px;gap:6px}.src{display:inline-flex;color:var(--brand-ink);background:var(--brand-weak);border-radius:6px;padding:2px 8px}.modal-bg{position:fixed;inset:0;background:rgba(18,20,24,.45);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:#fff;border-radius:14px;width:min(720px,100%);max-height:calc(100vh - 40px);overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.28)}.modal-h{padding:18px 22px 0;display:flex;justify-content:space-between;gap:16px}.modal-h h3{font-size:17px;font-weight:650}.modal-h p{color:var(--ink3);font-size:12.5px;margin-top:3px}.modal-x{width:30px;height:30px;border-radius:8px;border:0;background:none;color:var(--ink3);font-size:20px;cursor:pointer}.modal-b{padding:14px 22px}.modal-f{padding:4px 22px 18px;justify-content:flex-end;gap:8px}.login,.modal-f{display:flex;align-items:center}.login{min-height:100vh;justify-content:center;padding:24px}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px}.login-card h1{font-size:18px;font-weight:680;margin-bottom:4px}.login-card p{color:var(--ink2);margin-bottom:16px}@media (max-width:1100px){.split,.strip{grid-template-columns:1fr}}.tenant-box{padding:0 8px 12px;margin-bottom:8px;border-bottom:1px solid var(--line)}.tenant-box b{display:block;font-size:13px;font-weight:650;overflow-wrap:anywhere}.metrics{margin-top:0}.metrics .tile .s{margin-top:4px}.period .inp.date{width:150px}.err-text{color:var(--bad)}.pager{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-top:1px solid var(--line2)}.filters{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end}.filters .field{margin-bottom:0}.filters form.row{align-items:flex-end}.filters .inp{width:320px}.lead-box{display:grid;grid-template-columns:140px 1fr;grid-gap:6px 14px;gap:6px 14px;font-size:12.5px}.lead-box dt{color:var(--ink3)}