:root{--ink:#171a16;--lime:#c5f65a;--paper:#f6f7f3;--white:#fff;--line:#dfe4d8;--muted:#71796d;--violet:#9a78bf;--blue:#6e9bc8;--green:#668b3e;--shadow:0 16px 50px #1f29180e}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,textarea,select{font:inherit}
button{border:0;background:none;color:inherit;cursor:pointer}
button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #94c53b;outline-offset:2px}
.app{min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:232px;padding:26px 18px;background:var(--ink);color:#fff;display:flex;flex-direction:column;z-index:20}
.brand{display:flex;align-items:center;gap:10px;font-size:25px;font-weight:900;font-style:italic;letter-spacing:-2px;padding:0 8px 24px}
.brand b{color:var(--lime)}
.workspace{background:#252a23;border:1px solid #333a30;border-radius:10px;padding:13px;display:flex;align-items:center;gap:10px;margin-bottom:26px}
.workspace i{height:35px;width:35px;display:grid;place-items:center;border-radius:8px;background:var(--lime);color:var(--ink);font-style:normal;font-weight:900}
.workspace strong,.workspace small{display:block}
.workspace strong{font-size:13px}
.workspace small{font-size:10px;color:#9ca797;margin-top:3px}
.nav-title{font-size:9px;letter-spacing:1.5px;color:#778171;padding:0 9px;margin-bottom:8px}
.nav button{width:100%;display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:7px;color:#bfc7ba;font-size:14px;text-align:left;margin:3px 0}
.nav button:hover,.nav button.active{background:#30372c;color:#fff}
.nav button.active{box-shadow:inset 3px 0 var(--lime)}
.nav svg{width:18px;height:18px}
.privacy{margin-top:auto;border-top:1px solid #333a30;padding:18px 8px 0;color:#9ca697;font-size:11px;line-height:1.55}
.privacy strong{color:var(--lime);display:block;margin-bottom:5px}
.shell{margin-left:232px;min-height:100vh}
.topbar{height:72px;padding:0 34px;border-bottom:1px solid var(--line);background:#ffffffdf;backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:12}
.crumb{font-size:14px;color:#61695b}
.crumb b{color:#a4aa9e;padding:0 10px}
.top-actions{display:flex;align-items:center;gap:12px}
.live{display:flex;align-items:center;gap:7px;color:var(--green);font-size:12px}
.live i{height:7px;width:7px;border-radius:50%;background:#76a53d}
.avatar{height:32px;width:32px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--lime);font-size:11px;font-weight:800}
.menu{display:none;padding:7px}
.content{padding:35px;max-width:1260px;margin:0 auto}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.5px;color:#67705f}
.page-head h1{font-size:40px;line-height:1.02;letter-spacing:-2px;margin:8px 0 7px}
.subtitle{color:var(--muted);font-size:15px}
.primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--lime);border:1px solid #a9da49;border-radius:8px;padding:12px 17px;font-size:14px;font-weight:800}
.primary:hover{background:#b9ed50}
.notice{display:flex;align-items:center;gap:10px;background:#edf3e4;border:1px solid #dce8cc;border-radius:9px;padding:11px 14px;margin-bottom:22px;color:#58654c;font-size:13px}
.notice strong{color:#3d4b32}
.grid-top{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:18px;margin-bottom:22px}
.next{background:var(--ink);color:#fff;border-radius:14px;padding:25px;position:relative;overflow:hidden;min-height:208px}
.next .eyebrow{color:var(--lime)}
.next h2{font-size:30px;letter-spacing:-1.3px;margin:29px 0 11px;position:relative;z-index:1}
.next p{color:#cfd6ca;font-size:13px;margin:6px 0;display:flex;align-items:center;gap:7px;position:relative;z-index:1}
.next .ghost{position:absolute;right:-5px;bottom:-75px;font-weight:950;font-style:italic;font-size:240px;letter-spacing:-24px;color:#ffffff05}
.stat{background:#e9efdf;border:1px solid #dae5ca;border-radius:14px;padding:24px;display:flex;flex-direction:column;justify-content:space-between}
.stat strong{font-size:70px;letter-spacing:-5px;line-height:1}
.stat p{color:#5f6956;font-size:13px;line-height:1.4}
.stat small{color:#68735f}
.main-grid{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:20px}
.panel,.rail-card,.team-card,.chat,.apps{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.panel{overflow:hidden}
.panel-head{padding:20px 22px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.panel-head h2{font-size:19px;margin:0}
.head-actions{display:flex;align-items:center;gap:12px}
.segmented{background:#eef2e8;border:1px solid #e0e6d8;padding:3px;border-radius:7px;display:flex}
.segmented button{font-size:12px;font-weight:700;padding:6px 10px;border-radius:5px;color:#6d7666}
.segmented button.active{background:var(--ink);color:#fff}
.link-btn{font-size:12px;font-weight:700;color:#5e6b54}
.calendar-tools{padding:0 22px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.filters{display:flex;gap:5px;flex-wrap:wrap}
.filters button{font-size:12px;padding:7px 10px;border-radius:6px;color:#727b69}
.filters button.active{background:#edf1e8;color:var(--ink);font-weight:800}
.filters i,.dots i{display:inline-block;height:6px;width:6px;border-radius:50%;margin-right:4px}
.avery{background:var(--violet)}
.jordan{background:var(--blue)}
.period{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.period button{padding:6px;border-radius:6px}
.period strong{min-width:110px;text-align:center;color:var(--ink)}
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;padding:0 22px 20px}
.week button{background:#f4f6f1;border-radius:8px;padding:9px 3px 7px;display:flex;flex-direction:column;align-items:center;gap:4px}
.week button.active{background:var(--lime)}
.week span{font-size:10px;color:var(--muted)}
.week strong{font-size:19px}
.dots{height:7px;display:flex}
.month-labels,.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.month-labels{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f4f6f1}
.month-labels span{text-align:center;padding:8px 2px;font-size:10px;font-weight:800;color:#70786a}
.month-day{min-height:95px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px;text-align:left;overflow:hidden}
.month-day:nth-child(7n){border-right:0}
.month-day.outside{background:#f7f8f5;color:#a1a79b}
.month-day.active{box-shadow:inset 0 0 0 2px #96c443;background:#fbfff3}
.month-day.today b{background:var(--ink);color:var(--lime)}
.month-day b{height:21px;width:21px;border-radius:50%;display:grid;place-items:center;font-size:12px}
.mini-event{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid var(--violet);background:#f5f0f8;padding:3px;border-radius:3px}
.mini-event.j{border-color:var(--blue);background:#f0f5f9}
.more{font-size:9px;color:var(--muted)}
.day-title{display:flex;justify-content:space-between;padding:16px 22px 7px;border-top:1px solid var(--line);font-size:13px;font-weight:800}
.day-title span{font-size:11px;color:var(--muted);font-weight:500}
.event{width:100%;display:grid;grid-template-columns:53px 3px minmax(0,1fr) auto;gap:13px;align-items:start;text-align:left;padding:18px 22px;border-bottom:1px solid #eff1eb}
.event:hover{background:#fafbf7}
.event:last-child{border-bottom:0}
.time strong,.time small{display:block}
.time strong{font-size:17px}
.time small{font-size:10px;color:var(--muted)}
.bar{height:86px;border-radius:4px}
.event h3{font-size:16px;margin:6px 0 4px}
.event p{font-size:11px;color:var(--muted);margin:3px 0}
.tag{font-size:10px;padding:3px 6px;border-radius:4px;background:#eee8f3}
.tag.j{background:#eaf1f7}
.source{font-size:10px;color:#899083}
.rail{display:flex;flex-direction:column;gap:18px}
.rail-card{padding:21px}
.rail-card h2{font-size:17px;margin:0 0 20px}
.rail-card h3{font-size:25px;letter-spacing:-1px;margin:13px 0 9px}
.rail-card p{font-size:13px;color:var(--muted);line-height:1.55}
.chip{font-size:9px;font-weight:800;letter-spacing:.8px;background:#fff0d6;color:#7b5b20;padding:4px 7px;border-radius:4px}
.logos{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0}
.logos i{height:31px;width:31px;display:grid;place-items:center;border-radius:7px;background:var(--ink);color:var(--lime);font-style:normal;font-size:9px;font-weight:900}
.empty{padding:42px 20px;text-align:center;color:var(--muted)}
.empty h3{color:var(--ink)}
.hidden{display:none!important}
.teams{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.team-card{padding:23px}
.team-icon{height:47px;width:47px;border-radius:11px;background:#eff4e7;display:grid;place-items:center;font-size:23px}
.team-card h2{font-size:20px;margin:17px 0 7px}
.team-card p{font-size:13px;color:var(--muted)}
.outline{border:1px solid #dbe2d3;border-radius:7px;padding:9px 12px;font-size:12px;font-weight:700}
.ride{display:flex;align-items:center;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}
.ride:last-child{border-bottom:0}
.ride .avatar{background:#eef2e8;color:var(--ink)}
.ride-info{flex:1}
.ride-info strong{display:block;font-size:14px}
.ride-info span{font-size:11px;color:var(--muted)}
.chat{display:grid;grid-template-columns:190px minmax(0,1fr);min-height:520px;overflow:hidden}
.rooms{background:#eef2e8;border-right:1px solid var(--line);padding:18px 12px}
.rooms button{width:100%;padding:10px;border-radius:7px;text-align:left;font-size:12px;margin:3px 0}
.rooms button.active{background:var(--lime);font-weight:800}
.messages{padding:22px;display:flex;flex-direction:column}
.messages h2{font-size:18px;margin:0;padding-bottom:17px;border-bottom:1px solid var(--line)}
.message-list{flex:1;padding:12px 0}
.message{display:flex;gap:10px;padding:9px 0}
.message .avatar{height:30px;width:30px;background:#e6ecdd;color:var(--ink)}
.bubble{background:#f2f5ed;border-radius:0 9px 9px 9px;padding:10px 13px;font-size:13px}
.bubble small{display:block;color:var(--muted);font-size:9px;margin-bottom:4px}
.compose{display:flex;gap:8px;border-top:1px solid var(--line);padding-top:14px}
.compose input{flex:1;border:1px solid #d7ded0;border-radius:8px;padding:11px 12px;background:#fafbf8;min-width:0}
.apps{padding:24px}
.app-row{display:grid;grid-template-columns:42px 1fr auto;gap:13px;align-items:center;border-bottom:1px solid var(--line);padding:14px 0}
.app-row:last-child{border-bottom:0}
.app-logo{height:39px;width:39px;border-radius:9px;background:var(--ink);color:var(--lime);display:grid;place-items:center;font-size:10px;font-weight:900}
.app-row strong,.app-row small{display:block}
.app-row small{font-size:11px;color:var(--muted);margin-top:3px}
.status{font-size:10px;color:var(--green);font-weight:800}
.modal-bg{position:fixed;inset:0;background:#11180bc0;z-index:50;display:grid;place-items:center;padding:16px}
.modal{width:min(500px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:15px;padding:28px;position:relative}
.close{position:absolute;right:14px;top:12px;font-size:25px;color:var(--muted)}
.modal h2{font-size:27px;margin:8px 0}
.modal p{color:var(--muted);font-size:13px;line-height:1.5}
.info{background:#f3f6ed;border-radius:9px;padding:14px;margin:18px 0}
.info div{font-size:13px;margin:8px 0}
.form label{display:block;font-size:12px;font-weight:700;margin:12px 0}
.form input,.form select{display:block;width:100%;margin-top:6px;border:1px solid #d8dfd1;border-radius:7px;padding:10px;background:#fafbf8}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.toast{position:fixed;z-index:70;left:50%;bottom:22px;transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:9px;padding:12px 18px;font-size:13px;box-shadow:0 10px 30px #0004}
.install{position:fixed;z-index:35;right:16px;bottom:16px;background:var(--ink);color:#fff;border:1px solid #3f4939;border-radius:12px;padding:12px 14px;max-width:310px;box-shadow:0 18px 50px #0004;display:flex;gap:10px;align-items:flex-start}
.install b{color:var(--lime);font-size:12px}
.install p{font-size:10px;color:#cbd2c6;margin:3px 0 0;line-height:1.4}
.install .x{color:#bbc3b5;padding:0}
.mobile-nav{display:none}
footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:20px 0 70px;margin-top:28px;font-size:9px;color:#929a8d;letter-spacing:1px}
@media(max-width:950px){.sidebar{width:190px}
.shell{margin-left:190px}
.content{padding:28px 20px}
.main-grid{grid-template-columns:1fr}
.rail{display:grid;grid-template-columns:1fr 1fr}
.teams{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){.sidebar{display:none}
.shell{margin-left:0}
.topbar{height:62px;padding:0 15px}
.menu{display:block}
.content{padding:22px 14px 95px}
.page-head{align-items:flex-start}
.page-head h1{font-size:30px}
.page-head .primary{padding:10px;font-size:12px}
.grid-top{grid-template-columns:1fr}
.stat{flex-direction:row;align-items:center;padding:16px 18px}
.stat strong{font-size:45px}
.stat p{margin:0}
.main-grid{display:block}
.rail{grid-template-columns:1fr 1fr;margin-top:13px;gap:12px}
.rail-card{padding:16px}
.rail-card h3{font-size:20px}
.panel-head{padding:17px 14px 12px;align-items:flex-start;flex-wrap:wrap}
.head-actions{width:100%;justify-content:space-between}
.calendar-tools{padding:0 14px 14px}
.period{width:100%;justify-content:flex-end}
.week{padding:0 12px 16px;gap:4px}
.week strong{font-size:16px}
.month-day{min-height:58px;padding:4px 2px}
.month-day .mini-event{display:none}
.month-day b{font-size:11px}
.month-day .dots{display:flex}
.month-labels span{font-size:8px}
.day-title{padding:14px 14px 6px}
.event{grid-template-columns:44px 3px minmax(0,1fr);padding:17px 14px;gap:9px}
.event .source{display:none}
.bar{height:88px}
.teams{grid-template-columns:1fr 1fr;gap:12px}
.team-card{padding:17px}
.team-card h2{font-size:17px}
.chat{grid-template-columns:1fr}
.rooms{display:flex;gap:5px;border-right:0;border-bottom:1px solid var(--line);padding:10px}
.rooms button{width:auto}
.messages{padding:16px}
.form-grid{grid-template-columns:1fr}
.install{left:12px;right:12px;bottom:74px;max-width:none}
.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(6,1fr);left:0;right:0;bottom:0;z-index:30;background:#fff;border-top:1px solid var(--line);padding:7px 6px max(7px,env(safe-area-inset-bottom))}
.mobile-nav button{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:9px;color:#7c8576}
.mobile-nav button.active{color:var(--ink);font-weight:800}
.mobile-nav svg{height:18px;width:18px}
footer{padding-bottom:10px}
}

/* ---- Production additions ---- */
.boot{min-height:100vh;display:grid;place-items:center;color:var(--muted);font-size:14px}
.auth-wrap{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--paper)}
.auth-hero{background:var(--ink);color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.auth-hero h1{font-size:54px;line-height:1;letter-spacing:-3px;margin:0 0 16px;position:relative;z-index:1}
.auth-hero p{color:#cfd6ca;font-size:16px;line-height:1.55;max-width:420px;position:relative;z-index:1}
.auth-hero .ghost{position:absolute;right:-10px;bottom:-90px;font-weight:950;font-style:italic;font-size:300px;letter-spacing:-30px;color:#ffffff07}
.auth-hero ul{list-style:none;padding:0;margin:24px 0 0;position:relative;z-index:1}
.auth-hero li{color:#dfe6d9;font-size:14px;margin:10px 0}
.auth-hero li::before{content:"✓";color:var(--lime);font-weight:900;margin-right:10px}
.auth-card{align-self:center;justify-self:center;width:min(420px,100% - 32px);background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px;box-shadow:var(--shadow);margin:32px 0}
.auth-card h2{font-size:28px;letter-spacing:-1px;margin:6px 0 6px}
.auth-card p{color:var(--muted);font-size:13px;line-height:1.5}
.auth-links{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:16px;font-size:13px}
.auth-links button,.text-btn{color:#566d3e;font-weight:700;font-size:13px;padding:0}
.auth-foot{margin-top:22px;font-size:11px;color:var(--muted);text-align:center}
.auth-foot a{color:#566d3e}
.full{width:100%}
.primary:disabled,.outline:disabled{opacity:.55;cursor:wait}
.error{background:#fdecea;border:1px solid #f3c5bf;color:#8a2c20;border-radius:8px;padding:10px 12px;font-size:13px;margin:10px 0}
.success{background:#edf3e4;border:1px solid #dce8cc;color:#3d4b32;border-radius:8px;padding:10px 12px;font-size:13px;margin:10px 0}
.form textarea{display:block;width:100%;margin-top:6px;border:1px solid #d8dfd1;border-radius:7px;padding:10px;background:#fafbf8;min-height:80px;resize:vertical}
.form small.hint{display:block;font-weight:400;color:var(--muted);margin-top:5px;font-size:11px}
.form-grid.three{grid-template-columns:2fr 1fr 1fr}
.choice{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.choice .panel{padding:22px}
.choice h3{margin:0 0 6px;font-size:18px}
.choice p{font-size:13px;color:var(--muted);margin:0 0 6px}
.dot{display:inline-block;height:8px;width:8px;border-radius:50%;flex:none}
.filters .dot{height:6px;width:6px;margin-right:5px;vertical-align:1px}
.dots .dot{height:6px;width:6px;margin:0 1px}
.mini-event{border-left-color:var(--c,var(--violet));background:color-mix(in srgb,var(--c,var(--violet)) 12%,#fff)}
.tag{background:color-mix(in srgb,var(--c,#9a78bf) 16%,#fff)}
.bar{background:var(--c,#b8c0b0)}
.danger{color:#a33a2c}
.danger-btn{border:1px solid #f0c9c3;color:#a33a2c;border-radius:7px;padding:9px 12px;font-size:12px;font-weight:700}
.row-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.section{margin-bottom:22px}
.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.section-head h2{font-size:19px;margin:0}
.athlete-chips{display:flex;flex-wrap:wrap;gap:8px}
.athlete-chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:700}
.team-card .meta{font-size:11px;color:var(--muted);margin:6px 0 0}
.sync-ok{color:var(--green);font-weight:700}
.list-card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:6px 22px}
.list-row{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
.list-row:last-child{border-bottom:0}
.list-row .grow{flex:1;min-width:0}
.list-row strong{display:block;font-size:14px}
.list-row span.sub{font-size:12px;color:var(--muted)}
.pill{font-size:10px;font-weight:800;letter-spacing:.5px;padding:4px 8px;border-radius:999px;background:#eef2e8;color:#5e6b54;white-space:nowrap}
.pill.warn{background:#fff0d6;color:#7b5b20}
.pill.ok{background:#e4f2d2;color:#3f6a1c}
.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:22px;letter-spacing:3px;font-weight:800;background:#f3f6ed;border-radius:8px;padding:10px 14px;display:inline-block}
.message.mine{flex-direction:row-reverse}
.message.mine .bubble{background:#e7f5c9;border-radius:9px 0 9px 9px}
.message-list{overflow-y:auto;max-height:60vh}
.messages .empty{padding:30px 10px}
.bubble{white-space:pre-wrap;word-break:break-word;max-width:520px}
.checklist{list-style:none;padding:0;margin:8px 0 0}
.checklist li{display:flex;gap:10px;align-items:center;padding:9px 0;font-size:14px;border-bottom:1px solid #eff1eb}
.checklist li:last-child{border-bottom:0}
.checklist i{height:20px;width:20px;border-radius:50%;border:2px solid #cfd8c4;display:grid;place-items:center;font-style:normal;font-size:11px;flex:none}
.checklist li.done i{background:var(--lime);border-color:#a9da49}
.checklist li.done span{color:var(--muted);text-decoration:line-through}
.next .ride-chip{display:inline-block;margin-top:10px;position:relative;z-index:1}
.workspace{width:100%;text-align:left;color:#fff}
.workspace small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar .signout{margin-top:14px;color:#9ca697;font-size:12px;text-align:left;padding:0 8px}
.footer-links{display:flex;gap:14px}
footer a{color:#7d8678;text-decoration:none}
@media(max-width:900px){.auth-wrap{grid-template-columns:1fr}.auth-hero{padding:32px 24px}.auth-hero h1{font-size:38px}.auth-hero ul{display:none}}
@media(max-width:700px){.choice{grid-template-columns:1fr}.list-row .grow{flex-basis:calc(100% - 60px)}.list-row .pill{margin-left:50px}.page-head .primary{white-space:nowrap}.form-grid.three{grid-template-columns:1fr 1fr}.list-card{padding:4px 14px}.list-row{flex-wrap:wrap}.message-list{max-height:none}footer{flex-direction:column;gap:10px}}
