@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Outfit:wght@500;600;700;800&display=swap";:root{font-family:DM Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f7f8fa;background:#171a20;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:#b7dccf}a:hover{color:#e8fff6}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Outfit,DM Sans,sans-serif;letter-spacing:-.025em}h1{font-size:clamp(1.85rem,4.2vw,2.7rem);line-height:1.14}h2{font-size:1.6rem}h3{font-size:1.17rem}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #F3B76D;outline-offset:3px}.subdued{color:#a8aeb9}.eyebrow{font-weight:800;font-size:.68rem;letter-spacing:.16em;color:#eab57a}.logo{display:flex;align-items:center;gap:12px;line-height:1.05;color:#fff}.logo strong{font-family:Outfit,sans-serif;font-size:1.2rem;letter-spacing:-.03em;display:block}.logo-subtitle{display:block;text-transform:uppercase;letter-spacing:.19em;font-size:.57rem;color:#e7b276;font-weight:800;margin-top:5px}.logo-mark{width:43px;height:43px;display:grid;place-items:center;border-radius:13px;background:#f3b66f;color:#1a2229;flex:none;transform:rotate(-5deg)}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:10px 17px;border-radius:11px;border:1px solid transparent;background:#363d49;color:#f8f8f9;font-weight:700;transition:background .15s,transform .15s}.button:hover:not(:disabled){background:#454f5e}.button:active:not(:disabled){transform:translateY(1px)}.button.primary{background:#eeb574;color:#191c22}.button.primary:hover:not(:disabled){background:#ffd095}.button.danger{background:#d77c7c;color:#211d20}.button.subtle{background:#303741;border-color:#424955}.button.full{width:100%}.button.small{font-size:.83rem;min-height:35px;padding:7px 10px;border-radius:9px}.button.text-danger{background:none;color:#f2a6a6}.button.logout{border-color:#343c48;background:#252b34}.icon-button{display:grid;place-items:center;width:43px;height:43px;border-radius:12px;background:transparent;border:0;color:#dce0e6}.icon-button:hover{background:#303741}.notice{padding:13px 17px;border-radius:12px;border:1px solid;line-height:1.5;margin:10px 0;position:relative}.notice.error{background:#42282e;border-color:#77434a;color:#ffcbcb}.notice.success{background:#1e403d;border-color:#397567;color:#d7fff3}.mini-close{float:right;background:none;color:inherit;border:0;margin-left:16px}.auth-shell{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:34px 16px;background:radial-gradient(ellipse at 50% -30%,#343341 0%,transparent 55%),#171a20}.auth-card{width:min(100%,465px);background:#222731;border:1px solid #343A46;border-radius:22px;padding:clamp(24px,5vw,40px);box-shadow:0 25px 90px #0004}.auth-card .logo{margin-bottom:26px}.auth-lead{color:#b5bcc6;line-height:1.65;margin:17px 0 24px}.auth-tabs{background:#171b22;padding:5px;display:flex;border-radius:12px;margin-bottom:25px;gap:4px}.auth-tabs button{flex:1;background:transparent;border:0;color:#adb7c5;font-weight:700;padding:11px;border-radius:9px}.auth-tabs button.selected{color:#f5f6f8;background:#3a404a;box-shadow:0 2px 10px #0002}.form-stack{display:flex;flex-direction:column;gap:15px}.form-stack label{display:flex;flex-direction:column;gap:7px;color:#d5d9df;font-size:.88rem;font-weight:700}input,select,textarea{color:#f9fafc;background:#171c24;border:1px solid #424955;border-radius:11px;padding:12px 13px;min-height:45px;width:100%;outline:none}input::placeholder,textarea::placeholder{color:#737e8e}input[type=date],select{color-scheme:dark}.field-with-icon{display:flex;align-items:center;position:relative}.field-with-icon>svg{position:absolute;left:13px;color:#b9c2cd;pointer-events:none}.field-with-icon select{padding-left:41px}.fineprint{color:#a7b1be;font-size:.79rem;margin-top:20px;line-height:1.6}.auth-footer{color:#5d6877;font-size:.63rem;letter-spacing:.16em;font-weight:800;text-align:center;margin-top:24px}.config-screen{max-width:520px;margin:16vh auto;padding:35px 20px;display:grid;gap:16px;line-height:1.7}.config-screen code{color:#eec08d}.pending-icon{display:grid;place-items:center;width:72px;height:72px;border-radius:19px;background:#3a3a3c;color:#f1c083;margin:0 0 22px}.button-row{display:flex;flex-wrap:wrap;gap:9px}.app-layout{min-height:100vh}.site-header{background:#1d212a;border-bottom:1px solid #2E3540}.header-inner{max-width:1180px;padding:16px 28px;margin:auto;display:flex;align-items:center;gap:34px}.desktop-nav{display:flex;margin-left:38px;gap:6px}.desktop-nav button{display:inline-flex;align-items:center;gap:8px;background:none;border:0;color:#9aa7b5;padding:12px 15px;font-weight:700;border-radius:11px}.desktop-nav button.active{background:#303843;color:#f3c18a}.desktop-nav button:hover{color:#fff}.header-actions{margin-left:auto;display:flex;align-items:center;gap:5px}.notify-button{position:relative}.notification-count{position:absolute;width:10px;height:10px;border-radius:50%;background:#f3b66f;top:9px;right:9px;border:2px solid #1D212A}.menu-button,.mobile-menu{display:none}.main-container{max-width:1140px;margin:auto;padding:42px 24px 20px}.top-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:32px}.top-intro h1{margin:9px 0 8px}.top-intro p{color:#aab4c0}.identity-chip{display:flex;align-items:center;gap:9px;background:#252c35;border:1px solid #3C444F;padding:10px 14px;border-radius:100px;font-weight:800;white-space:nowrap;font-size:.8rem}.identity-dot,.band-dot{width:10px;height:10px;display:inline-block;border-radius:50%;flex:none}.identity-dot{width:12px;height:12px}.calendar-card{background:#212730;border:1px solid #333B48;border-radius:19px;padding:27px 27px 0;box-shadow:0 25px 45px #0001}.calendar-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:23px}.calendar-header h2{margin-top:5px;font-size:1.72rem}.calendar-nav{display:flex;align-items:center;gap:7px}.calendar-nav button{display:grid;place-items:center;min-height:40px;min-width:40px;padding:9px;background:#343d48;border:0;color:#f4f4f5;border-radius:9px}.calendar-nav button.today-button{display:block;font-weight:700;font-size:.77rem;min-width:62px}.calendar-nav button:hover{background:#475262}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.weekday{color:#8796a8;font-size:.69rem;letter-spacing:.07em;font-weight:800;text-align:center;text-transform:uppercase;padding-bottom:11px}.calendar-day,.blank-day{min-height:104px;border-radius:11px}.calendar-day{background:#2a323d;border:1px solid transparent;color:#e5e9ee;padding:11px 10px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;position:relative;overflow:hidden;gap:7px}.calendar-day:hover{border-color:#83929e;background:#354250}.calendar-day.booked{background:var(--band-colour);color:#142028}.calendar-day.booked:hover{filter:brightness(1.08)}.calendar-day.past{opacity:.46}.calendar-day.today{outline:2px solid #E8BB80;outline-offset:0}.day-number{font-weight:800;font-size:.88rem}.day-booked{display:flex;flex-direction:column;margin-top:auto;gap:3px;width:100%;text-align:left}.day-band{font-size:.73rem;font-weight:800;line-height:1.18;overflow-wrap:anywhere}.day-time{font-size:.72rem;opacity:.8;font-weight:700}.day-add{margin:auto;opacity:0;color:#d2e1ed}.calendar-day:hover .day-add,.calendar-day:focus-visible .day-add{opacity:1}.today-underline{width:16px;height:3px;bottom:8px;right:8px;position:absolute;border-radius:2px;background:#e9b879}.calendar-foot{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:21px 0;min-height:69px}.legend{display:flex;flex-wrap:wrap;gap:10px 20px}.legend-item{display:inline-flex;gap:7px;align-items:center;font-size:.75rem;color:#c9d0db;font-weight:700}.calendar-foot small{color:#8998a9;white-space:nowrap}.bottom-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:23px}.info-card{background:#202630;border:1px solid #343D49;padding:25px;border-radius:18px}.info-card h3{margin:16px 0 7px}.info-card p{color:#aeb7c5;font-size:.86rem;line-height:1.6}.card-icon{height:47px;width:47px;display:grid;place-items:center;border-radius:13px}.card-icon.amber{color:#f1ba78;background:#40362e}.card-icon.mint{color:#8cdbbe;background:#26463f}.subtle-link{display:inline-flex;align-items:center;gap:6px;color:#e8b779;border:0;background:none;padding:0;margin-top:13px;font-weight:800;font-size:.84rem}.site-footer{margin:36px 0 0;padding:20px 0;border-top:1px solid #2A313B;color:#748292;font-size:.75rem;display:flex;justify-content:space-between;gap:10px}.site-footer a{color:#9fabba}.modal-backdrop,.overlay-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#070a0cbf;z-index:20;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:#252b34;border:1px solid #4A5462;border-radius:20px;box-shadow:0 25px 100px #000a;width:min(100%,480px);padding:26px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.modal h2{font-size:1.75rem;margin-bottom:5px}.modal>.subdued{margin-bottom:22px}.occupied{display:flex;align-items:flex-start;gap:12px;background:#313b48;padding:19px;border-radius:13px;line-height:1.5}.occupied .band-dot{margin-top:7px}.occupied p{color:#aab9c7;font-size:.9rem;margin-top:5px}.helper{color:#9baab9;font-size:.83rem;display:flex;align-items:center;gap:8px;line-height:1.5}.confirm-box{padding:17px;background:#423036;border:1px solid #8C5B62;border-radius:12px;margin:10px 0}.confirm-box p{font-size:.83rem;color:#e6c0c3;margin:8px 0 13px;line-height:1.55}.overlay-backdrop{padding:0;justify-content:flex-end;align-items:stretch}.side-panel{background:#252b34;border-left:1px solid #4A5462;width:min(100vw,400px);height:100%;overflow-y:auto;padding:23px;box-shadow:-30px 0 70px #0006}.panel-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.empty{color:#adb9c5;line-height:1.6;padding:18px 0}.notice-item{display:flex;text-align:left;background:#2c343f;border:1px solid #3D4755;color:#f5f7f9;padding:17px 14px;gap:12px;border-radius:12px;width:100%;margin-bottom:10px}.notice-item.read{opacity:.75}.notice-item strong,.notice-item small,.notice-item em{display:block}.notice-item strong{margin-bottom:7px}.notice-item small{font-size:.83rem;color:#c1ccd6;line-height:1.5}.notice-item em{font-size:.68rem;font-style:normal;color:#879bab;margin-top:7px}.notice-dot{width:8px;height:8px;border-radius:50%;margin-top:7px;flex:none;background:#f1bf7e}.notice-item:not(.unread) .notice-dot{background:#667685}.admin-section{background:#212730;border:1px solid #333B48;border-radius:19px;padding:27px}.section-heading h2{margin-top:7px}.section-heading p{color:#aab7c5;margin-top:7px;line-height:1.55}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:26px 0}.stat-grid>div{background:#2b343f;border:1px solid #3D4754;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:5px}.stat-grid b{font-family:Outfit;font-size:1.9rem}.stat-grid span{color:#a9b5c4;font-size:.78rem}.band-list{display:grid;gap:11px}.band-admin-card{border:1px solid #3D4754;border-radius:13px;padding:19px;background:#282f3a}.band-admin-head{display:flex;align-items:center;gap:14px}.band-admin-head>div{flex:1;min-width:0}.band-admin-head strong{display:block;font-size:1rem}.band-admin-head small{display:block;color:#9facbc;font-size:.76rem;margin-top:4px;overflow-wrap:anywhere}.band-dot.large{width:19px;height:19px}.status-tag{border-radius:100px;padding:6px 10px;font-size:.7rem;font-weight:800;text-transform:capitalize;background:#534b37;color:#f0cd87}.status-tag.approved{background:#2c5146;color:#a8ebcb}.status-tag.rejected,.status-tag.deactivated{background:#503438;color:#f5a6a6}.band-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:17px}.colour-options{display:flex;flex-wrap:wrap;gap:10px}.colour-chip{width:41px;height:41px;display:grid;place-items:center;border-radius:50%;border:3px solid transparent}.colour-chip.active{border-color:#f8f8fb;box-shadow:0 0 0 3px #363b43}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:740px){.header-inner{padding:14px 16px;gap:10px}.logo strong{font-size:1rem}.logo-mark{width:38px;height:38px}.logo-subtitle{font-size:.52rem}.desktop-nav,.desktop-logout{display:none!important}.menu-button{display:grid}.mobile-menu{display:flex;flex-direction:column;gap:3px;padding:12px 17px;background:#242a34;border-bottom:1px solid #434B58}.mobile-menu button{text-align:left;background:none;border:0;color:#e7ecf1;min-height:43px;padding:10px;font-weight:700}.main-container{padding:25px 13px 16px}.top-intro{align-items:flex-start;flex-direction:column;gap:15px;margin-bottom:23px}.top-intro p{font-size:.86rem;line-height:1.5}.calendar-card{padding:14px 9px 0;border-radius:14px}.calendar-header{align-items:center;margin:7px 5px 17px}.calendar-header h2{font-size:1.4rem}.calendar-nav button{min-width:36px;min-height:36px}.calendar-grid{gap:3px}.weekday{padding-bottom:7px;font-size:.6rem}.calendar-day,.blank-day{min-height:73px;border-radius:7px;padding:6px 4px}.day-number{font-size:.75rem}.day-band{font-size:.57rem;line-height:1.12}.day-time{font-size:.6rem}.day-add{display:none}.calendar-foot{align-items:flex-start;flex-direction:column;padding:16px 5px;gap:12px}.legend{gap:8px 14px}.legend-item{font-size:.7rem}.bottom-cards{grid-template-columns:1fr;gap:12px;margin-top:15px}.info-card{padding:18px}.site-footer{margin-top:22px}.modal-backdrop{padding:10px;align-items:flex-end}.modal{border-radius:18px 18px 12px 12px;padding:22px;max-height:89vh}.admin-section{padding:16px}.band-admin-head{align-items:flex-start}.band-admin-head .status-tag{white-space:nowrap}.stat-grid{gap:7px}.stat-grid>div{padding:11px}.stat-grid b{font-size:1.5rem}.stat-grid span{font-size:.67rem}.auth-card{padding:25px 21px}}@media(max-width:390px){.calendar-day{min-height:62px}.day-band{font-size:.52rem}.day-time{font-size:.55rem}.auth-shell{padding:20px 12px}.identity-chip{max-width:100%;white-space:normal}.calendar-nav{gap:4px}.calendar-nav button.today-button{min-width:50px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.audit-section{margin-top:32px;border-top:1px solid #3D4754;padding-top:24px}.audit-section h3{margin-bottom:12px}.audit-list{display:grid;gap:5px}.audit-line{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #343C46;padding:10px 0;font-size:.8rem}.audit-line strong{color:#d9e3e8;overflow-wrap:anywhere}.audit-line span{color:#91a2b0;flex:none}@media(max-width:500px){.audit-line{flex-direction:column}.audit-line span{font-size:.7rem}}.login-heading{font-size:1.35rem;margin:0 0 18px}.admin-login-link{display:block;margin:24px auto 0;color:#c3ccd6;background:none;border:0;text-decoration:underline;font-size:.85rem}.create-band-panel{background:#29313c;border:1px solid #404B58;border-radius:15px;padding:21px;margin:22px 0 7px}.create-band-panel h3{margin-bottom:5px}.create-band-panel .button.primary{align-self:flex-start;min-width:165px}.admin-subheading{margin:30px 0 16px}.admin-section>h3:not(.admin-subheading){margin:16px 0}.notice:not(.error):not(.success){margin-top:16px;padding:15px;border:1px solid #4A5562;background:#2b3340;border-radius:12px;color:#cbd4de;line-height:1.5}
