:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Segoe UI,system-ui,sans-serif;background:#b7b0a6;color:#1d1d1f;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg: #f5f5f7;--surface: rgba(255, 255, 255, .82);--surface-solid: #ffffff;--surface-soft: rgba(255, 255, 255, .58);--text: #1d1d1f;--muted: #6e6e73;--faint: #a1a1a6;--line: rgba(60, 60, 67, .14);--line-strong: rgba(60, 60, 67, .22);--blue: #0071e3;--blue-soft: rgba(0, 113, 227, .1);--green: #248a3d;--green-soft: rgba(52, 199, 89, .12);--amber: #b86e00;--amber-soft: rgba(255, 149, 0, .12);--red: #d70015;--red-soft: rgba(255, 59, 48, .1);--shadow: 0 18px 44px rgba(0, 0, 0, .055);--radius: 8px;--spatial-stage-background: linear-gradient(90deg, rgba(48, 43, 39, .18), transparent 18%, transparent 82%, rgba(255, 255, 255, .22)), linear-gradient(180deg, #b7b0a6 0%, #d4cec4 42%, #aaa398 100%);--spatial-safe-area-background: linear-gradient(90deg, rgba(255, 255, 255, .18) 0 1px, transparent 1px 15%), linear-gradient(180deg, rgba(255, 255, 255, .2) 0 1px, transparent 1px 48%), linear-gradient(90deg, transparent 0 22%, rgba(92, 72, 56, .26) 22% 23%, transparent 23% 58%, rgba(92, 72, 56, .22) 58% 59%, transparent 59%), linear-gradient(180deg, rgba(52, 45, 39, .14), rgba(255, 255, 255, .26)), var(--spatial-stage-background)}*{box-sizing:border-box}html,body,#root{height:100%;min-height:100%;overflow:hidden;overscroll-behavior:none}html{background:var(--spatial-safe-area-background)}body{margin:0;width:100%;min-width:320px;min-height:100vh;min-height:100dvh;background:var(--spatial-safe-area-background)}button,a{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;min-height:100dvh}.app-shell:not(.spatial-shell){height:100vh;height:100dvh;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(180deg,#fbfbfd,#f5f5f7 42%,#f2f2f4);-webkit-overflow-scrolling:touch}.spatial-shell{position:relative;isolation:isolate;display:grid;grid-template-rows:minmax(0,1fr);height:100vh;height:100dvh;min-height:100dvh;overflow:hidden;overscroll-behavior:none;background:var(--spatial-stage-background)}.spatial-shell:before{position:fixed;inset:0;z-index:-2;content:"";background:linear-gradient(90deg,rgba(255,255,255,.18) 0 1px,transparent 1px 15%),linear-gradient(180deg,rgba(255,255,255,.2) 0 1px,transparent 1px 48%),linear-gradient(90deg,transparent 0 22%,rgba(92,72,56,.26) 22% 23%,transparent 23% 58%,rgba(92,72,56,.22) 58% 59%,transparent 59%),linear-gradient(180deg,#342d2724,#ffffff42);background-size:210px 100%,100% 280px,100% 100%,100% 100%}.spatial-shell:after{position:fixed;inset:0;z-index:-1;content:"";background:linear-gradient(180deg,rgba(255,255,255,.2),transparent 24%,rgba(55,44,36,.18) 100%),linear-gradient(90deg,rgba(14,12,10,.18),transparent 22%,transparent 76%,rgba(255,255,255,.2));pointer-events:none}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:20px;height:74px;padding:0 28px;border-bottom:1px solid rgba(60,60,67,.12);background:#f5f5f7c7;-webkit-backdrop-filter:saturate(180%) blur(22px);backdrop-filter:saturate(180%) blur(22px)}.spatial-topbar{position:relative;top:auto;width:min(1028px,calc(100vw - 184px));height:70px;margin:max(14px,calc(env(safe-area-inset-top) + 14px)) auto 0;border:1px solid rgba(255,255,255,.34);border-radius:999px;background:#b9b5ab99;box-shadow:0 28px 60px #2d251e40,inset 0 1px #ffffff6b;-webkit-backdrop-filter:saturate(150%) blur(26px);backdrop-filter:saturate(150%) blur(26px)}.spatial-topbar .brand{min-width:236px}.spatial-topbar .brand-mark{width:42px;height:42px;border-radius:999px;background:radial-gradient(circle at 35% 25%,#ffffff 0 7%,transparent 8%),linear-gradient(135deg,#242734,#0071e3 52%,#8bd7ff);box-shadow:0 10px 24px #00000038}.spatial-topbar .brand small,.spatial-topbar .idle-chip{color:#1d1d1f9e}.spatial-topbar .topbar-status{max-width:456px;overflow:hidden}.spatial-topbar .pill{background:#ffffff6b;color:#1d1d1fbd;box-shadow:inset 0 1px #ffffff47}.spatial-topbar .primary-action,.spatial-topbar .secondary-action{border-color:#ffffff7a;border-radius:999px;background:#ffffffb8;color:var(--text)}.spatial-topbar .primary-action{background:#ffffffeb}.brand{display:inline-flex;align-items:center;gap:12px;min-width:230px;border:0;background:transparent;color:var(--text);text-align:left}.brand strong{display:block;font-size:19px;font-weight:700;line-height:1.1}.brand small{display:block;margin-top:3px;color:var(--muted);font-size:12px}.brand-mark{display:grid;width:36px;height:36px;place-items:center;border:1px solid rgba(0,0,0,.08);border-radius:7px;background:#1d1d1f;color:#fff;font-weight:800}.topbar-status,.topbar-actions,.admin-actions,.row-actions{display:flex;align-items:center;gap:10px}.topbar-status{flex:1;justify-content:center}.primary-action,.secondary-action,.quiet-button,.row-actions button,.row-actions a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border:1px solid var(--line-strong);border-radius:7px;background:#ffffffb8;color:var(--text);padding:0 14px;font-size:13px;font-weight:650;transition:transform .14s ease,border-color .14s ease,background .14s ease}.primary-action,.hero-admin{border-color:var(--blue);background:var(--blue);color:#fff}.compact-action{min-width:0}.primary-action:hover,.hero-admin:hover,.secondary-action:hover,.quiet-button:hover,.row-actions button:hover,.row-actions a:hover{transform:translateY(-1px)}button:disabled:hover{transform:none}.login-shell{display:grid;min-height:100vh;place-items:center;padding:28px;background:radial-gradient(circle at 50% 0%,rgba(0,113,227,.1),transparent 34%),linear-gradient(180deg,#fbfbfd,#f5f5f7 48%,#f2f2f4)}.login-card{display:grid;width:min(440px,100%);gap:26px;border:1px solid var(--line);border-radius:8px;background:#ffffffdb;box-shadow:var(--shadow);-webkit-backdrop-filter:saturate(180%) blur(22px);backdrop-filter:saturate(180%) blur(22px);padding:28px}.login-heading{display:flex;align-items:flex-start;gap:14px}.login-card h1{margin:0;font-size:28px;line-height:1.12;letter-spacing:0}.login-card p{margin:10px 0 0;color:var(--muted);font-size:14px;line-height:1.5}.login-form{display:grid;gap:14px}.login-form label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:650}.login-form input{width:100%;min-height:44px;border:1px solid var(--line-strong);border-radius:7px;background:#ffffffdb;color:var(--text);padding:0 12px;font:inherit;outline:none}.login-form input:focus{border-color:#0071e3b8;box-shadow:0 0 0 4px #0071e31a}.login-error{border:1px solid rgba(255,59,48,.2);border-radius:7px;background:var(--red-soft);color:var(--red);padding:10px 12px;font-size:13px;line-height:1.4}.login-submit{min-height:44px;margin-top:4px}.idle-chip{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.dashboard,.admin{width:min(1380px,calc(100vw - 40px));margin:0 auto;padding:24px 0 44px}.spatial-dashboard{--spatial-gap: 24px;--rail-size: 68px;position:relative;display:grid;grid-template-columns:var(--rail-size) minmax(0,1fr);grid-template-rows:minmax(0,1fr);column-gap:var(--spatial-gap);width:100%;height:100%;min-height:0;margin:0;padding:max(var(--spatial-gap),calc(env(safe-area-inset-top) + 14px)) var(--spatial-gap) var(--spatial-gap) var(--spatial-gap)}.spatial-board{position:relative;grid-column:2;grid-row:1;display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;overflow:hidden;border:1px solid rgba(255,255,255,.38);border-radius:30px;background:#dad8cf8a;box-shadow:0 34px 80px #2f282042,inset 0 1px #ffffff80,inset 0 -1px #483d321a;-webkit-backdrop-filter:saturate(150%) blur(28px);backdrop-filter:saturate(150%) blur(28px);padding:22px 28px 118px}.spatial-board-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;margin-bottom:14px}.spatial-brandline{display:inline-flex;align-items:center;gap:11px;min-width:0}.spatial-brandline .brand-mark{width:38px;height:38px;flex:0 0 auto;border-radius:999px;background:radial-gradient(circle at 35% 25%,#ffffff 0 7%,transparent 8%),linear-gradient(135deg,#242734,#0071e3 52%,#8bd7ff);box-shadow:0 10px 24px #0003}.spatial-brandline strong,.spatial-brandline span{display:block}.spatial-brandline strong{font-size:17px;font-weight:780;line-height:1.05}.spatial-brandline span{max-width:260px;overflow:hidden;color:#1d1d1f9e;font-size:12px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.spatial-status-chips,.spatial-board-actions{display:flex;align-items:center;gap:8px}.spatial-status-chips{min-width:0;flex-wrap:wrap}.spatial-status-chips .pill{background:#ffffff61;box-shadow:inset 0 1px #ffffff4d}.spatial-health{display:inline-flex;align-items:center;gap:9px;min-height:38px;border:1px solid rgba(255,255,255,.36);border-radius:999px;background:#ffffff73;padding:0 13px;color:#1d1d1fb8;font-size:13px;box-shadow:inset 0 1px #ffffff57;white-space:nowrap}.alert-trigger{appearance:none;cursor:pointer;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}.alert-trigger:hover{background:#ffffffa8;transform:translateY(-1px);box-shadow:0 12px 26px #342c241f,inset 0 1px #fff6}.spatial-board-actions{justify-content:flex-end}.spatial-board-actions .primary-action,.spatial-board-actions .secondary-action{border-color:#ffffff6b;border-radius:999px;background:#ffffffc2;color:var(--text)}.spatial-board-actions .primary-action{min-height:36px;padding:0 13px}.spatial-board-actions .secondary-action{width:36px;min-width:36px;min-height:36px;padding:0}.spatial-board-actions .refresh-action{width:auto;min-width:76px;padding:0 12px}.is-refreshing svg{animation:refresh-spin .72s linear infinite}@keyframes refresh-spin{to{transform:rotate(360deg)}}.spatial-grid{min-height:0;align-content:start;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;gap:14px;border-radius:20px;clip-path:inset(0 round 20px);padding-right:5px;padding-bottom:118px;scroll-padding-bottom:118px;-webkit-overflow-scrolling:touch}.spatial-grid::-webkit-scrollbar{width:8px}.spatial-grid::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:#1d1d1f33;background-clip:content-box}.spatial-rail{grid-column:1;grid-row:1;align-self:center;justify-self:center;z-index:3;display:flex;width:66px;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(255,255,255,.36);border-radius:999px;background:#b4b0a68a;box-shadow:0 24px 56px #2c241d3d,inset 0 1px #ffffff6b;-webkit-backdrop-filter:saturate(150%) blur(24px);backdrop-filter:saturate(150%) blur(24px);padding:9px}.spatial-rail button,.spatial-dock button{display:inline-grid;place-items:center;border:0;color:#1d1d1fb8}.spatial-rail button{display:flex;align-items:center;justify-content:center;width:48px;height:48px;flex:0 0 48px;border-radius:999px;background:transparent;line-height:0}.spatial-rail svg{display:block;width:20px;height:20px;flex:0 0 auto}.spatial-rail button.active,.spatial-rail button:hover{background:#ffffffdb;color:var(--text);box-shadow:0 10px 22px #221d1824}.spatial-rail button:disabled{opacity:.72}.spatial-dock{position:absolute;right:var(--spatial-gap);bottom:calc(var(--spatial-gap) - 12px);left:calc(var(--spatial-gap) + var(--rail-size) + var(--spatial-gap));z-index:9;display:flex;align-items:center;gap:8px;width:min(640px,calc(100% - var(--rail-size) - var(--spatial-gap) - var(--spatial-gap) - var(--spatial-gap)));margin:0 auto;border:1px solid rgba(255,255,255,.36);border-radius:999px;background:#b7b2a899;box-shadow:0 26px 58px #2c241d42,inset 0 1px #ffffff6b;-webkit-backdrop-filter:saturate(150%) blur(24px);backdrop-filter:saturate(150%) blur(24px);padding:8px}.spatial-dock button{min-width:124px;min-height:42px;border-radius:999px;background:transparent;padding:0 18px;font-size:13px;font-weight:720}.spatial-dock button.active,.spatial-dock button:hover{background:#ffffffe6;color:var(--text)}.spatial-dock .dock-add{min-width:44px;width:44px;padding:0;background:#ffffffe6}.dashboard-hero,.admin-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:16px}.dashboard-hero h1,.admin-header h1{margin:0;max-width:680px;font-size:clamp(30px,3vw,42px);font-weight:750;line-height:1.05;letter-spacing:0}.admin-header h1{font-size:clamp(30px,3vw,42px)}.eyebrow{margin:0 0 9px;color:var(--blue);font-size:11px;font-weight:700;letter-spacing:0;text-transform:uppercase}.hero-copy,.subtle{color:var(--muted)}.hero-copy{max-width:640px;margin:14px 0 0;font-size:15px;line-height:1.45}.hero-admin{display:inline-flex;align-items:center;gap:9px;min-width:190px;min-height:44px;border-radius:7px;padding:0 17px;font-weight:750}.alert-band{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin-bottom:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px);padding:15px 16px}.alert-band[data-level=info]{border-color:#34c75942;background:linear-gradient(90deg,#34c7591f,#ffffffc7 52%)}.alert-band[data-level=warning],.alert-band[data-level=critical]{border-color:#ff950047;background:linear-gradient(90deg,#ff95001f,#ffffffc7 52%)}.alert-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:7px;background:#ffffffbf;color:var(--green)}.alert-band[data-level=warning] .alert-icon,.alert-band[data-level=critical] .alert-icon{color:var(--amber)}.alert-band strong,.alert-band span{display:block}.alert-band span{margin-top:2px;color:var(--muted);font-size:13px}.spatial-alert{margin-bottom:14px;border-color:#ffffff5c;border-radius:18px;background:#ffffff61;box-shadow:0 16px 34px #342c241f,inset 0 1px #fff6}.spatial-alert[data-level=info]{background:linear-gradient(90deg,#34c75929,#ffffff70 58%)}.spatial-alert[data-level=warning],.spatial-alert[data-level=critical]{background:linear-gradient(90deg,#ff950029,#ffffff70 58%)}.card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.card-grid.spatial-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-card,.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.summary-card{min-height:208px;padding:18px 18px 16px}.spatial-board .summary-card{min-height:154px;border-color:#ffffff61;border-radius:18px;background:#f6f6f38f;box-shadow:0 18px 36px #342c241f,inset 0 1px #ffffff85;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.spatial-board .summary-card:hover{background:#ffffffa3;transform:translateY(-1px)}.summary-card.is-openable{cursor:pointer}.summary-card.is-openable:focus-visible{outline:3px solid rgba(0,113,227,.24);outline-offset:3px}.spatial-board .project-service-card{grid-column:1 / -1;min-height:254px}.spatial-board .host-status-card{min-height:206px}.span-2{grid-column:span 2}.spatial-board .recent-log-card,.spatial-board .ai-usage-card{grid-column:1 / -1}.spatial-board .ai-usage-card{min-height:284px}.spatial-board .ai-usage-card .card-title{margin-bottom:10px}.card-title,.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.card-title{justify-content:flex-start}.card-title span:first-child{display:grid;width:31px;height:31px;place-items:center;border-radius:7px;background:#0071e314;color:var(--blue)}.card-title h2,.panel-title h2{margin:0;font-size:16px;font-weight:700}.spatial-board .card-title h2{color:#1d1d1fd1}.project-card{display:grid;gap:16px;border:1px solid var(--line);border-radius:8px;background:#ffffff7a;padding:16px;outline:none}.spatial-board .project-card{border-color:#ffffff47;background:#ffffff47;box-shadow:inset 0 1px #ffffff52}.project-card:hover{border-color:#0071e361;background:#ffffffb8}.project-card:focus-visible{border-color:#ffffff6b;background:#fff9;box-shadow:inset 0 1px #ffffff6b,0 0 0 3px #ffffff47}.project-card strong,.project-card span,.compact-row strong,.compact-row span,.dependency-row strong,.dependency-row span{display:block}.project-card span,.compact-row span,.dependency-row span,.service-name span,.uptime span,.status-cell span,.muted-module span{color:var(--muted);font-size:13px}.service-mini-list,.compact-list,.dependency-list,.metric-stack,.ai-summary,.ai-detail-list,.ai-provider-card,.ai-daily-list{display:grid;gap:12px}.ai-summary{gap:8px}.ai-provider-row,.ai-provider-card{border:1px solid rgba(255,255,255,.34);border-radius:16px;background:#ffffff52;padding:12px;box-shadow:inset 0 1px #ffffff52}.ai-provider-row{padding:9px 10px}.ai-provider-card{background:#ffffff61}.linear-detail-list,.linear-section{display:grid;gap:12px}.linear-summary-list .compact-row{min-height:38px}.linear-config-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.linear-section{border:1px solid rgba(255,255,255,.34);border-radius:16px;background:#ffffff4d;padding:12px;box-shadow:inset 0 1px #ffffff47}.linear-section-title,.linear-route-row,.linear-job-row,.linear-job-actions,.linear-toggle{display:flex;align-items:center;gap:12px}.linear-section-title,.linear-route-row,.linear-job-row{justify-content:space-between}.linear-section-title strong,.linear-section-title span,.linear-route-row strong,.linear-route-row span,.linear-job-row strong,.linear-job-row span,.linear-toggle strong,.linear-toggle small{display:block}.linear-section-title span,.linear-route-row span,.linear-job-row span,.linear-toggle small{color:var(--muted);font-size:13px}.linear-route-form{display:grid;grid-template-columns:minmax(96px,.7fr) minmax(130px,1fr) minmax(160px,1.1fr) auto;gap:10px}.linear-route-form input,.linear-route-form select,.linear-job-actions select{min-width:0;min-height:38px;border:1px solid var(--line-strong);border-radius:7px;background:#ffffffb8;color:var(--text);padding:0 11px;font:inherit;font-size:13px}.linear-route-form input:focus,.linear-route-form select:focus,.linear-job-actions select:focus{outline:3px solid rgba(0,113,227,.18);border-color:#0071e394}.linear-toggle{justify-content:flex-start}.linear-toggle input{width:18px;height:18px;accent-color:var(--blue)}.linear-job-row{grid-template-columns:minmax(0,1fr) auto}.linear-job-actions{justify-content:flex-end}.linear-job-actions select{width:min(220px,34vw)}.icon-action{display:inline-grid;width:38px;height:38px;place-items:center;border:1px solid var(--line-strong);border-radius:999px;background:#ffffff9e;color:var(--text)}.linear-error{min-height:auto}.ai-provider-heading,.ai-provider-card-header,.quota-block>div,.ai-balance-value,.ai-balance-row{display:flex;align-items:center}.ai-provider-heading{gap:8px;margin-bottom:10px}.ai-summary .ai-provider-heading{margin-bottom:6px}.ai-provider-card-header{justify-content:space-between;gap:12px}.ai-provider-card-header .ai-provider-heading{margin-bottom:0}.ai-provider-card-header>span,.quota-block small,.ai-balance-value span,.ai-balance-row span{color:var(--muted);font-size:12px}.ai-quota-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quota-block{min-width:0;border:1px solid rgba(255,255,255,.28);border-radius:14px;background:#ffffff4d;padding:10px}.ai-summary .quota-block{padding:7px 8px}.quota-block>div{justify-content:space-between;gap:8px}.quota-value-row{min-width:0}.quota-block span,.quota-block small{display:block;white-space:nowrap}.quota-block span{font-size:12px;font-weight:700}.quota-block strong{flex:0 0 auto;display:block;margin:6px 0;font-size:22px;line-height:1}.ai-summary .quota-block strong{margin:4px 0;font-size:19px}.quota-block em{min-width:0;overflow:hidden;color:var(--muted);font-size:12px;font-style:italic;line-height:1.1;text-align:right;text-overflow:ellipsis;white-space:nowrap}.ai-summary .metric-track{height:6px}.ai-balance-value{justify-content:space-between;gap:12px}.ai-balance-value strong{font-size:22px;line-height:1.1}.ai-summary .ai-balance-value strong{font-size:20px}.ai-balance-value.detail{border:1px solid rgba(255,255,255,.28);border-radius:14px;background:#ffffff4d;padding:12px}.inline-more{min-height:32px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:#ffffff5c;color:#1d1d1f9e;font-size:12px;font-weight:700}.service-mini,.compact-row,.dependency-row{display:grid;align-items:center;gap:10px}.spatial-board .metric-stack>.compact-row:nth-of-type(n+4),.spatial-board .compact-list>.inline-more,.spatial-board .compact-list>.muted-module{display:none}.spatial-board .compact-list,.spatial-board .metric-stack{gap:9px}.spatial-board .compact-row{min-height:34px}.service-mini{grid-template-columns:auto 1fr auto;min-height:34px}.compact-row{grid-template-columns:auto 1fr;min-height:42px}.dependency-row{grid-template-columns:auto 1fr auto;padding:12px 0;border-bottom:1px solid var(--line)}.dependency-row:last-child{border-bottom:0}.network-panel{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.compact-title{margin-bottom:10px}.dependency-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dot{width:9px;height:9px;border-radius:999px}.dot.good{background:var(--green);box-shadow:0 0 0 4px #34c7591f}.dot.warn{background:var(--amber);box-shadow:0 0 0 4px #ff95001f}.dot.bad{background:var(--red);box-shadow:0 0 0 4px #ff3b301c}.pill{display:inline-flex;align-items:center;gap:6px;width:fit-content;min-height:24px;border-radius:999px;padding:0 9px;font-size:12px;font-weight:650}.pill.good{background:var(--green-soft);color:var(--green)}.pill.warn{background:var(--amber-soft);color:var(--amber)}.pill.bad{background:var(--red-soft);color:var(--red)}.metric{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px 12px}.metric span{color:var(--muted);font-size:13px}.metric strong{font-size:18px}.metric-track{grid-column:1 / -1;height:7px;overflow:hidden;border-radius:999px;background:#3c3c431a}.metric-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0071e3,#34c759)}.spatial-board .metric-track{background:#3c3c431f}.spatial-board .metric-track span{background:linear-gradient(90deg,#34c759,#0071e3)}.muted-module{display:grid;gap:8px;min-height:135px;align-content:center;border:1px dashed var(--line-strong);border-radius:8px;background:#ffffff7a;padding:18px}.spatial-board .muted-module{min-height:112px;border-color:#ffffff5c;background:#ffffff47}.spatial-board .compact-module{min-height:auto;padding:12px}.spatial-board .log-lines{min-height:96px;border:1px solid rgba(255,255,255,.34);background:#26262685;box-shadow:inset 0 1px #ffffff1a}.dashboard-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:#433c3447;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:overlay-fade .18s ease both}.dashboard-sheet{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(720px,calc(100% - 88px));max-height:min(620px,calc(100% - 96px));overflow:hidden;border:1px solid rgba(255,255,255,.42);border-radius:26px;background:#eeece5e6;box-shadow:0 34px 90px #221c1657,inset 0 1px #ffffff8f;-webkit-backdrop-filter:saturate(160%) blur(30px);backdrop-filter:saturate(160%) blur(30px);animation:sheet-pop .22s cubic-bezier(.2,.9,.2,1) both}.sheet-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:18px 18px 14px}.sheet-header h2,.sheet-header p{margin:0}.sheet-header h2{font-size:20px;line-height:1.1}.sheet-header p{margin-top:4px;color:var(--muted);font-size:13px}.sheet-close{display:grid;width:38px;height:38px;place-items:center;padding:0;border:1px solid rgba(255,255,255,.46);border-radius:999px;background:#ffffff9e;color:#1d1d1fb3;line-height:0}.sheet-close svg{display:block}.sheet-body{min-height:0;overflow:auto;padding:0 18px 18px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.sheet-list{display:grid;gap:10px}.sheet-row,.sheet-list .dependency-row{border:1px solid rgba(255,255,255,.34);border-radius:16px;background:#ffffff61;padding:12px;box-shadow:inset 0 1px #ffffff52}.sheet-row{display:grid;align-items:center;gap:10px}.service-detail-row{grid-template-columns:auto minmax(0,1fr) auto auto}.ai-daily-row{grid-template-columns:minmax(0,1fr) auto}.ai-balance-row{justify-content:space-between;gap:12px}.ai-balance-row>div{display:grid;gap:2px}.ai-balance-row>div:last-child{justify-items:end}.ai-daily-row span{color:var(--muted);font-size:13px;text-align:right}.ai-cost-stat{margin-top:2px}.ai-aggregation-note{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px}.ai-aggregation-note span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-expand-button{justify-self:start;padding:0 12px}.sheet-stat{display:flex;align-items:baseline;justify-content:space-between;border:1px solid rgba(255,255,255,.34);border-radius:18px;background:#ffffff61;padding:14px 16px}.sheet-stat strong{font-size:24px}.sheet-stat span{color:var(--muted);font-size:13px}.sheet-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;border:1px solid rgba(255,255,255,.34);border-radius:18px;background:#ffffff61;padding:14px}@keyframes overlay-fade{0%{opacity:0}}@keyframes sheet-pop{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.admin-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px}.panel{padding:18px;background:#ffffffe6}.services-panel{grid-column:1}.side-panel{grid-column:2;grid-row:span 2}.logs-panel{grid-column:1}.service-table{display:grid;border:1px solid var(--line);border-radius:8px;overflow:hidden}.service-row{display:grid;grid-template-columns:minmax(180px,1fr) 112px 112px 80px minmax(280px,auto);align-items:center;gap:12px;min-height:98px;padding:16px;border-bottom:1px solid var(--line);background:var(--surface)}.service-row:last-child{border-bottom:0}.service-name{display:flex;align-items:center;gap:12px}.icon-tile{display:grid;width:42px;height:42px;place-items:center;border-radius:8px;background:var(--blue-soft);color:var(--blue)}.status-cell,.uptime{display:grid;gap:8px}.row-actions{justify-content:flex-end;flex-wrap:wrap;gap:8px}.row-actions button,.row-actions a{min-height:34px;padding:0 9px;white-space:nowrap}.log-lines{display:grid;gap:0;overflow:hidden;border-radius:8px;background:#0f172a;color:#cbd5e1;padding:14px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.65}.log-lines.compact{min-height:130px}.log-lines code{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:1120px){.topbar{align-items:flex-start;height:auto;flex-wrap:wrap;padding:16px 20px}.topbar-status{order:3;width:100%;justify-content:flex-start;flex-wrap:wrap}.spatial-topbar{width:min(100vw - 28px,1028px);align-items:center;height:70px;flex-wrap:nowrap;margin-top:max(10px,calc(env(safe-area-inset-top) + 10px));margin-bottom:0;padding:0 16px}.spatial-topbar .topbar-status{order:initial;width:auto}.spatial-dashboard{width:100%;padding-top:24px;padding-bottom:24px}.card-grid,.admin-layout{grid-template-columns:1fr}.spatial-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.span-2,.services-panel,.side-panel,.logs-panel{grid-column:auto}.side-panel{grid-row:auto}.service-row{grid-template-columns:1fr}.row-actions{justify-content:flex-start}}@media(min-width:900px)and (max-width:1120px)and (orientation:landscape){.spatial-dashboard{--spatial-gap: 22px;--rail-size: 68px;width:100%;padding:max(var(--spatial-gap),calc(env(safe-area-inset-top) + 12px)) var(--spatial-gap) var(--spatial-gap) var(--spatial-gap)}.spatial-board{border-radius:28px;padding:16px 20px 108px}.spatial-board-header{grid-template-columns:auto minmax(0,1fr) auto;gap:10px;margin-bottom:10px}.spatial-brandline span{max-width:180px}.spatial-status-chips{gap:6px}.spatial-status-chips .pill{min-height:22px;padding:0 8px;font-size:11px}.spatial-health{min-height:34px;padding:0 11px;font-size:12px}.spatial-board-actions{display:none}.spatial-alert{margin-bottom:12px;padding:11px 12px}.spatial-alert .alert-icon{width:34px;height:34px}.spatial-rail{display:flex;width:62px;flex-direction:column;max-width:none;margin:0;overflow:visible}.spatial-rail button{width:42px;height:42px;flex-basis:42px}.spatial-board .summary-card{min-height:158px;padding:14px}.spatial-board .ai-usage-card{min-height:284px}.spatial-board .project-service-card{grid-column:1 / -1;min-height:216px}.spatial-board .host-status-card{min-height:190px}.card-title{margin-bottom:12px}.service-mini-list,.compact-list,.dependency-list,.metric-stack{gap:7px}.spatial-board .project-card{gap:10px;padding:12px}.service-mini,.compact-row{min-height:30px}.spatial-board .compact-list>.muted-module{display:none}.log-lines.compact{min-height:86px;font-size:12px;line-height:1.55}.spatial-grid .span-2{grid-column:span 2}.spatial-board .recent-log-card,.spatial-board .ai-usage-card{grid-column:1 / -1}.spatial-dock{bottom:calc(var(--spatial-gap) - 10px);width:min(640px,calc(100% - var(--rail-size) - var(--spatial-gap) - var(--spatial-gap) - var(--spatial-gap)))}.dashboard-sheet{width:min(720px,calc(100% - 132px));max-height:min(560px,calc(100% - 88px))}}@media(max-width:720px){.dashboard,.admin{width:min(100vw - 24px,1380px);padding-top:18px}.dashboard-hero,.admin-header,.alert-band{grid-template-columns:1fr;flex-direction:column}.dashboard-hero h1,.admin-header h1{font-size:34px}.admin-actions,.topbar-actions{flex-wrap:wrap}.summary-card{min-height:auto}.spatial-shell{background:linear-gradient(180deg,#b9b3aa,#d9d5ce 54%,#a8a096)}.spatial-topbar{position:relative;width:min(100vw - 18px,1028px);height:auto;min-height:68px;flex-wrap:wrap;border-radius:22px;margin-top:max(8px,calc(env(safe-area-inset-top) + 8px))}.spatial-topbar .brand{min-width:0}.spatial-topbar .topbar-status{display:none}.spatial-dashboard{--spatial-gap: 0px;--rail-size: 0px;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr);width:100%;height:100dvh;padding:0}.spatial-board{grid-column:1;grid-row:1;border:0;border-radius:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:calc(env(safe-area-inset-top) + 8px) 10px calc(env(safe-area-inset-bottom) + 54px)}.spatial-board-header{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:stretch;gap:7px 8px;margin-bottom:8px}.spatial-brandline{grid-column:1 / -1}.spatial-brandline .brand-mark{width:34px;height:34px}.spatial-brandline strong{font-size:16px}.spatial-brandline span{max-width:none;font-size:11px}.spatial-board .spatial-status-chips{display:none}.spatial-health{grid-column:1;grid-row:2;min-height:34px;justify-self:stretch;padding:0 10px;font-size:12px}.spatial-board-actions{grid-column:2;grid-row:2;gap:6px;justify-content:flex-end}.spatial-board-actions .primary-action,.spatial-board-actions .secondary-action{min-height:34px;white-space:nowrap}.spatial-board-actions .primary-action{padding:0 10px}.spatial-board-actions .secondary-action{width:34px;min-width:34px}.spatial-board-actions .refresh-action{width:auto;min-width:62px;padding:0 10px}.card-grid.spatial-grid{grid-template-columns:1fr;align-content:start;gap:8px;border-radius:0;clip-path:none;padding-right:0;padding-bottom:58px;scroll-padding-bottom:58px;scrollbar-width:none}.card-grid.spatial-grid::-webkit-scrollbar{display:none;width:0}.spatial-board .recent-log-card,.spatial-board .ai-usage-card{grid-column:auto}.spatial-board .ai-usage-card{order:1;min-height:272px}.spatial-board .egress-network-card{order:2}.spatial-board .tailscale-devices-card{order:3}.spatial-board .project-service-card{order:4;min-height:198px}.spatial-board .linear-codex-card{order:6}.spatial-board .host-status-card{order:5;min-height:184px}.spatial-board .egress-network-card,.spatial-board .tailscale-devices-card{min-height:150px}.spatial-board .summary-card{border-radius:16px;padding:11px}.spatial-board .card-title{margin-bottom:8px}.spatial-board .ai-summary{gap:10px}.spatial-board .ai-provider-row{gap:7px;padding:9px}.spatial-board .ai-quota-pair{gap:8px}.spatial-board .ai-summary .quota-block{padding:7px 8px}.spatial-board .ai-summary .quota-block>div{display:block}.spatial-board .ai-summary .quota-block small{display:none}.spatial-board .ai-summary .quota-block strong{margin:5px 0 2px;font-size:17px}.spatial-board .ai-summary .ai-balance-value strong{font-size:18px}.spatial-board .ai-provider-footnote,.spatial-board .ai-balance-value span{font-size:11px}.spatial-board .service-mini-list .service-mini:nth-child(n+3),.spatial-board .tailscale-devices-card .compact-row:nth-child(n+3){display:none}.spatial-board .egress-network-card .compact-module{display:none}.dashboard-sheet{width:calc(100% - 24px);max-height:calc(100% - 72px);border-radius:22px;background:#f4f2eceb}.service-detail-row,.sheet-metrics,.linear-config-grid,.linear-route-form,.linear-job-row{grid-template-columns:1fr}.linear-section-title,.linear-job-actions{align-items:flex-start}.linear-job-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.linear-job-actions select{width:100%}.spatial-rail{grid-column:1;grid-row:1;display:none}.spatial-dock{right:10px;bottom:max(4px,calc(env(safe-area-inset-bottom) - 28px));left:10px;width:auto;overflow-x:auto;justify-content:flex-start;padding:6px}.spatial-dock button{min-width:0;flex:1 1 0;min-height:38px;padding:0 12px}}
