@import url(https://fonts.googleapis.com/css2?family=Archivo+Expanded:wght@500;700;800&family=Instrument+Sans:wght@400;500;600;700&display=swap);:root{--primary:#1976d2;--primary-dark:#1565c0;--primary-light:#42a5f5;--secondary:#9c27b0;--success:#4caf50;--warning:#ff9800;--error:#f44336;--info:#2196f3;--bg-primary:#fff;--bg-secondary:#f5f5f5;--bg-card:#fff;--text-primary:#212121;--text-secondary:#757575;--text-disabled:#9e9e9e;--border-color:#e0e0e0;--shadow-sm:0 1px 3px #0000001f,0 1px 2px #0000003d;--shadow-md:0 3px 6px #00000026,0 2px 4px #0000001f;--shadow-lg:0 10px 20px #00000026,0 3px 6px #0000001a;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--transition:0.2s ease-in-out}[data-theme=dark]{--bg-primary:#121212;--bg-secondary:#1e1e1e;--bg-card:#2d2d2d;--text-primary:#fff;--text-secondary:#b0b0b0;--border-color:#404040}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;background-color:var(--bg-secondary);color:#212121;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6}a{color:#1976d2;color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer}input,select,textarea{font-family:inherit}.container{max-width:1200px}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.step-up-overlay{background:#0f172a8c;display:grid;inset:0;padding:1rem;place-items:center;position:fixed;z-index:1100}.step-up-dialog{grid-gap:1rem;background:#fff;border:1px solid #94a3b859;border-radius:8px;box-shadow:0 24px 60px #0f172a47;color:#0f172a;display:grid;gap:1rem;max-height:min(760px,92vh);overflow-y:auto;padding:1.25rem;width:min(560px,100%)}.step-up-header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.step-up-header h2{font-size:1.35rem;margin:0}.step-up-header p{color:#475569;margin:.35rem 0 0}.step-up-close{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#0f172a;cursor:pointer;height:2rem;width:2rem}.step-up-detail,.step-up-error,.step-up-message,.step-up-method{grid-gap:.6rem;border-radius:8px;display:grid;gap:.6rem;padding:.9rem}.step-up-detail{background:#f8fafc;border:1px solid #e2e8f0}.step-up-detail small,.step-up-detail span{color:#64748b}.step-up-method{border:1px solid #e2e8f0}.step-up-method h3,.step-up-method label{font-weight:700;margin:0}.step-up-method p{color:#475569;margin:0}.step-up-inline{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.step-up-inline input{border:1px solid #cbd5e1;border-radius:8px;flex:1 1;font:inherit;min-width:180px;padding:.75rem .85rem}.step-up-message{background:#2563eb14;border:1px solid #2563eb3d;color:#1e3a8a}.step-up-error{background:#ef44441a;border:1px solid #ef444440;color:#991b1b}.login-page{background:#fff;color:#0f172a;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;min-height:100vh}.login-header{border-bottom:1px solid #f1f5f9}.login-header-inner{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:72rem;padding:1.25rem 1.5rem}.login-logo{color:#0f172a;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;text-decoration:none}.login-logo-accent{color:#10b981}.login-back-link{color:#475569;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .15s ease}.login-back-link:hover{color:#0f172a}.login-main{align-items:center;display:flex;flex:1 1;justify-content:center;padding:3rem 1.5rem}.login-card{max-width:28rem;width:100%}.login-heading{margin-bottom:2rem}.login-title{color:#0f172a;font-size:2.25rem;font-weight:700;letter-spacing:-.02em;margin:0}.login-subtitle{color:#475569;font-size:1rem;margin-top:.75rem}.login-link{color:#059669;font-weight:600;text-decoration:underline;text-underline-offset:2px}.login-link:hover{color:#047857}.login-form{gap:1rem}.login-field,.login-form{display:flex;flex-direction:column}.login-label{color:#334155;display:block;font-size:.875rem;font-weight:500;margin-bottom:.375rem}.login-input{background:#fff;border:1px solid #cbd5e1;border-radius:.5rem;box-sizing:border-box;color:#0f172a;font-size:1rem;padding:.75rem 1rem;transition:border-color .15s ease,box-shadow .15s ease;width:100%}.login-input::placeholder{color:#94a3b8}.login-input:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b98133;outline:none}.login-input:disabled{background:#f8fafc;cursor:not-allowed}.login-password-wrapper{position:relative}.login-password-wrapper .login-input{padding-right:3.5rem}.login-password-toggle{background:none;border:none;color:#64748b;cursor:pointer;font-size:.875rem;font-weight:500;padding:.25rem .5rem;position:absolute;right:.75rem;top:50%;transform:translateY(-50%);transition:color .15s ease}.login-password-toggle:hover{color:#0f172a}.login-alert{border-radius:.5rem;font-size:.875rem;line-height:1.4;padding:.75rem 1rem}.login-alert-error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.login-alert-success{background:#ecfdf5;border:1px solid #a7f3d0;color:#047857}.verify-email-card{max-width:32rem}.verify-email-kicker{color:#059669;font-size:.8rem;font-weight:700;letter-spacing:.08em;margin:0 0 .5rem;text-transform:uppercase}.verify-email-actions{display:flex;flex-direction:column;gap:.875rem;margin-top:1.5rem}.verify-email-primary-link{box-sizing:border-box;text-decoration:none}.verify-email-secondary-link{align-self:center;font-size:.95rem}.login-oauth-unlinked{display:flex;flex-direction:column;gap:.5rem}.login-oauth-unlinked-title{font-size:.95rem;font-weight:600;margin:0}.login-oauth-unlinked-email{font-size:.85rem;margin:0;opacity:.85}.login-oauth-unlinked-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.login-submit{align-items:center;background:#10b981;border:none;border-radius:9999px;color:#0f172a;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;padding:.875rem 1rem;transition:background-color .15s ease;width:100%}.login-submit:hover:not(:disabled){background:#059669}.login-submit:disabled{background:#6ee7b7;cursor:not-allowed}.login-forgot{padding-top:.25rem;text-align:center}.login-forgot a{color:#059669;font-size:.875rem;font-weight:500;text-decoration:none}.login-forgot a:hover{color:#047857;text-decoration:underline}.login-divider{align-items:center;display:flex;gap:1rem;margin:2rem 0}.login-divider-line{background:#e2e8f0;flex:1 1;height:1px}.login-divider-text{color:#64748b;font-size:.875rem}.login-providers{display:flex;flex-direction:column;gap:.75rem}.login-provider-btn{align-items:center;background:#fff;border:1px solid #cbd5e1;border-radius:9999px;color:#0f172a;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.75rem;justify-content:center;padding:.75rem 1rem;transition:background-color .15s ease;width:100%}.login-provider-btn:hover:not(:disabled){background:#f8fafc}.login-provider-btn:disabled{cursor:not-allowed;opacity:.6}.login-provider-icon{height:1.25rem;width:1.25rem}.login-google-container{display:flex;justify-content:center;min-height:44px}.login-google-fallback{color:#94a3b8;font-size:.875rem;padding:.75rem 0;text-align:center}.login-spinner{animation:login-spin .8s linear infinite;border:2px solid #0f172a4d;border-radius:9999px;border-top-color:#0f172a;height:1rem;width:1rem}.login-spinner-muted{border-color:#334155 #64748b66 #64748b66}@keyframes login-spin{to{transform:rotate(1turn)}}.login-footer{color:#64748b;font-size:.75rem;margin-top:3rem;text-align:center}.experience-page{--exp-bg:#0e1012;--exp-surface:#181a1fc7;--exp-surface-strong:#111317f0;--exp-card:#ffffff0d;--exp-card-border:#ffffff14;--exp-text:#f6f1e8;--exp-text-soft:#f6f1e8b8;--exp-track:#ffffff24;--exp-acid:#f5cb2f;--exp-signal:#ff6c37;--exp-mint:#4fe0b5;--exp-shadow:0 30px 70px #00000059;background:radial-gradient(circle at top left,#f5cb2f2e,#0000 28%),radial-gradient(circle at 85% 10%,#ff6c3733,#0000 24%),linear-gradient(180deg,#101214,#0b0d10);color:var(--exp-text);font-family:Instrument Sans,Segoe UI,sans-serif;min-height:100vh;opacity:0;transform:translateY(18px);transition:opacity .42s ease,transform .42s ease}.experience-page.is-ready{opacity:1;transform:translateY(0)}.electric-wayfinding a{color:inherit;text-decoration:none}.experience-topbar{align-items:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0b0d10c7;border-bottom:1px solid #ffffff0f;display:flex;justify-content:space-between;padding:1rem 1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:30}.experience-brand-mark{align-items:center;display:inline-flex;font-weight:700;gap:.85rem;letter-spacing:.04em}.experience-brand-mark__glyph{align-items:center;background:linear-gradient(135deg,var(--exp-acid),var(--exp-signal));border-radius:.85rem;color:#0d0e11;display:inline-flex;font-family:Archivo Expanded,sans-serif;font-size:.78rem;height:2.5rem;justify-content:center;width:2.5rem}.experience-brand-mark__text{font-family:Archivo Expanded,sans-serif;font-size:.9rem;text-transform:uppercase}.experience-topbar__nav{align-items:center;color:var(--exp-text-soft);display:flex;font-size:.95rem;gap:1.2rem}.experience-topbar__nav a:hover{color:var(--exp-acid)}.experience-hero{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);padding:3.75rem clamp(1.25rem,4vw,4rem) 2.5rem}.experience-booking-block,.experience-hero__copy,.experience-hero__panel,.register-scene__content,.register-scene__form,.venue-room-section{background:var(--exp-surface);border:1px solid var(--exp-card-border);box-shadow:var(--exp-shadow)}.experience-hero__copy,.experience-hero__panel{border-radius:2rem;overflow:hidden}.experience-hero__copy{background:linear-gradient(115deg,#f5cb2f1f,#0000 40%),linear-gradient(180deg,#ffffff08,#ffffff03),var(--exp-surface);padding:clamp(2rem,4vw,4rem);position:relative}.experience-hero__copy:after{background:linear-gradient(90deg,#0000,var(--exp-acid),var(--exp-signal));content:"";height:.45rem;inset:auto 0 0 auto;position:absolute;width:40%}.experience-kicker{align-items:center;color:var(--exp-acid);display:inline-flex;font-size:.82rem;font-weight:700;gap:.5rem;letter-spacing:.18em;text-transform:uppercase}.experience-booking-block__header h2,.experience-hero h1,.experience-state-panel h3,.register-form-card h2,.register-scene__content h1,.venue-room-section__body h2{font-family:Archivo Expanded,sans-serif;letter-spacing:.04em;line-height:.98;text-transform:uppercase}.experience-hero h1{font-size:clamp(2.5rem,5vw,5.2rem);margin:1rem 0;max-width:12ch}.experience-booking-block__header p,.experience-form label span,.experience-hero p,.experience-otp-form label span,.experience-side-card,.experience-side-card dd,.experience-state-panel p,.register-form-card p,.register-scene__content p,.sequence-path-meta,.venue-room-section__body p{color:var(--exp-text-soft)}.experience-form-actions,.experience-hero__actions,.experience-success-panel__actions,.register-form-card__actions,.register-scene__links,.venue-room-section__actions{display:flex;flex-wrap:wrap;gap:.9rem}.experience-enquiry-status,.experience-success-panel__badge{background:#4fe0b524;border:1px solid #4fe0b566;border-radius:999px;color:#d8fff1;font-size:.82rem;letter-spacing:.08em;min-height:2rem;padding:0 .85rem}.experience-button,.experience-enquiry-status,.experience-success-panel__badge{align-items:center;display:inline-flex;font-weight:700;text-transform:uppercase}.experience-button{border:1px solid #0000;border-radius:999px;justify-content:center;letter-spacing:.04em;min-height:3.2rem;padding:.85rem 1.3rem;transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease}.experience-button:hover{transform:translateY(-2px)}.experience-button--primary{background:linear-gradient(135deg,var(--exp-acid),var(--exp-signal));color:#0b0d10}.experience-button--primary:disabled{cursor:not-allowed;opacity:.7;transform:none}.experience-button--ghost{background:#ffffff08;border-color:#ffffff1f;color:var(--exp-text)}.experience-button--outline{background:#0000;border-color:var(--exp-acid);color:var(--exp-acid)}.experience-hero__path{margin-top:2rem}.sequence-path-bar{background:#ffffff0a;border:1px solid #ffffff14;border-radius:1.35rem;display:flex;flex-direction:column;gap:.95rem;padding:1rem 1.1rem}.sequence-path-steps{display:flex;flex-wrap:wrap;gap:.7rem;list-style:none}.sequence-path-step{align-items:center;background:#ffffff08;border:1px solid var(--exp-track);border-radius:999px;color:var(--exp-text-soft);display:inline-flex;font-size:.86rem;gap:.65rem;padding:.65rem .8rem}.sequence-path-step--current{background:#f5cb2f29;border-color:#f5cb2f99;color:var(--exp-text)}.sequence-path-step--done{border-color:#4fe0b573;color:#bbf7e8}.sequence-path-marker{align-items:center;background:#ffffff14;border-radius:999px;display:inline-flex;font-size:.78rem;font-weight:700;height:1.8rem;justify-content:center;width:1.8rem}.sequence-path-step--current .sequence-path-marker{background:var(--exp-acid);color:#0b0d10}.sequence-path-step--done .sequence-path-marker{background:var(--exp-mint);color:#04110d}.sequence-path-meta{display:flex;flex-wrap:wrap;font-size:.92rem;gap:.5rem 1rem}.experience-hero__panel{display:flex;flex-direction:column;gap:1rem;padding:1.4rem}.experience-booking-main,.experience-pulse-card,.experience-side-card,.experience-switcher-card,.register-context-card,.register-form-card,.register-note-card{background:#ffffff0a;border:1px solid #ffffff14;border-radius:1.5rem}.experience-pulse-card,.experience-side-card,.experience-switcher-card,.register-context-card,.register-form-card,.register-note-card{padding:1.25rem}.experience-pulse-card__eyebrow,.experience-side-card__eyebrow,.register-note-card__eyebrow{color:var(--exp-acid);display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.12em;margin-bottom:.8rem;text-transform:uppercase}.experience-pulse-card ol,.experience-side-card ol,.register-note-card ol{padding-left:1.2rem}.experience-form label,.experience-otp-form label,.experience-switcher-card label,.register-form-card label{display:flex;flex-direction:column;font-size:.92rem;font-weight:600;gap:.45rem}.experience-input,.experience-select,.experience-textarea,.register-input,.register-select{background:#ffffff0a;border:1px solid #ffffff1a;border-radius:1rem;color:var(--exp-text);font-size:1rem;padding:.9rem 1rem;transition:border-color .18s ease,background .18s ease,transform .18s ease;width:100%}.experience-input::placeholder,.experience-textarea::placeholder,.register-input::placeholder{color:#f6f1e861}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper .register-input{padding-right:3.4rem}.password-toggle{background:none;border:none;color:var(--exp-text-soft);cursor:pointer;font-size:1rem;position:absolute;right:.75rem}.password-toggle:hover{color:var(--exp-text)}.experience-input:focus,.experience-select:focus,.experience-textarea:focus,.register-input:focus,.register-select:focus{background:#ffffff0f;border-color:#f5cb2fb3;outline:none}.experience-input.has-error,.experience-select.has-error,.register-input.has-error,.register-select.has-error{border-color:#ff6c37e6}.experience-form small,.experience-inline-error,.experience-switcher-card p,.register-form-card small,.register-help{color:var(--exp-text-soft);font-size:.84rem;margin-top:.35rem}.experience-benefits-strip,.experience-booking-block,.experience-room-index,.experience-room-sections,.register-scene{padding-inline:clamp(1.25rem,4vw,4rem)}.experience-benefits-strip{grid-gap:1px;background:#ffffff14;display:grid;gap:1px;grid-template-columns:repeat(4,1fr);margin-bottom:1rem}.experience-benefits-strip span{background:#ffffff08;font-weight:600;padding:1rem;text-align:center}.experience-room-index{display:flex;flex-wrap:wrap;gap:.8rem;padding-bottom:1.4rem;padding-top:.8rem}.experience-room-index a{align-items:center;border:1px solid #ffffff1a;border-radius:999px;color:var(--exp-text-soft);display:inline-flex;min-height:2.6rem;padding:.6rem 1rem}.experience-room-index a:hover{border-color:#f5cb2fb3;color:var(--exp-acid)}.experience-room-sections{display:flex;flex-direction:column;gap:1.5rem}.venue-room-section{border-radius:2rem;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:hidden}.venue-room-section--reverse .venue-room-section__media{order:2}.venue-room-section__media{background-position:50%;background-size:cover;min-height:360px;position:relative}.venue-room-section__media:after{background:linear-gradient(180deg,#0000 30%,#0000006b);content:"";inset:0;position:absolute}.venue-room-section__status{align-items:center;background:#0b0d10d1;border:1px solid #ffffff1a;border-radius:999px;display:inline-flex;font-size:.84rem;font-weight:700;left:1rem;letter-spacing:.08em;min-height:2.3rem;padding:0 .9rem;position:absolute;text-transform:uppercase;top:1rem;z-index:1}.venue-room-section__body{display:flex;flex-direction:column;gap:1rem;padding:clamp(1.5rem,4vw,2.5rem)}.venue-room-section__body h2{font-size:clamp(1.85rem,2.8vw,3rem)}.venue-room-section__meta,.venue-room-section__tags{display:flex;flex-wrap:wrap;gap:.7rem}.experience-summary-pill,.register-summary-pill,.venue-room-section__meta span,.venue-room-section__tags span{align-items:center;background:#ffffff0a;border:1px solid #ffffff14;border-radius:999px;display:inline-flex;min-height:2.35rem;padding:0 .9rem}.register-context-card ul,.register-note-card ul,.venue-room-section__features{grid-gap:.6rem;display:grid;gap:.6rem;padding-left:1.2rem}.experience-loading-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}.experience-loading-card{animation:shimmer 1.4s linear infinite;background:linear-gradient(90deg,#ffffff0a,#ffffff1a,#ffffff0a);background-size:200% 100%;border-radius:1.8rem;height:420px}.experience-booking-block{background:var(--exp-surface-strong);border-radius:2rem;margin:2rem clamp(1.25rem,4vw,4rem) 0;padding:clamp(1.5rem,3vw,2.25rem)}.experience-booking-block__header{max-width:58rem}.experience-booking-block__header h2{font-size:clamp(1.8rem,3vw,3.4rem);margin:.8rem 0 .9rem}.experience-booking-grid{grid-gap:1.35rem;display:grid;gap:1.35rem;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);margin-top:1.6rem}.experience-booking-main{padding:1.2rem}.experience-state-panel{animation:fadePanel .32s ease;padding:1.3rem}.experience-enquiries-panel,.experience-state-panel{background:#ffffff08;border:1px solid #ffffff14;border-radius:1.5rem;margin-top:1rem}.experience-enquiries-panel{padding:1.2rem}.experience-enquiries-panel__header{align-items:baseline;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.experience-enquiries-panel__header h4{font-family:Archivo Expanded,sans-serif;font-size:1.05rem;letter-spacing:.04em;margin:.35rem 0 0;text-transform:uppercase}.experience-enquiries-empty,.experience-enquiries-panel__header p{color:var(--exp-text-soft);margin:.4rem 0 0}.experience-enquiries-list{grid-gap:.85rem;display:grid;gap:.85rem;margin-top:1rem}.experience-enquiry-card{background:#ffffff0a;border:1px solid #ffffff14;border-radius:1rem;padding:1rem}.experience-enquiry-card__meta,.experience-enquiry-card__top{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between}.experience-enquiry-card__top strong{font-size:1rem}.experience-enquiry-card__meta{color:var(--exp-text-soft);font-size:.9rem;justify-content:flex-start;margin-top:.65rem}.experience-enquiry-card__summary{color:var(--exp-text-soft);margin:.7rem 0 0}.experience-identity-panel__header,.experience-success-panel{display:flex;flex-direction:column;gap:.9rem}.experience-form,.experience-identity-actions,.experience-otp-form{display:flex;flex-direction:column;gap:1rem}.experience-divider{align-items:center;color:var(--exp-text-soft);display:flex;font-size:.78rem;gap:.8rem;letter-spacing:.12em;text-transform:uppercase}.experience-divider:after,.experience-divider:before{background:#ffffff1a;content:"";flex:1 1;height:1px}.experience-form-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.experience-form-grid__full{grid-column:1/-1}.experience-textarea{min-height:140px;resize:vertical}.experience-checkbox{align-items:flex-start;color:var(--exp-text-soft);display:flex;font-size:.92rem;gap:.8rem}.experience-checkbox input{margin-top:.15rem}.experience-honeypot{height:1px;opacity:0;pointer-events:none;position:absolute;width:1px}.experience-alert{border-radius:1rem;font-size:.92rem;padding:.95rem 1rem}.experience-alert--error{background:#ff6c371f;border:1px solid #ff6c3773;color:#ffd7ca}.experience-alert--info{background:#4fe0b51a;border:1px solid #4fe0b56b;color:#d8fff1}.experience-reference-card{background:#ffffff0a;border:1px solid #ffffff17;border-radius:1rem;display:inline-flex;flex-direction:column;gap:.2rem;max-width:-webkit-max-content;max-width:max-content;padding:1rem 1.2rem}.experience-booking-aside{grid-gap:1rem;display:grid;gap:1rem}.experience-side-card dl,.experience-side-card ol{grid-gap:.9rem;display:grid;gap:.9rem}.experience-side-card dt{color:var(--exp-text-soft);font-size:.8rem;letter-spacing:.08em;margin-bottom:.2rem;text-transform:uppercase}.register-scene{grid-gap:1.4rem;display:grid;gap:1.4rem;grid-template-columns:minmax(0,1fr) minmax(360px,.95fr);padding-bottom:3rem;padding-top:2.4rem}.register-scene__content,.register-scene__form{border-radius:2rem;padding:clamp(1.4rem,4vw,2.6rem)}.register-scene__content{display:flex;flex-direction:column;gap:1.25rem}.register-scene__content h1{font-size:clamp(2.3rem,4vw,4.4rem);max-width:11ch}.register-summary-stack{grid-gap:1rem;display:grid;gap:1rem}.register-context-card dl{grid-gap:.8rem;display:grid;gap:.8rem}.register-context-card dt{color:var(--exp-text-soft);font-size:.8rem;letter-spacing:.08em;margin-bottom:.2rem;text-transform:uppercase}.register-form-card{display:flex;flex-direction:column;gap:1rem}.register-form-card h2{font-size:clamp(1.5rem,2.5vw,2.4rem)}.register-form-grid{grid-gap:1rem;display:grid;gap:1rem}.register-form-card__actions{margin-top:.5rem}.register-scene__links{margin-top:.7rem}.register-link{color:var(--exp-acid);font-weight:600}.reveal-on-scroll{opacity:0;transform:translateY(28px);transition:opacity .42s ease,transform .42s ease}.reveal-on-scroll.is-visible{opacity:1;transform:translateY(0)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fadePanel{0%{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:1100px){.experience-booking-grid,.experience-hero,.register-scene,.venue-room-section{grid-template-columns:1fr}.venue-room-section--reverse .venue-room-section__media{order:0}}@media (max-width:720px){.experience-topbar{align-items:flex-start;flex-direction:column;gap:.9rem;padding:.9rem 1rem}.experience-topbar__nav{overflow-x:auto;padding-bottom:.25rem;width:100%}.experience-benefits-strip{grid-template-columns:1fr 1fr}.experience-form-grid,.sequence-path-steps{grid-template-columns:1fr}.experience-form-grid{display:grid}.experience-loading-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.experience-button,.experience-loading-card,.experience-page,.experience-state-panel,.reveal-on-scroll{animation:none!important;opacity:1!important;transform:none!important;transition:none!important}}.notification-bell-container{position:relative;z-index:1001}.notification-bell-button{align-items:center;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;justify-content:center;padding:8px;position:relative;transition:background-color .2s}.notification-bell-button:hover{background-color:#0000001a}.bell-icon{font-size:1.4rem}.notification-badge{background:#dc3545;border-radius:10px;color:#fff;font-size:.65rem;font-weight:700;line-height:1.2;min-width:16px;padding:2px 5px;position:absolute;right:2px;text-align:center;top:2px}.notification-toast{background:#fff;border:1px solid #d7e4f5;border-left:4px solid #007bff;border-radius:8px;box-shadow:0 12px 32px #0f172a2e;color:#333;cursor:pointer;padding:14px 16px;position:fixed;right:24px;text-align:left;top:24px;width:min(360px,calc(100vw - 48px));z-index:10000}.notification-toast span,.notification-toast strong{display:block}.notification-toast span{color:#666;font-size:.9rem;margin-top:4px}.notification-toast-2sv-challenge,.notification-toast-security{border-left-color:#dc3545}.notification-dropdown{background:#fff;border:1px solid #e0e0e0;border-radius:12px;bottom:80px;box-shadow:0 10px 40px #0003;display:flex;flex-direction:column;left:270px;max-height:480px;overflow:hidden;position:fixed;width:360px;z-index:9999}@media (max-width:1024px){.notification-dropdown{bottom:auto;left:50%;max-width:400px;position:fixed;right:auto;top:70px;transform:translateX(-50%);width:calc(100vw - 32px)}}.notification-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:16px}.notification-header h3{color:#333;font-size:1rem;font-weight:600;margin:0}.mark-all-read-btn{background:none;border:none;border-radius:4px;color:#007bff;cursor:pointer;font-size:.85rem;padding:4px 8px}.mark-all-read-btn:hover{background:#007bff1a}.mark-all-read-btn:disabled{color:#999;cursor:not-allowed}.notification-list{flex:1 1;max-height:360px;overflow-y:auto}.notification-item{border-bottom:1px solid #f0f0f0;cursor:pointer;display:flex;padding:12px 16px;position:relative;transition:background-color .2s}.notification-item:hover{background-color:#f8f9fa}.notification-item.unread{background-color:#f0f7ff}.notification-item.unread:hover{background-color:#e3f0ff}.notification-icon{align-items:center;background:#f0f0f0;border-radius:50%;display:flex;flex-shrink:0;font-size:1.1rem;height:36px;justify-content:center;margin-right:12px;width:36px}.notification-content{min-width:0}.notification-title{color:#333;font-size:.9rem;font-weight:600;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#666;display:-webkit-box;font-size:.85rem;line-height:1.4;overflow:hidden}.notification-time{color:#999;font-size:.75rem;margin-top:4px}.unread-dot{background:#007bff;border-radius:50%;height:8px;position:absolute;right:16px;top:16px;width:8px}.no-notifications{color:#999;padding:40px 20px;text-align:center}.no-notifications-icon{display:block;font-size:2.5rem;margin-bottom:12px;opacity:.5}.no-notifications p{font-size:.9rem;margin:0}.notification-footer{background:#f8f9fa;border-top:1px solid #eee;padding:12px 16px;text-align:center}.view-all-link{color:#007bff;font-size:.9rem;font-weight:500;text-decoration:none}.view-all-link:hover{text-decoration:underline}[data-theme=dark] .notification-dropdown{background:#2d2d2d;border:1px solid #404040}[data-theme=dark] .notification-header{background:#383838;border-color:#404040}[data-theme=dark] .notification-header h3{color:#fff}[data-theme=dark] .notification-item{border-color:#404040}[data-theme=dark] .notification-item:hover{background-color:#383838}[data-theme=dark] .notification-item.unread{background-color:#1a3a5c}[data-theme=dark] .notification-item.unread:hover{background-color:#1e4570}[data-theme=dark] .notification-title{color:#fff}[data-theme=dark] .notification-text{color:#bbb}[data-theme=dark] .notification-icon{background:#404040}[data-theme=dark] .notification-footer{background:#383838;border-color:#404040}@media (max-width:480px){.notification-dropdown{left:10px;max-height:calc(100vh - 140px);position:fixed;right:10px;top:60px;width:auto}}.network-alert-banner{align-items:center;border:1px solid #0000;border-radius:16px;display:flex;gap:1rem;justify-content:space-between;margin:0 0 1rem;padding:.95rem 1.1rem}.network-alert-banner.severity-info{background:#3b82f61a;border-color:#3b82f638;color:#1d4ed8}.network-alert-banner.severity-warning{background:#fbbf2424;border-color:#fbbf2447;color:#a16207}.network-alert-banner.severity-degraded,.network-alert-banner.severity-high{background:#f9731624;border-color:#f9731647;color:#c2410c}.network-alert-banner.severity-critical,.network-alert-banner.severity-error,.network-alert-banner.severity-offline{background:#ef444424;border-color:#ef444447;color:#b91c1c}.network-alert-content{grid-gap:.2rem;display:grid;gap:.2rem}.network-alert-content strong{color:inherit}.network-alert-actions{align-items:center;display:flex;flex-shrink:0;gap:.75rem}.network-alert-actions a,.network-alert-actions button{background:#ffffffa6;border:0;border-radius:999px;color:inherit;cursor:pointer;font:inherit;font-weight:600;padding:.55rem .9rem;text-decoration:none}@media (max-width:720px){.network-alert-banner{align-items:flex-start;flex-direction:column}}.update-banner{align-items:center;background:linear-gradient(135deg,#ff9800,#f57c00);box-shadow:0 2px 8px #0003;color:#fff;display:flex;font-size:14px;font-weight:500;justify-content:space-between;padding:10px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:10000}.update-banner-content{align-items:center;display:flex;flex:1 1;flex-wrap:wrap;gap:10px}.update-banner-icon{flex-shrink:0;font-size:18px}.update-banner-message{flex:1 1;min-width:200px}.update-banner-deadline{font-weight:700;white-space:nowrap}.update-banner-action{background:#ffffff40;border:1px solid #ffffff80;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:4px 14px;transition:background .2s;white-space:nowrap}.update-banner-action:hover{background:#fff6}.update-banner-dismiss{background:none;border:none;color:#fffc;cursor:pointer;flex-shrink:0;font-size:18px;margin-left:12px;padding:4px 8px;transition:color .2s}.update-banner-dismiss:hover{color:#fff}@media (max-width:600px){.update-banner{font-size:13px;padding:8px 12px}.update-banner-content{gap:6px}.update-banner-action{font-size:12px;padding:3px 10px}}.layout{display:flex;min-height:100vh}.mobile-header{align-items:center;background:var(--bg-card);border-bottom:1px solid var(--border-color);display:none;height:60px;justify-content:space-between;left:0;padding:0 16px;position:fixed;right:0;top:0;z-index:100}.mobile-header .header-actions{align-items:center;display:flex;gap:8px}.menu-toggle{background:none;border:none;display:flex;flex-direction:column;gap:5px;padding:8px}.menu-toggle span{background:var(--text-primary);height:2px;transition:var(--transition);width:24px}.sidebar{background:var(--bg-card);border-right:1px solid var(--border-color);bottom:0;display:flex;flex-direction:column;left:0;position:fixed;top:0;transition:transform var(--transition);width:260px;z-index:200}.sidebar-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:20px}.logo{color:var(--primary);font-size:1.5rem;font-weight:700;margin:0}.close-sidebar{background:none;border:none;color:var(--text-secondary);cursor:pointer;display:none;font-size:1.5rem}.sidebar-nav{flex:1 1;overflow-y:auto;padding:16px 12px}.two-sv-bypass-banner{background:linear-gradient(135deg,#b91c1c,#d97706);border:1px solid #ffffff6b;box-shadow:0 6px 16px #b91c1c4d;box-sizing:border-box;color:#fff;cursor:pointer;font-weight:800;line-height:1.25;text-align:left;width:100%}.two-sv-bypass-banner--sidebar{border-radius:var(--radius-sm);margin-bottom:12px;min-height:52px;padding:10px 12px}.two-sv-bypass-banner--mobile{display:none}.two-sv-bypass-banner:focus-visible,.two-sv-bypass-banner:hover{background:linear-gradient(135deg,#991b1b,#b45309);outline:2px solid #ffffffd9;outline-offset:2px}.nav-item{align-items:center;border-radius:var(--radius-md);color:var(--text-secondary);display:flex;gap:12px;margin-bottom:4px;padding:12px 16px;text-decoration:none;transition:var(--transition)}.nav-item:hover{background:var(--bg-secondary);color:var(--text-primary);text-decoration:none}.nav-item.active{background:var(--primary);color:#fff}.nav-icon{font-size:1.25rem}.nav-label{font-weight:500}.sidebar-footer{border-top:1px solid var(--border-color);padding:16px}.user-info{align-items:center;gap:12px;margin-bottom:12px}.user-avatar{height:40px;text-transform:uppercase;width:40px}.user-details{display:flex;flex-direction:column}.user-name{font-size:.9rem;font-weight:600}.user-role{color:var(--text-secondary);font-size:.8rem;text-transform:capitalize}.sidebar-actions{display:flex;gap:8px}.logout-btn,.theme-btn{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);flex:1 1;font-weight:500;padding:10px;transition:var(--transition)}.logout-btn:hover,.theme-btn:hover{background:var(--bg-primary)}.logout-btn{background:var(--error);border-color:var(--error);color:#fff}.logout-btn:hover{background:#d32f2f}.sidebar-overlay{background:#00000080;display:none;inset:0;position:fixed;z-index:150}.main-content{flex:1 1;margin-left:260px;min-height:100vh;padding:24px}.bottom-nav{background:var(--bg-card);border-top:1px solid var(--border-color);bottom:0;display:none;height:64px;left:0;position:fixed;right:0;z-index:100}.bottom-nav-item{align-items:center;color:var(--text-secondary);display:flex;flex:1 1;flex-direction:column;font-size:.7rem;gap:4px;justify-content:center;text-decoration:none}.bottom-nav-item.active{color:var(--primary)}.bottom-nav-item .nav-icon{font-size:1.25rem}@media (max-width:1024px){.sidebar{transform:translateX(-100%)}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-open .sidebar-overlay{display:block}.mobile-header{display:flex}.two-sv-bypass-banner--mobile{border-radius:0;display:block;left:0;min-height:48px;padding:10px 16px;position:fixed;right:0;top:60px;z-index:101}.two-sv-bypass-banner--sidebar{display:none}.close-sidebar{display:block}.main-content{margin-left:0;padding-bottom:80px;padding-top:76px}.layout:has(.two-sv-bypass-banner--mobile) .main-content{padding-top:128px}.bottom-nav{display:flex}.theme-toggle{background:none;border:none;cursor:pointer;font-size:1.25rem}}@media (max-width:640px){.main-content{padding:76px 16px 80px}.layout:has(.two-sv-bypass-banner--mobile) .main-content{padding-top:128px}}.event-simple-layout{display:flex;flex-direction:column;min-height:100vh}.event-simple-header{align-items:center;background:var(--bg-card);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:16px 24px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.event-simple-header .logo{color:var(--primary-color);font-size:1.5rem;font-weight:700;margin:0}.event-simple-header .header-actions{align-items:center;display:flex;gap:16px}.event-simple-header .user-name{color:var(--text-secondary);font-size:.9rem}.event-simple-header .logout-btn{font-size:.875rem;padding:8px 16px}.event-simple-main{flex:1 1;margin-left:0!important;padding:24px;padding-bottom:24px!important;padding-top:24px!important}@media (max-width:768px){.event-simple-header{padding:12px 16px}.event-simple-header .user-name{display:none}.event-simple-main{padding:16px}}.dashboard{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0 auto;max-width:1200px}.dashboard-header{margin-bottom:32px}.dashboard-header h1{color:var(--text-primary);font-size:1.875rem;font-weight:700;letter-spacing:-.025em;line-height:1.2;margin-bottom:8px}.dashboard-header .subtitle{color:var(--text-secondary);font-size:1rem;font-weight:400;letter-spacing:.01em}.dashboard-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.widget-featured{border-left:4px solid var(--primary)}.widget-header{margin-bottom:20px}.widget-header h2{color:var(--text-primary);font-size:1.05rem;letter-spacing:-.01em}.link-all{color:var(--primary);font-size:.875rem;font-weight:500;letter-spacing:.01em;text-decoration:none}.link-all:hover{text-decoration:underline}.badge{background:var(--primary-light);border-radius:20px;color:#fff;font-size:.75rem;letter-spacing:.02em;padding:4px 12px}.next-class-content .class-name{color:var(--text-primary);font-size:1.375rem;font-weight:600;letter-spacing:-.02em;line-height:1.3;margin-bottom:16px}.class-details{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.class-details p{align-items:center;color:var(--text-secondary);display:flex;font-size:.9375rem;font-weight:400;gap:10px;letter-spacing:.01em;margin:0}.class-details .icon{font-size:1.1rem}.bookings-list{list-style:none;margin:0;padding:0}.booking-item{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:14px 0}.booking-item:last-child{border-bottom:none}.booking-info{display:flex;flex-direction:column;gap:4px}.booking-name{color:var(--text-primary);font-size:.9375rem;font-weight:500;letter-spacing:-.01em}.booking-time{font-weight:400}.booking-room,.booking-time{font-size:.8125rem;letter-spacing:.01em}.booking-room{background:var(--bg-secondary);border-radius:var(--radius-sm);font-weight:500;padding:5px 10px}.payment-status{padding:16px 0}.status-indicator{align-items:center;border-radius:var(--radius-md);display:flex;gap:12px;padding:16px}.status-indicator.success{background:#4caf501a;color:var(--success)}.status-indicator.warning{background:#ff98001a;color:var(--warning)}.status-icon{align-items:center;background:currentColor;border-radius:50%;color:#fff;display:flex;font-size:1rem;height:32px;justify-content:center;width:32px}.status-indicator.success .status-icon{background:var(--success)}.status-text{font-size:.9375rem;font-weight:500;letter-spacing:.01em}.quick-actions{display:flex;flex-direction:column;gap:12px}.action-btn{align-items:center;background:var(--bg-secondary);border-radius:var(--radius-md);color:var(--text-primary);display:flex;font-size:.9375rem;font-weight:500;gap:12px;letter-spacing:.01em;padding:14px 18px;text-decoration:none;transition:var(--transition)}.action-btn:hover{background:var(--primary);color:#fff;text-decoration:none}.action-icon{font-size:1.25rem}.empty-state{padding:24px}.empty-state p{font-size:.9375rem;font-weight:400;letter-spacing:.01em;margin-bottom:16px}.btn{font-size:.875rem;letter-spacing:.02em;padding:11px 22px}.btn-outline{border:1px solid var(--primary)}.loading-container{min-height:400px}@media (max-width:640px){.dashboard-header h1{font-size:1.5rem}.dashboard-grid{grid-template-columns:1fr}.widget{padding:20px}}.climate-widget{background:#f8f9fa;border:1px solid #dee2e6;border-radius:var(--radius-md);margin:16px 0;padding:14px}.climate-header{color:#2c3e50;font-size:.9375rem;font-weight:600;letter-spacing:-.01em;margin-bottom:12px}.climate-loading{animation:spin 1s linear infinite;font-size:1rem}.climate-data{display:flex;flex-direction:column;gap:8px}.climate-row{align-items:center;display:flex;font-size:.875rem;justify-content:space-between;letter-spacing:.01em;padding:5px 0}.dash-climate-label,.dash-climate-value{color:#2c3e50;font-size:.875rem;font-weight:600}.dash-climate-value.status-inuse{color:#27ae60}.dash-climate-value.status-unused{color:#7f8c8d}.climate-message{border-radius:4px;font-size:.875rem;font-weight:500;margin-bottom:10px;padding:6px 10px;text-align:center}.climate-message.success{background:#27ae6026;color:#27ae60}.climate-message.error{background:#e74c3c26;color:#e74c3c}.climate-control{border-top:1px solid #dee2e6;margin-top:12px;padding-top:12px}.climate-control-label{color:#2c3e50;display:block;font-size:.875rem;font-weight:600;letter-spacing:.01em;margin-bottom:8px}.climate-slider{-webkit-appearance:none;appearance:none;background:linear-gradient(90deg,#3498db 0,#e74c3c);border-radius:3px;cursor:pointer;height:6px;outline:none;width:100%}.climate-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fff;border:2px solid #3498db;border-radius:50%;box-shadow:0 2px 4px #0003;cursor:pointer;height:18px;width:18px}.climate-slider::-moz-range-thumb{background:#fff;border:2px solid #3498db;border-radius:50%;box-shadow:0 2px 4px #0003;cursor:pointer;height:18px;width:18px}.climate-slider:disabled{cursor:not-allowed;opacity:.5}.climate-slider-labels{color:#7f8c8d;display:flex;font-size:.875rem;font-weight:500;justify-content:space-between;margin-top:4px}.climate-occupancy{display:flex;gap:8px;margin-top:12px}.occupancy-btn{background:#ecf0f1;border:1px solid #bdc3c7;border-radius:6px;color:#2c3e50;cursor:pointer;flex:1 1;font-size:.875rem;font-weight:600;letter-spacing:.02em;padding:10px 16px;transition:all .2s ease}.occupancy-btn:hover:not(:disabled){background:#dfe6e9}.occupancy-btn:disabled{cursor:not-allowed;opacity:.6}.occupancy-btn.active-off{background:#e74c3c;border-color:#c0392b;color:#fff}.occupancy-btn.active-on{background:#27ae60;border-color:#1e8449;color:#fff}.climate-not-configured{color:#856404;font-size:.875rem;padding:8px;text-align:center}.climate-not-configured p{margin:0}.recurring-badge-inline{color:#3b82f6;display:inline-block;font-size:.9em;margin-left:6px}.recurring-label{background-color:#eff6ff;border-radius:12px;color:#3b82f6;display:inline-block;font-size:.75em;font-weight:500;margin-left:8px;padding:2px 8px;white-space:nowrap}.schedule-page{background:var(--bg-secondary);display:flex;flex-direction:column;min-height:100vh}.schedule-header{background:var(--bg-card);border-bottom:1px solid var(--border-color);padding:16px 0;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 20px}.logo-section .logo{color:var(--primary);font-size:1.5rem;font-weight:700;margin:0}.logo-section .tagline{color:var(--text-secondary);font-size:.8rem;margin:0}.schedule-main{flex:1 1;padding:40px 0}.container{margin:0 auto;max-width:1000px;padding:0 20px}.schedule-title{margin-bottom:32px;text-align:center}.schedule-title h2{font-size:2rem;margin-bottom:8px}.schedule-title p{color:var(--text-secondary)}.view-controls{display:flex;gap:8px;justify-content:center;margin-bottom:32px}.view-btn{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;padding:10px 24px;transition:var(--transition)}.view-btn:hover{background:var(--bg-secondary)}.view-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.day-group{margin-bottom:32px}.day-header{border-bottom:2px solid var(--primary);color:var(--text-primary);font-size:1.1rem;font-weight:600;margin-bottom:16px;padding-bottom:8px}.classes-list{gap:12px}.class-time,.classes-list{display:flex;flex-direction:column}.class-time{align-items:center;border-right:1px solid var(--border-color);min-width:80px;padding-right:24px}.class-time .time{color:var(--primary);font-size:1.25rem;font-weight:600}.class-time .duration{color:var(--text-secondary);font-size:.8rem}.class-details{flex:1 1}.class-details h4{font-size:1.1rem;margin:0 0 4px}.class-details .instructor{color:var(--text-secondary);font-size:.9rem;margin:0}.class-details .location{color:var(--text-secondary);font-size:.85rem;margin:4px 0 0}.class-booking{align-items:center;display:flex;flex-direction:column;gap:8px;min-width:120px}.spots-available{color:var(--success)}.spots-available,.spots-full{font-size:.85rem;font-weight:500}.spots-full{color:var(--error)}.loading-container{flex-direction:column;gap:16px;min-height:300px}.schedule-footer{background:var(--bg-card);border-top:1px solid var(--border-color);color:var(--text-secondary);font-size:.85rem;padding:20px 0;text-align:center}@media (max-width:640px){.header-content{flex-direction:column;gap:16px}.class-card{align-items:flex-start;flex-direction:column}.class-time{border-bottom:1px solid var(--border-color);border-right:none;gap:12px;justify-content:flex-start;padding-bottom:12px;padding-right:0}.class-booking,.class-time{flex-direction:row;width:100%}.class-booking{border-top:1px solid var(--border-color);justify-content:space-between;padding-top:12px}}.notifications-page{margin:0 auto;max-width:800px;padding:20px}.push-banner{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;display:flex;gap:16px;justify-content:space-between;margin-bottom:24px;padding:16px 20px}.push-banner h2{font-size:18px;margin:0 0 6px}.push-banner p{margin:0}.push-banner-detail{color:var(--text-secondary);font-size:13px;margin-top:6px!important}.push-banner-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.push-banner-info{border-color:#3b82f640}.push-banner-success{border-color:#10b98159}.push-banner-warning{border-color:#f59e0b59}.push-banner-error{color:var(--danger-color);margin-top:8px}.notification-settings-panel{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;margin-bottom:24px;padding:20px}.settings-panel-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:16px}.preference-row h3,.settings-panel-header h2{margin:0 0 6px}.preference-row p,.settings-panel-header p{color:var(--text-secondary);margin:0}.settings-message{border-radius:6px;font-size:14px;margin-bottom:12px}.settings-success{background:#10b9811f;color:var(--success)}.settings-error{background:#f443361f;color:var(--error)}.settings-info{background:#3b82f61f;color:var(--primary-color)}.preference-list{display:flex;flex-direction:column;gap:12px}.preference-row{align-items:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;display:flex;gap:16px;justify-content:space-between;padding:14px}.locked-note{color:var(--text-secondary);display:inline-block;font-size:13px;margin-top:8px}.toggle-control{align-items:center;display:flex;font-weight:600;gap:8px;min-width:72px}.toggle-control input{height:20px;width:20px}.quiet-hours-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:16px}.quiet-hours-grid label{color:var(--text-secondary);display:flex;flex-direction:column;font-size:14px;gap:6px}.quiet-hours-grid input{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);padding:10px 12px}.header-actions{display:flex;gap:12px}.filter-select{background-color:var(--bg-secondary);border-radius:6px;padding:8px 12px}.notifications-list-full{display:flex;flex-direction:column;gap:12px}.notification-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;display:flex;gap:16px;padding:16px;position:relative;transition:all .2s}.notification-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.notification-card.unread{background-color:var(--bg-highlight);border-left:4px solid var(--primary-color)}.notification-icon-large{align-items:flex-start;display:flex;font-size:24px;padding-top:4px}.notification-content{flex:1 1}.notification-header-row{display:flex;justify-content:space-between;margin-bottom:8px}.notification-header-row h3{font-size:16px;font-weight:600;margin:0}.notification-time{color:var(--text-secondary);font-size:12px}.notification-link{background:none;border:0;color:var(--primary-color);cursor:pointer;display:inline-block;font-size:14px;font-weight:500;margin-top:8px;padding:0;text-decoration:none}.notification-link:hover{text-decoration:underline}.delete-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:18px;opacity:0;padding:4px;position:absolute;right:8px;top:8px;transition:opacity .2s}.notification-card:hover .delete-btn{opacity:1}.delete-btn:hover{color:var(--danger-color)}.empty-state{padding:48px}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.security-events-layout{grid-gap:16px;display:grid;gap:16px;grid-template-columns:minmax(220px,320px) 1fr}.security-event-detail,.security-events-list{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px}.security-events-list{overflow:hidden}.security-event-row{align-items:flex-start;background:#0000;border:0;border-bottom:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;display:flex;gap:10px;padding:14px;text-align:left;width:100%}.security-event-row:last-child{border-bottom:0}.security-event-row.active,.security-event-row:hover{background:var(--bg-highlight)}.security-event-row small,.security-event-row strong{display:block}.security-event-row small{color:var(--text-secondary);margin-top:4px}.severity-dot{background:var(--primary-color);border-radius:50%;flex-shrink:0;height:10px;margin-top:4px;width:10px}.severity-warning{background:var(--warning)}.severity-critical{background:var(--error)}.security-event-detail{padding:20px}.security-event-detail-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:16px}.security-event-detail h2,.security-event-detail p{margin:0 0 8px}.security-event-detail dl,.security-event-detail-header p{color:var(--text-secondary)}.security-severity{background:var(--bg-primary);border-radius:999px;font-size:13px;padding:4px 10px;text-transform:capitalize}.security-event-detail dl{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin:16px 0}.security-event-detail dt{color:var(--text-primary);font-weight:700}.security-event-detail dd{margin:4px 0 0}@media (max-width:768px){.page-header,.preference-row,.push-banner,.settings-panel-header{align-items:stretch;flex-direction:column}.quiet-hours-grid,.security-event-detail dl,.security-events-layout{grid-template-columns:1fr}.header-actions{flex-direction:column;width:100%}}.bot-session-keys-panel{grid-gap:18px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:grid;gap:18px;padding:20px}.bot-key-actions,.bot-key-card-main,.bot-key-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.bot-key-create-form h4,.bot-key-header h3,.bot-key-header p{margin:0}.bot-key-card-main span,.bot-key-dates dd,.bot-key-dates dt,.bot-key-header p{color:var(--text-secondary);font-size:.9rem}.bot-key-card,.bot-key-form,.bot-key-list,.bot-key-secret{grid-gap:12px;display:grid;gap:12px}.bot-key-card,.bot-key-create-form,.bot-key-secret{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:14px}.bot-key-card.is-revoked{opacity:.72}.bot-key-card-main span,.bot-key-card-main strong{display:block}.bot-key-meta{grid-gap:6px;align-items:flex-end;display:grid;gap:6px;justify-items:end;white-space:nowrap}.bot-key-dates{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:0}.bot-key-dates div{grid-gap:2px;display:grid;gap:2px}.bot-key-dates dd{margin:0}.bot-key-form label{grid-gap:6px;color:var(--text-secondary);display:grid;font-size:.82rem;font-weight:600;gap:6px}.bot-key-form select{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);padding:10px 12px}.bot-key-permission-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.bot-key-permission-option{align-items:center;border:1px solid var(--border-color);border-radius:var(--radius-sm);display:flex!important;gap:8px!important;padding:8px 10px}.bot-key-permission-option input{width:auto}.bot-key-secret textarea{min-height:78px;resize:vertical;word-break:break-all}@media (max-width:640px){.bot-key-actions,.bot-key-card-main,.bot-key-header{align-items:stretch;flex-direction:column}.bot-key-meta{align-items:flex-start;justify-items:start}}.mobile-download-page{margin:0 auto;max-width:900px;padding:2rem}.mobile-download-page .page-header{margin-bottom:2rem;text-align:center}.mobile-download-page .page-header h1{color:var(--text-primary);font-size:2rem;margin-bottom:.5rem}.mobile-download-page .subtitle{color:var(--text-secondary);font-size:1.1rem}.loading-state{gap:1rem;min-height:400px}.spinner{border-top-color:var(--primary-color)}.spinner-small{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:16px;width:16px}.expo-status-card{background:#fff;background:var(--card-bg,#fff);border:2px solid #e0e0e0;border:2px solid var(--border-color,#e0e0e0);border-radius:12px;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem;padding:1rem 1.25rem;position:relative}.expo-status-card.online{background:linear-gradient(135deg,#22c55e0d,#0000);border-color:#22c55e}.expo-status-card.offline{background:linear-gradient(135deg,#ef44440d,#0000);border-color:#ef4444}.expo-status-card.degraded{background:linear-gradient(135deg,#f59e0b0d,#0000);border-color:#f59e0b}.expo-status-card.checking,.expo-status-card.unknown{border-color:var(--border-color)}.expo-status-header{align-items:center;display:flex;font-size:1rem;font-weight:600;gap:.5rem}.expo-status-icon{font-size:1.25rem}.expo-status-title{color:var(--text-primary)}.expo-status-details{display:flex;flex-wrap:wrap;gap:1rem 2rem}.expo-status-row{align-items:center;display:flex;font-size:.9rem;gap:.5rem}.expo-status-label{color:var(--text-secondary)}.expo-status-value{color:var(--text-primary);font-weight:500}.expo-status-value.online{color:#22c55e}.expo-status-value.offline{color:#ef4444}.expo-status-value.degraded{color:#f59e0b}.expo-status-refresh{background:#0000;border:none;cursor:pointer;font-size:1.1rem;opacity:.6;padding:.25rem;position:absolute;right:.75rem;top:.75rem;transition:opacity .2s,transform .2s}.expo-status-refresh:hover{opacity:1;transform:rotate(90deg)}.platform-selector{background:#fff;background:var(--card-bg,#fff);border:2px solid #e0e0e0;border:2px solid var(--border-color,#e0e0e0);border-radius:16px;margin-bottom:2rem;padding:1.5rem 2rem 2rem;text-align:center}.platform-selector-title{color:var(--text-primary);font-size:1.25rem;font-weight:600;letter-spacing:1px;margin:0 0 1.25rem;text-transform:uppercase}.platform-tabs{background:#f0f0f0;background:var(--bg-secondary,#f0f0f0);border-radius:16px;box-shadow:inset 0 2px 4px #0000001a;gap:0;margin-left:auto;margin-right:auto;max-width:500px;padding:6px}.platform-tabs,.tab-btn{display:flex;justify-content:center}.tab-btn{align-items:center;background:#0000;border:none;border-radius:12px;color:#666;color:var(--text-secondary,#666);cursor:pointer;flex:1 1;flex-direction:column;font-size:1.1rem;font-weight:600;gap:.5rem;min-width:200px;padding:1.25rem 2.5rem;position:relative;transition:all .25s ease}.tab-btn:hover:not(.active){background:#ffffff80;color:var(--text-primary)}.tab-btn.active{background:#fff;box-shadow:0 2px 8px #00000026;color:#007bff;color:var(--primary-color,#007bff)}.tab-btn.active .tab-icon{transform:scale(1.1)}.tab-icon{font-size:2rem;transition:transform .25s ease}.tab-label{font-size:.85rem;letter-spacing:.5px;text-transform:uppercase}.platform-content{background:var(--card-bg);border:1px solid var(--border-color);border-radius:16px;margin-bottom:2rem;padding:2rem}.install-step{border-bottom:1px solid var(--border-color);margin-bottom:2rem;padding-bottom:2rem}.install-step:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.step-header{align-items:center;display:flex;gap:1rem;margin-bottom:1rem}.step-number{background:var(--primary-color);display:flex;font-size:1.1rem;height:36px;width:36px}.step-header h3{color:var(--text-primary);font-size:1.3rem;margin:0}.step-description{color:var(--text-secondary);line-height:1.6;margin-bottom:1.5rem}.qr-code-container{background:var(--bg-secondary);border-radius:12px;margin:1.5rem 0;padding:1.5rem;text-align:center}.qr-title{color:var(--text-primary);font-size:1.1rem;margin:0 0 .5rem}.qr-description{color:var(--text-secondary);font-size:.9rem;margin-bottom:1rem}.qr-image-wrapper{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:inline-block;padding:1rem}.qr-image{display:block;height:200px;width:200px}.qr-placeholder{align-items:center;background:var(--bg-tertiary);border-radius:12px;display:flex;flex-direction:column;gap:.5rem;height:200px;justify-content:center;margin:0 auto;width:200px}.qr-placeholder.loading{color:var(--text-secondary)}.qr-placeholder.error{color:var(--error-color)}.error-icon{font-size:2rem}.retry-btn{background:var(--primary-color);border:none;border-radius:6px;color:#fff;cursor:pointer;margin-top:.5rem;padding:.5rem 1rem}.retry-btn:hover{background:var(--primary-hover)}.qr-actions{display:flex;gap:.5rem;justify-content:center;margin-top:1rem}.qr-url-display{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;margin:1rem 0;padding:.75rem 1rem;text-align:center;word-break:break-all}.qr-url-display code{color:var(--primary-color);font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:.85rem}.qr-action-btn{background:var(--card-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:.85rem;padding:.5rem 1rem;transition:all .2s}.qr-action-btn:hover{background:var(--hover-bg);border-color:var(--primary-color)}.qr-action-btn.copy:hover{background:var(--success-bg);border-color:var(--success-color)}.qr-fallback{margin-top:1rem}.fallback-link{color:var(--primary-color);text-decoration:none}.fallback-link:hover{text-decoration:underline}.mobile-download-link{align-items:center;background:var(--primary-color);border-radius:12px;color:#fff;display:flex;font-size:1.1rem;font-weight:500;gap:.75rem;justify-content:center;margin:1.5rem 0;padding:1rem 2rem;text-decoration:none;transition:all .2s}.mobile-download-link:hover{background:var(--primary-hover);box-shadow:0 4px 12px rgba(var(--primary-rgb),.3);transform:translateY(-2px)}.mobile-download-link.expo-link{background:#4630eb}.mobile-download-link.expo-link:hover{background:#3820d0}.install-instructions{background:var(--bg-secondary);border-radius:12px;margin-top:1.5rem;padding:1.5rem}.install-instructions h4{color:var(--text-primary);margin:0 0 1rem}.install-instructions ol{color:var(--text-secondary);margin:0;padding-left:1.5rem}.install-instructions li{line-height:1.5;margin-bottom:.75rem}.install-instructions li:last-child{margin-bottom:0}.install-instructions li strong{color:var(--text-primary);display:block;margin-bottom:.25rem}.install-instructions li p{font-size:.9rem;margin:0}.info-notice,.warning-notice{border-radius:8px;display:flex;font-size:.9rem;gap:.75rem;line-height:1.5;margin-top:1.5rem;padding:1rem}.info-notice{background:#e7f3ff;background:var(--info-bg,#e7f3ff);border:1px solid #b3d9ff;border:1px solid var(--info-border,#b3d9ff);color:#06c;color:var(--info-text,#06c)}.notice-icon{flex-shrink:0;font-size:1.25rem}.version-info{background:var(--bg-secondary);border-radius:8px;display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:1.5rem;padding:1rem}.version-item{display:flex;flex-direction:column;gap:.25rem}.version-label{color:var(--text-tertiary);font-size:.8rem;letter-spacing:.5px;text-transform:uppercase}.version-value{color:var(--text-primary);font-weight:600}.mobile-download-section{margin:1.5rem 0;text-align:center}.download-btn{align-items:center;border:none;border-radius:12px;cursor:pointer;display:inline-flex;font-size:1.1rem;font-weight:600;gap:.75rem;justify-content:center;padding:1rem 2rem;transition:all .2s}.download-btn.android{background:#3ddc84;color:#fff}.download-btn.android:hover:not(:disabled){background:#32c173;box-shadow:0 4px 12px #3ddc844d;transform:translateY(-2px)}.download-btn:disabled{cursor:not-allowed;opacity:.7;transform:none}.download-icon{font-size:1.25rem}.download-error{color:var(--error-color);font-size:.9rem;margin-top:1rem}.security-notice{background:#fff8e6;background:var(--warning-bg,#fff8e6);border:1px solid #ffe0b3;border:1px solid var(--warning-border,#ffe0b3);border-radius:12px;margin-top:1.5rem;padding:1.25rem}.security-header{align-items:center;color:#960;color:var(--warning-text,#960);display:flex;font-weight:600;gap:.5rem;margin-bottom:.75rem}.security-icon{font-size:1.25rem}.security-notice p{color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin:0 0 1rem}.sha256-fingerprint{background:var(--bg-primary);border-radius:6px;font-size:.85rem;padding:.75rem}.sha-label{color:var(--text-tertiary);display:block;font-size:.75rem;margin-bottom:.25rem}.sha-value{color:var(--text-secondary);font-family:monospace;word-break:break-all}.troubleshooting-section{background:var(--card-bg);border:1px solid var(--border-color);border-radius:16px;margin-bottom:2rem;padding:2rem}.troubleshooting-section h3{color:var(--text-primary);margin:0 0 1.5rem}.issues-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.issue-card{background:var(--bg-secondary);border-radius:8px;padding:1rem}.issue-problem{color:var(--error-color);font-size:.95rem;font-weight:600;margin-bottom:.5rem}.issue-solution{color:var(--text-secondary);font-size:.9rem;line-height:1.5}.download-footer{color:var(--text-tertiary);font-size:.9rem;text-align:center}.download-footer a{color:var(--primary-color);text-decoration:none}.download-footer a:hover{text-decoration:underline}@media (max-width:768px){.mobile-download-page{padding:1rem}.mobile-download-page .page-header h1{font-size:1.5rem}.platform-tabs{flex-direction:row;max-width:100%;padding:4px}.tab-btn{flex:1 1;min-width:0;min-width:auto;padding:1rem 1.25rem}.tab-icon{font-size:1.75rem}.tab-label{font-size:.75rem}.platform-content{padding:1.5rem}.qr-image{height:180px;width:180px}.version-info{flex-direction:column;gap:.75rem}.issues-grid{grid-template-columns:1fr}}@media (prefers-color-scheme:dark){.platform-tabs{background:#2a2a2a;background:var(--bg-secondary,#2a2a2a);box-shadow:inset 0 2px 4px #0000004d}.tab-btn:hover:not(.active){background:#ffffff1a}.tab-btn.active{background:#3a3a3a;background:var(--card-bg,#3a3a3a);box-shadow:0 2px 8px #0000004d}.qr-image-wrapper{background:#fff}.info-notice{background:#3b82f61a;border-color:#3b82f64d;color:#60a5fa}.security-notice{background:#fbbf241a;border-color:#fbbf244d}.security-header{color:#fbbf24}}.booking-detail,.bookings-page,.payments-page,.profile-page{margin:0 auto;max-width:1100px}.page-header h1{margin-bottom:4px}.page-header .subtitle{margin-bottom:24px}.profile-content{display:flex;flex-direction:column;gap:24px}.profile-tabs{border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.profile-tab{-webkit-appearance:none;appearance:none;background:#0000;border:0;border-bottom:3px solid #0000;color:var(--text-secondary);cursor:pointer;font:inherit;font-weight:600;padding:12px 14px 10px}.profile-tab.active,.profile-tab:hover{color:var(--text-primary)}.profile-tab.active{border-bottom-color:var(--primary)}.profile-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:32px;text-align:center}.profile-avatar{align-items:center;background:var(--primary);border-radius:50%;color:#fff;display:flex;font-size:2rem;font-weight:600;height:80px;justify-content:center;margin:0 auto 16px;text-transform:uppercase;width:80px}.profile-card h2{margin:0 0 4px}.role-label{color:var(--text-secondary);text-transform:capitalize}.profile-form,.profile-panel{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px}.profile-panel__header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.profile-panel__header h3{margin:0 0 4px}.profile-panel__header p{color:var(--text-secondary);margin:0}.login-methods-list{display:flex;flex-direction:column;gap:12px}.login-method-card{align-items:flex-start;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;gap:16px;justify-content:space-between;padding:16px}.login-method-card strong{display:block;margin-bottom:4px}.login-method-card p{color:var(--text-primary);margin:0 0 6px}.login-method-meta{color:var(--text-secondary);font-size:.85rem}.login-method-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.two-sv-panel{border-top:1px solid var(--border-color);margin-top:24px;padding-top:24px}.two-sv-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:16px}.two-sv-header h4{margin:0 0 4px}.two-sv-header p{color:var(--text-secondary);font-size:.9rem;margin:0}.two-sv-status{border-radius:16px;font-size:.78rem;font-weight:700;padding:4px 10px;white-space:nowrap}.two-sv-status.is-on{background:#4caf501a;color:var(--success)}.two-sv-status.is-off{background:#ff98001a;color:var(--warning)}.two-sv-method-list{display:flex;flex-direction:column;gap:10px}.two-sv-method-card{align-items:flex-start;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;gap:16px;justify-content:space-between;padding:14px}.two-sv-method-card small,.two-sv-method-card span,.two-sv-method-card strong{display:block}.two-sv-method-card small,.two-sv-method-card span{color:var(--text-secondary);font-size:.85rem}.two-sv-summary{align-items:center;color:var(--text-secondary);display:flex;justify-content:space-between;margin-top:14px}.two-sv-summary strong{color:var(--text-primary);font-size:1.1rem}.two-sv-enable-login{grid-gap:14px;align-items:center;background:#1976d214;border:1px solid #1976d23d;border-radius:var(--radius-md);display:grid;gap:14px;grid-template-columns:minmax(0,1fr) auto;margin-top:16px;padding:14px}.two-sv-enable-login strong{color:var(--text-primary);display:block;margin-bottom:4px}.two-sv-enable-login p{color:var(--text-secondary);font-size:.9rem;margin:0}.two-sv-disable-form,.two-sv-enrollment{margin-top:16px}.two-sv-qr{align-items:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;justify-content:center;margin-bottom:16px;padding:16px}.two-sv-qr img{background:#fff;border-radius:4px;display:block;height:180px;width:180px}.two-sv-url{min-height:82px;resize:vertical}.two-sv-inline-form{grid-gap:12px;align-items:end;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto}.two-sv-inline-form .form-group{margin-bottom:0}.two-sv-backup-codes{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));margin-top:16px}.two-sv-backup-codes code{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);padding:8px 10px;text-align:center}.two-sv-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.two-sv-disable-form label{display:block;font-weight:500;margin-bottom:8px}.privacy-export{display:flex;flex-direction:column;gap:12px}.privacy-export h4{margin:0}.privacy-token-list{display:flex;flex-direction:column;gap:10px}.privacy-token-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:4px;padding:12px}.privacy-token-card span{color:var(--text-secondary);font-size:.9rem}.privacy-export details{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:12px}.privacy-export summary{cursor:pointer;font-weight:600}.privacy-export pre{font-size:.85rem;margin:12px 0 0;max-height:320px;overflow:auto;white-space:pre-wrap}.form-group{margin-bottom:20px}.form-group label{margin-bottom:8px}.form-input{padding:12px 16px;width:100%}.form-input:focus{border-color:var(--primary);outline:none}.form-input:disabled{background:var(--bg-secondary);color:var(--text-disabled)}.form-hint{font-size:.8rem}.message{border-radius:var(--radius-md);margin-bottom:16px;padding:12px 16px}.message.success{background:#4caf501a;color:var(--success)}.message.error{background:#f443361a;color:var(--error)}.mobile-app-card{background:linear-gradient(135deg,var(--bg-card) 0,#1976d20d 100%);border:1px solid var(--primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:24px;padding:24px}.mobile-app-header{align-items:center;display:flex;gap:12px;margin-bottom:12px}.mobile-app-icon{font-size:2rem}.mobile-app-header h3{color:var(--text-primary);font-size:1.25rem;margin:0}.mobile-app-description{color:var(--text-secondary);line-height:1.5;margin-bottom:20px}.mobile-app-buttons{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.mobile-download-btn{align-items:center;display:flex;font-size:.95rem;gap:8px;padding:12px 20px}.mobile-download-btn .btn-icon{font-size:1.2rem}.mobile-download-btn:disabled{cursor:not-allowed;opacity:.6}.mobile-app-hint{color:var(--text-secondary);margin:0}.mobile-app-hint small{font-size:.8rem}.danger-zone{background:var(--bg-card);border:1px solid var(--error);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px}.danger-zone h3{color:var(--error);margin-bottom:8px}.danger-zone p{color:var(--text-secondary);margin-bottom:16px}.btn-danger:hover{background:#d32f2f}.organisations-section{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-top:24px;padding:24px}.organisations-section h3{font-size:1.25rem;margin-bottom:16px;margin-top:0}.organisations-list{display:flex;flex-direction:column;gap:16px}.organisation-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:16px;transition:box-shadow .2s}.organisation-card:hover{box-shadow:0 2px 8px #0000001a}.org-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.org-header h4{font-size:1.1rem;margin:0}.role-badge{border-radius:12px;font-size:.85rem;font-weight:600;padding:4px 12px}.role-badge.admin{color:#7b1fa2}.role-badge.teacher{color:#1976d2}.role-badge.student{color:#388e3c}.org-details{display:flex;flex-direction:column;gap:8px}.detail-row{align-items:center;display:flex;font-size:.9rem;justify-content:space-between}.detail-label{font-weight:500}.status-badge{border-radius:8px;font-size:.8rem;padding:2px 8px}.status-badge.badge-success{background:#4caf501a;color:#2e7d32}.status-badge.badge-warning{background:#ff98001a;color:#e65100}.status-badge.badge-gray{background:#9e9e9e1a;color:#616161}.status-badge.badge-danger{background:#f443361a;color:#c62828}.onboarding-warning{background:#ff98001a;border-left:3px solid #ff9800;border-radius:4px;color:#e65100;font-size:.85rem;margin-top:8px;padding:8px}.bookings-list,.invoices-list{display:flex;flex-direction:column;gap:12px}.booking-card,.invoice-card{align-items:center;background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:inherit;display:flex;justify-content:space-between;padding:20px;text-decoration:none;transition:var(--transition)}.booking-card:hover{box-shadow:var(--shadow-md);text-decoration:none}.booking-left h3,.invoice-left h3{margin:0 0 4px}.booking-left p,.invoice-left p{color:var(--text-secondary);font-size:.9rem;margin:0}.location{font-size:.85rem}.status-badge{padding:4px 12px}.status-badge.confirmed,.status-badge.paid{background:#4caf501a;color:var(--success)}.status-badge.pending{background:#ff98001a;color:var(--warning)}.status-badge.waitlist{background:#2196f31a;color:var(--info)}.back-link{margin-bottom:24px}.booking-card-detail{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:32px}.booking-card-detail h1{margin:16px 0}.booking-info{margin-bottom:24px}.booking-info p{color:var(--text-secondary);margin:8px 0}.booking-actions{gap:12px}.payment-summary{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:24px}.summary-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px;text-align:center}.summary-value{color:var(--success);display:block;font-size:2rem;font-weight:700}.summary-card.pending .summary-value{color:var(--warning)}.invoice-left{flex:1 1}.invoice-id{color:var(--text-secondary);font-size:.8rem}.invoice-right{align-items:center;display:flex;gap:16px}.invoice-amount{font-size:1.25rem;font-weight:600}.empty-state{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:48px 24px}.empty-state h3{margin-bottom:8px}.empty-state p{color:var(--text-secondary);margin-bottom:24px}.btn-sm{font-size:.85rem;padding:8px 16px}.loading-container{align-items:center;display:flex;justify-content:center;min-height:200px}.spinner{animation:spin .8s linear infinite;border:3px solid var(--border-color);border-top-color:var(--primary)}@media (max-width:640px){.login-method-card,.profile-panel__header,.two-sv-header,.two-sv-method-card{align-items:stretch;flex-direction:column}.two-sv-enable-login,.two-sv-inline-form{grid-template-columns:1fr}.booking-card,.invoice-card{align-items:flex-start;flex-direction:column;gap:16px}.invoice-right{justify-content:space-between;width:100%}}.bookings-page-container{overflow-x:auto;padding:20px}.bookings-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(8,minmax(200px,1fr));min-width:1600px}.day-column{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;flex-direction:column;height:100%;min-height:500px}.day-column.today{background:rgba(var(--primary-rgb),.05);border:2px solid var(--primary)}.day-column.future{background:var(--bg-secondary);border-style:dashed}.column-header{background:#00000005;border-bottom:1px solid var(--border-color);padding:16px;text-align:center}.column-header h3{font-size:1rem;font-weight:600;margin:0}.today-badge{background:var(--primary);border-radius:12px;color:#fff;display:inline-block;font-size:.75rem;margin-top:4px;padding:2px 8px}.bookings-list{flex:1 1;padding:12px}.booking-card{border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:0 2px 4px #0000000d;padding:12px;transition:transform .2s}.booking-card:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.booking-card.weekly{border-left:4px solid var(--secondary)}.booking-card.one-off{border-left:4px solid var(--accent)}.booking-time{color:var(--text-secondary);font-size:.85rem;margin-bottom:4px}.booking-title{margin:0 0 4px}.booking-room{align-items:center;color:var(--text-secondary);display:flex;font-size:.85rem;gap:4px}.booking-room:before{content:"📍";font-size:.8rem}.booking-date{color:var(--primary);font-size:.9rem;font-weight:600;margin-bottom:4px}.badge{border-radius:4px;display:inline-block;font-size:.7rem;font-weight:600;margin-top:8px;padding:2px 6px;text-transform:uppercase}.badge.weekly{background:rgba(var(--secondary-rgb),.1);color:var(--secondary)}.badge.one-off{background:rgba(var(--accent-rgb),.1);color:var(--accent)}.no-bookings{color:var(--text-tertiary);font-size:.9rem;font-style:italic;margin-top:20px}.book-room-container{margin:0 auto;max-width:800px;padding:20px}.booking-form{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:32px}.form-row{margin-bottom:24px}.form-row label{color:var(--text-primary);display:block;font-weight:600;margin-bottom:8px}.form-row input,.form-row select,.form-row textarea{border:1px solid var(--border-color);border-radius:var(--radius-sm);font-family:inherit;font-size:1rem;padding:12px;width:100%}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1);outline:none}.form-hint{color:var(--text-secondary);display:block;font-size:.85rem;font-style:italic;margin-top:4px}.form-actions{background:rgba(var(--primary-rgb),.05);border:1px solid rgba(var(--primary-rgb),.2);border-radius:var(--radius-md);margin:24px 0;padding:20px}.availability-result{margin-top:16px;padding:12px}.availability-result.available{background:#22c55e1a;border:1px solid #22c55e4d;color:#166534}.availability-result.unavailable{background:#ef44441a;border:1px solid #ef44444d;color:#991b1b}.conflicts-list{font-size:.9rem;font-weight:400;margin-top:12px}.conflicts-list ul{margin:8px 0 0;padding-left:20px}.conflicts-list li{margin:4px 0}.form-submit{margin-top:32px;text-align:center}.approval-notice{background:#3b82f61a;border:1px solid #3b82f64d;border-radius:var(--radius-sm);color:#1e40af;font-size:.9rem;margin-top:16px;padding:12px}.alert{border-radius:var(--radius-md);font-weight:500;margin-bottom:24px;padding:16px}.alert-success{background:#22c55e1a;border:1px solid #22c55e4d;color:#166534}.alert-error{background:#ef44441a;border:1px solid #ef44444d;color:#991b1b}.alert-warning{background:#f59e0b1a;border:1px solid #f59e0b4d;color:#92400e}.btn{border-radius:var(--radius-sm);padding:12px 24px}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--secondary);color:#fff}.btn-secondary:hover:not(:disabled){opacity:.9}.availability-checking{align-items:center;background:#3b82f61a;border:1px solid #3b82f64d;border-radius:var(--radius-sm);color:#1e40af;display:flex;font-weight:500;gap:10px;padding:12px}.spinner{border:2px solid #3b82f64d;height:20px;width:20px}.availability-result{align-items:center;border-radius:var(--radius-sm);display:flex;flex-wrap:wrap;font-weight:600;gap:8px;margin-bottom:24px;margin-top:0;padding:16px}.availability-icon{font-size:1.25rem}.availability-text{flex:1 1}.simulated-note{font-size:.85rem;font-weight:400;opacity:.7}.alert-info{background:#3b82f61a;border:1px solid #3b82f64d;color:#1e40af}.my-bookings-section{margin-bottom:32px}.my-bookings-section .section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.my-bookings-section .section-header h2{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0}.toggle-instances{align-items:center;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.875rem;gap:8px}.toggle-instances input[type=checkbox]{cursor:pointer;height:16px;width:16px}.my-bookings-section h2{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:16px}.bookings-loading{align-items:center;display:flex;gap:12px;padding:20px}.bookings-loading,.no-bookings{background:var(--bg-card);border-radius:var(--radius-md);color:var(--text-secondary)}.no-bookings{padding:24px;text-align:center}.bookings-list{gap:12px}.booking-card{background:var(--bg-card);border-left:4px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:16px}.booking-card.booking-approved{border-left-color:#22c55e}.booking-card.booking-pending{border-left-color:#f59e0b}.booking-card.booking-rejected{border-left-color:#ef4444}.booking-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.booking-title{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0}.status-badge{white-space:nowrap}.status-approved{background:#22c55e26;color:#166534}.status-pending{background:#f59e0b26;color:#92400e}.status-rejected{background:#ef444426;color:#991b1b}.status-delete-pending{background:#9333ea26;color:#6b21a8}.booking-locked-notice{align-items:center;border-radius:var(--radius-sm);display:flex;font-size:.85rem;gap:8px;margin-top:12px;padding:10px}.booking-details{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.booking-detail{display:flex;font-size:.875rem;gap:8px}.detail-label{color:var(--text-secondary)}.detail-value{color:var(--text-primary);font-weight:500}.booking-rejection{background:#ef44441a;border-radius:var(--radius-sm);color:#991b1b;font-size:.85rem;margin-top:12px;padding:10px}.booking-actions{border-top:1px solid var(--border-color);display:flex;gap:8px;margin-top:12px;padding-top:12px}.booking-actions .btn,.btn-sm{font-size:.8rem;padding:6px 12px}.btn-outline:hover{background:var(--bg-hover)}.modal-overlay{background:#00000080;z-index:10000}.modal{background:var(--bg-card);box-shadow:0 20px 60px #0000004d;overflow-y:auto}.close-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:1.5rem;line-height:1;padding:4px}.close-btn:hover{color:var(--text-primary)}.modal-body .form-group{margin-bottom:16px}.modal-body .form-group label{color:var(--text-primary);display:block;font-weight:500;margin-bottom:6px}.modal-body .form-input{border:1px solid var(--border-color);border-radius:var(--radius-sm);font-family:inherit;font-size:.95rem;padding:10px 12px;width:100%}.modal-body .form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1);outline:none}.section-divider{border:none;border-top:1px solid var(--border-color);margin:32px 0}.climate-control-section{margin-bottom:32px}.climate-control-section h2{color:var(--text-primary);font-size:1.25rem;margin-bottom:16px}.climate-widget{background:var(--bg-card);border:2px solid #4caf50;border-radius:var(--radius-lg);box-shadow:0 2px 8px #4caf501a;padding:24px}.climate-widget-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.climate-widget-header h3{color:var(--text-primary);font-size:1.1rem;margin:0}.climate-loading{align-items:center;color:var(--text-secondary);display:flex;gap:12px;padding:20px 0}.climate-controls{display:flex;flex-direction:column;gap:24px}.temperature-control label{color:var(--text-primary);display:block;font-size:1rem;font-weight:600;margin-bottom:12px}.temperature-slider{background:linear-gradient(90deg,#2196f3,#4caf50,#ff9800,#f44336);cursor:pointer}.temperature-slider::-webkit-slider-thumb{border:2px solid #fff}.temperature-slider::-moz-range-thumb{border:2px solid #fff}.temp-range{color:var(--text-secondary);margin-top:8px}.occupancy-control label{color:var(--text-primary);margin-bottom:12px}.toggle-buttons{gap:12px}.btn-success{background:#4caf50;border:1px solid #4caf50}.btn-success:hover{background:#43a047}.btn-danger-outline{background:#ffebee;border:1px solid #ef5350;color:#c62828}.btn-danger-outline:hover{background:#ffcdd2}.climate-info{border-top:1px solid var(--border-color);color:var(--text-secondary);padding-top:16px}.climate-unavailable{background:var(--bg-secondary);border-radius:var(--radius-sm);color:var(--text-secondary);padding:20px;text-align:center}.recurring-info.recurring-series{background-color:#ecfdf5;border-left-color:#10b981}.recurring-info.recurring-series .recurring-badge{color:#059669}.packet-stats{grid-gap:1.25rem;display:grid;gap:1.25rem}.packet-stats-actions,.packet-stats-header,.packet-stats-legend,.packet-stats-metrics,.packet-stats-panel-header,.packet-stats-status{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.packet-stats-header,.packet-stats-panel-header{justify-content:space-between}.packet-stats-header h2,.packet-stats-panel h3{color:#111827;margin:0}.packet-stats-header p,.packet-stats-muted,.packet-stats-panel p{color:#64748b;margin:.25rem 0 0}.packet-stats-panel{grid-gap:1rem;background:#fff;border:1px solid #d7dce2;border-radius:8px;display:grid;gap:1rem;padding:1rem}.packet-stats-live{align-items:center;color:#475569;display:inline-flex;font-weight:700;gap:.45rem}.packet-stats-live i{background:#ef4444;border-radius:50%;height:.7rem;width:.7rem}.packet-stats-live.connected i{animation:packet-stats-pulse 1.6s ease-in-out infinite;background:#10b981}.packet-stats-segmented{background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;display:inline-flex;overflow:hidden}.packet-stats-segmented button{background:#0000;border:0;border-left:1px solid #cbd5e1;color:#475569;cursor:pointer;font:inherit;font-weight:700;min-width:3rem;padding:.55rem .8rem}.packet-stats-segmented button:first-child{border-left:0}.packet-stats-segmented button.active{background:#0f172a;color:#fff}.packet-stats-table-wrap{overflow-x:auto}.packet-stats-table{border-collapse:collapse;min-width:620px;width:100%}.packet-stats-table td,.packet-stats-table th{border-bottom:1px solid #e2e8f0;padding:.75rem;text-align:left;vertical-align:middle}.packet-stats-table th{color:#475569;font-size:.85rem;text-transform:uppercase}.packet-stats-table td:first-child,.packet-stats-table td:nth-child(3){width:6rem}.packet-stats-table tr.selected{background:#f0fdfa}.packet-stats-table tfoot td{color:#475569;font-weight:700}.packet-stats-ip-button{background:#0000;border:0;color:#0f766e;cursor:pointer;font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:700;padding:0}.packet-stats-bar-track{background:#e2e8f0;border-radius:999px;height:.75rem;overflow:hidden}.packet-stats-bar{border-radius:inherit;display:block;height:100%;transition:width .25s ease}.packet-stats-chart,.packet-stats-sparkline{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:block;width:100%}.packet-stats-chart{height:260px}.packet-stats-sparkline{height:120px}.packet-stats-axis{stroke:#94a3b8;stroke-width:1;vector-effect:non-scaling-stroke}.packet-stats-chart-label{fill:#64748b;font-size:13px}.packet-stats-legend{color:#475569;font-size:.9rem}.packet-stats-legend span{align-items:center;display:inline-flex;gap:.35rem}.packet-stats-legend i{border-radius:50%;height:.75rem;width:.75rem}.packet-stats-status{background:#f8fafc;border:1px solid #d7dce2;border-radius:8px;color:#334155;font-weight:700;padding:.85rem 1rem}.packet-stats-metrics span:not(:last-child):after,.packet-stats-status span:not(:last-child):after{color:#94a3b8;content:"|";margin-left:.75rem}.packet-stats-metrics{color:#334155;font-weight:700}.packet-stats-alert{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;padding:.85rem 1rem}.packet-stats-empty{color:#64748b;padding:1rem;text-align:center}@keyframes packet-stats-pulse{0%,to{box-shadow:0 0 0 0 #10b98159}50%{box-shadow:0 0 0 6px #10b98100}}@media (max-width:720px){.packet-stats-header,.packet-stats-panel-header{align-items:flex-start;flex-direction:column}.packet-stats-actions{width:100%}.packet-stats-chart{height:210px}}.network-page{grid-gap:1.5rem;display:grid;gap:1.5rem}.network-tabs{border-bottom:1px solid #d7dce2;border-bottom:1px solid var(--border-color,#d7dce2);display:flex;flex-wrap:wrap;gap:8px}.network-tab{-webkit-appearance:none;appearance:none;background:#0000;border:0;border-bottom:3px solid #0000;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;font:inherit;font-weight:600;padding:12px 14px 10px}.network-tab.active,.network-tab:hover{color:#111827;color:var(--text-primary,#111827)}.network-tab.active{border-bottom-color:#2563eb;border-bottom-color:var(--primary,#2563eb)}.network-section-header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.network-section-header h1{font-size:2rem;margin:0}.network-section-header p{color:#6b7280;color:var(--text-secondary,#6b7280);margin:.35rem 0 0}.network-header-actions,.network-inline-actions,.network-system-meta,.network-toggle-row,.network-toolbar,.network-widget-metrics,.network-widget-status-row{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.network-toolbar{background:#fff;background:var(--surface,#fff);border:1px solid #d7dce2;border:1px solid var(--border,#d7dce2);border-radius:16px;padding:1rem}.network-debug-panel,.network-trigger-panel,.network-trigger-result{grid-gap:.75rem;display:grid;gap:.75rem}.network-debug-panel{background:#f8fafc;border:1px solid #d7dce2;border:1px solid var(--border,#d7dce2);border-radius:16px;padding:1rem}.network-debug-header{align-items:baseline;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between}.network-debug-block span,.network-debug-header span{color:#6b7280;color:var(--text-secondary,#6b7280)}.network-debug-block{grid-gap:.4rem;display:grid;gap:.4rem}.network-debug-block pre{background:#0f172a;border-radius:12px;color:#e2e8f0;font-size:.85rem;line-height:1.45;margin:0;overflow-x:auto;padding:.9rem;white-space:pre-wrap;word-break:break-word}.network-trigger-panel.compact{background:#fff;background:var(--surface,#fff);border:1px solid #d7dce2;border:1px solid var(--border,#d7dce2);border-radius:16px;padding:1rem}.network-trigger-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.network-debug-toggle{align-items:center;color:#0f172a;display:inline-flex;font-weight:600;gap:.65rem;width:-webkit-fit-content;width:fit-content}.network-managed-interface-card,.network-managed-interface-list{grid-gap:1rem;display:grid;gap:1rem}.network-managed-interface-card{background:#0f172a0a;border:1px solid #94a3b838;border-radius:1rem;padding:1rem}.network-managed-interface-header{align-items:center;display:flex;gap:1rem;justify-content:space-between}.network-managed-interface-header strong{display:block}.network-managed-interface-header span{color:#64748b;font-size:.9rem}.network-managed-interface-form{grid-gap:1rem;border-top:1px solid #94a3b833;display:grid;gap:1rem;margin-top:1rem;padding-top:1rem}.network-add-interface-panel{grid-gap:1.25rem;display:grid;gap:1.25rem}.network-add-interface-type-row{grid-gap:.5rem;display:grid;gap:.5rem}.network-add-interface-type-label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.85rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.network-add-interface-type-select{background:#fff;border:2px solid #d7dce2;border:2px solid var(--border,#d7dce2);border-radius:14px;cursor:pointer;font-size:1rem;font-weight:500;padding:.9rem 1rem;transition:border-color .2s ease}.network-add-interface-type-select:focus{border-color:#0f172a;outline:none}.network-add-interface-fields{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}@media (max-width:640px){.network-add-interface-fields{grid-template-columns:1fr}}.network-add-interface-guidance{background:#ea580c0f;border:1px solid #ea580c40;border-radius:12px;color:#9a3412;font-size:.875rem;grid-column:1/-1;line-height:1.5;padding:.85rem 1rem}.network-add-interface-guidance p{margin:0}.network-add-interface-guidance code{background:#ea580c1f;border-radius:4px;font-family:ui-monospace,monospace;font-size:.8rem;padding:0 .25em}.network-callout{background:#3b82f614;border:1px solid #3b82f640;border-radius:14px;color:#1d4ed8;margin-bottom:1rem;padding:.9rem 1rem}.network-supporting-text{color:#6b7280;color:var(--text-secondary,#6b7280);line-height:1.5;margin:0}.network-toggle-row{display:flex;flex-wrap:wrap;gap:1.25rem}.network-toggle-row label{align-items:center;color:#475569;display:inline-flex;font-size:.95rem;gap:.5rem}.network-debug-toggle input{height:1rem;width:1rem}.network-input,.network-notes-field textarea,.network-select{background:#fff;border:1px solid #d7dce2;border:1px solid var(--border,#d7dce2);border-radius:12px;color:inherit;font:inherit;padding:.8rem .95rem;width:100%}.network-input{flex:1 1;min-width:240px}.network-primary-button,.network-primary-link,.network-secondary-button,.network-secondary-link,.network-text-link{align-items:center;border-radius:999px;display:inline-flex;font-weight:600;justify-content:center;padding:.75rem 1rem;text-decoration:none;transition:transform .15s ease,background .2s ease,border-color .2s ease}.network-primary-button,.network-primary-link{background:#0f172a;border:1px solid #0f172a;color:#fff}.network-secondary-button,.network-secondary-link{background:#fff;border:1px solid #cbd5e1;border:1px solid var(--border,#cbd5e1);color:#0f172a}.network-text-link{background:none;border:0;color:#0f172a;padding:0}.network-primary-button:hover,.network-primary-link:hover,.network-secondary-button:hover,.network-secondary-link:hover{transform:translateY(-1px)}.network-primary-button:disabled,.network-secondary-button:disabled{cursor:wait;opacity:.6}.network-detail-grid,.network-panel-grid.two-up,.network-summary-grid,.network-system-grid{grid-gap:1rem;display:grid;gap:1rem}.network-summary-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.network-panel-grid.two-up,.network-system-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.network-panel,.network-summary-card,.network-system-card,.widget-network-summary{background:#fff;background:var(--surface,#fff);border:1px solid #d7dce2;border:1px solid var(--border,#d7dce2);border-radius:20px;box-shadow:0 12px 24px #0f172a0d;padding:1.25rem}.network-panel-span-full{grid-column:1/-1}.network-activity-item.severity-critical,.network-panel.severity-critical,.network-system-card.severity-critical{border-color:#ef4444}.network-activity-item.severity-high,.network-panel.severity-high,.network-system-card.severity-high{border-color:#f97316}.network-panel-header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1rem}.network-panel-header h2,.network-system-card h2{font-size:1.2rem;margin:0}.network-summary-card{grid-gap:.3rem;display:grid;gap:.3rem}.network-summary-card.tone-warning{background:linear-gradient(135deg,#fbbf2426,#fffffff2)}.network-summary-card.tone-critical{background:linear-gradient(135deg,#f8717129,#fffffff2)}.network-activity-item p,.network-activity-item small,.network-detail-block span,.network-detail-grid span,.network-device-cell span,.network-empty-state p,.network-summary-helper,.network-summary-label,.network-system-card p,.network-system-tile p,.network-widget-metrics span,.network-widget-status-row span{color:#6b7280;color:var(--text-secondary,#6b7280)}.network-summary-value{font-size:1.9rem}.network-system-grid.compact{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.network-system-tile{grid-gap:.5rem;border:1px solid #d7dce2;border:1px solid var(--border,#d7dce2);border-radius:16px;display:grid;gap:.5rem;padding:1rem}.network-system-tile>div{align-items:center;display:flex;gap:.75rem;justify-content:space-between}.network-activity-item strong,.network-device-cell a,.network-row-link,.network-system-tile strong{color:#0f172a}.network-table-wrap{overflow-x:auto}.network-table{border-collapse:collapse;width:100%}.network-table td,.network-table th{border-bottom:1px solid #94a3b82e;padding:.85rem .75rem;text-align:left;vertical-align:top}.network-table-row-clickable{cursor:pointer}.network-table-row-clickable.is-critical{background:#fbbf2429}.network-table-row-clickable.needs-critical{background:#c4b5fd33}.network-table-row-clickable.has-problem{background:#f8717124}.network-table-row-clickable:focus-visible,.network-table-row-clickable:hover{background:#0f172a0a;outline:none}.network-table-row-clickable.is-critical:focus-visible,.network-table-row-clickable.is-critical:hover{background:#fbbf243d}.network-table-row-clickable.needs-critical:focus-visible,.network-table-row-clickable.needs-critical:hover{background:#c4b5fd4d}.network-table-row-clickable.has-problem:focus-visible,.network-table-row-clickable.has-problem:hover{background:#f8717138}.network-table th{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}.network-table-sort{align-items:center;background:#0000;border:0;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:.35rem;letter-spacing:inherit;padding:0;text-transform:inherit}.network-table-sort.is-active{color:#0f172a}.network-table-sort:focus-visible{border-radius:6px;outline:2px solid #2563eb59;outline-offset:2px}.network-table-sort-indicator{font-size:.72rem;line-height:1}.network-table-dense td,.network-table-dense th{font-size:.88rem;line-height:1.2;padding:.48rem .55rem}.network-table-dense th{font-size:.72rem}.network-table-dense .network-device-cell{gap:.15rem}.network-table-dense .network-device-cell strong{font-size:.9rem;font-weight:600}.network-table-dense .network-device-cell span{font-size:.76rem}.network-table-dense .network-pill{font-size:.68rem;min-width:68px;padding:.2rem .45rem}.network-table-dense .network-inline-actions{gap:.4rem}.network-table-dense .network-secondary-button{font-size:.78rem;padding:.42rem .6rem}.network-pill{align-items:center;border-radius:999px;display:inline-flex;font-size:.78rem;font-weight:700;justify-content:center;min-width:88px;padding:.35rem .7rem;text-transform:uppercase}.network-pill.severity-info{background:#3b82f61f;color:#1d4ed8}.network-pill.severity-warning{background:#fbbf242e;color:#b45309}.network-pill.severity-high{background:#f9731629;color:#c2410c}.network-pill.severity-critical{background:#ef444429;color:#b91c1c}.network-activity-item,.network-detail-block,.network-device-cell,.network-empty-state{grid-gap:.35rem;display:grid;gap:.35rem}.network-metadata-list{grid-gap:.75rem;display:grid;gap:.75rem}.network-metadata-item{grid-gap:.25rem;border:1px solid #94a3b82e;border-radius:14px;display:grid;gap:.25rem;padding:.85rem 1rem}.network-json-block{background:#0f172a;border-radius:14px;color:#e2e8f0;font-size:.85rem;margin:0;overflow-x:auto;padding:1rem;white-space:pre-wrap;word-break:break-word}.network-detail-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.network-detail-grid>div{grid-gap:.25rem;align-content:start;display:grid;gap:.25rem;min-width:0}.network-detail-grid>div span,.network-detail-grid>div strong{display:block}.network-detail-grid>div strong{line-height:1.35;word-break:break-word}.network-detail-block p,.network-detail-grid strong{margin:0}.network-provider-health{display:flex;flex-direction:column;gap:1rem}.network-provider-health>.network-detail-grid{margin-bottom:0}.network-provider-health>.network-detail-block{margin-top:.5rem}.network-text-muted{color:#888;color:var(--network-muted,#888)}.network-notes-field{grid-gap:.5rem;display:grid;gap:.5rem;margin:1rem 0}.network-activity-list{grid-gap:.85rem;display:grid;gap:.85rem}.network-activity-item{align-items:flex-start;background:#fff;background:var(--surface,#fff);border:1px solid #d7dce2;border:1px solid var(--border,#d7dce2);border-radius:18px;gap:1rem;grid-template-columns:1fr auto;padding:1rem;text-decoration:none}.network-activity-meta{grid-gap:.5rem;display:grid;gap:.5rem;justify-items:end;text-align:right}.network-empty-state,.network-error-banner,.network-loading-panel,.network-widget-loading{border-radius:16px;padding:1rem 1.1rem}.network-loading-panel,.network-widget-loading{background:#0f172a0d}.network-error-banner{background:#ef44441f;border:1px solid #ef444440;color:#991b1b}.network-empty-state{background:#94a3b814}.network-empty-state strong{color:#0f172a}.network-widget-status-row{margin-bottom:1rem}.network-widget-metrics,.network-widget-status-row{justify-content:space-between}.network-widget-metrics div{grid-gap:.2rem;display:grid;gap:.2rem}.network-widget-metrics strong{font-size:1.4rem}.network-resolved-text{color:#166534;font-weight:600}.network-pfsense-vpn-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.network-pfsense-vpn-panel{background:#0f172a08;border:1px solid #d7dce2;border:1px solid var(--border,#d7dce2);border-radius:12px;display:flex;flex-direction:column;gap:.5rem;padding:.85rem 1rem}.network-pfsense-vpn-panel>.network-detail-block{margin-top:0}.network-pfsense-vpn-detail{display:flex;flex-direction:column;gap:.4rem;margin-top:.25rem}.network-pfsense-vpn-entry{align-items:center;display:flex;font-size:.85rem;gap:.5rem;justify-content:space-between}.network-pfsense-traffic-graphs{display:flex;flex-direction:column;gap:.75rem}.network-pfsense-traffic-row{align-items:center;background:#0f172a08;border:1px solid #d7dce2;border:1px solid var(--border,#d7dce2);border-radius:10px;display:flex;gap:1rem;padding:.6rem .85rem}.network-pfsense-traffic-label{display:flex;flex-direction:column;gap:.15rem;min-width:7rem}.network-pfsense-traffic-label strong{font-size:.9rem;letter-spacing:.04em}.network-sparkline-pair{align-items:center;display:flex;flex:1 1;flex-wrap:wrap;gap:1rem}.network-sparkline{align-items:center;display:flex;font-size:.8rem;gap:.4rem}.network-sparkline svg{display:block}.network-sparkline-label{color:#888;color:var(--network-muted,#888);min-width:1.6rem}.network-sparkline-peak{font-feature-settings:"tnum";color:#888;color:var(--network-muted,#888);font-variant-numeric:tabular-nums;min-width:3.5rem}.network-sparkline-empty{color:#888;color:var(--network-muted,#888);font-size:.85rem}.network-text-warning{color:#b45309;font-weight:600}@media (max-width:720px){.network-activity-item,.network-panel-header,.network-section-header{display:grid;grid-template-columns:1fr}.network-panel-span-full{grid-column:auto}.network-trigger-controls{display:grid;grid-template-columns:1fr}.network-panel-header,.network-widget-metrics,.network-widget-status-row{align-items:flex-start}.network-activity-meta{justify-items:start;text-align:left}.network-pfsense-vpn-grid{grid-template-columns:1fr}.network-pfsense-traffic-row{align-items:flex-start;flex-direction:column}.network-sparkline-pair{gap:.5rem}}.page-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:24px}.page-header h1{font-size:1.75rem;font-weight:700;margin:0}.page-header .subtitle{color:var(--text-secondary);margin:4px 0 0}.admin-user-tabs,.permission-mode-tabs{border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px}.admin-user-tab,.permission-mode-tab{background:none;border:0;border-bottom:2px solid #0000;color:var(--text-secondary);cursor:pointer;font:inherit;font-weight:600;padding:12px 4px 10px}.admin-user-tab:hover,.permission-mode-tab:hover{color:var(--text-primary)}.admin-user-tab.active,.permission-mode-tab.active{border-bottom-color:var(--primary);color:var(--primary)}.role-management-panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:20px}.role-management-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.permission-mode-panel h3,.role-management-header h2{margin:0}.permission-placeholder-grid{display:flex;flex-wrap:wrap;gap:8px}.permission-preview-chip,.permission-role-chip{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.85rem;padding:6px 10px}.role-management-notice{align-items:flex-start;background:#2196f314;border:1px solid #2196f338;border-radius:var(--radius-sm);color:var(--text-primary);display:flex;flex-direction:column;gap:4px;margin-bottom:16px;padding:12px 14px}.role-management-notice span{color:var(--text-secondary)}.permission-preview-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.permission-organisation-field{grid-gap:6px;color:var(--text-secondary);display:grid;font-size:.85rem;font-weight:600;gap:6px;margin:14px 0;max-width:360px}.permission-organisation-field select{background:var(--bg-primary);color:var(--text-primary);padding:9px 10px}.permission-matrix-wrap,.permission-organisation-field select{border:1px solid var(--border-color);border-radius:var(--radius-sm)}.permission-matrix-wrap{margin-top:14px;max-width:100%;overflow:auto}.permission-matrix{border-collapse:collapse;font-size:.82rem;min-width:980px;width:100%}.permission-matrix td,.permission-matrix th{border-bottom:1px solid var(--border-color);padding:9px 10px;text-align:left;vertical-align:top}.permission-matrix th{background:var(--bg-secondary);color:var(--text-secondary);font-weight:700;text-transform:capitalize}.permission-toggle{align-items:center;color:var(--text-secondary);display:inline-flex;gap:6px;min-width:92px;white-space:nowrap}.permission-toggle input{accent-color:var(--primary)}.permission-audit-preview{border:1px solid var(--border-color);border-radius:var(--radius-sm);margin-top:18px;overflow:hidden}.permission-audit-preview h4{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);margin:0;padding:10px 12px}.permission-audit-table{display:grid}.permission-audit-row{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr));padding:10px 12px}.permission-audit-header{color:var(--text-secondary);font-size:.8rem;font-weight:700}.permission-audit-empty{color:var(--text-secondary);padding:12px}.permission-save-status{border-radius:var(--radius-sm);font-weight:600;margin-top:12px;padding:10px 12px}.permission-save-status.success{background:#4caf501f;color:var(--success)}.permission-save-status.error{background:#f443361a;color:var(--error)}.permission-save-panel{align-items:center;border-top:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;padding-top:18px}.permission-reason-field{grid-gap:6px;color:var(--text-secondary);display:grid;flex:1 1 280px;font-size:.85rem;font-weight:600;gap:6px}.permission-reason-field textarea{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);min-height:76px;padding:10px 12px;resize:vertical;width:100%}.drawer-overlay{align-items:stretch;background:#0f172a61;display:flex;inset:0;justify-content:flex-end;position:fixed;z-index:1000}.user-detail-drawer{background:var(--bg-card);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:100vh;max-width:440px;min-width:min(100vw,360px);overflow-x:hidden;overflow-y:auto;width:34vw}.drawer-actions,.drawer-header{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:20px 24px}.drawer-header{border-bottom:1px solid var(--border-color)}.drawer-header h2{margin:0}.user-detail-list{grid-gap:14px;display:grid;flex-shrink:0;gap:14px;margin:0;padding:24px 24px 12px}.user-detail-list div{grid-gap:4px;border-bottom:1px solid var(--border-color);display:grid;gap:4px;padding-bottom:12px}.user-detail-list dt{color:var(--text-secondary);font-size:.8rem;font-weight:600}.user-detail-list dd{margin:0;overflow-wrap:anywhere}.drawer-actions{border-top:1px solid var(--border-color);flex-shrink:0}.organisation-memberships-panel{grid-gap:14px;display:grid;flex-shrink:0;gap:14px;padding:12px 24px 24px}.service-identity-panel{grid-gap:6px;border-top:1px solid var(--border-color);display:grid;gap:6px;padding:18px 24px}.service-identity-panel h3,.service-identity-panel p{margin:0}.service-identity-panel p{color:var(--text-secondary);font-size:.9rem}.membership-panel-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.membership-panel-header h3{font-size:1rem;margin:0}.membership-list{grid-gap:8px;display:grid;gap:8px}.membership-row{align-items:center;border:1px solid var(--border-color);border-radius:var(--radius-sm);display:flex;gap:12px;justify-content:space-between;padding:10px 12px}.membership-editor,.membership-row div{grid-gap:6px;display:grid;gap:6px}.membership-row span{color:var(--text-secondary);font-size:.85rem}.membership-editor{border-top:1px solid var(--border-color);padding-top:14px}.membership-editor label{color:var(--text-secondary);font-size:.8rem;font-weight:600}.membership-editor select{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);padding:10px 12px;width:100%}.membership-primary-option{align-items:center;display:flex;gap:8px}.membership-primary-option input{width:auto}.membership-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.admin-bot-key-panel-wrap{padding:12px 24px 24px}.admin-user-security-panel{grid-gap:12px;border-top:1px solid var(--border-color);display:grid;flex-shrink:0;gap:12px;padding:18px 24px 24px}.admin-user-security-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.admin-user-security-header h3,.admin-user-security-header p{margin:0}.admin-security-action-grid{grid-gap:10px;border:1px solid var(--border-color);border-radius:var(--radius-sm);display:grid;gap:10px;padding:12px}.admin-security-action-grid label{grid-gap:6px;color:var(--text-secondary);display:grid;font-size:.8rem;font-weight:600;gap:6px}.admin-security-action-grid input{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);padding:10px 12px;width:100%}.admin-security-action-grid-inline{align-items:center;grid-template-columns:1fr auto}.admin-security-action-grid-inline span{color:var(--text-secondary);font-size:.9rem;font-weight:600}.connection-status{align-items:center;color:var(--text-secondary);display:flex;font-size:.85rem;gap:8px}.status-dot{background:var(--text-disabled);border-radius:50%;height:8px;width:8px}.status-dot.connected{background:var(--success)}.status-dot.disconnected{background:var(--error)}.status-dot.reconnecting{animation:pulse 1s infinite;background:var(--warning)}.status-dot.online{background:var(--success)}.status-dot.offline{background:var(--error)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.last-update{color:var(--text-disabled)}.dashboard-widgets{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.widget{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px}.widget-wide{grid-column:span 2}.widget-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.widget-header h2{font-size:1rem;font-weight:600;margin:0}.status-badge{align-items:center;border-radius:20px;display:inline-flex;font-weight:500;padding:4px 10px;text-transform:capitalize}.status-badge.active,.status-badge.available,.status-badge.healthy,.status-badge.online,.status-badge.paid,.status-badge.success{background:#4caf501a;color:var(--success)}.status-badge.pending,.status-badge.warning{background:#ff98001a;color:var(--warning)}.status-badge.error,.status-badge.maintenance,.status-badge.offline,.status-badge.overdue,.status-badge.rejected,.status-badge.suspended{background:#f443361a;color:var(--error)}.status-badge.archived,.status-badge.disabled{background:#9e9e9e1a;color:#737373}.status-badge.deleted{background:#6161611a;color:#616161}.status-badge.info,.status-badge.occupied{background:#2196f31a;color:var(--info)}.role-badge{border-radius:20px;display:inline-flex;font-size:.75rem;font-weight:500;padding:4px 10px;text-transform:capitalize}.role-badge.admin{background:#9c27b01a;color:var(--secondary)}.role-badge.teacher{background:#2196f31a;color:var(--info)}.role-badge.student{background:#4caf501a;color:var(--success)}.role-badge.app{background:#1f29371a;color:var(--text-primary)}.role-cell{align-items:flex-start;display:flex;flex-direction:column;gap:6px}.restricted-actions-note,.service-identity-chip{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.75rem;font-weight:600;padding:4px 8px;white-space:nowrap}.user-security{display:flex;flex-direction:column;font-size:.82rem;gap:8px;max-width:360px;min-width:240px}.user-login-methods,.user-security-summary{display:flex;flex-wrap:wrap;gap:6px}.login-method-pill,.security-chip{align-items:center;background:#2196f31a;border-radius:6px;color:var(--info);display:inline-flex;font-weight:600;min-height:24px;padding:3px 8px;text-transform:capitalize;white-space:nowrap}.security-chip-strong{background:#4caf501a;color:var(--success)}.security-chip-muted{background:var(--bg-secondary);color:var(--text-secondary)}.login-method-pill{background:#9c27b01a;color:var(--secondary)}.login-method-pill-muted,.user-session-empty{background:var(--bg-secondary);color:var(--text-secondary);font-weight:500}.user-session-details summary{color:var(--primary);cursor:pointer;font-weight:600}.user-session-details ul{display:flex;flex-direction:column;gap:6px;list-style:none;margin:8px 0 0;padding:0}.user-session-details li{grid-gap:8px;align-items:center;background:var(--bg-secondary);border-radius:6px;color:var(--text-secondary);display:grid;gap:8px;grid-template-columns:minmax(72px,1fr) minmax(72px,1fr) minmax(92px,1.2fr);padding:6px 8px}.user-session-details code{color:var(--text-primary);font-size:.78rem;overflow-wrap:anywhere}.type-badge{border-radius:20px;display:inline-flex;font-size:.75rem;font-weight:500;padding:4px 10px;text-transform:capitalize}.type-badge.camera{background:#2196f31a;color:var(--info)}.type-badge.climate{background:#ff98001a;color:var(--warning)}.type-badge.access{background:#9c27b01a;color:var(--secondary)}.server-list{display:flex;flex-direction:column;gap:12px}.server-item{align-items:center;background:var(--bg-secondary);border-radius:var(--radius-md);display:flex;gap:12px;padding:12px}.server-name{flex:1 1;font-weight:500}.server-uptime{color:var(--text-secondary);font-size:.85rem}.occupancy-display{padding:20px 0;text-align:center}.occupancy-count{color:var(--primary);display:block;font-size:4rem;font-weight:700;line-height:1}.occupancy-label{color:var(--text-secondary);font-size:.9rem}.climate-display{display:flex;gap:24px}.climate-item{background:var(--bg-secondary);border-radius:var(--radius-md);flex:1 1;padding:16px;text-align:center}.climate-value{color:var(--text-primary);display:block;font-size:2rem;font-weight:600}.climate-label{color:var(--text-secondary);font-size:.85rem}.revenue-display{display:flex;gap:24px}.revenue-item{background:var(--bg-secondary);border-radius:var(--radius-md);flex:1 1;padding:16px;text-align:center}.revenue-value{color:var(--success);display:block;font-size:1.5rem;font-weight:600}.revenue-label{color:var(--text-secondary);font-size:.85rem}.alerts-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}.alert-item{align-items:center;background:var(--bg-secondary);border-left:3px solid var(--border-color);border-radius:var(--radius-md);display:flex;gap:12px;padding:12px}.alert-item.error{border-left-color:var(--error)}.alert-item.warning{border-left-color:var(--warning)}.alert-item.info{border-left-color:var(--info)}.alert-message{flex:1 1}.alert-time{font-size:.8rem}.alert-time,.no-alerts{color:var(--text-secondary)}.no-alerts{padding:20px;text-align:center}.filters-bar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}.search-input{flex:1 1;min-width:200px}.filter-select,.search-input{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);padding:10px 16px}.filter-select{min-width:140px}.table-container{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.data-table{border-collapse:collapse;width:100%}.data-table td,.data-table th{border-bottom:1px solid var(--border-color);padding:16px;text-align:left}.data-table th{color:var(--text-secondary);font-size:.85rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.data-table th,.data-table tr:hover{background:var(--bg-secondary)}.pagination-bar{align-items:center;background:var(--bg-card);border-top:1px solid var(--border-color);display:flex;gap:16px;justify-content:space-between;padding:14px 16px}.pagination-info{color:var(--text-secondary);font-size:.9rem;font-weight:500}.pagination-controls{align-items:center;display:flex;gap:10px}.pagination-controls label{color:var(--text-secondary);font-size:.85rem;font-weight:600}.pagination-page-size{min-width:88px}.user-cell{gap:12px}.user-avatar,.user-cell{align-items:center;display:flex}.user-avatar{background:var(--primary);border-radius:50%;color:#fff;font-weight:600;height:36px;justify-content:center;width:36px}.user-info{display:flex;flex-direction:column}.user-name{font-weight:500}.user-email{font-size:.85rem}.user-debug-id,.user-email{color:var(--text-secondary)}.user-debug-id{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.82rem;font-weight:600}.action-buttons{display:flex;gap:4px}.btn-icon{background:none;border:none;cursor:pointer;opacity:.7;padding:8px;transition:var(--transition)}.btn-icon:hover{opacity:1}.btn-text{background:none;border:none;cursor:pointer}.btn-text,.link-view{color:var(--primary);font-size:.85rem}.link-view{text-decoration:none}.rooms-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.room-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px}.room-card.orphaned{background:linear-gradient(135deg,var(--bg-card) 0,#e74c3c0d 100%);border:2px solid #e74c3c}.room-card.deleted{background:linear-gradient(135deg,var(--bg-card) 0,#95a5a61a 100%);border:2px solid #95a5a6;opacity:.85}.room-badges{display:flex;flex-wrap:wrap;gap:8px}.room-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.room-header h3{margin:0}.room-details{margin-bottom:16px}.room-details p{color:var(--text-secondary);margin:8px 0}.room-actions{display:flex;gap:8px}.camera-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.camera-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.camera-feed{align-items:center;aspect-ratio:16/9;background:#1a1a1a;display:flex;justify-content:center;position:relative}.camera-placeholder{font-size:3rem;opacity:.5}.live-indicator{background:var(--error)}.live-indicator,.offline-indicator{border-radius:4px;color:#fff;font-size:.7rem;font-weight:600;padding:4px 8px;position:absolute;right:12px;top:12px}.offline-indicator{background:var(--text-disabled)}.camera-info{align-items:center;display:flex;justify-content:space-between;padding:16px}.camera-info h3{font-size:1rem;margin:0}.camera-controls{display:flex;gap:4px}.stats-row{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:24px}.stat-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px;text-align:center}.stat-value{color:var(--primary);display:block;font-size:2rem;font-weight:700}.stat-label{color:var(--text-secondary);font-size:.9rem}.settings-sections{max-width:600px}.settings-section{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:24px;padding:24px}.settings-section h2{border-bottom:1px solid var(--border-color);font-size:1.1rem;margin-bottom:20px;padding-bottom:12px}.setting-item{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.setting-item.toggle{align-items:center;flex-direction:row;justify-content:space-between}.setting-item label{font-weight:500}.setting-help{color:var(--text-secondary);font-size:.9rem;line-height:1.4;margin:4px 0 0;max-width:420px}.setting-state{color:var(--text-secondary);font-size:.85rem;font-weight:600;margin:8px 0 0;text-transform:uppercase}.network-sal4-setting .setting-item.toggle{align-items:flex-start;gap:20px}.settings-message{border-radius:var(--radius-md);font-size:.9rem;margin-top:14px;padding:10px 12px}.settings-message.success{background:#22c55e1f;color:#166534}.settings-message.error{background:#ef44441f;color:#991b1b}.mycelium-link-cell{grid-gap:4px;display:grid;gap:4px;min-width:260px}.mycelium-link-cell.muted{color:var(--text-secondary);font-size:.9rem}.mycelium-link-heading{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.mycelium-link-detail{color:var(--text-secondary);font-size:.82rem;line-height:1.35;overflow-wrap:anywhere}.form-input{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:1rem;padding:10px 14px}.settings-actions{display:flex;gap:12px}@media (max-width:1024px){.widget-wide{grid-column:span 1}}@media (max-width:640px){.page-header{align-items:flex-start}.filters-bar,.page-header{flex-direction:column}.pagination-bar,.pagination-controls{align-items:stretch;flex-direction:column}.search-input{width:100%}.data-table{display:block;overflow-x:auto}}.modal-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-height:90vh;max-width:500px;overflow:hidden;width:100%}.modal.modal-lg{max-width:800px}.modal.organisation-users-modal{max-width:min(96vw,1200px)}.organisation-users-table-wrap{max-height:min(62vh,640px);overflow:auto;width:100%}.organisation-users-table-wrap .data-table{min-width:1040px}.organisation-users-table-wrap .data-table thead th{position:-webkit-sticky;position:sticky;top:0;z-index:1}.room-editor-modal{max-width:1500px}.modal-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:20px 24px}.modal-header h2{font-size:1.25rem;font-weight:600;margin:0}.room-editor-modal-subtitle{color:var(--text-secondary);font-size:.9rem;margin:6px 0 0}.modal-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:1.5rem;line-height:1;padding:0}.modal-close:hover{color:var(--text-primary)}.modal>form{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.room-editor-tabs{border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:16px;padding:0 24px}.room-editor-tab{background:none;border:none;border-bottom:2px solid #0000;color:var(--text-secondary);cursor:pointer;font-weight:600;padding:14px 4px 12px}.room-editor-tab:hover{color:var(--text-primary)}.room-editor-tab.active{border-bottom-color:var(--primary);color:var(--primary)}.modal-body{flex:1 1;min-height:0;overflow-y:auto;padding:24px}.room-editor-body{padding-top:20px}.room-editor-fieldset{border:0;margin:0;min-width:0;padding:0}.room-editor-panel{display:flex;flex-direction:column;gap:20px}.room-editor-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px}.room-editor-section h3{font-size:1rem;margin:0 0 8px}.room-editor-section p{color:var(--text-secondary);font-size:.9rem;margin:0 0 16px}.room-editor-grid{grid-gap:16px 20px;display:grid;gap:16px 20px;grid-template-columns:repeat(2,minmax(0,1fr))}.room-editor-span-2{grid-column:1/-1}.room-editor-photo{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:minmax(260px,360px) minmax(0,1fr)}.room-editor-photo-preview{align-items:center;aspect-ratio:16/10;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-secondary);display:flex;justify-content:center;overflow:hidden}.room-editor-photo-preview img{height:100%;object-fit:cover;width:100%}.room-editor-photo-actions{display:flex;flex-direction:column;gap:12px}.room-editor-photo-actions .btn{align-self:flex-start}.room-editor-help,.room-editor-loading-note{color:var(--text-secondary);font-size:.85rem}.room-editor-loading-note{background:rgba(var(--primary-rgb),.08);border-radius:var(--radius-md);margin-bottom:16px;padding:10px 12px}.modal-footer{border-top:1px solid var(--border-color);display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.form-group{margin-bottom:16px}.form-group label{color:var(--text-primary);font-weight:500;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);padding:10px 14px}.form-group textarea{min-height:88px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1)}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:var(--bg-secondary);color:var(--text-secondary);cursor:not-allowed}@media (max-width:960px){.room-editor-grid,.room-editor-photo{grid-template-columns:1fr}.room-editor-span-2{grid-column:auto}}.form-error{background:#dc35451a;background:rgba(var(--error-rgb,220,53,69),.1);color:var(--error)}.form-error,.form-success{border-radius:var(--radius-md);font-size:.9rem;margin-bottom:16px;padding:12px 16px}.form-success{background:#28a7451a;background:rgba(var(--success-rgb,40,167,69),.1);color:var(--success)}.org-security-policy{border-top:1px solid var(--border-color);margin-top:20px;padding-top:18px}.org-security-policy-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.org-security-policy-header h3{font-size:1rem;margin:0}.policy-toggle{align-items:center;color:var(--text-primary);cursor:pointer;display:flex;gap:10px;min-height:36px}.policy-toggle input{height:16px;width:16px}.error-message{background:#dc35451a;background:rgba(var(--error-rgb,220,53,69),.1);border-radius:var(--radius-md);color:var(--error);margin-bottom:20px;padding:16px}.loading-spinner,.no-data{color:var(--text-secondary);padding:40px;text-align:center}.role-badge.super_admin{background:#7c3aed;color:#fff}.booking-requests-section{background:var(--bg-card);border:2px solid var(--warning);border-radius:var(--radius-lg);margin-bottom:24px;padding:20px}.booking-requests-section .section-header{margin-bottom:16px}.booking-requests-section .section-header h2{color:var(--text-primary);font-size:1.1rem;font-weight:600;margin:0}.booking-requests-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.booking-request-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:16px;transition:box-shadow .2s}.booking-request-card:hover{box-shadow:0 4px 12px #0000001a}.booking-request-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.booking-request-header h3{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0}.booking-status{border-radius:12px;font-size:.75rem;font-weight:600;padding:4px 8px}.booking-status.pending{background:#f59e0b26;color:#d97706}.booking-status.approved{background:#10b98126;color:#059669}.booking-status.rejected{background:#ef444426;color:#dc2626}.booking-status.delete-pending{background:#9ca3af26;color:#6b7280}.deletion-requests .booking-request-card{border-left:4px solid #6b7280}.deletion-requests .booking-request-card:hover{border-left-color:#4b5563}.booking-request-details{color:var(--text-secondary);font-size:.9rem;margin-bottom:16px}.booking-request-details p{margin:6px 0}.booking-request-details strong{color:var(--text-primary)}.booking-request-actions{display:flex;gap:10px}.booking-request-actions .btn{flex:1 1;font-size:.85rem;padding:8px 12px}.btn-success{background:var(--success);border:none;color:#fff}.btn-success:hover{background:#059669}.btn-danger{background:var(--error)}.btn-danger:hover{background:#b91c1c}.recurring-badge-admin{background:#eff6ff;border-radius:4px;color:#1d4ed8;display:inline-block;font-size:.8rem;margin:8px 0;padding:4px 8px}.recurring-badge-table{color:#3b82f6;font-size:.9em;margin-left:6px}.override-cards{display:flex;flex-direction:column;gap:16px;margin-top:16px}.override-card{background:#fff;background:var(--card-bg,#fff);border:1px solid #e2e8f0;border:1px solid var(--border-color,#e2e8f0);border-radius:8px;overflow:hidden;transition:box-shadow .15s ease}.override-card:hover{box-shadow:0 2px 8px #0000000f}.override-card-header{align-items:center;background:#f8fafc;background:var(--bg-secondary,#f8fafc);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color,#e2e8f0);display:flex;font-weight:600;gap:8px;padding:14px 18px}.override-scope-icon{font-size:1.2em}.override-scope-label{font-size:.95em}.override-id{color:#94a3b8;color:var(--text-muted,#94a3b8);font-size:.85em;font-weight:400;margin-left:auto}.override-card-body{grid-gap:10px 24px;display:grid;gap:10px 24px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));padding:14px 18px}.override-detail{display:flex;flex-direction:column;gap:2px}.override-detail-label{color:#94a3b8;color:var(--text-muted,#94a3b8);font-size:.78em;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.override-detail-value{color:#1e293b;color:var(--text-primary,#1e293b);font-size:.92em;word-break:break-word}.override-reason{color:#64748b;color:var(--text-secondary,#64748b);font-style:italic}.override-expiry-urgent{color:#ef4444;color:var(--danger,#ef4444);font-weight:600}.override-relative-expiry{color:#94a3b8;color:var(--text-muted,#94a3b8);font-size:.88em}.override-card-actions{align-items:center;border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color,#e2e8f0);display:flex;gap:12px;padding:12px 18px}.override-permission-note{color:#94a3b8;color:var(--text-muted,#94a3b8);font-size:.85em;font-style:italic}.overrides-list-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.overrides-count{font-size:.9em;font-weight:500}.empty-state,.loading-state,.overrides-count{color:#64748b;color:var(--text-secondary,#64748b)}.empty-state,.loading-state{padding:48px 24px;text-align:center}.empty-icon{display:block;font-size:2.5em;margin-bottom:12px}.empty-state h2{color:#1e293b;color:var(--text-primary,#1e293b);margin:0 0 8px}.empty-state p{margin:0 0 20px;margin-inline:auto;max-width:420px}.spinner{animation:spin .7s linear infinite;border:3px solid #e2e8f0;border-top-color:#3b82f6;border:3px solid var(--border-color,#e2e8f0);border-top-color:var(--primary,#3b82f6);height:28px;margin:0 auto 12px;width:28px}.breadcrumb-link{color:#3b82f6;color:var(--primary,#3b82f6);font-weight:500;text-decoration:none}.breadcrumb-link:hover{text-decoration:underline}.btn-danger{background:#ef4444;background:var(--danger,#ef4444);border:none;cursor:pointer}.btn-danger:hover:not(:disabled){background:#dc2626;background:var(--danger-hover,#dc2626)}.btn-danger:disabled{cursor:not-allowed;opacity:.6}.btn-sm{border-radius:6px;font-size:.82em;padding:6px 14px}.btn-outline{border:1px solid #e2e8f0;border:1px solid var(--border-color,#e2e8f0);border-radius:8px;color:#64748b;color:var(--text-secondary,#64748b);display:inline-block;font-size:.9em;padding:8px 18px;transition:border-color .15s,color .15s}.btn-outline:hover{border-color:#3b82f6;border-color:var(--primary,#3b82f6);color:#3b82f6;color:var(--primary,#3b82f6)}.security-page{grid-gap:1.25rem;display:grid;gap:1.25rem}.security-page-header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.security-page-header h1{font-size:2rem;margin:0}.security-page-header p{color:#64748b;color:var(--text-secondary,#64748b);margin:.35rem 0 0}.security-tabs{border-bottom:1px solid #d7dce2;border-bottom:1px solid var(--border-color,#d7dce2);display:flex;flex-wrap:wrap;gap:8px}.security-tab{-webkit-appearance:none;appearance:none;background:#0000;border:0;border-bottom:3px solid #0000;color:#64748b;color:var(--text-secondary,#64748b);cursor:pointer;font:inherit;font-weight:700;padding:12px 14px 10px;text-decoration:none}.security-tab.active,.security-tab:hover{color:#111827;color:var(--text-primary,#111827)}.security-tab.active{border-bottom-color:#2563eb;border-bottom-color:var(--primary,#2563eb)}.security-tab-disabled{cursor:not-allowed;opacity:.55}.security-cameras-shell{grid-gap:1rem;display:grid;gap:1rem}.security-cameras-toolbar{grid-gap:.85rem;align-items:end;background:#fff;background:var(--bg-card,#fff);border:1px solid #d7dce2;border:1px solid var(--border-color,#d7dce2);border-radius:8px;border-radius:var(--radius-md,8px);display:grid;gap:.85rem;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(140px,1fr)) repeat(3,auto);padding:1rem}.security-cameras-toolbar label{grid-gap:.4rem;color:#64748b;color:var(--text-secondary,#64748b);display:grid;font-size:.85rem;font-weight:700;gap:.4rem}.security-cameras-toolbar input,.security-cameras-toolbar select{background:#fff;background:var(--bg-primary,#fff);border:1px solid #d7dce2;border:1px solid var(--border-color,#d7dce2);border-radius:6px;border-radius:var(--radius-sm,6px);color:#111827;color:var(--text-primary,#111827);min-height:42px;padding:.65rem .75rem}.security-cameras-empty{background:#fff;background:var(--bg-card,#fff);border:1px solid #64748b38;border-radius:8px;border-radius:var(--radius-md,8px);padding:1.25rem}.security-cameras-empty h2{margin:0}.security-cameras-empty p{color:#64748b;color:var(--text-secondary,#64748b);margin:.4rem 0 0}.security-add-feed-button,.security-cameras-empty button,.security-feed-modal button,.security-feed-table button,.security-view-toggle button{background:#fff;background:var(--bg-primary,#fff);border:1px solid #d7dce2;border:1px solid var(--border-color,#d7dce2);border-radius:6px;border-radius:var(--radius-sm,6px);color:#111827;color:var(--text-primary,#111827);cursor:pointer;font-weight:700;min-height:36px;padding:.5rem .7rem}.security-add-feed-button{background:#2563eb;background:var(--primary,#2563eb);color:#fff;min-height:42px;white-space:nowrap}.security-add-feed-button.secondary{background:#fff;background:var(--bg-primary,#fff);color:#111827;color:var(--text-primary,#111827)}.security-cameras-empty button{margin-top:1rem}.security-view-toggle{align-items:center;border:1px solid #d7dce2;border:1px solid var(--border-color,#d7dce2);border-radius:6px;border-radius:var(--radius-sm,6px);display:inline-flex;min-height:42px;overflow:hidden}.security-view-toggle button{border:0;border-radius:0;min-height:42px}.security-view-toggle button.active{background:#2563eb;background:var(--primary,#2563eb);color:#fff}.security-cameras-error,.security-cameras-notice,.security-cameras-placeholder-grid,.security-cameras-state{border:1px solid #d7dce2;border:1px solid var(--border-color,#d7dce2);border-radius:8px;border-radius:var(--radius-md,8px);padding:1rem}.security-cameras-error{background:#fef2f2;border-color:#fecaca;color:#991b1b}.security-cameras-notice{background:#ecfdf5;border-color:#bbf7d0;color:#166534}.security-camera-groups{grid-gap:.85rem;display:grid;gap:.85rem}.security-camera-group{background:#fff;background:var(--bg-card,#fff);border:1px solid #d7dce2;border:1px solid var(--border-color,#d7dce2);border-radius:8px;border-radius:var(--radius-md,8px);overflow:hidden}.security-camera-group-header{grid-gap:.75rem;align-items:center;background:#fff;background:var(--bg-card,#fff);border:0;color:#111827;color:var(--text-primary,#111827);cursor:pointer;display:grid;gap:.75rem;grid-template-columns:22px 46px minmax(180px,1fr) auto auto auto;padding:.85rem 1rem;text-align:left;width:100%}.security-camera-group-header:hover{background:#f8fafc}.security-camera-chevron,.security-camera-device-icon,.security-device-type,.security-status-pill{align-items:center;border-radius:999px;display:inline-flex;font-size:.75rem;font-weight:800;justify-content:center;min-height:24px;padding:.15rem .5rem}.security-camera-chevron{border-radius:4px;color:#64748b;color:var(--text-secondary,#64748b);padding:0}.security-camera-device-icon{background:#e0f2fe;color:#075985}.security-camera-device-main{grid-gap:.15rem;display:grid;gap:.15rem;min-width:0}.security-camera-device-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.security-camera-device-main small,.security-feed-table small{color:#64748b;color:var(--text-secondary,#64748b);display:block;font-size:.78rem;margin-top:.15rem}.security-status-pill.online{background:#dcfce7;color:#166534}.security-status-pill.offline,.security-status-pill.unknown{background:#f1f5f9;color:#475569}.security-device-type{background:#fef3c7;color:#92400e;text-transform:capitalize}.security-feed-table-wrap{overflow-x:auto}.security-feed-table{border-collapse:collapse;min-width:760px;width:100%}.security-feed-table td,.security-feed-table th{border-top:1px solid #e5e7eb;border-top:1px solid var(--border-color,#e5e7eb);padding:.7rem 1rem;text-align:left;vertical-align:middle}.security-feed-table th{background:#f8fafc;color:#64748b;color:var(--text-secondary,#64748b);font-size:.78rem;text-transform:uppercase}.security-feed-table tbody tr{cursor:pointer}.security-feed-table tbody tr:focus,.security-feed-table tbody tr:hover{background:#f8fafc;outline:none}.security-toggle{align-items:center;cursor:pointer;display:inline-flex;gap:.45rem;min-width:110px}.security-feed-modal-backdrop{align-items:center;background:#0f172a7a;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.security-feed-modal{grid-gap:1rem;background:#fff;background:var(--bg-card,#fff);border:1px solid #d7dce2;border:1px solid var(--border-color,#d7dce2);border-radius:8px;border-radius:var(--radius-md,8px);box-shadow:0 24px 80px #0f172a47;color:#111827;color:var(--text-primary,#111827);display:grid;gap:1rem;max-height:min(760px,calc(100vh - 2rem));max-width:620px;overflow-y:auto;padding:1rem;width:min(620px,100%)}.security-feed-modal footer,.security-feed-modal header{align-items:center;display:flex;gap:.75rem;justify-content:space-between}.security-feed-modal h2{font-size:1.25rem;margin:0}.security-feed-modal label{grid-gap:.4rem;color:#64748b;color:var(--text-secondary,#64748b);display:grid;font-size:.86rem;font-weight:700;gap:.4rem}.security-feed-modal input,.security-feed-modal select{background:#fff;background:var(--bg-primary,#fff);border:1px solid #d7dce2;border:1px solid var(--border-color,#d7dce2);border-radius:6px;border-radius:var(--radius-sm,6px);color:#111827;color:var(--text-primary,#111827);min-height:42px;padding:.65rem .75rem}.security-feed-modal-grid{grid-gap:.85rem;display:grid;gap:.85rem;grid-template-columns:minmax(130px,.8fr) minmax(180px,1fr)}.security-feed-modal footer{border-top:1px solid #e5e7eb;border-top:1px solid var(--border-color,#e5e7eb);justify-content:flex-end;padding-top:.75rem}.security-feed-modal footer button[type=submit]{background:#2563eb;background:var(--primary,#2563eb);color:#fff}.security-feed-modal footer button:disabled{cursor:wait;opacity:.7}.security-form-error{color:#b91c1c;font-weight:700}.security-form-warning{color:#a16207;font-weight:700}.security-thumbnail-groups{grid-gap:1rem;display:grid;gap:1rem}.security-thumbnail-group{grid-gap:.75rem;display:grid;gap:.75rem}.security-thumbnail-device-header{grid-gap:.7rem;align-items:center;background:#fff;background:var(--bg-card,#fff);border:1px solid #d7dce2;border:1px solid var(--border-color,#d7dce2);border-radius:8px;border-radius:var(--radius-md,8px);color:#111827;color:var(--text-primary,#111827);cursor:pointer;display:grid;gap:.7rem;grid-template-columns:22px minmax(180px,1fr) minmax(180px,1fr) auto;padding:.8rem 1rem;position:-webkit-sticky;position:sticky;text-align:left;top:0;z-index:2}.security-thumbnail-device-header small{color:#64748b;color:var(--text-secondary,#64748b);font-weight:600}.security-thumbnail-grid{grid-gap:.9rem;display:grid;gap:.9rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.security-thumbnail-card{grid-gap:.7rem;background:#fff;background:var(--bg-card,#fff);border:1px solid #d7dce2;border:1px solid var(--border-color,#d7dce2);border-radius:8px;border-radius:var(--radius-md,8px);cursor:pointer;display:grid;gap:.7rem;overflow:hidden;padding-bottom:.75rem;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.security-thumbnail-card:focus,.security-thumbnail-card:hover{border-color:#2563eb;border-color:var(--primary,#2563eb);box-shadow:0 10px 30px #0f172a1f;outline:none;transform:translateY(-1px)}.security-thumbnail-card.updated{border-color:#22c55e;box-shadow:0 0 0 3px #22c55e2e}.security-thumbnail-frame{aspect-ratio:16/9;background:#111827;overflow:hidden;position:relative}.security-thumbnail-frame img{display:block;height:100%;object-fit:cover;width:100%}.security-thumbnail-placeholder{align-items:center;background:#e5e7eb;color:#475569;display:flex;font-weight:800;height:100%;justify-content:center;text-align:center;width:100%}.security-thumbnail-placeholder.offline{background:repeating-linear-gradient(135deg,#e5e7eb,#e5e7eb 12px,#f1f5f9 0,#f1f5f9 24px)}.security-thumbnail-age{background:#0f172ac7;border-radius:999px;bottom:.5rem;color:#fff;font-size:.75rem;font-weight:800;left:.5rem;padding:.18rem .45rem;position:absolute}.security-thumbnail-body{grid-gap:.35rem;display:grid;gap:.35rem;padding:0 .75rem}.security-thumbnail-body strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.security-thumbnail-body small,.security-thumbnail-body span{color:#64748b;color:var(--text-secondary,#64748b)}.security-thumbnail-badges{align-items:center;display:flex;flex-wrap:wrap;gap:.35rem}.security-frigate-badge{background:#fee2e2;border-radius:999px;color:#991b1b;font-size:.75rem;font-weight:800;padding:.15rem .5rem}.security-thumbnail-card>button{justify-self:start;margin:0 .75rem}.security-feed-detail{grid-gap:1rem;display:grid;gap:1rem}.security-feed-detail-header{align-items:center;display:flex;gap:1rem}.security-feed-delete-dialog button,.security-feed-detail-actions button,.security-feed-detail-header button,.security-feed-detail-stream button{background:#fff;background:var(--bg-primary,#fff);border:1px solid #d7dce2;border:1px solid var(--border-color,#d7dce2);border-radius:6px;border-radius:var(--radius-sm,6px);color:#111827;color:var(--text-primary,#111827);cursor:pointer;font-weight:700;min-height:36px;padding:.5rem .7rem}.security-feed-detail-header h2{font-size:1.45rem;margin:0}.security-feed-detail-header p{color:#64748b;color:var(--text-secondary,#64748b);margin:.25rem 0 0}.security-feed-detail-snapshot{aspect-ratio:16/9;background:#111827;border-radius:8px;border-radius:var(--radius-md,8px);min-height:260px;overflow:hidden;position:relative}.security-feed-detail-snapshot img{display:block;height:100%;object-fit:contain;width:100%}.security-feed-detail-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:minmax(280px,1.1fr) minmax(260px,.9fr)}.security-feed-detail-panel{grid-gap:.8rem;background:#fff;background:var(--bg-card,#fff);border:1px solid #d7dce2;border:1px solid var(--border-color,#d7dce2);border-radius:8px;border-radius:var(--radius-md,8px);display:grid;gap:.8rem;padding:1rem}.security-feed-detail-panel h3{font-size:1rem;margin:0}.security-feed-detail-panel label{grid-gap:.4rem;color:#64748b;color:var(--text-secondary,#64748b);display:grid;font-size:.86rem;font-weight:700;gap:.4rem}.security-feed-detail-panel input,.security-feed-detail-panel textarea{background:#fff;background:var(--bg-primary,#fff);border:1px solid #d7dce2;border:1px solid var(--border-color,#d7dce2);border-radius:6px;border-radius:var(--radius-sm,6px);color:#111827;color:var(--text-primary,#111827);min-height:42px;padding:.65rem .75rem}.security-feed-detail-panel textarea{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;min-height:160px}.security-feed-detail-panel dl{grid-gap:.65rem;display:grid;gap:.65rem;margin:0}.security-feed-detail-panel dl>div{grid-gap:.3rem;display:grid;gap:.3rem}.security-feed-detail-panel dt{color:#64748b;color:var(--text-secondary,#64748b);font-size:.78rem;font-weight:800;text-transform:uppercase}.security-feed-detail-panel dd{margin:0;min-width:0}.security-feed-detail-stream code{background:#f1f5f9;border-radius:6px;border-radius:var(--radius-sm,6px);display:block;overflow-wrap:anywhere;padding:.5rem}.security-feed-detail-stream dd{grid-gap:.5rem;display:grid;gap:.5rem}.security-feed-detail-frigate{grid-column:1/-1}.security-feed-detail-actions{align-items:center;display:flex;gap:.75rem;grid-column:1/-1;justify-content:flex-end}.security-feed-detail-actions button[type=submit]{background:#2563eb;background:var(--primary,#2563eb);color:#fff}.security-feed-delete-dialog .danger,.security-feed-detail-actions .danger{background:#dc2626;border-color:#dc2626;color:#fff}@media (max-width:820px){.security-cameras-toolbar{grid-template-columns:1fr}.security-camera-group-header{grid-template-columns:22px 42px minmax(0,1fr)}.security-camera-group-header>span:nth-last-child(-n+3){justify-self:start}.security-feed-modal-grid{grid-template-columns:1fr}.security-thumbnail-device-header{grid-template-columns:22px minmax(0,1fr)}.security-thumbnail-device-header small,.security-thumbnail-device-header span:last-child{grid-column:2}.security-feed-detail-actions,.security-feed-detail-header{align-items:stretch;flex-direction:column}.security-feed-detail-grid{grid-template-columns:1fr}}.teacher-class,.teacher-schedule{margin:0 auto;max-width:1120px}.class-actions,.editor-actions,.header-actions-inline{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.back-link{color:var(--primary);display:inline-block;margin-bottom:8px;text-decoration:none}.back-link:hover{text-decoration:underline}.view-toggle{border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;overflow:hidden}.toggle-btn{background:var(--bg-card);border:none;color:var(--text-secondary);cursor:pointer;padding:8px 16px;transition:var(--transition)}.toggle-btn:hover{background:var(--bg-secondary)}.toggle-btn.active{background:var(--primary);color:#fff}.class-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:20px}.class-toolbar input{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);flex:1 1;max-width:420px;min-width:240px;padding:10px 12px}.class-alert{border-radius:var(--radius-md);font-weight:500;margin-bottom:16px;padding:12px 14px}.class-alert.error{background:#f443361a;border:1px solid #f4433640;color:var(--error)}.class-alert.success{background:#4caf501a;border:1px solid #4caf5040;color:var(--success)}.schedule-list{display:flex;flex-direction:column;gap:12px}.class-card{align-items:center;background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:inherit;display:flex;gap:24px;padding:20px;transition:var(--transition)}.class-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.class-date{align-items:center;border-right:1px solid var(--border-color);display:flex;flex-direction:column;min-width:100px;padding-right:24px}.class-date .date{color:var(--text-primary);font-weight:600}.class-date .time{color:var(--text-secondary);font-size:.9rem}.class-info{flex:1 1;min-width:220px}.class-info a{color:inherit;text-decoration:none}.class-info a:hover{color:var(--primary)}.class-info h3{font-size:1.1rem;margin:0 0 4px}.class-info p{color:var(--text-secondary);font-size:.9rem;margin:0}.blob-summary{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;margin-top:8px!important;overflow-wrap:anywhere}.class-status{align-items:center;border-radius:var(--radius-md);display:inline-flex;font-size:.8rem;font-weight:700;justify-content:center;min-height:34px;min-width:86px;padding:6px 10px;text-transform:capitalize}.class-status.scheduled{background:#4caf501a;color:var(--success)}.class-status.cancelled{background:#ff98001f;color:var(--warning)}.class-status.archived{background:var(--bg-secondary);color:var(--text-secondary)}.class-editor-panel,.class-summary-panel,.empty-state{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:20px;padding:24px}.class-editor-panel h2,.empty-state h2{margin:0 0 16px}.class-editor{display:flex;flex-direction:column;gap:16px}.form-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.class-editor label{color:var(--text-secondary);display:flex;flex-direction:column;font-size:.85rem;font-weight:600;gap:6px}.class-editor input,.class-editor select,.class-editor textarea{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font:inherit;padding:10px 12px;width:100%}.class-editor textarea{resize:vertical}.blob-editor{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace!important;font-size:.88rem!important}.class-summary-panel{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}.class-summary-panel div{min-width:0}.summary-label{color:var(--text-secondary);display:block;font-size:.8rem;font-weight:600;margin-bottom:4px}.class-summary-panel strong{display:block;overflow-wrap:anywhere}.empty-state{color:var(--text-secondary)}.class-enrollment{text-align:center}.enrollment-badge{border-radius:var(--radius-md);display:block;font-size:1.25rem;font-weight:700;padding:4px 12px}.enrollment-badge.available{background:#4caf501a;color:var(--success)}.enrollment-badge.almost-full{background:#ff98001a;color:var(--warning)}.enrollment-badge.full{background:#f443361a;color:var(--error)}.enrollment-label{color:var(--text-secondary);font-size:.75rem}.attendance-section{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px}.attendance-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.attendance-header h2{margin:0}.attendance-actions{display:flex;gap:12px}.roster-list{display:flex;flex-direction:column;gap:8px}.roster-item{align-items:center;background:var(--bg-secondary);border:2px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:flex;gap:16px;padding:16px;transition:var(--transition)}.roster-item:hover{background:var(--bg-primary)}.roster-item.present{background:#4caf500d;border-color:var(--success)}.student-checkbox{align-items:center;border:2px solid var(--border-color);border-radius:50%;color:#fff;display:flex;font-weight:700;height:32px;justify-content:center;transition:var(--transition);width:32px}.roster-item.present .student-checkbox{background:var(--success);border-color:var(--success)}.student-info{display:flex;flex-direction:column}.student-name{font-weight:500}.student-email{color:var(--text-secondary);font-size:.85rem}.btn{align-items:center;border-radius:var(--radius-md);display:inline-flex;font-size:.9rem;font-weight:500;justify-content:center;padding:10px 20px;text-decoration:none;transition:var(--transition)}.btn:disabled{opacity:.65}.btn-outline{border:1px solid var(--border-color);color:var(--text-primary)}.btn-outline:hover{background:var(--bg-secondary)}.btn-outline.danger{border-color:#f4433659;color:var(--error)}.btn-outline.danger:hover{background:#f4433614}@media (max-width:640px){.class-actions,.class-toolbar,.editor-actions,.header-actions-inline{align-items:stretch;flex-direction:column;width:100%}.class-actions .btn,.class-toolbar input,.editor-actions .btn,.header-actions-inline .btn,.view-toggle{width:100%}.view-toggle{overflow-x:auto}.class-card{align-items:flex-start;flex-direction:column;gap:16px}.class-date{border-bottom:1px solid var(--border-color);border-right:none;flex-direction:row;gap:12px;padding-bottom:16px;padding-right:0;width:100%}.class-enrollment{align-self:flex-end}.class-summary-panel,.form-grid{grid-template-columns:1fr}.attendance-header{align-items:flex-start;flex-direction:column}}.event-simple-container{margin:0 auto;max-width:1200px;padding:2rem}.page-header{margin-bottom:2rem}.page-header h1{font-size:2rem;margin-bottom:.5rem}.page-header .subtitle{color:#666;font-size:.9rem}.bookings-section{margin-bottom:3rem}.bookings-section h2{font-size:1.5rem;margin-bottom:1rem}.bookings-list{display:flex;flex-direction:column;gap:1rem}.booking-card{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;justify-content:space-between;padding:1.5rem}.booking-info h3{font-size:1.1rem;margin:0 0 .5rem}.booking-time{color:#666;font-size:.9rem;margin:.25rem 0}.booking-purpose{color:#888;font-size:.85rem;font-style:italic;margin:.5rem 0}.status-badge{border-radius:12px;display:inline-block;font-size:.75rem;font-weight:600;margin-top:.5rem;padding:.25rem .75rem;text-transform:uppercase}.status-badge.success{background:#e8f5e9;color:#2e7d32}.status-badge.warning{background:#fff3e0;color:#f57c00}.status-badge.error{background:#ffebee;color:#c62828}.rejection-reason{background:#ffebee;border-left:3px solid #c62828;color:#c62828;font-size:.85rem}.recurring-info,.rejection-reason{border-radius:0 4px 4px 0;margin-top:.5rem;padding:.5rem .75rem}.recurring-info{background-color:#f0f7ff;border-left:3px solid #3b82f6}.recurring-badge{color:#1d4ed8;display:block;font-size:.85rem;font-weight:500}.recurring-notice{color:#6b7280;font-size:.8rem;margin-bottom:0;margin-top:.25rem}.rejection-reason strong{color:#b71c1c}.status-badge.muted{background:#f5f5f5;color:#757575}.status-badge.status-delete-pending,.status-delete-pending{background:#9333ea26;color:#6b21a8}.booking-locked-notice{background:#6b72801a;border-radius:4px;color:#4b5563;display:inline-block;font-size:.7rem;margin-left:.5rem;padding:.25rem .5rem}.climate-section{margin-bottom:3rem}.climate-section h2{font-size:1.5rem;margin-bottom:1rem}.climate-card{background:#fff;border:2px solid #4caf50;border-radius:8px;box-shadow:0 2px 8px #4caf501a;padding:2rem}.climate-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.climate-header h3{font-size:1.2rem;margin:0}.climate-control{margin-bottom:2rem}.climate-control label{display:block;font-size:1.1rem;font-weight:600;margin-bottom:1rem}.temperature-slider{-webkit-appearance:none;background:linear-gradient(90deg,#2196f3,#ff9800,#f44336);border-radius:4px;height:8px;outline:none;width:100%}.temperature-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#4caf50;border-radius:50%;box-shadow:0 2px 4px #0003;cursor:pointer;height:24px;width:24px}.temperature-slider::-moz-range-thumb{background:#4caf50;border:none;border-radius:50%;box-shadow:0 2px 4px #0003;cursor:pointer;height:24px;width:24px}.temp-range{color:#666;display:flex;font-size:.85rem;justify-content:space-between;margin-top:.5rem}.occupancy-control{margin-bottom:1.5rem}.occupancy-control label{display:block;font-weight:600;margin-bottom:.75rem}.toggle-buttons{display:flex;gap:1rem}.climate-info{border-top:1px solid #e0e0e0;color:#666;display:flex;font-size:.85rem;justify-content:space-between;padding-top:1rem}.booking-form-section{margin-bottom:3rem}.booking-form-section h2{font-size:1.5rem;margin-bottom:1rem}.booking-form{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:2rem}.form-group{margin-bottom:1.5rem}.form-group label{color:#333;display:block;font-weight:600;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:4px;font-family:inherit;font-size:1rem;padding:.75rem;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#4caf50;box-shadow:0 0 0 3px #4caf501a;outline:none}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr 1fr}.form-group textarea{resize:vertical}.btn{border:none;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:#4caf50}.btn-primary:hover:not(:disabled){background:#45a049}.btn-outline{background:#fff;border:2px solid #4caf50;color:#4caf50}.btn-outline:hover:not(:disabled){background:#4caf50;color:#fff}.btn-danger{background:#f44336;color:#fff}.btn-danger:hover:not(:disabled){background:#d32f2f}.btn-sm{font-size:.875rem;padding:.5rem 1rem}.alert{border-radius:4px;margin-bottom:1rem;padding:1rem}.alert-error{background:#ffebee;border:1px solid #ef9a9a;color:#c62828}.alert-success{background:#e8f5e9;border:1px solid #a5d6a7;color:#2e7d32}.empty-state{color:#999;padding:3rem 1rem;text-align:center}.loading-indicator{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:4rem}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#4caf50;height:40px;width:40px}@media (max-width:768px){.event-simple-container{padding:1rem}.booking-card{align-items:flex-start;flex-direction:column;gap:1rem}.form-row{grid-template-columns:1fr}.climate-header{align-items:flex-start;flex-direction:column;gap:.5rem}.toggle-buttons{width:100%}.toggle-buttons button{flex:1 1}}.room-controls-container{margin:0 auto;max-width:800px;padding:2rem}.rc-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.rc-header h1{font-size:1.75rem;margin:0}.rc-header-right{align-items:center;display:flex;gap:1rem}.rc-header-right .user-name{color:#555;font-size:.9rem}.rc-header-right .logout-btn{background:#0000;border:1px solid #dc3545;border-radius:6px;color:#dc3545;cursor:pointer;font-size:.85rem;padding:.4rem 1rem;transition:all .2s}.rc-header-right .logout-btn:hover{background:#dc3545;color:#fff}.room-selector{margin-bottom:2rem}.room-selector label{color:#333;display:block;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.room-select{-webkit-appearance:none;appearance:none;background:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='%23555' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.293 7.293a1 1 0 0 1 1.414 0L10 10.586l3.293-3.293a1 1 0 1 1 1.414 1.414l-4 4a1 1 0 0 1-1.414 0l-4-4a1 1 0 0 1 0-1.414z'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:1.25rem;border:1px solid #d0d0d0;border-radius:8px;cursor:pointer;font-size:1rem;padding:.75rem 1rem;width:100%}.room-select:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e526;outline:none}.controls-area{display:flex;flex-direction:column;gap:1.5rem}.control-panel{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 1px 3px #00000014;padding:1.5rem}.control-panel.error,.control-panel.loading{color:#888;padding:2rem;text-align:center}.control-panel.error{background:#fff5f5;border-color:#f5c6cb;color:#dc3545}.control-panel h3{border-bottom:1px solid #eee;font-size:1.15rem;margin:0 0 1.25rem;padding-bottom:.75rem}.climate-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:1fr 1fr}.climate-control,.climate-reading{display:flex;flex-direction:column;gap:.35rem}.climate-control .label,.climate-reading .label{color:#777;font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.climate-reading .value{color:#222;font-size:2rem;font-weight:700}.temp-control{gap:.5rem}.temp-btn,.temp-control{align-items:center;display:flex}.temp-btn{background:#fff;border:1px solid #d0d0d0;border-radius:50%;color:#333;cursor:pointer;font-size:1.2rem;font-weight:700;height:36px;justify-content:center;transition:all .15s;width:36px}.temp-btn:hover:not(:disabled){background:#4f46e5;border-color:#4f46e5;color:#fff}.temp-btn:disabled{cursor:not-allowed;opacity:.4}.temp-value{font-size:1.5rem;font-weight:700;min-width:60px;text-align:center}.control-select{background:#fff;border:1px solid #d0d0d0;border-radius:6px;cursor:pointer;font-size:.9rem;padding:.5rem .75rem}.control-select:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e526;outline:none}.shutter-state{align-items:center;display:flex;gap:1rem;margin-bottom:1rem}.state-badge{border-radius:20px;display:inline-block;font-size:.85rem;font-weight:600;padding:.3rem .75rem}.state-badge.state-open{background:#d4edda;color:#155724}.state-badge.state-closed{background:#f8d7da;color:#721c24}.state-badge.state-unknown{background:#e2e3e5;color:#383d41}.position-label{color:#333;font-size:1.1rem;font-weight:600}.shutter-actions{display:flex;gap:.75rem;margin-bottom:1.25rem}.action-btn{background:#fff;border:1px solid #d0d0d0;border-radius:8px;cursor:pointer;flex:1 1;font-size:.9rem;font-weight:600;padding:.65rem 1rem;transition:all .2s}.action-btn:hover:not(:disabled){background:#f0f0f0}.action-btn:disabled{cursor:not-allowed;opacity:.4}.open-btn:hover:not(:disabled){background:#d4edda;border-color:#28a745;color:#155724}.close-btn:hover:not(:disabled){background:#f8d7da;border-color:#dc3545;color:#721c24}.stop-btn:hover:not(:disabled){background:#fff3cd;border-color:#ffc107;color:#856404}.slider-group{margin-bottom:1rem}.slider-group label{color:#777;display:block;font-size:.8rem;font-weight:600;letter-spacing:.04em;margin-bottom:.35rem;text-transform:uppercase}.slider-row{align-items:center;display:flex;gap:1rem}.slider{-webkit-appearance:none;appearance:none;background:#e0e0e0;border-radius:3px;flex:1 1;height:6px;outline:none}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#4f46e5;border:2px solid #fff;border-radius:50%;box-shadow:0 1px 3px #0003;cursor:pointer;height:20px;width:20px}.slider::-moz-range-thumb{background:#4f46e5;border:2px solid #fff;border-radius:50%;box-shadow:0 1px 3px #0003;cursor:pointer;height:20px;width:20px}.slider:disabled{opacity:.4}.slider-value{font-size:.95rem;font-weight:600;min-width:40px;text-align:right}.entity-panel h3{align-items:center;display:flex;gap:.5rem}.entity-class-badge{border-radius:10px;font-size:.7rem;font-weight:600;letter-spacing:.05em;margin-left:auto;padding:.15rem .5rem;text-transform:uppercase}.entity-class-light{background:#fef3c7;color:#92400e}.entity-class-switch{background:#e0e7ff;color:#3730a3}.entity-state{align-items:center;display:flex;gap:1rem;margin-bottom:1rem}.entity-unavailable{opacity:.65}.entity-unavailable-msg{color:#999;font-size:.85rem;margin:.5rem 0 0}.color-temp-row{align-items:center;display:flex;gap:.5rem}.temp-icon{flex-shrink:0;font-size:1.1rem}.color-temp-slider{background:linear-gradient(90deg,#ff9500,#fff,#9fd5ff)}.entity-effect{align-items:center;border-top:1px solid #eee;display:flex;gap:.75rem;margin-top:.75rem;padding-top:.75rem}.entity-effect .label{color:#777;font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.effect-name{color:#333;font-size:.9rem;font-style:italic}.loading-state{align-items:center;color:#888;display:flex;flex-direction:column;justify-content:center;padding:4rem 2rem}.loading-state .spinner{animation:spin .8s linear infinite;border:3px solid #e0e0e0;border-radius:50%;border-top-color:#4f46e5;height:40px;margin-bottom:1rem;width:40px}.rc-error{background:#fff5f5;border:1px solid #f5c6cb;border-radius:8px;color:#dc3545;margin-bottom:1.5rem;padding:1rem 1.5rem}.rc-empty{color:#888;padding:3rem 2rem;text-align:center}.rc-empty .hint{color:#aaa;font-size:.85rem;margin-top:.5rem}@media (max-width:600px){.room-controls-container{padding:1rem}.rc-header{align-items:flex-start;flex-direction:column;gap:.75rem}.rc-header-right{justify-content:space-between;width:100%}.climate-grid{grid-template-columns:1fr}.shutter-actions{flex-direction:column}}.panoptic-cockpit{--panoptic-ink:#172026;--panoptic-muted:#667580;--panoptic-line:#d7e2e4;--panoptic-surface:#f7faf9;--panoptic-panel:#fff;--panoptic-aqua:#0f766e;--panoptic-blue:#2557a7;--panoptic-coral:#cf513d;--panoptic-gold:#947a2d;grid-gap:18px;color:var(--panoptic-ink);display:grid;gap:18px;margin:0 auto;max-width:1720px}.panoptic-cockpit button,.panoptic-cockpit select,.panoptic-command-palette button,.panoptic-drawer button{border-radius:6px}.panoptic-topbar{grid-gap:14px;align-items:center;background:var(--panoptic-panel);border:1px solid var(--panoptic-line);border-radius:8px;display:grid;gap:14px;grid-template-columns:auto minmax(170px,230px) minmax(260px,1fr) auto;padding:14px}.panoptic-brand{align-items:center;display:flex;gap:12px;min-width:0}.panoptic-mark{background:#d7f7f1;border:1px solid #90cbc6;border-radius:50%;color:#083d3a;display:inline-grid;font-size:1.35rem;font-weight:800;height:46px;place-items:center;width:46px}.panoptic-brand p,.panoptic-runtime-band span,.panoptic-site-select span{color:var(--panoptic-muted);font-size:.76rem;font-weight:700;margin:0;text-transform:uppercase}.panoptic-brand h1,.panoptic-drawer h2,.panoptic-section-head h2{letter-spacing:0;margin:0}.panoptic-brand h1{font-size:1.35rem;line-height:1.1}.panoptic-site-select{grid-gap:4px;display:grid;gap:4px}.panoptic-alert-banner button,.panoptic-command-button,.panoptic-drawer-stack button,.panoptic-icon-button,.panoptic-primary-button,.panoptic-review-rail button,.panoptic-secondary-button,.panoptic-site-select select{background:#fff;border:1px solid var(--panoptic-line);color:var(--panoptic-ink);font-weight:700;min-height:40px}.panoptic-site-select select{padding:8px 10px;width:100%}.panoptic-command-button{align-items:center;background:#f4f8f8;color:var(--panoptic-muted);display:flex;gap:12px;justify-content:space-between;padding:0 12px}.panoptic-command-button kbd{background:#fff;border:1px solid var(--panoptic-line);border-radius:4px;color:var(--panoptic-ink);font-size:.74rem;padding:3px 6px}.panoptic-topbar-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.panoptic-icon-button{display:inline-grid;font-size:1.1rem;padding:0;place-items:center;width:40px}.panoptic-primary-button{background:var(--panoptic-aqua);border-color:var(--panoptic-aqua);color:#fff;padding:0 14px}.panoptic-secondary-button{padding:0 14px}.panoptic-alert-banner{grid-gap:12px;align-items:center;background:#fff3ed;border:1px solid #f1c3ad;border-radius:8px;color:#61210e;display:grid;gap:12px;grid-template-columns:auto 1fr auto;padding:12px 14px}.panoptic-alert-banner span{min-width:0}.panoptic-alert-banner button{background:#fff;padding:0 12px}.panoptic-health-strip{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(5,minmax(0,1fr))}.panoptic-metric{grid-gap:5px;background:var(--panoptic-panel);border:1px solid var(--panoptic-line);display:grid;gap:5px;min-height:112px;padding:12px;text-align:left}.panoptic-metric:hover{border-color:#95b7b7}.panoptic-metric small,.panoptic-metric span{color:var(--panoptic-muted)}.panoptic-metric strong{font-size:1.55rem;line-height:1;word-break:break-word}.panoptic-body{grid-gap:18px;align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1fr) minmax(300px,380px)}.panoptic-main-panel,.panoptic-review-rail{grid-gap:14px;background:var(--panoptic-panel);border:1px solid var(--panoptic-line);border-radius:8px;display:grid;gap:14px;padding:14px}.panoptic-section-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.panoptic-section-head.compact{align-items:center}.panoptic-section-head h2{font-size:1.15rem}.panoptic-section-head p{color:var(--panoptic-muted);margin:3px 0 0}.panoptic-camera-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.panoptic-camera-tile{grid-gap:10px;background:#fbfdfc;border:1px solid var(--panoptic-line);border-radius:8px;display:grid;gap:10px;min-height:260px;padding:10px}.panoptic-camera-tile.is-alert{border-color:#e7a196}.panoptic-camera-tile.is-degraded,.panoptic-camera-tile.is-offline{border-color:#cdbb80}.panoptic-camera-visual{background:linear-gradient(135deg,#0f766e47,#0000 42%),linear-gradient(45deg,#2557a738,#0000 40%),repeating-linear-gradient(0deg,#e9f1f1 0 2px,#dce8e8 2px 4px);border:1px solid #c9dcdd;color:#163f40;min-height:132px;overflow:hidden;position:relative}.panoptic-camera-scanline{animation:panoptic-scanline 4s ease-in-out infinite;background:linear-gradient(90deg,#0000,#ffffff6b,#0000);inset:0;position:absolute;transform:translateX(-80%)}.panoptic-camera-lock{background:#ffffffe0;border:1px solid #1720261f;border-radius:4px;bottom:10px;font-size:.78rem;font-weight:800;left:10px;padding:5px 7px;position:absolute}@keyframes panoptic-scanline{0%,55%{transform:translateX(-80%)}to{transform:translateX(80%)}}@media (prefers-reduced-motion:reduce){.panoptic-camera-scanline{animation:none}}.panoptic-camera-body{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.panoptic-camera-body h3{font-size:1rem;margin:0}.panoptic-camera-body p,.panoptic-camera-foot,.panoptic-inline-state span{color:var(--panoptic-muted);font-size:.86rem;margin:2px 0 0}.panoptic-camera-foot{grid-gap:8px;align-self:end;display:grid;gap:8px}.panoptic-chip-row{display:flex;flex-wrap:wrap;gap:5px}.panoptic-chip{background:#eef4f2;border:1px solid #d8e7e3;border-radius:999px;color:#315254;font-size:.75rem;padding:3px 7px}.panoptic-status{align-items:center;background:#edf7f5;border:1px solid #b9caca;border-radius:999px;color:#234246;display:inline-flex;font-size:.75rem;font-weight:800;justify-content:center;min-height:26px;padding:3px 8px;text-transform:capitalize;width:-webkit-fit-content;width:fit-content}.panoptic-status-alert,.panoptic-status-critical{background:#fff0ec;border-color:#ecad9f;color:#651e16}.panoptic-status-degraded,.panoptic-status-offline,.panoptic-status-unknown,.panoptic-status-warning{background:#fff8de;border-color:#dfca89;color:#5b4404}.panoptic-review-rail{position:-webkit-sticky;position:sticky;top:14px}.panoptic-review-item{grid-gap:7px;display:grid;gap:7px;padding:10px;text-align:left}.panoptic-review-item strong{line-height:1.25}.panoptic-review-item span:not(.panoptic-status){color:var(--panoptic-muted);font-size:.82rem}.panoptic-runtime-band{grid-gap:10px;background:#f7fbfa;border:1px solid var(--panoptic-line);border-radius:8px;display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));padding:12px}.panoptic-runtime-band div{grid-gap:4px;align-content:start;display:grid;gap:4px}.panoptic-runtime-band strong{min-width:0;overflow-wrap:anywhere}.panoptic-empty-state,.panoptic-inline-state{grid-gap:8px;align-content:center;background:var(--panoptic-surface);border:1px dashed #b7c9c9;border-radius:8px;display:grid;gap:8px;min-height:160px;padding:16px}.panoptic-empty-state button{background:var(--panoptic-aqua);border:1px solid var(--panoptic-aqua);color:#fff;min-height:40px;padding:0 12px;width:-webkit-fit-content;width:fit-content}.panoptic-estate-table{border:1px solid var(--panoptic-line);border-radius:8px;display:grid;overflow-x:auto}.panoptic-estate-row{grid-gap:10px;align-items:center;border-bottom:1px solid var(--panoptic-line);display:grid;gap:10px;grid-template-columns:minmax(180px,1.5fr) minmax(140px,1fr) 110px 130px 96px;min-width:720px;padding:10px 12px}.panoptic-estate-row:last-child{border-bottom:0}.panoptic-estate-head{background:var(--panoptic-surface);color:var(--panoptic-muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.panoptic-estate-row button{background:#fff;border:1px solid var(--panoptic-line);font-weight:700;min-height:34px}.panoptic-mobile-actions{display:none}.panoptic-drawer-backdrop,.panoptic-modal-backdrop{background:#0b14186b;inset:0;position:fixed;z-index:500}.panoptic-command-palette{grid-gap:10px;background:#fff;border:1px solid var(--panoptic-line);border-radius:8px;box-shadow:0 20px 70px #00000038;display:grid;gap:10px;margin:12vh auto 0;padding:12px;width:min(640px,calc(100vw - 32px))}.panoptic-command-input{grid-gap:5px;display:grid;gap:5px}.panoptic-command-input span{color:var(--panoptic-muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.panoptic-command-input input{border:1px solid var(--panoptic-line);border-radius:6px;font-size:1rem;min-height:46px;padding:0 12px}.panoptic-command-list{grid-gap:6px;display:grid;gap:6px}.panoptic-command-list button{grid-gap:3px;background:var(--panoptic-surface);border:1px solid #0000;display:grid;gap:3px;padding:10px;text-align:left}.panoptic-command-list span{color:var(--panoptic-muted)}.panoptic-drawer{grid-gap:12px;background:#fff;border-left:1px solid var(--panoptic-line);display:grid;gap:12px;grid-template-rows:auto 1fr;height:100%;margin-left:auto;overflow-y:auto;padding:14px;width:min(460px,calc(100vw - 24px))}.panoptic-drawer header{align-items:center;border-bottom:1px solid var(--panoptic-line);display:flex;gap:12px;justify-content:space-between;padding-bottom:10px}.panoptic-drawer-stack{grid-gap:12px;align-content:start;display:grid;gap:12px}.panoptic-drawer-stack dl{grid-gap:8px;display:grid;gap:8px;margin:0}.panoptic-drawer-stack dl div{grid-gap:10px;border-bottom:1px solid var(--panoptic-line);display:grid;gap:10px;grid-template-columns:minmax(120px,.6fr) minmax(0,1fr);padding:8px 0}.panoptic-drawer-stack dt{color:var(--panoptic-muted);font-weight:800}.panoptic-drawer-stack dd{margin:0;overflow-wrap:anywhere}.panoptic-drawer-stack button{padding:0 12px;text-align:left}@media (max-width:1180px){.panoptic-topbar{grid-template-columns:1fr 1fr}.panoptic-command-button,.panoptic-topbar-actions{grid-column:span 1}.panoptic-health-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.panoptic-body{grid-template-columns:1fr}.panoptic-review-rail{position:static}.panoptic-runtime-band{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.panoptic-cockpit{gap:12px}.panoptic-alert-banner,.panoptic-health-strip,.panoptic-runtime-band,.panoptic-topbar{grid-template-columns:1fr}.panoptic-section-head,.panoptic-topbar-actions{justify-content:stretch}.panoptic-section-head button,.panoptic-topbar-actions>*{flex:1 1}.panoptic-command-button{grid-column:auto}.panoptic-metric{min-height:94px}.panoptic-camera-grid{grid-template-columns:1fr}.panoptic-mobile-actions{grid-gap:6px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f7faf9f0;border:1px solid var(--panoptic-line);border-radius:8px;bottom:72px;display:grid;gap:6px;grid-template-columns:repeat(4,minmax(0,1fr));padding:8px;position:-webkit-sticky;position:sticky}.panoptic-mobile-actions button{background:#fff;border:1px solid var(--panoptic-line);font-size:.78rem;font-weight:800;min-height:40px}}.landing-page{background:var(--bg-primary);min-height:100vh}.landing-nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-bottom:1px solid var(--border-color);left:0;position:fixed;right:0;top:0;z-index:1000}.nav-container{align-items:center;display:flex;height:72px;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 24px}.nav-logo{color:var(--text-primary);font-size:1.5rem;font-weight:700}.nav-logo,.nav-logo:hover{text-decoration:none}.nav-links{display:flex;gap:32px}.nav-links a{color:var(--text-secondary);font-size:.95rem;font-weight:500;text-decoration:none;transition:color var(--transition)}.nav-links a:hover{color:var(--primary);text-decoration:none}.nav-actions{align-items:center;display:flex;gap:12px}.nav-session-link{background:var(--primary);border-radius:var(--radius-md);color:#fff;display:inline-flex;flex-direction:column;justify-content:center;line-height:1.15;min-height:46px;min-width:150px;padding:7px 16px;text-decoration:none;transition:all var(--transition)}.nav-session-link:hover{background:var(--primary-dark);box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-2px)}.nav-session-greeting{font-size:.95rem;font-weight:700}.nav-session-destination{font-size:.76rem;font-weight:600;margin-top:3px;opacity:.88}.nav-session-loading{background:var(--bg-secondary);border-radius:var(--radius-md);height:46px;width:150px}.mobile-menu-toggle{background:none;border:none;color:var(--text-primary);cursor:pointer;display:none;font-size:1.5rem}.btn-primary{align-items:center;background:var(--primary);border:none;border-radius:var(--radius-md);color:#fff;display:inline-flex;font-size:.95rem;font-weight:600;justify-content:center;padding:10px 20px;text-decoration:none;transition:all var(--transition)}.btn-primary:hover{background:var(--primary-dark);box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-2px)}.btn-ghost{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:var(--text-primary);display:inline-flex;font-size:.95rem;font-weight:600;justify-content:center;padding:10px 20px;text-decoration:none;transition:all var(--transition)}.btn-ghost:hover{background:var(--bg-secondary);text-decoration:none}.btn-outline{align-items:center;background:#0000;border:2px solid var(--primary);border-radius:var(--radius-md);color:var(--primary);display:inline-flex;font-size:.95rem;font-weight:600;justify-content:center;padding:10px 20px;text-decoration:none;transition:all var(--transition)}.btn-outline:hover{background:var(--primary);color:#fff;text-decoration:none;transform:translateY(-2px)}.btn-white{align-items:center;background:#fff;border:none;border-radius:var(--radius-md);color:var(--primary);display:inline-flex;font-size:.95rem;font-weight:600;justify-content:center;padding:10px 20px;text-decoration:none;transition:all var(--transition)}.btn-white:hover{background:#f0f0f0;text-decoration:none;transform:translateY(-2px)}.btn-outline-white{align-items:center;background:#0000;border:2px solid #fff;border-radius:var(--radius-md);color:#fff;display:inline-flex;font-size:.95rem;font-weight:600;justify-content:center;padding:10px 20px;text-decoration:none;transition:all var(--transition)}.btn-outline-white:hover{background:#fff;color:var(--primary);text-decoration:none}.btn-large{font-size:1rem;padding:14px 28px}.hero-section{align-items:center;display:flex;gap:60px;justify-content:center;margin:0 auto;max-width:1200px;min-height:100vh;padding:120px 24px 80px}.hero-content{flex:1 1;max-width:560px}.hero-badge{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-radius:50px;color:var(--primary);display:inline-block;font-size:.875rem;font-weight:600;margin-bottom:24px;padding:8px 16px}.hero-content h1{color:var(--text-primary);font-size:3.5rem;font-weight:800;letter-spacing:-.02em;line-height:1.1;margin-bottom:24px}.hero-subtitle{color:var(--text-secondary);font-size:1.25rem;line-height:1.6;margin-bottom:32px}.hero-buttons{gap:16px;margin-bottom:32px}.hero-buttons,.hero-trust{display:flex;flex-wrap:wrap}.hero-trust{gap:24px}.hero-trust span{color:var(--text-secondary);font-size:.875rem}.hero-visual{align-items:center;display:flex;flex:1 1;justify-content:center}.hero-mockup{background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:500px;overflow:hidden;width:100%}.mockup-header{background:#e0e0e0;display:flex;gap:8px;padding:12px 16px}.mockup-dot{border-radius:50%;height:12px;width:12px}.mockup-dot.red{background:#ff5f57}.mockup-dot.yellow{background:#febc2e}.mockup-dot.green{background:#28c840}.mockup-content{display:flex;height:300px}.mockup-sidebar{background:#f5f5f5;display:flex;flex-direction:column;gap:12px;padding:16px 12px;width:60px}.mockup-item{background:#e0e0e0;border-radius:6px;height:32px}.mockup-item.active{background:var(--primary)}.mockup-main{display:flex;flex:1 1;flex-direction:column;gap:12px;padding:16px}.mockup-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;height:80px}.mockup-card.small{height:50px}.section-container{margin:0 auto;max-width:1200px;padding:0 24px}.section-badge{background:var(--primary-light);border-radius:50px;color:#fff;display:inline-block;font-size:.8rem;font-weight:600;letter-spacing:.5px;margin-bottom:16px;padding:6px 14px;text-transform:uppercase}.section-container h2{color:var(--text-primary);font-size:2.5rem;font-weight:700;margin-bottom:16px;text-align:center}.section-subtitle{color:var(--text-secondary);font-size:1.1rem;margin:0 auto 48px;max-width:600px;text-align:center}.features-section{background:var(--bg-secondary);padding:100px 24px;text-align:center}.features-grid{grid-gap:32px;display:grid;gap:32px;grid-template-columns:repeat(3,1fr);margin-top:48px}.feature-card{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:32px;text-align:left;transition:all var(--transition)}.feature-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}.feature-icon{display:block;font-size:2.5rem;margin-bottom:16px}.feature-card h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:12px}.feature-card p{color:var(--text-secondary);line-height:1.6}.how-it-works-section{padding:100px 24px;text-align:center}.steps-container{align-items:flex-start;display:flex;gap:24px;justify-content:center;margin-top:48px}.step-card{flex:1 1;max-width:280px;padding:24px;text-align:center}.step-number{align-items:center;background:var(--primary);border-radius:50%;color:#fff;display:inline-flex;font-size:1.5rem;font-weight:700;height:56px;justify-content:center;margin-bottom:20px;width:56px}.step-card h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:12px}.step-card p{color:var(--text-secondary);line-height:1.6}.step-connector{align-items:center;color:var(--primary);display:flex;font-size:2rem;padding-top:40px}.testimonials-section{background:var(--bg-secondary);padding:100px 24px;text-align:center}.testimonials-grid{grid-gap:32px;display:grid;gap:32px;grid-template-columns:repeat(3,1fr);margin-top:48px}.testimonial-card{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:32px;text-align:left}.testimonial-rating{margin-bottom:16px}.testimonial-card blockquote{color:var(--text-primary);font-size:1.05rem;font-style:italic;line-height:1.7;margin-bottom:24px}.testimonial-author{align-items:center;display:flex;gap:12px}.author-avatar{align-items:center;background:var(--primary);border-radius:50%;color:#fff;display:flex;font-size:1.2rem;font-weight:600;height:48px;justify-content:center;width:48px}.author-info{display:flex;flex-direction:column}.author-info strong{color:var(--text-primary)}.author-info span{color:var(--text-secondary);font-size:.875rem}.faq-section{padding:100px 24px;text-align:center}.faq-list{margin:48px auto 0;max-width:700px;text-align:left}.faq-item{border-bottom:1px solid var(--border-color)}.faq-question{align-items:center;background:none;border:none;color:var(--text-primary);cursor:pointer;display:flex;font-size:1.1rem;font-weight:600;justify-content:space-between;padding:20px 0;text-align:left;transition:color var(--transition);width:100%}.faq-icon,.faq-question:hover{color:var(--primary)}.faq-icon{font-size:1.5rem}.faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease}.faq-item.open .faq-answer{max-height:200px;padding-bottom:20px}.faq-answer p{color:var(--text-secondary);line-height:1.7}.cta-section{background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);padding:80px 24px;text-align:center}.cta-section h2{color:#fff;margin-bottom:12px}.cta-section p{color:#ffffffe6;font-size:1.1rem;margin-bottom:32px}.cta-buttons{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.landing-footer{background:var(--text-primary);color:#fff;padding:60px 24px 30px}.footer-container{margin:0 auto;max-width:1200px}.footer-grid{grid-gap:48px;display:grid;gap:48px;grid-template-columns:2fr 1fr 1fr 1fr;margin-bottom:48px}.footer-brand{max-width:280px}.footer-logo{display:block;font-size:1.5rem;font-weight:700;margin-bottom:16px}.footer-brand p{color:#ffffffb3;margin-bottom:20px}.app-badges{display:flex;gap:12px}.app-badge{align-items:center;background:#ffffff1a;border-radius:var(--radius-md);color:#fff;display:inline-flex;font-size:.9rem;gap:8px;padding:10px 16px;text-decoration:none;transition:background var(--transition)}.app-badge:hover{background:#fff3;text-decoration:none}.footer-links h4{color:#fff;font-size:.9rem;font-weight:600;letter-spacing:.5px;margin-bottom:20px;text-transform:uppercase}.footer-links a{color:#ffffffb3;display:block;font-size:.95rem;padding:6px 0;text-decoration:none;transition:color var(--transition)}.footer-links a:hover{color:#fff;text-decoration:none}.footer-bottom{align-items:center;border-top:1px solid #ffffff1a;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding-top:30px}.footer-bottom p{color:#ffffff80;font-size:.9rem}.footer-legal{display:flex;gap:24px}.footer-legal a{color:#ffffff80;font-size:.9rem;text-decoration:none;transition:color var(--transition)}.footer-legal a:hover{color:#fff;text-decoration:none}@media (max-width:1024px){.hero-section{flex-direction:column;min-height:auto;padding-top:100px;text-align:center}.hero-content{max-width:100%}.hero-buttons,.hero-trust{justify-content:center}.hero-visual{max-width:400px}.features-grid,.footer-grid,.testimonials-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.nav-actions,.nav-links{background:#fff;border-bottom:1px solid var(--border-color);display:none;flex-direction:column;gap:16px;left:0;padding:20px;position:absolute;right:0;top:72px}.nav-actions.open,.nav-links.open{display:flex}.nav-actions.open{border-bottom:none;border-top:1px solid var(--border-color);top:auto}.mobile-menu-toggle{display:block}.hero-content h1{font-size:2.5rem}.section-container h2{font-size:2rem}.features-grid{grid-template-columns:1fr}.steps-container{align-items:center;flex-direction:column}.step-connector{padding:0;transform:rotate(90deg)}.footer-grid,.testimonials-grid{grid-template-columns:1fr}.footer-grid{gap:32px}.footer-bottom{flex-direction:column;text-align:center}}@media (max-width:480px){.hero-content h1{font-size:2rem}.hero-buttons{flex-direction:column}.btn-large{width:100%}.hero-trust{gap:8px}.cta-buttons,.hero-trust{flex-direction:column}.cta-buttons .btn-large{width:100%}}.App{min-height:100vh}button{font-family:inherit}.field-error{color:var(--error);display:block;font-size:.8rem;margin-top:4px}.form-input.error{border-color:var(--error)}.loading-screen{align-items:center;background:var(--bg-secondary);display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:100vh}.loading-screen .spinner{animation:spin .8s linear infinite;border:3px solid var(--border-color);border-radius:50%;border-top-color:var(--primary);height:48px;width:48px}@keyframes spin{to{transform:rotate(1turn)}}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-disabled)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}::selection{background:var(--primary-light);color:#fff}@media print{.bottom-nav,.mobile-header,.sidebar{display:none!important}.main-content{margin:0!important;padding:0!important}}
/*# sourceMappingURL=main.a0ce3f3d.css.map*/