:root{--bg:#f5f7fb;--paper:#fff;--ink:#172333;--muted:#718096;--line:#e3e8f0;--blue:#3563e9;--blue-soft:#edf2ff;--teal:#0c9877;--teal-soft:#e7f7f1;--red:#d74754;--red-soft:#fff0f1;--amber:#b57713;--amber-soft:#fff7e5;--radius:12px;--shadow:0 8px 28px #132a4c0a;--mono:'IBM Plex Mono',Consolas,monospace}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.65 'Noto Sans KR',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #4d7cfd88;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:28px;line-height:1.5;font-weight:800;letter-spacing:-1.1px}h2{font-size:17px;letter-spacing:-.35px}h3{font-size:15px}svg{flex-shrink:0;vertical-align:middle}.mono,code,pre{font-family:var(--mono);font-size:12px}.muted{color:var(--muted)}.small{font-size:12px}.ellipsis{max-width:300px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.skip-link{position:fixed;top:-60px;left:20px;padding:10px 20px;background:white;z-index:100}.skip-link:focus{top:10px}.boot{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:20px;color:var(--muted)}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #ffffff35;border-radius:9px;font:700 22px/1 var(--mono);color:white;background:#233248;position:relative}.brand-mark:after{content:'';position:absolute;right:-3px;top:-3px;width:8px;height:8px;border:2px solid #111827;border-radius:100%;background:#31d3ad}.boot .brand-mark{width:48px;height:48px}
.layout{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.sidebar{background:#121b2a;color:#a2adc0;position:fixed;width:236px;inset:0 auto 0 0;padding:30px 18px 22px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:11px;color:#fff;padding:0 9px 30px}.brand-title{font-size:20px;font-weight:700;letter-spacing:-.5px;line-height:1.15}.brand-title small{display:block;font:10px var(--mono);letter-spacing:2.4px;color:#7b8da8;margin-top:7px}.workspace-chip{border:1px solid #2a3547;border-radius:8px;margin:0 5px 28px;padding:10px 12px;display:flex;gap:10px;align-items:center;color:#d9e0eb;font-size:12px}.workspace-chip b{background:#2b3950;border-radius:5px;padding:2px 6px;font-size:11px}.nav-label{font:10px var(--mono);color:#64748b;letter-spacing:1.6px;margin:14px 16px 9px}.nav-link{display:flex;width:100%;align-items:center;gap:12px;color:#9eacc0;padding:12px 15px;border:0;background:none;border-radius:8px;margin:4px 0;text-align:left;font-size:14px;font-weight:500;position:relative}.nav-link:hover{background:#1c283a;color:#fff}.nav-link.active{color:#fff;background:#293b5c}.nav-link.active:before{content:'';position:absolute;left:-18px;top:12px;bottom:12px;width:3px;background:#77a3ff;border-radius:2px}.nav-link svg{width:19px;height:19px}.sidebar-bottom{margin-top:auto;padding-top:28px}.system-badge{padding:13px 14px;border:1px solid #293549;border-radius:8px;font-size:12px;display:flex;align-items:center;gap:8px}.sidebar-note{padding:12px 14px;color:#677b96;font:10px var(--mono);letter-spacing:.8px}.user-block{border-top:1px solid #263247;margin-top:18px;padding:18px 4px 0;display:flex;align-items:center;gap:10px}.avatar{width:35px;height:35px;border-radius:10px;display:grid;place-items:center;background:#dae4fc;color:#4162a1;font-size:13px;font-weight:700;flex-shrink:0}.user-text{flex:1;min-width:0;line-height:1.4}.user-text b{display:block;color:#e7edf6;font-size:12px;max-width:110px;overflow:hidden;text-overflow:ellipsis}.user-text small{font-size:10px;color:#8191a9}.user-block .icon-btn{color:#95a5ba}.content{grid-column:2;min-width:0}.topbar{height:78px;background:#ffffffcc;backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 36px;position:sticky;top:0;z-index:20}.breadcrumb{display:flex;align-items:center;gap:10px;color:#8290a3;font-size:12px;white-space:nowrap}.breadcrumb strong{color:#40516b;font-weight:500}.top-actions{display:flex;align-items:center;gap:14px}.top-project{min-width:170px;max-width:260px}.top-divider{height:25px;width:1px;background:var(--line)}.status-dot{width:7px;height:7px;display:inline-block;border-radius:100%;background:#95a1b4;flex-shrink:0}.status-dot.green{background:#22b28f;box-shadow:0 0 0 3px #22b28f18}.status-dot.amber{background:#e7a539}.status-dot.red{background:#e65765}.live-indicator{display:flex;gap:7px;align-items:center;font:11px var(--mono);color:#6f7e92;white-space:nowrap}.mobile-menu{display:none}main{max-width:1740px;padding:32px 36px 60px;margin:0 auto}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:28px}.eyebrow{color:#8090a7;font:10px var(--mono);letter-spacing:1.8px;margin-bottom:7px}.page-heading p{color:var(--muted);font-size:13px;margin-top:6px}.heading-actions{display:flex;gap:9px;align-items:center;padding-top:12px;flex-wrap:wrap}.btn{border:1px solid #dce3ed;border-radius:7px;background:#fff;color:#43536a;padding:9px 14px;display:inline-flex;gap:8px;align-items:center;justify-content:center;font-size:12px;font-weight:500;line-height:1.5;white-space:nowrap;min-height:37px}.btn:hover{background:#f6f8fb;border-color:#c2cddd;text-decoration:none}.btn.primary{color:white;background:var(--blue);border-color:var(--blue);box-shadow:0 2px 5px #3563e926}.btn.primary:hover{background:#284fcb}.btn.danger{color:var(--red);border-color:#f0cbd0;background:#fff8f8}.btn.ghost{background:transparent;border-color:transparent}.btn.small{padding:5px 9px;min-height:29px;font-size:11px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;color:#77859a;padding:7px;border-radius:6px}.icon-btn:hover{background:#eaf0f8;color:#314964}.icon-btn svg,.btn svg{width:16px;height:16px}input,select,textarea{border:1px solid #dce3ed;border-radius:7px;background:#fff;color:#35465e;padding:9px 11px;line-height:1.5;min-width:0;font-size:13px}input::placeholder,textarea::placeholder{color:#9aa7b9}select{padding-right:28px;cursor:pointer}textarea{resize:vertical;min-height:92px}input[type=checkbox]{accent-color:var(--blue);width:16px;height:16px}label{display:flex;flex-direction:column;gap:7px;color:#526178;font-size:12px;font-weight:500}label .help{font-size:11px;font-weight:400;color:#8996a8}label input,label textarea,label select{width:100%}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow);min-width:0;overflow:hidden}.panel-head{padding:20px 23px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #eef1f6}.panel-head h2{display:flex;gap:9px;align-items:center}.panel-sub{font-size:11px;color:var(--muted);margin-top:4px}.panel-body{padding:22px 23px}.section-gap{margin-top:24px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:21px 22px;position:relative;box-shadow:var(--shadow)}.stat-top{display:flex;justify-content:space-between;align-items:center;color:#738198;font-size:12px}.stat-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:var(--blue-soft);color:var(--blue)}.stat-icon.red{background:var(--red-soft);color:var(--red)}.stat-icon.amber{background:var(--amber-soft);color:var(--amber)}.stat-icon.teal{background:var(--teal-soft);color:var(--teal)}.stat-number{font:500 34px/1.25 var(--mono);letter-spacing:-1.5px;margin-top:10px}.stat-foot{margin-top:9px;font-size:11px;color:#97a1b0}.stat-foot .mini-badge{color:var(--blue);background:var(--blue-soft);padding:2px 6px;border-radius:4px;margin-right:5px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(290px,1fr);gap:24px}.chart-legend{display:flex;gap:14px;font-size:11px;color:#7b889b}.chart-legend i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px}.chart-wrap{padding:16px 18px 8px;height:259px}.chart-wrap svg{width:100%;height:100%;overflow:visible}.chart-footer{border-top:1px solid #eef1f6;padding:11px 23px;display:flex;justify-content:space-between;color:#8491a3;font-size:10px;font-family:var(--mono)}.project-health-list{padding:1px 21px}.project-health{padding:18px 0;border-bottom:1px solid #edf1f6}.project-health:last-child{border-bottom:0}.project-health-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.project-name{font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px}.project-slug{font:10px var(--mono);color:#8796aa;margin:5px 0 11px 15px}.resource-row{display:flex;gap:13px;margin-left:15px}.resource{flex:1;min-width:0}.resource-name{font-size:9px;font-family:var(--mono);color:#97a2b2;display:flex;justify-content:space-between}.resource-bar{height:3px;border-radius:4px;background:#eaf0f6;margin-top:5px;overflow:hidden}.resource-bar span{display:block;height:100%;background:#6e96f3;border-radius:4px}.resource-bar span.high{background:#e46773}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:5px;padding:3px 7px;font:500 10px/1.5 var(--mono);white-space:nowrap;background:#eef2f7;color:#6d7f97}.badge.error,.badge.fatal{background:var(--red-soft);color:var(--red)}.badge.fatal{background:#f8e3ec;color:#ae2a66}.badge.warn,.badge.warning,.badge.stale{background:var(--amber-soft);color:var(--amber)}.badge.info,.badge.open{background:var(--blue-soft);color:var(--blue)}.badge.debug,.badge.waiting,.badge.ignored{background:#f0f2f6;color:#8290a5}.badge.online,.badge.resolved{background:var(--teal-soft);color:var(--teal)}.badge.env{background:#f0f3f8;color:#7f8ca0;font-size:9px}.count-pill{background:#f0f3f8;color:#7b8ca2;border-radius:5px;font:10px var(--mono);padding:3px 7px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{background:#fafbfd;font-size:10px;color:#93a0b3;font-weight:500;padding:12px 20px;border-bottom:1px solid var(--line);letter-spacing:.2px}td{padding:15px 20px;border-bottom:1px solid #edf1f6;font-size:12px;color:#56667e}tbody tr:last-child td{border-bottom:0}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:#f8faff}td.title-cell{max-width:430px;white-space:normal}.issue-title{display:block;color:#2c3c55;font-size:12px;font-weight:600;margin-bottom:3px}.issue-code{font:10px var(--mono);color:#8a98aa}.table-link{background:none;border:0;text-align:left;padding:0;color:inherit;width:100%}.table-link:hover .issue-title{color:var(--blue)}.table-footer{padding:13px 20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#8a98ab}.number{font-family:var(--mono)}.activity-row{padding:15px 22px;display:flex;gap:13px;align-items:center;border-bottom:1px solid #edf1f6}.activity-row:last-child{border-bottom:0}.activity-row>div{flex:1;min-width:0}.activity-message{font-size:12px;color:#40536f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-meta{font:10px var(--mono);color:#94a1b4;margin-top:3px}.activity-time{font:10px var(--mono);color:#98a5b7;white-space:nowrap}.empty{padding:47px 25px;text-align:center;color:#8a97aa}.empty-icon{width:46px;height:46px;border:1px solid var(--line);border-radius:13px;display:grid;place-items:center;margin:0 auto 13px;color:#90a2ba;background:#fbfcfe}.empty strong{display:block;color:#52627a;font-size:14px;font-weight:500;margin-bottom:5px}.empty p{font-size:12px;max-width:480px;margin:0 auto}.empty .btn{margin-top:15px}.loading{padding:65px;text-align:center;color:#8592a6;font-size:13px}.spinner{display:inline-block;width:17px;height:17px;border:2px solid #dce6f9;border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite;margin-right:9px;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.notice{border:1px solid #dae5fa;background:#f1f6ff;border-radius:9px;padding:14px 17px;color:#5b7397;font-size:12px;display:flex;gap:10px;align-items:flex-start;margin-bottom:20px}.notice.warning{background:#fffbef;border-color:#f0e3b7;color:#957622}.notice.error{background:#fff4f5;border-color:#f0d6da;color:#b14d5b}.notice p+ p{margin-top:4px}.notice strong{font-weight:600}.notice svg{margin-top:2px}.filter-panel{padding:19px 21px;margin-bottom:20px}.filter-main{display:flex;gap:10px;align-items:center}.search-field{flex:1;position:relative}.search-field svg{position:absolute;top:11px;left:12px;color:#99a7ba;width:16px;height:16px}.search-field input{padding-left:37px;width:100%}.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid #edf1f6}.filter-summary{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:11px;color:#8291a7;padding:12px 2px 0}.filter-summary .pill{background:#edf2fc;color:#5276c2;border-radius:5px;padding:2px 8px}.logs-table td{font-size:11px;padding:12px 14px;vertical-align:top}.logs-table th{padding:11px 14px}.logs-table .message-cell{min-width:250px;white-space:normal;max-width:490px}.log-message{color:#435670;font-size:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.log-location{color:#9aa7b9;font:10px var(--mono);margin-top:4px;max-width:440px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-code{color:#57729c;font:10px var(--mono);margin-bottom:3px}.log-time{font:10px var(--mono);white-space:nowrap;color:#8091a8}.log-source{font:10px var(--mono);color:#8c9bb0}.live-pill{font:10px var(--mono);color:var(--teal);display:inline-flex;gap:6px;align-items:center}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:23px}.tab{border:0;background:transparent;color:#7f8da3;font-size:12px;padding:13px 17px;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{border-bottom-color:var(--blue);color:var(--blue);font-weight:600}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:19px}.toolbar .search-field{max-width:460px}.toolbar-spacer{flex:1}.catalog-code{font:500 11px var(--mono);color:#49658d}.catalog-desc{white-space:normal;max-width:300px;line-height:1.6;color:#8794a7;font-size:11px}.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.project-card{padding:23px}.project-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.project-icon{width:42px;height:42px;border:1px solid #d9e4fa;background:#f1f5ff;color:#5a80d9;border-radius:11px;display:grid;place-items:center}.project-card h2{margin-bottom:3px}.project-card p{color:#8c9aaf;font-size:12px;min-height:39px;margin-top:10px}.project-metrics{display:flex;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;margin:17px 0;gap:30px}.project-metrics strong{font:500 19px var(--mono);display:block}.project-metrics span{font-size:10px;color:#94a2b6}.project-card-actions{display:flex;gap:8px;justify-content:flex-end}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.span-2{grid-column:1/-1}.form-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:22px}.field-error{color:var(--red);font-size:12px;margin-top:12px}.system-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.system-stat{padding:22px}.system-stat strong{font:500 25px var(--mono);display:block;margin-top:7px}.system-stat span{font-size:11px;color:#8998ae}.definition-list{margin:0}.definition-list>div{display:flex;justify-content:space-between;gap:25px;padding:13px 0;border-bottom:1px solid #edf1f6}.definition-list>div:last-child{border:0}.definition-list dt{font-size:12px;color:#8a99ae}.definition-list dd{margin:0;font-size:12px;color:#526780;max-width:65%;text-align:right;word-break:break-word}.overlay{position:fixed;inset:0;background:#10243b66;backdrop-filter:blur(3px);z-index:80;display:flex;justify-content:flex-end}.drawer{background:#fff;width:min(730px,95vw);height:100%;overflow-y:auto;box-shadow:-10px 0 50px #14284622;animation:slide-in .15s ease-out}.drawer-header{position:sticky;top:0;background:#fff;z-index:2;border-bottom:1px solid var(--line);padding:21px 26px;display:flex;gap:15px;justify-content:space-between;align-items:flex-start}.drawer-header h2{font-size:18px;word-break:break-word}.drawer-body{padding:24px 26px 40px}.drawer-section{margin-top:25px}.drawer-section h3{font-size:12px;color:#64758d;margin-bottom:12px;display:flex;align-items:center;gap:7px}.detail-title{font-size:20px;line-height:1.6;letter-spacing:-.5px;margin:15px 0}.detail-tags{display:flex;gap:7px;flex-wrap:wrap}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;background:#f8fafd;border:1px solid var(--line);border-radius:9px;padding:17px}.detail-field span{display:block;font-size:10px;color:#92a0b4;margin-bottom:4px}.detail-field div{font-size:12px;word-break:break-all;color:#506581}.code-block{background:#142035;color:#b9cbe6;border:1px solid #24344c;border-radius:9px;padding:17px;font:11px/1.85 var(--mono);white-space:pre-wrap;word-break:break-word;max-height:360px;overflow:auto}.code-title{background:#1c2b42;margin:-17px -17px 13px;padding:9px 15px;color:#7e97ba;font:9px var(--mono);display:flex;justify-content:space-between;align-items:center}.code-title .icon-btn{color:#8ca7cd;padding:0}.catalog-help{background:#f1f6ff;border:1px solid #dce7fa;border-radius:9px;padding:17px}.catalog-help h3{color:#5279b1;margin:0 0 10px}.catalog-help b{font-size:11px;color:#6b83a7}.catalog-help p{font-size:12px;color:#547092;margin-top:4px;white-space:pre-wrap}.catalog-help .help-action{margin-top:15px;padding-top:12px;border-top:1px solid #dce6f6}.timeline{margin:0;padding:0;list-style:none}.timeline li{position:relative;padding:0 0 19px 22px;border-left:1px solid #dfe7f3;margin-left:5px}.timeline li:before{content:'';width:7px;height:7px;border-radius:50%;background:#91acd9;position:absolute;left:-4px;top:6px}.timeline li:last-child{padding-bottom:0;border-left-color:transparent}.timeline button{background:none;border:0;padding:0;text-align:left;width:100%}.timeline p{font-size:12px;color:#506784;word-break:break-word}.timeline small{font:10px var(--mono);color:#96a6bd;display:block;margin-top:4px}.timeline .badge{margin-right:6px}.comment{border-bottom:1px solid #edf1f6;padding:13px 0}.comment strong{font-size:11px;color:#66809f}.comment time{font:10px var(--mono);color:#a0aec1;margin-left:10px}.comment p{font-size:12px;margin-top:6px;white-space:pre-wrap;word-break:break-word}.modal-overlay{align-items:center;justify-content:center;padding:24px}.modal{background:#fff;border-radius:15px;box-shadow:0 30px 90px #10243b33;width:min(620px,95vw);max-height:92vh;overflow-y:auto;animation:slide-in .15s ease-out}.modal.wide{width:min(840px,95vw)}.modal-header{padding:21px 26px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-body{padding:24px 26px}.key-box{font:12px var(--mono);word-break:break-all;background:#fff8e6;border:1px solid #efdc9f;color:#8e6d24;padding:15px;border-radius:8px}.step{display:flex;gap:13px;margin-top:20px}.step-number{width:25px;height:25px;background:#edf2ff;color:var(--blue);font:12px var(--mono);display:grid;place-items:center;border-radius:8px;flex-shrink:0}.step>div{min-width:0;flex:1}.step h3{font-size:13px}.step p{font-size:12px;color:#8798af;margin:5px 0 9px}.step .code-block{font-size:10px}.row-actions{display:flex;gap:5px}.login-page{display:grid;grid-template-columns:1.08fr 1fr;min-height:100vh;background:white}.login-story{background:#121c2c;color:#fff;padding:50px 65px;position:relative;overflow:hidden;display:flex;flex-direction:column}.login-story:before{content:'';position:absolute;inset:0;background-image:linear-gradient(#ffffff03 1px,transparent 1px),linear-gradient(90deg,#ffffff03 1px,transparent 1px);background-size:40px 40px;pointer-events:none}.login-story .brand{padding:0}.login-story-copy{margin:auto 0;position:relative;max-width:530px;padding:70px 0}.login-story h1{font-size:42px;line-height:1.5;letter-spacing:-1.8px;font-weight:600}.login-story h1 em{font-style:normal;color:#71a7ff}.login-story p{margin-top:23px;max-width:390px;line-height:1.9;color:#8496b0;font-size:14px}.login-terminal{border:1px solid #2b3b55;border-radius:11px;background:#152238;margin-top:39px;box-shadow:0 15px 40px #00000015}.terminal-head{display:flex;align-items:center;gap:6px;padding:12px 16px;border-bottom:1px solid #2b3b55;color:#6f87a8;font:10px var(--mono)}.terminal-head i{width:6px;height:6px;border-radius:50%;background:#415571}.terminal-head span{margin-left:8px}.terminal-body{font:11px/2.2 var(--mono);padding:17px;color:#849fc4}.terminal-body .green{color:#53c9a8}.terminal-body .blue{color:#81b0fd}.login-footer{font:10px var(--mono);color:#576f91;letter-spacing:1px}.login-form-side{display:flex;align-items:center;justify-content:center;padding:50px}.login-form{max-width:375px;width:100%}.login-form h2{font-size:25px;font-weight:700;letter-spacing:-.8px}.login-form>p{color:#8a98ad;font-size:13px;margin:10px 0 31px}.login-form label{margin-top:17px;font-size:12px}.login-form input{padding:12px 13px;font-size:13px}.login-form .btn{width:100%;margin-top:26px;padding:12px}.login-note{border-top:1px solid var(--line);padding-top:20px;margin-top:28px;color:#98a5b7;font-size:11px;line-height:1.9}.password-strength{font-size:11px;color:#8a98ad}.toast{background:#17283f;color:#ecf2fb;border:1px solid #355071;border-radius:9px;padding:13px 18px;box-shadow:0 8px 30px #102a4933;font-size:12px;display:flex;gap:10px;align-items:center;animation:slide-in .15s ease-out;max-width:460px}.toast.error{background:#8d3444;border-color:#a75262}#toast-root{position:fixed;right:25px;bottom:25px;z-index:120;display:flex;flex-direction:column;gap:9px}.hidden{display:none!important}.skeleton{background:linear-gradient(90deg,#f2f5f9,#e8edf5,#f2f5f9);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:6px;height:18px}.connection-note{color:#7c8da5;font-size:11px;margin:5px 0 15px}.danger-text{color:var(--red)}.check-label{flex-direction:row;align-items:center}.check-label input{width:auto}.file-input{padding:15px;border:1px dashed #bfcce0;background:#f9fbff;border-radius:8px;width:100%;margin:13px 0}.import-preview{max-height:250px;overflow:auto;margin-top:15px}.mobile-shade{display:none}.wrap{white-space:normal;word-break:break-word}.no-margin{margin:0!important}@keyframes shimmer{to{background-position:-200% 0}}@keyframes slide-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(min-width:1650px){main{padding-left:44px;padding-right:44px}.stats-grid{gap:22px}.stat-card{padding:25px}.chart-wrap{height:290px}td{padding-top:17px;padding-bottom:17px}}
@media(max-width:1200px){.layout{grid-template-columns:210px minmax(0,1fr)}.sidebar{width:210px;padding-left:14px;padding-right:14px}.topbar{padding:0 25px}main{padding:27px 25px}.dashboard-grid{grid-template-columns:minmax(0,1.35fr) minmax(270px,1fr);gap:17px}.stats-grid{gap:12px}.stat-card{padding:17px}.stat-number{font-size:28px}.resource-row{gap:7px}.breadcrumb{font-size:11px}.top-actions{gap:10px}.top-project{min-width:150px;max-width:210px}.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1000px){.dashboard-grid{grid-template-columns:1fr}.project-health-list{display:grid;grid-template-columns:1fr 1fr;gap:20px}.project-health{border-bottom:0}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.breadcrumb span:first-child,.top-divider,.topbar .install-btn{display:none}.projects-grid{grid-template-columns:1fr}.system-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-story{padding:40px}.login-story h1{font-size:32px}.login-form-side{padding:35px}}
@media(max-width:760px){.layout{display:block}.sidebar{transform:translateX(-100%);transition:transform .15s;width:236px}.layout.menu-open .sidebar{transform:none}.layout.menu-open .mobile-shade{display:block;position:fixed;inset:0;background:#10233d66;z-index:29}.mobile-menu{display:inline-flex}.topbar{height:64px;padding:0 16px;gap:7px}.breadcrumb{display:none}.top-project{min-width:140px;max-width:180px;font-size:11px}.live-indicator{font-size:9px}.top-actions{gap:9px;margin-left:auto}.top-actions>.icon-btn{display:none}main{padding:24px 17px 45px}h1{font-size:24px}.page-heading{gap:13px;margin-bottom:22px;flex-direction:column}.heading-actions{padding-top:0}.page-heading p{font-size:12px}.stats-grid{gap:11px;margin-bottom:18px}.stat-card{padding:16px}.stat-top{font-size:11px}.stat-icon{width:27px;height:27px}.stat-number{font-size:27px}.stat-foot{font-size:10px}.panel-head{padding:17px}.panel-body{padding:18px}.section-gap{margin-top:18px}.chart-wrap{height:225px;padding:14px 12px 5px}.chart-footer{padding:11px 17px;font-size:9px}.project-health-list{display:block}.project-health{border-bottom:1px solid #edf1f6}.filter-panel{padding:15px}.filter-main{flex-wrap:wrap}.filter-main .search-field{flex-basis:100%}.filter-grid{grid-template-columns:1fr 1fr;gap:11px}.toolbar{flex-wrap:wrap}.toolbar .search-field{flex:1;min-width:200px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.modal-overlay{padding:12px}.modal-header{padding:18px}.modal-body{padding:19px}.drawer{width:100%}.drawer-header{padding:18px}.drawer-body{padding:19px}.detail-grid{gap:14px}.system-grid{gap:12px}.system-stat{padding:17px}.system-stat strong{font-size:20px}.login-page{display:block}.login-story{padding:28px}.login-story-copy{padding:35px 0 5px}.login-story h1{font-size:27px}.login-story p,.login-terminal,.login-footer{display:none}.login-form-side{padding:36px 26px}.login-form h2{font-size:22px}.login-form>p{margin-bottom:23px}#toast-root{bottom:15px;left:15px;right:15px}.toast{max-width:none}.table-footer{gap:10px;font-size:10px}.projects-grid{gap:16px}}
/* Keep diagnostic information comfortably readable on ordinary laptop displays. */
.page-heading p,.panel-sub,.stat-top,.stat-foot,.project-slug,.chart-legend,.chart-footer,.activity-meta,.activity-time,.table-footer,.filter-summary,.catalog-desc,.project-card p,.project-metrics span,.detail-field span,.timeline small,.comment time,.login-note{color:#6c7e97}
th{color:#71839b;font-size:12px}td{font-size:13px}.issue-title,.log-message,.activity-message,.catalog-help p,.timeline p,.comment p{font-size:14px}.panel-sub,.stat-foot,.project-slug,.chart-legend,.chart-footer,.issue-code,.log-location,.log-source,.activity-meta,.activity-time,.table-footer,.catalog-code,.catalog-desc,.detail-field span,.timeline small,.comment time{font-size:12px}.issue-code,.log-location,.log-source{color:#6d809b}.log-code{font-size:12px}.log-time{font-size:12px;color:#657a97}.badge{font-size:11px}.detail-field div{font-size:13px}.definition-list dt,.definition-list dd{font-size:13px}.resource-name{font-size:10px;color:#7387a2}.stat-top{font-size:13px}.project-name{font-size:14px}.catalog-help b{font-size:12px}.filter-grid label,label{font-size:13px}.logs-table td{font-size:12px}.logs-table .message-cell{min-width:320px}.sidebar-note{color:#8293ad}.nav-label{color:#8b9ab2}.user-text small{color:#a0aec3}.login-story p{color:#a2b3cc}.login-footer{color:#8499b8}.login-form>p{color:#73849b}
@media(max-width:760px){.page-heading p{font-size:13px}.logs-table .message-cell{min-width:290px}.stat-foot{font-size:11px}.chart-footer{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Game operations share the console's visual language while separating live state from drafts. */
.sidebar nav{overflow-y:auto;min-height:0;flex:1;scrollbar-width:thin;scrollbar-color:#38465c transparent}.sidebar-bottom{flex-shrink:0}
[hidden]{display:none!important}
.maint-target{display:flex;align-items:center;gap:12px;padding:14px 18px;background:#eef3ff;border:1px solid #d9e4ff;border-radius:9px;margin-bottom:22px;font-size:13px;flex-wrap:wrap}.maint-target>span:first-child{display:flex;align-items:center;gap:7px;color:#58729e}.maint-target>strong{color:#29416b}.maint-target code{color:#7185a5}.maint-target small{color:#6c7e97;font-size:12px}.maint-target>.maint-timezone{margin-left:auto}.maint-timezone{font:11px var(--mono);color:#708199;white-space:nowrap}.maint-current{background:#fff;border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:12px;padding:23px 26px 0;box-shadow:var(--shadow);margin-bottom:16px}.maint-current.scheduled,.maint-current.draining{border-left-color:var(--blue)}.maint-current.maintenance{border-left-color:var(--amber)}.maint-current-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.maint-current h2{font-size:26px;letter-spacing:-.8px}.maint-current-message{font-size:14px;color:#52657e;margin-top:11px;white-space:pre-wrap;overflow-wrap:anywhere}.maint-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:24px 0 20px;padding-top:18px;border-top:1px solid #edf1f6}.maint-facts dt{font-size:12px;color:#72839b;margin-bottom:7px}.maint-facts dd{margin:0;font-size:13px;font-weight:600}.maint-status-footer{display:flex;justify-content:space-between;gap:15px;margin:0 -26px;padding:11px 26px;background:#f8fafc;border-top:1px solid #edf1f6;color:#7a8ba3;font-size:11px;border-radius:0 0 11px 11px}.maint-sync-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.maint-sync{padding:21px;display:flex;align-items:flex-start;gap:14px}.maint-sync-icon{width:39px;height:39px;background:var(--blue-soft);color:var(--blue);border-radius:10px;display:grid;place-items:center;flex-shrink:0}.maint-sync-icon.ok{background:var(--teal-soft);color:var(--teal)}.maint-sync-icon.error{background:var(--red-soft);color:var(--red)}.maint-sync-icon.pending{background:var(--amber-soft);color:var(--amber)}.maint-sync>div:nth-child(2){flex:1;min-width:0}.maint-sync .eyebrow{margin-bottom:4px;font-size:9px}.maint-sync h3{font-size:15px;margin-bottom:5px}.maint-sync p{font-size:12px;color:#6c7e97;line-height:1.7;overflow-wrap:anywhere}.maint-sync small{display:block;font-size:11px;color:#7a8ba3;margin-top:7px}.maint-sync>.status-dot{margin-top:5px}.maint-sync .btn{margin-top:10px}.maint-workspace{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:22px;align-items:start}.maint-operation{padding:26px}.maint-section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.maint-section-heading h2{font-size:20px}.maint-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;border-bottom:1px solid var(--line);padding-bottom:24px}.maint-action{display:flex;flex-direction:column;align-items:flex-start;gap:3px;border:1px solid #dfe6f0;border-radius:9px;background:#fbfcfe;padding:13px 10px;text-align:left;color:#52657e;min-width:0}.maint-action.selected{background:#edf2ff;border-color:#7395f1;box-shadow:inset 0 0 0 1px #7395f128}.maint-action>span{font:10px var(--mono);color:#8b9ab1;margin-bottom:4px}.maint-action>strong{font-size:13px;color:#345185}.maint-action>small{font-size:10px;color:#7286a5;white-space:normal}.maint-action:disabled{opacity:.5}.maint-form-intro{margin:23px 0 20px}.maint-form-intro h3{font-size:15px;margin-bottom:6px}.maint-form-intro p{font-size:12px;color:#70829c}.maint-fieldset{border:0;padding:0;margin:0;min-width:0}.maint-fieldset .help{line-height:1.65}.maint-player-options{background:#f7f9fd;border:1px solid #e8edf5;border-radius:9px;padding:18px;margin-top:20px;display:flex;gap:22px;align-items:center}.maint-player-options>label:first-child:not(.maint-check){max-width:165px;flex-shrink:0}.maint-player-options>label:first-child input[type=number]{width:120px}.maint-check{display:flex;flex-direction:row;align-items:flex-start;gap:10px}.maint-check input{width:16px;flex-shrink:0;margin:3px 0 0}.maint-check strong{font-size:12px;display:block;font-weight:600;color:#4a5f7d}.maint-check small{display:block;font-size:11px;line-height:1.7;color:#7a8ca7;margin-top:5px}.maint-submit-row{display:flex;justify-content:space-between;align-items:center;gap:18px;border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.maint-submit-row>span{color:#7b8ba2;font-size:11px;line-height:1.7;max-width:240px}.maint-preview{padding:25px}.maint-preview h2{font-size:17px}.maint-preview-help{font-size:12px;color:#7a8ca7;margin-top:8px;line-height:1.7}.maint-notice-preview{margin-top:20px;background:#f5f7fc;border:1px solid #e1e7f1;border-radius:11px;padding:24px 20px;text-align:center}.maint-notice-icon{width:47px;height:47px;margin:0 auto 16px;display:grid;place-items:center;background:#e4ebfb;color:#456ac5;border-radius:15px}.maint-notice-preview>span{font-size:10px;letter-spacing:.03em;color:#7289b6}.maint-notice-preview h3{font-size:18px;margin-top:8px;color:#30476d;letter-spacing:-.5px}.maint-notice-preview>p{white-space:pre-wrap;overflow-wrap:anywhere;color:#697f9f;font-size:12px;line-height:1.85;margin-top:15px}.maint-notice-preview dl{border-top:1px solid #dfe6f1;margin:20px 0 0;padding-top:14px;text-align:left}.maint-notice-preview dl>div{display:flex;justify-content:space-between;gap:12px;font-size:11px;padding:3px 0}.maint-notice-preview dt{color:#7a8ca7}.maint-notice-preview dd{margin:0;color:#425b84}.maint-preview-caption{margin-top:12px;font-size:11px;line-height:1.8;color:#8391a7}.maint-runbook{border-top:1px solid var(--line);margin-top:23px;padding-top:20px}.maint-runbook h3{font-size:13px;display:flex;align-items:center;gap:7px;color:#59708f}.maint-runbook ol{padding-left:19px;font-size:12px;line-height:1.8;color:#6b7f9b;margin:12px 0}.maint-runbook li+li{margin-top:7px}.maint-runbook>p{color:#ad782c;font-size:11px;line-height:1.7}.maint-empty{text-align:center;padding:30px;color:#7b8da6}.maint-fallback{margin-top:24px;padding:20px 22px;border:1px solid #dde5f0;border-radius:10px;display:flex;justify-content:space-between;align-items:center;gap:24px;background:#edf2f8}.maint-fallback>div{display:flex;align-items:flex-start;gap:13px;color:#7287a6}.maint-fallback strong{color:#4c6383;font-size:12px}.maint-fallback p{font-size:11px;color:#788ca7;line-height:1.8;margin-top:4px}.maint-unconfigured{text-align:center;padding:46px 25px;margin-bottom:25px}.maint-unconfigured>svg{color:#6486c8;margin-bottom:20px}.maint-unconfigured h2{font-size:21px}.maint-unconfigured p{font-size:13px;color:#71839d;margin:12px auto;max-width:560px}.maint-unconfigured>.btn{display:flex;margin:22px auto 0}.maint-confirm-project{display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:#eef3ff;border:1px solid #dce6ff;padding:14px 16px;border-radius:9px;margin-bottom:18px}.maint-confirm-project span{font-size:11px;color:#7588a8}.maint-confirm-project strong{font-size:15px;color:#375582}.maint-confirm-project code{color:#7d8faa}.maint-confirm-description{font-size:13px;color:#667b98;line-height:1.9;margin-bottom:15px}.maint-confirm-notice{background:#f8fafc;border:1px solid #e4eaf3;border-radius:8px;padding:14px;color:#5a7090;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:16px}.maint-project-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.maint-project-choice{display:flex;align-items:center;text-align:left;padding:25px;gap:18px;transition:transform .12s,border-color .12s}.maint-project-choice:hover{border-color:#89a8ef;transform:translateY(-2px)}.maint-project-mark{display:grid;place-items:center;border-radius:12px;width:50px;height:50px;background:#eef3ff;color:#4f73bc;flex-shrink:0}.maint-project-choice>div{flex:1;min-width:0}.maint-project-choice h2{font-size:18px;margin-bottom:7px}.maint-project-choice p{font-size:12px;color:#7a8ea9;line-height:1.7;margin-bottom:10px}.maint-project-choice code{font-size:11px;color:#97a6bb}.maint-project-choice>svg{color:#98abc8}.maint-selection-guide{margin-top:25px;display:flex;gap:12px;padding:20px 23px;background:#edf2f9;border-radius:10px;color:#7287a5;font-size:12px;line-height:1.9}.maint-selection-guide>svg{margin-top:3px;flex-shrink:0}
@media(max-width:1300px){.maint-workspace{grid-template-columns:minmax(0,1fr) 300px;gap:16px}.maint-operation{padding:22px}.maint-preview{padding:21px}.maint-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.maint-player-options{flex-direction:column;align-items:stretch}.maint-player-options>label:first-child:not(.maint-check){max-width:none}.maint-player-options>label:first-child input[type=number]{width:100%}.maint-submit-row{align-items:stretch;flex-direction:column}.maint-submit-row>span{max-width:none}.maint-section-heading{align-items:flex-start;flex-direction:column;gap:6px}}
@media(max-width:1000px){.maint-workspace{grid-template-columns:1fr}.maint-preview{display:none}.maint-sync-grid{gap:12px}.maint-sync{padding:18px}.maint-sync-icon{display:none}.maint-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.maint-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.maint-player-options{flex-direction:row}.maint-player-options>label:first-child:not(.maint-check){max-width:150px}.maint-section-heading{flex-direction:row;align-items:center}.maint-submit-row{flex-direction:row;align-items:center}.maint-fallback{align-items:flex-start;flex-direction:column;gap:12px}.maint-project-picker{grid-template-columns:1fr}}
@media(max-width:760px){.maint-target{gap:8px 12px;padding:12px 14px}.maint-target>.maint-timezone{margin-left:0;width:100%;font-size:10px}.maint-current{padding:20px 19px 0}.maint-current h2{font-size:22px}.maint-current-message{font-size:13px}.maint-current-heading{gap:12px}.maint-facts{gap:18px 12px;margin-top:20px}.maint-facts dd{font-size:12px}.maint-status-footer{margin:0 -19px;padding:10px 19px;flex-direction:column;gap:4px;font-size:10px}.maint-sync-grid{grid-template-columns:1fr;margin-bottom:20px}.maint-sync-icon{display:grid}.maint-operation{padding:19px}.maint-actions{grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:20px}.maint-action{padding:12px}.maint-section-heading{flex-direction:column;align-items:flex-start;gap:5px}.maint-player-options{flex-direction:column;gap:18px}.maint-player-options>label:first-child:not(.maint-check){max-width:none;width:100%}.maint-submit-row{flex-direction:column;align-items:stretch;gap:12px}.maint-fallback{padding:18px}.maint-fallback>div{gap:10px}.maint-project-choice{padding:20px}.maint-project-mark{width:40px;height:40px}.maint-project-choice h2{font-size:17px}.maint-project-choice p{font-size:12px}.maint-preview{display:block}.maint-preview-caption{font-size:11px}}
