:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#142033;background:#edf6fb;--navy:#123d63;--blue:#2f6f9f;--sky:#cfeafb;--line:#d8e6ef;--muted:#617789}*{box-sizing:border-box}body{margin:0;min-height:100%;background:linear-gradient(180deg,#d9f0ff 0,#eef8fd 220px,#f5f8fa 520px,#eef3f6 100%);position:relative}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #b9cad7;border-radius:10px;padding:.72rem 1rem;background:#fff;color:#17304c}button:hover{border-color:#7599b6}button.primary{background:var(--navy);color:#fff;border-color:var(--navy)}button.wide{width:100%;margin-top:12px}.sky{position:absolute;inset:0 0 auto 0;height:300px;overflow:hidden;pointer-events:none}.cloud{position:absolute;background:rgba(255,255,255,.58);border-radius:999px;filter:blur(.2px)}.cloud:before,.cloud:after{content:"";position:absolute;background:inherit;border-radius:50%}.cloud-a{width:180px;height:48px;top:58px;left:8%}.cloud-a:before{width:76px;height:76px;left:28px;top:-34px}.cloud-a:after{width:92px;height:92px;right:24px;top:-44px}.cloud-b{width:210px;height:52px;top:92px;right:6%;opacity:.7}.cloud-b:before{width:90px;height:90px;left:34px;top:-42px}.cloud-b:after{width:110px;height:110px;right:28px;top:-54px}.route-line{position:absolute;width:480px;height:120px;border-top:2px dashed rgba(18,61,99,.22);border-radius:50%;right:18%;top:135px;transform:rotate(-7deg)}.topbar{position:relative;z-index:1;padding:26px max(22px,calc((100% - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px;background:rgba(255,255,255,.82);backdrop-filter:blur(8px);border-bottom:1px solid rgba(191,214,228,.85)}.brand-lockup{display:flex;gap:14px;align-items:center}.brand-mark{width:58px;height:58px;border-radius:15px;background:#fff;overflow:hidden;box-shadow:0 8px 18px rgba(18,61,99,.15);border:1px solid #d8e6ef;flex:0 0 auto;padding:4px 4px 6px}.brand-mark img{width:100%;height:100%;object-fit:contain;object-position:center;transform:none}.topbar h1{margin:.05rem 0;font-size:2rem}.topbar p{margin:.2rem 0 0;color:#587084}.eyebrow{font-size:.7rem;letter-spacing:.14em;font-weight:850;color:#59778e}.status-strip{display:flex;align-items:center;gap:9px;color:#50697c;font-size:.86rem}.status-dot{width:9px;height:9px;border-radius:50%;background:#3f9a66;box-shadow:0 0 0 4px rgba(63,154,102,.12)}.badge{border:1px solid #b7cbd8;padding:.3rem .58rem;border-radius:999px}.shell{position:relative;z-index:1;max-width:1180px;margin:26px auto;padding:0 20px 44px}.card{background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 9px 24px rgba(34,66,91,.055)}.hero{position:relative;display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:18px;overflow:hidden}.hero:after{content:"✈";position:absolute;right:22px;bottom:7px;font-size:2.6rem;color:rgba(18,61,99,.07);transform:rotate(-6deg)}.hero-copy{min-width:0}.hero h2{font-size:2rem;margin:.35rem 0}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;z-index:2}.phase{display:inline-block;padding:.35rem .6rem;border-radius:999px;background:#e7f2fa;color:#224b6d;font-size:.72rem;font-weight:800;letter-spacing:.1em}.runway{position:absolute;left:0;right:0;bottom:0;height:7px;background:#53626e;display:flex;gap:26px;justify-content:center;align-items:center;opacity:.8}.runway span{display:block;width:32px;height:2px;background:#fff}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.span2{grid-column:1/-1}.card h3{margin:.35rem 0 1rem}.muted{color:var(--muted)}.small{font-size:.88rem;line-height:1.45}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.waypoints{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.waypoint{position:relative;border:1px solid #dce5ea;border-radius:14px;padding:16px;min-height:116px;background:#fff}.waypoint:before{content:"";position:absolute;top:18px;right:16px;width:9px;height:9px;border-radius:50%;background:#c3d0d8}.waypoint.current{border:2px solid #2b648f;background:#f1f7fb}.waypoint.current:before{background:#2f6f9f}.waypoint.complete{background:#f5f7f8}.waypoint.complete:before{background:#3f9a66}.waypoint .status{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#6b7c89}.waypoint-percent{display:inline-block;margin-top:6px;padding:.28rem .5rem;border-radius:999px;background:#e9f3f9;color:#315f82;font-size:.74rem;font-weight:800}.member{display:grid;grid-template-columns:1fr 120px 110px 1fr;gap:8px;align-items:center;padding:10px 0;border-top:1px solid #edf1f4}.member input,.member select{width:100%;padding:.55rem;border:1px solid #ccd9e2;border-radius:8px;background:#fff}.briefing ol{padding-left:1.2rem;margin:.3rem 0}.briefing li{margin:.65rem 0}.empty{color:#718494}.source{font-size:.76rem;color:#657b8c;margin-top:.8rem}.system-pill{display:inline-flex;align-items:center;border:1px solid #cbdce7;border-radius:999px;padding:.38rem .68rem;background:#f7fbfd;color:#4f6f86;font-size:.78rem;font-weight:700}.system-pill.online{background:#edf8f1;border-color:#b9ddc6;color:#2f6f49}.system-pill.offline{background:#fff3ef;border-color:#efc7b9;color:#8a4a38}.ai-task-form{display:grid;grid-template-columns:220px 1fr auto;gap:12px;align-items:end;margin:14px 0}.ai-task-form label{display:grid;gap:6px;font-size:.84rem;font-weight:700}.ai-task-form select,.ai-task-form textarea{width:100%;padding:.7rem;border:1px solid #cad9e2;border-radius:10px;background:#fff}.web-toggle{display:flex!important;align-items:center!important;gap:7px!important;font-weight:600!important;align-self:center}.web-toggle input{accent-color:var(--navy)}.ai-result{border:1px solid #dbe6ed;border-radius:14px;padding:16px;background:#f9fcfe;line-height:1.5;white-space:pre-wrap}.ai-result h4{margin:.1rem 0 .6rem}.ai-result ul{white-space:normal}.ai-sources{margin-top:12px;padding-top:10px;border-top:1px solid #e0e8ed;font-size:.78rem;color:#627789;white-space:normal}.discussion-form{display:grid;grid-template-columns:160px 220px auto;gap:10px;margin-bottom:18px}.discussion-form textarea{grid-column:1/3;padding:.7rem;border:1px solid #cbd9e2;border-radius:10px}.discussion-form input,.discussion-form select{padding:.7rem;border:1px solid #cbd9e2;border-radius:10px}.discussion-form button{grid-column:3;grid-row:1/3}.discussion-list{display:grid;gap:10px}.post{border-top:1px solid #e7edf1;padding:14px 2px}.post .meta{font-size:.78rem;color:#6c7d8c;margin-bottom:6px}.post p{margin:0;line-height:1.5}.inline-form{display:grid;grid-template-columns:1fr auto;gap:8px}.inline-form input{padding:.66rem;border:1px solid #cad8e1;border-radius:9px}.check-item{display:flex;gap:9px;align-items:flex-start;padding:10px 0;border-top:1px solid #edf1f4}.check-item.done span{text-decoration:line-through;color:#82909c}.check-item button{margin-left:auto;padding:.25rem .5rem;border:none;background:transparent;color:#7a8994}.genre-menu{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 14px}.genre-chip{display:flex;align-items:center;gap:6px;border:1px solid #cddce5;border-radius:999px;padding:.42rem .65rem;background:#f9fbfc;font-size:.82rem}.genre-chip:has(input:checked){background:#e5f1f9;border-color:#6f9cbc}.genre-chip input{accent-color:var(--navy)}.field-label{display:grid;gap:6px;margin-top:10px;font-weight:650;font-size:.88rem}.field-label textarea,.field-label select{width:100%;padding:.7rem;border:1px solid #cad9e2;border-radius:10px;background:#fff}.book-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.book-card{border:1px solid #dbe6ed;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:9px;background:#fff;min-width:0}.book-cover{aspect-ratio:2/3;border-radius:9px;background:linear-gradient(135deg,#dceaf3,#f5f8fa);overflow:hidden;display:grid;place-items:center;color:#6e8394}.book-cover img{width:100%;height:100%;object-fit:cover}.book-title{font-weight:800;line-height:1.25}.book-author{font-size:.84rem;color:#65798a}.book-reason{font-size:.8rem;line-height:1.35;color:#5e7385}.book-select{margin-top:auto;display:flex;align-items:center;gap:7px;font-size:.82rem}.poll-controls{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:12px}.poll-controls label{display:grid;gap:5px}.poll-controls select{padding:.6rem;border:1px solid #cad9e2;border-radius:9px}.poll-list{display:grid;gap:9px}.poll-row{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;border:1px solid #e0e8ed;border-radius:12px;padding:10px;background:#fff}.poll-rank{font-weight:850;color:#315f82;text-align:center}.poll-arrows{display:flex;gap:5px}.poll-arrows button{padding:.35rem .55rem}.poll-summary{margin-top:16px}.leaderboard-row{display:grid;grid-template-columns:34px 1fr auto;gap:10px;padding:8px 0;border-top:1px solid #edf1f4}.leaderboard-row strong:last-child{color:#315f82}dialog{border:none;border-radius:16px;padding:0;max-width:540px;width:calc(100% - 32px);box-shadow:0 24px 80px rgba(0,0,0,.24)}dialog::backdrop{background:rgba(14,28,42,.5)}dialog form{padding:24px;display:grid;gap:14px}dialog label{display:grid;gap:6px;font-weight:650}dialog input,dialog select,dialog textarea{width:100%;padding:.75rem;border:1px solid #cbd9e2;border-radius:10px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}@media(max-width:920px){.book-grid{grid-template-columns:repeat(2,1fr)}.member{grid-template-columns:1fr 1fr}.member strong{grid-column:1/-1}}@media(max-width:760px){.topbar{align-items:flex-start;flex-direction:column}.status-strip{flex-wrap:wrap}.hero{align-items:flex-start;flex-direction:column}.hero-actions{justify-content:flex-start}.grid{grid-template-columns:1fr}.span2{grid-column:auto}.waypoints{grid-template-columns:1fr 1fr}.discussion-form,.ai-task-form{grid-template-columns:1fr}.discussion-form textarea,.discussion-form button{grid-column:auto;grid-row:auto}.section-head{align-items:flex-start;flex-direction:column}}@media(max-width:480px){.waypoints,.book-grid{grid-template-columns:1fr}.topbar{padding:20px 16px}.shell{padding:0 12px 30px}.brand-lockup{align-items:flex-start}.brand-mark{width:48px;height:48px}.brand-mark img{width:76px;height:76px;transform:translate(-14px,-9px)}.member{grid-template-columns:1fr}.member strong{grid-column:auto}}

