:root{--teal: #3d8c93;--teal-dk: #2b6b70;--teal-mid: #5aacb2;--teal-lt: #eaf4f5;--amber: #d4952c;--amber-dk: #b07820;--amber-lt: #fef4e4;--green: #3d8760;--green-lt: #eaf5ef;--bg: #f0ede6;--surface: #ffffff;--surface-2: #f8f6f2;--border: #e2ddd5;--border-lt: #ede9e3;--text: #1a2728;--text-2: #3c4a4b;--muted: #6b7778;--muted-lt: #9ba6a7;--panel: var(--surface);--primary: var(--teal);--primary-dark: var(--teal-dk);--danger: #dc2626;--danger-lt: #fef2f2;--ok: var(--green);--radius-xs: .375rem;--radius-sm: .625rem;--radius: .875rem;--radius-lg: 1.25rem;--pill: 99px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 4px rgba(0, 0, 0, .06), 0 2px 8px rgba(0, 0, 0, .04);--shadow: 0 4px 16px rgba(0, 0, 0, .08), 0 1px 4px rgba(0, 0, 0, .04);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .11), 0 2px 8px rgba(0, 0, 0, .05);--shadow-teal: 0 4px 20px rgba(61, 140, 147, .25);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--teal-dk);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:1.6rem;font-weight:700;letter-spacing:-.01em;margin:0 0 1rem;color:var(--text)}h2{font-size:1.2rem;font-weight:600;letter-spacing:-.01em}code{background:var(--surface-2);border:1px solid var(--border-lt);padding:.1rem .35rem;border-radius:var(--radius-xs);font-size:.85em}.muted{color:var(--muted);font-size:.9rem}.centered{display:grid;place-items:center;height:100vh;color:var(--muted)}.login{position:relative;isolation:isolate;overflow:hidden;min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;padding:clamp(1.5rem,5vw,5rem);background:linear-gradient(118deg,#0a2c30 0%,#103a3e 20%,var(--teal-dk) 37%,var(--teal) 51%,#6fb0b3 63%,#bcd6d3 74%,#e4e7df 85%,var(--bg) 100%)}.login-ambient{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none}.blob{position:absolute;border-radius:50%;filter:blur(70px);will-change:transform}.blob-1{width:40vw;height:40vw;top:-10vw;left:-8vw;background:radial-gradient(circle,rgba(90,172,178,.55),transparent 70%);animation:blob-drift-1 19s ease-in-out infinite}.blob-2{width:32vw;height:32vw;bottom:-12vw;left:16vw;background:radial-gradient(circle,rgba(168,238,242,.4),transparent 70%);animation:blob-drift-2 24s ease-in-out infinite}.blob-3{width:26vw;height:26vw;top:28%;left:30%;background:radial-gradient(circle,rgba(212,149,44,.22),transparent 70%);animation:blob-drift-3 28s ease-in-out infinite}.login-grain{position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.05;mix-blend-mode:overlay}@keyframes blob-drift-1{50%{transform:translate(6vw,4vw) scale(1.08)}}@keyframes blob-drift-2{50%{transform:translate(-5vw,-3vw) scale(1.12)}}@keyframes blob-drift-3{50%{transform:translate(4vw,-5vw) scale(1.1)}}.login-brand{position:absolute;top:clamp(2rem,5vw,3.5rem);left:clamp(2rem,5vw,3.75rem);z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:.85rem}.login-brand-logo{height:clamp(2.25rem,3.5vw,3rem);width:auto;max-width:100%;display:block}.login-brand-tag{font-size:.78rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#ffffffb3;padding-left:.15rem}.login-foot{position:absolute;bottom:clamp(1.5rem,4vw,2.5rem);left:clamp(2rem,5vw,3.75rem);z-index:1;font-size:.78rem;color:#ffffff8c}.login-card{position:relative;z-index:1;background:#fffffff5;backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2);padding:clamp(2.25rem,4vw,3.25rem) clamp(1.75rem,3.5vw,2.75rem);border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.7);text-align:center;box-shadow:0 24px 70px -20px #0a2c3073,0 8px 24px -12px #0a2c304d;max-width:410px;width:100%;animation:card-in .7s cubic-bezier(.22,1,.36,1) both}@keyframes card-in{0%{opacity:0;transform:translateY(14px) scale(.985)}}.login-card h1{margin-bottom:.4rem}.subtitle{color:var(--muted);margin:0 0 2rem;font-size:.95rem}.btn-ms{font:inherit;font-weight:600;font-size:.95rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.7rem;padding:.8rem 1.4rem;border-radius:var(--pill);border:1.5px solid var(--border);background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s,transform .12s}.btn-ms:hover{border-color:var(--teal);box-shadow:0 4px 16px #3d8c932e;transform:translateY(-1px)}.btn-ms:active{transform:translateY(0)}.ms-icon{width:1.15rem;height:1.15rem;flex:none}.btn-block{width:100%}@media(max-width:820px){.login{justify-content:center}.login-brand{left:50%;transform:translate(-50%);align-items:center;text-align:center}.login-foot{left:50%;transform:translate(-50%)}}@media(max-width:560px){.login{padding-top:clamp(6rem,22vw,8rem);padding-bottom:clamp(4rem,14vw,6rem)}}@media(prefers-reduced-motion:reduce){.blob,.app-blob,.login-card{animation:none}}.layout{--sidebar-w: 256px;display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;transition:grid-template-columns .18s ease}.layout.collapsed{--sidebar-w: 76px}.sidebar{background:linear-gradient(165deg,#0d3b3f 0%,#173e42 30%,var(--teal-dk) 70%,var(--teal) 100%);color:#ffffffe0;padding:1.75rem 1.1rem;display:flex;flex-direction:column;gap:1.25rem;position:sticky;top:0;align-self:start;height:100vh;overflow-x:hidden;overflow-y:auto}.brand{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;color:#fff;padding:.25rem .4rem 0}.brand-logo{height:2.3rem;width:auto;max-width:100%;display:block}.brand-name{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#ffffff8c;padding-left:.1rem}.login-logo{height:3.25rem;width:auto;margin:0 auto 1.5rem;display:block}.nav{display:flex;flex-direction:column;gap:.2rem}.sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;gap:.6rem}.nav-admin{padding-top:.6rem;border-top:1px solid rgba(255,255,255,.12)}.nav-section-label{padding:0 .85rem .15rem;font-size:.66rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#fff6}.sidebar-version{padding:.25rem .5rem;font-size:.72rem;letter-spacing:.04em;color:#fff6}.navlink{display:flex;align-items:center;gap:.7rem;padding:.6rem .85rem;border-radius:var(--radius-sm);color:#ffffffb8;font-size:.92rem;font-weight:500;white-space:nowrap;overflow:hidden;transition:background .15s,color .15s}.navlink:hover{background:#ffffff14;color:#fff;text-decoration:none}.navlink.active{background:#ffffff24;color:#fff;font-weight:600;box-shadow:inset 3px 0 0 var(--amber)}.navlink svg{flex-shrink:0}.sidebar-toggle{align-self:flex-end;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;border-radius:var(--radius-sm);background:#ffffff0f;color:#fff9;cursor:pointer;transition:background .15s,color .15s}.sidebar-toggle:hover{background:#ffffff29;color:#fff}.layout.collapsed .sidebar{padding-left:.6rem;padding-right:.6rem}.layout.collapsed .brand{align-items:center;padding:.25rem 0 0}.layout.collapsed .brand-logo{height:auto;width:100%;max-width:2.6rem}.layout.collapsed .sidebar-toggle,.layout.collapsed .navlink{align-self:center}.layout.collapsed .navlink{justify-content:center;padding:.6rem 0;width:100%}.layout.collapsed .sidebar-version{text-align:center;padding:.25rem 0}.main{position:relative;display:flex;flex-direction:column;min-width:0;background:var(--bg)}.app-ambient{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.app-blob{position:absolute;border-radius:50%;filter:blur(80px);will-change:transform}.app-blob-1{width:38vw;height:38vw;top:-14vw;right:-8vw;background:radial-gradient(circle,rgba(90,172,178,.3),transparent 70%);animation:blob-drift-1 22s ease-in-out infinite}.app-blob-2{width:34vw;height:34vw;bottom:-16vw;left:-6vw;background:radial-gradient(circle,rgba(212,149,44,.22),transparent 70%);animation:blob-drift-2 27s ease-in-out infinite}.app-blob-3{width:26vw;height:26vw;top:34%;left:44%;background:radial-gradient(circle,rgba(61,135,96,.16),transparent 70%);animation:blob-drift-3 31s ease-in-out infinite}.app-grain{position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.025;mix-blend-mode:overlay}.topbar{display:flex;justify-content:flex-end;align-items:center;gap:1rem;height:64px;padding:0 1.75rem;background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.topbar-title{margin:0 auto 0 0;font-size:1.2rem;font-weight:700;letter-spacing:-.01em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-user{color:var(--text-2);font-size:.9rem;font-weight:500}.content{position:relative;z-index:1;padding:var(--radius-lg) 1.75rem 2.5rem;padding-top:1.75rem}.btn,.btn-sm,.btn-ghost{font:inherit;font-weight:600;cursor:pointer;border-radius:var(--pill);transition:background .15s,transform .12s,box-shadow .15s,border-color .15s;display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}.btn:active,.btn-sm:active,.btn-ghost:active{transform:translateY(0)}.btn{padding:.6rem 1.4rem;font-size:.9rem;border:none;background:var(--amber);color:#fff;box-shadow:0 2px 8px #d4952c4d}.btn:hover{background:var(--amber-dk);transform:translateY(-1px);box-shadow:0 4px 12px #d4952c66}.btn-sm{font-size:.82rem;padding:.34rem .85rem;border:none;background:var(--teal);color:#fff;margin-right:.35rem;box-shadow:0 1px 4px #3d8c9340}.btn-sm:hover{background:var(--teal-dk);transform:translateY(-1px)}.btn-sm:disabled{opacity:.45;cursor:default;box-shadow:none;transform:none}.btn-ghost{background:var(--surface);color:var(--text);border:1.5px solid var(--border);padding:.34rem .95rem;font-size:.85rem}.btn-ghost:hover{background:var(--surface-2);border-color:var(--muted-lt)}.btn-danger{background:var(--danger);color:#fff;border:none;box-shadow:0 1px 4px #dc262640}.btn-danger:hover{background:#b91c1c}.home-intro{margin-bottom:0}.home-section{margin:2.25rem 0 0;font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.1rem;margin-top:1.25rem}.tile{display:flex;align-items:center;gap:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.15rem 1.25rem;box-shadow:var(--shadow-xs);color:var(--text);transition:box-shadow .18s,transform .18s,border-color .18s}.tile:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:var(--teal-lt);text-decoration:none}.tile-icon{display:flex;align-items:center;justify-content:center;width:2.7rem;height:2.7rem;flex-shrink:0;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--teal) 12%,#fff);color:var(--teal)}.tile-body{display:flex;flex-direction:column;gap:.2rem;min-width:0;flex:1}.tile-title{font-weight:600;color:var(--text)}.tile-desc{font-size:.82rem;line-height:1.35;color:var(--muted)}.tile-arrow{flex-shrink:0;font-size:1.15rem;color:var(--muted);transition:transform .18s,color .18s}.tile:hover .tile-arrow{color:var(--teal);transform:translate(3px)}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:1.25rem}.tab{font:inherit;font-weight:500;background:none;border:none;padding:.6rem .9rem;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;transition:color .15s,border-color .15s}.tab:hover{color:var(--text)}.tab.active{color:var(--teal-dk);font-weight:600;border-bottom-color:var(--teal)}.table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-xs)}.table th,.table td{text-align:left;padding:.7rem .85rem;border-bottom:1px solid var(--border-lt);vertical-align:top;font-size:.9rem}.table th{background:var(--surface-2);color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.table tbody tr:hover{background:var(--teal-lt)}.table tr:last-child td{border-bottom:none}.actions{white-space:nowrap}.badge{display:inline-block;padding:.15rem .6rem;border-radius:var(--pill);font-size:.72rem;font-weight:600}.badge-ok{background:var(--green-lt);color:var(--green)}.badge-off{background:var(--danger-lt);color:var(--danger)}.badge-sys{background:var(--teal-lt);color:var(--teal-dk);margin-left:.4rem}.checks{display:flex;flex-direction:column;gap:.25rem}.check{font-size:.85rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.25rem;box-shadow:var(--shadow-xs)}.form-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.form-row input,input[type=text],input[type=email],input[type=search],select{font:inherit;padding:.5rem .75rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s}.form-row input:focus,input:focus,select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px #3d8c9326}.error{background:var(--danger-lt);color:var(--danger);border:1px solid #fecaca;padding:.65rem .95rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:.9rem}.loading-pane{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;border-radius:var(--radius);background:transparent;color:var(--muted);font-size:.9rem;text-align:center;padding:1.5rem}.spinner{width:38px;height:38px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--teal);animation:spinner-rotate .8s linear infinite}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}
