:root{--ink:#17343a;--muted:#60777b;--brand:#0b4854;--brand2:#087481;--mint:#dcefeb;--paper:#f4f7f6;--white:#fff;--gold:#e7ad54;--line:#dbe5e3;--danger:#b23b45;--shadow:0 12px 35px rgba(15,54,59,.09);--radius:18px}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.55}a{color:var(--brand2);text-decoration:none}a:hover{text-decoration:underline}button,a,input,select,textarea{min-height:44px}.skip-link{position:fixed;left:1rem;top:-4rem;background:#fff;padding:.8rem;z-index:999}.skip-link:focus{top:1rem}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.app-width{height:100%;padding:0 2rem}.brand{display:flex;align-items:center;gap:.7rem;color:var(--ink);font-weight:800}.brand img{width:38px;height:38px}.user-chip{display:flex;flex-direction:column;text-align:right}.user-chip small{color:var(--muted)}.app-shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:calc(100vh - 72px)}.sidebar{background:#fff;border-right:1px solid var(--line);padding:1.5rem 1rem}.sidebar nav{position:sticky;top:96px}.nav-item{display:flex;gap:.8rem;align-items:center;padding:.75rem 1rem;color:var(--ink);border-radius:12px;margin-bottom:.3rem;min-height:48px}.nav-item:hover{background:var(--mint);text-decoration:none}.main-content{padding:2rem clamp(1rem,3vw,3rem) 5rem;min-width:0;max-width:1500px;width:100%}.mobile-nav{display:none}.page-head,.admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.8rem}.page-head h1,.admin-head h1{font-size:clamp(2rem,4vw,3rem);letter-spacing:-.04em;margin:.1rem 0}.page-head p{color:var(--muted);max-width:52rem}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:800;color:var(--brand2);margin:0}.card,.form-card,.booking-card,.install-card,.list-card,.table-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:1.2rem}.feature-card{background:linear-gradient(135deg,#0b4854,#087481);color:#fff;padding:2rem;border:0}.feature-card h2{font-size:1.8rem;margin:1.3rem 0 .5rem}.badge-soft{background:#ffffff26;padding:.4rem .7rem;border-radius:999px;font-size:.8rem}.stats-card{display:grid;grid-template-columns:1fr 1fr;padding:1.4rem}.stats-card div{display:flex;flex-direction:column;justify-content:center;padding:1rem}.stats-card div+div{border-left:1px solid var(--line)}.stats-card strong{font-size:2.3rem}.stats-card span{color:var(--muted)}.section-head{display:flex;justify-content:space-between;align-items:center;margin:2rem 0 1rem}.section-head h2{font-size:1.25rem;margin:0}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.event-card{display:grid;grid-template-columns:70px 1fr;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem;box-shadow:0 5px 18px #17343a0a}.event-date{height:70px;border-radius:14px;background:var(--mint);display:flex;flex-direction:column;align-items:center;justify-content:center;text-transform:uppercase}.event-date strong{font-size:1.55rem;line-height:1}.event-date span{font-size:.75rem;font-weight:700}.event-card h3{font-size:1.12rem;margin:.8rem 0 .35rem}.event-card h3 a{color:var(--ink)}.event-card p{font-size:.9rem;color:var(--muted);margin:0 0 .7rem}.event-meta{font-size:.86rem;color:var(--muted)}.seats{font-size:.84rem;font-weight:700;color:var(--brand2);margin-top:.5rem}.chip,.status{display:inline-flex;align-items:center;border-radius:999px;background:#edf3f2;color:#31545a;padding:.25rem .55rem;font-size:.75rem;font-weight:700;min-height:0}.chip.internal{background:#f5e9d3;color:#775423}.chip.network{background:#dcefeb;color:#075e68}.status.warning{background:#fff0d6;color:#7b4d00}.filter-bar{display:grid;grid-template-columns:2fr 1fr 1fr auto auto;gap:.7rem;background:#fff;padding:1rem;border:1px solid var(--line);border-radius:16px}.check{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.check input{min-height:0;width:20px;height:20px}.view-toggle,.toolbar{display:flex;justify-content:space-between;align-items:center;margin:1.2rem 0}.card-grid.list-view{grid-template-columns:1fr}.back-link{display:inline-block;margin-bottom:1.2rem}.detail-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:2rem}.detail-layout h1{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.045em}.lead{font-size:1.2rem;color:var(--muted)}.detail-section{border-top:1px solid var(--line);padding-top:1.5rem;margin-top:2rem}.detail-section h2,.booking-card h2{font-size:1.25rem}.speaker{display:flex;gap:.8rem;align-items:center}.speaker small,.list-row small,td small{display:block;color:var(--muted)}.avatar{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;background:var(--mint);font-weight:800}.booking-card{padding:1.5rem;position:sticky;top:95px;height:max-content}.booking-card dl dt{font-size:.75rem;text-transform:uppercase;color:var(--muted);letter-spacing:.08em}.booking-card dd{margin:0 0 1rem}.capacity{margin:1rem 0}.progress{height:8px;background:#e6eeee;border-radius:999px;overflow:hidden}.progress div{height:100%;background:var(--brand2)}.program-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}.program-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;color:var(--ink);box-shadow:var(--shadow)}.program-card:hover{text-decoration:none;transform:translateY(-2px)}.program-card h2{font-size:1.35rem;margin:1rem 0 .5rem}.program-card p{color:var(--muted)}.program-card>div{display:flex;justify-content:space-between;align-items:center;font-size:.85rem}.program-mark{display:inline-block;background:var(--brand);color:#fff;border-radius:8px;padding:.35rem .55rem;font-size:.75rem;font-weight:800}.program-hero{display:grid;grid-template-columns:2fr 1fr;gap:2rem;background:linear-gradient(135deg,#fff,#e7f3f1);padding:2rem;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:2rem}.program-hero h1{font-size:clamp(2rem,4vw,3.2rem);margin:.8rem 0}.progress-panel{align-self:center;background:#fff;padding:1.2rem;border-radius:14px}.progress-panel strong,.progress-panel span{display:block}.mini-event{display:flex;gap:.8rem;background:#fff;border:1px solid var(--line);padding:.8rem;border-radius:12px;margin-bottom:.6rem;color:var(--ink)}.mini-event>span{font-weight:800;color:var(--brand2)}.mini-event small{display:block;color:var(--muted)}.facts{display:grid;grid-template-columns:140px 1fr;gap:.6rem}.facts dt{color:var(--muted)}.tab-bar{display:flex;gap:.4rem;overflow:auto;margin-bottom:1rem}.tab-bar button{background:transparent;border:0;border-bottom:3px solid transparent;padding:.6rem 1rem;white-space:nowrap}.tab-bar button.active{border-color:var(--brand2);color:var(--brand2);font-weight:800}.list-card{overflow:hidden}.list-row{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;padding:1rem;border-bottom:1px solid var(--line);color:var(--ink);min-height:66px}.list-row:last-child{border-bottom:0}.list-row:hover{background:#f8fbfa;text-decoration:none}.doc-icon,.date-tile{width:48px;height:44px;border-radius:10px;background:var(--mint);display:grid;place-items:center;font-size:.7rem;font-weight:800}.form-card,.install-card{padding:1.6rem}.form-card.wide{max-width:960px}.form-card form>div:not(.stepper):not(.form-actions){margin-bottom:1rem}.form-card label{font-weight:700;font-size:.9rem;margin-bottom:.35rem}.form-card input,.form-card select,.form-card textarea{display:block;width:100%;padding:.65rem .8rem;border:1px solid #afc2bf;border-radius:9px}.form-card input:focus,.form-card select:focus,.form-card textarea:focus{outline:3px solid #4cb5c044;border-color:var(--brand2)}.form-card ul{padding-left:1.2rem}.form-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:1.5rem}.install-card ol{padding-left:1.2rem}.admin-head{border-bottom:1px solid var(--line);padding-bottom:1rem}.admin-head nav{display:flex;gap:.3rem;flex-wrap:wrap}.admin-head nav a{padding:.6rem .8rem;color:var(--ink);border-radius:8px}.admin-head nav a:hover{background:var(--mint);text-decoration:none}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.metric{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.3rem;display:flex;flex-direction:column}.metric strong{font-size:2.4rem}.metric small,.metric span{color:var(--muted)}.alert-metric{border-left:5px solid var(--gold)}.quick-actions{display:flex;gap:.7rem;margin:1rem 0 2rem;flex-wrap:wrap}.table-card{overflow:auto}.table-card table{width:100%;border-collapse:collapse;min-width:720px}.table-card th,.table-card td{text-align:left;padding:1rem;border-bottom:1px solid var(--line);vertical-align:middle}.table-card th{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#f8fbfa}.stepper{display:flex;gap:.5rem;margin-bottom:1.5rem;overflow:auto}.stepper span{padding:.5rem .75rem;background:#edf2f1;border-radius:999px;white-space:nowrap;font-size:.82rem}.stepper span.active{background:var(--brand);color:#fff}.event-admin-summary{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.3rem;margin-bottom:1rem}.search-inline{display:flex;gap:.5rem}.auth-main{min-height:100vh;background:linear-gradient(130deg,#082f39 0 48%,#f2f6f5 48%)}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:8vw;padding:6vw}.auth-brand{color:#fff;max-width:640px}.auth-brand img{width:70px;margin-bottom:2rem}.auth-brand .eyebrow{color:#71c7bd}.auth-brand h1{font-size:clamp(2.5rem,5vw,5rem);letter-spacing:-.055em;line-height:1.03}.auth-brand>p:last-child{font-size:1.1rem;color:#c9ddda;max-width:34rem}.auth-card{background:#fff;border-radius:24px;padding:clamp(1.5rem,4vw,3rem);box-shadow:0 30px 80px #001a2044;max-width:480px;width:100%}.auth-card h2{font-size:2rem}.auth-card label{display:block;font-weight:700;margin:.9rem 0 .3rem}.auth-card .subtle-link{display:inline-block;margin:1rem 0}.invite-note{background:#f1f6f5;border-radius:12px;padding:1rem;margin:1rem 0}.narrow{max-width:760px;margin:auto}.empty{padding:2rem;background:#fff;border:1px dashed #b5c8c5;border-radius:16px;color:var(--muted)}.messages{margin-bottom:1rem}.btn-primary{background:var(--brand2);border-color:var(--brand2)}.btn-primary:hover{background:var(--brand);border-color:var(--brand)}.btn:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.ios-install{color:var(--brand2)}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.main-content{padding:1.4rem 1rem 6rem}.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);bottom:0;left:0;right:0;z-index:30;background:#fff;border-top:1px solid var(--line);padding:.35rem max(.25rem,env(safe-area-inset-right)) calc(.35rem + env(safe-area-inset-bottom))}.mobile-nav a{min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ink);font-size:1.1rem}.mobile-nav span{font-size:.67rem}.dashboard-grid,.detail-layout,.program-hero{grid-template-columns:1fr}.booking-card{position:static;grid-row:1}.filter-bar{grid-template-columns:1fr 1fr}.filter-bar input:first-child{grid-column:1/-1}.admin-head{display:block}.admin-head nav{margin-top:1rem}.auth-layout{grid-template-columns:1fr;padding:5vw}.auth-brand{display:none}.auth-main{background:linear-gradient(160deg,#0b4854 0 20%,#f2f6f5 20%)}.auth-card{margin:auto}.metric-grid{grid-template-columns:1fr 1fr}.app-width{padding:0 1rem}.user-chip span{max-width:150px;overflow:hidden;text-overflow:ellipsis}.topbar{height:62px}.app-shell{min-height:calc(100vh - 62px)}}
@media(max-width:600px){.card-grid,.program-grid,.metric-grid{grid-template-columns:1fr}.page-head{display:block}.page-head .btn{margin-top:1rem}.stats-card{grid-template-columns:1fr 1fr}.filter-bar{grid-template-columns:1fr}.filter-bar input:first-child{grid-column:auto}.event-card{grid-template-columns:56px 1fr;padding:.9rem}.event-date{height:56px}.event-admin-summary,.toolbar{align-items:flex-start;flex-direction:column;gap:.8rem}.search-inline{width:100%}.search-inline input{min-width:0}.list-row{grid-template-columns:auto 1fr}.list-row>span:last-child{grid-column:2}.brand span{font-size:.9rem}.user-chip span{display:none}.auth-layout{padding:1rem;padding-top:14vh}.auth-card{padding:1.4rem;border-radius:18px}.facts{grid-template-columns:1fr}.facts dd{margin-left:0}.quick-actions .btn{width:100%}}
@media(prefers-reduced-motion:no-preference){.program-card{transition:transform .2s}}
.mobile-preview{width:390px;max-width:390px;overflow-x:hidden}.mobile-preview .app-shell{grid-template-columns:1fr}.mobile-preview .sidebar{display:none}.mobile-preview .main-content{padding:1.1rem .9rem 6rem}.mobile-preview .mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);bottom:0;left:0;width:390px;z-index:30;background:#fff;border-top:1px solid var(--line);padding:.35rem}.mobile-preview .mobile-nav a{min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ink)}.mobile-preview .mobile-nav span{font-size:.65rem}.mobile-preview .dashboard-grid,.mobile-preview .detail-layout,.mobile-preview .program-hero,.mobile-preview .card-grid,.mobile-preview .program-grid,.mobile-preview .metric-grid{grid-template-columns:1fr}.mobile-preview .booking-card{position:static;grid-row:1}.mobile-preview .filter-bar{grid-template-columns:1fr}.mobile-preview .filter-bar input:first-child{grid-column:auto}.mobile-preview .auth-layout{grid-template-columns:1fr;padding:1rem;padding-top:10vh}.mobile-preview .auth-brand{display:none}.mobile-preview.auth-main{background:linear-gradient(160deg,#0b4854 0 18%,#f2f6f5 18%)}.mobile-preview .auth-card{padding:1.3rem;border-radius:18px}.mobile-preview .page-head{display:block}.mobile-preview .event-card{grid-template-columns:56px 1fr;padding:.85rem}.mobile-preview .event-date{height:56px}.mobile-preview .topbar{height:62px}.mobile-preview .app-width{padding:0 .8rem}.mobile-preview .user-chip span{display:none}
