@charset "UTF-8";
:root{--ink:#172b46;--muted:#6d7d92;--blue:#225fc9;--line:#e3e9f1;--page:#f5f7fb;--nav:#132c4b;--green:#16815d;--red:#b73542;font-family:"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",sans-serif;color:var(--ink);font-size:14px;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--page)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible{outline:3px solid #81a8ff}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button,input,select,textarea{border-radius:6px}button{transition:background .12s}a{color:inherit;text-decoration:none}[hidden]{display:none!important}h1,h2,p{margin-top:0}h1{font-size:30px;letter-spacing:-1.1px;line-height:1.25;margin-bottom:10px;font-weight:750}h2{font-size:20px;letter-spacing:-.5px}p{line-height:1.65}.muted{color:var(--muted)}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#22a777;flex-shrink:0}.brand-symbol{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:#376fd0;border-radius:9px;color:white;font-size:23px;font-weight:800;letter-spacing:-3px;padding-right:3px}
.console{display:grid;grid-template-columns:214px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--nav);color:#d3dff0;padding:30px 18px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;font-size:21px;font-weight:700;padding:0 10px}.brand small{display:block;color:#98afc9;font-size:11px;font-weight:400;margin-top:4px}.nav-label{font-size:11px;color:#91a8c5;padding:46px 15px 12px}.nav-item{border:0;background:transparent;color:#aebfd6;display:flex;align-items:center;gap:13px;width:100%;padding:13px 15px;text-align:left;font-weight:550;margin-bottom:4px}.nav-item span{font-size:20px;font-weight:400}.nav-item.selected{background:#28466e;color:white}.nav-item:hover{background:#213e62}.sidebar-bottom{margin-top:auto;padding:30px 12px 0;font-size:12px}.sidebar-bottom .dot{margin-right:7px}.sidebar-bottom p{font-size:11px;line-height:1.8;color:#91a8c5;margin:11px 0 0}.topbar{height:70px;border-bottom:1px solid var(--line);background:white;display:flex;justify-content:space-between;align-items:center;padding:0 42px;font-size:12px;color:var(--muted)}.topbar>div{display:flex;gap:18px;align-items:center}.admin-badge{border:1px solid var(--line);border-radius:20px;padding:5px 12px;color:var(--ink);font-size:11px}.text-button{border:0;background:transparent;color:var(--muted);padding:6px 0;font-size:12px}.text-button:hover{color:var(--blue)}.page{max-width:1440px;padding:42px 42px 30px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.page-heading .muted{margin-bottom:0;font-size:13px}.breadcrumb{font-size:11px;color:var(--muted);margin-bottom:14px}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:10px 17px;font-weight:600;border:1px solid transparent;white-space:nowrap;font-size:13px}.primary{background:var(--blue);color:white}.primary:hover{background:#184da7}.secondary{background:white;border-color:#d5dfed;color:#405570}.secondary:hover{background:#f0f5fc}.danger{background:var(--red);color:white}.danger:hover{background:#922332}.full{width:100%}.resource-strip{display:grid;grid-template-columns:1fr 1.1fr 1.1fr;background:white;border:1px solid var(--line);border-radius:10px;margin-bottom:30px}.resource-block{padding:23px 26px;min-width:0}.resource-block+.resource-block{border-left:1px solid var(--line)}.resource-label{font-size:12px;color:var(--muted);margin-bottom:12px;display:flex;justify-content:space-between}.resource-block p{margin-bottom:10px;white-space:nowrap}.resource-block strong{font-size:25px;letter-spacing:-.8px;font-weight:650}.unit{font-size:12px;color:var(--muted);margin-left:7px}.resource-block small{font-size:10px;color:var(--muted)}.meter{background:#edf1f7;height:5px;border-radius:4px;overflow:hidden;margin-top:17px}.meter>div{height:100%;background:#4d7dd2;width:0;transition:width .3s}.table-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px}.tabs{display:flex;gap:4px}.tab{border:0;background:transparent;padding:9px 13px;font-size:12px;color:var(--muted);font-weight:500}.tab.selected{background:#e7effe;color:#1a53b4;font-weight:650}.tab span{padding-left:5px}.search{display:flex;align-items:center;gap:8px;background:white;border:1px solid var(--line);border-radius:6px;padding:0 11px;color:var(--muted);width:220px}.search>span{font-size:22px}.search input{border:0;padding:9px 0;width:100%;min-width:0;font-size:12px;background:transparent;outline:0}.table-wrap{background:white;border:1px solid var(--line);border-radius:9px;overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:11px;font-weight:500;color:var(--muted);background:#fafbfd;padding:15px 21px;border-bottom:1px solid var(--line)}td{padding:19px 21px;font-size:12px;border-bottom:1px solid #edf1f6}tr:last-child td{border-bottom:0}.person{display:flex;gap:11px;align-items:center}.avatar{width:34px;height:34px;background:#eaf0fa;color:#456a9a;border-radius:9px;display:grid;place-items:center;font-weight:600}.person strong{display:block;font-size:13px;font-weight:650}.person small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.status{border-radius:20px;font-size:10px;padding:5px 9px;display:inline-flex;gap:5px;align-items:center;background:#edf8f3;color:var(--green)}.status.suspended{background:#f0f2f5;color:#7b8695}.status.error,.status.provisioning{background:#fff4e5;color:#97600c}.metric small{display:block;font-size:10px;color:#8794a6;margin-top:5px}.row-actions{display:flex;gap:12px}.row-action{border:0;background:transparent;color:var(--blue);padding:4px 0;font-size:11px}.row-action.suspend{color:#8d5b64}.empty-state{text-align:center;padding:55px 20px 60px}.empty-icon{display:grid;place-items:center;width:44px;height:44px;background:#edf3fd;color:var(--blue);margin:0 auto 18px;border-radius:12px;font-size:24px}.empty-state h2{font-size:16px;margin-bottom:8px}.empty-state p{font-size:12px;color:var(--muted);margin-bottom:23px}.no-results{text-align:center;padding:50px;color:var(--muted)}.page-footer{display:flex;align-items:center;justify-content:space-between;margin:13px 0 30px;color:var(--muted);font-size:10px}.page-footer .dot{width:5px;height:5px;margin-right:5px}.guide{border-top:1px solid var(--line);padding-top:22px;color:var(--muted);font-size:11px}.guide strong{color:#4b607b;font-size:12px}.guide p{margin:9px 0 0;max-width:780px}.guide code{color:#395a83;font-size:11px}.connection-error{border:1px solid #efcfb5;background:#fff8ee;padding:14px;margin-bottom:20px;border-radius:6px;color:#895221;font-size:12px}.auth-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;background:linear-gradient(145deg,#eaf0fa,#f8fafd 60%)}.auth-brand{display:flex;align-items:center;gap:11px;font-size:18px;font-weight:650;margin-bottom:32px}.auth-panel{width:100%;max-width:420px;background:white;border:1px solid #dce5f1;padding:34px;border-radius:12px;box-shadow:0 12px 35px #1e3f6b08}.connection-tag{color:var(--muted);font-size:11px;display:flex;gap:7px;align-items:center;margin-bottom:22px}.auth-panel h1{font-size:25px}.auth-panel .muted{font-size:12px;margin-bottom:26px}.auth-foot{font-size:11px;color:var(--muted);margin:25px 0 0}label{display:block;font-size:12px;font-weight:550;margin-bottom:15px}label input,label textarea,label select{display:block;margin-top:8px;width:100%;border:1px solid #ccd8e7;padding:11px 12px;background:white;color:var(--ink);font-size:13px}label input:focus,label textarea:focus,label select:focus{outline:2px solid #b2cdf9;border-color:#5c8ddc}textarea{resize:vertical;line-height:1.5}.field-help{font-size:10px;line-height:1.65;color:var(--muted);margin:-5px 0 17px}.error-text{color:var(--red);font-size:12px;min-height:4px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid.three{grid-template-columns:1fr 1fr 1fr;gap:12px}fieldset{border:1px solid var(--line);padding:18px 16px 0;border-radius:7px;margin:22px 0 15px}legend{font-size:11px;padding:0 6px;color:var(--muted)}dialog{padding:30px;width:calc(100% - 32px);max-width:560px;border:1px solid var(--line);border-radius:12px;box-shadow:0 25px 80px #11254430;color:var(--ink)}dialog::backdrop{background:#0c244655;backdrop-filter:blur(2px)}.dialog-heading{display:flex;justify-content:space-between;align-items:start;gap:15px;margin-bottom:22px}.dialog-heading h2{margin:0}.dialog-heading .breadcrumb{margin-bottom:8px}.close-button{border:0;background:transparent;color:var(--muted);font-size:24px;padding:0 3px;line-height:1}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;border-top:1px solid var(--line);padding-top:18px;margin-top:20px}#suspend-dialog{max-width:450px}#suspend-dialog p{font-size:13px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:14px 22px;border-radius:8px;background:#183b59;color:white;font-size:13px;box-shadow:0 5px 30px #11254433;z-index:10}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
@media(min-width:1500px){.page{padding-top:50px}.page-heading{margin-bottom:36px}.resource-strip{margin-bottom:36px}}@media(max-width:1050px){.console{grid-template-columns:180px minmax(0,1fr)}.page{padding:30px 25px}.topbar{padding:0 25px}.resource-block{padding:20px}.resource-block strong{font-size:22px}th,td{padding-left:15px;padding-right:15px}}@media(max-width:760px){.console{display:block}.sidebar{padding:15px 18px;flex-direction:row;align-items:center;gap:20px}.brand{padding:0;font-size:18px}.brand small,.nav-label,.sidebar-bottom{display:none}.sidebar nav{display:flex;margin-left:auto}.nav-item{padding:9px;font-size:11px;margin:0}.nav-item span{display:none}.topbar{height:50px;padding:0 20px}.page{padding:27px 18px}.page-heading{gap:12px;margin-bottom:23px}.page-heading h1{font-size:25px}.page-heading .muted{font-size:11px;max-width:190px}.page-heading .button{padding:10px 12px;font-size:12px}.resource-strip{grid-template-columns:1fr 1fr;margin-bottom:22px}.resource-block:first-child{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:17px 20px}.resource-block:first-child .resource-label{margin:0}.resource-block:first-child small{display:none}.resource-block:first-child p{margin:0}.resource-block:nth-child(2){border-left:0}.resource-block{padding:17px 20px}.resource-block strong{font-size:20px}.resource-label{font-size:11px}.table-toolbar{gap:8px}.tabs{gap:0}.tab{font-size:11px;padding:9px}.search{width:155px}.search input{font-size:11px}.guide code{display:block;margin:5px 0}.form-grid{gap:12px}dialog{padding:24px}.auth-panel{padding:28px}.toast{width:calc(100% - 40px);text-align:center}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

@media(max-width:480px){.table-toolbar{align-items:stretch;flex-direction:column}.tabs{flex-shrink:0}.tab{white-space:nowrap}.search{width:100%}.resource-label{gap:6px}.sidebar{gap:10px}.nav-item{white-space:nowrap}}

.dns-values{display:flex;flex-wrap:wrap;gap:12px 28px;margin:14px 0;color:#52647b}.dns-values b{color:#132c4b;margin-left:8px}.program-table td{vertical-align:top}.program-domain{display:block;color:#225fc9;overflow-wrap:anywhere;font-weight:600}.program-meta{display:block;margin-top:6px;color:#718096;font-size:12px}.program-table .row-actions{flex-wrap:wrap;max-width:220px}.log-dialog{width:min(850px,94vw)}#program-log-content{background:#132c4b;color:#e8eff7;padding:20px;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:55vh;overflow:auto;font-size:13px;line-height:1.6}.status.running{background:#e9f7f0;color:#19744b}.status.stopped{background:#edf1f5;color:#64748b}.status.pending{background:#fff4dc;color:#946200}

#keys-dialog{max-width:640px}.ssh-keys-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0}.ssh-key-item{padding:16px;border:1px solid var(--line);border-radius:8px;margin:12px 0}.ssh-key-item label{margin-bottom:10px}.ssh-key-item .row-actions{justify-content:flex-end;margin-top:12px}.ssh-key-fingerprint{display:block;font-size:11px;line-height:1.6;overflow-wrap:anywhere;color:var(--muted)}#key-add-fields{padding-bottom:16px}#keys-list{max-height:30vh;overflow:auto}#key-remove-dialog .muted{font-size:13px;margin-top:16px}.row-action:disabled{cursor:not-allowed}

.public-key-field{margin-bottom:15px}.public-key-heading{display:flex;align-items:center;gap:7px;margin-bottom:8px}.public-key-heading label{margin:0}.ssh-key-help{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid #b5c5dc;border-radius:50%;background:#f4f7fc;color:#557195;font-size:12px;font-weight:700;padding:0}.ssh-key-help:hover,.ssh-key-help[aria-expanded="true"]{background:#e7effe;color:#225fc9;border-color:#7399d9}.public-key-field>textarea{display:block;width:100%;border:1px solid #ccd8e7;padding:11px 12px;background:white;color:var(--ink);font-size:13px}.public-key-field>textarea:focus{outline:2px solid #b2cdf9;border-color:#5c8ddc}.ssh-key-guide{position:fixed;inset:auto;margin:0;width:min(460px,calc(100vw - 32px));max-height:min(630px,calc(100dvh - 32px));overflow:auto;padding:20px;border:1px solid #ccd8e7;border-radius:10px;background:white;color:var(--ink);box-shadow:0 10px 40px #11254435;font-size:12px;z-index:30}.ssh-guide-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:15px}.ssh-guide-heading strong{font-size:15px}.ssh-guide-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:14px;padding-bottom:8px}.ssh-guide-tabs button{border:0;padding:8px 12px;background:transparent;color:var(--muted);font-size:12px}.ssh-guide-tabs button[aria-selected="true"]{color:#225fc9;background:#e7effe;font-weight:650}.ssh-guide-intro{margin:0 0 12px;font-size:12px}.ssh-guide-steps{padding-left:20px;margin:0}.ssh-guide-steps li{padding-left:2px;margin-bottom:14px}.ssh-guide-steps strong{font-size:12px}.ssh-guide-steps p{font-size:11px;color:var(--muted);line-height:1.6;margin:6px 0 0}.ssh-guide-command{display:flex;align-items:stretch;gap:8px;background:#f3f6fb;border:1px solid var(--line);border-radius:6px;margin-top:7px;padding:8px}.ssh-guide-command code{flex:1;min-width:0;overflow:auto;white-space:pre;line-height:1.8;font-size:11px;user-select:all}.ssh-guide-command button{flex-shrink:0;border:1px solid #d0dbea;background:white;color:#315c98;padding:4px 7px;font-size:10px}.ssh-guide-note{font-size:11px;color:var(--muted);line-height:1.7;border-top:1px solid var(--line);padding-top:12px;margin:0}.ssh-guide-feedback{font-size:11px;line-height:1.6;color:#225fc9;margin:8px 0 0;min-height:0}.ssh-guide-feedback:empty{display:none}.ssh-guide-copy-buffer{position:absolute;left:0;top:0;opacity:0;width:1px;height:1px}
