:root{
  --nav-blue:#0b1f3a; --nav-blue-2:#13345e; --accent:#2563eb;
  --surface:#f6f8fc; --surface-2:#eef2f7; --border:#e5e9f0;
}
[data-bs-theme="dark"]{--surface:#0f172a;--surface-2:#111827;--border:#1f2937;--nav-blue:#0a1424;--nav-blue-2:#122142;}
html,body{height:100%} body{background:var(--surface);font-family:'Inter',-apple-system,'Segoe UI',Roboto,sans-serif;font-size:14px}
.app-layout{display:flex;min-height:100vh}
.app-sidebar{width:248px;background:linear-gradient(180deg,var(--nav-blue),var(--nav-blue-2));color:#dbe4f2;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;overflow-y:auto;transition:.2s}
.sidebar-brand{display:flex;gap:.65rem;align-items:center;padding:1rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.08)}
.brand-mark{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,#3b82f6,#22d3ee);display:grid;place-items:center;color:#fff;font-size:1.1rem}
.brand-title{font-weight:700;color:#fff;letter-spacing:.5px}
.brand-sub{font-size:.7rem;color:#93a5c1;text-transform:uppercase;letter-spacing:1.5px}
.sidebar-nav{padding:.5rem;display:flex;flex-direction:column;gap:2px;flex:1}
.sidebar-nav .nav-link{color:#cbd5e1;padding:.55rem .75rem;border-radius:8px;display:flex;gap:.7rem;align-items:center;font-size:.86rem;text-decoration:none}
.sidebar-nav .nav-link:hover{background:rgba(255,255,255,.06);color:#fff}
.sidebar-nav .nav-link.active{background:rgba(59,130,246,.18);color:#fff;box-shadow:inset 3px 0 0 #3b82f6}
.sidebar-nav .nav-link i{font-size:1.05rem;width:20px}
.app-main{flex:1;display:flex;flex-direction:column;min-width:0}
.app-header{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}
[data-bs-theme="dark"] .app-header{background:#111827}
.global-search{position:relative;flex:1;max-width:520px}
.global-search i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#94a3b8}
.global-search input{padding-left:34px;background:var(--surface-2);border-color:transparent}
.global-search-results{display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 28px rgba(15,23,42,.14);max-height:360px;overflow-y:auto;z-index:1060}
.global-search-results.show{display:block}
.global-search-results a{display:block;padding:.55rem .8rem;color:inherit;text-decoration:none;border-bottom:1px solid var(--border)}
.global-search-results a:last-child{border-bottom:none}
.global-search-results a:hover,.global-search-results a.active{background:var(--surface-2)}
.global-search-results .gs-name{font-weight:600;font-size:.85rem}
.global-search-results .gs-meta{font-size:.72rem;color:#64748b}
.global-search-results .gs-empty{padding:.7rem .8rem;font-size:.8rem;color:#64748b}
[data-bs-theme="dark"] .global-search-results{background:#111827}
.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#2563eb,#22d3ee);color:#fff;display:grid;place-items:center;font-weight:600}
.app-content{padding:1.25rem 1.5rem;flex:1}
.stat-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:1rem 1.1rem}
[data-bs-theme="dark"] .stat-card,[data-bs-theme="dark"] .data-card{background:#111827}
.stat-card .stat-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.8px;color:#64748b}
.stat-card .stat-value{font-size:1.6rem;font-weight:700;line-height:1.1;margin-top:.35rem}
.stat-card .stat-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-size:1.1rem}
.data-card{background:#fff;border:1px solid var(--border);border-radius:12px}
.data-card .card-hd{padding:.9rem 1rem;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.5rem;font-weight:600}
.table thead th{background:var(--surface-2);font-size:.72rem;text-transform:uppercase;letter-spacing:.6px;color:#475569;border-bottom-width:1px}
.badge-soft{padding:.25rem .55rem;border-radius:999px;font-size:.68rem;font-weight:600}
@media (max-width:991px){.app-sidebar{position:fixed;left:-260px;z-index:1050}body.sidebar-open .app-sidebar{left:0}}
.page-header h1{color:var(--nav-blue)}
[data-bs-theme="dark"] .page-header h1{color:#e2e8f0}
.auth-wrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0b1f3a,#1e3a8a,#2563eb);padding:1rem}
.auth-card{width:100%;max-width:420px;background:#fff;border-radius:16px;padding:2rem;box-shadow:0 30px 60px -20px rgba(0,0,0,.4)}

/* Clickable dashboard stat tiles */
.stat-card-link{cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.stat-card-link:hover{transform:translateY(-3px);box-shadow:0 12px 24px -12px rgba(11,31,58,.25);border-color:#93a5c1}
.stat-card-link:active{transform:translateY(-1px)}

/* Floating calculator widget */
.calc-fab{position:fixed;right:22px;bottom:22px;width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#2563eb,#0b1f3a);color:#fff;border:none;display:grid;place-items:center;font-size:1.3rem;box-shadow:0 10px 24px -8px rgba(11,31,58,.5);z-index:1080;cursor:grab;transition:transform .15s ease;touch-action:none}
.calc-fab:active{cursor:grabbing}
.calc-fab:hover{transform:scale(1.06)}
.calc-panel{position:fixed;right:22px;bottom:86px;width:280px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 45px -15px rgba(0,0,0,.35);z-index:1080;overflow:hidden;display:none}
[data-bs-theme="dark"] .calc-panel{background:#111827}
.calc-panel.open{display:block}
.calc-hd{background:linear-gradient(135deg,#0b1f3a,#13345e);color:#fff;padding:.6rem .8rem;display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:.85rem}
.calc-hd button{background:none;border:none;color:#dbe4f2;font-size:1.1rem;line-height:1}
.calc-display{padding:.7rem .8rem;text-align:right;font-size:1.5rem;font-weight:700;color:#0b1f3a;background:var(--surface-2);word-break:break-all}
[data-bs-theme="dark"] .calc-display{color:#e2e8f0}
.calc-expr{padding:0 .8rem;text-align:right;font-size:.72rem;color:#64748b;min-height:1rem}
.calc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:.7rem}
.calc-grid button{border:1px solid var(--border);background:#fff;border-radius:8px;padding:.55rem 0;font-size:.95rem;font-weight:600;color:#1e293b}
[data-bs-theme="dark"] .calc-grid button{background:#1f2937;color:#e2e8f0}
.calc-grid button:active{transform:scale(.96)}
.calc-grid button.op{background:#eef2ff;color:#2563eb}
.calc-grid button.eq{background:#2563eb;color:#fff;grid-column:span 2}
.calc-grid button.clear{background:#fee2e2;color:#991b1b}

/* Calendar month grid */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow{text-align:center;font-size:.68rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.5px;padding:.3rem 0}
.cal-cell{position:relative;aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--border);text-decoration:none;color:#1e293b;font-size:.85rem;transition:.12s}
[data-bs-theme="dark"] .cal-cell{color:#e2e8f0}
.cal-cell:hover{background:var(--surface-2);border-color:#93a5c1}
.cal-cell.cal-empty{border:none;background:transparent}
.cal-cell.cal-today{border-color:#2563eb;font-weight:700}
.cal-cell.cal-selected{background:#0b1f3a;color:#fff;border-color:#0b1f3a}
.cal-dot{position:absolute;bottom:6px;width:6px;height:6px;border-radius:50%;background:#2563eb}
.cal-cell.cal-selected .cal-dot{background:#fff}
@media (max-width:575px){.cal-cell{font-size:.72rem;border-radius:7px}.cal-dot{bottom:3px;width:5px;height:5px}}

/* General mobile/touch polish */
@media (max-width:575px){
  .app-content{padding:1rem}
  .page-header h1{font-size:1.15rem}
  .stat-card{padding:.85rem .9rem}
  .stat-value{font-size:1.35rem}
  .btn-sm{padding:.4rem .65rem}
  .calc-panel{width:calc(100vw - 32px);right:16px}
  .calc-fab{right:16px;bottom:16px}
}
.btn, .nav-link, .stat-card-link, .cal-cell{-webkit-tap-highlight-color:transparent}
::-webkit-scrollbar{height:8px;width:8px}
::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px}
[data-bs-theme="dark"] ::-webkit-scrollbar-thumb{background:#374151}

/* ===== Crew Portal shell ===== */
.portal-body{background:var(--surface);font-family:'Inter',-apple-system,'Segoe UI',Roboto,sans-serif;font-size:14px}
.portal-topbar{background:linear-gradient(135deg,#0b1f3a,#13345e);position:sticky;top:0;z-index:30;box-shadow:0 2px 12px rgba(0,0,0,.15)}
.portal-topbar-inner{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem;max-width:1100px;margin:0 auto}
.portal-brand{display:flex;align-items:center;gap:.6rem;color:#fff;text-decoration:none;font-weight:700}
.portal-brand img{height:32px;border-radius:6px}
.portal-brand small{display:block;font-weight:500;font-size:.65rem;color:#93a5c1;text-transform:uppercase;letter-spacing:1px}
.portal-avatar-btn{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:#fff;border-radius:999px;padding:.3rem .8rem .3rem .3rem;display:flex;align-items:center;gap:.5rem;font-size:.85rem}
.portal-avatar-btn .avatar{width:28px;height:28px;font-size:.85rem}
.portal-subnav{display:flex;gap:.3rem;overflow-x:auto;padding:0 .75rem .6rem;max-width:1100px;margin:0 auto;scrollbar-width:none}
.portal-subnav::-webkit-scrollbar{display:none}
.portal-subnav-link{flex:0 0 auto;display:flex;align-items:center;gap:.4rem;color:#cbd5e1;text-decoration:none;padding:.4rem .8rem;border-radius:999px;font-size:.8rem;white-space:nowrap;transition:.12s}
.portal-subnav-link i{font-size:.95rem}
.portal-subnav-link:hover{background:rgba(255,255,255,.08);color:#fff}
.portal-subnav-link.active{background:#2563eb;color:#fff;font-weight:600}
.portal-content{max-width:1100px;margin:0 auto;padding:1.25rem 1rem 2.5rem}
@media (max-width:575px){
  .portal-content{padding:1rem .75rem 2rem}
  .portal-subnav-link span{font-size:.72rem}
}

/* ===== Sign-in chooser + refined auth pages ===== */
.auth-eyebrow{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.6px;text-transform:uppercase;margin-bottom:.9rem}
.auth-eyebrow.staff{background:#eef2ff;color:#1e3a8a}
.auth-eyebrow.crew{background:#ecfeff;color:#0e7490}
.auth-back{display:inline-flex;align-items:center;gap:.35rem;color:#64748b;text-decoration:none;font-size:.82rem;margin-bottom:1.1rem}
.auth-back:hover{color:#0b1f3a}
.auth-card .form-control-lg{border-radius:10px}
.auth-card label{font-weight:600;color:#334155}
.id-hint{display:flex;flex-wrap:wrap;gap:.35rem;margin:.4rem 0 0}
.id-hint span{background:var(--surface-2);color:#475569;font-size:.68rem;font-weight:600;padding:.22rem .55rem;border-radius:999px}

.portal-select-card{width:100%;max-width:640px;background:#fff;border-radius:20px;padding:2.25rem 2rem;box-shadow:0 30px 60px -20px rgba(0,0,0,.4)}
.portal-choice{display:flex;align-items:center;gap:1rem;padding:1.15rem 1.25rem;border:1.5px solid var(--border);border-radius:14px;text-decoration:none;color:inherit;transition:.15s;margin-bottom:.85rem}
.portal-choice:hover{border-color:#2563eb;background:#f5f8ff;transform:translateY(-2px);box-shadow:0 12px 26px -14px rgba(37,99,235,.35)}
.portal-choice:last-child{margin-bottom:0}
.portal-choice-icon{width:52px;height:52px;flex:0 0 52px;border-radius:12px;display:grid;place-items:center;font-size:1.4rem;color:#fff}
.portal-choice-icon.staff{background:linear-gradient(135deg,#0b1f3a,#2563eb)}
.portal-choice-icon.crew{background:linear-gradient(135deg,#0e7490,#22d3ee)}
.portal-choice-title{font-weight:700;font-size:1rem;color:#0b1f3a;margin-bottom:.15rem}
.portal-choice-desc{font-size:.82rem;color:#64748b;line-height:1.35}
.portal-choice-arrow{margin-left:auto;color:#94a3b8;font-size:1.3rem;flex:0 0 auto}
@media (max-width:575px){
  .portal-select-card{padding:1.5rem 1.25rem;border-radius:16px}
  .portal-choice{padding:.9rem 1rem;gap:.8rem}
  .portal-choice-icon{width:44px;height:44px;flex-basis:44px;font-size:1.15rem}
  .portal-choice-desc{font-size:.78rem}
}
