@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@1,600&display=swap";:root{color:#18352f;font-synthesis:none;background:#f5f4ed;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 12% 0,#e8f2e9 0,#0000 28%),#f7f6f0;margin:0}button,input,select{font:inherit}button{cursor:pointer}header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;background:#ffffffc7;border-bottom:1px solid #dfe4db;justify-content:space-between;align-items:center;height:76px;padding:0 max(4vw,32px);display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;display:flex}.brand>span{color:#fff;background:#174e42;border-radius:11px;place-items:center;width:40px;height:40px;display:grid}.brand div{display:grid}.brand strong{font-size:17px}.brand small{color:#73817c;text-transform:uppercase;letter-spacing:1.5px;font-size:11px}.header-actions{gap:10px;display:flex}.primary,.secondary{border:0;border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-weight:600;display:inline-flex}.primary{color:#fff;background:#ef8354;box-shadow:0 3px 12px #ef83543d}.primary:disabled{opacity:.45}.secondary{color:#31534b;background:#fff;border:1px solid #d9ded7}main{max-width:1500px;margin:auto;padding:0 max(4vw,32px)}.hero{justify-content:space-between;align-items:end;gap:50px;padding:55px 0 42px;display:flex}.hero>div{max-width:700px}.eyebrow{color:#df7043;letter-spacing:2px;font-size:11px;font-weight:700}.hero h1{letter-spacing:-2.7px;max-width:660px;margin:14px 0 18px;font-size:clamp(38px,4.4vw,64px);line-height:1.02}.hero h1 i{color:#ef8354;font-family:Playfair Display,serif;font-weight:600}.hero p{color:#70807a;max-width:620px;margin:0;font-size:17px;line-height:1.6}.hero aside{background:#fff;border:1px solid #e1e4dc;border-radius:16px;min-width:440px;display:flex;box-shadow:0 12px 40px #31534b0d}.hero aside div{gap:3px;padding:20px 24px;display:grid}.hero aside div+div{border-left:1px solid #e7e9e3}.hero aside span{color:#84908c;text-transform:uppercase;letter-spacing:1px;font-size:10px;font-weight:700}.hero aside strong{font-size:25px}.hero aside small{color:#84908c;font-size:11px}.toolbar{background:#fff;border:1px solid #dfe3dc;border-radius:13px 13px 0 0;align-items:center;gap:24px;padding:12px 15px;display:flex}.year-picker{border-right:1px solid #e2e5df;align-items:center;gap:10px;padding-right:20px;display:flex}.year-picker button,.refresh{color:#43625a;background:#f2f4f0;border:0;border-radius:7px;place-items:center;width:31px;height:31px;display:grid}.year-picker button svg{width:16px}.year-picker div{text-align:center;min-width:112px;display:grid}.year-picker span{color:#8a9691;letter-spacing:1.3px;font-size:9px;font-weight:700}.year-picker strong{font-size:14px}.filters{flex-wrap:wrap;flex:1;gap:18px;display:flex}.filters label{color:#566b64;cursor:pointer;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.filters input{display:none}.filters label:has(input:not(:checked)){opacity:.35}.dot{border-radius:50%;width:9px;height:9px}.school_holiday{background:#ef8354}.school_closed{background:#977bb6}.public_holiday{background:#54a28c}.filters svg{color:#4a80b7}.refresh{margin-left:auto}.year-grid{background:#dfe3dc;border:1px solid #dfe3dc;border-top:0;border-radius:0 0 13px 13px;grid-template-columns:repeat(4,1fr);gap:1px;display:grid;overflow:hidden}.month{background:#fff;min-height:270px;padding:19px 20px 22px}.month h3{justify-content:space-between;margin:0 0 15px;font-size:14px;display:flex}.month h3 span{color:#a0aaa6;font-size:11px;font-weight:500}.week-row,.days{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.week-row b{text-align:center;color:#9ba5a1;padding-bottom:7px;font-size:8px}.day{color:#5f716b;border-radius:7px;place-items:center;height:27px;font-size:10px;display:grid;position:relative}.day:nth-child(7n),.day:nth-child(7n-1){background:#f6f6f2}.day.has-event{color:#bf5f38;background:#fff3eb;font-weight:700}.day>em{border-radius:50%;width:4px;height:4px;position:absolute;bottom:2px}.day>em+em{margin-left:6px}.day small{color:#fff;z-index:2;background:#327e6d;border-radius:5px;padding:1px 3px;font-size:7px;position:absolute;top:-3px;right:-2px}.loading{color:#7b8984;background:#fff;border:1px solid #e0e4dd;place-items:center;height:400px;display:grid}.modal-backdrop{z-index:30;background:#102d2799;justify-content:center;align-items:flex-start;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:#fff;border-radius:18px;width:min(620px,100%);max-height:calc(100vh - 32px);margin:auto;padding:27px;overflow:auto;box-shadow:0 30px 80px #102d2755}.modal-head{justify-content:space-between;display:flex}.modal h2{margin:5px 0;font-size:27px}.close{color:#82908b;background:0 0;border:0;font-size:28px}.muted{color:#74827d;font-size:13px}.drop{color:#537168;background:#f7faf7;border:1.5px dashed #cdd7d0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:3px;height:102px;margin:20px 0;display:flex;position:relative}.drop svg{width:21px}.drop strong{font-size:13px}.drop span{color:#95a19d;font-size:10px}.drop input{opacity:0;cursor:pointer;position:absolute;inset:0}.form-grid{grid-template-columns:1.4fr 1fr 1fr;gap:10px;display:grid}.form-grid label{text-transform:uppercase;letter-spacing:.7px;color:#71817b;font-size:10px;font-weight:700}.form-grid input,.form-grid select,.price-rows input{color:#284a42;background:#fff;border:1px solid #dce2dc;border-radius:8px;width:100%;margin-top:5px;padding:9px;display:block}.price-head{justify-content:space-between;margin:22px 0 8px;font-size:13px;display:flex}.text-btn,.icon{color:#dc7045;background:0 0;border:0;align-items:center;gap:4px;font-size:11px;font-weight:700;display:flex}.price-rows{gap:7px;display:grid}.price-rows>div{grid-template-columns:1.3fr 1fr 32px;gap:8px;display:grid}.price-rows input{margin:0}.money{position:relative}.money span{color:#899690;position:absolute;top:9px;left:10px}.money input{padding-left:25px}.icon{color:#96a19d}.actions{border-top:1px solid #edf0eb;justify-content:flex-end;gap:9px;margin-top:24px;padding-top:18px;display:flex}.error{color:#bd493b;background:#fff0ed;border-radius:7px;padding:8px;font-size:12px}.notice{color:#276554;background:#e9f6f0;border-radius:7px;padding:8px;font-size:12px}footer{color:#84908b;justify-content:space-between;padding:18px 3px 35px;font-size:10px;display:flex}.logout{color:#61736d;background:#fff;border:1px solid #d9ded7;border-radius:9px;place-items:center;width:39px;height:39px;display:grid}.auth-loading{color:#73817c;place-items:center;min-height:100vh;display:grid}.login-page{background:radial-gradient(circle at 50% 15%,#e1efe4,#0000 35%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{text-align:center;background:#fff;border:1px solid #dde3dc;border-radius:22px;width:min(430px,100%);padding:42px;box-shadow:0 24px 70px #18352f18}.login-mark{color:#fff;background:#174e42;border-radius:15px;place-items:center;width:56px;height:56px;margin:0 auto 22px;display:grid}.login-card h1{letter-spacing:-1.5px;margin:8px 0 10px;font-size:38px}.login-card>p{color:#788680;margin:0 0 26px;font-size:14px;line-height:1.6}.login-card form{text-align:left;gap:14px;display:grid}.login-card label{text-transform:uppercase;letter-spacing:.8px;color:#62766f;font-size:11px;font-weight:700}.password-field{margin-top:6px;position:relative}.password-field svg{color:#8b9893;width:17px;position:absolute;top:13px;left:13px}.password-field input{border:1px solid #d7ded8;border-radius:10px;outline:none;width:100%;padding:12px 12px 12px 42px}.password-field input:focus{border-color:#4f8f7e;box-shadow:0 0 0 3px #4f8f7e18}.login-card form .primary{width:100%;margin-top:2px}.login-card>small{color:#96a19d;justify-content:center;align-items:center;gap:5px;margin-top:22px;font-size:9px;display:flex}.login-card>small svg{width:12px}.login-error{color:#a94738;text-align:left;background:#fff0ed;border-radius:8px;gap:3px;padding:10px;font-size:11px;display:grid}.api-error{color:#704b22;background:#fff5e8;border:1px solid #f0c48b;border-radius:10px;align-items:center;gap:12px;margin:12px 0;padding:13px 16px;display:flex}.api-error>svg{color:#dd7b32;flex:none}.api-error div{flex:1;gap:2px;display:grid}.api-error strong{font-size:13px}.api-error span{font-size:11px}.api-error code{background:#f8e5c9;border-radius:4px;padding:2px 5px}.api-error button{color:#fff;background:#704b22;border:0;border-radius:7px;padding:7px 12px;font-size:11px;font-weight:700}.month-events{border-top:1px solid #eef0eb;gap:5px;margin-top:12px;padding-top:8px;display:grid}.month-events>button{color:#50665f;text-align:left;cursor:pointer;border:0;border-radius:6px;align-items:center;gap:7px;width:100%;padding:2px;font-size:9px;transition:background .15s,transform .15s;display:flex;background:0 0!important}.month-events>button.active-event{transform:translate(2px);box-shadow:0 0 0 1px #bdd8ca;background:#eef6f1!important}.month-events b{color:#fff;border-radius:5px;flex:none;place-items:center;width:19px;height:19px;font-size:8px;display:grid}.month-events .school_holiday b{background:#ef8354}.month-events .school_closed b{background:#977bb6}.month-events .public_holiday b{background:#54a28c}.month-events span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.day.has-event{cursor:pointer;transition:background .12s,box-shadow .12s,transform .12s}.day.active-event{color:#8f3f20;z-index:1;transform:scale(1.06);box-shadow:inset 0 0 0 1px #ef8354;background:#ffd9c5!important}.flight-filter{border-left:1px solid #e2e5df;align-items:center;gap:5px;padding-left:10px;display:flex}.flight-filter select{color:#34544c;background:#fff;border:1px solid #dbe1dc;border-radius:7px;padding:6px;font-size:11px;font-weight:700}.direction{color:#89948f;white-space:nowrap;background:#f4f5f2;border:1px solid #dde2de;border-radius:7px;align-items:center;gap:4px;padding:6px 8px;font-size:9px;font-weight:700;display:flex}.direction svg{width:13px;height:13px}.direction.on.outbound{color:#2870bd;background:#e7f1ff;border-color:#a9c9f2}.direction.on.returning{color:#7951ac;background:#f2eaff;border-color:#c9b1e8}.flight-badges{z-index:2;gap:1px;display:grid;position:absolute;top:-5px;right:-4px}.day .flight-badges small{color:#fff;white-space:nowrap;border-radius:5px;padding:1px 3px;font-size:7px;position:static}.flight-outbound{background:#3b82c4!important}.flight-return{background:#8559b1!important}.bso_day,.month-events .bso_day b{background:#328dcc}.small-modal{width:min(430px,100%)}.bso-form{gap:13px;margin-top:22px;display:grid}.bso-form label{text-transform:uppercase;letter-spacing:.7px;color:#71817b;font-size:10px;font-weight:700}.bso-form input{border:1px solid #dce2dc;border-radius:8px;width:100%;margin-top:5px;padding:10px;display:block}.day .flight-badges button{color:#fff;white-space:nowrap;border:0;border-radius:5px;padding:1px 3px;font-size:7px}.reset-flights{color:#aa5549;background:0 0;border:0;padding:6px;font-size:9px;font-weight:700}.day.school_holiday{color:#bf5f38;background:#fff3eb}.day.public_holiday{color:#347863;background:#e7f4ef}.day.school_closed{color:#704e91;background:#f0e9f7}.day.active-event.school_holiday{box-shadow:inset 0 0 0 1px #ef8354;background:#ffd9c5!important}.day.active-event.public_holiday{color:#286451;box-shadow:inset 0 0 0 1px #54a28c;background:#cdeadd!important}.day.active-event.bso_day{color:#1f628e;box-shadow:inset 0 0 0 1px #328dcc;background:#c9e8f8!important}.day.active-event.school_closed{color:#5c3f78;box-shadow:inset 0 0 0 1px #977bb6;background:#dfd0ed!important}@media (width<=1200px){.toolbar{flex-wrap:wrap}.flight-filter{border:0;order:3;width:100%;padding:0}.year-grid{grid-template-columns:repeat(3,1fr)}.hero aside{display:none}.toolbar{align-items:flex-start}.filters{gap:9px 14px}}@media (width<=760px){header{padding:0 16px}.header-actions .secondary{display:none}main{padding:0 14px}.hero{padding:35px 5px 28px}.year-grid{grid-template-columns:1fr 1fr}.year-picker{border:0}.filters{order:3;width:100%}.flight-filter{order:4}.form-grid{grid-template-columns:1fr}.modal{padding:20px}}@media (width<=480px){.year-grid{grid-template-columns:1fr}.month{min-height:290px}.header-actions .primary{font-size:0}.header-actions .primary svg{margin:0}.hero h1{font-size:39px}.price-rows>div{grid-template-columns:1fr 1fr 28px}}.mode-tabs{background:#f0f2ef;border-radius:10px;grid-template-columns:1fr 1fr;margin-top:20px;padding:3px;display:grid}.mode-tabs button{color:#71817b;background:0 0;border:0;border-radius:8px;padding:9px;font-weight:700}.mode-tabs button.selected{color:#2673a5;background:#fff;box-shadow:0 1px 5px #18352f1c}.bso-form fieldset{border:0;margin:0;padding:0}.bso-form legend{text-transform:uppercase;letter-spacing:.7px;color:#71817b;margin-bottom:7px;font-size:10px;font-weight:700}.weekday-picker{gap:8px;display:flex}.weekday-picker button{color:#2673a5;background:#f4f9fc;border:1px solid #cbd9e1;border-radius:50%;width:38px;height:38px;font-weight:700}.weekday-picker button.selected{color:#fff;background:#328dcc;border-color:#328dcc}.range-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.day.bso_day{color:#236f9f!important;background:#dcedfb!important}.day.active-event.bso_day{color:#1f628e!important;background:#bfe2f7!important;box-shadow:inset 0 0 0 1px #328dcc!important}.month h3{cursor:context-menu}.day-menu-backdrop{z-index:40;background:#102d2766;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.day-menu{background:#fff;border-radius:16px;width:min(430px,100%);max-height:calc(100vh - 32px);padding:18px;overflow:auto;box-shadow:0 24px 70px #102d2755}.day-menu-head{border-bottom:1px solid #edf0eb;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:12px;display:flex}.day-menu-head>div{display:grid}.day-menu-head span{letter-spacing:1.2px;color:#86938e;font-size:9px;font-weight:700}.day-menu-head strong{font-size:18px}.day-menu-head button{color:#83908b;background:0 0;border:0;font-size:25px}.day-menu>p{color:#7b8984;font-size:12px}.menu-entry{border-bottom:1px solid #f0f2ee;align-items:center;gap:10px;padding:10px 2px;display:flex}.menu-entry>i{border-radius:50%;flex:none;width:11px;height:11px}.menu-entry>div{flex:1;gap:2px;display:grid}.menu-entry strong{font-size:12px}.menu-entry small{color:#82908b;font-size:9px}.danger-link{color:#ae493b;background:#fff0ed;border:0;border-radius:6px;padding:6px 8px;font-size:9px;font-weight:700}.month-clear{color:#a84739;background:#fff3f0;border:1px solid #e9b7ae;border-radius:8px;width:100%;margin-top:14px;padding:10px;font-size:10px;font-weight:700}.manual_day,.month-events .manual_day b{background:#328dcc}.day.manual_day.custom-color{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--event-color) 55%,white);background:color-mix(in srgb,var(--event-color) 24%,white)!important;color:color-mix(in srgb,var(--event-color) 75%,#18352f)!important}.day.manual_day.custom-color.active-event{background:color-mix(in srgb,var(--event-color) 38%,white)!important}.color-input{height:42px;padding:4px!important}.no-end{align-items:center;gap:8px;display:flex}.no-end input{width:auto;margin:0}.day-menu .manual_day{background:#328dcc}
