/* Vitality Aviation — dark theme continued from the previous app; gold #A66D3F accent. */
:root{--bg:#1E1E1E;--bg2:#262626;--bg3:#2f2f2f;--text:#E8E0D5;--muted:#8B7355;--gold:#A66D3F;--gold2:#c4884f;--line:#3a3a3a;--green:#16a34a;--red:#dc2626;--amber:#F59E0B;--blue:#60a5fa}
*{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%}
body{font-family:'Source Sans 3','Segoe UI',Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;line-height:1.5;font-size:16px}
h1,h2,h3,h4,.brand,.serif{font-family:'Playfair Display','Bodoni MT',Didot,Georgia,serif;font-weight:600;letter-spacing:.2px}
h1{font-size:30px;line-height:1.15}h2{font-size:22px;margin-bottom:10px}h3{font-size:18px}
a{color:var(--gold2);text-decoration:none}a:hover{text-decoration:underline}
code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.92em;color:#d7c9b6}

/* header */
header.top{background:#161616;border-bottom:1px solid var(--line);padding:0 22px;display:flex;align-items:center;gap:18px;min-height:62px;flex-wrap:wrap}
header.top .logo{display:flex;align-items:center;gap:12px;color:var(--text);text-decoration:none}
header.top .logo img{width:40px;height:40px}
header.top .brand{font-size:19px;letter-spacing:3px;text-transform:uppercase}
header.top .brand b{color:var(--gold);font-weight:600}
header.top nav{display:flex;gap:2px;flex-wrap:wrap;flex:1}
header.top nav a{color:#cfc6b8;padding:8px 11px;border-radius:6px;font-size:15px}
header.top nav a:hover,header.top nav a.active{background:var(--bg3);color:#fff;text-decoration:none}
header.top .who{font-size:13.5px;color:#bfb5a6;text-align:right}
header.top .who a{color:var(--gold2);margin-left:10px}
header.top .who a.btn{color:#fff;margin-left:0}
.chip{display:inline-block;background:var(--bg3);color:#d7c9b6;border:1px solid var(--line);border-radius:10px;padding:0 8px;font-size:11.5px;margin-left:5px;vertical-align:middle;text-transform:capitalize}

main{max-width:1180px;margin:0 auto;padding:26px 22px 60px}
main.narrow{max-width:720px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.page-head p{color:var(--muted);margin-top:4px}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

.card{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:20px 22px;margin-bottom:18px}
.card h2{color:var(--text)}
.card h2 small,.sub{color:var(--muted);font-weight:400;font-size:14px;font-family:'Source Sans 3',sans-serif}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.grid .card{margin:0}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:18px}
.stat{background:var(--bg2);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:10px;padding:14px 16px}
.stat .lbl{font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}
.stat .val{font-size:28px;font-family:'Playfair Display',serif;margin-top:2px;line-height:1.1}
.stat .val.green{color:#4ade80}.stat .val.red{color:#f87171}.stat .val.amber{color:#fbbf24}
.stat .note{font-size:13px;color:#bfb5a6;margin-top:2px}

/* buttons */
.btn{display:inline-block;background:var(--gold);color:#fff;border:1px solid var(--gold);border-radius:8px;padding:9px 18px;font-size:15px;cursor:pointer;text-decoration:none;font-family:inherit;line-height:1.2}
.btn:hover{background:var(--gold2);text-decoration:none}
.btn.secondary{background:transparent;color:var(--gold2);border-color:var(--gold)}
.btn.secondary:hover{background:rgba(166,109,63,.15)}
.btn.danger{background:transparent;color:#f87171;border-color:#7f1d1d}
.btn.danger:hover{background:rgba(220,38,38,.15)}
.btn.small{padding:5px 11px;font-size:13.5px}
.btn.green{background:#15803d;border-color:#15803d}
.btn[disabled]{opacity:.5;cursor:not-allowed}
form.inline{display:inline}

/* forms */
label{display:block;font-size:13.5px;color:#bfb5a6;margin:12px 0 4px}
label.check{display:flex;align-items:center;gap:8px;color:var(--text);font-size:15px}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea{width:100%;background:#171717;color:var(--text);border:1px solid #444;border-radius:8px;padding:9px 11px;font-size:15px;font-family:inherit}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold)}
textarea{min-height:90px;resize:vertical}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 16px}
.help{font-size:13px;color:var(--muted);margin-top:4px}
.form-actions{margin-top:20px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}

/* tables */
.tablewrap{overflow-x:auto}
table.t{width:100%;border-collapse:collapse;font-size:14.5px}
table.t th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
table.t td{padding:9px 10px;border-bottom:1px solid #2c2c2c;vertical-align:top}
table.t tr:hover td{background:#2a2a2a}
table.t td.num,table.t th.num{text-align:right;white-space:nowrap}
table.t .empty td{color:var(--muted);text-align:center;padding:20px}

/* badges */
.badge{display:inline-block;border-radius:6px;padding:1px 8px;font-size:12px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;white-space:nowrap}
.badge.open{background:#1e3a5f;color:#93c5fd}.badge.assigned{background:#3b2f14;color:#fbbf24}.badge.completed{background:#3b1f5f;color:#c4b5fd}
.badge.approved,.badge.paid,.badge.active,.badge.resolved{background:#14532d;color:#86efac}.badge.cancelled,.badge.void,.badge.disabled{background:#3f3f3f;color:#bbb}
.badge.sent,.badge.invited{background:#4a3416;color:#fcd34d}
.badge.LOW{background:#334155;color:#cbd5e1}.badge.MEDIUM{background:#4a3416;color:#fbbf24}.badge.HIGH{background:#5b1a1a;color:#fca5a5}.badge.GROUNDING{background:#dc2626;color:#fff}
.badge.lease{background:#2b2b2b;color:#d7c9b6}.badge.ferry{background:#1e3a5f;color:#93c5fd}.badge.maintenance{background:#3b2f14;color:#fbbf24}

.flash{border-radius:10px;padding:12px 16px;margin-bottom:18px;border:1px solid}
.flash.ok{background:#0f2e1c;border-color:#166534;color:#bbf7d0}
.flash.err{background:#3b0d0d;border-color:#7f1d1d;color:#fecaca}
.flash.warn{background:#3b2a0d;border-color:#92400e;color:#fde68a}
.alert{border-left:4px solid var(--amber);background:#2a2415;padding:12px 16px;border-radius:8px;margin-bottom:16px}
.alert.red{border-color:var(--red);background:#2a1515}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;font-size:15px}
.kv dt{color:var(--muted)}.kv dd{margin:0}
.muted{color:var(--muted)}.small{font-size:13.5px}.right{text-align:right}.green{color:#4ade80}.red{color:#f87171}.amber{color:#fbbf24}
hr.gold{border:none;border-top:1px solid var(--gold);opacity:.5;margin:16px 0}
.pre{white-space:pre-wrap;background:#171717;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:14px}
ul.plain{list-style:none;padding:0}ul.plain li{padding:7px 0;border-bottom:1px solid #2c2c2c}
.msg{border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin-bottom:10px;background:var(--bg2)}
.msg .meta{font-size:13px;color:var(--muted);margin-bottom:6px}

/* auth pages */
.auth-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;background:radial-gradient(ellipse at top,#2b2b2b 0%,#1E1E1E 60%)}
.auth-card{background:var(--bg2);border:1px solid var(--line);border-radius:16px;padding:40px 42px;width:100%;max-width:460px;box-shadow:0 18px 60px rgba(0,0,0,.5)}
.auth-card img{width:110px;display:block;margin:0 auto 10px}
.auth-card h1{text-align:center;font-size:26px;margin-bottom:4px}
.auth-card .tag{text-align:center;color:var(--muted);letter-spacing:3px;font-size:12px;text-transform:uppercase;margin-bottom:22px}
.auth-card .btn{width:100%;text-align:center;margin-top:16px}
.or{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px;margin:22px 0 6px}.or:before,.or:after{content:"";flex:1;border-top:1px solid var(--line)}
.ms-btn{display:flex;align-items:center;justify-content:center;gap:10px;background:#fff;color:#222;border-radius:8px;padding:10px;font-weight:600;text-decoration:none;margin-top:8px}
.ms-btn:hover{text-decoration:none;background:#f1f1f1}

/* public site */
.pub header.top{background:transparent;border:none;position:absolute;width:100%;z-index:2}
.hero{min-height:88vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:120px 22px 60px;background:radial-gradient(ellipse at 50% 30%,#3a2a1a 0%,#1E1E1E 55%);position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;inset:auto 0 0 0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.hero img{width:min(300px,60vw);margin-bottom:10px}
.hero h1{font-size:clamp(34px,6vw,58px);font-weight:500;letter-spacing:4px;text-transform:uppercase}
.hero h1 b{color:var(--gold);font-weight:500}
.hero p.lead{max-width:620px;margin:16px auto 28px;color:#cfc6b8;font-size:19px}
.hero .tail{display:inline-block;max-width:100%;border:1px solid var(--gold);color:var(--gold2);border-radius:20px;padding:4px 16px;letter-spacing:3px;font-size:13px;margin-bottom:18px}
section.band{padding:70px 22px;border-top:1px solid var(--line)}
section.band.alt{background:#191919}
section.band .inner{max-width:1080px;margin:0 auto}
section.band h2{font-size:34px;font-weight:500;margin-bottom:8px}
section.band .eyebrow{color:var(--gold);letter-spacing:3px;text-transform:uppercase;font-size:12.5px}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;margin-top:26px}
.feature{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:24px}
.feature h3{color:var(--gold2);margin-bottom:8px;font-size:21px}
.feature .big{font-size:36px;font-family:'Playfair Display',serif;margin:8px 0}
.feature ul{padding-left:18px;color:#cfc6b8;margin-top:8px}
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:26px}
.step{position:relative;padding:22px 20px 20px 62px;background:var(--bg2);border:1px solid var(--line);border-radius:12px}
.step:before{counter-increment:s;content:counter(s);position:absolute;left:18px;top:18px;width:32px;height:32px;border-radius:50%;background:var(--gold);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:17px}
.specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-top:22px}
.spec{border-top:2px solid var(--gold);padding-top:10px}.spec .k{color:var(--muted);font-size:12.5px;text-transform:uppercase;letter-spacing:1px}.spec .v{font-size:19px;margin-top:2px}
footer.pub{padding:36px 22px;border-top:1px solid var(--line);color:var(--muted);text-align:center;font-size:14px}
footer.pub a{color:var(--gold2)}

@media (max-width:720px){.pub header.top{position:static;background:#161616;border-bottom:1px solid var(--line)}.hero{min-height:0;padding:56px 22px 48px}.hero .btn{display:block;margin:10px auto 0!important;max-width:260px}main{padding:18px 14px 50px}header.top{padding:8px 14px}header.top .who{width:100%;text-align:left;padding-bottom:8px}.auth-card{padding:28px 22px}.page-head{align-items:flex-start}}
@media print{header.top,.actions,.btn{display:none!important}body{background:#fff;color:#000}}

/* calendar */
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal .dow{font-size:11.5px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);text-align:center;padding:4px 0}
.cal .day{min-width:0;min-height:96px;background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:6px;font-size:12.5px}
.cal .day.other{opacity:.35}.cal .day.today{border-color:var(--gold)}
.cal .day .n{font-weight:600;color:#bfb5a6;margin-bottom:4px}
.cal .ev{display:block;border-radius:5px;padding:2px 6px;margin-bottom:3px;color:#fff;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal .ev.lease{background:#3b2a12;color:#fcd34d}.cal .ev.mine{background:var(--gold);color:#fff}.cal .ev.ferry{background:#1e3a5f;color:#93c5fd}.cal .ev.maintenance{background:#4a3416;color:#fbbf24}.cal .ev.block{background:#333;color:#aaa;border:1px dashed #555}.cal .ev.completed{background:#3b1f5f;color:#c4b5fd}.cal .ev.approved{background:#14532d;color:#86efac}.cal .ev.cancelled{background:#2a2a2a;color:#777;text-decoration:line-through}
@media (max-width:720px){.cal{grid-template-columns:repeat(1,1fr)}.cal .dow{display:none}.cal .day.other{display:none}.cal .day{min-height:0}}

/* PWA install banner */
.pwa-banner{display:flex;align-items:center;gap:12px;background:#2a2415;border:1px solid var(--gold);border-radius:10px;padding:10px 14px;margin-bottom:16px;font-size:14.5px}
.pwa-banner[hidden]{display:none}.pwa-banner span{flex:1}
.pwa-x{background:transparent;border:none;color:var(--muted);font-size:22px;line-height:1;cursor:pointer;padding:0 4px}
/* mobile: tables become stacked cards */
@media (max-width:720px){
  table.t thead{display:none}
  table.t,table.t tbody,table.t tr,table.t td{display:block;width:100%}
  table.t tr{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-bottom:10px;background:#232323}
  table.t td{border:none;padding:4px 0;text-align:left!important;display:flex;gap:10px;align-items:baseline}
  table.t td:before{content:attr(data-label);flex:0 0 38%;font-size:11.5px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted)}
  table.t td:empty,table.t td[data-label=""]:before{display:none}
  table.t tr.empty td{justify-content:center}table.t tr.empty td:before{display:none}
  table.t tr:hover td{background:transparent}
  .stats{grid-template-columns:repeat(2,1fr)}.stat .val{font-size:22px}
  .page-head .actions{width:100%}.page-head .actions .btn{flex:1;text-align:center}
  .actions{gap:6px}
  h1{font-size:24px}
  .row{grid-template-columns:1fr}
  input[type=date],input[type=time],input[type=datetime-local]{min-height:42px;color-scheme:dark}
input[type=date]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator{opacity:1;cursor:pointer;filter:brightness(2)}
}

/* v0.4: tabs + charts */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;flex-wrap:wrap}
.tabs a{padding:8px 14px;color:#cfc6b8;border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a.active{color:var(--gold2);border-bottom-color:var(--gold)}
.tabs a:hover{text-decoration:none;color:#fff}
details>summary{list-style:none;cursor:pointer}details>summary::-webkit-details-marker{display:none}
.estimate{margin-top:8px;padding:10px 14px;border-left:4px solid var(--gold);background:#2a2415;border-radius:8px;font-size:15px}
.estimate b{color:var(--gold2)}

/* v0.6 airport picker */
.ap{position:relative}
.ap ul[role=listbox]{position:absolute;z-index:30;left:0;right:0;top:100%;margin:4px 0 0;padding:4px;list-style:none;background:#171717;border:1px solid var(--gold);border-radius:8px;max-height:280px;overflow:auto;box-shadow:0 12px 30px rgba(0,0,0,.5)}
.ap li{padding:7px 10px;border-radius:6px;cursor:pointer;font-size:14.5px;color:var(--text)}
.ap li[aria-selected=true],.ap li:hover{background:var(--bg3)}
.ap li b{color:var(--gold2);font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.5px}
.ap .ap-iata{font-size:11.5px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 4px}
.ap .ap-city{display:block;font-size:12.5px;color:var(--muted)}
.route-est{margin:8px 0 4px;padding:9px 12px;border-left:3px solid var(--gold);background:#2a2415;border-radius:6px;font-size:14.5px}
.seg{display:inline-flex;border:1px solid #444;border-radius:8px;overflow:hidden;margin-top:6px}
.seg label{margin:0;padding:6px 12px;cursor:pointer;color:#bfb5a6;font-size:14px}
.seg input{display:none}.seg input:checked+span{color:#fff}
.seg label:has(input:checked){background:var(--gold);color:#fff}
.codes{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.5px;color:var(--gold2);font-weight:600;white-space:nowrap}

/* v0.7.1 schedule groups */
fieldset.sched{border:1px solid #444;border-radius:10px;padding:6px 14px 12px;margin:12px 0 0;min-width:0}fieldset.sched legend{padding:0 6px;color:var(--gold2);font-family:'Playfair Display',serif;font-size:16px}
/* v0.7.3 — read-only estimated flight time (computed from the airports) */
.est-line{margin:12px 0 4px;padding:10px 12px;border:1px dashed var(--line);border-radius:8px;background:#171717}
.est-line b{font-size:18px;color:#fff}

/* v0.7.5 — native controls readable on the dark theme */
:root{color-scheme:dark}
html,body,input,select,textarea,button{color-scheme:dark}
input[type=checkbox],input[type=radio],progress{accent-color:#A66D3F}
input[type=checkbox],input[type=radio]{width:18px;height:18px;vertical-align:middle}
select{background-color:#141414;color:#E8E0D5;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23E8E0D5' stroke-width='2'/></svg>");background-repeat:no-repeat;background-position:right 12px center;-webkit-appearance:none;appearance:none;padding-right:34px}
select option{background:#141414;color:#E8E0D5}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{opacity:1;filter:brightness(2)}
input[type=file]::file-selector-button{background:#2a2a2a;color:#E8E0D5;border:1px solid #444;border-radius:6px;padding:6px 12px;margin-right:10px;cursor:pointer}
input::placeholder,textarea::placeholder{color:#8B7355;opacity:1}
/* v0.7.5 — header: nav drops to its own full-width row before it starts squeezing into columns */
@media (max-width:1280px){header.top{row-gap:0}header.top .logo{order:0}header.top .who{order:1;margin-left:auto}header.top nav{order:2;flex-basis:100%;width:100%;padding:4px 0 8px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin}header.top nav a{white-space:nowrap}}
@media (max-width:720px){header.top nav{flex-wrap:nowrap}}
/* v0.7.9 — compact mobile cards */
@media (max-width:720px){
  table.t tr{padding:10px 12px 8px;margin-bottom:8px}
  table.t td{display:grid;grid-template-columns:76px minmax(0,1fr);gap:8px;align-items:start;padding:3px 0;font-size:14px;line-height:1.35}
  table.t td:before{flex:none;font-size:10.5px;letter-spacing:.6px;padding-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  table.t td > *{min-width:0}
  table.t td, table.t td a, table.t td span{white-space:normal;overflow-wrap:anywhere;word-break:normal}
  table.t td .badge, table.t td .chip{white-space:nowrap}
  table.t td:first-child{grid-template-columns:76px minmax(0,1fr);font-size:16px;font-weight:600}
  table.t td:has(> .btn), table.t td:has(> form){grid-template-columns:1fr;padding-top:8px}
  table.t td:has(> .btn):before, table.t td:has(> form):before{display:none}
  table.t td .btn{padding:6px 12px;font-size:13.5px}
  table.t td[data-label]:not([data-label=""]) + td[data-label="Hours"]:has(> :empty){display:none}
}

/* filters: expanded on desktop, collapsed on phones */
details.filters summary::-webkit-details-marker{display:none}
@media (min-width:721px){details.filters summary{display:none}details.filters .filters-form{padding-top:12px!important}}
@media (max-width:720px){details.filters .filters-form > div{min-width:0!important;flex:1 1 45%}}
@media (max-width:720px){table.t td > .badge, table.t td > .chip, table.t td > .pill{justify-self:start}}
