:root{--green:#2d5016;--green-dark:#1f380f;--green-light:#3f6d23;--gold:#d4af37;--gold-dark:#a8871f;--gold-soft:#f0e4bd;--cream:#f5f5dc;--cream-soft:#f8f6ea;--ink:#1a1a1a;--ink-soft:#4a4a4a;--ink-faint:#6b6b6b;--line:#e2ddc8;--white:#ffffff;--ok:#2f7d32;--ok-bg:#e8f3e8;--warn:#9a6a00;--warn-bg:#fdf3d9;--danger:#a12a1f;--danger-bg:#fbe9e7;--muted:#6b6b6b;--muted-bg:#eeeeea;--serif:Georgia,"Times New Roman","Iowan Old Style",serif;--sans:"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;--radius:6px;--radius-lg:10px;--shadow:0 1px 3px rgba(26,26,26,0.08),0 4px 12px rgba(26,26,26,0.05);--shadow-lg:0 6px 24px rgba(26,26,26,0.12);--tap:44px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--serif);color:var(--green);line-height:1.25;margin:0 0 var(--space-3);font-weight:700}h1{font-size:1.9rem}h2{font-size:1.45rem}h3{font-size:1.15rem}h4{font-size:1rem}p{margin:0 0 var(--space-3)}a{color:var(--green);text-decoration:underline;text-underline-offset:2px}.eyebrow,a:hover{color:var(--gold-dark)}.eyebrow{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin-bottom:var(--space-1)}.muted{color:var(--ink-soft)}.small{font-size:.86rem}.center{text-align:center}.nowrap{white-space:nowrap}.mono{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.page{min-height:100vh;display:flex;flex-direction:column}.container{width:100%;max-width:1160px;margin:0 auto;padding:0 var(--space-4)}.container-narrow{max-width:560px}.main{flex:1 1;padding:var(--space-6) 0 var(--space-7)}.stack>*+*{margin-top:var(--space-4)}.stack-sm>*+*{margin-top:var(--space-2)}.row,.row-between{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.row-between{justify-content:space-between}.grow{flex:1 1}.grid{display:grid;grid-gap:var(--space-4);gap:var(--space-4)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-kpi{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}@media (max-width:1024px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.grid-2,.grid-3{grid-template-columns:1fr}.main{padding:var(--space-5) 0 var(--space-6)}h1{font-size:1.55rem}}.masthead{background:var(--green);color:var(--white);border-bottom:4px solid var(--gold)}.masthead a{color:var(--white);text-decoration:none}.masthead-inner{justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);min-height:68px}.lockup,.masthead-inner{display:flex;align-items:center}.lockup{gap:var(--space-3)}.lockup-greek{font-family:var(--serif);font-size:1.5rem;color:var(--gold);letter-spacing:.08em;line-height:1}.lockup-title{font-family:var(--serif);font-size:1.08rem;line-height:1.2}.lockup-sub{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}.nav{display:flex;align-items:center;gap:var(--space-1)}.nav a,.nav button{color:var(--white);background:none;border:0;cursor:pointer;font:inherit;font-size:.9rem;padding:10px 12px;border-radius:var(--radius);min-height:var(--tap);display:inline-flex;align-items:center;text-decoration:none}.nav a:hover,.nav button:hover{background:rgba(255,255,255,.12);color:var(--gold)}.nav a[aria-current=page]{color:var(--gold);box-shadow:inset 0 -2px 0 var(--gold)}.nav-toggle{display:none}@media (max-width:860px){.nav-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap);min-height:var(--tap);background:none;border:1px solid rgba(255,255,255,.35);border-radius:var(--radius);color:var(--white);cursor:pointer;font-size:1.25rem}.nav{display:none;position:absolute;top:100%;left:0;right:0;z-index:40;flex-direction:column;align-items:stretch;gap:0;background:var(--green-dark);border-bottom:4px solid var(--gold);padding:var(--space-2)}.nav.open{display:flex}.nav a,.nav button{width:100%;justify-content:flex-start}.masthead{position:relative}}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--space-5)}.card-cream{background:var(--cream-soft)}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:2px solid var(--gold)}.card-head h2,.card-head h3{margin:0}.card-tight,.kpi{padding:var(--space-4)}.kpi{background:var(--white);border:1px solid var(--line);border-left:4px solid var(--green);border-radius:var(--radius);box-shadow:var(--shadow)}.kpi-value{font-family:var(--serif);font-size:2rem;color:var(--green);line-height:1.1}.kpi-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}.kpi-alert{border-left-color:var(--danger)}.kpi-alert .kpi-value{color:var(--danger)}.kpi-warn{border-left-color:var(--gold-dark)}.callout{background:var(--cream-soft);border-left:4px solid var(--gold);padding:var(--space-3) var(--space-4);border-radius:0 var(--radius) var(--radius) 0}.callout-danger{background:var(--danger-bg);border-left-color:var(--danger)}.callout-ok{background:var(--ok-bg);border-left-color:var(--ok)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap);padding:10px 20px;border-radius:var(--radius);font:inherit;font-size:.95rem;font-weight:600;cursor:pointer;border:1px solid transparent;text-decoration:none;transition:background .15s,color .15s,border-color .15s}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--green);color:var(--white)}.btn-primary:hover:not(:disabled){background:var(--green-dark);color:var(--gold)}.btn-gold{background:var(--gold);color:var(--green-dark)}.btn-gold:hover:not(:disabled){background:var(--gold-dark);color:var(--white)}.btn-outline{background:transparent;color:var(--green);border-color:var(--green)}.btn-outline:hover:not(:disabled){background:var(--green);color:var(--gold)}.btn-ghost{background:transparent;color:var(--ink-soft);border-color:var(--line)}.btn-ghost:hover:not(:disabled){background:var(--cream-soft);color:var(--ink)}.btn-danger{background:transparent;color:var(--danger);border-color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger);color:var(--white)}.btn-sm{min-height:36px;padding:6px 12px;font-size:.85rem}.btn-block{width:100%}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.badge-hold{background:var(--warn-bg);color:var(--warn)}.badge-confirmed{background:var(--ok-bg);color:var(--ok)}.badge-cancelled{background:var(--muted-bg);color:var(--muted)}.badge-expired{background:var(--danger-bg);color:var(--danger)}.badge-completed{background:var(--gold-soft);color:var(--gold-dark)}.badge-pending{background:var(--warn-bg);color:var(--warn)}.badge-accepted{background:var(--ok-bg);color:var(--ok)}.badge-declined{background:var(--danger-bg);color:var(--danger)}.label,label{display:block;font-size:.82rem;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-1)}input[type=date],input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=time],select,textarea{width:100%;min-height:var(--tap);padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);color:var(--ink);font:inherit;font-size:1rem}textarea{min-height:96px;resize:vertical;line-height:1.5}a:focus-visible,button:focus-visible,input:focus,select:focus,textarea:focus{outline:3px solid var(--gold);outline-offset:1px}.field+.field{margin-top:var(--space-4)}.hint{font-size:.82rem;color:var(--ink-faint)}.error-text,.hint{margin-top:var(--space-1)}.error-text{font-size:.86rem;color:var(--danger)}.checkline{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-2) 0}.checkline input[type=checkbox]{width:22px;height:22px;margin-top:2px;flex:none;accent-color:var(--green)}.checkline label{text-transform:none;letter-spacing:0;font-weight:400;font-size:.95rem;color:var(--ink);margin:0}fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-4);margin:0}legend{font-family:var(--serif);color:var(--green);padding:0 var(--space-2);font-size:1rem}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;font-size:.92rem}th{text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-soft);padding:var(--space-2) var(--space-3);border-bottom:2px solid var(--gold);white-space:nowrap}td{padding:var(--space-3);border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:hover{background:var(--cream-soft)}.table-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}@media (max-width:640px){.table-wrap:after{content:"Swipe to see more →";display:block;font-size:.75rem;color:var(--ink-faint);padding-top:var(--space-2)}}.cal{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.cal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--green);color:var(--white)}.cal-head h3{color:var(--white);margin:0}.cal-nav{background:rgba(255,255,255,.12);border:0;color:var(--white);cursor:pointer;min-width:var(--tap);min-height:var(--tap);border-radius:var(--radius);font-size:1.1rem}.cal-nav:hover{background:var(--gold);color:var(--green-dark)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}.cal-dow{text-align:center;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);background:var(--cream-soft)}.cal-day,.cal-dow{padding:var(--space-2);border-bottom:1px solid var(--line)}.cal-day{position:relative;min-height:82px;text-align:left;border-right:1px solid var(--line);background:var(--white);font:inherit;cursor:pointer;display:flex;flex-direction:column;gap:4px;align-items:flex-start}.cal-day:nth-child(7n){border-right:0}.cal-day:disabled{cursor:not-allowed;background:#fafaf6;color:#b9b9ad}.cal-day .d{font-family:var(--serif);font-size:1.05rem;font-weight:700}.cal-day .tag{font-size:.68rem;line-height:1.25}.cal-day.is-available{box-shadow:inset 0 -4px 0 var(--ok)}.cal-day.is-partial{box-shadow:inset 0 -4px 0 var(--gold)}.cal-day.is-full{box-shadow:inset 0 -4px 0 var(--danger);background:#fdf6f5}.cal-day.is-selected{background:var(--gold-soft);outline:3px solid var(--gold);outline-offset:-3px;z-index:1}.cal-day.is-today .d{color:var(--gold-dark);text-decoration:underline}.cal-empty{min-height:82px;background:#fafaf6;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.legend{display:flex;gap:var(--space-4);flex-wrap:wrap;font-size:.82rem;color:var(--ink-soft)}.legend span:before{content:"";display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}.legend .l-available:before{background:var(--ok)}.legend .l-partial:before{background:var(--gold)}.legend .l-full:before{background:var(--danger)}@media (max-width:640px){.cal-day{min-height:62px;padding:6px 4px}.cal-day .tag{display:none}.cal-empty{min-height:62px}}.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:var(--space-2);gap:var(--space-2)}.slot{min-height:var(--tap);padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);font:inherit;font-size:.92rem;cursor:pointer;text-align:center}.slot:hover:not(:disabled){border-color:var(--green);background:var(--cream-soft)}.slot[aria-pressed=true]{background:var(--green);color:var(--white);border-color:var(--green)}.slot:disabled{background:var(--muted-bg);color:var(--muted);cursor:not-allowed;text-decoration:line-through}.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:var(--space-3) 0 var(--space-3) var(--space-4);border-left:2px solid var(--line);position:relative}.timeline li:before{content:"";position:absolute;left:-6px;top:20px;width:10px;height:10px;border-radius:50%;background:var(--gold);border:2px solid var(--white)}.timeline li:last-child{border-left-color:transparent}.tabs{display:flex;gap:2px;border-bottom:2px solid var(--gold);overflow-x:auto}.tab{border:1px solid var(--line);border-bottom:0;background:var(--cream-soft);padding:12px 18px;min-height:var(--tap);cursor:pointer;font:inherit;font-weight:600;color:var(--ink-soft);border-radius:var(--radius) var(--radius) 0 0;white-space:nowrap}.tab[aria-selected=true]{background:var(--green);color:var(--white);border-color:var(--green)}.tabs-split{overflow-x:visible}.tabs-split .tab{flex:1 1;text-align:center;padding:12px 8px}@media (max-width:420px){.tabs-split .tab{font-size:.88rem;padding:12px 4px}}.modal-backdrop{position:fixed;inset:0;background:rgba(26,26,26,.55);display:flex;align-items:center;justify-content:center;padding:var(--space-4);z-index:100}.modal{background:var(--white);border-radius:var(--radius-lg);max-width:620px;width:100%;max-height:88vh;overflow-y:auto;padding:var(--space-5)}.modal,.toast{box-shadow:var(--shadow-lg)}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:200;background:var(--green);color:var(--white);padding:12px 20px;border-radius:var(--radius);max-width:92vw;font-size:.94rem}.toast-error{background:var(--danger)}.countdown{font-family:var(--serif);font-size:1.35rem;color:var(--gold-dark);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.countdown-urgent{color:var(--danger)}.footer{background:var(--green-dark);color:var(--cream);padding:var(--space-5) 0;font-size:.86rem;border-top:4px solid var(--gold)}.footer a{color:var(--gold)}.spinner{width:22px;height:22px;border:3px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(1turn)}}.skip-link{position:absolute;left:-9999px;background:var(--gold);color:var(--green-dark);padding:10px 16px;z-index:300}.skip-link:focus{left:8px;top:8px}@media print{.btn,.footer,.masthead,.nav{display:none!important}body{background:var(--white)}.card{box-shadow:none;border:1px solid #999}}