:root{--bg:#0e0f10;--panel:#17191b;--panel2:#202326;--line:#2c3034;--text:#eef2f4;--muted:#9099a1;--green:#18c98b;--purple:#a46cff;--red:#ff6572}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,"Noto Sans KR",sans-serif;font-size:14px}a{color:inherit;text-decoration:none}.wrap{width:min(1180px,calc(100% - 32px));margin:auto}
.topbar{height:58px;background:#151719;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.topin{height:58px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:10px;align-items:center;font-weight:900}.brandmark{width:30px;height:30px;border-radius:8px;background:var(--green);color:#06271c;display:grid;place-items:center}.topbar nav{display:flex;gap:5px}.topbar nav a{padding:9px 11px;border-radius:8px;color:var(--muted)}.topbar nav a:hover{background:#202326;color:#fff}
.hero{padding:34px 0 20px}.hero h1{font-size:28px;margin:0 0 9px}.hero p,.muted{color:var(--muted)}.hero-row{display:flex;justify-content:space-between;gap:20px}.tabs,.filters{display:flex;gap:8px;flex-wrap:wrap}.tabs{border-bottom:1px solid var(--line);padding-bottom:15px}.tab,.chip,.select{padding:9px 12px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:#151719}.tab.active,.chip.active{background:var(--green);border-color:var(--green);color:#06271c;font-weight:800}.filters{padding:14px 0}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px}.rank{display:grid;grid-template-columns:50px 56px 1fr 135px;gap:16px;align-items:center;padding:18px;margin:12px 0;border-left:3px solid var(--purple)}.rankno{text-align:center;font-size:20px;font-weight:900}.avatar{width:56px;height:56px;border-radius:50%;background:#272b2f;border:1px solid #353a3f;object-fit:cover;display:grid;place-items:center;font-weight:900}.rank h3{margin:0 0 7px}.meta{color:var(--muted);font-size:12px;margin-bottom:10px}.metrics{display:flex;gap:15px;flex-wrap:wrap}.metrics b{color:#fff}.up{color:var(--green)!important}.down{color:var(--red)!important}.score{text-align:right}.score strong{display:block;font-size:26px}.grade{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#2a203d;color:#c6a5ff;font-weight:900}.empty{padding:55px;text-align:center;color:var(--muted)}
.grid4,.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.kpi,.card{padding:18px}.kpi small{color:var(--muted)}.kpi strong{display:block;font-size:24px;margin-top:7px}.section{margin:22px 0}.section h2{font-size:18px}.tablewrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:13px;border-bottom:1px solid var(--line);text-align:left}.table th{color:var(--muted);font-size:12px}
.detailhead{margin:30px 0 16px;display:flex;align-items:center;gap:15px}.detailhead h1{margin:0 0 6px}
.form{max-width:600px;margin:40px auto;padding:24px}.field{margin-bottom:14px}.field label{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}.input{width:100%;padding:11px 12px;background:#111315;color:#fff;border:1px solid var(--line);border-radius:8px}.btn{padding:10px 14px;border-radius:8px;border:1px solid var(--line);background:#25292d;color:#fff;cursor:pointer}.primary{background:var(--green);border-color:var(--green);color:#06271c;font-weight:900}.notice{padding:12px;border:1px solid #26503f;background:#17231e;border-radius:8px;margin-bottom:14px}
.adminshell{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 58px)}.adminside{border-right:1px solid var(--line);padding:16px}.adminside a{display:block;padding:10px;border-radius:7px;color:var(--muted)}.adminside a:hover{background:#202326;color:#fff}.adminmain{padding:22px}
footer{margin-top:60px;padding:25px 0;border-top:1px solid var(--line);color:var(--muted)}
@media(max-width:820px){.rank{grid-template-columns:38px 48px 1fr}.score{grid-column:3;text-align:left}.grid4,.cards{grid-template-columns:repeat(2,1fr)}.adminshell{grid-template-columns:1fr}.adminside{display:flex;overflow:auto;border-right:0;border-bottom:1px solid var(--line)}.adminside a{white-space:nowrap}}
@media(max-width:520px){.wrap{width:calc(100% - 20px)}.grid4,.cards{grid-template-columns:1fr}.rank{padding:13px;gap:9px}.avatar{width:46px;height:46px}.topbar nav a{padding:7px}.metrics{gap:8px}}


/* v0.1.1 ranking intelligence */
.ranktools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:13px 0}.segmented{display:inline-flex;background:#17191b;border:1px solid var(--line);border-radius:9px;padding:3px}.segmented a{padding:7px 11px;border-radius:6px;color:var(--muted);font-size:12px}.segmented a.active{background:#30353a;color:#fff}.check{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.check input{accent-color:var(--green)}.rank-subline{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:#22262a;color:#aeb7be;font-size:11px;border:1px solid #30353a}.badge.green{background:#102920;border-color:#1f5a43;color:#63dda9}.badge.blue{background:#152433;border-color:#254866;color:#7fc3ff}.badge.purple{background:#241b33;border-color:#453262;color:#c7a6ff}.rank-side{display:flex;align-items:center;justify-content:flex-end;gap:14px}.spark{width:112px;height:34px;overflow:visible}.spark polyline,.spark path{fill:none;stroke:#8a949d;stroke-width:2}.score small{display:block}.score-meta{font-size:11px;color:var(--muted);margin-top:3px}.score-meta.up{color:var(--green)}.score-meta.down{color:var(--red)}.rank-note{font-size:12px;color:var(--muted);margin:4px 0 13px}.selectbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.select{appearance:auto}.filter-count{margin-left:auto;color:var(--muted);font-size:12px}
.bigchart{height:255px;padding:12px 10px 6px}.bigchart svg{width:100%;height:220px}.chartline{fill:none;stroke:var(--green);stroke-width:3;vector-effect:non-scaling-stroke}.gridline{stroke:#30353a;stroke-width:1;vector-effect:non-scaling-stroke}.chart-legend{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.chart-empty{padding:50px;text-align:center;color:var(--muted)}.detail-actions{margin-left:auto;display:flex;gap:8px}.linkbtn{display:inline-flex;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:#191c1f}.indicator-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.indicator{padding:16px}.indicator .bar{height:6px;background:#292e32;border-radius:99px;overflow:hidden;margin-top:10px}.indicator .bar i{display:block;height:100%;background:var(--green);border-radius:99px}.candidate-source{font-size:11px;color:var(--muted)}.toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0}.inlineform{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.input.sm,.select.sm{width:auto;padding:8px 9px}.status-pending{color:#ffd167}.status-approved{color:var(--green)}.status-ignored{color:var(--muted)}
@media(max-width:900px){.rank{grid-template-columns:42px 52px 1fr}.rank-side{grid-column:3;justify-content:flex-start}.indicator-grid{grid-template-columns:1fr}.detail-actions{margin-left:0}.detailhead{flex-wrap:wrap}}

/* v0.1.2~v0.1.11 service intelligence */
.search-panel{padding:14px;margin:14px 0}.search-grid{display:grid;grid-template-columns:2fr repeat(3,1fr) 1fr 1fr auto auto;gap:8px;align-items:center}.pagination{display:flex;gap:6px;justify-content:center;margin:24px 0}.pagination a{min-width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;color:var(--muted)}.pagination a.active{background:var(--green);border-color:var(--green);color:#06271c;font-weight:900}.badge.warn{background:#332719;border-color:#65502b;color:#ffd27b}.notice.neutral{background:#171c22;border-color:#29323c;color:#aeb7c0}.range-tabs{display:flex;gap:6px;margin:18px 0}.range-tabs a{padding:8px 11px;border:1px solid var(--line);border-radius:8px;color:var(--muted)}.range-tabs a.active{background:#283038;color:#fff}.score-components{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.component{padding:14px}.component span{display:block;color:var(--muted);font-size:12px}.component b{display:block;font-size:20px;margin:5px 0 9px}.bar{height:6px;background:#292e32;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:var(--green);border-radius:99px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.post-mini{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.post-mini:last-child{border-bottom:0}.post-mini span{min-width:0;color:#c5cdd3}.post-mini b{white-space:nowrap}.mini-bars{height:112px;display:flex;align-items:flex-end;gap:3px;overflow-x:auto;padding:8px 0 4px}.mini-bar{height:100px;min-width:20px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}.mini-bar i{display:block;width:12px;min-height:4px;border-radius:4px 4px 2px 2px;background:#66727c}.mini-bar span{font-size:9px;color:var(--muted);white-space:nowrap}.anomaly-head{display:flex;justify-content:space-between;align-items:center}.anomaly-head b{font-size:22px}.admin-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.admin-title h1{margin-top:0}.ops-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.ops-card{padding:18px}.ops-card span,.ops-card small{display:block;color:var(--muted)}.ops-card b{display:block;font-size:30px;margin:6px 0}.status-list{display:grid;grid-template-columns:1fr auto;gap:12px;margin:0}.status-list dt{color:var(--muted)}.status-list dd{margin:0;text-align:right}.status-pill{display:inline-flex;padding:4px 7px;border-radius:999px;border:1px solid #394047;background:#24292e;font-size:11px}.status-ok,.status-valid,.status-approved{color:#63dda9;border-color:#225840;background:#11281f}.status-fail,.status-invalid{color:#ff8b95;border-color:#65353a;background:#30191c}.status-wait,.status-queued,.status-running,.status-new,.status-error{color:#ffd17a;border-color:#68532a;background:#332817}.error-cell{max-width:340px;color:#d3a4a8}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .span2{grid-column:span 2}.weight-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.settings-stack{display:grid;gap:14px;max-width:980px}.input.narrow{width:76px}.btn:disabled{opacity:.45;cursor:not-allowed}.adminside{position:sticky;top:58px;align-self:start;max-height:calc(100vh - 58px);overflow:auto}.adminmain{min-width:0}.table td{vertical-align:middle}.table code{font-size:11px}
@media(max-width:1100px){.search-grid{grid-template-columns:1fr 1fr 1fr 1fr}.score-components,.ops-grid,.weight-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.search-grid,.form-grid,.two-col{grid-template-columns:1fr}.form-grid .span2{grid-column:auto}.score-components,.ops-grid,.weight-grid{grid-template-columns:1fr}.mini-bars{gap:1px}.mini-bar{min-width:17px}.admin-title{display:block}.admin-title>.btn{margin-bottom:10px}}


/* v0.1.13 public discovery */
textarea.input{height:auto;padding-top:10px;padding-bottom:10px;resize:vertical}

/* v0.1.14 external seed */
.seed-source-note{font-size:12px;color:var(--muted)}

/* v0.1.15 manual seed */
.seed-help{padding:12px;border:1px dashed var(--line);border-radius:9px;color:var(--muted)}


/* v0.1.16 TeleWiki API importer */
.api-flow{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:10px 0 16px}
.api-flow span{padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#121416}
.api-flow b{color:var(--green)}
.json-view{margin:0;max-height:75vh;overflow:auto;white-space:pre-wrap;word-break:break-word;font:12px/1.55 Consolas,Monaco,monospace;color:#dfe7eb}
