:root {
  --paper:#f3f5f8;--surface:#fff;--ink:#242d3b;--muted:#637086;--line:#e8ecf1;
  --accent:#4267d5;--accent-soft:#eef2ff;--success:#2c755e;--success-soft:#edf7f2;
  --danger:#a33f3f;--danger-soft:#fdf0ed;--warning:#8c621d;--warning-soft:#fcf5e7;
  --radius:10px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--ink);background:var(--paper);font-synthesis:none;font-variant-numeric:tabular-nums;
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;font-size:14px;line-height:1.6;letter-spacing:.01em}
button,input,select,textarea{font:inherit}button{color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}
button,a,summary{-webkit-tap-highlight-color:transparent}button:disabled{opacity:.55;cursor:wait}
button,a{transition:background .18s,color .18s,box-shadow .18s}button:active{transform:translateY(1px)}
:focus-visible{outline:3px solid #9aaff2;outline-offset:4px}input,select,textarea{width:100%;min-height:43px;border:1px solid #dce2eb;border-radius:8px;background:var(--surface);padding:9px 11px;color:var(--ink)}
input:not([type="checkbox"]):not([type="radio"]):focus,select:focus,textarea:focus{outline:none;box-shadow:none;border-color:#8b99b1}
textarea{resize:vertical}label{display:block;font-size:12px;font-weight:500}label input,label select,label textarea{margin-top:6px}
h1,h2,h3,h4,p{margin:0}h1{font-size:30px;line-height:1.4;letter-spacing:-.7px;font-weight:650}h2{font-size:18px;line-height:1.45;font-weight:600}h3{font-size:14px;font-weight:600}
[hidden]{display:none!important}.skip-link{position:fixed;left:20px;top:-100px;background:white;padding:12px;z-index:20}.skip-link:focus{top:10px}
.app-header{min-height:72px;display:flex;align-items:center;gap:48px;padding:0 max(28px,calc((100vw - 1160px)/2));background:rgba(255,255,255,.95);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:600;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--ink);color:white;font:italic 25px Georgia,serif;padding-bottom:5px}
.nav{display:flex;gap:26px;height:72px;align-items:stretch}.nav a{position:relative;display:flex;align-items:center;font-size:13px;color:var(--muted)}.nav a.active{color:var(--ink);font-weight:600}.nav a.active:after{content:"";height:3px;position:absolute;bottom:0;left:0;right:0;border-radius:3px;background:var(--accent)}
.account-actions{display:flex;align-items:center;gap:20px;margin-left:auto}.private-note{font-size:13px;color:var(--muted);padding-right:14px;border-right:1px solid var(--line)}
main:not(.login-shell){max-width:1216px;padding:0 28px;margin:0 auto}.overview{padding:32px 0 26px}.heading-row{display:flex;align-items:center;justify-content:space-between;gap:20px}.intro{margin-top:7px;font-size:14px;color:var(--muted)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:9px 16px;border:1px solid transparent;border-radius:8px;font-size:13px;font-weight:600;white-space:nowrap}.button-primary{background:var(--accent);color:white;box-shadow:0 3px 7px #4267d51a}.button-primary:hover{background:#3558bc}.button-outline{border-color:#dce2eb;background:white}.button-outline:hover{background:#f7f9fc}.button-quiet{background:var(--accent-soft);color:var(--accent)}.button-quiet:hover{background:#e1e9ff}
.text-button,.external-link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;border:0;background:none;padding:6px 0;font-size:13px;color:var(--muted);white-space:nowrap}.text-button:hover,.external-link:hover{color:var(--accent)}
.connection-notice{font-size:12px;color:var(--muted);margin-top:8px}.connection-notice.connected{font-size:13px}.connection-notice.degraded{padding:12px 15px;border-radius:9px;color:#8b6125;background:var(--warning-soft);border:1px solid #efdcb3}
.service-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}.host-card{min-width:0;background:var(--surface);border:1px solid #e7ebf2;border-radius:18px;padding:26px;box-shadow:0 4px 18px #2e426804;--card-accent:#4c75da;--card-soft:#eaf0fd}
.aliyun-card{--card-accent:#d28a53;--card-soft:#fcf0e5}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.provider{display:flex;align-items:center;gap:11px}.provider-mark{width:39px;height:39px;display:grid;place-items:center;border-radius:11px;background:var(--card-soft);color:var(--card-accent);font-size:20px;font-weight:650;font-family:inherit}.provider h2{font-size:18px}.card-region{font-size:12px;color:var(--muted);margin-top:1px}.card-type{font-size:12px;letter-spacing:1.5px;color:#9da6b3}
.host-identity{margin-top:20px}.service-row{min-width:0}.service-top{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:12px;align-items:center}.asset-title{font-size:18px;font-weight:600;letter-spacing:-.2px;overflow-wrap:anywhere}.asset-subtitle{display:block;font-size:12px;color:var(--muted);margin-top:2px}.service-status{display:flex;flex-direction:column;gap:5px;align-items:flex-end}.status-caption{font-size:12px;color:var(--muted);white-space:nowrap}
.state-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;white-space:nowrap;border-radius:6px;padding:4px 9px;color:#5d687a;background:#f0f2f5}.state-badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}.state-normal{color:var(--success);background:var(--success-soft)}.state-abnormal{color:var(--danger);background:var(--danger-soft)}.state-unknown,.state-stale{color:var(--warning);background:var(--warning-soft)}
.server-row{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:3px 16px}.server-row .service-top{display:contents}.server-row .asset-name{grid-column:1;grid-row:1;align-self:start}.server-row .asset-title{font-size:22px;font-weight:600;line-height:1.35;letter-spacing:-.5px}.server-row .asset-subtitle{font-size:12px;margin-top:5px}.server-row .service-status,.quick-checks:empty{display:none}.server-row .asset-visual{grid-column:2;grid-row:1/3;align-self:center;justify-self:center}.server-row>.service-actions{grid-column:1;grid-row:2;justify-content:flex-start;margin:0}.server-row>.service-actions .details-toggle{margin-left:0;padding:0;min-height:32px;font-size:13px}.server-row>.asset-details{grid-column:1/-1}
.server-visual{position:relative;display:flex;flex-direction:column;justify-content:center;gap:4px;width:66px;height:74px;transform:rotate(-5deg);padding:9px 8px;border-radius:13px;background:var(--card-soft);box-shadow:4px 5px 0 #f4f6f9}.rack-unit{height:16px;border:1px solid var(--card-accent);border-radius:4px;position:relative;background:#ffffffc9;opacity:.75}.rack-unit:before{content:"";position:absolute;left:6px;top:6px;width:3px;height:3px;border-radius:50%;background:var(--card-accent);box-shadow:6px 0 0 var(--card-accent)}.rack-unit:after{content:"";position:absolute;right:5px;top:5px;width:13px;height:4px;border-top:1px solid var(--card-accent);border-bottom:1px solid var(--card-accent)}
.cloud-panel{grid-column:1/-1;margin-top:15px;border-top:1px solid var(--line);padding-top:14px}.cloud-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px 12px;margin:0 0 13px}.cloud-metric{grid-column:span 2;min-width:0}.cloud-metric[data-network]{grid-column:span 3;padding-top:10px;border-top:1px solid var(--line)}.metric-label{font-size:12px;color:var(--muted)}.metric-value{margin:3px 0 0;font-size:23px;line-height:1.35;font-weight:600;letter-spacing:-.4px;overflow-wrap:anywhere}.metric-unit{display:inline-block;white-space:nowrap;font-size:12px;font-weight:400;margin-left:3px;color:var(--muted);letter-spacing:0}.metric-status{font-size:12px;color:var(--muted);margin:3px 0 0}.metric-stale .metric-value,.metric-unknown .metric-value,.metric-unconnected .metric-value{color:var(--muted)}.metric-stale .metric-status,.metric-unknown .metric-status{color:var(--warning)}.metric-abnormal .metric-status{color:var(--danger)}.cloud-source,.cloud-scope,.cloud-policy{font-size:12px;line-height:1.7;color:var(--muted)}.cloud-error{color:var(--warning)}.cloud-policy{margin-top:3px}
.group-list{margin-top:20px}.website-row{padding:18px;background:#f7f9fc;border:1px solid #edf0f5;border-radius:12px}.website-visual{width:26px;height:26px;border:1.5px solid #a3b0c5;border-radius:50%;position:relative;overflow:hidden}.website-visual:before{content:"";position:absolute;inset:1px 6px;border:1px solid #a3b0c5;border-radius:50%}.website-visual:after{content:"";position:absolute;left:0;right:0;top:7px;height:9px;border-top:1px solid #a3b0c5;border-bottom:1px solid #a3b0c5}.quick-checks{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}.website-row>.quick-checks,.website-row>.service-actions{margin-left:42px}.quick-check{font-size:12px;line-height:20px;color:#56647a;background:#edf0f5;padding:3px 8px;border-radius:5px}.quick-normal{color:#356c55;background:#eaf3ee}.quick-unknown,.quick-stale{color:#825b1d;background:#f9f0df}.quick-abnormal{color:var(--danger);background:var(--danger-soft)}
.service-actions{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}.website-row .external-link,.app-row .external-link{background:white;border:1px solid #e5eaf2;border-radius:7px;min-height:36px;padding:6px 12px;color:#425774;font-size:13px}.website-row .external-link:hover,.app-row .external-link:hover{border-color:#bccbee;background:#f1f5ff}.service-actions .details-toggle{font-size:13px;margin-left:auto;min-height:36px;padding:6px 0;color:#5a6c86}.details-toggle::after{content:"›";margin-left:7px;font-size:16px;line-height:1;transition:transform .18s}.details-toggle[aria-expanded="true"]::after{transform:rotate(90deg)}
.asset-details{margin-top:12px}.evidence-heading{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:8px;gap:10px}.evidence-heading h4{font-size:13px;font-weight:500}.evidence-heading button{font-size:12px}.check-item{display:grid;grid-template-columns:1fr auto;gap:7px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.check-detail{grid-column:1/-1;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.check-detail p+p{margin-top:4px}.source-line,.meta-text{font-size:12px;color:var(--muted);overflow-wrap:anywhere;line-height:1.7}.source-line{margin-top:12px}.history-list{padding:0;list-style:none}.history-item{padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}.history-item p{color:var(--muted)}.history-empty{font-size:13px;color:var(--muted);padding:10px 0}
.card-renewals{margin-top:20px;border-top:1px solid var(--line);padding-top:7px}.renewal-row+.renewal-row{border-top:1px solid #f0f2f6}.renewal-top{display:grid;grid-template-columns:minmax(92px,1fr) minmax(100px,auto) 36px;gap:14px;align-items:center;padding:12px 0}.renewal-title{font-size:14px;font-weight:500}.renewal-source{font-size:12px;color:var(--muted);margin-top:2px}.date-block{text-align:right}.date-label{font-size:14px;font-weight:500;color:#38475e}.date-sub{font-size:12px;display:none}.date-sub.due-urgent{display:block;color:var(--danger)}.cost-block{font-size:12px;color:var(--muted);margin-top:2px}.cost-label{font-size:12px;color:var(--muted)}.cost-period{font-size:12px;color:var(--muted)}.renewal-top>.text-button{font-size:13px;color:var(--accent);min-width:36px}.renewal-note{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.7}.card-alerts{margin-top:13px}.card-alert{display:flex;gap:9px;padding:12px;background:var(--warning-soft);border-radius:8px;color:#80591b;font-size:12px;line-height:1.7}.card-alert+.card-alert{margin-top:7px}.issue-error{background:var(--danger-soft);color:var(--danger)}.alert-mark{width:15px;height:15px;border:1px solid currentColor;border-radius:50%;font-size:12px;flex-shrink:0;text-align:center;line-height:14px;margin-top:1px}
.app-card{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(250px,1fr);gap:0 36px;--card-accent:#8d77b5;--card-soft:#f1edf7}.app-card .card-heading{grid-column:1/-1}.app-card .card-type{margin-left:auto}.app-card .group-list{display:none}.app-card .host-identity{margin-top:20px;grid-column:1}.app-card .card-renewals{grid-column:2;grid-row:2;align-self:center;margin-top:20px;border-top:0;border-left:1px solid var(--line);padding:16px 0 16px 28px}.app-card .card-alerts{grid-column:1/-1}.app-card .service-top{grid-template-columns:56px minmax(0,1fr) auto}.app-card .asset-title{font-size:21px}.app-card .asset-subtitle{display:none}.app-visual{display:grid;place-items:center;width:52px;height:58px;border-radius:14px;background:#eee9f5}.app-moon{width:23px;height:23px;border-radius:50%;background:#ab97c8;position:relative;overflow:hidden}.app-moon:after{content:"";width:24px;height:24px;border-radius:50%;background:#eee9f5;position:absolute;left:8px;top:-5px}
.task-panel{margin-top:24px;background:white;border:1px solid #e7ebf2;border-radius:18px;padding:23px 24px}.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:15px}.section-heading h2{font-size:16px}.manual-heading{display:flex;justify-content:flex-end;align-items:center}.manual-heading h3{display:none}.checkbox-label{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:7px;cursor:pointer}.checkbox-label input{width:14px;min-height:14px;height:14px;margin:0;accent-color:var(--accent)}.empty{font-size:12px;color:var(--muted);padding:12px 0}.task-row{display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid var(--line);padding:13px 0}.task-check{display:flex;align-items:center;padding:3px 0}.task-check input{width:17px;height:17px;min-height:17px;accent-color:var(--accent);margin:0}.task-content{flex:1;min-width:0}.task-title{font-size:13px}.task-note{font-size:13px;color:var(--muted);margin-top:3px;white-space:pre-line;overflow-wrap:anywhere}.task-meta{font-size:12px;color:var(--muted);margin-top:5px}.completed .task-title{text-decoration:line-through;color:var(--muted)}
.editor{padding:17px;background:#f5f7fb;border:1px solid var(--line);border-radius:11px;margin:8px 0 12px}.editor-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:15px}.editor-heading h3{font-size:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:12px}.editor>label{margin-top:12px}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}.form-message{font-size:13px;color:var(--success)}.form-message.error{color:var(--danger)}.optional{font-size:12px;color:var(--muted);font-weight:400}.task-editor{max-width:640px}.maintenance-panel{margin-top:23px;color:var(--muted);font-size:13px}.maintenance-panel>summary{cursor:pointer;display:flex;justify-content:space-between;padding:12px 0;list-style:none}.maintenance-panel>summary::-webkit-details-marker{display:none}.maintenance-panel[open]>summary span{transform:rotate(45deg)}.maintenance-body{display:flex;gap:20px;justify-content:space-between;align-items:center;padding:16px 0;border-top:1px solid var(--line)}.maintenance-body p+p{margin-top:5px}.page-footer{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;padding:24px 0 30px}
.toast{position:fixed;bottom:25px;right:25px;z-index:30;background:#2c3b50;color:white;padding:12px 18px;border-radius:10px;font-size:12px;max-width:calc(100vw - 40px);box-shadow:0 6px 25px #24385220}.toast.error{background:#9f4d42}dialog{width:min(440px,calc(100vw - 34px));padding:26px;border:1px solid var(--line);border-radius:18px;color:var(--ink);box-shadow:0 20px 90px #2638522b}dialog::backdrop{background:#24354b66;backdrop-filter:blur(3px)}dialog label{margin-top:16px}.dialog-description{font-size:12px;color:var(--muted)}.section-index{display:none}.loading-card{border-radius:20px;background:#fff;padding:60px 25px;min-height:400px;color:var(--muted);font-size:12px}
/* The login stays a single private entry point. */
.login-page{min-height:100dvh;display:grid;place-items:center}.login-shell{width:min(460px,100%);padding:35px}.login-brand{display:flex;align-items:center;gap:12px;font-weight:600}.login-brand small{display:block;font-size:12px;color:var(--muted);letter-spacing:1.4px;margin-top:2px}.login-content{padding-top:55px}.eyebrow{font-size:13px;color:var(--accent);display:block;margin-bottom:10px}.login-content h1{font-size:32px}.login-form{margin-top:26px}.login-form .button{width:100%;margin-top:18px}.login-form label{margin-bottom:6px}.login-hint{padding:15px;background:#e9edf5;font-size:13px;color:var(--muted);border-radius:10px;margin-top:25px}.login-hint p{margin-top:5px}.login-hint code{display:block;word-break:break-all;font-size:12px;margin:7px 0}.login-error{color:var(--danger);font-size:12px;margin-top:10px}.login-private,.login-footer{font-size:12px;color:var(--muted);margin-top:22px}.login-footer{margin-top:60px}
@media(max-width:1020px){
 .app-header{padding:0 24px;gap:32px}.account-actions{gap:14px}.private-note{display:none}main:not(.login-shell){padding:0 24px}.host-card{padding:22px}.service-groups{gap:20px}.website-row{padding:16px}.website-row .service-top{grid-template-columns:26px minmax(0,1fr)}.website-row .service-status{grid-column:2;align-items:flex-start;flex-direction:row;align-items:center;gap:8px;flex-wrap:wrap}.website-row>.quick-checks,.website-row>.service-actions{margin-left:0}.card-type{display:none}.renewal-top{gap:10px;grid-template-columns:minmax(80px,1fr) minmax(100px,auto) 36px}.app-card{gap:0 24px;grid-template-columns:minmax(0,1.2fr) minmax(230px,1fr)}.app-card .service-top{grid-template-columns:48px minmax(0,1fr)}.app-card .service-status{grid-column:2;align-items:flex-start}.app-card .asset-visual{grid-row:1/3}.app-card .card-renewals{padding-left:22px}
}
@media(max-width:720px){
 html{scroll-padding-top:20px}.app-header{min-height:64px;padding:0 18px;gap:24px}.brand{font-size:14px;gap:9px}.brand-mark{width:30px;height:30px;font-size:23px;border-radius:9px}.nav{height:64px;gap:20px}.nav a{font-size:13px}.account-actions{gap:14px}.account-actions .text-button{font-size:12px}.private-note{display:none}main:not(.login-shell){padding:0 18px}.overview{padding:26px 2px 22px}h1{font-size:26px}.intro{font-size:13px;max-width:245px}.heading-row{gap:14px;align-items:center}.heading-row .button{font-size:13px;padding:9px 13px;min-height:42px}.connection-notice,.connection-notice.connected{font-size:12px}.service-groups{grid-template-columns:1fr;gap:20px}.host-card{padding:22px;border-radius:18px}.provider h2{font-size:18px}.provider-mark{width:38px;height:38px}.provider{gap:10px}.card-region{font-size:12px}.card-heading{gap:10px}.state-badge{font-size:12px}.host-identity{margin-top:19px}.server-row .asset-title{font-size:22px}.server-visual{width:66px;height:74px}.group-list{margin-top:17px}.website-row{padding:16px}.website-row .service-top{grid-template-columns:26px minmax(0,1fr)}.website-row .asset-title{font-size:18px}.website-row .service-status{grid-column:2;flex-direction:row;gap:7px;flex-wrap:wrap}.status-caption{font-size:12px}.quick-checks{gap:6px}.quick-check{font-size:12px;padding:3px 7px}.card-renewals{margin-top:17px}.renewal-top{grid-template-columns:minmax(80px,1fr) minmax(100px,auto) 36px;gap:10px;padding:12px 0}.renewal-title,.date-label{font-size:14px}.app-card{display:block}.app-card .card-renewals{border-left:0;border-top:1px solid var(--line);padding:7px 0 0;margin-top:19px}.app-card .service-top{grid-template-columns:52px minmax(0,1fr)}.app-card .asset-title{font-size:22px}.app-card .service-status{grid-column:2;align-items:flex-start}.app-card .asset-visual{grid-row:1/3}.task-panel{padding:22px;margin-top:22px;border-radius:18px}.section-heading{margin-bottom:14px}.section-heading h2{font-size:18px}.section-heading .button{font-size:13px;min-height:40px}.maintenance-body{display:block}.maintenance-body>.button{margin-top:15px}.page-footer{padding-top:16px}.form-grid{gap:12px}.editor{padding:15px}.editor-heading h3{font-size:14px}.form-footer{align-items:flex-end}.form-message{font-size:12px}.toast{right:18px;bottom:18px}
}
@media(max-width:380px){.app-header{padding:0 15px;gap:18px}.nav{gap:14px}.account-actions{gap:10px}main:not(.login-shell){padding:0 14px}.host-card,.task-panel{padding:18px}.website-row{padding:14px}.heading-row .button{padding:9px 11px}.card-heading{align-items:flex-start}.provider{gap:8px}.provider-mark{width:33px;height:33px}.state-badge{padding:4px 7px}}
.disk-partitions{margin:8px 0;overflow-x:auto}.disk-table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}.disk-table th,.disk-table td{padding:7px 5px;border-bottom:1px solid var(--line);text-align:right}.disk-table th{font-weight:400}.disk-table th:first-child{text-align:left;padding-left:0}.disk-table td{white-space:nowrap}.disk-table-status,.disk-row-status{color:var(--warning);font-size:12px}.disk-table-status{margin:0 0 4px}.disk-row-status{display:block;margin-top:2px}
.date-time{display:block;font-size:12px;color:var(--muted);margin-top:2px;font-variant-numeric:tabular-nums}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}button,a{transition:none}}
@media(pointer:coarse){.text-button,.external-link,.nav a,.button,.service-actions .details-toggle,.server-row>.service-actions .details-toggle{min-height:44px}.task-check{min-height:36px;min-width:25px}}

/* Approved layout v2: host overview with independent app, renewal and task sections. */
body:not(.login-page){background:#f4f6f9;color:#253044}
.app-header{min-height:76px;padding:0 max(32px,calc((100vw - 1120px)/2));gap:48px}
.app-header .brand-mark{width:32px;height:32px;border-radius:10px}
.app-header .nav{height:76px;gap:28px}
.app-header .nav a.active:after{height:2px}
main:not(.login-shell){max-width:1184px;padding:0 32px 28px}
.overview{padding:38px 0 26px}
.overview h1{font-size:29px;font-weight:650;line-height:1.3}
.overview .intro{font-size:12px;margin-top:6px}
.overview #check-now{background:white;color:var(--ink);border:1px solid #d7dfec;box-shadow:none;font-weight:400;border-radius:9px}
.overview #check-now:hover{background:#f7f9fd;border-color:#bac9e6}
.connection-notice,.connection-notice.connected{font-size:12px}
#attention-list{margin-bottom:24px}
#attention-list:empty{display:none}
#attention-list .card-alert{padding:15px 19px;border:1px solid #ecd9b8;border-left:3px solid #bd8b44;border-radius:12px;font-size:13px;align-items:flex-start}
#attention-list .card-alert.issue-error{border-color:#ebc8c0;border-left-color:var(--danger)}
#attention-list .card-alert+.card-alert{margin-top:9px}
#attention-list .card-alert>.alert-mark{margin-top:4px}
#attention-list .card-alert>span:last-child{min-width:0;overflow-wrap:anywhere}
#service-groups{gap:24px}
#service-groups .host-card{padding:25px 28px 20px;border:1px solid #e4eaf2;border-radius:20px;box-shadow:0 3px 14px #31456a03}
#service-groups .card-heading{gap:12px;align-items:center;min-height:27px}
#service-groups .provider{gap:9px;min-width:0}
#service-groups .provider-mark{width:27px;height:27px;flex-shrink:0;border-radius:8px;font-size:14px}
#service-groups .provider>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px;min-width:0}
#service-groups .provider h2{font-size:13px;font-weight:550;line-height:1.5}
#service-groups .card-region{font-size:12px;margin:0;line-height:1.5}
#service-groups .card-type{display:none}
#service-groups .card-heading>.state-badge{padding:0;border-radius:0;background:transparent;font-size:12px;flex-shrink:0}
#service-groups .host-identity{margin-top:17px}
.server-row{grid-template-columns:minmax(0,1fr) auto;gap:0 16px;align-items:center}
.server-row .asset-name{align-self:center}
.server-row .asset-title{font-size:23px;letter-spacing:-.6px;font-weight:620}
.server-row .asset-visual{display:none}
.server-row>.service-actions{grid-column:2;grid-row:1;justify-content:flex-end;align-self:center}
.server-row>.service-actions .details-toggle{font-size:12px;min-height:36px;color:var(--muted)}
.server-row .cloud-panel{margin-top:25px;padding-top:0;border-top:0}
.cloud-panel .cloud-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;margin:0 0 18px}
.cloud-panel .cloud-metric{grid-column:auto}
.cloud-panel .metric-label{font-size:12px}
.cloud-panel .metric-value{font-size:31px;font-weight:610;letter-spacing:-1px;line-height:1.2;margin-top:5px;overflow-wrap:normal}
.cloud-panel .metric-unit{font-size:13px;margin-left:3px}
.cloud-panel .metric-status{font-size:12px;line-height:1.5;margin-top:7px;overflow-wrap:anywhere}
.metric-meter{height:3px;border-radius:4px;background:#edf1f7;margin-top:13px;overflow:hidden}
.metric-meter span{display:block;height:100%;border-radius:4px;background:#91a9df;max-width:100%}
.metric-abnormal .metric-meter span{background:#cb8075}
.metric-stale .metric-meter span,.metric-unknown .metric-meter span,.metric-unconnected .metric-meter span{background:#b4bfce}
.cloud-panel .cloud-source{font-size:11px;line-height:1.7}
#service-groups .group-list{margin-top:17px}
#service-groups .website-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:17px 0 12px;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
#service-groups .website-row+.website-row{margin-top:4px}
#service-groups .website-row .service-top{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;grid-column:1;grid-row:1}
#service-groups .website-row .asset-visual{display:none}
#service-groups .website-row .asset-title{font-size:14px;font-weight:600;letter-spacing:0}
#service-groups .website-row .service-status{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:4px 8px;min-width:0}
#service-groups .website-row .status-caption{font-size:11px;white-space:normal}
#service-groups .website-row .service-status .state-badge{font-size:11px;padding:1px 6px}
#service-groups .website-row>.quick-checks{grid-column:1;grid-row:2;margin:0;gap:3px 7px}
#service-groups .website-row .quick-check{font-size:11px;line-height:1.6;padding:1px 4px;border-radius:4px}
#service-groups .website-row .quick-normal{background:transparent;padding-left:0;padding-right:0}
#service-groups .website-row .quick-normal+.quick-normal:before{content:'·';margin-right:7px;color:#8998a6}
#service-groups .website-row>.service-actions{grid-column:2;grid-row:1/3;justify-content:flex-end;gap:0 14px;margin:0;max-width:180px}
#service-groups .website-row .external-link,#service-groups .website-row .details-toggle{font-size:12px;padding:4px 0;min-height:32px;border:0;border-radius:0;background:transparent;color:#54657f}
#service-groups .website-row .external-link:hover,#service-groups .website-row .details-toggle:hover{color:var(--accent);background:transparent}
#service-groups .website-row .details-toggle{flex-basis:100%;justify-content:flex-end;margin-left:0;font-size:11px}
#service-groups .card-alerts{margin-top:12px}
#service-groups .card-renewals{display:none}
.section-card,#application-groups .app-card{background:var(--surface);border:1px solid #e4eaf2;border-radius:20px;box-shadow:0 3px 14px #31456a03;margin-top:24px;padding:24px 28px}
#application-groups .app-card{display:block;padding:22px 28px}
#application-groups .app-card>.card-heading,#application-groups .app-card>.card-renewals{display:none}
#application-groups .app-card .host-identity{margin:0}
#application-groups .app-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px 24px}
#application-groups .app-row>.service-top{display:grid;grid-template-columns:44px auto minmax(0,1fr);gap:16px;align-items:center}
#application-groups .app-row .asset-visual{grid-column:1;grid-row:1;width:44px;height:44px;border-radius:13px}
#application-groups .app-row .asset-name{grid-column:2;grid-row:1}
#application-groups .app-row .asset-title{font-size:17px;font-weight:600;letter-spacing:0}
#application-groups .app-row .service-status{grid-column:3;grid-row:1;align-items:flex-start;min-width:0}
#application-groups .app-row .state-badge{background:transparent;border-left:1px solid #dce3ed;padding:0 0 0 18px;border-radius:0;color:var(--muted);font-size:12px;white-space:normal}
#application-groups .app-row .state-badge:before{display:none}
#application-groups .app-row .state-abnormal{color:var(--danger)}
#application-groups .app-row .state-stale,#application-groups .app-row .state-unknown{color:var(--warning)}
#application-groups .app-row .service-actions{margin:0;gap:22px;justify-content:flex-end}
#application-groups .app-row .external-link{font-size:12px;border:0;background:transparent;border-radius:0;padding:6px 0;min-height:36px}
#application-groups .app-row .external-link:hover{background:transparent;color:var(--accent)}
#application-groups .app-row>.quick-checks{grid-column:1/-1;margin:0}
.section-card .section-heading{justify-content:flex-start;gap:12px;margin-bottom:18px;min-height:30px}
.section-card .section-heading h2{font-size:19px;font-weight:620;letter-spacing:-.3px}
.section-card .section-heading>button{margin-left:auto}
.subtitle-note{font-size:11px;color:var(--muted);font-weight:400}
#renewals .renewal-top{display:grid;grid-template-columns:minmax(190px,1.6fr) minmax(130px,1fr) minmax(105px,.8fr) 50px;gap:20px;align-items:center;padding:15px 0}
#renewals .renewal-list-head{padding:10px 0 9px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}
#renewal-list .renewal-row+.renewal-row{border-top:1px solid var(--line)}
#renewal-list .renewal-row:last-child>.renewal-top{padding-bottom:1px}
#renewals .renewal-main{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 9px;min-width:0}
#renewals .renewal-main h3{font-size:14px;font-weight:550;overflow-wrap:anywhere}
#renewals .renewal-kind{font-size:11px;color:var(--muted)}
#renewals .date-block{text-align:left}
#renewals .date-label{font-size:14px;font-weight:400;color:#394a65;letter-spacing:.15px;white-space:nowrap}
#renewals .date-sub{font-size:11px}
#renewals .renewal-auto{font-size:12px;color:var(--muted)}
#renewals .renewal-auto.enabled{color:#476c5b}
#renewals .renewal-top>.text-button{font-size:12px;min-height:32px;color:var(--muted);padding:4px 0;justify-content:flex-end}
#renewals .renewal-top>.text-button:hover{color:var(--accent)}
#tasks.section-card{padding:20px 28px}
#tasks .section-heading{margin-bottom:4px}
#tasks .section-heading .button{background:transparent;padding:4px 0;min-height:32px;font-size:12px;color:var(--muted);font-weight:400}
#tasks .section-heading .button:hover{color:var(--accent)}
#tasks .manual-heading{margin-top:4px}
#tasks .checkbox-label{font-size:12px}
#tasks .empty{padding:8px 0 2px}
#tasks .task-row:last-child{border-bottom:0}
.maintenance-panel{margin-top:24px;border-top:1px solid #e1e7f0;padding-top:5px}
.maintenance-panel>summary{font-size:11px}
.detail-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(480px,100%);max-width:100%;height:100dvh;max-height:100dvh;padding:30px;border:0;border-left:1px solid var(--line);border-radius:0;background:var(--surface);box-shadow:-14px 0 60px #26374f12;overflow:auto;overscroll-behavior:contain}
.detail-drawer::backdrop{background:#2530443b;backdrop-filter:none}
.detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:25px}
.detail-header h2{font-size:23px;font-weight:620;letter-spacing:-.4px;overflow-wrap:anywhere}
.detail-header p{font-size:12px;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}
#detail-close{flex-shrink:0;min-width:44px;min-height:40px;font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:8px;padding:6px 10px;background:white}
#detail-close:hover{color:var(--accent);background:#f7f9fc}
.detail-drawer .asset-details{margin:0}
.detail-management{margin-bottom:24px}
.detail-drawer .evidence-heading{padding:0 0 8px;border-top:0}
.detail-drawer .check-item{padding:15px 0;gap:8px 12px}
.detail-drawer .check-item>.state-badge{align-self:start}
.detail-drawer .check-detail{line-height:1.7}
.detail-facts{margin:0}
.detail-fact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);align-items:baseline;gap:20px;padding:13px 0;border-bottom:1px solid var(--line);font-size:13px}
.detail-fact> :first-child{color:var(--muted)}
.detail-fact> :last-child{margin:0;text-align:right;overflow-wrap:anywhere}
.detail-drawer .renewal-note{padding:12px 14px;background:#f5f7fa;border-radius:8px;margin-top:22px;white-space:pre-wrap;overflow-wrap:anywhere}
.detail-drawer .renewal-edit-button{margin-top:20px}
.detail-drawer .renewal-edit-button[aria-expanded="true"]{background:var(--accent-soft);color:var(--accent);box-shadow:none}
.detail-drawer .editor{margin-top:18px}
.detail-drawer .form-grid>label{min-width:0}
.detail-drawer .disk-table{font-size:11px}
.detail-drawer .disk-table th,.detail-drawer .disk-table td{padding:9px 4px}
@media(min-width:1500px){.overview{padding-top:46px}#service-groups .host-card{padding-top:28px;padding-bottom:23px}.server-row .cloud-panel{margin-top:29px}.cloud-panel .cloud-metrics{margin-bottom:22px}}
@media(max-width:1020px){
 .app-header{padding:0 24px;gap:30px}main:not(.login-shell){padding-left:24px;padding-right:24px}
 #service-groups .host-card{padding:22px}#service-groups .provider>div{display:block}#service-groups .card-region{font-size:11px}
 #service-groups .card-heading>.state-badge{font-size:11px}.cloud-panel .cloud-metrics{gap:17px}.cloud-panel .metric-value{font-size:28px}
 #service-groups .website-row{grid-template-columns:minmax(0,1fr) auto;column-gap:9px}#service-groups .website-row>.service-actions{gap:0 12px;max-width:140px}
 #application-groups .app-row{gap:16px}#application-groups .app-row>.service-top{gap:12px}#application-groups .app-row .state-badge{padding-left:12px}
 #renewals .renewal-top{grid-template-columns:minmax(160px,1.5fr) minmax(110px,1fr) minmax(95px,.8fr) 42px;gap:12px}
 #renewals .renewal-main{display:block}#renewals .renewal-kind{display:block;margin-top:2px}
}
@media(max-width:720px){
 .app-header{min-height:64px;padding:0 20px;gap:24px;flex-wrap:wrap}.app-header .nav{height:64px;gap:20px}.app-header .brand{font-size:14px}.app-header .account-actions{gap:12px}.app-header .account-actions .text-button{font-size:12px}
 main:not(.login-shell){padding:0 20px 24px}.overview{padding:26px 0 20px}.overview h1{font-size:25px}.overview .intro{font-size:11px}.overview #check-now{font-size:12px;min-height:40px;padding:8px 13px}
 #attention-list{margin-bottom:18px}#attention-list .card-alert{padding:13px 15px;font-size:12px}
 #service-groups{grid-template-columns:1fr;gap:18px}#service-groups .host-card{padding:22px;border-radius:18px}
 #service-groups .provider>div{display:flex}#service-groups .card-region{font-size:11px}#service-groups .card-heading>.state-badge{font-size:11px}
 #service-groups .host-identity{margin-top:16px}.server-row .asset-title{font-size:22px}.server-row .cloud-panel{margin-top:23px}.cloud-panel .cloud-metrics{gap:22px;margin-bottom:18px}.cloud-panel .metric-value{font-size:31px}
 #service-groups .website-row>.service-actions{max-width:145px}#service-groups .website-row .asset-title{font-size:14px}
 .section-card,#application-groups .app-card{margin-top:18px;padding:22px;border-radius:18px}
 #application-groups .app-card,#tasks.section-card{padding:20px 22px}
 #application-groups .app-row{display:block}
 #application-groups .app-row>.service-top{grid-template-columns:44px minmax(0,1fr);gap:0 12px}
 #application-groups .app-row .asset-visual{grid-row:1/3;align-self:start}
 #application-groups .app-row .asset-name{grid-column:2;grid-row:1}
 #application-groups .app-row .service-status{grid-column:2;grid-row:2;margin-top:2px}
 #application-groups .app-row .state-badge{font-size:11px;padding:0;border:0}
 #application-groups .app-row .service-actions{justify-content:flex-start;margin-left:56px;margin-top:5px;gap:24px}
 .section-card .section-heading{flex-wrap:wrap;gap:6px 10px;margin-bottom:10px}.section-card .section-heading h2{font-size:18px}
 #renewals .renewal-list-head{display:none}
 #renewals .renewal-top{grid-template-columns:minmax(0,1fr) auto;gap:3px 14px;padding:15px 0}
 #renewals .renewal-main{grid-column:1;grid-row:1;padding-right:4px}
 #renewals .renewal-main h3{font-size:14px}#renewals .renewal-kind{font-size:11px}
 #renewals .date-block{grid-column:2;grid-row:1;text-align:right;align-self:start}
 #renewals .date-label{font-size:13px}#renewals .date-sub{font-size:11px}
 #renewals .renewal-auto{grid-column:1;grid-row:2;font-size:11px}
 #renewals .renewal-top>.text-button{grid-column:2;grid-row:2;font-size:11px;padding:0;min-height:28px}
 #renewal-list .renewal-row:first-child{border-top:1px solid var(--line)}
 #tasks .manual-heading{margin-top:8px}.detail-drawer{padding:25px 22px}.detail-header h2{font-size:22px}.detail-fact{font-size:12px;gap:16px}.detail-drawer .check-item{font-size:12px}.detail-drawer .state-badge{font-size:11px}
}
@media(max-width:450px){
 .app-header{gap:16px;justify-content:space-between}.app-header .nav{gap:16px}.app-header .account-actions{width:100%;justify-content:flex-end;margin-top:-12px;padding-bottom:8px;gap:20px}.app-header .account-actions .text-button{min-height:30px;padding:2px 0}
 #service-groups .website-row{grid-template-columns:1fr;gap:3px}.website-row .status-caption{font-size:11px}
 #service-groups .website-row>.service-actions{grid-column:1;grid-row:3;justify-content:flex-start;max-width:none;gap:0 22px;margin-top:3px}
 #service-groups .website-row .details-toggle{flex-basis:auto;justify-content:flex-end;margin-left:auto}
}
@media(max-width:380px){
 .app-header{padding-left:16px;padding-right:16px}.app-header .brand{gap:8px}.app-header .nav{gap:14px}
 main:not(.login-shell){padding-left:16px;padding-right:16px}#service-groups .host-card,.section-card,#application-groups .app-card,#tasks.section-card{padding:19px}
 #service-groups .provider{gap:7px}#service-groups .provider>div{display:block}#service-groups .card-region{font-size:10px}
 #service-groups .card-heading>.state-badge{font-size:10px}.server-row{column-gap:10px}.server-row .asset-title{font-size:20px}.server-row>.service-actions .details-toggle{font-size:11px}
 .cloud-panel .cloud-metrics{gap:15px}.cloud-panel .metric-value{font-size:29px}.cloud-panel .metric-label{font-size:11px}.cloud-panel .metric-status{font-size:11px}
 .detail-drawer{padding:23px 19px}.detail-drawer .form-grid{grid-template-columns:1fr}.detail-drawer .form-footer{flex-wrap:wrap}.detail-drawer .form-footer>.button{margin-left:auto}
}
@media(pointer:coarse){
 .server-row>.service-actions .details-toggle,#service-groups .website-row .external-link,#service-groups .website-row .details-toggle,#application-groups .app-row .external-link,#renewals .renewal-top>.text-button,#tasks .section-heading .button,#detail-close{min-height:44px}
}

/* Own form panels share the editor's colors and stay above the detail drawer. */
.fc-select,.fc-date{position:relative;display:block;min-width:0;margin-top:6px}
.fc-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;padding:10px 12px;border:1px solid #dce2eb;border-radius:8px;background:var(--surface);font-size:13px;font-weight:400;text-align:left}
.fc-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-chevron{width:7px;height:7px;flex-shrink:0;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:translateY(-2px) rotate(45deg)}
.fc-trigger[aria-expanded="true"] .fc-chevron{transform:translateY(2px) rotate(225deg)}
.fc-trigger:hover,.fc-date:hover .fc-date-input{border-color:#bcc7d8}
.fc-trigger:focus-visible,.fc-trigger[aria-expanded="true"]{outline:none;box-shadow:none;border-color:#8b99b1;background:#fcfdff}
.fc-date .fc-date-input{min-height:44px;margin:0;padding-right:43px;font-size:13px;font-weight:400}
.fc-date-input::placeholder{color:#929bac}
.fc-calendar-toggle{position:absolute;right:1px;top:1px;display:grid;place-items:center;width:42px;height:42px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--muted)}
.fc-calendar-toggle:hover,.fc-calendar-toggle[aria-expanded="true"]{color:var(--accent);background:var(--accent-soft)}
.fc-calendar-toggle:focus-visible{outline:none;box-shadow:inset 0 0 0 1px #8b99b1}
.fc-calendar-toggle::before{content:"";width:15px;height:14px;border:1.5px solid currentColor;border-radius:3px;background:linear-gradient(currentColor,currentColor) 0 4px/100% 1.5px no-repeat}
.fc-calendar-icon{display:none}
.fc-panel{position:fixed;inset:auto;z-index:1000;margin:0;padding:8px;border:1px solid #e1e6ef;border-radius:12px;background:var(--surface);color:var(--ink);font-family:inherit;font-size:13px;font-weight:400;line-height:1.5;box-shadow:0 12px 36px #23345424,0 2px 6px #2334540a;overflow:auto;overscroll-behavior:contain;max-width:calc(100vw - 24px)}
.fc-panel::backdrop{background:transparent}
.fc-listbox{min-width:180px;max-height:300px}
.fc-option{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:40px;padding:9px 11px;border:0;border-radius:7px;background:transparent;text-align:left;font-weight:400;cursor:pointer}
.fc-option+.fc-option{margin-top:2px}
.fc-option:hover,.fc-option.is-active{background:#f3f5f9}
.fc-option.is-selected{color:var(--accent);background:var(--accent-soft);font-weight:500}
.fc-check{color:var(--accent);font-size:14px}
.fc-panel :focus-visible{outline:none;box-shadow:inset 0 0 0 1px #8298cd}
.fc-calendar{width:320px;padding:14px}
.fc-calendar-header,.fc-year-stepper{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.fc-nav{display:grid;place-items:center;min-width:34px;min-height:34px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:21px;line-height:1}
.fc-nav:hover{color:var(--accent);background:var(--accent-soft)}
.fc-month-title{min-height:34px;padding:5px 12px;border:0;border-radius:7px;background:transparent;font-size:14px;font-weight:600}
.fc-month-title:hover{color:var(--accent);background:var(--accent-soft)}
.fc-weekdays,.fc-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.fc-weekdays{margin-bottom:5px;color:#8993a4;font-size:11px;text-align:center;line-height:28px}
.fc-day{position:relative;display:grid;place-items:center;min-width:0;height:38px;padding:0;border:0;border-radius:8px;background:transparent;font-size:13px;font-weight:400;line-height:1}
.fc-day.is-outside{color:#a9b1be}
.fc-day:hover{background:#f0f3f9;color:var(--accent)}
.fc-day.is-today{color:var(--accent);font-weight:600}
.fc-day.is-today::after{content:"";position:absolute;bottom:4px;width:3px;height:3px;border-radius:50%;background:currentColor}
.fc-day.is-selected{background:var(--accent);color:white;font-weight:600}
.fc-day.is-selected:hover{background:#3558bc;color:white}
.fc-calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.fc-today,.fc-clear{min-height:34px;padding:6px 11px;border:0;border-radius:7px;background:transparent;font-size:12px}
.fc-today{color:var(--accent);background:var(--accent-soft)}
.fc-clear{color:var(--muted)}
.fc-clear:hover{background:#f3f5f9;color:var(--ink)}
.fc-month-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:6px 0}
.fc-month{min-height:45px;border:0;border-radius:8px;background:#f6f8fb;font-size:13px}
.fc-month:hover,.fc-month.is-selected{color:var(--accent);background:var(--accent-soft)}
.fc-panel button:disabled{opacity:.4;cursor:default}
@media(pointer:coarse){
 .fc-option,.fc-nav,.fc-month-title,.fc-today,.fc-clear{min-height:44px}
 .fc-day{height:40px}
}
