:root{color-scheme:light;--black:#111111;--red:#E53935;--blue:#1565FF;--green:#43A047;--yellow:#FFC107;--teal:#00C9A7;--off:#FAFAF8;--paper:#fff;--ink:#111;--muted:#6C6B67;--line:#E7E5E0;--shadow:0 20px 55px rgba(17,17,17,.09);font-family:"Inter",ui-sans-serif,system-ui,sans-serif}
*{box-sizing:border-box}html{background:var(--off)}body{margin:0;min-height:100vh;color:var(--ink);background:var(--off);overflow-x:hidden}button,input{font:inherit}.ambient{position:fixed;pointer-events:none;z-index:0}.ambient-one{width:420px;height:310px;top:-120px;right:-130px;background:#FFF1A8;transform:rotate(-8deg);opacity:.35}.ambient-two{width:300px;height:220px;bottom:-95px;left:-100px;background:#D9F4E5;transform:rotate(7deg);opacity:.45}.portal-shell{position:relative;z-index:1;width:min(1180px,calc(100% - 1.4rem));margin:0 auto;padding:max(1rem,env(safe-area-inset-top)) 0 max(1rem,env(safe-area-inset-bottom))}.portal-card,.chooser{border:1px solid var(--line);background:rgba(255,255,255,.96);border-radius:22px;padding:clamp(1rem,3vw,1.7rem);box-shadow:var(--shadow)}.auth-card{width:min(500px,100%);margin:4vh auto}.brand-lockup{display:flex;align-items:center;gap:.75rem}.brand-mark{width:58px;height:58px;object-fit:contain}.brand-name{color:#111;font-family:"Poppins",sans-serif;font-size:1.45rem;font-weight:900;letter-spacing:-.06em;line-height:1}.brand-tagline{margin-top:.3rem;color:var(--red);font-size:.64rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.auth-brand{justify-content:center;padding-bottom:1.25rem;margin-bottom:1.25rem;border-bottom:1px solid var(--line)}.auth-copy{text-align:center}.eyebrow{color:var(--red);font-weight:900;letter-spacing:.12em;font-size:.68rem}h1,h2{font-family:"Poppins",sans-serif;margin:.35rem 0;line-height:1.02;letter-spacing:-.045em}h1{font-size:clamp(2rem,6vw,3.3rem)}h2{font-size:clamp(1.35rem,3vw,1.8rem)}p{color:var(--muted);line-height:1.5}.notice{border:1px solid #F2D27A;background:#FFF9E8;padding:.85rem;border-radius:14px;color:#6D560A;margin:1rem 0}label{display:grid;gap:.38rem;color:#111;font-size:.82rem;font-weight:800;margin-top:.9rem}input{width:100%;min-height:48px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#111;padding:.72rem .82rem}input:focus{outline:3px solid rgba(21,101,255,.12);border-color:rgba(21,101,255,.5)}.auth-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.9rem}.auth-actions.single-action{grid-template-columns:1fr}button{min-height:46px;border:0;border-radius:12px;padding:.68rem .9rem;background:var(--blue);color:#fff;font-weight:900;cursor:pointer;box-shadow:none}button:hover{filter:brightness(.98);transform:translateY(-1px)}button.secondary,button.quiet{background:white;color:#111;border:1px solid var(--line)}button:disabled{opacity:.55;transform:none}.small{font-size:.8rem}.auth-divider{display:flex;align-items:center;gap:.65rem;margin:.9rem 0;color:#A2A09B;font-size:.78rem}.auth-divider::before,.auth-divider::after{content:"";height:1px;background:var(--line);flex:1}.google-signin{width:100%;display:flex;align-items:center;justify-content:center;gap:.6rem;background:#fff;color:#111;border:1px solid var(--line)}.google-mark{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font-weight:900;color:#4285f4;border:1px solid #e5e7eb}.invitation-note{margin-top:.9rem;padding:.75rem;border:1px solid var(--line);border-radius:12px;background:#FAFAFA;font-size:.76rem}.good-notice{border-color:#B9E2C5;background:#F0FAF2;color:#286736}.chooser-head{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding-bottom:1rem;border-bottom:1px solid var(--line)}.account-block{display:flex;align-items:center;gap:.65rem}.account-block p{margin:0;font-size:.74rem}.quiet{min-height:38px;white-space:nowrap;padding:.5rem .72rem}.suite-intro{padding:1.55rem 0 1rem;max-width:800px}.suite-intro h1{max-width:700px}.suite-intro p{margin:.5rem 0 0;font-size:.98rem}.app-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.app-choice{position:relative;display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:start;min-height:174px;padding:1rem;border:1px solid var(--line);border-radius:18px;color:#111;text-decoration:none;background:#fff;transition:.16s;overflow:hidden}.app-choice.board{grid-column:1/-1;min-height:160px;grid-template-columns:76px minmax(0,1fr) auto;border:2px solid #111;background:linear-gradient(100deg,#fff 0%,#fff 73%,#F2F6FF 73%)}.app-choice.board::before{content:"FRONT & CENTRE";position:absolute;right:1rem;top:.8rem;padding:.24rem .45rem;border-radius:999px;background:var(--blue);color:#fff;font-size:.58rem;font-weight:900;letter-spacing:.09em}.app-choice:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(17,17,17,.07)}.choice-icon{display:block;width:58px;height:58px;border-radius:15px}.app-choice.board .choice-icon{width:68px;height:68px}.app-choice p{margin:.38rem 0;font-size:.84rem;color:var(--muted)}.app-choice span{display:inline-block;margin-top:.28rem;color:var(--blue);font-weight:900;font-size:.82rem}.recipes span{color:var(--red)}.fitness span{color:var(--green)}.cocktails span{color:#8A6700}.app-status{display:inline-block;margin-bottom:.3rem;color:#777;font-weight:900;font-size:.58rem;letter-spacing:.1em}.app-status.live{color:var(--green)}.board-badges{display:flex;flex-wrap:wrap;gap:.35rem;align-self:end;justify-content:flex-end;padding-top:2rem}.board-badges b{padding:.35rem .55rem;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:.69rem}.suite-footer{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:1.2rem 0 0;padding-top:1rem;border-top:1px solid var(--line);color:var(--muted);font-size:.76rem}.suite-footer img{width:28px;height:28px}.sync-note{text-align:center;margin:1rem 0 0;font-size:.8rem}
@media(max-width:850px){.app-grid{grid-template-columns:1fr 1fr}.app-choice.board{grid-column:1/-1}.app-choice.cocktails{grid-column:1/-1}.board-badges{display:none}}
@media(max-width:650px){.portal-shell{width:min(100% - .7rem,1180px);padding-top:.35rem}.auth-card{margin:0 auto}.chooser{padding:.85rem;border-radius:18px}.chooser-head{align-items:flex-start}.chooser-head .brand-mark{width:45px;height:45px}.account-block{display:grid;justify-items:end;gap:.3rem}.account-block p{max-width:145px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suite-intro{padding:1.15rem 0 .75rem}.suite-intro h1{font-size:2rem}.app-grid{grid-template-columns:1fr}.app-choice,.app-choice.board,.app-choice.cocktails{grid-column:1;min-height:auto;padding:.85rem;grid-template-columns:54px 1fr}.app-choice.board::before{display:none}.choice-icon,.app-choice.board .choice-icon{width:50px;height:50px}.suite-footer{margin-top:.9rem}}

.auth-trust{margin-top:.9rem;padding-top:.85rem;border-top:1px solid var(--line);text-align:center}.auth-trust p{margin:0 auto .35rem;max-width:390px;font-size:.74rem;color:var(--muted)}.auth-trust nav,.suite-footer-links{display:inline-flex;align-items:center;gap:.36rem}.auth-trust a,.suite-footer-links a{color:#555;text-decoration:underline;text-underline-offset:2px;font-weight:800}.suite-footer{flex-wrap:wrap}.suite-footer-links{margin-left:.25rem}

/* v5.11 desktop dashboard + Google Calendar Stage 1 */
.desktop-app-nav{display:flex;align-items:center;gap:.45rem;margin:1rem 0 0;padding:.48rem;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(17,17,17,.04)}
.desktop-app-nav a{display:flex;align-items:center;gap:.45rem;min-height:48px;padding:.45rem .7rem;border-radius:13px;color:#333;text-decoration:none;font-size:.78rem;font-weight:900;transition:.15s}
.desktop-app-nav a:hover{background:#F7F7F4;transform:translateY(-1px)}.desktop-app-nav a.active{background:#EDF4FF;color:#174CBA}
.desktop-app-nav img{width:32px;height:32px;border-radius:9px}.dashboard-intro{padding-bottom:.75rem}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:1.25rem}
.dash-widget{border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 12px 30px rgba(17,17,17,.045);overflow:hidden}.calendar-widget{border-top:5px solid var(--blue)}
.dash-widget-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1rem .85rem;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#fff,#F3F7FF)}
.widget-title-row{display:flex;align-items:center;gap:.75rem}.widget-title-row h2{margin:.15rem 0 0;font-size:1.45rem}.widget-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;font-weight:950}.calendar-icon{background:var(--blue);color:#fff;font-size:1rem}
.calendar-head-actions,.calendar-tools{display:flex;align-items:center;gap:.5rem}.readonly-pill{padding:.3rem .48rem;border-radius:999px;background:#EEF9F0;color:#2C6A3A;font-size:.6rem;font-weight:950;letter-spacing:.08em}.compact-button{min-height:34px!important;padding:.38rem .62rem!important;border-radius:10px!important;font-size:.72rem!important}
.calendar-disconnected{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem}.calendar-disconnected strong{font-size:1rem}.calendar-disconnected p{margin:.24rem 0 0;font-size:.82rem}.calendar-disconnected button{white-space:nowrap}
.calendar-dev-setup{margin:0 1rem 1rem;padding:.9rem;border:1px dashed #E1C65F;border-radius:14px;background:#FFF9DE}.calendar-dev-setup p{margin:.25rem 0 .7rem;font-size:.78rem}.calendar-client-row{display:grid;grid-template-columns:1fr auto;gap:.5rem}.calendar-client-row input{min-height:42px;margin:0}.calendar-client-row button{min-height:42px}
.calendar-tools{justify-content:space-between;padding:.7rem 1rem;border-bottom:1px solid var(--line);background:#FCFCFA}.calendar-picker{position:relative}.calendar-picker summary{cursor:pointer;font-size:.76rem;font-weight:900;color:#333;list-style:none}.calendar-picker summary::-webkit-details-marker{display:none}.calendar-picker summary::after{content:' ▾';color:#777}.calendar-picker[open] summary::after{content:' ▴'}
.calendar-picker-choices{position:absolute;z-index:30;top:1.8rem;left:0;width:min(330px,80vw);padding:.65rem;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 18px 40px rgba(17,17,17,.13)}.calendar-choice{display:flex;align-items:center;gap:.5rem;margin:0;padding:.45rem;border-radius:9px;font-size:.78rem;font-weight:750}.calendar-choice:hover{background:#F7F7F4}.calendar-choice input{width:17px;height:17px;min-height:0;margin:0}.calendar-choice small{margin-left:.25rem;color:#888;font-size:.65rem}.calendar-dot{width:10px;height:10px;border-radius:50%;background:var(--calendar-color)}
.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-height:260px}.calendar-day{min-width:0;padding:.7rem;border-right:1px solid var(--line);background:#fff}.calendar-day:last-child{border-right:0}.calendar-day.is-today{background:#F7FAFF}.calendar-day>header{display:flex;align-items:baseline;justify-content:space-between;gap:.3rem;margin-bottom:.65rem}.calendar-day>header span{font-size:.62rem;font-weight:950;letter-spacing:.08em;color:#777}.calendar-day>header strong{font-size:.76rem}.calendar-day-events{display:grid;gap:.45rem}.calendar-empty-day{padding:.75rem .35rem;color:#AAA;font-size:.7rem;text-align:center}
.calendar-event{position:relative;display:grid;gap:.12rem;padding:.55rem .55rem .55rem .68rem;border:1px solid #E8E8E4;border-radius:11px;background:#fff;color:#222;text-decoration:none;overflow:hidden}.calendar-event::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--event-color)}.calendar-event:hover{box-shadow:0 7px 18px rgba(17,17,17,.07);transform:translateY(-1px)}.calendar-event-time{font-size:.62rem;font-weight:900;color:#6B6B66}.calendar-event b{font-size:.76rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis}.calendar-event small{font-size:.62rem;color:#8B8B86;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-widget-foot{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 1rem;border-top:1px solid var(--line);background:#FAFAF8;color:#85857F;font-size:.68rem}.calendar-widget-foot span:first-child[data-tone="good"]{color:#2F7A40;font-weight:850}.calendar-widget-foot span:first-child[data-tone="warn"]{color:#8A6700;font-weight:850}.calendar-widget-foot span:first-child[data-tone="bad"]{color:#B52B28;font-weight:850}
.apps-section-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin:.5rem 0 .7rem}.apps-section-head h2{font-size:1.4rem}.apps-section-head>span{color:#8B8A85;font-size:.74rem}
@media(min-width:1100px){.portal-shell{width:min(1420px,calc(100% - 3rem))}.chooser{padding:1.25rem 1.4rem 1.4rem}.suite-intro{max-width:950px}.calendar-days{min-height:300px}}
@media(max-width:900px){.desktop-app-nav{overflow-x:auto}.desktop-app-nav a{flex:0 0 auto}.calendar-days{display:flex;overflow-x:auto;scroll-snap-type:x proximity}.calendar-day{flex:0 0 min(260px,78vw);border-bottom:0;scroll-snap-align:start}.calendar-widget-foot{display:grid}.apps-section-head>span{display:none}}
@media(max-width:650px){.desktop-app-nav{margin-top:.7rem}.desktop-app-nav a{padding:.35rem .5rem;min-height:43px}.desktop-app-nav img{width:28px;height:28px}.desktop-app-nav span{font-size:.7rem}.calendar-disconnected{display:grid}.calendar-disconnected button{width:100%}.calendar-dev-setup{margin:0 .75rem .75rem}.calendar-client-row{grid-template-columns:1fr}.dash-widget-head{align-items:flex-start}.calendar-head-actions{display:grid;justify-items:end}.calendar-days{min-height:220px}}