@media(max-width:620px){
  body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
  .topbar{padding:16px max(14px,env(safe-area-inset-left));gap:12px}
  .topbar h1{font-size:1.55rem}
  .topbar p{font-size:.86rem;line-height:1.35}
  .brand-mark{width:50px;height:50px}
  .brand-mark img{width:100%;height:100%;object-fit:contain;transform:none}
  .status-strip{font-size:.78rem}
  .shell{margin:14px auto;padding:0 10px calc(28px + env(safe-area-inset-bottom))}
  .card{padding:16px;border-radius:15px}
  .hero{gap:16px}
  .hero h2{font-size:1.55rem}
  .hero-actions{width:100%;display:grid;grid-template-columns:1fr}
  .hero-actions button{width:100%}
  .waypoints{grid-template-columns:1fr}
  .waypoint{min-height:auto}
  .member{grid-template-columns:1fr}
  .member strong{grid-column:auto}
  .ai-task-form{grid-template-columns:1fr}
  .ai-task-form button{width:100%}
  .discussion-form{grid-template-columns:1fr}
  .discussion-form textarea,.discussion-form button{grid-column:auto;grid-row:auto}
  .discussion-form button{width:100%}
  .inline-form{grid-template-columns:1fr}
  .inline-form button{width:100%}
  .book-grid{grid-template-columns:1fr}
  .poll-controls{align-items:stretch;display:grid;grid-template-columns:1fr}
  .poll-controls select,.poll-controls button{width:100%}
  .poll-row{grid-template-columns:36px minmax(0,1fr);align-items:start}
  .poll-arrows{grid-column:1/-1;justify-content:flex-end}
  dialog{width:calc(100% - 20px);max-height:calc(100dvh - 24px);overflow:auto}
  dialog form{padding:18px}
}

