:root{--ink:#10243e;--muted:#6b7c93;--navy:#071a2f;--navy-2:#0b2946;--primary:#0b8f87;--primary-dark:#08736e;--accent:#f2a93b;--surface:#fff;--canvas:#f2f6f9;--border:#dce7ee;--danger:#dc4c64;--success:#20a879;--shadow:0 18px 45px rgba(16,36,62,.09);--shadow-sm:0 8px 24px rgba(16,36,62,.07)}
*{scrollbar-width:thin;scrollbar-color:#b8cbd6 transparent}
html{background:var(--canvas)}
body{background:radial-gradient(circle at 95% 2%,rgba(11,143,135,.09),transparent 28rem),var(--canvas);color:var(--ink);font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;padding-top:72px;min-height:100vh}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(16,36,62,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(16,36,62,.018) 1px,transparent 1px);background-size:32px 32px;z-index:0}
.topbar{height:72px;background:rgba(7,26,47,.96)!important;backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 8px 30px rgba(7,26,47,.2);z-index:1040}
.navbar-brand{letter-spacing:-.02em;font-size:1.08rem}.brand-mark{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,var(--primary),#18b8ad);box-shadow:0 8px 20px rgba(11,143,135,.35);color:#fff}.brand-subtitle{font-size:.67rem;color:#9fb3c6;letter-spacing:.08em;text-transform:uppercase;display:block;line-height:1}
.user-chip{display:flex;align-items:center;gap:.7rem;padding:.38rem .7rem .38rem .4rem;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:rgba(255,255,255,.06)}.user-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(145deg,var(--accent),#f7c66c);color:var(--navy);font-weight:800}.user-meta{line-height:1.15}.user-role{display:block;color:#91a7bb;font-size:.68rem;margin-top:.18rem}
.sidebar{position:fixed;top:72px;left:0;bottom:0;width:270px;background:linear-gradient(180deg,var(--navy) 0%,#081f36 100%);color:#fff;overflow-y:auto;z-index:1030;border-right:1px solid rgba(255,255,255,.05);box-shadow:12px 0 35px rgba(7,26,47,.1)}
.sidebar-inner{padding:1.5rem 1rem}.sidebar-label{padding:0 .85rem;margin:.3rem 0 .6rem;color:#6f8aa1;font-size:.67rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.sidebar .nav{gap:.35rem!important}.sidebar .nav-link{display:flex;align-items:center;min-height:46px;color:#b9c8d5;border-radius:13px;padding:.7rem .85rem;font-size:.91rem;font-weight:600;transition:.2s ease;border:1px solid transparent}.sidebar .nav-link i{display:grid;place-items:center;width:29px;height:29px;margin-right:.62rem!important;border-radius:9px;background:rgba(255,255,255,.055);font-size:1rem}.sidebar .nav-link:hover{background:rgba(255,255,255,.07);color:#fff;transform:translateX(3px)}.sidebar .nav-link.active{color:#fff;background:linear-gradient(100deg,rgba(11,143,135,.95),rgba(11,143,135,.7));box-shadow:0 9px 24px rgba(11,143,135,.22)}.sidebar .nav-link.active i{background:rgba(255,255,255,.16)}.sidebar hr{border-color:rgba(255,255,255,.08);margin:1.1rem .6rem}.sidebar .logout-btn{color:#ff9cac!important}.sidebar .logout-btn:hover{background:rgba(220,76,100,.1)!important}
.main-content{position:relative;margin-left:270px;min-height:calc(100vh - 72px);padding:0 .75rem}.main-content>.container-fluid{max-width:1480px;padding:2rem 1.5rem 3rem!important}
h1,h2,h3,h4,h5{color:var(--ink);font-weight:750;letter-spacing:-.025em}h3{font-size:1.65rem}.text-muted{color:var(--muted)!important}
.page-hero{position:relative;overflow:hidden;padding:1.75rem 1.8rem;margin-bottom:1.4rem;border-radius:24px;background:linear-gradient(115deg,var(--navy) 0%,var(--navy-2) 60%,#0a625f 135%);color:#fff;box-shadow:var(--shadow)}.page-hero:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;right:-80px;top:-135px;border:45px solid rgba(255,255,255,.055)}.page-hero h3{color:#fff;margin:0}.page-hero p{color:#b8c9d8;margin:.5rem 0 0}.eyebrow{color:#57d4cc;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.45rem}
.card{border:1px solid rgba(220,231,238,.86)!important;border-radius:20px;box-shadow:var(--shadow-sm)!important;background:rgba(255,255,255,.96);transition:transform .2s ease,box-shadow .2s ease}.card:hover{box-shadow:var(--shadow)!important}.card-header{padding:1.1rem 1.25rem;background:transparent!important;border-bottom:1px solid var(--border);font-weight:750}.card-body{padding:1.25rem}
.stat-card{overflow:hidden;position:relative}.stat-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--primary)}.stat-card .display-6{font-size:2rem;color:var(--ink)}.stat-card .stat-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:rgba(11,143,135,.1);color:var(--primary)}.row>div:nth-child(2)>.stat-card:before{background:var(--accent)}.row>div:nth-child(2)>.stat-card .stat-icon{background:rgba(242,169,59,.13);color:#c77b0a}.row>div:nth-child(3)>.stat-card:before{background:var(--danger)}.row>div:nth-child(3)>.stat-card .stat-icon{background:rgba(220,76,100,.1);color:var(--danger)}
.table-responsive{border-radius:0 0 20px 20px}.table{--bs-table-bg:transparent;color:var(--ink)}.table>thead th{padding:.9rem 1rem;background:#f7fafc;color:#71849a;white-space:nowrap;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--border)}.table>tbody td{padding:.92rem 1rem;border-color:#edf2f5;vertical-align:middle;font-size:.89rem}.table-hover>tbody>tr:hover>*{--bs-table-bg-state:rgba(11,143,135,.045)}
.btn{border-radius:11px;font-weight:700;padding:.58rem .95rem;transition:.18s ease}.btn-primary{background:linear-gradient(135deg,var(--primary),#0aa69c);border-color:var(--primary);box-shadow:0 7px 18px rgba(11,143,135,.2)}.btn-primary:hover,.btn-primary:focus{background:linear-gradient(135deg,var(--primary-dark),var(--primary));border-color:var(--primary-dark);transform:translateY(-1px)}.btn-dark{background:var(--navy);border-color:var(--navy)}.btn-outline-primary{color:var(--primary);border-color:rgba(11,143,135,.4)}.btn-outline-primary:hover{background:var(--primary);border-color:var(--primary)}
.form-label{font-size:.78rem;font-weight:750;color:#40556d;margin-bottom:.42rem}.form-control,.form-select{min-height:44px;border:1px solid #cfdde6;border-radius:11px;background-color:#fbfdfe;color:var(--ink);box-shadow:none}.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 .23rem rgba(11,143,135,.11);background:#fff}.form-text{color:#8496a8}.modal-backdrop.show{opacity:.62}.modal-content{border:0;border-radius:22px;box-shadow:0 30px 80px rgba(7,26,47,.25);overflow:hidden}.modal-header{padding:1.2rem 1.35rem;background:#f7fafc;border-color:var(--border)}.modal-body{padding:1.35rem}.modal-footer{padding:1rem 1.35rem;background:#fafcfd;border-color:var(--border)}
.badge{padding:.46em .7em;border-radius:999px;font-weight:750;letter-spacing:.02em}.text-bg-success{background:rgba(32,168,121,.12)!important;color:#087c57!important}.text-bg-warning{background:rgba(242,169,59,.17)!important;color:#995c00!important}.text-bg-danger{background:rgba(220,76,100,.12)!important;color:#b42943!important}.alert{border:0;border-radius:14px;box-shadow:var(--shadow-sm)}code{color:#087d77;background:#e8f7f5;border-radius:8px;padding:.3rem .5rem;font-weight:800}
.auth-page{place-items:center;padding:1.5rem!important;background:radial-gradient(circle at 20% 15%,rgba(19,178,167,.28),transparent 25rem),radial-gradient(circle at 90% 90%,rgba(242,169,59,.2),transparent 25rem),var(--navy)!important}.auth-shell{position:relative;z-index:1;width:min(1020px,96vw);display:grid;grid-template-columns:1.05fr .95fr;border-radius:28px;overflow:hidden;box-shadow:0 35px 100px rgba(0,0,0,.32);background:#fff}.auth-brand{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:620px;padding:3rem;background:linear-gradient(145deg,rgba(7,26,47,.92),rgba(9,79,76,.88)),linear-gradient(135deg,var(--navy),var(--primary));color:#fff}.auth-brand:before,.auth-brand:after{content:"";position:absolute;border-radius:50%;border:50px solid rgba(255,255,255,.055)}.auth-brand:before{width:320px;height:320px;top:-130px;right:-95px}.auth-brand:after{width:210px;height:210px;bottom:70px;left:-120px}.auth-brand h1{position:relative;color:#fff;font-size:2.7rem;max-width:430px}.auth-brand p{position:relative;color:#bed0dd;max-width:420px}.auth-panel{display:flex;align-items:center;padding:3rem}.auth-panel-inner{width:100%;max-width:410px;margin:auto}.auth-logo{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:linear-gradient(145deg,var(--primary),#15bcb0);color:#fff;font-size:1.6rem;box-shadow:0 12px 30px rgba(11,143,135,.25);margin-bottom:1.4rem}
.text-primary{color:var(--primary)!important}
.card .stat-icon{display:grid;place-items:center;flex:0 0 auto;width:48px;height:48px;border-radius:15px;background:rgba(11,143,135,.1);color:var(--primary);font-size:1.2rem}
@media(max-width:991.98px){.sidebar{transform:translateX(-100%);transition:.25s ease}.sidebar.show{transform:translateX(0)}.main-content{margin-left:0}.user-meta{display:none}.topbar{height:64px}body{padding-top:64px}.sidebar{top:64px}.auth-shell{grid-template-columns:1fr;max-width:520px}.auth-brand{display:none}.auth-panel{padding:2.3rem 1.7rem}}
@media(max-width:575.98px){.main-content>.container-fluid{padding:1.25rem .55rem 2rem!important}.page-hero{padding:1.35rem;border-radius:18px}.user-chip{padding:.25rem}.user-role{display:none}.card{border-radius:16px}.table>thead th,.table>tbody td{padding:.75rem}.auth-page{padding:.75rem!important}.auth-panel{padding:2rem 1.35rem}}
.modal{z-index:1060}.modal-backdrop{z-index:1050}.modal-dialog{margin-top:5rem}.modal-body{max-height:calc(100vh - 12rem);overflow-y:auto}body.modal-open .sidebar{z-index:1020}
.site-search{position:relative}.site-search .input-group-text{border-color:#cfdde6;background:#f4f8fa;color:var(--primary);border-radius:11px 0 0 11px}.site-search-results{position:absolute;z-index:1070;top:48px;left:0;right:0;max-height:280px;overflow-y:auto;background:#fff;border:1px solid var(--border);border-radius:13px;box-shadow:0 16px 40px rgba(7,26,47,.18);padding:.35rem}.site-search-option{display:flex;width:100%;flex-direction:column;gap:.15rem;text-align:left;border:0;background:transparent;color:var(--ink);padding:.7rem .8rem;border-radius:9px}.site-search-option span{font-size:.76rem;color:var(--muted)}.site-search-option:hover,.site-search-option.active{background:rgba(11,143,135,.09);color:var(--primary)}.site-search-empty{padding:.85rem;color:var(--muted);font-size:.85rem}

/* Notification center */
.topbar-actions{display:flex;align-items:center;gap:1rem;flex-shrink:0}
.notification-bell{position:relative;display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(255,255,255,.055);color:#80e3db;text-decoration:none;transition:background .18s,border-color .18s,color .18s}
.notification-bell>i{font-size:1.2rem;line-height:1}.notification-bell:hover{color:#fff;background:rgba(87,212,204,.15);border-color:rgba(87,212,204,.5)}.notification-count{position:absolute;top:-5px;right:-7px;display:grid;place-items:center;min-width:20px;height:20px;padding:0 4px;border:2px solid var(--navy);border-radius:20px;background:#ec6478;color:#fff;font-size:.61rem;font-weight:800;line-height:1}
.notification-bell:focus-visible,.notifications-page a:focus-visible,.notifications-page button:focus-visible{outline:3px solid #37bdb2;outline-offset:4px}
.notifications-page{max-width:1200px!important}.notifications-hero{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:2rem 2.2rem}.notifications-hero>div{position:relative;z-index:1}.notifications-hero h1{color:#fff;font-size:2rem;margin:0;letter-spacing:-.04em}.notifications-hero p{font-size:.92rem;max-width:480px}.notifications-hero-icon{display:grid;place-items:center;flex:0 0 72px;height:72px;background:rgba(87,212,204,.09);border:1px solid rgba(87,212,204,.2);border-radius:23px;color:#80e3db;font-size:2rem}
.notification-panel{overflow:hidden;border:1px solid var(--border);border-radius:22px;background:#fff;box-shadow:var(--shadow-sm)}.notification-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 1.75rem;border-bottom:1px solid var(--border)}.notification-feed-heading{display:flex;align-items:center;gap:.65rem}.notification-feed-heading h2{font-size:1.05rem;margin:0}.notification-total{display:grid;place-items:center;min-width:26px;height:25px;padding:0 .45rem;border-radius:8px;background:#edf4f7;color:#4e687b;font-size:.74rem;font-weight:800}.notification-toolbar p{margin:.45rem 0 0;font-size:.8rem;color:var(--muted)}.notification-read-all{display:flex;align-items:center;gap:.5rem;background:#eaf7f5;border:1px solid #cceae5;color:#08736e;font-size:.8rem;white-space:nowrap}.notification-read-all:hover{background:#d9f0eb;color:#065d59;border-color:#a7d7cd}.notification-read-all i{font-size:1.1rem}
.notification-item{position:relative;display:flex;gap:1rem;padding:1.6rem 1.75rem;border-bottom:1px solid #e9eff3}.notification-item:last-child{border-bottom:0}.notification-item.is-unread{background:linear-gradient(100deg,#f1faf8,#fff 75%)}.notification-item.is-unread:before{content:"";position:absolute;left:0;top:1.65rem;bottom:1.65rem;width:3px;background:var(--primary);border-radius:0 3px 3px 0}.notification-event-icon{display:grid;place-items:center;flex:0 0 44px;height:44px;border:1px solid transparent;border-radius:14px;font-size:1.2rem}.notification-event-icon.is-critical{background:#fff0f2;border-color:#f9dce2;color:#ba344e}.notification-event-icon.is-attention{background:#fff7e8;border-color:#f5e7c8;color:#986112}.notification-content{flex:1;min-width:0}.notification-item-heading{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-bottom:.55rem}.notification-item-heading h3{font-size:.95rem;line-height:1.45;margin:0;overflow-wrap:anywhere}.notification-severity{padding:.22rem .55rem;border-radius:6px;font-size:.66rem;font-weight:750}.notification-severity.is-critical{background:#fdecef;color:#a92842}.notification-severity.is-attention{background:#fff2d9;color:#88540a}.notification-unread-label{display:flex;align-items:center;gap:.35rem;margin-left:auto;color:#08736e;font-size:.69rem;font-weight:650;white-space:nowrap}.notification-unread-label span{width:6px;height:6px;border-radius:50%;background:var(--primary)}.notification-message{font-size:.86rem;line-height:1.7;color:#53697d;margin:0 0 1rem;overflow-wrap:anywhere}.notification-item-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.8rem}.notification-item-footer time{display:flex;align-items:center;gap:.4rem;font-size:.74rem;color:#6b7c8e}.notification-item-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem}.notification-detail-link{color:#08736e;font-size:.77rem;font-weight:700;text-decoration:none}.notification-detail-link:hover{text-decoration:underline;color:#065d59}.notification-detail-link i{margin-left:.2rem;font-size:.7rem}.notification-read-button{display:flex;align-items:center;gap:.35rem;padding:.35rem .55rem;border:1px solid #dce7ee;border-radius:8px;background:#fff;color:#53697d;font-size:.74rem;font-weight:600}.notification-read-button:hover{border-color:#9ccfc8;background:#f1faf8;color:#08736e}.notification-read-state{display:flex;align-items:center;gap:.35rem;font-size:.74rem;color:#728596}.notification-privacy-note{display:flex;align-items:flex-start;justify-content:center;gap:.5rem;line-height:1.6;margin:1.25rem .5rem 0;font-size:.75rem;color:#6b7c8e}.notification-privacy-note i{flex-shrink:0}
.notification-empty{text-align:center;padding:4rem 1.5rem}.notification-empty-icon{display:grid;place-items:center;width:80px;height:80px;margin:0 auto 1.5rem;border-radius:26px;background:#eff8f6;color:#20968c;font-size:2rem}.notification-empty h2{font-size:1.2rem;margin-bottom:.7rem}.notification-empty p{max-width:340px;margin:0 auto 1.5rem;color:var(--muted);font-size:.87rem;line-height:1.7}.notification-empty .btn{font-size:.8rem}
@media(max-width:767.98px){.notification-toolbar{align-items:flex-start;flex-direction:column;padding:1.25rem}.notification-item{padding:1.25rem;gap:.75rem}.notification-event-icon{flex-basis:36px;height:36px;border-radius:11px;font-size:1rem}.notification-item-footer{align-items:flex-start;flex-direction:column}.notification-unread-label{margin-left:0}.notifications-hero h1{font-size:1.7rem}.notifications-hero-icon{flex-basis:52px;height:52px;border-radius:17px;font-size:1.5rem}}
@media(max-width:575.98px){.topbar-actions{gap:.7rem}.notification-bell{width:36px;height:36px;border-radius:12px}.notification-count{top:-4px;right:-5px}.notifications-hero{padding:1.4rem;gap:.75rem}.notifications-hero p{font-size:.8rem}.notifications-hero-icon{display:none}.notification-panel{border-radius:17px}.notification-item-actions{gap:.65rem}.notification-privacy-note{justify-content:flex-start}.notification-empty{padding:3rem 1rem}}
@media(max-width:359.98px){.topbar .navbar-brand{font-size:.92rem}.topbar .brand-subtitle{font-size:.55rem}.topbar .brand-mark{width:30px;height:34px}.topbar-actions{gap:.5rem}}
.notification-event-icon.is-refuelling,.notification-severity.is-refuelling{background:#eaf7f5;border-color:#cceae5;color:#08736e}
.role-preview-switcher{padding:1rem;margin-bottom:1.4rem;border:1px solid rgba(87,212,204,.22);border-radius:16px;background:rgba(87,212,204,.06)}.role-preview-switcher .sidebar-label{display:block;padding:0;margin:0 0 .75rem;color:#80e3db}.role-preview-switcher p{color:#b9c8d5}.role-preview-switcher .form-select{font-size:.8rem}.role-preview-switcher .btn{font-size:.75rem}
.table-pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:1rem 1.25rem;border-top:1px solid var(--border)}.table-pagination-summary{font-size:.8rem;color:var(--muted)}.table-pagination-controls{display:flex;flex-wrap:wrap;gap:.35rem}.table-pagination-controls .btn{min-width:34px}.main-content table tr[hidden]{display:none!important}@media(max-width:575.98px){.table-pagination{padding:1rem}.table-pagination-controls .btn{padding:.4rem .55rem;font-size:.75rem}}
