:root{color-scheme:light;--bg: #f1f5f4;--surface: #ffffff;--ink: #0f172a;--muted: #64748b;--primary: #0d9488;--primary-dark: #0f766e;--border: #d5e0dd;--danger: #dc2626;--font: "Segoe UI", "Pretendard", "Noto Sans KR", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:radial-gradient(1200px 500px at 10% -10%,rgba(13,148,136,.12),transparent 55%),var(--bg)}button,input,select{font:inherit}code{font-size:.92em}.gate{min-height:100vh;display:grid;place-items:center;padding:24px}.gate-card{width:min(420px,100%);padding:28px;border-radius:16px;background:var(--surface);border:1px solid var(--border);display:grid;gap:12px}.gate-card h1{margin:0;font-size:22px}.gate-card label{display:grid;gap:6px;font-size:13px;color:var(--muted)}.gate-card input{padding:12px 14px;border-radius:10px;border:1px solid var(--border);color:var(--ink)}.shell{max-width:1200px;margin:0 auto;padding:20px 20px 48px}.admin-app{display:flex;min-height:100vh}.sidebar{width:248px;flex-shrink:0;display:flex;flex-direction:column;gap:8px;padding:20px 14px;background:linear-gradient(180deg,#0f172a,#134e4a);color:#e2e8f0;border-right:1px solid rgba(255,255,255,.08);position:sticky;top:0;height:100vh;overflow:hidden}.sidebar-brand{padding:4px 10px 14px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:4px}.sidebar-brand .brand{color:#99f6e4}.sidebar-sub{display:block;margin-top:4px;font-size:12px;color:#e2e8f0b8}.sidebar-nav{flex:1;overflow-y:auto;padding-right:2px}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:999px}.nav-group{margin-bottom:14px}.nav-group-label{margin:0 0 6px;padding:0 10px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#e2e8f08c}.nav-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.nav-item{width:100%;border:0;background:transparent;color:#e2e8f0e0;text-align:left;padding:9px 12px;border-radius:10px;cursor:pointer;font-size:14px;font-weight:500;transition:background .15s ease,color .15s ease}.nav-item:hover{background:#ffffff14;color:#fff}.nav-item.active{background:#ffffff24;color:#fff;font-weight:700;box-shadow:inset 3px 0 #5eead4}.sidebar-actions{display:grid;gap:8px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.sidebar-btn{width:100%;justify-content:center;background:#ffffff0f;color:#e2e8f0;border:1px solid rgba(255,255,255,.12)}.sidebar-btn:hover:not(:disabled){background:#ffffff1f}.admin-main{flex:1;min-width:0;padding:24px 28px 40px}.content-head{margin-bottom:16px}.content-head h1{margin:4px 0 0;font-size:28px;letter-spacing:-.03em}.content-kicker{margin:0;font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--primary-dark)}.panel-lead{margin:0 0 12px}.top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.top h1{margin:4px 0 0;font-size:26px;letter-spacing:-.03em}.top-actions{display:flex;gap:8px}.brand{margin:0;font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--primary-dark)}.muted{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.btn{border:0;border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:600}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover:not(:disabled){background:var(--primary-dark)}.btn.ghost{border:1px solid var(--border);background:var(--surface);color:var(--muted)}.btn.ghost:hover:not(:disabled){color:var(--ink);border-color:#b6c7c3}.btn.sm{padding:8px 12px;font-size:13px}.tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.tab{border:1px solid transparent;background:transparent;color:var(--muted);padding:8px 12px;border-radius:999px;cursor:pointer}.tab.active{background:var(--surface);border-color:var(--border);color:var(--ink);font-weight:600}.banner.error{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#fef2f2;color:var(--danger);border:1px solid #fecaca;font-size:14px}.main{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px;min-height:320px;display:grid;gap:12px;box-shadow:0 10px 30px #0f172a0a}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.stat{padding:14px;border-radius:12px;background:#f8fbfa;border:1px solid var(--border);display:grid;gap:6px}.stat-label{font-size:12px;color:var(--muted)}.stat-value{font-size:24px;letter-spacing:-.03em}.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.filters label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);flex:1;min-width:140px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 18px}.panel h2{margin:0 0 8px;font-size:18px}.filters input,.filters select{flex:1;min-width:160px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#fff;color:var(--ink)}.filters select{flex:0 1 160px;min-width:140px}.pager{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:4px 0}.pager-meta{font-size:13px;color:var(--muted)}.pager-controls{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.pager-size{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);margin-right:4px}.pager-size select{padding:6px 8px;border-radius:8px;border:1px solid var(--border);background:#fff}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:12px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-weight:600;white-space:nowrap;background:#f8fbfa;position:sticky;top:0}tr:last-child td{border-bottom:0}tr.unread td{background:#f0fdfa}.empty-cell{text-align:center;color:var(--muted);padding:28px 10px!important}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.sub{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.4;max-width:360px}.pill{display:inline-block;padding:2px 8px;border-radius:999px;background:#e2e8f0;font-size:12px;font-weight:600}.pill.open{background:#ccfbf1;color:#0f766e}.pill.matched,.pill.checked_in,.pill.in_progress{background:#e0e7ff;color:#3730a3}.pill.completed,.pill.settled{background:#dcfce7;color:#166534}.pill.cancelled,.pill.expired,.pill.no_show{background:#fee2e2;color:#991b1b}.test-panel{padding:14px;border-radius:14px;border:1px solid var(--border);background:#f8fafc;display:grid;gap:10px}.test-panel h2{margin:0;font-size:16px}.test-types{display:flex;flex-wrap:wrap;gap:8px}.test-msg{margin:0;font-size:13px;color:var(--primary-dark);font-weight:600}.test-page{display:grid;gap:16px}.test-shift-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.test-shift-card{padding:14px;border-radius:12px;border:1px solid var(--border);background:var(--surface);display:grid;gap:8px}.test-shift-title{margin:0;font-size:15px;font-weight:700}.test-shift-meta{margin:0;font-size:12px;color:var(--muted)}.test-shift-result{padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:#fff}.test-actions{display:flex;flex-wrap:wrap;gap:8px}.test-accounts{display:grid;gap:10px}.test-account-card{padding:12px;border-radius:12px;border:1px solid var(--border);background:#fff}.test-account-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}padding: 12px 14px; border-radius: 12px; border: 1px dashed var(--border); background: #fff; } .row-actions{display:flex;flex-wrap:wrap;gap:4px;white-space:nowrap;min-width:100px;vertical-align:middle}.restrictions-table{table-layout:fixed;width:100%}.restrictions-table .col-name{width:16%}.restrictions-table .col-status{width:14%}.restrictions-table .col-counts{width:18%}.restrictions-table .col-id{width:34%}.restrictions-table .col-action{width:18%}.restrictions-table th,.restrictions-table td{vertical-align:middle;padding:12px 14px}.restrictions-table th:last-child,.restrictions-table td.restrictions-action{text-align:center}.restrictions-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.restrictions-id{word-break:break-all}.restrictions-action{white-space:nowrap}.restrictions-action .btn{min-width:88px}.trust-counts{white-space:nowrap;text-align:center}.restrictions-table th:nth-child(3),.restrictions-table td.trust-counts{text-align:center}.policy-list em{font-style:normal;font-weight:700;color:var(--danger)}.muted-inline{color:var(--muted)}.policy-panel{padding:14px 16px;border-radius:14px;border:1px solid var(--border);background:#f8fafc;margin-bottom:14px}.policy-panel h2{margin:0 0 10px;font-size:16px}.policy-list{margin:0;padding-left:18px;display:grid;gap:10px;font-size:13px;line-height:1.5}.policy-detail{display:block;margin-top:2px;color:var(--muted);font-size:12px}} .revenue{display:grid;gap:16px}.rev-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.rev-head h2{margin:0 0 4px;font-size:20px}.rev-range{display:flex;flex-wrap:wrap;gap:6px}.rev-kpis .stat-value.sm{font-size:18px}.stat.accent{background:#0d948814;border-color:#0d948859}.stat.warn{background:#fff7ed;border-color:#fed7aa}.stat-hint{font-size:12px;color:var(--muted)}.rev-chart-wrap{overflow-x:auto}.rev-chart-title{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;flex-wrap:wrap}.rev-chart-title h3{margin:0;font-size:15px}.rev-chart{width:100%;min-width:480px;height:auto;display:block}.rev-grid{stroke:var(--border);stroke-width:1}.rev-axis{fill:var(--muted);font-size:10px}.rev-bar{fill:var(--primary)}.rev-bar.empty{fill:transparent}.ledger-controls{flex-wrap:wrap;align-items:end;gap:10px}.ledger-picker{display:grid;gap:4px;font-size:12px;color:var(--muted)}.ledger-picker select{padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface)}.ledger-note{margin:0 0 16px;padding:12px 14px;border-radius:10px;background:#0d948814;border:1px solid rgba(13,148,136,.18);color:#134e4a;font-size:13px;line-height:1.5}.ledger-month-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.ledger-month{display:grid;gap:4px;padding:10px;border-radius:10px;border:1px solid var(--border);background:var(--surface);text-align:left;cursor:pointer}.ledger-month strong{font-size:14px}.ledger-month small{color:var(--muted);font-size:11px}.ledger-month.active{border-color:var(--primary);background:#0d948814}.stat.muted-stat .stat-value{color:var(--muted)}.log-filters{align-items:end}.preset-row{display:flex;flex-wrap:wrap;gap:6px;align-self:end}.log-range-meta{margin:0 0 8px;font-size:13px;color:var(--muted)}.logs-panel .panel-head{margin-bottom:12px}.sub-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.sub-tab{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer}.sub-tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.empty-row{text-align:center;color:var(--muted);padding:28px 12px!important}.error-text{color:#b91c1c;font-size:12px}.server-log-message{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-width:720px}.pill.server-level.request{background:#dbeafe;color:#1d4ed8}.pill.server-level.error{background:#fee2e2;color:#991b1b}.pill.server-level.warn{background:#fef3c7;color:#92400e}.pill.server-level.log{background:#e2e8f0;color:#334155}.pill.server-level.debug,.pill.server-level.verbose{background:#f3e8ff;color:#6b21a8}.click-row{cursor:pointer}.click-row:hover td{background:#f8fafc}.detail-sheet{margin-top:16px;padding:16px;border-radius:12px;border:1px solid var(--border);background:#f8fafc;display:grid;gap:10px}.detail-sheet h3{margin:0}.detail-body{margin:0;white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:14px;line-height:1.55;background:#fff;border:1px solid var(--border);border-radius:10px;padding:12px}.detail-label{display:grid;gap:6px;font-size:12px;color:var(--muted)}.detail-label textarea{min-height:96px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);resize:vertical}.detail-actions{display:flex;gap:8px;justify-content:flex-end}.announce-form{display:grid;gap:10px;margin-bottom:8px;padding-bottom:16px;border-bottom:1px solid var(--border)}.announce-form h3{margin:0}.announce-form textarea,.announce-form input[type=text],.announce-form input:not([type=checkbox]){width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border)}.check-inline{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink)}.danger-text{color:var(--danger)}@media(max-width:960px){.admin-app{flex-direction:column}.sidebar{width:100%;height:auto;position:static;max-height:none}.sidebar-nav{max-height:280px}.admin-main{padding:16px}}@media(max-width:720px){.top{flex-direction:column}.pager{align-items:flex-start}}
