@font-face{font-family:"Didi Pretendard";src:url("/assets/pretendard.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}
:root{--dw-blue:#315cff;--dw-lime:#92fa72;--dw-ink:#000000;--dw-line:#e2e7ed;--dw-muted:#59616a;--blue:#315cff;--blue-soft:#edf1ff;--accent:#315cff;--accent-soft:#edf1ff;--ink:#000000;--paper:#f5f7fa;--text:#000000}
body{font-family:"Didi Pretendard","Pretendard Variable","Malgun Gothic",sans-serif;font-size:16px;line-height:1.55;font-variant-numeric:tabular-nums}
button,input,select,textarea{font-family:inherit}button,a,input,select,summary,textarea{scroll-margin-top:90px}:focus-visible{outline:3px solid #315cff;outline-offset:3px}[hidden]{display:none!important}
.dw-sidebar,#rank-sidebar{position:fixed;inset:0 auto 0 0;width:238px;height:100dvh;background:#17202d;color:#d0d9e5;padding:20px 13px;z-index:40;display:flex;flex-direction:column;overflow-y:auto}
.dw-sidebrand,#rank-sidebar>.brand{display:block;margin:0 9px 24px;padding:14px 12px;background:white;border:0;border-radius:10px;line-height:1;color:var(--dw-ink);text-decoration:none}
.dw-logo{display:block;width:139px;height:38px;object-fit:contain}.dw-sidebrand small,#rank-sidebar>.brand small{display:block;font-size:13px;letter-spacing:.07em;margin:10px 0 0;color:#303030;font-weight:600}
.dw-nav-label,#rank-sidebar nav>p{font-size:13px;color:#8f9eaf;letter-spacing:.08em;padding:0 12px;margin:15px 0 8px;font-weight:600}
.dw-sidebar .view-tabs{display:flex;flex-direction:column;gap:4px;padding:0;margin:0;border:0;background:transparent;border-radius:0;width:100%;overflow:visible}
.dw-sidebar .view-tab,.dw-side-link,#rank-sidebar nav a{display:flex;align-items:center;gap:10px;min-height:43px;width:100%;padding:9px 12px;border:1px solid transparent;border-radius:7px;background:transparent;text-align:left;color:#c0cbd9;font-size:15px;font-weight:550;text-decoration:none;line-height:1.5}
.dw-sidebar .view-tab:hover,.dw-side-link:hover,#rank-sidebar nav a:hover{background:#ffffff09;color:#fff}.dw-sidebar .view-tab.active,.dw-side-link.active,#rank-sidebar nav a.active{background:#eaf0ff;border-color:#eaf0ff;color:#234cda;box-shadow:none}
.dw-sidebar .view-tab:before{content:attr(data-symbol);display:grid;place-items:center;width:22px;height:22px;font-size:14px;opacity:.8;border:1px solid currentColor;border-radius:5px}.dw-sidebar .view-tab b{margin-left:auto;font-size:14px}.dw-side-link:before{content:'↗';width:22px;text-align:center;color:var(--dw-lime)}
.dw-sidefoot,#rank-sidebar .sidefoot{margin-top:auto;padding:24px 10px 3px;border:0;color:#94a3b5;font-size:14px;line-height:1.8}.dw-sidefoot strong{font-size:14px;color:#dce6f1;display:block}.dw-sidefoot:before{content:'';display:block;width:26px;height:3px;background:var(--dw-lime);margin-bottom:13px}
.dw-admin:not(.dw-rank)>.topbar{margin-left:238px;height:66px;position:sticky;top:0;z-index:25;background:#ffffffed;backdrop-filter:blur(12px)}
.dw-admin .topbar-inner{width:auto;padding:0 28px;gap:15px}.dw-admin .top-actions{gap:9px}.dw-admin .live{font-size:14px}.dw-admin .icon-btn,.dw-admin .logout-btn{height:33px;padding:0 10px;font-size:14px}
.dw-admin main.shell{width:calc(100% - 294px);max-width:1550px;margin:0 28px 0 266px;padding:27px 0 35px}.dw-admin .page-head{margin-bottom:19px}.dw-admin .page-head h1{font-size:28px;color:#000000}.dw-admin .page-head p{font-size:15px}.dw-admin .metrics{gap:10px;margin-bottom:13px}.dw-admin .metrics article{padding:15px 17px;border-radius:9px}.dw-admin .metrics strong{font-size:26px;margin:7px 0 5px}.dw-admin .metrics span{font-size:14px}.dw-admin .metrics small{font-size:14px}.dw-admin .panel{padding:18px;border-radius:9px}.dw-admin .panel-head h2{font-size:16px}.dw-admin .range button.active,.dw-admin .site-filters button.active,.dw-admin .visit-tabs button.active,.dw-admin .rank-tabs button.active{background:#edf1ff;color:#254cda;border-color:#b7c6ff}.dw-admin .visit-tabs{margin-top:12px}.dw-admin .badge{white-space:nowrap}.dw-admin .sites-view .page-head h1{font-size:26px}.dw-admin td{font-size:14px}.dw-admin th{font-size:14px}.dw-admin .snapshot-time{font-size:14px}.dw-workspaces{display:flex;gap:4px;align-items:center;min-width:0;padding:3px;border-radius:8px;background:#f0f3f7;overflow:auto;white-space:nowrap}.dw-workspaces>a{display:block;margin:0;padding:7px 12px;border:0;border-radius:5px;background:none;box-shadow:none;color:#303030;text-decoration:none;font-size:14px;font-weight:600;line-height:1.4;flex-shrink:0}.dw-workspaces>a[aria-current=page]{background:#fff;color:#244cdf;box-shadow:0 1px 4px #1720310c}
.dw-menu{display:none;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid #dbe2ec;background:#fff;color:#26364b;border-radius:6px;font-size:18px}.dw-shade{display:none}.dw-top-left{display:flex;align-items:center;gap:10px;min-width:0}.dw-admin .login-brand{justify-content:flex-start}.dw-admin.login-page .login-copy{font-size:15px}.dw-admin.login-page .login-submit{background:var(--dw-blue)}
.dw-rank .stage{margin-left:238px;width:calc(100% - 238px)}.dw-rank .topbar{height:66px;padding:0 28px;background:#ffffffed;border-color:var(--dw-line)}.dw-rank main{max-width:1600px;padding:27px 28px 40px}.dw-rank .pagehead{margin-bottom:22px}.dw-rank h1{font-size:28px;letter-spacing:-.035em}.dw-rank .eyebrow{font-size:13px;letter-spacing:.09em}.dw-rank section{padding:19px;margin:16px 0;border-radius:9px;box-shadow:none}.dw-rank .metrics article{min-height:100px;padding:16px 18px;border-radius:9px;box-shadow:none}.dw-rank .metrics strong{font-size:26px;margin-top:12px}.dw-rank .metrics .textmetric{font-size:20px}.dw-rank .banner{padding:11px 14px;font-size:14px;margin:14px 0;background:#f0f4ff;border-color:#dae3ff;color:#303030}.dw-rank .board{padding:13px 0}.dw-rank .board-compact{padding:13px 0}.dw-rank h2{font-size:16px}.dw-rank .board h3{font-size:16px}.dw-rank .board p{font-size:14px}.dw-rank button,.dw-rank .button{min-height:36px;font-size:15px}.dw-rank .filters{gap:10px}.dw-rank input,.dw-rank select{min-height:37px}.dw-rank #rank-sidebar nav{gap:4px;margin-top:0}.dw-rank #rank-sidebar nav a{display:grid;grid-template-columns:25px minmax(0,1fr);padding:10px 11px}.dw-rank #rank-sidebar .navicon{width:24px;height:24px;font-size:13px;border-radius:5px}.dw-rank #rank-sidebar nav strong{font-size:15px}.dw-rank #rank-sidebar nav small{font-size:13px;margin-top:2px}.dw-rank .topbar .quiet{padding:0 9px;min-height:33px;border:1px solid #d4dce6;border-radius:6px;background:white;font-size:14px}.dw-rank.login section{padding:30px}.dw-rank.login .brand{background:none;border-bottom:1px solid var(--dw-line);padding:0 0 22px}.dw-rank.login h1{font-size:25px}
@media(min-width:1900px){.dw-admin main.shell{margin-left:auto;margin-right:auto;transform:translateX(119px)}}
@media(max-width:1150px){.dw-admin .metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.dw-admin .blocked-metrics,.dw-admin .monitor-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dw-rank .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dw-admin .live{display:none}.dw-workspaces>a{padding:7px 9px}.dw-rank .filters{flex-wrap:wrap}}
@media(max-width:760px){.dw-sidebar,#rank-sidebar{width:238px;transform:translateX(-100%);visibility:hidden;transition:transform .18s ease}.dw-nav-open .dw-sidebar,.menu-open #rank-sidebar{transform:none;visibility:visible}.dw-nav-open .dw-shade{display:block;position:fixed;inset:0;background:#10233c55;z-index:35;border:0}.dw-menu{display:inline-flex}.dw-admin:not(.dw-rank)>.topbar{margin-left:0;height:61px}.dw-admin .topbar-inner{padding:0 12px;gap:8px}.dw-admin .top-actions{gap:5px}.dw-admin main.shell{width:calc(100% - 28px);margin:0 14px;padding:23px 0 30px;transform:none}.dw-admin .top-actions .icon-btn{font-size:0;width:31px;padding:0}.dw-admin .top-actions .icon-btn:before{content:'↻';font-size:18px}.dw-workspaces{gap:0;padding:3px}.dw-workspaces>a{font-size:14px;padding:7px 8px}.dw-admin .logout-btn{font-size:14px;padding:0 7px}.dw-admin .page-head h1,.dw-rank h1{font-size:25px}.dw-admin .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dw-admin .sites-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.dw-admin .metrics article{padding:13px}.dw-admin .metrics strong{font-size:23px}.dw-admin .range{margin-top:14px}.dw-admin .visit-tabs button{min-width:57px;padding:0 5px;font-size:14px}.dw-admin .panel{padding:14px}.dw-admin .panel-head{gap:10px}.dw-admin .main-grid{grid-template-columns:1fr}.dw-rank .stage{margin-left:0;width:100%}.dw-rank .topbar{height:61px;padding:0 12px;gap:8px}.dw-rank .topbar-left{gap:8px;min-width:0}.dw-rank .menu-toggle{width:27px;flex-shrink:0}.dw-rank main{padding:23px 14px 35px}.dw-rank section{padding:15px}.dw-rank .topbar .quiet{padding:0 7px;font-size:14px}.dw-rank .formgrid{grid-template-columns:1fr}.dw-rank .pagehead{margin-bottom:20px}.dw-rank .metrics article{padding:14px;min-height:98px}.dw-rank .metrics strong{font-size:24px}.dw-admin .topbar-inner .dw-logo{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

/* Operations and customer views share the same readable defaults. */
.dw-admin { font-size:16px; line-height:1.65; color:#000; }
.dw-admin td { font-size:16px; }
.dw-admin th { font-size:15px; }
.dw-admin .page-head p { font-size:16px; }
.dw-admin .panel h2, .dw-admin .panel-head h2 { font-size:20px; color:#000; }
.dw-admin .metrics span { font-size:15px; color:#303030; }
.dw-admin .metrics strong { font-size:30px; color:#000; }
.dw-admin .metrics small { font-size:14px; color:#454545; }
.dw-admin .icon-btn, .dw-admin .logout-btn { min-height:40px; font-size:15px; font-weight:600; }
.dw-admin .dw-sidebar .view-tab, .dw-side-link { font-size:15px; min-height:46px; color:#f5f7fa; }
.dw-admin .dw-sidebar .view-tab.active { color:#193eb1; }
.dw-admin .dw-nav-label { color:#d0d9e5; }
.dw-admin .dw-sidefoot { color:#d0d9e5; }
.dw-admin .dw-workspaces>a { font-size:15px; }
.dw-admin .live { font-size:14px; }
@media(max-width:760px) {
  .dw-admin .topbar-inner { flex-wrap:wrap; height:auto; min-height:61px; padding-top:8px; padding-bottom:8px; }
  .dw-admin:not(.dw-rank)>.topbar { height:auto; }
  .dw-admin .top-actions { margin-left:auto; }
  .dw-admin .dw-workspaces>a { font-size:14px; padding:7px 8px; }
  .dw-admin .visit-tabs button { font-size:14px; min-height:40px; }
}

/* Refined operations UI: quiet navigation, readable data, restrained status accents.
   References: Linear UI redesign; Vercel Geist color and table guidelines. */
:root { --bg:#fafafa; --surface-soft:#fafafa; --line:#e4e6e9; --line-strong:#cdd1d7; --dw-line:#e4e6e9; --dw-blue:#334155; --blue:#2348a6; --blue-soft:#f0f3f9; --text:#000; --muted:#383c43; --faint:#50545c; }
.dw-admin { background:#fafafa; color:#000; letter-spacing:-.015em; }
.dw-admin .dw-sidebar { background:#f6f7f9; border-right:1px solid #e4e6e9; color:#222; padding:20px 14px; }
.dw-admin .dw-sidebrand { margin:0 10px 28px; padding:8px 2px; background:transparent; border-radius:0; box-shadow:none; }
.dw-brand-wordmark { display:block; color:#63666d; font-size:12px; font-weight:500; letter-spacing:.045em; line-height:1.5; }
.dw-brand-context { display:block; margin-top:9px; color:#30343b; font-size:14px; font-weight:600; letter-spacing:-.02em; line-height:1.5; }
.dw-admin .dw-nav-label { margin:18px 0 8px; font-size:13px; font-weight:500; color:#50545c; letter-spacing:0; }
.dw-admin .dw-sidebar .view-tab, .dw-admin .dw-side-link { color:#30343b; font-size:15px; font-weight:500; border:0; min-height:44px; border-radius:7px; }
.dw-admin .dw-sidebar .view-tab:before { border:0; border-radius:0; opacity:1; color:#626873; font-size:12px; width:20px; }
.dw-admin .dw-sidebar .view-tab.active { color:#000; background:transparent; font-weight:650; }
.dw-admin .dw-sidebar .view-tab:hover, .dw-admin .dw-side-link:hover { color:#000; background:transparent; }
.dw-admin .dw-side-link:before { color:#626873; }
.dw-admin .dw-sidefoot { border-top:1px solid #e1e4e8; color:#50545c; font-size:13px; padding-top:18px; }
.dw-admin .dw-sidefoot:before { display:none; }
.dw-admin .dw-sidefoot strong { color:#383c43; font-size:13px; font-weight:500; }
.dw-admin:not(.dw-rank)>.topbar { background:#ffffffef; border-bottom-color:#e4e6e9; backdrop-filter:blur(12px); }
.dw-admin .dw-workspaces { padding:0; gap:20px; border-radius:0; background:transparent; }
.dw-admin .dw-workspaces>a { padding:10px 0; font-size:14px; font-weight:500; color:#454952; border-radius:0; }
.dw-admin .dw-workspaces>a[aria-current=page] { color:#000; background:transparent; box-shadow:inset 0 -2px #25282d; font-weight:650; }
.dw-admin .live { color:#454952; font-size:14px; }
.dw-admin .page-head h1 { font-size:28px; font-weight:650; letter-spacing:-.04em; }
.dw-admin .page-head p { color:#383c43; font-size:16px; }
.dw-admin .panel { border:1px solid #e4e6e9; border-radius:12px; box-shadow:none; padding:22px; }
.dw-admin .panel h2, .dw-admin .panel-head h2 { font-size:18px; font-weight:650; color:#000; letter-spacing:-.025em; }
.dw-admin .metrics { gap:0; border:1px solid #e4e6e9; border-radius:12px; background:#fff; overflow:hidden; }
.dw-admin .metrics article { border:0; border-right:1px solid #e9eaed; border-radius:0; background:transparent; padding:20px; }
.dw-admin .metrics article:last-child { border-right:0; }
.dw-admin .metrics span { color:#383c43; font-size:15px; }
.dw-admin .metrics strong { font-size:29px; font-weight:600; letter-spacing:-.03em; }
.dw-admin .metrics small { color:#50545c; line-height:1.65; }
.dw-admin th { color:#30343b; font-size:14px; font-weight:600; background:#fafafa; border-color:#e4e6e9; padding:13px 16px; }
.dw-admin td { color:#000; font-size:16px; font-weight:450; border-bottom-color:#e9eaed; }
.dw-admin tbody tr:nth-child(even) { background:transparent; }
.dw-admin tbody tr:hover { background:#f7f8fa; }
.dw-admin td .secondary { color:#41454d; font-size:14px; font-weight:400; line-height:1.65; }
.dw-admin .badge { display:inline-flex; align-items:center; gap:7px; padding:4px 9px; border:0; border-radius:6px; font-size:14px; font-weight:600; line-height:1.55; background:#f0f1f3; color:#383c43; }
.dw-admin .badge:before { content:''; width:6px; height:6px; flex:0 0 6px; border-radius:50%; background:currentColor; }
.dw-admin .badge.good, .dw-admin .badge.up, .dw-admin .badge.success { color:#11633e; background:#eef7f1; }
.dw-admin .badge.bad, .dw-admin .badge.down, .dw-admin .badge.failed { color:#a32435; background:#fcf0f1; }
.dw-admin .badge.warn, .dw-admin .badge.warning { color:#7a4b09; background:#fcf5e9; }
.dw-admin .badge.pending, .dw-admin .badge.unknown { color:#41454d; background:#f0f1f3; }
.dw-admin .badge.running { color:#254ba0; background:#eef2fb; }
.dw-admin .status { min-width:3.3em; padding:3px 7px; border:0; border-radius:5px; font-size:15px; font-weight:600; }
.dw-admin .status.s2 { color:#11633e; background:#eef7f1; }
.dw-admin .status.s3 { color:#254ba0; background:#eef2fb; }
.dw-admin .status.s4 { color:#7a4b09; background:#fcf5e9; }
.dw-admin .status.s5 { color:#a32435; background:#fcf0f1; }
.dw-admin .icon-btn, .dw-admin .logout-btn { min-height:38px; border-color:#d9dce1; border-radius:7px; font-size:14px; font-weight:500; color:#25282d; }
.dw-admin .range, .dw-admin .visit-tabs { border-color:#e4e6e9; border-radius:8px; }
.dw-admin .range button.active, .dw-admin .visit-tabs button.active, .dw-admin .rank-tabs button.active, .dw-admin .site-filters button.active { background:#eceef2; color:#000; border-color:#d4d8df; }
.dw-admin .collector-banner { border:1px solid #e4e6e9; background:#f6f7f9; color:#383c43; border-radius:8px; }
.dw-admin .collector-banner.stale { background:#fcf5e9; color:#7a4b09; border-color:#ecdfc6; }
.dw-admin .history-filter .site-options label { border-color:#d9dce1; border-radius:7px; font-weight:500; }
.dw-admin .site-options label:has(input:checked) { background:#f0f2f5; border-color:#9ca4af; color:#000; }
.dw-admin .site-options input[type=radio] { accent-color:#383c43; }
.dw-admin .history-filter input[type=date] { border-color:#d9dce1; border-radius:7px; }
.dw-admin .table-wrap { margin-left:-22px; margin-right:-22px; margin-bottom:-22px; }
.dw-admin.dw-customers .table-wrap { margin:0 -22px -22px; }
.dw-admin .history-note { margin:18px 0; color:#383c43; }
.dw-admin .history-table tr.no-data td { color:#50545c; }
.dw-admin .login-brand { margin-bottom:24px; }
.dw-admin .login-card { border-color:#e4e6e9; border-radius:12px; }
.dw-admin.login-page .login-submit { background:#25282d; }
@media(max-width:760px) {
  .dw-admin .panel { padding:18px; }
  .dw-admin .table-wrap, .dw-admin.dw-customers .table-wrap { margin-left:-18px; margin-right:-18px; margin-bottom:-18px; }
  .dw-admin .dw-workspaces { gap:12px; }
  .dw-admin .dw-workspaces>a { padding:8px 0; font-size:14px; }
  .dw-admin .metrics article { padding:16px; border-bottom:1px solid #e9eaed; }
  .dw-admin .metrics strong { font-size:27px; }
}

/* Brand accents shared with web.didiweb.kr, limited to navigation and actions. */
:root { --dw-blue:#315cff; --dw-lime:#92fa72; --dw-accent-ink:#193db3; --dw-accent-soft:#edf1ff; --blue:#315cff; --blue-soft:#edf1ff; }
.dw-admin .dw-sidebar .view-tab.active { color:var(--dw-accent-ink); background:transparent; box-shadow:none; font-weight:650; }
.dw-admin .dw-sidebar .view-tab.active:before { color:var(--dw-blue); }
.dw-admin .dw-sidebar .view-tab:hover, .dw-admin .dw-side-link:hover { background:transparent; }
.dw-admin .dw-workspaces>a[aria-current=page] { color:var(--dw-accent-ink); box-shadow:inset 0 -2px var(--dw-blue); }
.dw-admin .range button.active, .dw-admin .visit-tabs button.active, .dw-admin .rank-tabs button.active, .dw-admin .site-filters button.active { color:var(--dw-accent-ink); background:var(--dw-accent-soft); border-color:#ccd6ff; }
.dw-admin .history-filter .site-options label:has(input:checked) { background:var(--dw-accent-soft); border-color:#acbdff; color:var(--dw-accent-ink); }
.dw-admin .site-options input[type=radio], .dw-admin input[type=checkbox] { accent-color:var(--dw-blue); }
.dw-admin #customerRefresh, .dw-admin #refreshBtn, .dw-admin #historyFilter button[type=submit], .dw-admin.login-page .login-submit { background:var(--dw-blue); border-color:var(--dw-blue); color:#fff; }
.dw-admin #customerRefresh:hover, .dw-admin #refreshBtn:hover, .dw-admin #historyFilter button[type=submit]:hover, .dw-admin.login-page .login-submit:hover { background:#244be0; border-color:#244be0; }
.dw-admin .live:not(.error):not(:has(i))::before { content:''; display:inline-block; flex:none; width:6px; height:6px; margin-right:8px; border-radius:50%; background:var(--dw-lime); box-shadow:0 0 0 1px #68ab53; }
.dw-admin .live:not(.error) i { background:var(--dw-lime); box-shadow:0 0 0 1px #68ab53; }
.dw-admin .live.error { color:var(--red); }
