:root{--ink: #1F2A44;--ink-soft: #5B6478;--amber: #EFA409;--amber-hover: #DA9400;--amber-ink: #9A6500;--amber-wash: #FFF3D6;--page: #F2F5F9;--surface: #FFFFFF;--line: #DCE2EC;--danger: #C2352B;--font-display: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--radius-sm: 8px;--radius: 14px;--focus: 0 0 0 3px rgba(239, 164, 9, .45)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--page);color:var(--ink)}h1,h2,h3,h4{font-family:var(--font-display);line-height:1.15;letter-spacing:-.02em;color:var(--ink)}h1{font-size:2.25rem;font-weight:700}h2{font-size:1.5rem;font-weight:650}h3{font-size:1.2rem;font-weight:650}a{color:var(--amber-ink);text-underline-offset:3px}a:hover{color:var(--ink)}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--radius-sm)}::selection{background:var(--amber-wash)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{max-width:1200px;margin:0 auto;padding:20px}.app-footer{display:flex;justify-content:center;gap:20px;padding:30px 20px;margin-top:40px;border-top:1px solid var(--line);font-size:14px;color:var(--ink-soft)}.app-footer a{color:var(--ink-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 22px;border:1.5px solid transparent;border-radius:999px;font-family:inherit;font-size:16px;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}.btn:focus-visible{border-radius:999px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background-color:var(--amber);color:var(--ink)}.btn-primary:hover:not(:disabled){background-color:var(--amber-hover);color:var(--ink)}.btn-secondary{background-color:var(--surface);border-color:var(--line);color:var(--ink)}.btn-secondary:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background-color:#a12a21;color:#fff}.btn-sm{padding:6px 14px;font-size:14px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-weight:600;font-size:15px}.form-group input:not([type=radio]):not([type=checkbox]),.form-group textarea,.form-group select{width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-family:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s}@supports (-webkit-touch-callout: none){input[type=date],input[type=time],input[type=datetime-local]{-webkit-appearance:none;appearance:none;min-width:0;max-width:100%;display:block;min-height:44px}input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value,input[type=datetime-local]::-webkit-date-and-time-value{text-align:left}}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--amber);box-shadow:var(--focus)}:where(input:not([type=radio]):not([type=checkbox]):not([type=color]),select,textarea),.input{border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-family:inherit;font-size:16px}:where(input:not([type=radio]):not([type=checkbox]):not([type=color]),select,textarea){padding:8px 10px}.input{padding:10px 12px}:where(input,select,textarea):focus{outline:none;border-color:var(--amber);box-shadow:var(--focus)}.error{color:var(--danger);font-size:14px;margin-top:5px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:0 1px 2px #1f2a440a;margin-bottom:20px}.loading{display:flex;justify-content:center;align-items:center;min-height:200px;color:var(--ink-soft)}.nav{background:var(--surface);border-bottom:1px solid var(--line);padding:14px 0;margin-bottom:30px;position:sticky;top:0;z-index:50}.nav-content{max-width:1200px;margin:0 auto;padding:0 20px;display:flex;justify-content:space-between;align-items:center}.nav-links{display:flex;gap:2px;align-items:center}.nav-links a,.nav-link-button{text-decoration:none;color:var(--ink);font-weight:500;padding:7px 10px;border-radius:999px;transition:background-color .15s}.nav-links a:hover,.nav-link-button:hover{background:var(--page);color:var(--ink)}.nav-links a.active{background:var(--amber-wash);color:var(--ink)}.nav-link-button{background:none;border:none;font:inherit;font-weight:500;cursor:pointer}.nav-links .nav-admin-link{color:var(--danger);font-weight:700}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.linked-person{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:10px 14px;background:var(--page);border-radius:var(--radius-sm)}.linked-person-details{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}.linked-person-details span{font-size:13px;color:var(--ink-soft)}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}.form-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.form-row>*{min-width:0}.stack-sm{display:flex;gap:20px}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.sticky-col{position:sticky;left:0;background:#fff;z-index:1}.planner-name-col{min-width:120px}@media(max-width:600px){.planner-name-col{min-width:88px;width:88px;font-size:13px!important;padding:8px!important;overflow-wrap:break-word}.planner-name-avatar{display:none!important}}.hp-day-col{min-width:350px;flex:1 0 350px}@media(max-width:768px){.hp-day-col{min-width:80vw;flex:0 0 80vw}}@media(max-width:768px){.form-grid-2,.form-grid-3{grid-template-columns:1fr}.stack-sm{flex-direction:column}.table-scroll{background:linear-gradient(to right,#fff 30%,#fff0) left center / 24px 100% no-repeat,linear-gradient(to left,#fff 30%,#fff0) right center / 24px 100% no-repeat,radial-gradient(farthest-side at 100% 50%,#0000001f,#0000) right center / 16px 100% no-repeat;background-attachment:local,local,scroll}}.nav-hamburger{display:none;flex-direction:column;justify-content:space-around;width:30px;height:24px;background:transparent;border:none;cursor:pointer;padding:0;z-index:1001}.hamburger-line{width:100%;height:3px;background-color:var(--ink);border-radius:2px;transition:all .3s ease;transform-origin:center}.hamburger-line.open:nth-child(1){transform:translateY(7.5px) rotate(45deg)}.hamburger-line.open:nth-child(2){opacity:0}.hamburger-line.open:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}.nav-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:999}.nav-links .nav-user-greeting{color:var(--ink-soft);max-width:180px;overflow:hidden;text-overflow:ellipsis}.nav-links>*{white-space:nowrap;flex-shrink:0}@media(max-width:1240px){.nav-hamburger{display:flex}.nav-overlay{display:block}.nav-links{position:fixed;top:0;right:-280px;width:280px;height:100vh;background:var(--surface);flex-direction:column;align-items:stretch;padding:80px 20px 20px;gap:0;box-shadow:-2px 0 10px #0000001a;transition:right .3s ease;z-index:1000;overflow-y:auto}.nav-links-open{right:0}.nav-links a,.nav-links span,.nav-link-button{padding:13px 14px;border-radius:var(--radius-sm);width:100%;text-align:left}.nav-links a{display:block}.nav-links .btn{margin-top:14px}.nav-links .nav-user-greeting{max-width:none}}@media(max-width:768px){.container{padding:15px}.grid{grid-template-columns:1fr;gap:15px}.card{padding:18px}h1{font-size:1.9rem}.btn{min-height:44px;padding:12px 20px}.btn-sm{min-height:36px;padding:6px 14px}.form-group input:not([type=radio]):not([type=checkbox]),.form-group textarea,.form-group select{min-height:44px;font-size:16px}}@media(max-width:600px){.container,.card{padding:12px}h1{font-size:1.75rem}}@media(max-width:480px){.nav-content{padding:0 15px}.container{padding:10px}h1{font-size:1.5rem}h2{font-size:1.25rem}.app-footer{padding:15px 10px;font-size:13px}}.news-post-body{overflow-wrap:anywhere;line-height:1.6}.news-post-body img,.news-post-body table,.news-post-body pre{max-width:100%}.news-post-body pre{overflow-x:auto}.planner-print{display:none}@media print{.nav,footer,.nav-hamburger,.planner-controls,.planner-actions,.planner-screen{display:none!important}body{background:#fff}.planner-print{display:block}.planner-print-title{font-size:14pt;margin:0 0 8px}.planner-print-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:8pt}.planner-print-table th,.planner-print-table td{border:1px solid #000;padding:2px 3px;vertical-align:top;text-align:left;overflow-wrap:anywhere;white-space:normal}.planner-print-table th{background:#eee}.planner-print-child{font-weight:700;width:12%}.planner-print-weekrow th{background:#ddd;font-weight:700}.planner-print-table tbody+tbody .planner-print-weekrow th{border-top:3px solid #000}.planner-print-event{font-style:italic}.planner-print-table tr{break-inside:avoid}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.btn-lg{padding:14px 28px;font-size:17px}.home-lede{color:var(--ink-soft);margin-bottom:28px}.home-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.home-tile{display:flex;gap:16px;align-items:flex-start;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:inherit;text-decoration:none;text-align:left;font:inherit;cursor:pointer;transition:border-color .15s}.home-tile:hover{border-color:var(--amber);color:inherit}.home-tile h3{margin-bottom:4px}.home-tile p{color:var(--ink-soft);font-size:15px}.home-tile-icon{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--amber-wash);font-size:22px}.home-tile-admin h3{color:var(--danger)}.landing-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:center;padding:40px 0 64px}.landing-copy h1{font-size:clamp(2.2rem,4.6vw,3.6rem);font-weight:700;letter-spacing:-.035em;line-height:1.04;margin:0 0 20px;max-width:14ch}.landing-copy p{font-size:19px;color:var(--ink-soft);max-width:34em;margin-bottom:32px}.landing-actions{display:flex;gap:12px;flex-wrap:wrap}.landing-copy .landing-invite{margin:16px 0 0;font-size:15px}.week-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:0 24px 48px -24px #1f2a4447;transform:rotate(1.5deg)}.week-card figcaption{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px;font-family:var(--font-display);font-size:20px}.week-card figcaption span{font-family:var(--font-body);font-size:14px;color:var(--ink-soft)}.week-card ul{list-style:none;display:grid;gap:10px}.week-card li{display:grid;gap:10px;padding:14px 16px;border-radius:12px;background:var(--page)}.week-card li.is-yours{background:var(--amber-wash);box-shadow:inset 4px 0 0 var(--amber)}.week-card li>div:first-child{display:flex;justify-content:space-between;gap:12px}.week-club{font-weight:700}.week-days{color:var(--ink-soft);font-size:14px}.week-friends{display:flex;align-items:center}.week-avatar{display:grid;place-items:center;width:28px;height:28px;margin-right:-6px;border-radius:50%;border:2px solid var(--surface);background:#c9d7f0;color:var(--ink);font-size:12px;font-weight:700}.week-avatar:nth-child(2){background:#f6c9b8}.week-avatar:nth-child(3){background:#bfe3cf}.week-names{margin-left:14px;font-size:14px;color:var(--ink-soft)}.week-yours{font-size:13px;font-weight:600;color:var(--amber-ink)}.landing-points{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding:36px 0 20px;border-top:1px solid var(--line)}.landing-points p{margin-top:6px;color:var(--ink-soft)}@media(max-width:860px){.landing-hero{grid-template-columns:1fr;gap:40px;padding:16px 0 40px}.week-card{transform:none}.landing-points{grid-template-columns:1fr;gap:20px}}html.native{--inset-top: var(--safe-area-inset-top, env(safe-area-inset-top, 0px));--inset-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));--inset-left: var(--safe-area-inset-left, env(safe-area-inset-left, 0px));--inset-right: var(--safe-area-inset-right, env(safe-area-inset-right, 0px))}html.native body{padding-bottom:var(--inset-bottom);padding-left:var(--inset-left);padding-right:var(--inset-right)}html.native .nav{padding-top:calc(14px + var(--inset-top))}@media(max-width:1240px){html.native .nav-links{padding-top:calc(80px + var(--inset-top));padding-bottom:calc(20px + var(--inset-bottom))}}.offline-banner{position:fixed;left:0;right:0;bottom:0;z-index:1000;padding:10px 16px calc(10px + var(--inset-bottom, 0px));background:var(--ink, #222);color:#fff;text-align:center;font-size:14px}.nav-badge{display:inline-block;min-width:18px;margin-left:6px;padding:1px 5px;border-radius:9px;background:#c62828;color:#fff;font-size:11px;font-weight:700;line-height:16px;text-align:center;vertical-align:middle}.nav-hamburger{position:relative}.nav-hamburger-dot{position:absolute;top:2px;right:2px;width:9px;height:9px;border-radius:50%;background:#c62828}.alert-card{display:block;margin-bottom:0;text-decoration:none;color:inherit}.alert-card-unread{border-left:4px solid var(--amber, #EFA409)}.alert-unread-dot{width:8px;height:8px;border-radius:50%;background:var(--amber, #EFA409);flex-shrink:0}.biometric-lock{position:fixed;inset:0;z-index:2000;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:var(--page);text-align:center}.biometric-lock-link{margin-top:14px;background:none;border:none;color:var(--amber-ink);font:inherit;font-size:14px;text-decoration:underline;cursor:pointer}.booking-sheet{display:flex;flex-direction:column;max-height:90vh;max-height:90dvh;padding:0;overflow:hidden}.booking-sheet-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:24px 24px 8px}.booking-sheet-footer{flex-shrink:0;padding:12px 24px 16px;border-top:1px solid var(--line);background:var(--surface)}.booking-remove-link{display:block;margin:16px auto 8px;background:none;border:none;color:#c62828;font:inherit;font-size:14px;text-decoration:underline;cursor:pointer}.club-action-bar{margin-bottom:20px}@media(max-width:768px){.club-action-bar{position:fixed;left:0;right:0;bottom:0;z-index:900;margin:0;padding:12px 16px calc(12px + var(--inset-bottom, 0px));background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -2px 10px #1f2a4414}body:has(.club-action-bar){padding-bottom:calc(84px + var(--inset-bottom, 0px))}}
