:root{color-scheme:dark;--bg:#080a0d;--panel:#101318;--panel2:#14181d;--line:#252a31;--text:#f1f3f5;--muted:#a0a7b2;--accent:#b7fa74;--accent-dim:#192518;--red:#ff978b;--font:Inter,"Segoe UI",Roboto,system-ui,sans-serif}
*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{margin:0;color:var(--text);font-family:var(--font);font-size:14px;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icons{position:absolute;width:0;height:0;overflow:hidden}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:#b7fa74;color:#0a1005}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100dvh}.sidebar{position:fixed;inset:0 auto 0 0;width:254px;background:#0b0d11;border-right:1px solid var(--line);padding:33px 17px 23px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:12px;padding:0 13px 60px}.brand-mark{width:43px;height:43px;display:grid;place-items:center;background:#eaf1e5;color:#11150c;border-radius:13px;font-size:23px;font-weight:850;letter-spacing:-.075em}.brand-mark span{color:#5c8d36}.brand-words{display:flex;flex-direction:column;gap:4px}.brand-words strong{font-size:13px;letter-spacing:.1em}.brand-words small{font-size:9px;letter-spacing:.16em;color:#717b84}.nav-caption{font-size:10px;font-weight:700;letter-spacing:.15em;color:#667079;margin:0 17px 16px}.side-nav{display:flex;flex-direction:column;gap:5px}.nav-item{display:flex;align-items:center;gap:14px;padding:13px 15px;color:#a3abb4;border-radius:11px;background:transparent;border:1px solid transparent;text-align:left;font-weight:590;transition:background .18s ease,color .18s ease}.nav-item:hover{color:#fff;background:#151a20}.nav-item.active{color:#e5f8d4;background:#1b271b;border-color:#31452b}.nav-item.active svg{color:var(--accent)}.nav-count{margin-left:auto;border-radius:6px;background:#242a31;padding:3px 7px;font:600 11px ui-monospace,SFMono-Regular,monospace}.sidebar-bottom{margin-top:auto}.private-indicator{display:flex;gap:10px;padding:15px 11px;background:#11181a;border:1px solid #283631;border-radius:13px;color:#a7cba9}.private-indicator svg{color:var(--accent)}.private-indicator div{display:flex;flex-direction:column;gap:5px}.private-indicator strong{color:#d9e6d5;font-size:12px}.private-indicator span{font-size:11px;color:#879b8b}.sidebar-bottom>p{font:600 10px ui-monospace,monospace;letter-spacing:.1em;color:#606c76;padding:20px 10px 0;display:flex;justify-content:space-between}.main-content{margin-left:254px;min-height:100dvh}.topbar{height:79px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,4vw,64px)}.breadcrumb{font-size:13px;color:#89929d}.breadcrumb #breadcrumb-current{color:#e8ecf0;font-weight:600}.slash{margin:0 12px;color:#45505a}.top-actions{display:flex;align-items:center;gap:20px}.last-sync{font-size:12px;color:#7c8792}.refresh-btn{background:#191e24;color:#dde4e8;border:1px solid #303841;border-radius:9px;padding:10px 14px;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:650}.refresh-btn:hover{background:#222831}.refresh-btn:disabled{opacity:.6;cursor:wait}.refresh-btn svg{width:16px;height:16px}.refresh-btn.loading svg{animation:turn .8s linear infinite}@keyframes turn{to{transform:rotate(360deg)}}.content-wrap{max-width:1540px;margin:0 auto;padding:37px clamp(22px,4vw,64px) 75px}.alert{padding:15px 17px;border-radius:10px;background:#281b1a;color:#ffd4ce;border:1px solid #6d3c37;margin-bottom:22px}.hero{min-height:310px;position:relative;border:1px solid #26302d;background:linear-gradient(110deg,#111b18 0%,#11181a 55%,#12171b 100%);border-radius:20px;overflow:hidden;display:flex;align-items:center}.hero-content{padding:46px 50px;position:relative;z-index:2;max-width:660px}.hero-label{font-size:10px;font-weight:770;letter-spacing:.17em;color:#b6ddb3;display:inline-flex;align-items:center;gap:10px}.pulse{height:7px;width:7px;border-radius:50%;background:#5a6762}.pulse.live{background:var(--accent);box-shadow:0 0 0 4px #b7fa741a}.hero h1,.page-intro h1{margin:21px 0 14px;font-size:clamp(32px,3.5vw,52px);line-height:1.09;letter-spacing:-.035em;font-weight:750}.dot{color:var(--accent)}.hero p,.page-intro p{font-size:14px;color:#a9b6b7;max-width:47ch;line-height:1.8;margin:0}.hero-actions{display:flex;gap:21px;align-items:center;margin-top:28px;flex-wrap:wrap}.health-tag{display:flex;align-items:center;gap:8px;color:#cbd3d5;background:#27302c;padding:10px 13px;border-radius:8px;font-size:11px;font-weight:700}.health-tag.healthy{color:#cbf6aa;background:#263a21}.health-tag.warn{color:#ffc5a5;background:#493029}.hero-link{background:none;color:#dde8de;border:0;padding:9px 0;display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700}.hero-link:hover{color:var(--accent)}.hero-link svg{width:16px;height:16px}.hero-art{position:absolute;right:-35px;top:-130px;width:490px;height:510px;opacity:.84}.orbit{position:absolute;border:1px solid rgba(183,250,116,.16);border-radius:50%;inset:56px}.orbit-a{transform:scaleX(.9) rotate(-25deg)}.orbit-b{inset:0;border-color:rgba(183,250,116,.085)}.core{position:absolute;left:calc(50% - 87px);top:calc(50% - 87px);width:174px;height:174px;background:linear-gradient(145deg,#334a32,#15251b);border:1px solid #455942;border-radius:36px;transform:rotate(-28deg);display:grid;place-items:center;box-shadow:18px 24px 50px #0007}.core-inner{transform:rotate(28deg);font-weight:800;font-size:75px;color:#c6f3a8;letter-spacing:-.07em}.orbit-point{position:absolute;display:block;width:8px;height:8px;background:var(--accent);border-radius:50%}.orbit-point.one{left:67px;top:260px}.orbit-point.two{right:73px;top:72px;opacity:.5}.section-line{display:flex;justify-content:space-between;align-items:end;gap:14px;margin:41px 0 19px}.section-line h2,.panel-heading h2{font-size:17px;letter-spacing:-.02em;margin:0;font-weight:720}.hint{font-size:11px;color:#76838f}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.stat-block{background:var(--panel);border:1px solid var(--line);padding:24px 23px 21px;border-radius:15px;min-width:0}.stat-heading{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#adb6bf;font-weight:660}.stat-heading svg{width:18px;height:18px;color:#687681}.stat-number{display:flex;align-items:baseline;gap:3px;margin:25px 0 23px;font-size:44px;line-height:1;letter-spacing:-.05em;font-weight:700;font-variant-numeric:tabular-nums}.stat-number .unit{font-size:22px;letter-spacing:0;color:#82909b;font-weight:470}.meter{height:5px;background:#2b3238;border-radius:9px;overflow:hidden}.meter .fill{background:var(--accent);width:0;height:100%;border-radius:9px;transition:width .35s ease}.meter .fill.high{background:#ffab81}.stat-meta{color:#8b96a0;font-size:11px;margin-top:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overview-bottom{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.summary-panel,.system-panel{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:24px;min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start}.panel-heading p{font-size:12px;color:#85909a;margin:8px 0 0}.icon-link{width:30px;height:30px;background:#22282d;border:1px solid #333a42;border-radius:9px;display:grid;place-items:center;color:#cdd6dc}.icon-link svg{width:16px;height:16px}.icon-link:hover{color:var(--accent)}.docker-stat{display:flex;align-items:baseline;gap:6px;margin:28px 0 12px;font-variant-numeric:tabular-nums}.docker-stat span:first-child{font-size:40px;letter-spacing:-.05em;font-weight:720}.docker-stat span:nth-child(2),.docker-stat span:nth-child(3){font-size:21px;color:#818e97}.docker-stat small{font-size:12px;color:#a3aeb6;margin-left:8px}.mini-list{margin-top:14px}.mini-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 0;border-top:1px solid #272d32;font-size:12px}.mini-row strong{font-weight:620;max-width:70%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-row span{font-size:11px;color:#8e9da4;white-space:nowrap}.mini-row .okay{color:#b7fa74}.muted{color:var(--muted)}.page-intro{margin:12px 0 37px}.page-intro h1{margin:0 0 14px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin:0 0 18px;gap:14px;color:#9faab4;font-size:12px}.search-wrap input{width:min(300px,100%);background:#15191e;color:#f3f5f7;border:1px solid #303841;padding:13px 14px;border-radius:10px;outline:none}.search-wrap input:focus-visible{border-color:var(--accent)}.list-panel{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:10px 22px}.container-row{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(140px,1fr) minmax(135px,.75fr);gap:20px;align-items:center;padding:19px 4px;border-bottom:1px solid var(--line)}.container-row:last-child{border-bottom:0}.container-name{font-size:13px;font-weight:700;overflow-wrap:anywhere}.container-image{font:12px ui-monospace,Consolas,monospace;color:#95a2ac;overflow-wrap:anywhere}.state-label{color:#c8d1d8;font-size:12px;display:flex;align-items:center;gap:8px}.state-label::before{content:"";width:7px;height:7px;border-radius:50%;background:#86919d}.state-label.running::before{background:var(--accent)}.state-label.exited::before{background:#ffb68c}.container-detail{color:#81909b;font-size:11px;margin-top:6px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.project-card{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:23px;text-decoration:none;display:flex;align-items:center;gap:18px;transition:background .2s,border-color .2s}.project-card:hover{background:#171d20;border-color:#4a6245}.project-initial{height:48px;width:48px;background:#232b24;border:1px solid #384638;border-radius:12px;display:grid;place-items:center;color:#c1efaa;font-size:20px;font-weight:760}.project-text{display:flex;flex-direction:column;gap:6px;min-width:0}.project-text strong{font-size:14px}.project-text small{font-size:12px;color:#93a0a8}.project-card>svg{margin-left:auto;color:#82918a;width:18px;height:18px}.system-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.system-panel h2{font-size:17px;margin:0 0 23px}.system-panel dl{margin:0}.system-panel dl>div{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding:16px 0}.system-panel dl>div:last-child{border:0}.system-panel dt{color:#8996a1;font-size:12px}.system-panel dd{margin:0;text-align:right;font-size:12px;font-weight:620}.security-item{display:flex;gap:13px;margin:18px 0}.security-item svg{color:var(--accent)}.security-item strong{font-size:12px}.security-item p{font-size:11px;line-height:1.5;color:#8f9ba3;margin:6px 0}.terminal-copy{background:#0b0e11;border:1px solid #2e343b;border-radius:10px;display:flex;gap:10px;align-items:center;padding:11px 12px;margin-top:24px}.terminal-copy code{font:11px ui-monospace,monospace;color:#bdd3b0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.terminal-copy button{border:0;color:var(--accent);background:none;font-weight:700;font-size:11px}.terminal-help{margin:0;color:#b0c0bb;font-size:12px;line-height:1.6;overflow-wrap:anywhere}.empty-message{padding:30px 10px;color:#91a0ac;text-align:center;font-size:13px;line-height:1.7}.mobile-nav{display:none}
@media(max-width:1170px){.sidebar{width:216px}.main-content{margin-left:216px}.hero-art{right:-150px;opacity:.65}.hero-content{padding:38px;max-width:560px}.stats-grid{gap:11px}.stat-block{padding:20px 17px}}
@media(max-width:860px){.sidebar{display:none}.main-content{margin-left:0}.topbar{height:65px}.content-wrap{padding:28px 22px 105px}.hero{min-height:290px}.hero-art{right:-190px}.mobile-nav{display:flex;position:sticky;bottom:0;left:0;right:0;z-index:20;background:#0f1217f7;border-top:1px solid #2a3238;justify-content:space-around;padding:9px 6px calc(11px + env(safe-area-inset-bottom))}.mobile-item{background:none;color:#8895a0;border:0;display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;padding:5px 10px;min-width:65px;font-size:10px;font-weight:620}.mobile-item.active{color:var(--accent)}.mobile-item svg{height:22px;width:22px}.hero-content{max-width:560px}}
@media(max-width:620px){.topbar{padding:0 21px}.last-sync{display:none}.refresh-btn{padding:10px}.refresh-btn span{display:none}.content-wrap{padding:24px 16px 100px}.hero{min-height:277px;border-radius:16px}.hero-content{padding:28px 23px}.hero-art{right:-280px;top:-134px;opacity:.32}.hero h1,.page-intro h1{font-size:36px;max-width:290px}.hero p{font-size:13px;max-width:315px}.hero-label{font-size:9px}.hero-actions{margin-top:22px;gap:18px}.section-line{margin-top:34px}.hint{font-size:10px}.stats-grid{grid-template-columns:1fr 1fr;gap:11px}.stat-block{padding:19px 16px;border-radius:13px}.stat-block:last-child{grid-column:1/-1}.stat-number{font-size:35px;margin:23px 0 19px}.stat-number .unit{font-size:17px}.stat-heading{font-size:11px}.stat-meta{font-size:10px}.overview-bottom,.system-grid,.project-grid{grid-template-columns:1fr;gap:12px}.summary-panel,.system-panel{padding:21px}.page-intro{margin:12px 0 25px}.page-intro h1{font-size:37px}.toolbar{align-items:stretch;flex-direction:column}.search-wrap input{width:100%}.list-panel{padding:8px 15px}.container-row{grid-template-columns:1fr auto;gap:5px 12px;padding:15px 2px}.container-image{grid-column:1 / -1;grid-row:2}.state-label{grid-column:2;grid-row:1;justify-self:end}.system-panel dl>div{align-items:flex-start;flex-direction:column;gap:7px}.system-panel dd{text-align:left}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* v0.2 — secure login and admin operations */
body.auth-check .app-shell{display:none!important}
body.signed-in .login-screen{display:none}
.login-screen{min-height:100dvh;display:grid;place-items:center;padding:24px;background:#080a0d;color:#f5f7fa;position:relative;overflow:hidden}
.login-screen:before{content:"";position:absolute;width:58vw;height:58vw;max-width:550px;max-height:550px;border:1px solid #282f2e;border-radius:50%;right:-16vw;top:-24vw;box-shadow:0 0 0 85px #0e121310,0 0 0 175px #0e12130a;pointer-events:none}
.login-layout{width:min(100%,470px);position:relative;z-index:1}
.login-brand{display:flex;align-items:center;gap:12px;margin:0 0 36px;font-size:13px;letter-spacing:.12em;font-weight:800}.login-brand small{color:#a6b1b1;letter-spacing:0;font-weight:500;margin-left:7px}
.login-emblem{font-size:25px;font-weight:900;letter-spacing:-.14em;background:#c1f785;color:#07100b;padding:12px 18px 12px 12px;border-radius:16px}.login-emblem span{color:#427139}
.login-card{padding:36px;border:1px solid #303a39;background:#111719;border-radius:26px;box-shadow:0 24px 80px #0006}
.login-top{display:flex;justify-content:space-between;gap:8px;align-items:center;color:#adc8c4;font-size:10px;letter-spacing:.14em;font-weight:700}.login-lock{color:#b9ee98}
.login-card h1{margin:36px 0 12px;line-height:1.1;font-size:clamp(34px,7vw,48px);font-weight:750;letter-spacing:-.035em}.login-card h1 span{color:#c1f785}.login-desc{color:#aebcba;font-size:14px;line-height:1.65;margin:0 0 32px}
#login-form label{display:block;color:#d9e5e2;font-size:13px;font-weight:650;margin-bottom:10px}.password-field{display:flex;align-items:center;gap:8px;border:1px solid #52605c;border-radius:13px;background:#080d0e;padding:6px 8px 6px 13px}.password-field:focus-within{outline:2px solid #b9f28d;outline-offset:2px}.password-field input{background:none;border:0;box-shadow:none;outline:none;color:#fff;font:inherit;width:100%;min-width:0;padding:10px 0}.password-field input::placeholder{color:#778684}.password-field button{flex-shrink:0;border:0;background:none;color:#d4e2de;font-size:12px;padding:10px;cursor:pointer}.login-error{color:#ffaaa4;min-height:32px;padding:8px 0;font-size:12px;line-height:1.4}.login-submit{border:0;border-radius:13px;width:100%;display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#c1f785;color:#0b160a;font-size:15px;font-weight:800;cursor:pointer}.login-submit:disabled{opacity:.55;cursor:wait}.login-submit span{font-size:22px}.login-foot{display:flex;align-items:center;gap:8px;margin-top:25px;padding-top:19px;border-top:1px solid #2c3837;font-size:11px;color:#b7c6c2;line-height:1.5}.private-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#baf487;flex-shrink:0}.login-note{color:#899997;text-align:center;font-size:12px;line-height:1.6;margin:24px 0 0}
.admin-identity{color:#bcf2a3;display:inline-flex;gap:8px;align-items:center;font-size:11px;font-weight:800;letter-spacing:.08em}.logout-btn{background:#202a29;color:#e0e9e6;border:1px solid #46534e;border-radius:10px;font-size:12px;padding:10px 14px;cursor:pointer}.logout-btn:hover{background:#34423f}
.container-row{display:grid;grid-template-columns:minmax(120px,1fr) auto;gap:12px}.container-meta{min-width:0}.container-controls{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:9px}.action-button{border:1px solid #58685f;background:#1a2723;color:#e6f4e8;padding:9px 13px;border-radius:9px;font:inherit;font-size:12px;cursor:pointer}.action-button:hover{border-color:#baf487}.danger-action{color:#ffc6bc;border-color:#794941;background:#30201e}.access-note{color:#9aaba7;font-size:12px}
.log-dialog{max-width:min(94vw,780px);width:100%;max-height:84dvh;overflow:auto;border:1px solid #55665e;background:#0c1213;color:#f3f7f5;border-radius:20px;padding:23px;box-shadow:0 24px 65px #0009}.log-dialog::backdrop{background:#000b;backdrop-filter:blur(3px)}.log-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.log-head h2{font-size:19px;margin:0}.log-head button{border:1px solid #54615b;background:#212b28;color:#f3f7f5;padding:9px 12px;border-radius:8px;cursor:pointer}.log-dialog pre{overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.55;padding:15px;background:#030607;border-radius:11px;border:1px solid #354039;margin:20px 0 0;max-height:57vh}.action-toast{position:fixed;z-index:30;bottom:90px;right:25px;max-width:min(90vw,440px);padding:14px 18px;border-radius:12px;background:#203529;color:#f0f8ed;border:1px solid #6b9f76;box-shadow:0 8px 30px #0009;font-size:13px}.toast-error{background:#43211f;border-color:#c46962;color:#fff1ef}
@media(max-width:620px){.login-screen{padding:20px}.login-layout{max-width:430px}.login-card{padding:26px 22px;border-radius:22px}.login-brand{margin-bottom:24px}.login-card h1{margin-top:28px}.login-note{font-size:11px}.admin-identity{display:none}.logout-btn{padding:8px 9px}.container-row{grid-template-columns:minmax(0,1fr)}.container-controls{grid-column:1}.action-button{font-size:11px;padding:9px}}
@media(prefers-reduced-motion:reduce){.login-screen *{transition:none!important;animation:none!important}}

/* 0.2.1: compact mobile viewport; sticky nav follows visual viewport instead of covering content */
@media(max-width:860px){.app-shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.main-content{flex:1;min-height:0}.mobile-nav{flex-shrink:0;min-height:68px;bottom:0;padding-bottom:max(12px,env(safe-area-inset-bottom));box-shadow:0 -9px 25px #0005}.content-wrap{padding-bottom:34px}.hero{min-height:0}.hero-content{padding:25px 28px}.hero-art{opacity:.2;pointer-events:none}.hero h1{font-size:clamp(29px,4vw,38px);margin:12px 0 10px}.hero p{line-height:1.55}.hero-actions{margin-top:16px}.section-line{margin:24px 0 13px}.stat-block{padding:16px}.stat-number{margin:15px 0;font-size:32px}.stat-meta{margin-top:10px}.overview-bottom{margin-top:12px}}
@media(max-width:620px){.content-wrap{padding:15px 14px 30px}.hero-content{padding:20px}.hero h1{font-size:30px;max-width:none}.hero p{font-size:12px;max-width:45ch}.hero-actions{gap:12px}.hero-label{letter-spacing:.12em}.stat-block{padding:15px 14px}.stat-number{font-size:30px;margin:14px 0}.stat-heading{font-size:11px}.stats-grid{gap:9px}.overview-bottom{gap:10px}.summary-panel{padding:17px}.mobile-item{min-height:48px}}

/* v0.2.2: accessible TOTP second factor */
#login-form .otp-label{margin-top:17px}
#login-otp{letter-spacing:.16em;font-variant-numeric:tabular-nums}
.otp-hint{font-size:11px;line-height:1.5;color:#a6b7b2;margin:8px 0 0}


/* Mobile Design Lab: reliable thumb targets and clear operation states. */
.container-controls[aria-busy="true"]{opacity:.85}
.action-button:disabled{opacity:.58;cursor:progress;border-color:#56665c}
@media (pointer:coarse){
  .action-button,.refresh-btn,.logout-btn,.icon-link,.hero-link,
  .log-head button,.terminal-copy button,#toggle-password{min-height:44px;min-width:44px}
  .action-button{padding-inline:15px}
  .mobile-item{min-height:48px;min-width:64px}
}
@media(max-width:620px){
  .search-wrap input,#login-password,#login-otp{font-size:16px}
  .container-controls{gap:9px}
  .container-controls .action-button{flex:1 1 auto}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .refresh-btn.loading svg{animation:none}
  .meter .fill{transition:none}
}


/* Operational dashboard: compact live alerts, controlled filters and ephemeral history. */
.hero-age{color:#aab8b4;font-size:12px;font-variant-numeric:tabular-nums}
.host-warnings{display:grid;gap:10px;margin-bottom:24px;padding:18px 20px;background:#211c18;border:1px solid #86603b;border-radius:13px;color:#f5dfba}
.host-warnings strong{font-size:15px}
.host-warnings ul{padding-left:19px;margin:0;display:grid;gap:7px;line-height:1.45;font-size:13px}
.host-warnings small{color:#d1b99a;font-size:11px;line-height:1.5}
.container-filter-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.container-filter-row label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:650;color:#abb6b8}
.container-filter-row select{background:#151b20;border:1px solid #49545c;border-radius:10px;color:#eaf0ef;padding:11px 35px 11px 13px;font-size:14px;font-family:inherit;min-height:44px;max-width:100%}
.container-filter-row select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.reset-filters,.clear-activity{border:1px solid #414d52;background:#1b2428;color:#d9e8e5;border-radius:10px;padding:11px 15px;font-size:12px;min-height:44px}
.reset-filters:disabled,.clear-activity:disabled{opacity:.45;cursor:default}
.filter-count{margin-left:auto;align-self:center;font-size:12px;color:#acbbbd;font-variant-numeric:tabular-nums}
.activity-panel{margin-top:24px;background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:21px 23px}
.activity-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}
.activity-heading h2{font-size:16px;margin:0 0 5px}
.activity-heading p{font-size:12px;line-height:1.55;color:#9faeaf;margin:0;max-width:54ch}
.activity-list{list-style:none;display:grid;gap:0;margin:18px 0 0;padding:0}
.activity-row{padding:14px 0;border-top:1px solid var(--line);display:flex;align-items:flex-start;gap:12px;justify-content:space-between}
.activity-info{min-width:0;display:flex;flex-direction:column;gap:5px}
.activity-info strong{font-size:13px;font-weight:660;overflow-wrap:anywhere}
.activity-info small{color:#a6b2b3;font-size:12px;overflow-wrap:anywhere;line-height:1.5}
.activity-time{font-size:11px;color:#a6b2b3;white-space:nowrap;font-variant-numeric:tabular-nums}
.activity-stage{font-size:11px;font-weight:750}
.activity-stage.done{color:#b7fa74}
.activity-stage.failed,.activity-stage.unknown{color:#ffb4a7}
.activity-stage.queued,.activity-stage.sending{color:#b2ccd8}
@media(max-width:620px){
  .host-warnings{padding:15px}
  .container-filter-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:9px}
  .container-filter-row label{min-width:0}
  .container-filter-row select{width:100%;padding:12px 26px 12px 10px;font-size:13px}
  .reset-filters{width:100%}
  .filter-count{margin:0;justify-self:end}
  .activity-panel{padding:18px 15px}
  .activity-heading{align-items:flex-start}
  .activity-heading p{font-size:11px}
  .clear-activity{min-width:74px}
  .hero-age{font-size:11px}
  .hero-art{display:none}
}

/* Real host telemetry: lightweight inline SVG, no external charting runtime. */
.trend-section{margin:28px 0 4px}
.trend-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:17px}
.trend-kicker{font-size:10px;font-weight:740;letter-spacing:.18em;color:#91af8c}
.trend-heading h2{margin:8px 0 6px;font-size:21px;letter-spacing:-.025em}
.trend-heading p{margin:0;font-size:12px;line-height:1.55;color:#93a1a9}
.trend-period{display:inline-flex;align-items:center;padding:4px;gap:4px;background:#131920;border:1px solid #2d3940;border-radius:11px;flex-shrink:0}
.trend-period button{border:0;border-radius:8px;padding:10px 12px;background:transparent;color:#adb8bb;font-size:12px;font-weight:700;min-width:45px;cursor:pointer}
.trend-period button[aria-pressed="true"]{color:#edfae6;background:#2d402d}
.trend-period button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.trend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.trend-card{border:1px solid var(--line);background:var(--panel);border-radius:15px;padding:17px 19px;min-width:0}
.trend-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.trend-card h3{margin:0;font-size:13px;font-weight:720}
.trend-card-value{font-variant-numeric:tabular-nums;font-size:14px;font-weight:760;color:#dcebd7}
.trend-card-note{margin:10px 0 0;color:#91a1a8;font-size:11px;line-height:1.6}
.trend-graph{display:block;width:100%;height:100px;margin:11px 0 0;overflow:visible}
.trend-line{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.trend-graph .trend-axis{stroke:#33403a;stroke-width:1;stroke-dasharray:4 5}
.trend-graph.cpu{color:#b7fa74}
.trend-graph.ram{color:#83cee2}
.trend-graph.disk{color:#ffbc87}
.trend-graph.docker{color:#baa2f3}
.trend-line{stroke:currentColor}
.trend-point{fill:currentColor}
.trend-no-data{min-height:100px;display:flex;align-items:center;justify-content:center;color:#839198;font-size:12px;text-align:center}
.trend-message{grid-column:1/-1;padding:28px;border:1px solid var(--line);border-radius:15px;color:#9baab0;margin:0;font-size:12px}
.trend-span{font-size:10px;letter-spacing:.04em;color:#879a96;font-variant-numeric:tabular-nums}
@media(max-width:700px){
  .trend-grid{grid-template-columns:minmax(0,1fr)}
  .trend-heading{align-items:flex-start;flex-direction:column}
  .trend-period{width:100%;justify-content:space-between}
  .trend-period button{flex:1;min-height:44px}
  .trend-card{padding:17px 16px}
}

/* Project Control Center — source-backed GitHub cards. */
.projects-live-state{font-size:12px;line-height:1.55;color:#9aa8b1;margin:-19px 0 20px;overflow-wrap:anywhere}
.project-grid .live-project{display:flex;flex-direction:column;align-items:stretch;gap:15px;padding:21px;min-height:235px}
.project-header{display:flex;align-items:center;gap:13px;min-width:0}
.project-header .project-text{flex:1;min-width:0}
.project-header .project-title{font-size:15px;font-weight:750;overflow-wrap:anywhere;text-decoration:none;color:#e9eff0}
.project-header .project-title:hover{text-decoration:underline}
.project-header .project-text small{display:block;margin-top:4px;color:#8ea1a7}
.ci-status{font-size:11px;font-weight:740;line-height:1.5;border-radius:8px;padding:7px 10px;width:max-content;max-width:100%;border:1px solid #374046;background:#1d2227;color:#a6b3b8}
.ci-status.good{color:#b9f7b7;border-color:#39553b;background:#1b2a20}
.ci-status.bad{color:#ffaaa6;border-color:#563636;background:#2a1a1d}
.ci-status.pending{color:#a6dbea;border-color:#30475b;background:#172630}
.project-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%}
.project-metric{background:#151a1e;border:1px solid #283035;border-radius:9px;padding:12px 13px;min-width:0}
.project-metric small{font-size:10px;display:block;color:#8c9da5;margin-bottom:6px}
.project-metric strong{font-size:20px;font-weight:760;font-variant-numeric:tabular-nums}
.project-release{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:11px;color:#90a0a6}
.project-release .project-ext-link{font-weight:720}
.project-unknown{color:#91a0a7}
.project-footer{margin-top:auto;padding-top:13px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:9px 15px}
.project-ext-link{font-size:12px;color:#b9e9b1;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere;min-height:22px}
.project-ext-link:focus-visible,.project-title:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.project-inactive-link{color:#86949b}
@media(max-width:760px){.project-grid{grid-template-columns:minmax(0,1fr)}.project-grid .live-project{min-height:0;padding:19px}}

/* Unified, evidence-backed Project Control Center diagnostics. */
.control-health{border:1px solid #2c3934;border-radius:17px;background:#101713;margin:22px 0 26px;padding:23px;min-width:0}
.control-health-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:17px}
.control-health-heading h2{font-size:20px;letter-spacing:-.03em;margin:6px 0}
.control-health-heading p{font-size:12px;color:#a1b0a7;line-height:1.6;margin:0}
.control-health-badge{border:1px solid #425047;border-radius:9px;padding:8px 10px;font-size:11px;white-space:nowrap;font-weight:740;color:#becbc2}
.control-health-badge.good{color:#b5f0a4;background:#1e2c1c;border-color:#3a5937}
.control-health-badge.warn{color:#ffb4a4;background:#30211d;border-color:#573e35}
.control-health-badge.unknown{color:#b5c3c9;background:#1c2629;border-color:#34454c}
.control-health-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.control-health-item{display:flex;gap:11px;align-items:center;padding:13px 14px;min-width:0;background:#151b19;border:1px solid #2c3632;border-radius:10px}
.control-health-item.warning{border-color:#523b36;background:#251a19}
.control-health-mark{flex-shrink:0;border-radius:50%;height:22px;width:22px;display:grid;place-items:center;background:#3a4546;color:#d3e1e7;font-weight:800;font-size:12px}
.control-health-item.warning .control-health-mark{background:#633b37;color:#ffe3dc}
.control-health-link{font-size:12px;line-height:1.5;color:#e0e8e3;text-decoration:none;overflow-wrap:anywhere}
.control-health-link:hover{text-decoration:underline;text-underline-offset:3px}
.control-health-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.control-health-empty,.control-health-more{font-size:12px;color:#a0b4a4;line-height:1.6;margin:0;grid-column:1/-1}
@media(max-width:760px){.control-health{padding:18px 15px}.control-health-heading{flex-direction:column}.control-health-list{grid-template-columns:minmax(0,1fr)}.control-health-item{padding:13px}}

/* GitHub source health: distinguish missing source from actual failing CI. */
.project-api-note{color:#c3abb2;font-size:11px;line-height:1.55;margin:-6px 0 0;overflow-wrap:anywhere}

/* GitHub Builds Center: accessible native details, real release assets only. */
.project-downloads{display:grid;gap:8px;padding:14px;background:#17201c;border:1px solid #36463b;border-radius:10px;min-width:0}
.project-downloads h4{margin:0 0 3px;font-size:12px;font-weight:750;color:#bde3b9}
.project-downloads .project-ext-link{display:block;overflow-wrap:anywhere;line-height:1.6}
.project-builds{padding:11px 13px;border:1px solid #32413d;border-radius:10px;min-width:0;background:#131b19}
.project-builds summary{cursor:pointer;min-height:28px;display:list-item;font-size:12px;font-weight:760;color:#cbdfd5;line-height:28px}
.project-builds summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.project-build-list{list-style:none;padding:12px 0 0;margin:0;display:grid;gap:9px}
.project-build-item{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #2b3a35;padding:10px 0 2px;min-width:0}
.project-build-info{min-width:0;display:grid;gap:4px}
.project-build-info small{font-size:10px;color:#a8b6af;overflow-wrap:anywhere}
.project-build-status{font-size:11px;font-weight:740}
.project-build-status.good{color:#b9f7b7}
.project-build-status.bad{color:#ffaaa6}
.project-build-status.pending{color:#a6dbea}
.project-build-status.unknown{color:#b5c3c9}
.project-build-item .project-ext-link{flex-shrink:0;font-size:11px}
@media(max-width:420px){.project-build-item{align-items:flex-start;flex-direction:column;gap:4px}}

/* Builds Center v0.7: source-grounded CI comparisons, readable on narrow phones. */
.build-center{display:grid;gap:12px;border:1px solid #35423d;border-radius:12px;background:#101a16;padding:15px;min-width:0}
.build-center h4{font-size:13px;letter-spacing:-.01em;margin:0;font-weight:760;color:#e2f4e7}
.build-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.build-result{display:flex;flex-direction:column;gap:7px;padding:12px;border:1px solid #344038;border-radius:10px;min-width:0;background:#19231c}
.build-result.bad{background:#251b1c;border-color:#50393a}
.build-result small{color:#a4b9ac;font-size:10px;font-weight:700}
.build-result .project-ext-link{font-size:13px;font-weight:760;max-width:100%;overflow-wrap:anywhere}
.build-result-date{font-size:10px;color:#8fa39a}
.build-verdict{font-size:11px;color:#a9c3b0;line-height:1.55;margin:0}
.build-filters{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0}
.build-filter{min-height:38px;padding:8px 12px;border:1px solid #354840;border-radius:8px;background:#1c2b23;color:#b4c5bc;font-size:11px;font-weight:720;cursor:pointer}
.build-filter[aria-pressed="true"]{background:#345038;border-color:#668f65;color:#ebffe5}
.build-filter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.build-run-meta{font-size:10px;color:#91a9a0;line-height:1.5;overflow-wrap:anywhere}
.build-filter-empty{font-size:12px;color:#acbdb7;padding:10px 0}
.project-apk-empty{font-size:11px;line-height:1.5;color:#94aaa0;margin:0}
@media(max-width:390px){.build-center{padding:12px}.build-comparison{grid-template-columns:minmax(0,1fr)}.build-filter{flex:1}}

/* Branch-aware CI: independent PR and default-branch signals. */
.project-branch-note{font-size:11px;color:#9fb0a8;line-height:1.45;margin:-8px 0 0;overflow-wrap:anywhere}

/* Mobile action-first overview: charts remain fully available on demand. */
.trend-fold{border:1px solid var(--line);border-radius:16px;background:var(--panel);margin:25px 0 10px;min-width:0;overflow:hidden}
.trend-fold-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:78px;padding:16px 20px;cursor:pointer;list-style:none}
.trend-fold-summary::-webkit-details-marker{display:none}
.trend-fold-summary::after{content:'+';display:grid;place-items:center;flex:0 0 34px;height:34px;border:1px solid #35463d;border-radius:9px;color:#baf595;font-size:24px;font-weight:400}
.trend-fold[open] .trend-fold-summary::after{content:'−'}
.trend-fold-summary:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.trend-fold-label{display:grid;gap:7px;min-width:0}
.trend-fold-label strong{font-size:19px;font-weight:760;letter-spacing:-.025em}
.trend-fold-label small{font-size:11px;color:#a0afa8;line-height:1.45}
.trend-fold .trend-section{margin:0;padding:0 17px 18px}
.trend-fold .trend-heading{margin-bottom:15px}
@media(max-width:700px){
  .trend-fold{margin:20px 0 14px;border-radius:14px}
  .trend-fold-summary{padding:13px 15px;min-height:72px}
  .trend-fold .trend-heading{justify-content:space-between;flex-direction:column;align-items:stretch}
}
