@import url('/assets/vendor/bootstrap.min.css');
:root{--bg:#0b1118;--panel:#111b25;--panel2:#16232e;--line:#253340;--muted:#96a9b8;--mint:#61dfb5;--fire:#ff986b;--police:#83baff;--health:#61dfb5;--bs-body-bg:var(--bg);--bs-body-color:#e9f0f4;--bs-border-color:var(--line);--bs-primary:#61dfb5;--bs-secondary-color:#96a9b8}*{box-sizing:border-box}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);margin:0}a{color:var(--mint);text-decoration:none}a:hover{color:#a6f5d7}button,a,input,select,textarea{outline-offset:4px}h1,h2,h3,h4{font-weight:650;letter-spacing:-.035em}h1{font-size:clamp(2rem,4vw,3.5rem)}h2{font-size:1.6rem}h3{font-size:1.05rem}.muted,.text-muted{color:var(--muted)!important}.eyebrow{font-size:.7rem;letter-spacing:.17em;text-transform:uppercase;color:var(--mint);font-weight:700}.brand{display:flex;align-items:center;gap:12px;color:#f3f9f6;font-weight:750;letter-spacing:-.035em;font-size:1.18rem}.brand img{width:34px;height:38px}.brand small{display:block;font-size:.58rem;color:var(--muted);letter-spacing:.2em;text-transform:uppercase;font-weight:500}.topbar{height:82px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:#0e1720;gap:18px}.topbar .account{display:flex;align-items:center;gap:20px;font-size:.85rem}.live-dot{width:7px;height:7px;background:var(--mint);border-radius:50%;display:inline-block;box-shadow:0 0 10px #61dfb550;margin-right:8px}.btn{border-radius:8px;font-size:.86rem;padding:.62rem 1rem;font-weight:600}.btn-primary{background:var(--mint);color:#10221d;border-color:var(--mint)}.btn-primary:hover,.btn-primary:focus{background:#8cebc8;color:#10221d;border-color:#8cebc8}.btn-outline-light{border-color:#364654;color:#dce7ee}.btn-outline-light:hover{background:#253340;color:white}.btn-sm{padding:.4rem .7rem;font-size:.77rem}.btn-dark{background:var(--panel2);border-color:var(--line)}.form-control,.form-select{background-color:#0d1720;border-color:#344553;color:#f0f5f8;padding:.65rem .8rem}.form-control:focus,.form-select:focus{background:#101d27;color:white;border-color:var(--mint);box-shadow:0 0 0 3px #61dfb51a}.form-label{color:#bbcad5;font-size:.8rem;font-weight:600}.form-check-input:checked{background-color:#39aa83;border-color:#39aa83}.panel{background:var(--panel);border:1px solid var(--line);border-radius:13px}.panel-pad{padding:24px}.shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 82px)}.sidebar{border-right:1px solid var(--line);padding:28px 16px;display:flex;flex-direction:column;background:#0e1720}.side-label{font-size:.63rem;color:#718698;letter-spacing:.16em;margin:5px 12px 14px}.nav-item-link{display:flex;align-items:center;gap:12px;color:#a6b7c5;padding:12px 14px;margin-bottom:5px;border-radius:8px;font-size:.85rem}.nav-item-link.active{background:#18302e;color:var(--mint);box-shadow:inset 3px 0 var(--mint)}.nav-item-link:hover{background:#172630;color:white}.nav-icon{width:22px;font-size:1.1rem;text-align:center}.side-footer{margin-top:auto;padding:28px 12px 8px;font-size:.75rem;color:var(--muted);line-height:1.7}.main{padding:30px;min-width:0;max-width:1800px;width:100%;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:20px}.page-heading h1{font-size:1.85rem;margin:6px 0}.page-heading p{margin:0;font-size:.84rem;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.stat{padding:19px 20px;background:var(--panel);border:1px solid var(--line);border-radius:11px}.stat small{color:var(--muted);font-size:.73rem}.stat strong{display:block;font-size:1.5rem;letter-spacing:-.04em;margin:5px 0 3px}.stat .sub{font-size:.67rem;color:var(--muted)}.stat-icon{float:right;width:32px;height:32px;border-radius:9px;background:#20332f;text-align:center;line-height:32px;color:var(--mint)}.operations{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px}.map-panel{overflow:hidden}.panel-heading{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.panel-heading h2{font-size:.9rem;margin:0;letter-spacing:0}.panel-heading small{font-size:.68rem;color:var(--muted)}#map{height:520px;z-index:1;background:#14212a}.map-bottom{padding:13px 18px;font-size:.67rem;color:var(--muted);display:flex;gap:20px;flex-wrap:wrap}.legend-dot{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%}.leaflet-tile-pane{filter:invert(1) hue-rotate(185deg) saturate(.4) brightness(.7)}.leaflet-container{font-family:inherit}.leaflet-control-attribution{background:#101b24e8!important;color:#b3c5d2!important;font-size:10px!important}.leaflet-control-attribution a{color:#94dfc7}.leaflet-bar a{background:#172631!important;color:#c8d8e4!important;border-color:#344755!important}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#16232e;color:#edf4f8}.map-marker{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;border:2px solid currentColor;background:#17242e;box-shadow:0 4px 15px #0008;font-size:16px;font-weight:800}.map-marker.base{width:42px;height:42px;color:var(--mint);background:#154537;border-radius:13px}.map-marker.incident{color:#ffac7e;border-radius:50%}.map-marker.car{color:#8bbbff;width:30px;height:30px;font-size:12px}.mission-list{max-height:520px;overflow:auto;padding:0 16px}.mission-item{display:block;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);padding:20px 0;color:inherit}.mission-item:last-child{border-bottom:0}.mission-item:hover h3{color:var(--mint)}.mission-item h3{font-size:.9rem;letter-spacing:-.015em;margin:10px 0 8px}.mission-item p{font-size:.72rem;color:var(--muted);margin:0 0 12px}.pill{display:inline-block;padding:4px 7px;border-radius:5px;font-size:.62rem;font-weight:650;background:#26313d;color:#bbcbd6;line-height:1.2}.pill.helse{background:#1d3a32;color:var(--health)}.pill.politi{background:#20374f;color:var(--police)}.pill.brann{background:#442e26;color:var(--fire)}.pill.done{background:#1b3a31;color:var(--mint)}.reward{color:var(--mint);font-size:.74rem;font-weight:650}.empty{color:var(--muted);font-size:.84rem;line-height:1.8;padding:30px 20px;text-align:center}.section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.resource-card{padding:23px}.resource-card h3{font-size:1.1rem;margin:0}.resource-icon{display:grid;place-items:center;background:#1c3335;border:1px solid #31534f;width:48px;height:48px;border-radius:12px;font-size:1.4rem;color:var(--mint)}.resource-meta{font-size:.75rem;color:var(--muted)}.progress{height:6px;background:#263743}.progress-bar{background:var(--mint)}.table{--bs-table-bg:transparent;--bs-table-border-color:var(--line);font-size:.82rem}.table th{font-size:.68rem;color:var(--muted);font-weight:550;text-transform:uppercase;letter-spacing:.05em;padding:15px}.table td{padding:15px;vertical-align:middle}.modal-content{background:#111e28;border:1px solid #334652;border-radius:14px}.modal-header,.modal-footer{border-color:var(--line)}.modal-title{font-size:1.25rem}.modal-body{padding:24px}.alert{font-size:.85rem}.toast-wrap{position:fixed;bottom:22px;right:22px;z-index:2000;max-width:min(430px,calc(100vw - 44px))}.toast-message{background:#19392e;border:1px solid #428768;color:#d2f7e7;padding:17px 22px;border-radius:10px;box-shadow:0 6px 30px #0005}.toast-message.error{background:#47252b;border-color:#91515c;color:#ffe4e8}.note-editor{border-color:#344553!important}.note-toolbar,.note-statusbar{background:#1b2b37!important}.note-editable{background:#0d1720!important;color:#e7f0f4!important}.note-btn{background:#253746!important;color:#e7f0f4!important;border-color:#405562!important}.note-dropdown-menu{background:#1b2b37!important;color:#eee!important}.note-modal-content{background:#162631;color:white}.note-modal input{color:#14212a}.note-editor .note-editing-area .note-editable a{color:var(--mint)}.landing{max-width:1280px;margin:auto;padding:0 40px}.hero{display:grid;grid-template-columns:1.08fr 1fr;gap:70px;align-items:center;padding:90px 0 70px}.hero h1{font-size:clamp(2.8rem,5.2vw,4.6rem);line-height:1.06;letter-spacing:-.055em;margin:20px 0 24px}.hero h1 span{color:var(--mint)}.hero p{font-size:1.02rem;color:#a4b7c5;line-height:1.8;max-width:490px}.hero-actions{display:flex;gap:12px;margin:30px 0 26px}.hero-note{font-size:.71rem;color:#8095a5}.hero-visual{position:relative}.hero-map{height:370px;border-radius:16px;overflow:hidden;border:1px solid #304451;background:#152a31}.hero-callout{position:absolute;bottom:-23px;left:-25px;z-index:500;background:#13252bee;border:1px solid #355048;padding:20px 24px;border-radius:12px;width:310px;backdrop-filter:blur(10px);box-shadow:0 12px 30px #0006}.hero-callout h3{font-size:.9rem;margin:8px 0}.hero-callout p{font-size:.7rem;margin:0}.hero-live{position:absolute;z-index:500;top:18px;left:18px;background:#0b171dde;border:1px solid #345048;padding:8px 12px;font-size:.66rem;border-radius:6px}.branch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:24px 0 64px}.branch-card{border:1px solid var(--line);border-radius:13px;padding:27px;background:linear-gradient(150deg,#15232c,#101b24)}.branch-card h3{font-size:1.2rem;margin:20px 0 12px}.branch-card p{font-size:.85rem;line-height:1.75;color:var(--muted)}.branch-card .branch-symbol{font-size:1.7rem;color:var(--mint)}.branch-card.politi .branch-symbol{color:var(--police)}.branch-card.brann .branch-symbol{color:var(--fire)}.landing-footer{border-top:1px solid var(--line);padding:25px 0 35px;display:flex;justify-content:space-between;font-size:.74rem;color:var(--muted);gap:20px}.auth-wrap{max-width:460px;margin:60px auto;padding:30px}.setup-grid{display:grid;grid-template-columns:370px 1fr;gap:25px}.setup-map{height:540px;border-radius:12px}.branch-choice{display:flex;gap:12px;padding:15px;border:1px solid #314451;border-radius:9px;align-items:center;margin:10px 0}.branch-choice:has(input:checked){border-color:var(--mint);background:#15352e}.branch-choice small{display:block;color:var(--muted)}.base-illustration{height:175px;display:flex;align-items:flex-end;justify-content:center;gap:14px;background:radial-gradient(ellipse at bottom,#1b3c39,#111b25 70%);padding-bottom:25px;border-bottom:1px solid var(--line);overflow:hidden}.building-shape{position:relative;width:85px;background:#203a42;border:1px solid #49716d;border-top:7px solid #61b89c;display:flex;align-items:flex-end;justify-content:center;gap:7px;padding:10px 8px 0}.building-shape i{display:block;width:17px;height:26px;background:#0b2029;border:1px solid #4a746f}.building-shape.tall{height:115px;width:65px;border-top-color:#83baff}.building-shape.wide{height:65px;width:125px}.building-shape.medium{height:90px}.admin-layout{display:grid;grid-template-columns:190px 1fr;gap:24px}.admin-list{max-height:70vh;overflow:auto}.help-copy{line-height:1.9;color:#b1c1ce;font-size:.91rem}.help-copy h2{color:#eaf4ef;margin-top:28px;font-size:1.15rem}.timer{font-variant-numeric:tabular-nums}.mini-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:.8rem}.mini-row:last-child{border:0}.page-view[hidden]{display:none!important}#connection{font-size:.68rem;color:var(--muted)}.mobile-only{display:none}.kbd-note{font-size:.73rem;color:var(--muted);line-height:1.7}.small-avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#273d47;color:#b9e9d8;font-size:.75rem;font-weight:700}.game-label{font-size:.61rem;letter-spacing:.12em;padding:4px 7px;border:1px solid #344654;border-radius:4px;color:#8aa2b3;margin-left:10px}
@media(min-width:1600px){#map{height:610px}.mission-list{max-height:610px}.operations{grid-template-columns:minmax(0,1fr) 390px}}
@media(max-width:1200px){.shell{grid-template-columns:180px 1fr}.main{padding:22px}.sidebar{padding:22px 10px}.operations{grid-template-columns:minmax(0,1fr) 300px}.topbar{padding:0 22px}.hero{gap:35px}.topbar .account{gap:12px}.setup-grid{grid-template-columns:320px 1fr}}
@media(max-width:1000px){.shell{grid-template-columns:1fr}.sidebar{flex-direction:row;gap:4px;padding:10px 14px;border-right:0;border-bottom:1px solid var(--line);overflow-x:auto;position:sticky;top:0;z-index:800}.nav-item-link{white-space:nowrap;margin:0;padding:9px 13px;font-size:.8rem}.side-label,.side-footer{display:none}.nav-icon{width:15px}.hero{padding-top:55px;gap:30px}.hero-callout{left:-10px;width:270px}.game-label{display:none}.admin-layout{grid-template-columns:160px 1fr}}
@media(max-width:760px){.topbar{height:70px;padding:0 17px}.brand{font-size:1.03rem;gap:9px}.brand img{width:28px}.topbar .account>span,.topbar .account>.small-avatar{display:none}.main{padding:22px 15px}.page-heading{align-items:flex-start}.page-heading h1{font-size:1.6rem}.page-heading .btn{font-size:.7rem;padding:9px}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.stat{padding:15px}.stat strong{font-size:1.3rem}.stat-icon{width:28px;height:28px;line-height:28px}.operations{grid-template-columns:1fr}.mission-list{max-height:440px}#map{height:380px}.section-grid{grid-template-columns:1fr}.landing{padding:0 22px}.hero{grid-template-columns:1fr;padding:45px 0 60px;gap:35px}.hero h1{font-size:3.05rem}.hero-map{height:290px}.hero-callout{bottom:-22px;left:12px}.branch-grid{grid-template-columns:1fr;gap:13px;margin-bottom:35px}.branch-card{padding:22px}.branch-card h3{margin:12px 0}.branch-card p{margin:0}.branch-symbol{float:right}.landing-footer{flex-direction:column;gap:8px}.auth-wrap{margin:25px 16px;padding:25px;max-width:none}.setup-grid{grid-template-columns:1fr}.setup-map{height:350px}.admin-layout{grid-template-columns:1fr}.admin-menu{display:flex;overflow:auto}.admin-menu a{white-space:nowrap}.resource-card{padding:20px}.modal-body{padding:20px}.hero-actions{flex-wrap:wrap}.sidebar{position:static}.mobile-only{display:block}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

#connection{white-space:nowrap}.panel-heading{gap:12px;flex-wrap:wrap}.hero-live{left:54px}.hero h1{font-size:clamp(2.8rem,4.8vw,4.3rem)}@media(max-width:760px){.hero h1{font-size:2.95rem}.hero-live{font-size:.55rem;left:52px}}

.station-switcher{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 20px}.station-selector{min-width:260px;flex:1;max-width:520px}.station-switcher-actions{display:flex;align-items:center;gap:18px}.map-marker.base.helse,.map-marker.car.helse{color:var(--health);background:#154537}.map-marker.base.politi,.map-marker.car.politi{color:var(--police);background:#183757}.map-marker.base.brann,.map-marker.car.brann{color:var(--fire);background:#502c21}.station-legend.helse{color:var(--health)}.station-legend.politi{color:var(--police)}.station-legend.brann{color:var(--fire)}@media(max-width:760px){.station-switcher{align-items:stretch;flex-direction:column;gap:12px;padding:16px}.station-selector{min-width:0;max-width:none}.station-switcher-actions{justify-content:space-between;gap:10px}.station-switcher-actions .kbd-note{font-size:.65rem}.station-switcher-actions .btn{white-space:nowrap}}

.station-marker-group{display:flex;gap:0}.station-marker-group .map-marker{flex-shrink:0}

.person-avatar{width:62px;height:72px;object-fit:cover;object-position:center top;flex-shrink:0;border-radius:10px;border:1px solid #3b555e;background:#20323b}.person-avatar.initials{display:grid;place-items:center;font-weight:650;color:#aadcca}.person-avatar.kvinne{background:#3a2e47;color:#ddc4ef}.candidate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.candidate-stats{display:flex;justify-content:space-between;gap:8px;font-size:.68rem;color:var(--muted)}.candidate-stats strong{display:block;color:#dceee8;font-size:1.1rem;margin-top:4px}.photo-settings{border-top:1px solid var(--line);padding-top:14px}.person-photo-review{width:150px;height:180px;object-fit:contain;background:#0a141b;border-radius:8px}.vehicle-photo{margin:0 0 20px}.vehicle-photo img{width:100%;height:200px;object-fit:contain;background:#0a141b;border-radius:9px}.vehicle-photo figcaption{font-size:.62rem;color:var(--muted);line-height:1.6;margin-top:6px;overflow-wrap:anywhere}@media(max-width:1200px){.candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.candidate-grid{grid-template-columns:1fr}.person-photo-review{width:105px;height:140px}.vehicle-photo img{height:180px}}

.reset-warning{position:sticky;top:0;z-index:1050;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem 1.5rem;padding:1rem 1.25rem;background:#602117;color:#fff0dc;border-bottom:2px solid #ffb36b;box-shadow:0 4px 20px #0005;text-align:center}.reset-warning[hidden]{display:none}.reset-warning>strong:first-child{color:#ffd091}.reset-warning #reset-warning-countdown{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1.1rem}
.generator-preview{min-height:220px;height:300px;display:flex;align-items:center;justify-content:center;border-radius:12px;overflow:hidden;background:repeating-conic-gradient(#202a36 0 25%,#2a3543 0 50%) 0 0/24px 24px}.generator-preview img{width:100%;height:100%;object-fit:contain}.generator-preview span{padding:1rem;color:#c0cbd8;overflow-wrap:anywhere}

.person-profile-link{border:0;background:none;color:inherit;text-align:left;padding:0}.person-profile-link:hover{text-decoration:underline}.personnel-large .person-avatar{width:100%;height:360px;object-fit:contain;object-position:center top;border-radius:12px}.personnel-large .initials{display:flex;align-items:center;justify-content:center;font-size:4rem}

.mission-map-icon{background:none;border:0}.mission-map-card{--mission-state:#a9b5c3;background:#101d29f5;border:2px solid var(--mission-state);border-radius:10px;padding:7px 8px;box-shadow:0 3px 12px #0009;color:#f1f6fa;position:relative;min-height:76px}.mission-map-card:after{content:"";position:absolute;bottom:-9px;left:calc(50% - 7px);border-left:7px solid transparent;border-right:7px solid transparent;border-top:8px solid var(--mission-state)}.mission-map-card.ready{--mission-state:#61dfb5}.mission-map-card.partial{--mission-state:#ffd16b}.mission-map-card.working{--mission-state:#83baff}.mission-map-name{display:flex;align-items:center;gap:6px;line-height:15px}.mission-map-name>span{font-size:19px;flex-shrink:0}.mission-map-name strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-resources{display:flex;gap:3px;margin:5px 0;justify-content:flex-start}.map-resource{font-size:9px;font-weight:700;line-height:15px;padding:1px 4px;border-radius:4px;white-space:nowrap}.map-resource.helse{background:#1d3a32;color:#61dfb5}.map-resource.politi{background:#20374f;color:#83baff}.map-resource.brann{background:#442e26;color:#ff986b}.mission-map-status{font-size:9px;font-weight:700;line-height:12px;color:var(--mission-state)}.mission-map-icon:focus .mission-map-card,.mission-map-icon:hover .mission-map-card{box-shadow:0 0 0 2px white,0 4px 16px #0009}.mission-map-tooltip{background:#111e28;color:#eef5fa;border:1px solid #40596c;max-width:320px;white-space:normal;font-size:11px}.map-status-legend{border-top:1px solid var(--line);gap:8px 18px}.map-status-legend .ready{color:#61dfb5}.map-status-legend .partial{color:#ffd16b}.map-status-legend .working{color:#83baff}.map-status-legend .waiting{color:#a9b5c3}

.mission-map-card{min-height:88px}.mission-map-name{min-height:30px}.mission-map-name strong{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mission-map-name>span{display:flex;align-items:center}

.vehicle-crew-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:9px}.vehicle-person-card{display:flex;gap:10px;align-items:center;position:relative;border:1px solid #354858;border-radius:10px;background:#13222d;padding:12px;color:#eef5fa;min-width:0}.vehicle-person-card.selectable{cursor:pointer}.vehicle-person-card:has(input:checked){border-color:var(--mint);background:#17332d;box-shadow:inset 0 0 0 1px var(--mint)}.vehicle-person-card:focus-within{outline:2px solid white;outline-offset:2px}.vehicle-person-card .form-check-input{flex-shrink:0;margin:0}.vehicle-person-card .person-avatar{width:48px;height:68px;flex-shrink:0}.vehicle-person-info{display:flex;flex-direction:column;gap:3px;min-width:0}.vehicle-person-info strong{font-size:.8rem}.vehicle-person-info span{font-size:.67rem;color:var(--muted)}.vehicle-person-info .crew-qualifications{color:#bde9d8}.course-requirement{padding:10px 12px;border-radius:7px;background:#3c3020;color:#ffda87;font-size:.76rem}.course-requirement.qualified{background:#1b3a31;color:var(--mint)}.course-training summary{cursor:pointer;font-size:.82rem;color:var(--mint)}

.staff-card-tabs{display:flex;flex-wrap:nowrap;gap:2px;border-bottom:1px solid var(--line)}.staff-card-tabs .nav-link{flex:1;padding:10px 6px;font-size:.72rem;color:var(--muted);border:1px solid transparent;border-radius:8px 8px 0 0;line-height:1.4}.staff-card-tabs .nav-link.active{color:var(--mint);background:#19302c;border-color:#36544d #36544d transparent}.staff-card-tabs .nav-link:hover{color:#e6fff5;border-color:#36544d}.staff-card-tabs .nav-link:focus-visible{outline:2px solid var(--mint);outline-offset:2px}.section-grid:has([data-staff-card]){align-items:start}

.staff-card-tabs .nav-link{min-width:0;font-size:.68rem;padding:10px 4px}.staff-history-list{max-height:420px;overflow:auto;overscroll-behavior:contain}.staff-image-fullscreen{display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:0;padding:16px}.staff-image-fullscreen .person-avatar{width:100%;height:100%;max-height:100%;object-fit:contain;object-position:center;border:0;border-radius:0;background:transparent}.staff-image-fullscreen .initials{display:flex;align-items:center;justify-content:center;font-size:clamp(4rem,18vw,12rem)}

.generated-asset img{object-fit:contain!important;background:radial-gradient(ellipse,#20313d,#101b24);height:230px!important;width:100%}.generated-asset{overflow:hidden}

.admin-layout{grid-template-columns:190px minmax(0,1fr);align-items:start}.admin-content{min-width:0}.admin-subpage{min-width:0}.admin-menu{position:sticky;top:16px}.admin-section-tabs{border-bottom:1px solid var(--line);gap:4px}.admin-section-tabs .nav-link{color:var(--muted);font-size:.83rem;border-radius:8px 8px 0 0}.admin-section-tabs .nav-link.active{color:var(--mint);background:#19302c;border-color:#36544d #36544d transparent}.admin-section-tabs .nav-link:hover{color:#e6fff5;border-color:#36544d}.admin-subpage .page-heading h2{font-size:1.65rem}.admin-subpage .page-heading{align-items:flex-start;flex-wrap:wrap}@media(max-width:760px){.admin-layout{grid-template-columns:minmax(0,1fr)}.admin-menu{position:static;max-width:100%}.admin-section-tabs .nav-link{font-size:.74rem;padding:10px 9px}}

.personnel-library-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start}.library-image-card{overflow:hidden;min-width:0}.library-image-open{display:block;width:100%;padding:8px;border:0;background:repeating-conic-gradient(#1d2b37 0% 25%,#14222e 0% 50%) 0/20px 20px;cursor:zoom-in}.library-image-open img{width:100%;height:190px;object-fit:contain;object-position:center}.library-image-open:focus-visible{outline:2px solid var(--mint);outline-offset:-3px}.library-image-fullscreen{display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:0}.library-image-fullscreen img{width:100%;height:100%;object-fit:contain}.library-image-card .btn{padding:6px 9px;font-size:.72rem}@media(max-width:1100px){.personnel-library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.personnel-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.library-image-open img{height:160px}.personnel-library-grid{gap:10px}.library-image-card .p-3{padding:10px!important}}

.station-artwork{margin:0;border-bottom:1px solid var(--line);background:radial-gradient(ellipse at bottom,#1b3c39,#111b25 70%)}.station-artwork>img{display:block;width:100%;height:clamp(220px,32vw,380px);object-fit:contain;padding:20px}.station-artwork figcaption{text-align:center;padding:10px 16px;color:var(--muted);font-size:.8rem}.station-artwork .base-illustration{border-bottom:0}.station-artwork .building-shape.wide{height:105px;width:180px}

.asset-level-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.asset-level-card{padding:16px}.asset-level-card .asset-thumb{display:block;width:100%;height:155px;object-fit:contain;background:#0a141b;cursor:zoom-in;border-radius:8px}.asset-level-card.is-active{border-color:var(--mint)}.asset-level-card .empty-level{height:155px;display:grid;place-items:center;color:var(--muted);font-size:.85rem}.asset-type-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.asset-level-card details img{height:120px}.asset-level-card summary{font-size:.85rem}@media(max-width:1100px){.asset-level-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.asset-level-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:440px){.asset-level-grid{grid-template-columns:1fr}}

.station-buildings{display:flex;align-items:flex-end;justify-content:center;flex-wrap:wrap;background:radial-gradient(ellipse at bottom,#1b3c39,#111b25 70%);border-bottom:1px solid var(--line);padding:12px;gap:12px}.station-buildings .station-artwork{flex:1 1 180px;min-width:0;max-width:440px;background:none;border:0}.station-buildings .main-building{flex-grow:1.4}.station-buildings .station-artwork>img{height:240px;padding:8px}.station-image-placeholder{height:240px;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--muted);text-align:center}.station-image-placeholder>span:first-child{font-size:3rem}.station-buildings figcaption{font-size:.75rem}@media(max-width:600px){.station-buildings .station-artwork{flex-basis:130px}.station-buildings .station-artwork>img,.station-image-placeholder{height:170px}}

.base-scene{isolation:isolate;background:radial-gradient(ellipse at 50% 25%,#294440 0%,#14252c 55%,#111b25 100%);border-bottom:1px solid var(--line);padding:24px 12px 16px;overflow:hidden}.base-scene .station-buildings{position:relative;flex-wrap:nowrap;gap:0;padding:0 18px;background:none;border:0;align-items:flex-end}.base-scene .station-artwork{position:relative;flex:1 1 0;max-width:310px;min-width:0;margin:0 -12px;background:none}.base-scene .station-artwork.main-building{flex-grow:1.25;z-index:2;max-width:370px}.base-scene .station-artwork>img{height:230px;padding:0;object-position:center bottom;filter:drop-shadow(0 12px 8px #0005)}.base-scene .main-building>img{height:260px}.base-scene .station-image-placeholder{height:230px;font-size:.75rem;gap:6px}.base-scene .station-artwork figcaption{position:relative;z-index:3;padding:8px 4px;font-size:.7rem;color:#d9ebe6;text-shadow:0 1px 3px #000}.base-yard{position:relative;padding:12px 16px 4px;border-top:1px solid #76918b35;background:linear-gradient(180deg,#35434280,#18272c40);border-radius:45% 45% 12px 12px / 18px 18px 12px 12px}.base-yard-label{text-align:center;font-size:.65rem;text-transform:uppercase;letter-spacing:.13em;color:#a8bfba;margin:6px 0 10px}.base-fleet,.base-team{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:center;gap:10px 18px}.base-fleet{margin-bottom:18px}.base-vehicle{width:180px;min-width:0;text-align:center}.base-scene .base-vehicle .vehicle-photo{margin:0 0 5px}.base-scene .base-vehicle .vehicle-photo img{height:110px;background:transparent;object-fit:contain}.base-scene .base-vehicle .vehicle-photo figcaption{font-size:.55rem;line-height:1.3}.base-scene .base-vehicle .generated-asset figcaption{display:none}.base-unit-name{display:block;font-size:.75rem;line-height:1.35;color:#e3eeea;overflow-wrap:anywhere}.base-unit-status{display:block;font-size:.65rem;color:var(--muted);margin-top:3px}.base-vehicle-placeholder{height:110px;display:grid;place-items:center;font-size:3rem;color:var(--muted)}.base-person{width:92px;border:0;background:none;color:inherit;text-align:center;padding:4px;border-radius:8px}.base-person:hover,.base-person:focus-visible{background:#ffffff0d}.base-person-portrait{height:105px;display:flex;align-items:flex-end;justify-content:center;margin-bottom:6px}.base-person .person-avatar{height:105px;width:80px;object-fit:contain;object-position:center bottom;border:0;background:transparent;border-radius:0}.base-person .person-avatar.initials{height:65px;width:65px;border-radius:50%;background:#29433e}.base-person .base-unit-name{font-size:.68rem}@media(max-width:600px){.base-scene{padding:16px 6px 10px}.base-scene .station-buildings{padding:0 6px}.base-scene .station-artwork{margin:0 -6px}.base-scene .station-artwork>img,.base-scene .station-image-placeholder{height:130px}.base-scene .main-building>img{height:155px}.base-scene .station-image-placeholder{flex-direction:column;font-size:.6rem}.base-scene .station-image-placeholder>span:first-child{font-size:2rem}.base-scene .station-artwork figcaption{font-size:.58rem}.base-yard{padding:10px 6px}.base-vehicle{width:130px}.base-scene .base-vehicle .vehicle-photo img{height:90px}.base-team,.base-fleet{gap:8px}.base-person{width:78px}}

/* Basepanorama: only images; details remain in the resource cards. */
.base-scene .base-yard-label,.base-scene .base-unit-name,.base-scene .base-unit-status,.base-scene .station-image-placeholder>span+span,.base-scene .base-fleet>p,.base-scene .base-team>a{display:none}
.base-scene figcaption{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.base-scene .base-person .person-avatar.initials{font-size:0}.base-scene .base-person .person-avatar.initials::after{content:'♟';font-size:32px}
.base-scene .base-person-portrait{margin-bottom:0}.base-scene .base-yard{padding-top:16px}.base-scene .base-team:empty,.base-scene .base-fleet:empty{display:none}
.page-comments{max-width:1200px;margin:24px auto;width:calc(100% - 32px)}.comment-body{white-space:pre-wrap;overflow-wrap:anywhere}.comment-form label{width:100%}.comment-replies{margin-left:16px}.admin-staff-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.admin-staff-portrait{height:220px;display:grid;place-items:center}.admin-staff-portrait>img{width:100%;height:220px;object-fit:contain;cursor:zoom-in}.photo-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:340px;overflow:auto}.photo-choice-grid label{padding:4px;border:1px solid var(--line);border-radius:8px;cursor:pointer}.photo-choice-grid label:has(input:checked){border-color:var(--mint)}.photo-choice-grid img{width:100%;height:100px;object-fit:contain}.photo-choice-grid input{display:block}@media(max-width:1100px){.admin-staff-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.admin-staff-grid{grid-template-columns:1fr}}

.main>.page-comments{width:100%;max-width:none;margin:24px 0}.comment-form .note-editor{margin-bottom:12px}.comment-body:has(p),.comment-body:has(ul),.comment-body:has(ol){white-space:normal}.comment-body p:last-child{margin-bottom:0}.comment-form .note-editable{overflow-wrap:anywhere}.comment-form .note-toolbar{background:var(--panel2)}

.history-card-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:1fr;gap:12px}.history-card{padding:16px;display:flex;flex-direction:column;gap:10px;min-width:0;overflow-wrap:anywhere}.history-card>.pill{align-self:flex-start}.history-card h3{font-size:1rem;margin:0}.history-card-bottom{margin-top:auto;padding-top:12px}.history-card-bottom>strong{display:block;margin-bottom:8px}@media(max-width:1199px){.history-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:767px){.history-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:479px){.history-card-grid{grid-template-columns:1fr}}

/* Oppdragskort vokser med innholdet uten intern rulling. */
.operations{align-items:start}
.mission-list{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;max-height:none;overflow:visible;padding:16px}
.mission-list .mission-item{min-width:0;padding:14px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;overflow-wrap:anywhere}
.mission-list .mission-item:last-child{border-bottom:1px solid var(--line)}
.mission-list .mission-item:hover{border-color:var(--mint)}
.mission-list .mission-item>div:first-child{flex-wrap:wrap;gap:6px}
.mission-list [data-dispatch-clock]{font-variant-numeric:tabular-nums}

.mission-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}.mission-list .mission-item{padding:10px;font-size:.73rem}.mission-list .mission-item h3{font-size:.82rem}.mission-list .mission-item .pill{white-space:normal}.mission-list .mission-item .small{font-size:.7rem}.operations{grid-template-columns:minmax(0,1fr) minmax(360px,38%)}
.dispatch-card-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;padding:16px 0;grid-auto-rows:1fr}.dispatch-card{display:flex;flex-direction:column;padding:12px;min-width:0;overflow-wrap:anywhere;background:var(--panel2)}.dispatch-card h3{font-size:.9rem}.dispatch-vehicle-image .vehicle-photo{margin:8px 0}.dispatch-vehicle-image .vehicle-photo img{width:100%;height:90px;object-fit:contain}.dispatch-vehicle-image figcaption{font-size:.55rem}.dispatch-person{display:flex;align-items:center;gap:6px;font-size:.7rem;margin:6px 0}.dispatch-person .person-avatar{width:36px;height:46px;flex-shrink:0;object-fit:contain;object-position:top}.dispatch-card [data-dispatch-clock]{font-variant-numeric:tabular-nums;color:var(--mint)}
@media(max-width:1199px){.dispatch-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.operations{grid-template-columns:minmax(0,1fr)}.dispatch-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

[data-staff-card].staff-border-green{border-color:#61dfb5;box-shadow:inset 0 0 0 1px #61dfb5}[data-staff-card].staff-border-red{border-color:#ff7272;box-shadow:inset 0 0 0 1px #ff7272}[data-staff-card].staff-border-yellow{border-color:#f3c65b;box-shadow:inset 0 0 0 1px #f3c65b}.pill.staff-status-green{color:#61dfb5;background:#61dfb51a}.pill.staff-status-red{color:#ff7272;background:#ff72721a}.pill.staff-status-yellow{color:#f3c65b;background:#f3c65b1a}.progress-bar.staff-stamina-low{background-color:#f3c65b}

.staff-name-button{color:inherit;font:inherit;letter-spacing:inherit;text-align:left;border:0;background:none;padding:0}.staff-name-button:hover{color:var(--mint);text-decoration:underline}.staff-profile-fullscreen{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,380px);gap:32px;min-height:0;overflow:auto}.staff-profile-art{height:calc(100dvh - 190px);min-height:250px;display:flex;justify-content:center;align-items:center}.staff-profile-art .person-avatar{width:100%;height:100%;object-fit:contain;object-position:center;border:0;background:transparent;border-radius:0}.staff-profile-art .initials{display:grid;place-items:center;font-size:6rem}.staff-profile-info{align-self:center;padding:20px}.staff-profile-info dl{display:grid;grid-template-columns:1fr 1fr;gap:10px}.staff-profile-info dd{margin:0}@media(max-width:760px){.staff-profile-fullscreen{grid-template-columns:minmax(0,1fr);gap:12px}.staff-profile-art{height:50dvh}.staff-profile-info{padding:10px}}

.staff-profile-album{display:flex;gap:10px;padding:10px 20px;overflow-x:auto;flex-shrink:0;border-top:1px solid var(--line);scrollbar-width:thin}.staff-album-item{flex:0 0 82px;width:82px;padding:5px;border:2px solid transparent;border-radius:9px;background:var(--panel2);color:var(--muted)}.staff-album-item.selected{border-color:var(--mint);color:var(--mint)}.staff-album-item .person-avatar{width:100%;height:65px;object-fit:contain;object-position:top;background:transparent;border:0}.staff-album-item span{display:block;font-size:.6rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.staff-profile-art{height:calc(100dvh - 310px)}@media(max-width:760px){.staff-profile-art{height:45dvh}.staff-profile-album{padding:8px 12px}}

.ward-bed-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;grid-auto-rows:1fr}.ward-bed{display:flex;flex-direction:column;gap:8px;padding:14px;min-width:0;min-height:170px;overflow-wrap:anywhere;background:var(--panel2)}.ward-bed h4{font-size:1rem;margin:0}.ward-bed.vacant{border-style:dashed;color:var(--muted)}.ward-bed.vacant strong{margin:auto 0;text-align:center}@media(max-width:1199px){.ward-bed-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:767px){.ward-bed-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:479px){.ward-bed-grid{grid-template-columns:1fr}}

.ward-heading,.base-profile-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px}.ward-heading>div:first-child,.base-profile-heading>div:first-child{flex:1;min-width:0}.ward-heading-image,.base-profile-building{width:160px;flex:0 0 160px}.ward-heading-image .vehicle-photo,.base-profile-building .vehicle-photo{margin:0;background:transparent;border:0}.ward-heading-image img,.base-profile-building img{width:100%;height:120px;object-fit:contain}.ward-heading-image figcaption,.base-profile-building figcaption{display:none}@media(max-width:600px){.ward-heading-image,.base-profile-building{width:100px;flex-basis:100px}.ward-heading-image img,.base-profile-building img{height:90px}}

.card-expand-actions{display:flex;justify-content:flex-end;margin-top:20px}.btn-expand-info{color:#ead28b;background:rgba(243,198,91,.10);border:1px solid rgba(243,198,91,.32)}.btn-expand-info:hover,.btn-expand-info:focus-visible,.btn-expand-info[aria-expanded="true"]{color:#ffe6a1;background:rgba(243,198,91,.19);border-color:rgba(243,198,91,.6)}.btn-expand-info::before{content:'▸';display:inline-block;margin-right:8px}.btn-expand-info[aria-expanded="true"]::before{transform:rotate(90deg)}

.competence-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px}.competence-card{border:1px solid var(--line);border-radius:10px;padding:14px;min-width:0;background:var(--panel2)}.competence-card.completed{border-color:var(--mint);box-shadow:inset 0 0 0 1px var(--mint)}.competence-card h4{font-size:.9rem;margin-bottom:8px}

.btn.course-affordable{border-color:var(--mint);color:var(--mint)}.btn.course-affordable:hover,.btn.course-affordable:focus-visible{border-color:var(--mint);background:#61dfb51a;color:var(--mint)}

.station-buildings-row{display:flex;align-items:center;gap:16px}.station-buildings-row>.station-buildings{flex:1;min-width:0}.station-description{flex:0 0 240px;padding:18px;text-align:left;max-height:320px;overflow:auto}.station-description h3{font-size:1rem}.station-description .help-copy{font-size:.8rem}.station-description p:last-child{margin-bottom:0}@media(max-width:900px){.station-buildings-row{flex-direction:column}.station-buildings-row>.station-buildings{width:100%}.station-description{flex:auto;width:100%;max-height:none}}

.ward-heading{min-height:100px;margin-bottom:12px;position:relative;padding-right:145px;display:block}.ward-heading-image{position:absolute;right:0;top:-8px;width:130px}.ward-heading-image .vehicle-photo.generated-asset{padding:0;margin:0;border:0;border-radius:0;background:none;box-shadow:none;min-height:0}.ward-heading-image .vehicle-photo.generated-asset img{display:block;width:130px;height:100px;min-height:0;max-height:100px;background:none;border:0;padding:0;object-fit:contain}.ward-visitor{display:flex;align-items:center;gap:8px}.ward-visitor .person-avatar{width:48px;height:65px;object-fit:contain;object-position:top}.ward-visitor .person-profile-link{flex-shrink:0}@media(max-width:600px){.ward-heading{padding-right:100px;min-height:80px}.ward-heading-image{width:90px}.ward-heading-image .vehicle-photo.generated-asset img{width:90px;height:75px}}

.ward-visit-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ward-visit-choice{min-width:0;display:flex;flex-direction:column;align-items:center;gap:5px;padding:7px 4px;border:1px solid #61dfb566;border-radius:8px;background:#61dfb50d;color:var(--mint);cursor:pointer}.ward-visit-choice:hover,.ward-visit-choice:focus-visible{border-color:var(--mint);background:#61dfb526}.ward-visit-choice:disabled{opacity:.5;cursor:wait}.ward-visit-choice .person-avatar{width:100%;height:64px;object-fit:contain;object-position:top;border:0;background:transparent}.ward-visit-choice span{font-size:.65rem;line-height:1.3;overflow-wrap:anywhere}

.login-personnel{display:flex;justify-content:center;margin:0 0 24px}.login-personnel img{display:block;width:100%;max-width:220px;height:230px;object-fit:contain;object-position:center}

.home-team-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.home-person-art,.home-vehicle-art{display:block;width:100%;height:260px;object-fit:contain;margin:20px auto}.home-person-bio,.staff-bio-text{white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:700px){.home-team-preview{grid-template-columns:1fr}}

.profile-template-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.profile-template-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:14px;min-width:0;overflow-wrap:anywhere}.profile-template-card>a:first-of-type{width:100%}.profile-template-photo{display:block;width:100%;height:160px;object-fit:contain;object-position:center}.profile-template-card h3{font-size:1rem;margin:0}.profile-template-card p{margin:0}.profile-template-bio{font-size:.8rem;line-height:1.6;margin-bottom:8px}.profile-template-bio p+p{margin-top:8px}@media(max-width:1399px){.profile-template-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:767px){.profile-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:479px){.profile-template-grid{grid-template-columns:1fr}}

.event-card-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-top:16px}.event-log-card{padding:14px;display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}.event-log-card h4{font-size:1rem;margin:10px 0 6px}.event-log-portrait{align-self:center;margin-top:10px}.event-log-portrait .person-avatar{width:90px;height:120px;object-fit:contain;object-position:center top;background:transparent;border:0;border-radius:0}@media(max-width:1399px){.event-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:767px){.event-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:479px){.event-card-grid{grid-template-columns:1fr}}

.stats{grid-template-columns:repeat(5,minmax(0,1fr))}.stat.stat-ready{border-color:var(--mint);box-shadow:inset 0 0 0 1px var(--mint)}@media(max-width:1100px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.stats{grid-template-columns:1fr}}
