:root{--bg:#0b1013;--surface:#151d22;--surface2:#1d282f;--line:#33434d;--text:#f4f7f8;--muted:#a9b5bc;--orange:#ff7818;--green:#218b50;--amber:#b87a12;--red:#aa3434;--grey:#46525a;--sidebar:250px}*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 Inter,system-ui,Arial,sans-serif}a{color:#ff9b57;text-decoration:none}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #465762;border-radius:9px;background:#0f1519;color:#fff}textarea{min-height:110px}label{display:grid;gap:6px;font-weight:700}small,.muted{display:block;color:var(--muted);font-weight:400}.topbar{height:70px;position:fixed;z-index:30;inset:0 0 auto 0;display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:#10171c;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;color:#fff}.brand strong{font-size:20px}.logo{display:grid;place-items:center;width:40px;height:40px;border:3px solid var(--orange);border-radius:50%;font-weight:900;font-size:22px}.logo.large{width:110px;height:110px;border-width:6px;font-size:48px}.userbox{text-align:right}.sidebar{position:fixed;z-index:25;top:70px;bottom:0;left:0;width:var(--sidebar);padding:18px;background:#10161a;border-right:1px solid var(--line);display:flex;flex-direction:column}.sidebar nav{display:grid;gap:5px}.sidebar nav a,.logout{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:9px;color:#d7dfe3}.sidebar nav a.active,.sidebar nav a:hover{background:#2c2119;color:#fff;box-shadow:inset 3px 0 var(--orange)}.region-switch{margin-top:auto;display:grid;gap:6px}.logout{margin-top:10px}.main{margin-left:var(--sidebar);padding:100px 28px 40px;max-width:1700px}.pagehead{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.pagehead h1{font-size:34px;margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.15em;color:#ff9a56;font-weight:850;font-size:12px;margin:0 0 3px}.context{color:var(--muted);margin:-10px 0 18px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metrics article,.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px}.metrics span{color:var(--muted)}.metrics strong{display:block;font-size:34px;margin-top:5px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.panel-head,.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px}.toolbar{margin-bottom:14px}.list-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.quick-links{display:grid;gap:10px}.quick-links a{padding:12px;background:var(--surface2);border-radius:9px}.button{display:inline-flex;justify-content:center;align-items:center;padding:10px 15px;border:0;border-radius:9px;font-weight:850;cursor:pointer}.button.primary{background:var(--orange);color:#111}.button.secondary{background:var(--surface2);color:#fff;border:1px solid #4c5d67}.wide{width:100%}.alert{padding:13px;border-radius:9px;margin-bottom:16px}.alert.success{background:#153b25;border:1px solid #2d7a4b}.alert.danger{background:#471f1f;border:1px solid #944}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid h2,.form-grid .full,.form-grid fieldset,.form-grid button{grid-column:1/-1}.check{display:flex;align-items:center;gap:9px}.check input{width:auto}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-size:12px;text-transform:uppercase}.badge,.pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#2b363d;font-weight:800;padding:5px 9px}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters a{padding:8px 10px;background:var(--surface);border:1px solid var(--line);border-radius:8px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chips span{padding:5px 8px;background:#26343c;border-radius:12px;font-size:12px}.login-body,.install-body{min-height:100vh;display:grid;place-items:center;padding:20px}.login-shell{width:min(1000px,100%);display:grid;grid-template-columns:1.15fr .85fr;border:1px solid var(--line);border-radius:18px;overflow:hidden}.hero{padding:55px;background:linear-gradient(135deg,#432716,#15191b)}.hero h1{font-size:64px;margin:20px 0 4px}.login-card,.install-card{padding:38px;background:var(--surface)}.login-card form{display:grid;gap:16px}.menu-button{display:none;background:none;border:0;color:#fff;font-size:25px}.availability-tabs{display:flex;gap:8px;margin-bottom:16px}.availability-tabs a{padding:11px 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-weight:800;color:var(--muted)}.availability-tabs a.active{background:var(--orange);color:#111}.week-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.status-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.status-choice{min-height:58px;border:3px solid transparent;border-radius:11px;color:#fff;font-weight:900;cursor:pointer}.status-choice.available,.slot.available,.team-cell.available{background:var(--green)}.status-choice.delayed,.slot.delayed,.team-cell.delayed{background:var(--amber)}.status-choice.unavailable,.slot.unavailable,.team-cell.unavailable{background:var(--red)}.status-choice.clear,.slot.not-submitted,.team-cell.not-submitted{background:var(--grey)}.status-choice.selected{border-color:#fff;box-shadow:0 0 0 3px #ffffff24}.availability-days{display:grid;gap:14px}.day-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px}.day-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}.day-actions{display:flex;gap:7px}.day-actions button{padding:7px 9px;border:1px solid var(--line);background:var(--surface2);color:#fff;border-radius:8px}.slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.slot{min-height:70px;border:2px solid #ffffff15;border-radius:10px;color:#fff;padding:9px;text-align:left;cursor:pointer}.slot strong{display:block}.slot small{color:#ffffffd0}.save-state{padding:7px 11px;border-radius:999px;background:#303b42;color:var(--muted);font-weight:800}.save-state.saved{background:#164d2c;color:#9af0b9}.save-state.error{background:#622626;color:#ffb0b0}.team-day-tabs{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-bottom:14px}.team-day-tabs a{display:grid;text-align:center;padding:9px;border:1px solid var(--line);border-radius:9px;background:var(--surface2);color:var(--muted)}.team-day-tabs a.active{border-color:var(--orange);background:#34251b;color:#fff}.team-board{min-width:900px}.team-board th,.team-board td{text-align:center}.team-board th:first-child,.team-board td:first-child{text-align:left;position:sticky;left:0;background:var(--surface);z-index:2}.team-cell{height:49px;border:3px solid var(--surface);font-size:0}.legend{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 14px}.legend span{padding:7px 10px;border-radius:999px;font-weight:800}.legend .available{background:var(--green)}.legend .delayed{background:var(--amber)}.legend .unavailable{background:var(--red)}.legend .not-submitted{background:var(--grey)}.training-card{display:grid;gap:10px}.ack-actions{display:flex;gap:8px;flex-wrap:wrap}.ack-button{border:1px solid var(--line);border-radius:9px;padding:9px 12px;background:var(--surface2);color:#fff;font-weight:800;cursor:pointer}.ack-button.yes{background:#185f36}.ack-button.no{background:#6a2929}.ack-status{display:inline-flex;padding:6px 9px;border-radius:999px;font-weight:800;background:#39454c}.ack-status.acknowledged{background:#185f36}.ack-status.unavailable{background:#6a2929}.admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.admin-card{display:grid;gap:9px;min-height:175px}.admin-card h2{margin:0}.admin-icon{font-size:30px}.capability-bars{display:grid;gap:14px}.cap-row{display:grid;grid-template-columns:180px 1fr 50px;gap:12px;align-items:center}.cap-track{height:14px;border-radius:999px;background:#26333a;overflow:hidden}.cap-fill{height:100%;background:var(--orange);border-radius:999px}.mobile-only{display:none}@media(max-width:1000px){.metrics{grid-template-columns:repeat(2,1fr)}.cards,.admin-grid{grid-template-columns:1fr 1fr}.grid-2{grid-template-columns:1fr}}@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.2s}.nav-open .sidebar{transform:none;box-shadow:10px 0 30px #0008}.main{margin-left:0;padding:92px 14px 28px}.menu-button{display:block}.userbox{display:none}.topbar{padding:0 14px}.pagehead h1{font-size:28px}.cards,.admin-grid,.form-grid{grid-template-columns:1fr}.status-picker{position:sticky;top:74px;z-index:10;grid-template-columns:1fr 1fr;background:var(--bg);padding:8px 0}.slot-grid{grid-template-columns:1fr 1fr}.team-day-tabs{grid-template-columns:repeat(4,1fr)}.availability-tabs{display:grid;grid-template-columns:1fr 1fr}.availability-tabs a{text-align:center}.cap-row{grid-template-columns:110px 1fr 35px}.hero{display:none}.login-shell{grid-template-columns:1fr}}

/* v5.1 personnel capability cards */
.filters a.selected{border-color:var(--orange);background:#34251b;color:#fff}
.personnel-toolbar{align-items:flex-start}
.qualification-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px;padding:12px 16px}
.qualification-legend>span{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:13px}
.personnel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.personnel-card{display:grid;gap:16px;min-width:0}
.personnel-card.inactive{opacity:.62}
.personnel-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.personnel-card h2{margin:0 0 3px;font-size:20px;color:var(--text)}
.member-status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:850;white-space:nowrap}
.member-status.active{background:#185f36;color:#adf3c5}
.member-status.inactive{background:#4a3434;color:#efb3b3}
.personnel-meta{display:grid;grid-template-columns:1fr auto;gap:12px;padding:12px;background:var(--surface2);border-radius:10px}
.personnel-meta div{display:grid;gap:3px}
.personnel-meta span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}
.personnel-meta strong{font-size:15px}
.platoon-badge{display:grid;place-items:center;min-width:36px;height:36px;border-radius:50%;background:#34434c;border:1px solid #536671}
.personnel-qualifications{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:42px}
.qual-icon{display:inline-grid;place-items:center;min-width:40px;height:40px;padding:0 8px;border-radius:10px;border:1px solid #ffffff26;color:#fff;font-size:13px;font-weight:950;letter-spacing:.02em;box-shadow:inset 0 -2px #0003}
.qual-icon.rescue-support{background:#40505a}
.qual-icon.rope-operator{background:#72541c}
.qual-icon.rope-technician{background:#a45c12}
.qual-icon.code-one{background:#1e657e}
.qual-icon.code-one-restricted{background:#365f70}
.qual-icon.code-three{background:#70448a}
.qual-icon.first-aid{background:#a72f38;font-size:22px}
@media(max-width:1100px){.personnel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.personnel-grid{grid-template-columns:1fr}.personnel-toolbar{display:grid}.personnel-toolbar .button{width:100%}.qualification-legend{gap:10px}.qualification-legend>span{font-size:12px}.personnel-meta{grid-template-columns:1fr auto}}

/* v5.2 smart personnel directory */
.personnel-controls{display:grid;grid-template-columns:auto minmax(300px,1fr) auto;gap:14px;align-items:center;margin-bottom:14px}
.status-filters a{display:flex;gap:8px;align-items:center;padding:10px 13px}.status-filters a strong{color:var(--muted)}
.status-filters .active-filter{border-color:#2d9b59}.personnel-search{display:flex;gap:8px;justify-self:end;width:min(590px,100%)}.personnel-search input{min-width:220px}.add-personnel{white-space:nowrap}
.region-filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.region-filter-bar a{padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--muted)}.region-filter-bar a.selected{border-color:var(--orange);color:#fff;background:#34251b}
.capability-summary{padding:14px 16px;margin-bottom:14px}.capability-summary-title{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-size:12px;font-weight:850;margin-bottom:12px}.capability-summary-title small{display:inline;margin-left:8px;text-transform:none;letter-spacing:0}
.capability-summary-items{display:grid;grid-template-columns:repeat(8,minmax(105px,1fr));overflow:auto}.capability-item{display:flex;align-items:center;gap:10px;padding:4px 14px;border-right:1px solid var(--line);min-width:125px}.capability-item:first-child{padding-left:0}.capability-item:last-child{border-right:0}.capability-item>div{display:grid}.capability-item strong{font-size:25px;line-height:1}.capability-item span{font-size:11px;color:var(--muted);line-height:1.2;margin-top:4px}
.personnel-list{display:grid;gap:10px}.personnel-row{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(520px,1.4fr) 24px;gap:22px;align-items:center;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-left:7px solid #55636c;border-radius:14px;color:var(--text);transition:.15s}.personnel-row.is-active{border-left-color:#36b964}.personnel-row.is-inactive{border-left-color:#7d8991;opacity:.72}.personnel-row[href]:hover{border-color:#586b77;border-left-color:var(--orange);transform:translateY(-1px)}
.member-summary{display:flex;align-items:center;gap:16px;min-width:0}.member-avatar{position:relative;flex:0 0 74px;height:74px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#43505a,#202a30);font-size:23px;font-weight:900;color:#fff;border:1px solid #60717d}.member-avatar span{position:absolute;right:1px;bottom:4px;width:16px;height:16px;border-radius:50%;background:#7d8991;border:3px solid var(--surface)}.is-active .member-avatar span{background:#39bd68}.member-copy{min-width:0}.member-copy h2{font-size:21px;margin:0;line-height:1.15}.member-role{color:var(--muted);margin:2px 0 8px}.member-detail{display:flex;gap:8px;align-items:center;color:#d6dde1;font-size:14px}.member-detail b{color:var(--muted);font-weight:700}.member-status{margin-top:8px}.member-status.inactive{background:#394249;color:#d5dde1}
.qualification-box{padding:12px 14px;border:1px solid #3b4a53;border-radius:11px;background:#11181c;min-width:0}.qualification-box-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:850;margin-bottom:10px}.qualification-badges{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}.qualification-with-label{display:grid;justify-items:center;gap:5px;max-width:74px;text-align:center}.qualification-with-label small{font-size:10px;line-height:1.15;color:#c9d1d5}
.qual-badge{display:inline-grid;place-items:center;width:43px;height:43px;border-radius:8px;border:2px solid currentColor;background:#10161a;font-size:14px;font-weight:950;box-shadow:inset 0 0 12px #0008}.qual-badge.rescue-support{color:#55b9ff}.qual-badge.rope-operator{color:#55d86c}.qual-badge.rope-technician,.qual-badge.crew-leader{color:#ffb000}.qual-badge.code-one{color:#b77cff}.qual-badge.code-one-restricted{color:#d18cff}.qual-badge.code-three{color:#ff4b3e}.qual-badge.first-aid{color:#e5343d;background:#f4f5f5;border-color:#f4f5f5;font-size:25px}.chevrons{display:grid;gap:1px}.chevrons i{display:block;width:18px;height:9px;border-left:4px solid currentColor;border-top:4px solid currentColor;transform:rotate(45deg);margin-top:-3px}
.personnel-chevron{font-size:34px;color:#d6dde1;text-align:right}.empty-state{text-align:center;color:var(--muted)}
@media(max-width:1250px){.personnel-controls{grid-template-columns:1fr auto}.personnel-search{grid-column:1/-1;grid-row:2;width:100%;justify-self:stretch}.personnel-row{grid-template-columns:minmax(310px,.8fr) minmax(420px,1.2fr) 20px}.capability-summary-items{grid-template-columns:repeat(4,minmax(150px,1fr));row-gap:12px}.capability-item:nth-child(4){border-right:0}}
@media(max-width:850px){.personnel-controls{grid-template-columns:1fr}.personnel-search{grid-column:auto;grid-row:auto;display:grid;grid-template-columns:1fr auto}.personnel-search .button:last-child{grid-column:1/-1}.add-personnel{width:100%}.personnel-row{grid-template-columns:1fr 20px;gap:14px}.qualification-box{grid-column:1/-1}.personnel-chevron{grid-column:2;grid-row:1}.capability-summary-items{grid-template-columns:repeat(2,minmax(145px,1fr))}.capability-item:nth-child(even){border-right:0}.status-filters{display:grid;grid-template-columns:1fr}.status-filters a{justify-content:space-between}}
@media(max-width:520px){.member-avatar{flex-basis:58px;height:58px;font-size:18px}.member-copy h2{font-size:19px}.personnel-row{padding:13px}.qualification-badges{gap:10px}.qualification-with-label{max-width:62px}.qualification-with-label small{display:none}.capability-summary-items{display:flex}.capability-item{min-width:140px}.personnel-search{grid-template-columns:1fr}.personnel-search .button{width:100%}}
