@font-face{font-family:Noto;src:url('/static/fonts/NotoSansKR.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--blue:#2563d9;--blue-dark:#174ea6;--blue-pale:#eaf2ff;--line:#d8e1ed;--text:#172b4d;--muted:#61758f;--sidebar:238px;--header:64px}
*{box-sizing:border-box}
html{background:#f5f7fb}
body{margin:0;background:#f5f7fb;color:var(--text);font-family:Noto,sans-serif;font-size:14px;line-height:1.75}
[hidden]{display:none!important}
a{color:#1e5fbe;text-decoration:none}
a:hover{text-decoration:underline}
.app-header{position:fixed;z-index:20;inset:0 0 auto;height:var(--header);display:flex;align-items:center;padding:0 28px;background:#fff;border-bottom:1px solid #d9e2ee;box-shadow:0 1px 3px #2538580a}
.brand{display:flex;align-items:center;gap:10px;color:#173d73;font-size:20px;font-weight:650;letter-spacing:-.5px;text-decoration:none;white-space:nowrap}
.brand:hover{text-decoration:none}
.brand img{width:34px;height:34px}
.brand strong{color:var(--blue);font-weight:760}
.account-nav{display:flex;align-items:center;gap:4px;margin-left:auto;height:100%;font-size:13px}
.account-nav a,.nav-logout{display:flex;align-items:center;height:100%;padding:0 17px;border:0;border-radius:0;background:transparent;color:#344965;font:inherit;white-space:nowrap}
.account-nav a:hover{background:#f3f7fc;color:#174ea6;text-decoration:none}
.account-nav a[aria-current=page]{background:#e5efff;color:#174ea6;text-decoration:none;box-shadow:inset 0 -3px #2563d9}
.account-nav .nav-logout{height:38px;margin-left:8px;border:1px solid #174ea6;border-radius:4px;background:#174ea6;color:#fff;font-weight:600;text-shadow:none;cursor:pointer;box-shadow:0 2px 6px #0c32752b}
.account-nav .nav-logout:hover{background:#123e85;border-color:#123e85}
.account-nav .nav-logout:focus-visible{outline:3px solid #9fc5ff;outline-offset:3px}
.account-nav .nav-logout:disabled{opacity:1;background:#174ea6;color:#fff;cursor:wait}
.portal-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:calc(100vh - var(--header));padding-top:var(--header)}
.portal-sidebar{position:fixed;z-index:10;top:var(--header);bottom:0;left:0;width:var(--sidebar);padding:22px 12px;background:#fff;border-right:1px solid var(--line);overflow:auto}
.sidebar-title{padding:4px 14px 15px;color:#243b5a;font-size:15px;font-weight:700;border-bottom:1px solid #e5ebf2;margin-bottom:8px}
.portal-sidebar>a{display:block;padding:10px 14px;margin:2px 0;border-left:3px solid transparent;border-radius:0 4px 4px 0;color:#40546f;font-size:13px}
.portal-sidebar>a:hover{background:#f1f5fa;text-decoration:none}
.portal-sidebar>a[aria-current=page]{border-left-color:var(--blue);background:#eaf2ff;color:#174ea6;font-weight:650}
.portal-main{grid-column:2;min-width:0;width:100%;max-width:1320px;padding:42px 48px 70px}
.page-heading{padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:26px}
.eyebrow{display:block;font-size:11px;font-weight:700;color:#376ac2;letter-spacing:1.8px}
h1{margin:7px 0 8px;font-size:32px;line-height:1.3;letter-spacing:-1.2px;color:#172b4d}
h2{margin:0 0 8px;font-size:20px;line-height:1.4;color:#203654}
h3{font-size:16px;color:#243b59}
p{color:var(--muted)}
.card{padding:25px 28px;border:1px solid var(--line);background:#fff;border-radius:4px;margin:20px 0;box-shadow:0 1px 3px #1f35540b}
#console[data-page=developer],#console[data-page=clients]{display:grid;grid-template-columns:minmax(320px,440px) minmax(420px,1fr);gap:22px;align-items:start}
#console[data-page=developer]>#message,#console[data-page=developer]>#secret,#console[data-page=clients]>#message,#console[data-page=clients]>#secret{grid-column:1/-1;margin:0}
#console[data-page=developer]>.card,#console[data-page=clients]>.card{margin:0}
.narrow{max-width:560px;margin:45px auto}
.deletion-card{max-width:760px}
.deletion-account{padding:12px 16px;background:var(--blue-pale);border-radius:4px;overflow-wrap:anywhere}
.deletion-account strong{margin-left:12px;color:var(--text)}
.deletion-confirm{display:flex;align-items:flex-start;gap:10px;margin-top:22px;font-weight:400}
.deletion-confirm input{flex:none;margin-top:5px}
.delete-account-button{background:#b42336;border-color:#b42336;color:#fff}
.delete-account-button:hover{background:#911c2b;border-color:#911c2b}
.tag{display:inline-block;border-radius:4px;background:#eaf2ff;color:#2557a7;font-size:12px;padding:3px 9px}
.view-switch{display:flex;gap:0;margin:-5px 0 24px;border-bottom:1px solid var(--line)}
.view-switch a{padding:10px 18px;border-bottom:3px solid transparent;color:#526984}
.view-switch a:hover{text-decoration:none;background:#eff4fa}
.view-switch a[aria-current=page]{border-bottom-color:var(--blue);color:#174ea6;font-weight:650}
code,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Noto,monospace;font-size:12px}
code{overflow-wrap:anywhere}
pre{background:#112845;color:#e1ecff;padding:22px;overflow:auto;border-radius:4px;line-height:1.8}
table{width:100%;border-collapse:collapse;font-size:12px}
td,th{padding:12px;text-align:left;border-bottom:1px solid #e2e9f3;vertical-align:top;overflow-wrap:anywhere}
th{background:#edf3fb}
label{display:block;font-size:12px;font-weight:650;margin-top:15px;color:#344b69}
input,textarea,button{font:inherit}
input,textarea{width:100%;border:1px solid #b9c9dd;border-radius:3px;padding:10px 11px;background:#fff;color:#223c60}
input:focus,textarea:focus{outline:2px solid #74a7ee;outline-offset:1px;border-color:#3474cf}
textarea{min-height:100px}
input[type=checkbox]{width:auto}
button,.button{display:inline-block;border:1px solid #2563d9;border-radius:3px;padding:9px 16px;background:#2563d9;color:#fff;cursor:pointer;font-size:12px}
button:hover,.button:hover{background:#174ea6;text-decoration:none}
button:disabled{opacity:.5;cursor:wait}
.secondary{border-color:#c9d5e4;background:#fff;color:#395575}
.secondary:hover{background:#eef3f8;color:#263f60}
.danger{border-color:#f1c8cc;background:#fff4f4;color:#a92e3b}
.actions{display:flex;gap:9px;margin-top:22px;flex-wrap:wrap}
.actions>a:not(.button){align-self:center}
.message{grid-column:1/-1;padding:13px 15px;background:#e9f2ff;color:#28518f;border-left:4px solid #3474cf;margin:16px 0}
.message.error{background:#fff0f0;color:#a32f3e;border-left-color:#c83f4d}
.client-item{padding:19px 0;border-bottom:1px solid #e1e8f1}
.client-item:last-child{border-bottom:0}
.client-item h3{margin:0}
.client-item small{color:#637d9d}
.secret{grid-column:1/-1;padding:18px;background:#fff8df;border:1px solid #e7d27c;border-radius:3px;overflow-wrap:anywhere}
.toc{display:flex;gap:15px;flex-wrap:wrap;padding:16px 0;border-bottom:1px solid #dae4f2;font-size:12px}
.table-scroll{overflow:auto}
.connections-heading{display:flex;align-items:center;gap:10px}
.connections-heading h2{margin:0}
.connections-card>p{margin:10px 0 18px;font-size:12px}
.connections-scroll{border:1px solid var(--line);border-radius:4px}
.connections-table{table-layout:fixed;min-width:800px;font-size:12px}
.connection-site-col{width:25%}
.connection-callback-col{width:calc(75% - 280px)}
.connection-date-col{width:180px}
.connection-action-col{width:100px}
.connections-table th,.connections-table td{padding:10px 14px;vertical-align:middle}
.connections-table thead th{color:#526984;font-weight:600;white-space:nowrap}
.connections-table tbody th{background:transparent;font-weight:600;color:#243b59}
.connections-table tbody tr:hover{background:#f6f9fe}
.connections-table tbody tr:last-child>*{border-bottom:0}
.connections-table .client-item{padding:0;border:0}
.connection-address{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.connections-table td .connection-address,.connection-date{color:var(--muted)}
.connection-date{white-space:nowrap;font-variant-numeric:tabular-nums}
.connections-table .connection-action{text-align:right}
.connection-action button{padding:5px 10px;white-space:nowrap;min-height:32px}
.connections-table .connections-empty{text-align:center;padding:28px 16px;color:var(--muted)}
@media(pointer:coarse){.connection-action button{min-height:44px}}
.consent-account{padding:12px;background:#edf4fd;border-radius:3px;overflow-wrap:anywhere}
.scope-list{padding-left:24px}
.scope-list li{margin:10px 0}
footer{margin-left:var(--sidebar);text-align:center;color:#8193ac;font-size:11px;padding:30px 20px;background:#f5f7fb}
:focus-visible{outline:3px solid #8ab3f3;outline-offset:2px}
.ai-manual-text{display:block;width:100%;height:480px;min-height:280px;resize:vertical;background:#f7faff;color:#223b5f;font-family:ui-monospace,SFMono-Regular,Consolas,Noto,monospace;font-size:12px;line-height:1.8;white-space:pre;overflow:auto}
#copy-status{min-height:1.8em;color:#285b9b;font-size:12px}
@media(max-width:960px){#console[data-page=developer],#console[data-page=clients]{grid-template-columns:1fr}.portal-main{padding:34px 30px 60px}}
@media(max-width:760px){:root{--header:116px}.app-header{height:var(--header);padding:10px 16px;align-items:flex-start;flex-wrap:wrap}.brand{height:42px}.account-nav{order:2;width:100%;height:48px;overflow-x:auto;gap:1px;border-top:1px solid #e5ebf2}.account-nav a{height:48px;padding:0 10px;font-size:12px}.nav-logout{height:36px;padding:0 10px;font-size:12px;align-self:center}.account-nav a:first-child{margin-left:auto}.portal-shell{display:block}.portal-sidebar{position:static;width:100%;display:flex;align-items:center;gap:2px;padding:10px 14px;border-right:0;border-bottom:1px solid var(--line);overflow-x:auto}.sidebar-title{border:0;border-right:1px solid var(--line);padding:7px 14px 7px 0;margin:0 6px 0 0;white-space:nowrap}.portal-sidebar>a{white-space:nowrap;border-left:0;border-bottom:3px solid transparent;border-radius:3px;padding:8px 11px}.portal-sidebar>a[aria-current=page]{border-left:0;border-bottom-color:var(--blue)}.portal-main{padding:27px 18px 50px}.page-heading{padding-bottom:18px;margin-bottom:20px}h1{font-size:27px}.card{padding:20px 18px}.narrow{margin:12px auto}footer{margin-left:0}.ai-manual-text{height:400px;font-size:13px}}
@media(max-width:440px){.account-nav a,.nav-logout{padding:0 8px;font-size:11px}.brand{font-size:18px}.portal-sidebar{padding-left:10px;padding-right:10px}.sidebar-title{font-size:13px}.portal-main{padding-left:14px;padding-right:14px}.card{padding:18px 15px}}