.account-area{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.club-controls{display:flex;gap:8px;align-items:center}.club-controls select{max-width:230px;padding:.55rem .7rem;border:1px solid #c9d9e4;border-radius:10px;background:#fff;color:#17304c}.club-controls button{padding:.55rem .75rem}.text-button{border:none;background:transparent;padding:0;color:#426984;font-size:.78rem;text-decoration:underline}.role-pill{display:inline-block;margin-left:6px;padding:.16rem .4rem;border-radius:999px;background:#e6f2fa;color:#2b6287;font-size:.62rem;letter-spacing:.05em;text-transform:uppercase}.auth-gate{position:relative;z-index:2;max-width:680px;margin:56px auto;padding:0 18px}.auth-card{background:rgba(255,255,255,.97);border:1px solid #d8e6ef;border-radius:22px;padding:34px;box-shadow:0 22px 70px rgba(28,65,92,.12);text-align:center}.auth-logo{width:112px;height:112px;object-fit:contain;box-sizing:border-box;padding:5px 5px 8px;margin-bottom:14px}.auth-card h2{font-size:2rem;margin:.2rem 0 .8rem}.auth-card p{color:#5d7385;line-height:1.6}.primary-link{display:inline-block;margin-top:12px;background:var(--navy);color:white;text-decoration:none;border-radius:11px;padding:.82rem 1.1rem;font-weight:800}.invite-banner{position:relative;z-index:3;max-width:1180px;margin:18px auto 0;padding:16px 20px;border:1px solid #acd3ea;border-radius:15px;background:rgba(241,249,254,.97);display:flex;align-items:center;justify-content:space-between;gap:18px}.invite-banner>div{display:flex;flex-direction:column;gap:2px}.invite-banner strong{font-size:1.1rem}.invite-dialog-body{padding:24px;min-width:min(500px,90vw)}.invite-actions{display:flex;gap:9px;flex-wrap:wrap}.invite-result{margin-top:18px;padding-top:16px;border-top:1px solid #dfe8ed}.invite-result label{display:grid;gap:6px;font-weight:700}.invite-result input{width:100%;padding:.7rem;border:1px solid #cbd9e2;border-radius:9px}.invite-result .invite-actions{margin-top:10px}
@media(max-width:760px){.topbar{align-items:stretch}.account-area{align-items:stretch;width:100%}.club-controls{display:grid;grid-template-columns:1fr auto auto}.club-controls select{max-width:none;width:100%}.status-strip{justify-content:space-between}.invite-banner{margin:12px;align-items:stretch;flex-direction:column}.invite-banner button{width:100%}.auth-gate{margin:28px auto}.auth-card{padding:24px 18px}.auth-card h2{font-size:1.55rem}}
@media(max-width:460px){.club-controls{grid-template-columns:1fr 1fr}.club-controls select{grid-column:1/-1}.club-controls button{width:100%}}

.auth-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.secondary-link{display:inline-block;margin-top:12px;color:#234e70;text-decoration:none;border:1px solid #b9ccda;border-radius:11px;padding:.78rem 1.05rem;font-weight:800;background:#fff}.secondary-link:hover{border-color:#6c9fbe;background:#f5fbff}@media(max-width:520px){.auth-actions{display:grid}.primary-link,.secondary-link{width:100%}}
@media(max-width:480px){.brand-mark img{width:100%!important;height:100%!important;transform:none!important;object-fit:contain!important;object-position:center!important}} .auth-logo{object-fit:contain!important;object-position:center!important;max-width:100%;height:auto}
.brand-mark{padding:0!important;overflow:visible!important;background:transparent!important}.brand-mark img{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;transform:none!important}.auth-logo{padding:0!important;object-fit:contain!important;object-position:center!important}
.ai-sources summary{cursor:pointer;font-weight:750;color:#315f82;list-style:revert;padding:3px 0;}.ai-sources summary:hover,.ai-sources summary:focus-visible{text-decoration:underline;}.ai-source-list{padding:9px 0 2px;line-height:1.65;overflow-wrap:anywhere;}.ai-source-list a{color:#24618f;}
.flight-plan-controls{display:flex;gap:9px;align-items:flex-end;flex-wrap:wrap}.flight-plan-controls label{display:grid;gap:4px;font-size:.76rem;font-weight:750;color:#587084}.flight-plan-controls select{padding:.62rem .7rem;border:1px solid #cad9e2;border-radius:9px;background:#fff;color:#17304c}.flight-plan-status{margin:10px 0 14px;padding:11px 13px;border-radius:10px;font-size:.86rem;font-weight:650}.flight-plan-status.working{background:#eef7fd;border:1px solid #b9d9eb;color:#315f82}.flight-plan-status.success{background:#edf8f1;border:1px solid #b9ddc6;color:#2f6f49}.flight-plan-status.error{background:#fff3ef;border:1px solid #efc7b9;color:#8a4a38}@media(max-width:620px){.flight-plan-controls{width:100%;display:grid;grid-template-columns:110px 1fr}.flight-plan-controls select,.flight-plan-controls button{width:100%}}
/* Flight Reading tab navigation */
.app-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;margin:0 0 18px;padding:6px;background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:15px;position:sticky;top:8px;z-index:8;backdrop-filter:blur(10px)}
.app-tab{flex:0 0 auto;border:0;background:transparent;padding:.72rem .9rem;border-radius:10px;font-weight:800;color:#537086;white-space:nowrap}
.app-tab:hover{background:#f2f7fa;border:0}.app-tab.active{background:var(--navy);color:#fff}.app-tab:focus-visible{outline:3px solid rgba(47,111,159,.28);outline-offset:2px}
.tab-panel{display:none}.tab-panel.active{display:block}.tab-panel>.card,.tab-panel>.hero{margin-bottom:18px}.tab-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.tab-panel-grid>.span2{grid-column:1/-1}
.home-context{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:.2rem 0 .65rem}.home-club-pill{display:inline-flex;align-items:center;gap:6px;padding:.38rem .62rem;border-radius:999px;background:#eef6fb;border:1px solid #cee1ed;color:#315f82;font-size:.78rem;font-weight:800}
.home-cover{width:88px;height:132px;border-radius:10px;overflow:hidden;background:linear-gradient(135deg,#dceaf3,#f5f8fa);display:none;place-items:center;box-shadow:0 8px 18px rgba(18,61,99,.12);flex:0 0 auto}
.home-cover.show{display:grid}.home-cover img{width:100%;height:100%;object-fit:cover}
.tab-section-title{margin:0 0 14px;padding:0 4px}.tab-section-title h2{margin:.15rem 0 .25rem;font-size:1.3rem}.tab-section-title p{margin:0;color:var(--muted);font-size:.88rem}
@media(max-width:760px){.app-tabs{top:4px;margin-left:-2px;margin-right:-2px}.app-tab{padding:.68rem .78rem;font-size:.86rem}.tab-panel-grid{grid-template-columns:1fr}.tab-panel-grid>.span2{grid-column:auto}}
