:root{--bg:#02111f;--panel:#061c2f;--panel2:#092944;--text:#f5fbff;--muted:#91abc1;--accent:#12d7f4;--accent2:#55e9ff;--line:#12456a;--ok:#49d17d;--warn:#ffb84d;--danger:#ff6b6b;--shadow:0 18px 46px rgba(0,0,0,.34);--radius:18px;--panel3:#0b3453;--od-abyss:var(--bg);--od-abyss-2:var(--panel2);--od-panel:var(--panel);--od-panel-2:var(--panel2);--od-line:var(--line);--od-cyan:var(--accent);--od-blue:var(--accent2);--od-text:var(--text);--od-muted:var(--muted);--od-bg:var(--bg);--od-bg-2:var(--bg);--od-panel-hi:var(--panel3);--od-border:var(--line);--od-border-soft:var(--line);--od-cyan-2:var(--accent);--od29-bg:var(--bg);--od29-side:var(--panel);--od29-side2:var(--bg);--od29-panel:var(--panel2);--od29-panel2:var(--panel3);--od29-line:var(--line);--od29-line-soft:var(--line);--od29-cyan:var(--accent);--od29-cyan2:var(--accent2);--od29-white:var(--text);--od29-muted:var(--muted);--pro-bg:var(--bg);--pro-sidebar:var(--panel);--pro-surface:var(--panel);--pro-surface-2:var(--panel2);--pro-surface-3:var(--panel3);--pro-line:var(--line);--pro-line-hi:color-mix(in srgb,var(--accent) 34%,var(--line));--pro-text:var(--text);--pro-muted:var(--muted);--pro-muted2:var(--muted);--pro-accent:var(--accent);--pro-accent-soft:color-mix(in srgb,var(--accent) 11%,transparent);--pro-radius:10px;--pro-shadow:0 16px 40px rgba(0,0,0,.18);--odx-bg:var(--bg);--odx-deep:var(--bg);--odx-side:var(--panel);--odx-surface:var(--panel);--odx-raised:var(--panel2);--odx-hover:var(--panel3);--odx-line:var(--line);--odx-line2:color-mix(in srgb,var(--accent) 28%,var(--line));--odx-cyan:var(--accent);--odx-cyan-hi:var(--accent2);--odx-text:var(--text);--odx-muted:var(--muted);--odx-soft:var(--muted);--odx-r:12px;--odx-shadow:0 18px 55px rgba(0,0,0,.22)}
:root[data-theme="surface"]{--bg:#f4f8fb;--panel:#ffffff;--panel2:#edf4f8;--text:#0d2230;--muted:#627786;--accent:#087f9d;--accent2:#16a9c9;--line:#d9e5ec;--shadow:0 16px 38px rgba(15,45,65,.10)}
:root[data-theme="corail"]{--bg:#150914;--panel:#251020;--panel2:#35162e;--text:#fff3fb;--muted:#c39ab8;--accent:#ff4fa3;--accent2:#ff8cc4;--line:#55213f;--shadow:0 18px 48px rgba(50,0,30,.32)}
:root[data-theme="turtle"]{--bg:#041513;--panel:#09241f;--panel2:#10362e;--text:#effff9;--muted:#8ab7aa;--accent:#38d0aa;--accent2:#7cebd0;--line:#174d41;--shadow:0 18px 48px rgba(0,30,25,.30)}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--odx-bg);color:var(--text)}
body{background:linear-gradient(180deg,#021a2b,#02131f);background-attachment:fixed;font-family:Inter,"Segoe UI",Roboto,Arial,sans-serif;color:var(--pro-text);letter-spacing:-.005em;font-feature-settings:"cv02","cv03","cv04","cv11";text-rendering:optimizeLegibility}
button,input,select,textarea{font:inherit}
.app{min-height:100vh;padding-bottom:82px;background:transparent}
.shell{max-width:1680px;margin:0 auto;padding:0 32px 48px}
.topbar{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:0 32px;border:0;background:rgba(5,14,21,.82);backdrop-filter:blur(22px) saturate(130%);border-radius:0;position:sticky;top:0;z-index:30;box-shadow:none;border-color:#0f557e;min-height:64px;height:64px;border-bottom:1px solid var(--odx-line);margin:0 -32px 22px}
.brand{display:flex;gap:11px;align-items:center}
.brandmark{width:42px;height:42px;border-radius:14px;background:linear-gradient(145deg,var(--accent),color-mix(in srgb,var(--accent) 40%,#001));display:grid;place-items:center;color:#00151c;font-weight:900;box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 26%,transparent)}
.brand h1{font-size:18px;margin:0}
.brand small{display:block;color:#6f8794;font-size:9px;margin-top:3px}
.top-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.select,.input,.textarea{background:#062943;border:1px solid var(--line);color:#f6fbff;border-radius:12px;padding:10px 12px;border-color:#0a5a86}
.btn{border:0;border-radius:8px;padding:10px 14px;font-weight:600;cursor:pointer;transition:.15s ease;letter-spacing:-.01em;box-shadow:none;font-size:10.5px;min-height:32px}
.btn-primary{background:linear-gradient(180deg,#31d8e9,#1bbdd4);color:#04232c;box-shadow:0 7px 18px rgba(19,181,205,.10);border-color:#2bd1e4}
.btn-secondary{background:#0b202c;color:#bdcdd5;border:1px solid var(--line);border-color:var(--odx-line)}
.btn-danger{background:color-mix(in srgb,var(--danger) 18%,var(--panel));color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 45%,var(--line))}
.hero{display:grid;grid-template-columns:1.3fr .7fr;gap:16px;margin-top:18px}
.hero-card,.card,.sheet{background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 97%,#fff 1%),var(--panel));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.hero-card{padding:28px;min-height:220px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.hero-card:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-70px;top:-90px;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 30%,transparent),transparent 65%)}
.eyebrow{text-transform:uppercase;letter-spacing:.17em;color:#56dff4;font-size:11px;font-weight:900;margin:0 0 8px}
.hero h2,.content-title h2{margin:0;font-size:clamp(28px,4vw,48px);line-height:1.04}
.hero p{color:var(--muted);max-width:720px}
.actions{display:flex;gap:10px;flex-wrap:wrap}
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.kpi{padding:18px}
.kpi strong{font-size:30px;display:block}
.kpi span{color:var(--muted);font-size:13px}
.content-title{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:22px 0 10px}
.content-title h2{font-size:28px;letter-spacing:-.025em}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:10px}
.card{padding:15px;grid-column:span 4}
.card.wide{grid-column:span 8}
.card.full{grid-column:1/-1}
.card h3{margin:2px 0 8px;font-size:14px;font-weight:650}
.card p{margin:0 0 12px;color:var(--muted)}
.meta{color:var(--muted);font-size:13px}
.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 7px;font-size:8.5px;font-weight:650;border:1px solid rgba(255,255,255,.06);background:#082942;border-color:#155577;box-shadow:none}
.badge.ok{color:#d5fff0;border-color:#128858;background:rgba(15,136,92,.4)}
.badge.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,var(--line));background:rgba(172,100,8,.35)}
.badge.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--line))}
.badge.info{color:var(--accent)}
.activity{display:flex;flex-direction:column;gap:12px;min-height:190px}
.activity-top{display:flex;align-items:start;justify-content:space-between;gap:12px}
.progress{height:8px;border-radius:999px;background:var(--panel2);overflow:hidden}
.progress>span{display:block;height:100%;background:var(--accent);border-radius:inherit}
.list{display:flex;flex-direction:column;gap:10px}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:14px;background:#07253d;border:1px solid var(--line);border-color:#114766}
.row-main{min-width:0}
.row h4{margin:0 0 4px}
.row p{margin:0;color:var(--muted);font-size:13px}
.statusdot{width:10px;height:10px;border-radius:50%;background:var(--muted);flex:0 0 auto}
.statusdot.ok{background:var(--ok)}
.statusdot.warn{background:var(--warn)}
.statusdot.danger{background:var(--danger)}
.tabs{display:flex;gap:2px;overflow:auto;margin:0 0 16px;padding-bottom:2px;padding:3px;border:1px solid var(--pro-line);background:#071923;border-radius:8px;border-color:var(--odx-line)}
.tab{white-space:nowrap;border:0;background:transparent;color:var(--pro-muted);padding:10px 13px;border-radius:6px;font-weight:800;border-color:#124c70;font-size:10px}
.tab.active{background:#102b38;color:#f2fbfd;border-color:transparent;box-shadow:none}
.sheet{padding:20px}
.section-title{font-weight:900;margin:2px 0 14px}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.field{display:flex;flex-direction:column;gap:7px}
.field label{font-size:12px;color:var(--muted);font-weight:800}
.timeline{display:flex;gap:8px;flex-wrap:wrap}
.step{padding:8px 10px;border-radius:10px;background:var(--panel2);border:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:800}
.step.active{color:var(--accent);border-color:var(--accent)}
.step.done{color:var(--ok)}
.palanquee{padding:16px;border-radius:18px;background:#07253d;border:1px solid var(--line);display:flex;flex-direction:column;gap:10px;border-color:#124d70}
.personchip{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px;background:color-mix(in srgb,var(--panel) 80%,transparent);border-radius:12px}
.personchip[draggable="true"]{cursor:grab}
.personchip.dragging{opacity:.4}
.dropzone{transition:box-shadow .15s,background .15s}
.dropzone.drop-hover{box-shadow:0 0 0 2px var(--accent) inset;background:color-mix(in srgb,var(--accent) 8%,var(--panel2))}
.tablewrap{overflow:auto}
.table{width:100%;border-collapse:collapse;min-width:720px}
.table th,.table td{text-align:left;padding:12px;border-bottom:1px solid var(--line);font-size:13px}
.table th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.bottomnav{position:fixed;left:50%;bottom:12px;transform:translateX(-50%);display:grid;grid-template-columns:repeat(5,1fr);gap:4px;width:min(760px,calc(100% - 24px));padding:8px;background:color-mix(in srgb,var(--panel) 92%,transparent);border:1px solid var(--line);border-radius:20px;backdrop-filter:blur(18px);z-index:30;box-shadow:var(--shadow)}
.navbtn{border:0;background:transparent;color:var(--muted);padding:9px 4px;border-radius:12px;font-size:11px;font-weight:800;cursor:pointer}
.navbtn.active{background:var(--panel2);color:var(--accent)}
.navicon{display:block;font-size:18px;margin-bottom:2px}
.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.module-card{padding:16px;border:1px solid var(--line);background:var(--panel);border-radius:18px;cursor:pointer}
.module-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}
.module-card b{display:block;margin:8px 0 4px}
.module-card span{color:var(--muted);font-size:12px}
.offline{position:fixed;top:0;left:50%;transform:translateX(-50%);z-index:100;padding:7px 14px;border-radius:0 0 12px 12px;background:var(--warn);color:#241600;font-weight:900;font-size:12px}
.login{min-height:100vh;display:grid;place-items:center;padding:24px}
.loginbox{width:min(500px,100%);padding:30px;background:var(--panel);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)}
.loginbox h1{font-size:36px;margin:8px 0}
.loginbox p{color:var(--muted)}
.loginform{display:flex;flex-direction:column;gap:12px}
.toast{position:fixed;right:18px;bottom:100px;background:var(--panel);border:1px solid var(--line);padding:12px 16px;border-radius:14px;z-index:80;box-shadow:var(--shadow)}
.toast.err{border-color:var(--danger);color:var(--danger)}
.empty{padding:28px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:16px}
.chipbar{display:flex;gap:8px;flex-wrap:wrap}
.notification{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px;border-radius:16px;background:var(--panel2);border:1px solid var(--line)}
.notification.read{opacity:.6}
.notification-icon{width:32px;height:32px;border-radius:11px;display:grid;place-items:center;background:var(--panel);color:var(--accent);font-weight:900}
.audit-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.audit-row span{color:var(--muted);font-size:12px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.stat-ring{width:86px;height:86px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#14d8f2 var(--pct),#08243a 0);position:relative;box-shadow:0 0 22px rgba(20,216,242,.08)}
.stat-ring:after{content:"";position:absolute;inset:9px;background:var(--panel);border-radius:50%}
.stat-ring b{z-index:1}
.print-sheet{background:#fff;color:#111;padding:24px;border-radius:4px}
.print-sheet table{width:100%;border-collapse:collapse}
.print-sheet th,.print-sheet td{border:1px solid #333;padding:6px;font-size:12px}
.print-sheet h3{margin:0 0 10px;font-size:15px;font-weight:700}
.print-sheet .warning-row{background:#fff3cd}
.print-sheet .signature-block{margin-top:26px;padding-top:14px;border-top:1px solid #333}
.print-sheet .signature-block p{margin:4px 0;font-size:13px}
.print-only-body{background:#fff;margin:0}
.dangerbox{padding:14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--danger) 45%,var(--line));background:color-mix(in srgb,var(--danger) 10%,var(--panel));color:var(--danger)}
.weather-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px 14px}
.dangerbox.soft{border-color:color-mix(in srgb,#f5a623 45%,var(--line));background:color-mix(in srgb,#f5a623 12%,var(--panel));color:#f5a623}
.qr-holder{display:flex;justify-content:center;padding:12px;background:#fff;border-radius:10px;margin-bottom:10px}
.equipment-tag-print{text-align:center}
@media print{.qr-holder{background:#fff!important}}
.mobile-menu-btn{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:14px;background:var(--panel2);color:var(--text);font-size:22px;cursor:pointer}
.drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:90;display:flex;justify-content:flex-end}
.drawer{width:min(360px,88vw);height:100%;background:var(--panel);border-left:1px solid var(--line);padding:20px;overflow:auto;box-shadow:-20px 0 60px rgba(0,0,0,.3)}
.drawer-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}
.drawer-link{display:flex;align-items:center;gap:10px;text-align:left;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:14px;padding:12px;font-weight:800}
.theme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}
.theme-tile{border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:16px;padding:14px;display:flex;gap:9px;align-items:center;justify-content:center}
.theme-tile.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.mobile-settings{margin-top:16px}
.mobile-settings .field{margin-top:12px}
.mobile-hub{padding-bottom:10px}
.desktop-frame{max-width:none;margin:0 auto;display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh;background:var(--odx-bg)}
.main-column{min-width:0;background:radial-gradient(800px 420px at 80% -80px,rgba(14,112,139,.12),transparent 62%),linear-gradient(180deg,#06121b 0%,#050d14 100%);min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;padding:18px 13px;border-right:1px solid var(--odx-line);background:linear-gradient(180deg,#081b26 0%,#06131c 70%,#050f17 100%);display:flex;flex-direction:column;gap:18px;overflow:hidden;min-height:0;width:238px;box-shadow:none}
.sidebar-brand{display:grid;align-items:center;gap:10px;padding:2px 7px 18px;padding-top:2px;margin:0 0 10px;border-bottom:1px solid var(--pro-line);grid-template-columns:46px 1fr;text-align:left;margin-bottom:12px}
.sidebar-brand>div:last-child{min-width:0}
.sidebar-brand b{display:block;font-size:18px}
.sidebar-brand span{display:block;color:#b1c6d5;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-group{display:flex;flex-direction:column;gap:5px;margin:0 0 13px}
.side-label{padding:0 10px 6px;color:#536c79;font-size:8px;text-transform:uppercase;letter-spacing:.14em;font-weight:800}
.side-link{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;border:0;background:transparent;color:#8ea3af;padding:0 9px;border-radius:8px;text-align:left;cursor:pointer;font-size:14px;min-height:37px;height:37px;margin:1px 0;box-shadow:none}
.side-link:hover{background:rgba(255,255,255,.032);color:#e7f1f5}
.side-link.active{background:linear-gradient(90deg,rgba(34,211,232,.13),rgba(34,211,232,.035));border-color:#0aaee6;color:#f5fdff;box-shadow:inset 2px 0 var(--odx-cyan)}
.side-link em{font-style:normal;background:#17384a;color:#b9d9e7;border-radius:999px;padding:2px 6px;font-size:9px;min-width:18px;height:18px}
.sidebar-footer{margin-top:auto;display:flex;gap:10px;align-items:center;padding:12px 8px;border-top:1px solid var(--line)}
.sidebar-footer b,.sidebar-footer span{display:block}
.sidebar-footer span{color:var(--muted);font-size:10px}
.avatar{width:36px;height:36px;border-radius:12px;background:var(--panel2);display:grid;place-items:center;font-weight:900}
.avatar.big{width:52px;height:52px;border-radius:17px;color:var(--accent)}
.dashboard-head,.page-head,.cockpit-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:28px 0 16px}
.dashboard-head h2,.page-head h2,.cockpit-head h2{font-size:clamp(28px,3vw,42px);margin:0}
.dashboard-head p,.page-head p,.cockpit-head p{color:var(--muted);max-width:760px;margin:7px 0 0}
.sync-pill{border:1px solid var(--line);background:var(--panel);padding:6px 9px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap;z-index:1;align-self:flex-start;right:18px;bottom:14px}
.sync-pill span{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;background:var(--ok)}
.sync-pill.warn span{background:var(--warn)}
.command-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:18px;margin:0 0 14px}
.command{display:flex;align-items:center;gap:14px;border:1px solid var(--odx-line);background:linear-gradient(180deg,rgba(13,35,48,.94),rgba(9,27,38,.94));color:#f8fbff;padding:12px 14px;border-radius:11px;text-align:left;cursor:pointer;min-height:78px;border-color:#0d6da2;box-shadow:none;position:relative;transition:.16s ease;overflow:hidden}
.command>span{width:56px;height:56px;border-radius:12px;background:linear-gradient(145deg,#0b6eaa,#07558b);display:grid;place-items:center;color:#22e0f6;font-weight:900;font-size:27px;border:1px solid #148fd4;border-color:#1479b5}
.command b,.command small{display:block}
.command small{color:#718a98;font-size:9px;margin-top:2px;display:block}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 13px;margin-bottom:16px}
.metric{padding:14px 17px;border:1px solid #0b6190;background:linear-gradient(180deg,#06304e,#052740);border-radius:12px;min-height:106px;border-color:#0b6190;box-shadow:none}
.metric>span,.metric small{display:block;color:#d2e0e8;font-size:11px}
.metric strong{display:block;font-size:35px;margin:7px 0 2px;color:#fff;line-height:1}
.metric-grid.slim .metric strong{font-size:26px}
.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 318px;gap:18px}
.workspace-main,.workspace-side{min-width:0}
.workspace-side{display:flex;flex-direction:column;gap:10px}
.content-title.compact{margin-top:0;margin:0 0 10px;align-items:center}
.activity-stack{display:flex;flex-direction:column;gap:6px}
.activity-line{display:grid;grid-template-columns:66px 1fr;gap:14px;padding:0;border:1px solid var(--pro-line);border-radius:10px;background:rgba(10,28,39,.72);overflow:hidden;min-height:92px;border-color:var(--odx-line);box-shadow:none}
.date-block{border-radius:0;background:linear-gradient(180deg,#0d3345,#0a2735);display:flex;place-items:center;align-content:center;min-height:92px;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--pro-line);width:76px;border:0}
.date-block b{font-size:24px;color:#e8f7fb}
.date-block span{font-size:9px;text-transform:uppercase;color:#61cbd9;font-weight:900;letter-spacing:.06em}
.activity-line-main h3,.schedule-main h3,.person-card h3,.equipment-card h3,.training-card h3{margin:2px 0 4px}
.activity-line-main>p,.schedule-main>p,.person-card p,.equipment-card p,.training-card p{color:var(--muted);margin:0 0 10px;font-size:13px}
.activity-type{color:#61cbd9;font-size:8px;text-transform:uppercase;letter-spacing:.08em;font-weight:900}
.readiness-bar{height:3px;background:#142e3c;border-radius:999px;overflow:hidden;margin:8px 0 0;margin-top:8px}
.readiness-bar span{display:block;height:100%;background:linear-gradient(90deg,#1fbdd3,#52e4ef);border-radius:99px}
.impact-mini{display:grid;grid-template-columns:10px 1fr;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);background:transparent}
.impact-mini:last-child{border:0}
.impact-mini p{font-size:11px;margin:3px 0}
.impact-dot{width:9px;height:9px;border-radius:50%;margin-top:5px;background:var(--accent)}
.impact-dot.warn{background:var(--warn)}
.impact-dot.danger{background:var(--danger)}
.empty.mini{padding:16px;border:1px solid #0c608f;background:#081c27;border-radius:10px;border-color:var(--odx-line)}
.toolbar{display:flex;gap:10px;align-items:center;margin:12px 0 16px}
.segmented{display:flex;background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:4px}
.seg{border:0;background:transparent;color:var(--muted);padding:8px 11px;border-radius:9px;font-weight:800}
.seg.active{background:var(--panel2);color:var(--accent)}
.search{flex:1}
.planning-board{display:flex;flex-direction:column;gap:18px}
.day-group{display:grid;grid-template-columns:170px 1fr;gap:16px}
.day-label{padding-top:12px}
.day-label b,.day-label span{display:block;text-transform:capitalize}
.day-label span{color:var(--muted);font-size:12px}
.day-activities{display:flex;flex-direction:column;gap:10px}
.schedule-card{display:grid;grid-template-columns:82px 1fr;gap:14px;background:var(--pro-surface);border:1px solid var(--pro-line);border-radius:9px;padding:14px;box-shadow:none}
.schedule-time{background:#0b2737;border-radius:14px;display:grid;place-items:center;align-content:center;border-right:1px solid var(--pro-line)}
.schedule-time b{font-size:20px}
.schedule-time span{font-size:11px;color:var(--muted)}
.people-cards,.equipment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.person-card,.equipment-card,.training-card{border:1px solid var(--line);background:var(--panel);border-radius:19px;padding:16px}
.person-card{display:grid;grid-template-columns:auto 1fr;gap:13px}
.person-body{min-width:0}
.doc-mini{display:flex;gap:7px;flex-wrap:wrap;margin:13px 0}
.doc-mini span{font-size:10px;border:1px solid var(--line);border-radius:999px;padding:5px 7px}
.doc-mini .ok{color:var(--ok)}
.doc-mini .warn{color:var(--warn)}
.equipment-card{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start}
.equipment-icon{width:44px;height:44px;border-radius:14px;background:var(--panel2);display:grid;place-items:center;color:var(--accent);font-size:22px}
.equipment-meta{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.equipment-meta span{padding:9px;background:var(--panel2);border-radius:11px;color:var(--muted);font-size:10px}
.equipment-meta b{display:block;color:var(--text);margin-top:3px}
.equipment-card>.select{grid-column:1/-1;width:100%}
.training-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.training-card{padding:18px}
.training-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.competencies{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.competency{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--panel2);border:1px solid var(--line);border-radius:13px;padding:10px}
.competency b,.competency small{display:block}
.competency small{color:var(--muted);font-size:10px;margin-top:2px}
.training-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;color:var(--muted);font-size:11px}
.cockpit-shell{margin-top:22px}
.cockpit-head{margin-bottom:10px}
.cockpit-lifecycle{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;background:var(--panel);border:1px solid var(--line);border-radius:16px}
.revision-chip{font-size:11px;color:var(--muted);white-space:nowrap}
.cockpit-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:11px 0}
.cockpit-metrics>div{padding:13px 15px;border-radius:15px;background:var(--panel);border:1px solid var(--line)}
.cockpit-metrics span,.cockpit-metrics b{display:block}
.cockpit-metrics span{font-size:10px;color:var(--muted);text-transform:uppercase;font-weight:900}
.cockpit-metrics b{font-size:25px;margin-top:4px}
.cockpit-metrics .danger b{color:var(--danger)}
.cockpit-grid{display:grid;grid-template-columns:190px minmax(0,1fr);gap:12px}
.cockpit-nav{display:flex;flex-direction:column;gap:6px}
.cockpit-tab{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--panel);color:var(--muted);padding:11px;border-radius:13px;text-align:left}
.cockpit-tab.active{background:color-mix(in srgb,var(--accent) 13%,var(--panel2));color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}
.cockpit-tab span{width:22px;text-align:center}
.cockpit-panel{min-width:0}
.modal-backdrop{position:fixed;inset:0;background:rgba(1,7,11,.72);backdrop-filter:blur(6px);display:grid;place-items:center;padding:20px;z-index:1000;overscroll-behavior:contain}
.modal{width:min(720px,100%);max-height:90vh;overflow:auto;background:#091c27;border:1px solid rgba(151,190,211,.18);border-radius:14px;padding:20px;box-shadow:0 35px 110px rgba(0,0,0,.56);overscroll-behavior:contain;border-color:rgba(139,184,203,.18)}
.field.full{grid-column:1/-1}
.rotation-board{display:grid;gap:10px;margin-top:14px}
.rotation-card{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--card2)}
.rotation-card h4{margin:4px 0}
.event-mini{display:grid;gap:5px;font-size:12px;color:var(--muted);padding:10px 0;border-top:1px solid var(--border)}
.package-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:14px}
.package-card{display:grid;gap:8px;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--card2)}
.package-card strong{font-size:26px}
.build-chip{font-size:11px;color:var(--muted)}
.impact-action{width:100%;border:0;color:inherit;text-align:left;cursor:pointer;font:inherit}
.impact-mini.impact-action{background:transparent}
.impact-mini.impact-action:hover,.impact-mini.impact-action:focus-visible{background:color-mix(in srgb,var(--accent) 8%,transparent);border-radius:12px}
.impact-mini.impact-action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.impact-mini small,.impact-row-main small{display:block;color:var(--accent);font-size:10px;font-weight:800;margin-top:5px}
.impact-row{align-items:stretch}
.impact-row-main{display:grid;grid-template-columns:10px 1fr;gap:10px;align-items:start;flex:1;background:transparent;border:0;color:inherit;text-align:left;padding:0;cursor:pointer}
.impact-row-main:hover small{text-decoration:underline}
.document-focus.focused,.equipment-item.focused{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent),var(--shadow);animation:focusPulse 1.1s ease-out 1}
.document-focus.focused{background:color-mix(in srgb,var(--accent) 8%,var(--panel2))}
.document-upload-field{margin-top:4px}
.document-capture{display:grid;grid-template-columns:42px 1fr;gap:3px 12px;align-items:center;padding:15px;border:1px dashed color-mix(in srgb,var(--accent) 55%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--accent) 7%,var(--panel2));cursor:pointer}
.document-capture:hover{background:color-mix(in srgb,var(--accent) 12%,var(--panel2))}
.document-capture-icon{grid-row:1/3;font-size:27px}
.document-capture b{color:var(--text)}
.document-capture small{color:var(--muted);font-size:11px;line-height:1.35}
.document-capture input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.file-chosen{margin-top:8px;color:var(--muted);font-size:11px}
.privacy-note{padding:10px 12px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);color:var(--muted);font-size:11px;line-height:1.4}
.document-preview-image{display:block;max-width:100%;max-height:65vh;margin:12px auto;border-radius:14px;border:1px solid var(--line);background:#fff}
.document-preview-frame{width:100%;height:65vh;border:1px solid var(--line);border-radius:14px;background:#fff}
.document-focus .actions{flex-wrap:wrap}
.textarea{min-height:118px;resize:vertical;font:inherit;line-height:1.45}
.field-help{display:block;margin-top:7px;color:var(--muted);font-size:12px;line-height:1.4}
.sidebar-user{display:flex;gap:10px;align-items:center;padding:10px;border-bottom:1px solid #12405f;cursor:pointer;margin:0 0 12px;border:1px solid var(--odx-line);border-radius:9px;background:linear-gradient(180deg,rgba(17,48,64,.54),rgba(10,31,43,.54));margin-bottom:16px}
.sidebar-user:hover{background:rgba(255,255,255,.035);border-radius:14px;border-color:var(--odx-line2)}
.sidebar-user b,.sidebar-user span{display:block}
.sidebar-user span{font-size:9px;color:var(--pro-muted);line-height:1.35;margin-top:3px}
.sidebar-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:0;padding-bottom:24px;display:flex;flex-direction:column;gap:15px;scrollbar-width:thin;flex:1}
.sidebar-footer{border-top:1px solid var(--odx-line,var(--pro-line,#123));padding-top:10px;margin-top:6px}
.sidebar-footer .logout-btn{color:#ff8a8a}
.sidebar-footer .logout-btn:hover{background:rgba(255,90,90,.12);color:#ffb3b3}
.profile-panel-head .actions{display:flex;gap:10px;flex-wrap:wrap}
.profile-panel-head .logout-btn{color:#ff8a8a;border-color:rgba(255,90,90,.35)}
.sidebar-scroll::-webkit-scrollbar{width:6px}
.sidebar-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}
.module-toggle-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}
.module-toggle{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel2);cursor:pointer}
.module-toggle input{margin-top:3px;accent-color:var(--accent)}
.module-toggle b,.module-toggle small{display:block}
.module-toggle small{color:var(--muted);margin-top:3px}
.danger-zone{border-color:color-mix(in srgb,#ff5e6c 30%,var(--line))}
.resource-row .actions{flex-wrap:wrap;justify-content:flex-end}
.resource-row .btn{padding:7px 10px}
.admin-grid .form-grid{margin-top:12px}
.brand-logo,.sidebar-logo{width:50px;height:50px;object-fit:cover;flex:0 0 auto;filter:none;background:#06233f;border:1px solid color-mix(in srgb,var(--accent) 38%,#0b2d4a);box-shadow:0 8px 24px rgba(0,0,0,.24),0 0 0 1px rgba(0,212,200,.05);border-radius:15px;overflow:hidden}
.sidebar-logo{width:48px;height:43px}
.octodive-wordmark{display:inline-flex;align-items:baseline;letter-spacing:0;font-weight:950;text-transform:uppercase;white-space:nowrap;gap:0;word-spacing:0}
.octodive-wordmark .octo{color:var(--text)}
.octodive-wordmark .dive{color:var(--accent)}
.brand h1.octodive-wordmark{font-size:14px;margin:0;line-height:.95;letter-spacing:-.055em}
.sidebar-wordmark{font-size:21px;line-height:1.05;font-weight:950;letter-spacing:-.055em}
.brand-tagline{margin:2px 0 0;color:var(--muted);font-size:12px}
.login-brand{text-align:center;margin:-6px 0 22px}
.login-mascot{display:block;width:min(230px,62vw);height:auto;margin:0 auto -6px;filter:drop-shadow(0 22px 38px rgba(0,0,0,.28))}
.login-wordmark{font-size:42px;justify-content:center;margin:0}
.sidebar-brand>div{min-width:0}
.drawer .eyebrow{color:var(--accent)}
.login-logo-full{display:block;width:min(390px,88vw);height:auto;margin:0 auto;border-radius:24px;object-fit:contain;filter:drop-shadow(0 24px 48px rgba(0,0,0,.32))}
#otherSiteWrap[hidden]{display:none}
.planning-toolbar{align-items:center;flex-wrap:wrap;background:linear-gradient(180deg,#0b202c,#091a24);border:1px solid var(--pro-line);border-radius:10px;padding:9px;border-color:var(--odx-line)}
.planning-period{display:flex;align-items:center;gap:8px}
.planning-period>b{text-transform:capitalize;min-width:170px;text-align:center}
.week-calendar{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:8px;overflow-x:auto;padding-bottom:8px}
.week-day{min-height:300px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:10px}
.week-day.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}
.week-day header{display:grid;gap:2px;margin-bottom:10px;color:var(--muted);text-transform:capitalize}
.week-day header strong{font-size:26px;color:var(--text)}
.calendar-activity{width:100%;display:grid;grid-template-columns:auto 1fr;gap:6px;align-items:start;text-align:left;margin:0 0 7px;padding:5px 6px;border:0;border-radius:5px;background:#102b38;color:#dbe8ee;cursor:pointer;font-size:8.5px;border-left:2px solid #20cfe9;border-left-color:var(--odx-cyan)}
.calendar-activity b{color:var(--accent)}
.calendar-activity span{overflow:hidden;text-overflow:ellipsis}
.calendar-empty{color:var(--muted)}
.month-calendar{background:var(--panel);border:1px solid var(--line);border-radius:20px;overflow:hidden}
.month-weekdays{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--pro-line);background:#071721}
.month-weekdays b{padding:10px 12px;color:#6f8998;font-size:9px;text-align:center}
.month-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.month-day{min-height:132px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel)}
.month-day:nth-child(7n){border-right:0}
.month-day.outside{opacity:.42}
.month-day.today{background:color-mix(in srgb,var(--accent) 7%,var(--panel));box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent)}
.month-day-number{font-weight:900;margin-bottom:7px;font-size:10px;color:#aabcc6}
.month-events{display:flex;flex-direction:column}
.calendar-more{border:0;background:transparent;color:var(--accent);font-size:11px;text-align:left;cursor:pointer;padding:3px}
.document-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.65fr);gap:14px}
.document-side{display:flex;flex-direction:column;gap:14px}
.document-status-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:16px 0 12px}
.doc-filter{border:1px solid var(--line);background:var(--panel2);color:var(--muted);padding:8px 11px;border-radius:999px;font-weight:800;cursor:pointer}
.doc-filter b{margin-left:7px;color:var(--text)}
.doc-filter.active{border-color:color-mix(in srgb,var(--accent) 65%,var(--line));color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--panel2))}
.document-filters{display:grid;grid-template-columns:1fr 220px;gap:9px;margin-bottom:12px}
.document-list{display:flex;flex-direction:column;gap:8px}
.document-row{display:grid;grid-template-columns:minmax(220px,1fr) 150px 120px auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--panel2)}
.document-person{display:flex;gap:10px;align-items:center;min-width:0}
.document-person b,.document-person span{display:block}
.document-person span,.document-expiry small{font-size:11px;color:var(--muted)}
.document-expiry b{display:block;font-size:12px}
.period-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.period-picker label{border:1px solid var(--line);background:var(--panel2);padding:11px;border-radius:12px;cursor:pointer;font-weight:700;font-size:12px}
.period-picker input{accent-color:var(--accent)}
.login-error{padding:10px 12px;border:1px solid var(--danger);border-radius:12px;color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--panel));font-size:13px}
.demo-login-card .actions{margin:10px 0}
.demo-login-card button{width:auto}
.demo-profiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.demo-profiles .demo-login{display:flex;flex-direction:column;gap:3px;align-items:flex-start;text-align:left}
.demo-profiles .demo-login span{font-size:11px;opacity:.72;letter-spacing:.04em}
.demo-superadmin{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 16%,transparent) inset}
.demo-superadmin span{color:var(--accent)}
.octodive-wordmark .octo,.octodive-wordmark .dive{display:inline-block;margin:0;padding:0}
.sidebar-logo,.brand-logo{width:54px;height:54px;border-radius:16px;background:linear-gradient(145deg,#052b57,#03182f);border:1px solid #0a78bd;box-shadow:inset 0 0 24px rgba(15,146,255,.16),0 8px 24px rgba(0,0,0,.28);padding:2px;object-fit:cover}
.sidebar-user .avatar{width:32px;height:32px;border-radius:8px;background:linear-gradient(145deg,#12445a,#0d2c3c);color:var(--odx-cyan-hi);font-size:11px;border:1px solid #1c5068}
.sidebar-user b{font-size:12px}
.side-link>span:first-child{font-size:21px;color:#77909f;width:22px;height:22px;display:grid;place-items:center;line-height:1;filter:drop-shadow(0 0 8px rgba(51,221,255,.08));border:0;background:transparent;border-radius:5px}
.side-link.active>span:first-child,.side-link.active b{color:#4fe9ff}
.top-actions .select,.top-actions .btn{height:31px;border-radius:7px;background:rgba(12,31,42,.72);border-color:var(--odx-line);border:1px solid var(--pro-line);color:#c6d5dd;padding:0 10px;font-size:9.5px;box-shadow:none;min-height:31px}
.top-actions .select:hover,.top-actions .btn:hover{border-color:rgba(32,207,233,.28);background:#0d2230}
.card,.sheet,.hero-card,.month-calendar,.week-day{background:linear-gradient(180deg,rgba(6,30,50,.98),rgba(4,24,41,.98));border-color:#124b70;box-shadow:0 12px 34px rgba(0,0,0,.18)}
.card:hover,.module-card:hover{border-color:#147cb0}
.btn:hover{transform:translateY(-1px)}
.input,.textarea,.select{background:#08253d;border-color:#154e71;color:#f2fbff}
.input:focus,.textarea:focus,.select:focus{outline:none;border-color:#20cce9;box-shadow:0 0 0 3px rgba(32,204,233,.45)}
.dashboard-head{margin:14px 0 12px;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #145078;border-radius:19px;background:linear-gradient(100deg,#05233d 0%,#063457 56%,#05243d 100%);position:relative;overflow:hidden;min-height:148px}
.dashboard-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 76% 36%,rgba(22,191,237,.24),transparent 22%),linear-gradient(120deg,transparent 50%,rgba(0,151,211,.13));pointer-events:none}
.dashboard-hero:after{content:"";position:absolute;right:30px;top:-42px;width:220px;height:220px;background:url('/octodive-mascot.png') center/contain no-repeat;opacity:.13;filter:saturate(1.35);pointer-events:none}
.dashboard-head>div{position:relative;z-index:1}
.dashboard-head h2{font-size:clamp(30px,4vw,48px);line-height:1;margin:4px 0 9px;letter-spacing:-.04em}
.dashboard-head p:not(.eyebrow){color:#c0d5e4;margin:0;max-width:800px;font-size:15px}
.command:hover{border-color:rgba(34,211,232,.25);background:linear-gradient(180deg,#102b3a,#0b2230);transform:translateY(-2px);box-shadow:0 14px 34px rgba(0,0,0,.18)}
.command b{font-size:12.5px;display:block;font-weight:650}
.metric span{font-size:12px;color:#a3bbcd}
.metric small{color:#d0dfe8;font-size:11px}
.activity-line-main{padding:11px 13px}
.activity-line h3{margin:3px 0 4px;font-size:18px}
.activity-line p{margin:0 0 10px;color:#a7c0d0}
.activity-line .progress{height:6px;background:#082136}
.activity-line .progress>span{background:linear-gradient(90deg,#17d0e8,#4be7c5)}
.workspace-side .card{padding:16px;border-radius:9px;border:1px solid var(--pro-line);background:var(--pro-surface);box-shadow:none;border-color:#0b608f}
.workspace-side h3{font-size:21px}
.workspace-side .btn{width:100%}
.page-head,.cockpit-head{padding:22px 24px;border:1px solid #144c70;border-radius:19px;background:linear-gradient(110deg,#06253e,#052039);margin-top:14px}
.page-head h2,.cockpit-head h2{letter-spacing:-.035em}
.tabs,.toolbar{gap:7px}
:root[data-theme="surface"] .dashboard-head,:root[data-theme="surface"] .page-head,:root[data-theme="surface"] .cockpit-head{background:linear-gradient(115deg,#edf8fc,#dff3f8)}
:root[data-theme="surface"] .command,:root[data-theme="surface"] .metric,:root[data-theme="surface"] .activity-line{background:#fff}
:root[data-theme="surface"] .main-column{background:#f4f8fb}
.side-link b{font-size:11.5px;line-height:1.15;font-weight:600}
.side-link.active>span:first-child{color:var(--odx-cyan-hi);filter:drop-shadow(0 0 10px rgba(41,220,255,.28));background:transparent}
.dashboard-head.dashboard-hero{min-height:190px;padding:31px 34px;background-image:linear-gradient(90deg,rgba(3,12,19,.99) 0%,rgba(3,14,22,.92) 28%,rgba(4,18,28,.50) 50%,rgba(3,16,25,.05) 73%),url('/octodive-hero-approved-v30.jpg');background-size:100% 100%,cover;background-position:center;border-color:#146394;box-shadow:0 24px 70px rgba(0,0,0,.26);height:190px;margin-top:14px;border-radius:14px;background-repeat:no-repeat;border:1px solid rgba(70,206,227,.22);background-color:#05223a;image-rendering:auto;overflow:hidden;margin:0 0 14px;position:relative}
.dashboard-head.dashboard-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,18,31,.35),transparent 56%);pointer-events:none}
.dashboard-head.dashboard-hero:after{display:none;content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.018),transparent 25%,transparent 75%,rgba(0,0,0,.16));border-radius:inherit}
.dashboard-head.dashboard-hero>div:first-child{max-width:52%;position:relative;z-index:1}
.dashboard-head.dashboard-hero .eyebrow{color:#69c8d8;text-shadow:0 1px 8px rgba(0,0,0,.65);font-size:8.5px;margin-bottom:9px;letter-spacing:.16em}
.dashboard-head.dashboard-hero h2{font-size:39px;text-shadow:0 3px 18px rgba(0,0,0,.6);line-height:1.05;margin-top:5px;letter-spacing:-.045em;margin:0 0 13px;font-weight:690;margin-bottom:10px}
.dashboard-head.dashboard-hero p:not(.eyebrow){font-size:12px;color:#adc2cc;text-shadow:0 2px 12px rgba(0,0,0,.72);max-width:480px;line-height:1.55;margin:0}
.hello-wave{font-size:.8em;vertical-align:.08em}
.hero-motto{position:absolute;z-index:2;right:34px;top:32px;max-width:180px;color:#fff;font-size:27px;line-height:1.25;font-style:italic;font-weight:500;letter-spacing:.015em;transform:rotate(-3deg);text-align:center;text-shadow:0 2px 14px rgba(0,0,0,.7);opacity:.96;display:none}
.dashboard-head.dashboard-hero .sync-pill{position:absolute;right:18px;bottom:14px;top:auto;z-index:3;background:rgba(2,23,39,.74);backdrop-filter:blur(8px);display:none}
.learner-insights{align-self:start}
.card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.card-title-row h3{margin:2px 0 4px}
.text-action{border:0;background:transparent;color:#28dff7;font-weight:800;font-size:11px;cursor:pointer;padding:4px 0;white-space:nowrap}
.text-action:hover{color:#8cf1ff;text-decoration:underline}
.progression-card{padding:18px 18px 17px}
.progression-body{display:grid;grid-template-columns:126px 1fr;align-items:center;gap:20px;margin-top:14px}
.progress-ring{--pct:0%;width:118px;aspect-ratio:1;border-radius:50%;background:conic-gradient(#1adbf4 var(--pct),#0b3a5d 0);display:grid;place-items:center;position:relative;box-shadow:0 0 28px rgba(16,210,242,.13)}
.progress-ring:after{content:"";position:absolute;inset:12px;border-radius:50%;background:#05253f;border:1px solid #124c70;border-color:#0e567d}
.progress-ring>div{position:relative;z-index:1;text-align:center;display:flex;flex-direction:column;line-height:1}
.progress-ring b{font-size:28px;color:white}
.progress-ring span{font-size:8px;color:#7eddf0;text-transform:uppercase;letter-spacing:.08em;margin-top:5px}
.progression-copy strong{font-size:17px;color:#fff}
.progression-copy p{font-size:12px;color:#a9c2d1;margin:7px 0 12px;line-height:1.4}
.progression-copy .btn{width:auto}
.qualifications-card{padding:17px 18px}
.qualification-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}
.qualification-chip{display:inline-flex;align-items:center;min-height:34px;padding:7px 13px;border-radius:999px;font-size:12px;font-weight:850;border:1px solid #15597d;background:#092b45;color:#d9eff8}
.qualification-chip.ok{background:#0a765f;border-color:#10b394;color:white}
.qualification-chip.current{background:#0b4b94;border-color:#1685e0;color:white}
.qualification-chip.neutral{color:#90aabc}
.dossier-mini{padding:16px 18px}
.readiness-bar>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1be3f4,#4ee3db);box-shadow:0 0 12px rgba(24,219,245,.2)}
:root[data-theme="abyssal"],:root:not([data-theme]){--bg:#031523;--panel:#06233a;--panel2:#082f4d;--text:#f6fbff;--muted:#a8c3d6;--accent:#19d7f5;--accent2:#33a9ff;--line:#0f5d8f;--ok:#39dc88;--warn:#ffb52f;--danger:#ff5072}
.brand-logo{width:48px;height:48px;border-radius:12px;padding:0;object-fit:cover;background:#062b53;border:1px solid #168fe0}
.command-strip.learner-commands{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:16px}
.learner-workspace{grid-template-columns:minmax(0,1.75fr) minmax(310px,.75fr);gap:16px;margin-top:16px}
.content-title.compact .eyebrow{display:none}
.content-title.compact h2{font-size:29px;color:#a8dcf8;letter-spacing:-.025em;font-weight:780}
.activity-line-main h3{font-size:13.5px}
.activity-line-main p{font-size:12px;color:#b7cddd}
.progression-card,.qualifications-card{border-radius:15px;border-color:#0f5f8e;background:linear-gradient(180deg,#062d4c,#05253f);box-shadow:none}
.progression-card .eyebrow,.qualifications-card .eyebrow{display:none}
.progression-card h3,.qualifications-card h3{font-size:21px;margin:0}
.dive-inspiration{min-height:118px;display:flex;align-items:flex-end;background-image:linear-gradient(90deg,rgba(2,24,40,.86),rgba(2,24,40,.25)),url('/octodive-hero-banner.jpg');background-size:cover;background-position:center 66%;border-color:#0f5f8e;overflow:hidden}
.dive-inspiration .eyebrow{display:none}
.dive-inspiration h3{max-width:260px;font-size:16px;line-height:1.3;text-shadow:0 2px 10px #00111f}
.dive-inspiration .btn{font-size:11px}
.learner-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}
.learner-stat{position:relative;min-height:118px;padding:15px 15px 24px;display:flex;gap:12px;align-items:flex-start;border:1px solid #0f5d89;border-radius:14px;background:linear-gradient(180deg,#062e4c,#05243c);overflow:hidden}
.learner-stat .stat-icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#073b61;font-size:22px;color:#20dff8}
.learner-stat b{display:block;font-size:20px}
.learner-stat small{color:#c1d4e1;font-size:11px}
.learner-stat i{position:absolute;left:12px;right:12px;bottom:8px;height:18px;border-bottom:3px solid #15bdfa;border-radius:50%;opacity:.85;transform:skewX(-18deg)}
.stat-time .stat-icon{color:#a780ff}
.stat-time i{border-color:#9a6cff}
.stat-sites .stat-icon{color:#49e68f}
.stat-sites i{border-color:#38d77a}
.logo-tile{display:block;flex:0 0 auto;overflow:hidden;background-color:#052a4d;background-image:url('/octodive-logo-full.webp');background-repeat:no-repeat;background-size:148% auto;background-position:center 5%;border:1px solid #168fe0;box-shadow:inset 0 0 24px rgba(0,169,255,.16),0 10px 26px rgba(0,0,0,.27)}
.sidebar-wordmark .octo,.brand .octodive-wordmark .octo{color:#fff}
.sidebar-wordmark .dive,.brand .octodive-wordmark .dive{color:#26d9f5}
.brand-logo.logo-tile{width:54px;height:54px;border-radius:12px;padding:0;background-image:url('/octodive-icon-v26.png');background-size:cover;background-position:center;border:0;box-shadow:none;overflow:hidden}
.brand .octo,.sidebar-wordmark .octo{color:#fff}
.brand .dive,.sidebar-wordmark .dive{color:#26d9f5}
.sidebar-logo.logo-tile,
.brand-logo.logo-tile{background-image:url('/octodive-icon-v26.png');background-size:cover;background-position:center;background-repeat:no-repeat;background-color:transparent;border:none;padding:0;box-shadow:none;outline:none}
.app,.main-column{background:transparent}
.content-title.compact .btn{padding:8px 16px;border-radius:10px;color:#20dff5;background:#06304e;border-color:#0d6392}
.activity-line-main>p{font-size:10px;color:var(--pro-muted);margin-bottom:7px}
.activity-line .actions{display:none}
.workspace-side .card h3{font-size:15px}
.top-actions .btn:hover,.top-actions .select:hover{border-color:#17a9d5}
.dashboard-head.dashboard-hero .hero-motto{display:none}
.command>span.command-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:9px;background:rgba(34,211,232,.075);border:1px solid rgba(34,211,232,.13);color:var(--pro-accent)}
.command>span.command-icon svg{width:19px;height:19px}
.command>span.command-dp{font-size:16px;font-weight:900}
.command>span.command-material{color:var(--pro-accent);background:rgba(32,207,233,.10)}
.command>i{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-style:normal;font-size:18px;color:#3e5967;font-weight:300}
.metric>span{font-size:11px;color:#d2e1e9}
.workspace-side .eyebrow{color:#63899b;font-size:8.5px}
.sidebar-logo.logo-tile{width:46px;height:46px;border-radius:11px;flex:0 0 42px;margin:0;box-shadow:0 0 0 1px rgba(70,225,242,.13),0 10px 24px rgba(0,0,0,.25)}
.sidebar-brand>div>span{font-size:9px;color:#6f8795;max-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em}
.side-link svg{width:15px;height:15px}
.topbar .brand-logo{display:none}
.metric-grid,.kpis{gap:0;padding:0;border:1px solid var(--odx-line);border-radius:11px;background:var(--odx-surface);overflow:hidden;margin-bottom:20px}
.metric,.kpi{min-height:86px;padding:15px 18px;border:0;border-radius:0;background:transparent;box-shadow:none;border-right:1px solid var(--odx-line)}
.metric strong,.kpi strong{font-size:29px;font-weight:700;letter-spacing:-.04em;color:#f6fbfd}
.metric>span,.metric small,.kpi span{font-size:8px;color:#657e8b;text-transform:uppercase;letter-spacing:.075em}
.content-title h2,.content-title.compact h2{font-size:20px;font-weight:680;letter-spacing:-.025em}
.content-title .eyebrow{font-size:8.5px;letter-spacing:.12em;color:#547483;margin-bottom:4px}
.content-title .btn,.content-title.compact .btn{height:32px;padding:0 11px;border-radius:7px;font-size:10px}
.card,.sheet{border:1px solid var(--pro-line);border-radius:10px;background:var(--pro-surface);box-shadow:none}
.card:hover{border-color:rgba(137,183,204,.19)}
.card p,.meta{color:var(--pro-muted);font-size:10.5px;line-height:1.5}
.activity-line:hover{border-color:rgba(34,211,232,.22);background:#0d2532}
.btn-primary:hover{background:#2ad0e8;border-color:#2ad0e8;filter:brightness(1.08);transform:translateY(-1px)}
.input,.select,textarea{border-radius:7px;background:#071923;border:1px solid var(--pro-line);box-shadow:none;color:#e9f2f6;border-color:rgba(135,177,197,.15)}
.input:focus,.select:focus,textarea:focus{border-color:rgba(34,211,232,.50);box-shadow:0 0 0 3px rgba(34,211,232,.07);outline:0}
.planning-toolbar,.planning-board,.week-calendar,.month-calendar{border-color:var(--pro-line)}
.month-calendar,.week-calendar{background:#081923;border:1px solid var(--pro-line);border-radius:10px;overflow:hidden;border-color:var(--odx-line)}
.month-day,.week-day{background:#091b26;border-color:rgba(133,178,199,.09);min-height:112px}
.month-day:hover,.week-day:hover{background:#0d2532}
.month-day.today,.week-day.today{background:rgba(34,211,232,.035);box-shadow:inset 0 0 0 1px rgba(34,211,232,.32)}
.calendar-activity:hover{background:#153847}
.list,.audit-list{border:1px solid var(--pro-line);border-radius:9px;overflow:hidden;background:#091b26;border-color:var(--odx-line)}
.row,.audit-row{border:0;border-bottom:1px solid var(--pro-line);border-radius:0;background:transparent;padding:11px 13px;border-bottom-color:var(--odx-line)}
.row:last-child,.audit-row:last-child{border-bottom:0}
.row:hover,.audit-row:hover{background:#0d2430}
.command:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:transparent}
.command:hover:before{background:var(--odx-cyan)}
.metric:last-child,.kpi:last-child{border-right:0}
.card,.sheet,.workspace-side .card{background:linear-gradient(180deg,rgba(12,31,43,.92),rgba(9,25,35,.92));border:1px solid var(--odx-line);border-radius:11px}
.btn-secondary:hover{background:#102a38;border-color:rgba(34,211,232,.20)}
.profile-page{display:block}
.profile-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 26px;margin-bottom:16px;border:1px solid #105c82;border-radius:16px;background:radial-gradient(circle at 85% 20%,rgba(17,148,190,.14),transparent 28%),linear-gradient(135deg,#082a40,#061d2e)}
.profile-identity{display:flex;align-items:center;gap:18px}
.profile-avatar-xl{width:72px;height:72px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,#0d8dc4,#07517d);border:1px solid #1fc9e9;font-size:24px;font-weight:900;color:white;box-shadow:0 14px 34px rgba(0,0,0,.24)}
.profile-hero h2{font-size:30px;margin:3px 0 4px}
.profile-readiness{min-width:210px;padding:13px 16px;border-radius:12px;border:1px solid #1b795f;background:#092f2c;display:grid;grid-template-columns:1fr auto;gap:2px 12px}
.profile-readiness.attention{border-color:#88672c;background:#302713}
.profile-readiness span{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.profile-readiness b{font-size:20px}
.profile-readiness small{grid-column:1/-1;color:#8eb0bd}
.profile-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:16px;align-items:start}
.profile-summary,.profile-panel{border:1px solid #0c4868;background:#061f30;border-radius:14px;padding:20px}
.profile-summary{position:sticky;top:90px}
.profile-section-title{font-size:11px;text-transform:uppercase;letter-spacing:.13em;font-weight:850;color:#55d8ee;margin-bottom:12px}
.identity-list{margin:0 0 16px}
.identity-list>div{padding:11px 0;border-bottom:1px solid rgba(79,135,159,.16)}
.identity-list dt{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#648a9d}
.identity-list dd{margin:4px 0 0;font-weight:700;color:#f2f8fb;word-break:break-word}
.profile-lock-note{font-size:11px;line-height:1.55;color:#6e91a1;margin:14px 0 0}
.profile-main{display:grid;gap:16px}
.profile-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}
.profile-panel h3{margin:2px 0;font-size:19px}
.profile-certified{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#7899a8;border:1px solid #244b60;padding:6px 8px;border-radius:8px}
.qualification-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.qualification-primary{grid-column:1/-1;padding:16px;border-radius:11px;border:1px solid #0d6b91;background:linear-gradient(135deg,#083653,#08283d)}
.qualification-primary span,.qualification-primary small,.qualification-item small,.document-profile-row small{display:block;color:#789dab;font-size:11px}
.qualification-primary b{display:block;font-size:22px;margin:3px 0}
.qualification-item,.document-profile-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border:1px solid rgba(55,114,139,.28);border-radius:10px;background:#072536}
.document-profile-list{display:grid;gap:8px}
.document-profile-row{display:grid;grid-template-columns:38px 1fr auto}
.document-profile-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#093d55;color:#3bdcf1;border:1px solid #0c6688}
.profile-settings{display:grid;grid-template-columns:minmax(240px,.7fr) 1.3fr;gap:24px;align-items:center}
.profile-theme-controls{display:grid;gap:10px}
.theme-grid.compact{grid-template-columns:repeat(4,1fr)}
.theme-grid.compact .theme-tile{min-height:58px}
@media(max-width:900px){
.hero{grid-template-columns:1fr}
.card,.card.wide{grid-column:span 6}
.topbar{position:sticky;top:0;padding:0;border-radius:0;height:58px;min-height:58px;margin-bottom:10px;margin:0 0 10px}
.top-actions{display:none}
.desktop-actions{display:none}
.mobile-menu-btn{display:grid;place-items:center}
.bottomnav{display:grid;bottom:8px;background:rgba(3,23,39,.96);border-color:#12527a;box-shadow:0 12px 36px rgba(0,0,0,.42)}
.shell{padding-bottom:96px;padding:0 11px 88px}
.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.module-card{min-height:118px}
.tabs{scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.row{align-items:flex-start}
.row>.actions{justify-content:flex-end}
.content-title{margin-top:22px}
.desktop-frame{display:block}
.sidebar{display:none}
.dashboard-head,.page-head,.cockpit-head{align-items:flex-start}
.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.cockpit-grid{display:block}
.cockpit-nav{flex-direction:row;overflow:auto;margin-bottom:10px}
.cockpit-tab{min-width:max-content}
.people-cards,.equipment-grid,.training-board{grid-template-columns:1fr 1fr}
.day-group{grid-template-columns:1fr}
.day-label{padding:0}
.toolbar{overflow:auto}
.workspace-side{display:grid;grid-template-columns:1fr;gap:10px;margin-top:12px}
.document-layout{grid-template-columns:1fr}
.document-side{display:grid;grid-template-columns:1fr 1fr}
.document-row{grid-template-columns:minmax(180px,1fr) 130px 110px}
.document-row .btn{grid-column:1/-1}
.period-picker{grid-template-columns:1fr 1fr}
.brand-logo{width:42px;height:42px}
.brand small{max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand h1.octodive-wordmark{font-size:17px}
.dashboard-head{min-height:162px;padding:20px 17px;align-items:flex-start}
.dashboard-hero:after{width:155px;height:155px;right:-8px;top:-5px;opacity:.14}
.dashboard-head h2{font-size:34px;max-width:75%}
.dashboard-head p:not(.eyebrow){max-width:78%;font-size:13px}
.sync-pill{display:none}
.command-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.command{min-height:62px;padding:10px}
.command>span{width:44px;height:44px}
.metric{min-height:95px;padding:12px}
.workspace-grid{display:block;grid-template-columns:1fr}
.activity-line{grid-template-columns:66px 1fr}
.date-block{min-height:112px}
.activity-line-main{padding:12px}
.content-title h2{font-size:24px}
.navbtn{min-height:52px}
.navbtn.active{background:#073252;color:#2fe3f9}
.dashboard-head.dashboard-hero{min-height:164px;background-position:left center,65% center;padding:22px;height:164px;border-radius:10px;background-size:100% 100%,auto 100%}
.dashboard-head.dashboard-hero:before{background:linear-gradient(90deg,rgba(1,17,30,.93) 0%,rgba(1,18,31,.72) 58%,rgba(1,18,31,.18) 100%)}
.dashboard-head.dashboard-hero>div:first-child{max-width:80%}
.hero-motto{display:none}
.dashboard-head.dashboard-hero h2{font-size:29px}
.dashboard-head.dashboard-hero p:not(.eyebrow){font-size:13px;max-width:88%}
.progression-body{grid-template-columns:92px 1fr}
.progress-ring{width:88px}
.command-strip.learner-commands{grid-template-columns:1fr 1fr}
.learner-stats{grid-template-columns:1fr 1fr}
.brand-logo.logo-tile{width:44px;height:44px}
.month-day{min-height:90px}
.metric-grid,.kpis{display:grid;grid-template-columns:repeat(2,1fr)}
.metric,.kpi{border-bottom:1px solid var(--odx-line)}
.profile-hero{align-items:flex-start;flex-direction:column}
.profile-readiness{width:100%}
.profile-layout{grid-template-columns:1fr}
.profile-summary{position:static}
.qualification-grid{grid-template-columns:1fr}
.profile-settings{grid-template-columns:1fr}
.theme-grid.compact{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
.shell{padding:8px 10px 104px}
.topbar{padding:10px 12px;border-radius:16px}
.brand small{display:block;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}
.hero-card{padding:18px;min-height:180px;border-radius:20px}
.kpis{grid-template-columns:repeat(2,1fr);gap:8px}
.grid{display:block}
.card{margin-bottom:12px;padding:15px}
.content-title{align-items:flex-start;display:flex}
.content-title h2{font-size:25px}
.form-grid,.split{grid-template-columns:1fr}
.bottomnav{bottom:6px;width:calc(100% - 16px);border-radius:18px;padding:6px}
.navbtn{font-size:10px;padding:8px 2px}
.table{min-width:620px}
.sheet{padding:14px}
.topbar .select{max-width:145px}
body{background:var(--bg)}
.brandmark{width:38px;height:38px;border-radius:12px}
.brand h1{font-size:17px}
.hero{margin-top:10px}
.hero h2{font-size:31px}
.kpi{padding:13px}
.kpi strong{font-size:25px}
.card,.sheet{border-radius:18px}
.activity-top{align-items:flex-start}
.actions{gap:7px}
.btn{padding:10px 12px}
.row{padding:11px;flex-direction:column}
.row>.actions{width:100%}
.row>.actions .btn{flex:1}
.palanquee{padding:13px}
.personchip{flex-direction:column;align-items:stretch}
.personchip .select{width:100%}
.notification{grid-template-columns:auto 1fr}
.notification>.btn,.notification>.badge{grid-column:2}
.print-sheet{overflow:auto}
.navicon{font-size:19px}
.drawer{width:92vw}
.drawer-nav{grid-template-columns:1fr 1fr}
.tablewrap{margin-left:-4px;margin-right:-4px}
.toast{left:12px;right:12px;bottom:90px;text-align:center}
.dashboard-head,.page-head,.cockpit-head{display:block;margin-top:16px}
.dashboard-head .sync-pill{margin-top:10px;display:inline-flex}
.command-strip{grid-template-columns:repeat(2,1fr)}
.command{padding:10px}
.metric-grid{grid-template-columns:repeat(2,1fr);gap:8px}
.metric{padding:13px}
.metric strong{font-size:25px}
.workspace-side{display:block}
.workspace-side>.card{margin-bottom:10px}
.activity-line{grid-template-columns:54px 1fr;padding:11px;gap:10px}
.date-block{min-height:70px}
.date-block b{font-size:22px}
.schedule-card{grid-template-columns:62px 1fr;padding:11px}
.schedule-time b{font-size:17px}
.people-cards,.equipment-grid,.training-board{grid-template-columns:1fr}
.person-card{grid-template-columns:auto 1fr}
.equipment-meta{grid-template-columns:1fr 1fr}
.cockpit-lifecycle{display:block;overflow:hidden}
.cockpit-lifecycle .timeline{margin-bottom:8px}
.cockpit-metrics{grid-template-columns:repeat(2,1fr)}
.cockpit-nav{margin-left:-2px;margin-right:-2px}
.cockpit-tab{padding:9px 10px}
.training-footer{display:block}
.training-footer .btn{margin-top:8px;width:100%}
.document-capture{padding:14px}
.document-preview-image{max-height:58vh}
.document-preview-frame{height:58vh}
.document-focus{align-items:flex-start}
.document-focus .actions{width:100%;justify-content:flex-start}
.document-focus .actions .btn{flex:1;min-width:130px}
.brand-logo{width:44px;height:44px;border-radius:13px}
.brand h1.octodive-wordmark{font-size:18px}
.login-mascot{width:min(210px,66vw)}
.login-wordmark{font-size:36px}
.login-logo-full{width:min(330px,90vw);border-radius:20px}
.document-side{display:block}
.document-side>.card{margin-bottom:10px}
.document-filters{grid-template-columns:1fr}
.document-status-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px}
.doc-filter{white-space:nowrap}
.document-row{grid-template-columns:1fr auto}
.document-expiry{grid-column:1}
.document-row>.badge{grid-column:2;grid-row:1}
.document-row .btn{grid-column:1/-1;width:100%}
.period-picker{grid-template-columns:1fr 1fr}
}
@media print{
@page{size:A4;margin:14mm}
body{background:#fff}
body *{visibility:hidden}
.print-sheet,.print-sheet *,.equipment-tag-print,.equipment-tag-print *{visibility:visible}
.print-sheet{position:absolute;left:0;top:0;width:100%;box-shadow:none;border:0}
.equipment-tag-print{position:absolute;left:0;top:0;width:100%}
.shell{max-width:none;padding:0}
.app{padding:0}
}
@media(min-width:901px){
.bottomnav{display:none}
.app{padding-bottom:20px}
.desktop-frame{position:relative;grid-template-columns:268px minmax(0,1fr);max-width:1800px;margin:0 auto;background:#021827;box-shadow:0 0 0 1px rgba(15,100,145,.18)}
.sidebar{position:sticky;top:0;left:max(0px,calc((100vw - 1680px)/2));width:268px;height:100vh;max-height:100vh;z-index:70;overflow:hidden;padding:20px 14px 16px;background:linear-gradient(180deg,var(--od29-side),var(--od29-side2));border-right:1px solid #0c6a98;box-shadow:18px 0 50px rgba(0,0,0,.12);gap:14px;display:flex;flex-direction:column}
.main-column{grid-column:2;min-width:0}
.sidebar-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;gap:12px;padding-right:2px;padding-top:16px}
.sidebar-brand{flex-direction:column;align-items:center;gap:16px;padding:24px 22px;text-align:center;display:block;flex:0 0 132px;min-height:132px;margin:0;border-bottom:1px solid rgba(53,136,177,.18);background:linear-gradient(180deg,rgba(7,38,58,.96),rgba(4,29,45,.96))}
.sidebar-logo{width:92px;height:92px;border-radius:21px;padding:0;object-fit:cover;background:#062b53;border:1px solid #168fe0;box-shadow:inset 0 0 28px rgba(0,171,255,.18),0 12px 28px rgba(0,0,0,.3)}
.sidebar-wordmark{font-size:22px;line-height:.95;letter-spacing:-.045em;justify-content:center;display:block;margin-bottom:5px;text-align:center;margin:0 0 5px}
.sidebar-brand span{font-size:12px;color:#c6d8e4;margin-top:1px;text-align:center}
.sidebar-user{margin:0 3px 4px;padding:11px 2px 14px;border-bottom:1px solid rgba(14,100,145,.48);gap:10px;display:none}
.sidebar-user .avatar{width:48px;height:48px;border-radius:12px;font-size:16px;background:linear-gradient(145deg,#0b609a,#08426d);border:1px solid #1682bc}
.sidebar-user b{font-size:15px;line-height:1.1}
.sidebar-user span{font-size:10.5px;line-height:1.35;color:#bfd1dd}
.side-label{font-size:9px;color:#67bee7;letter-spacing:.17em;padding-left:6px;padding-bottom:4px;padding:0 7px 5px;font-weight:850}
.side-link{min-height:42px;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;padding:4px 8px;border-radius:10px;color:#e0ebf2;font-size:13px}
.side-link>span:first-child{width:31px;height:31px;border-radius:8px;display:grid;place-items:center;font-size:18px;font-weight:900;line-height:1;background:#07304b;border:1px solid #0d597f;color:#27ddf8}
.side-link b{font-size:13px;font-weight:620;letter-spacing:0}
.side-link.active{background:linear-gradient(90deg,#0b5687 0%,#06446e 100%);border-color:#15c7f4;box-shadow:inset 3px 0 0 #24e2fa;color:#fff;border:1px solid #19c9f0}
.side-link.active>span:first-child{background:#0a4e7d;border-color:#15bde8;color:#5af3ff}
.side-link[data-route="planning"]>span:first-child{color:#26e8f4;background:#073e59;border-color:#13789c}
.side-link[data-route="dives"]>span:first-child{color:#ffd44c;background:#4b3b12;border-color:#9a7c24}
.side-link[data-route="training"]>span:first-child{color:#ac7dff;background:#36255f;border-color:#714cc8}
.side-link[data-route="equipment"]>span:first-child{color:#5deb8c;background:#143f2d;border-color:#2a8056}
.side-link[data-route="documents"]>span:first-child{color:#ff7ab3;background:#53203f;border-color:#a94175}
.side-link[data-route="people"]>span:first-child,.side-link[data-route="communications"]>span:first-child{color:#dd7cff;background:#45234e;border-color:#8c4ba2}
.side-link[data-route="sites"]>span:first-child{color:#56e2bd;background:#123e37;border-color:#2c8072}
.side-link[data-route="finance"]>span:first-child{color:#ffd86d;background:#493c18;border-color:#92792b}
.side-link[data-route="notifications"]>span:first-child{color:#cde9fa;background:#0a324e;border-color:#315f7b}
.side-link[data-route="admin"]>span:first-child,.side-link[data-route="audit"]>span:first-child{color:#a9cce0;background:#102f43;border-color:#315b73}
.side-link[data-route="home"]>span:first-child{color:#29e7ff;background:#07476c;border-color:#0f7eac}
.side-link[data-route="resources"]>span:first-child{color:#4be5af;background:#0c4c3a;border-color:#1f8d6d}
.sidebar-logo.logo-tile{width:64px;height:64px;margin:0 auto 10px;border-radius:14px;padding:0;background-image:url('/octodive-icon-v26.png');background-size:cover;background-position:center;background-repeat:no-repeat;border:0;box-shadow:0 0 0 1px rgba(29,202,239,.22),0 12px 28px rgba(0,0,0,.22);overflow:hidden;flex:0 0 64px}
.sidebar-brand>div{display:block}
.side-group{gap:4px;padding-bottom:6px;border-bottom:1px solid rgba(10,84,124,.36)}
.side-group:last-child{border-bottom:0}
.side-link>span:first-child svg{width:20px;height:20px;display:block}
.side-link[data-route="home"]>span:first-child,.side-link[data-route="planning"]>span:first-child{color:#18e4f5;background:#074c6c;border-color:#0f85ad}
.side-link[data-route="notifications"]>span:first-child,.side-link[data-route="admin"]>span:first-child,.side-link[data-route="audit"]>span:first-child{color:#bcdcee;background:#0c3551;border-color:#35637e}
.sidebar-brand>div>span{font-size:11px;color:#6f8fa1;margin-top:6px}
.topbar{height:74px;min-height:74px;padding:10px 24px}
.topbar .brand{display:none}
.topbar-context{display:flex;align-items:center;min-width:120px}
.topbar-section{font-size:12px;text-transform:uppercase;letter-spacing:.13em;font-weight:800;color:#5e8194}
.top-actions{margin-left:auto}
.top-actions .structure-switcher{min-width:178px}
.notification-button{width:48px;padding:0}
.notification-button span{font-weight:800;color:#28d8f5}
.profile-trigger{height:44px;display:flex;align-items:center;gap:9px;border:1px solid #0b5e89;background:#052740;color:#f8fbff;border-radius:10px;padding:0 12px 0 7px;font:inherit;font-weight:750;cursor:pointer}
.profile-trigger:hover{border-color:#21c7e8;background:#07304b}
.profile-trigger-avatar{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:linear-gradient(145deg,#0b7ab2,#0a4d7a);color:#dffaff;font-size:11px;font-weight:900}
.profile-trigger-chevron{font-size:18px;color:#63a7c5;margin-left:3px}
.logout-button{padding-inline:15px}
}
@media(max-width:1100px){
.desktop-frame{grid-template-columns:210px minmax(0,1fr)}
.people-cards,.equipment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.workspace-grid{grid-template-columns:1fr}
.workspace-side{display:grid;grid-template-columns:1fr 1fr}
.command-strip{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:720px){
.modal-backdrop{padding:0;align-items:end}
.modal{border-radius:22px 22px 0 0;max-height:88vh;padding:18px}
.rotation-card{align-items:flex-start}
.form-grid{grid-template-columns:1fr}
.form-grid.compact{grid-template-columns:1fr}
.field.full{grid-column:auto}
.cockpit-nav{overflow-x:auto;scrollbar-width:none}
.cockpit-tab{min-width:118px}
.package-grid{grid-template-columns:1fr 1fr}
.planning-toolbar{display:grid;grid-template-columns:1fr}
.planning-period{justify-content:space-between;overflow:auto}
.planning-period>b{min-width:120px}
.month-calendar{overflow-x:auto}
.month-weekdays,.month-grid{min-width:720px}
.month-day{min-height:110px}
.week-calendar{grid-template-columns:repeat(7,150px)}
}
@keyframes focusPulse{
0%{transform:scale(.985)}
55%{transform:scale(1.008)}
100%{transform:scale(1)}
}
@media(max-width:1150px) and (min-width:901px){
.module-toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.sidebar{padding-bottom:10px}
}
@media(max-width:700px){
.demo-profiles{grid-template-columns:1fr}
.demo-profiles .demo-login{width:100%}
}
@media(max-width:520px){
.command-strip{grid-template-columns:1fr 1fr}
.command{gap:8px;min-height:75px}
.command b{font-size:13px}
.command small{font-size:10px}
.metric-grid{grid-template-columns:1fr 1fr}
.dashboard-head h2{font-size:30px}
.desktop-actions{display:none}
.mobile-menu-btn{display:grid}
.activity-line{grid-template-columns:58px 1fr}
.date-block b{font-size:26px}
.sidebar-logo,.brand-logo{border-radius:14px}
.command>span{width:43px;height:43px;font-size:22px}
.progression-body{grid-template-columns:84px 1fr;gap:12px}
.progress-ring{width:82px}
.progress-ring:after{inset:10px}
.progress-ring b{font-size:21px}
}
@media(max-width:1100px) and (min-width:901px){
.hero-motto{display:none}
.dashboard-head.dashboard-hero>div:first-child{max-width:82%}
.progression-body{grid-template-columns:92px 1fr}
.progress-ring{width:88px}
}
@media(max-width:1200px) and (min-width:901px){
.sidebar{width:228px}
.desktop-frame{grid-template-columns:228px minmax(0,1fr)}
.sidebar-logo{width:82px;height:82px}
.sidebar-wordmark{font-size:23px}
.dashboard-head.dashboard-hero>div:first-child{max-width:58%}
.dashboard-head.dashboard-hero h2{font-size:39px}
.command-strip.learner-commands{grid-template-columns:repeat(2,1fr)}
.learner-workspace{grid-template-columns:1fr}
.learner-insights{display:grid;grid-template-columns:1fr 1fr}
.learner-stats{grid-template-columns:repeat(2,1fr)}
.dashboard-head.dashboard-hero{height:184px;min-height:184px}
.sidebar-logo.logo-tile{width:96px;height:96px}
.hero-motto{font-size:22px}
.command>span{width:48px;height:48px}
.command b{font-size:15px}
}
@media(max-width:560px){
.shell{padding:8px 10px 104px}
.dashboard-head.dashboard-hero{height:170px;min-height:170px;background-position:63% center}
.dashboard-head.dashboard-hero>div:first-child{max-width:88%}
.command-strip.learner-commands{grid-template-columns:1fr 1fr;gap:8px}
.command{min-height:86px;padding:11px}
.command>span{width:46px;height:46px;font-size:23px}
.command b{font-size:14px}
.learner-stats{grid-template-columns:1fr 1fr;gap:8px}
.learner-stat{min-height:98px}
.learner-workspace{display:block}
.learner-insights{display:block}
}
@media(max-width:1200px){
.dashboard-head.dashboard-hero{background-position:left center,60% center}
}
@media(max-width:1280px) and (min-width:901px){
.desktop-frame{grid-template-columns:210px minmax(0,1fr)}
.sidebar{width:210px}
.sidebar-logo.logo-tile{width:102px;height:102px}
.sidebar-wordmark{font-size:24px}
.topbar{height:74px;min-height:74px;margin-left:-22px;margin-right:-22px;padding-left:22px;padding-right:22px}
.brand-logo.logo-tile{width:46px;height:46px}
.shell{padding:0 20px 34px;padding-left:22px;padding-right:22px}
.dashboard-head.dashboard-hero{height:160px;min-height:160px;padding:24px}
.dashboard-head.dashboard-hero h2{font-size:39px}
.dashboard-head.dashboard-hero>div:first-child{max-width:58%}
.command>span.command-icon{width:49px;height:49px}
.command b{font-size:15px}
.workspace-grid{grid-template-columns:minmax(0,1fr) 285px}
}
.print-sheet table{margin-bottom:16px}
.print-sheet .safety-header-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px 18px;margin-bottom:16px;font-size:13px}
.print-sheet .palanquee-sheet-table caption{text-align:left;font-weight:700;font-size:13px;padding:6px 0;caption-side:top}
.form-grid.compact{grid-template-columns:repeat(4,1fr);align-items:end;gap:10px}
.group-actual-form{padding:10px 0;border-bottom:1px solid var(--line,var(--odx-line,#123))}
.group-actual-form:last-child{border-bottom:0}
@media(max-width:640px){
.month-calendar{overflow-x:hidden}
.month-weekdays,.month-grid{min-width:0}
.month-weekdays b{padding:6px 2px;font-size:8px}
.month-day{min-height:56px;padding:4px;overflow:hidden}
.month-day-number{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;gap:4px}
.month-day-dot{background:var(--accent);color:#04121a;border-radius:999px;min-width:15px;height:15px;font-size:9px;display:flex;align-items:center;justify-content:center;padding:0 3px}
.month-events{display:none}
.calendar-more{display:none}
.week-calendar{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;overflow-x:hidden}
.week-day{min-height:auto;padding:6px}
.week-day header{display:flex;flex-direction:column;align-items:flex-start;gap:0;margin-bottom:4px}
.week-day header b{font-size:9px;text-transform:uppercase;color:var(--muted)}
.week-day header strong{font-size:15px}
.week-day header span{font-size:9px;color:var(--muted)}
.calendar-activity{padding:4px 5px;font-size:10px}
.calendar-activity span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.planning-period{font-size:13px}
.planning-toolbar .segmented{width:100%}
.planning-toolbar .segmented .seg{flex:1;text-align:center}
}
/* Correction : forcer les grandes surfaces et le bouton principal à suivre
   le thème choisi (abyssal/surface/corail/turtle) au lieu des couleurs
   fixes ajoutées par les passes de design successives. */
:root{--card2:var(--panel2);--border:var(--line)}
.topbar{background:color-mix(in srgb,var(--panel) 82%,transparent)}
.card,.sheet,.hero-card,.month-calendar,.week-day,.workspace-side .card{background:linear-gradient(180deg,color-mix(in srgb,var(--panel2) 96%,var(--text) 2%),var(--panel));border-color:var(--line)}
.btn-primary{background:linear-gradient(180deg,var(--accent2),var(--accent));color:var(--bg);border-color:var(--accent)}
.tab.active{background:var(--panel2);color:var(--text)}
.metric{background:linear-gradient(180deg,color-mix(in srgb,var(--panel2) 90%,var(--accent) 4%),var(--panel));border-color:var(--line)}
.command{background:linear-gradient(180deg,color-mix(in srgb,var(--panel2) 94%,transparent),color-mix(in srgb,var(--panel) 94%,transparent));border-color:var(--line);color:var(--text)}
.equipment-block{margin-bottom:22px}
.equipment-block-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.equipment-block-head span:first-child{font-size:20px}
.equipment-block-head h3{margin:0;font-size:16px;flex:1}
.empty.mini{padding:14px;font-size:13px;color:var(--muted)}
.equipment-list{display:flex;flex-direction:column;gap:8px}
.equipment-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);flex-wrap:wrap}
.equipment-row-icon{font-size:18px;width:28px;text-align:center;flex-shrink:0}
.equipment-row-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:200px}
.equipment-row-main .meta{font-size:12px;color:var(--muted)}
.dangerbox-inline{font-size:11px;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger);width:fit-content}
.dangerbox-inline.soft{background:color-mix(in srgb,#f5a623 15%,transparent);color:#f5a623}
.equipment-row .actions{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:640px){.equipment-row{flex-direction:column;align-items:flex-start}}
.equipment-blocks{display:flex;flex-direction:column;gap:18px}
.equipment-block{padding:18px}
.equipment-block-head{display:flex;align-items:center;gap:14px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.equipment-block-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;background:color-mix(in srgb,var(--accent) 16%,transparent)}
.equipment-block-reg .equipment-block-icon{background:color-mix(in srgb,#4dd0e1 20%,transparent)}
.equipment-block-bcd .equipment-block-icon{background:color-mix(in srgb,#b388ff 20%,transparent)}
.equipment-block-other .equipment-block-icon{background:color-mix(in srgb,#ffb84d 20%,transparent)}
.equipment-block-title{display:flex;flex-direction:column;gap:1px}
.equipment-block-title h3{margin:0;font-size:16px}
.equipment-block-stats{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.equipment-row{border-left:3px solid var(--line);transition:background .15s}
.equipment-row:hover{background:var(--panel2)}
.equipment-row[data-status="available"]{border-left-color:var(--ok)}
.equipment-row[data-status="assigned"]{border-left-color:var(--accent)}
.equipment-row[data-status="issue"]{border-left-color:var(--danger)}
.equipment-row[data-status="maintenance"]{border-left-color:var(--warn)}
.equipment-card[data-status="available"]{border-top:3px solid var(--ok)}
.equipment-card[data-status="assigned"]{border-top:3px solid var(--accent)}
.equipment-card[data-status="issue"]{border-top:3px solid var(--danger)}
.equipment-card[data-status="maintenance"]{border-top:3px solid var(--warn)}
@media(max-width:640px){.equipment-block-stats{margin-left:0;width:100%}}
