:root{--ink:#111;--ink-2:#23233a;--graphite:#6b6b70;--muted:#8a8a92;--mist:#f4f4f5;--canvas:#fbfbf9;--white:#fff;--yellow:#ffc800;--yellow-hover:#ffd43d;--line:#11111114;--line-strong:#11111129;--ok:#15803d;--ok-bg:#e8f6ed;--warn:#b45309;--warn-bg:#fdf3e2;--fail:#b91c1c;--fail-bg:#fdecec;--fb:#0866ff;--r:16px;--r-sm:10px;--f-display:"Inter Tight", "Inter", -apple-system, system-ui, sans-serif;--f-text:"Inter", -apple-system, system-ui, sans-serif;--f-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}html,body{margin:0}body{background:var(--canvas);color:var(--ink);font:14px/1.45 var(--f-text);-webkit-font-smoothing:antialiased}h2,h3,h4{font-family:var(--f-display);letter-spacing:-.02em;margin:0}code,.mono{font-family:var(--f-mono);font-size:12.5px}button{font:inherit;color:inherit}input{font:inherit;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--white);flex:1;min-width:0;padding:7px 10px;font-size:13px}input:focus{outline:2px solid var(--yellow);outline-offset:1px}.shell{max-width:1440px;margin:0 auto;padding:18px 24px 48px}.top{justify-content:space-between;align-items:center;gap:12px;padding:6px 0 18px;display:flex}.brand{align-items:center;gap:14px;display:flex}.lockup{height:28px;display:block}.sep{background:var(--line-strong);width:1px;height:22px}.product{font-family:var(--f-display);letter-spacing:-.02em;font-size:18px;font-weight:700}.top-right{align-items:center;gap:10px;display:flex}.chip{border:1px solid var(--line-strong);color:var(--graphite);background:var(--white);border-radius:999px;padding:3px 10px}.live{color:var(--graphite);align-items:center;gap:7px;font-size:13px;font-weight:600;display:inline-flex}.live i{background:var(--muted);border-radius:50%;width:8px;height:8px}.live.on{color:var(--ink)}.live.on i{background:#22c55e;animation:2s infinite pulse;box-shadow:0 0 #22c55e80}@keyframes pulse{70%{box-shadow:0 0 0 7px #22c55e00}to{box-shadow:0 0 #22c55e00}}.kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.kpi{background:var(--ink);color:var(--white);border-radius:var(--r);flex-direction:column;gap:4px;padding:14px 16px;display:flex}.kpi:first-child{background:var(--yellow);color:var(--ink)}.kpi-label{opacity:.72;font-size:12px;font-weight:500}.kpi-value{font-family:var(--f-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.grid{grid-template-columns:380px minmax(0,1fr);align-items:start;gap:16px;display:grid}.col{flex-direction:column;gap:16px;min-width:0;display:flex}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}.card-head{justify-content:space-between;align-items:center;gap:10px;min-height:28px;margin-bottom:12px;display:flex}.card-head h2{font-size:16px}.count{font-family:var(--f-mono);color:var(--graphite);background:var(--mist);border-radius:999px;padding:2px 8px;font-size:12px}.row{border-top:1px solid var(--line);grid-template-columns:112px minmax(0,1fr);align-items:center;gap:10px;padding:8px 0;display:grid}.row:first-of-type{border-top:0}.row-label{color:var(--graphite);font-size:13px}.row-value{align-items:center;min-width:0;display:flex}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.copyval{align-items:center;gap:6px;min-width:0;max-width:100%;display:inline-flex}.copyval code{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.inline-form{gap:6px;width:100%;margin-top:8px;display:flex}.row .inline-form{margin-top:0}.btn{border:1px solid var(--line-strong);background:var(--white);color:var(--ink);border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:8px 13px;font-size:13px;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s,transform .1s;display:inline-flex}.btn:hover:not(:disabled){background:var(--mist)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.sm{border-radius:8px;padding:5px 10px;font-size:12.5px}.btn.primary{background:var(--yellow);border-color:var(--yellow)}.btn.primary:hover:not(:disabled){background:var(--yellow-hover)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--mist)}.btn.fb{background:var(--fb);border-color:var(--fb);color:var(--white)}.btn.fb:hover:not(:disabled){background:#0759dd}.btn.wide{width:100%;padding:10px 14px;font-size:14px}.fb-logo{filter:invert();width:18px;height:18px}.icon-btn{cursor:pointer;color:var(--graphite);background:0 0;border:0;border-radius:6px;padding:4px;display:inline-flex}.icon-btn:hover{background:var(--mist);color:var(--ink)}.link{color:var(--graphite);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:10px 0 0;font-size:13px;display:inline-flex}.link:hover{color:var(--ink)}.pill{white-space:nowrap;background:var(--mist);color:var(--graphite);border-radius:999px;align-items:center;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.fail{background:var(--fail-bg);color:var(--fail)}.pill.ink{background:var(--ink);color:var(--white)}.pages{flex-direction:column;gap:10px;display:flex}.page{border:1px solid var(--line);border-radius:12px;padding:12px}.page-head{align-items:center;gap:10px;display:flex}.avatar{background:var(--mist);object-fit:cover;border-radius:8px;flex:none;width:28px;height:28px}.page-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.page-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.forms{border-top:1px dashed var(--line-strong);flex-direction:column;align-items:flex-start;gap:6px;margin-top:10px;padding-top:10px;display:flex}.form-row{align-items:center;gap:8px;width:100%;display:flex}.form-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;overflow:hidden}.table-wrap{margin:0 -18px -16px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:var(--graphite);border-bottom:1px solid var(--line);background:var(--canvas);white-space:nowrap;padding:8px 12px;font-size:12px;font-weight:600}th:first-child,td:first-child{padding-left:18px}td{border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 12px}tbody tr{cursor:pointer;transition:background-color .15s}tbody tr:hover{background:var(--canvas)}tbody tr.fresh{animation:2.4s ease-out flash}@keyframes flash{0%{background:#ffc8006b}to{background:0 0}}td.strong{font-weight:600}td.clip{text-overflow:ellipsis;max-width:200px;overflow:hidden}.muted{color:var(--muted)}.inline{align-items:center;gap:6px;display:inline-flex}.nowrap{white-space:nowrap}.empty{color:var(--muted);margin:4px 0;font-size:13px}.empty-big{color:var(--muted);flex-direction:column;align-items:center;gap:8px;padding:36px 0;display:flex}.err{color:var(--fail);margin:8px 0 0;font-size:12.5px}.skeleton{background:linear-gradient(90deg, var(--mist), #fafafa, var(--mist));background-size:200% 100%;border-radius:10px;height:64px;animation:1.2s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.feed{max-height:340px;margin:0;padding:0;list-style:none;overflow-y:auto}.feed li{border-top:1px solid var(--line);grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 0;font-size:13px;display:grid}.feed li:first-child{border-top:0}.feed-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.feed time{color:var(--muted);white-space:nowrap;font-size:12px}.feed li.ok svg{color:var(--ok)}.feed li.fail{color:var(--fail)}.feed li.muted{color:var(--graphite)}.overlay{z-index:20;background:#1111115c;justify-content:center;align-items:center;padding:16px;animation:.15s ease-out fade;display:flex;position:fixed;inset:0}.overlay.right{justify-content:flex-end;align-items:stretch;padding:0}@keyframes fade{0%{opacity:0}}.modal{background:var(--white);border-radius:var(--r);width:min(620px,100%);max-height:88vh;padding:18px 20px;animation:.18s cubic-bezier(.2,.9,.3,1.1) pop;overflow-y:auto}@keyframes pop{0%{opacity:0;transform:scale(.97)}}.drawer{background:var(--white);flex-direction:column;align-items:flex-start;gap:12px;width:min(460px,100%);height:100%;padding:18px 20px 32px;animation:.2s cubic-bezier(.2,.9,.3,1) slide;display:flex;overflow-y:auto}@keyframes slide{0%{opacity:0;transform:translate(24px)}}.modal-head{align-items:center;gap:10px;width:100%;margin-bottom:6px;display:flex}.modal-head h3{text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:8px;min-width:0;font-size:17px;display:flex;overflow:hidden}.modal-foot{justify-content:flex-end;margin-top:12px;display:flex}.checking{color:var(--graphite);justify-content:center;align-items:center;gap:10px;padding:28px 0;display:flex}.checks{margin:0;padding:0;list-style:none}.checks li{border-top:1px solid var(--line);align-items:flex-start;gap:10px;padding:10px 0;display:flex}.checks li:first-child{border-top:0}.check-icon{border-radius:50%;flex:none;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.checks li.pass .check-icon{background:var(--ok-bg);color:var(--ok)}.checks li.warn .check-icon{background:var(--warn-bg);color:var(--warn)}.checks li.fail .check-icon{background:var(--fail-bg);color:var(--fail)}.check-body{flex:1;min-width:0}.check-line{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.check-label{font-weight:600}.check-detail{color:var(--graphite);word-break:break-word;font-size:13px}.check-fix{color:var(--ink-2);align-items:center;gap:6px;margin-top:3px;font-size:12.5px;display:flex}.drawer h4{color:var(--graphite);font-size:13px;font-family:var(--f-text);letter-spacing:0;margin-top:8px;font-weight:600}.kv{border:1px solid var(--line);border-radius:12px;width:100%;margin:0;overflow:hidden}.kv div{border-top:1px solid var(--line);grid-template-columns:130px minmax(0,1fr);gap:10px;padding:8px 12px;display:grid}.kv div:first-child{border-top:0}.kv dt{color:var(--graphite);text-overflow:ellipsis;font-size:13px;overflow:hidden}.kv dd{word-break:break-word;margin:0}.errbox{background:var(--fail-bg);width:100%;color:var(--fail);border-radius:12px;flex-direction:column;gap:4px;padding:12px;font-size:13px;display:flex}.errbox span{color:var(--ink-2)}.raw{width:100%}.raw summary{cursor:pointer;color:var(--graphite);font-size:13px}.raw pre{background:var(--ink);color:#e9e9ee;font:12px/1.5 var(--f-mono);border-radius:12px;padding:12px;overflow-x:auto}.login{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;gap:14px;width:min(360px,100%);padding:28px 24px;display:flex}.login-card .brand{justify-content:center;margin-bottom:8px}.login-card input{flex:none;padding:10px 12px;font-size:14px}.login-card .err{margin:0}.toasts{z-index:30;flex-direction:column;gap:8px;max-width:min(380px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--ink);color:var(--white);border-left:4px solid var(--yellow);border-radius:12px;flex-direction:column;gap:2px;padding:10px 14px;font-size:13px;font-weight:500;animation:.18s ease-out pop;display:flex}.toast.fail{border-left-color:#ef4444}.toast.warn{border-left-color:#f59e0b}.toast small{opacity:.75;font-weight:400}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1080px){.grid{grid-template-columns:minmax(0,1fr)}.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=640px){.shell{padding:12px 16px 40px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-value{font-size:22px}.row{grid-template-columns:1fr;gap:4px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
