
:root{
  --navy-950:#020a13;--navy-900:#031426;--navy-850:#061b31;--navy-800:#082542;
  --navy-700:#0b365e;--line:#16466e;--text:#fff;--muted:#9fb6cb;
  --blue:#0877cc;--blue2:#1698eb;--yellow:#ffc400;--green:#169847;
  --purple:#7a3298;--orange:#ec8a00;--red:#cf252b;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--navy-950);color:var(--text);font-family:"Arial Narrow","Segoe UI",Arial,sans-serif}
body{background:linear-gradient(180deg,#051d35 0,#020a13 65%)}
header{position:sticky;top:0;z-index:20;background:#031426;border-bottom:2px solid #0b5f9f}
.topbar{min-height:78px;padding:8px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:center;gap:12px}.brand-logo{width:68px;height:68px;object-fit:contain}.brand-copy h1{margin:0;text-transform:uppercase;letter-spacing:1px;font-size:23px}.brand-copy .tagline{margin-top:4px;color:#6fc6ff;font-weight:800;text-transform:uppercase;font-size:12px;letter-spacing:1.2px}
nav{display:flex;gap:6px;flex-wrap:wrap}nav a,.btn{border:1px solid #1c5b8d;border-radius:5px;background:linear-gradient(#0c4f86,#07355d);color:#fff;text-decoration:none;padding:9px 12px;font-weight:800;cursor:pointer;font:inherit}nav a.active,.btn.primary{background:linear-gradient(#1496e8,#086fc0)}.btn.green{background:linear-gradient(#32b552,#16883d)}.btn.amber{background:linear-gradient(#ffae0a,#dc7600)}.btn.red{background:linear-gradient(#ed3b42,#b2161c)}.btn.purple{background:linear-gradient(#944db3,#682788)}
main{max-width:1550px;margin:auto;padding:14px}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-6{grid-column:span 6}.span-8{grid-column:span 8}.span-9{grid-column:span 9}.span-12{grid-column:span 12}
@media(max-width:900px){.span-3,.span-4,.span-6,.span-8,.span-9{grid-column:span 12}}
.card{background:linear-gradient(180deg,#082640,#03182c);border:1px solid #164b76;border-radius:7px;padding:14px;box-shadow:0 10px 25px #0008}h2{margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px;font-size:20px}h3{margin:0 0 10px;color:#b7ccdd;text-transform:uppercase;font-size:12px;letter-spacing:1px}
label{display:block;color:#b6c9da;font-size:12px;margin-bottom:5px;font-weight:700}input,select,textarea{width:100%;background:#031426;color:#fff;border:1px solid #174d78;border-radius:5px;padding:10px;font:inherit}textarea{min-height:74px}.row{display:flex;gap:9px;align-items:end;flex-wrap:wrap}.row>div{flex:1;min-width:130px}.small,.muted{color:var(--muted);font-size:12px}
.pill{display:inline-flex;padding:5px 9px;border-radius:20px;background:#0b365e;border:1px solid #1d5d8c;color:#d9ebfa;font-weight:800;font-size:11px}.mode-pill{background:var(--yellow);color:#1d1400}.kids-pill{background:var(--green)}.thrill-pill{background:var(--purple)}
.status{display:inline-block;min-width:82px;text-align:center;padding:5px 7px;border-radius:4px;font-weight:900;font-size:12px;text-transform:uppercase}.status.ready{background:#2582c8}.status.loading{background:#25a34b}.status.running{background:#147dcc}.status.delayed{background:#ef9300}.status.closed{background:#cb272d}.status.unloading{background:#7240a2}
.ride-item{border:1px solid #16476e;background:#06213a;border-radius:6px;padding:12px;margin-bottom:10px}.ride-title{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.ride-title strong{font-size:17px}
.button-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.button-grid .btn{min-height:74px;font-size:15px;text-transform:uppercase}.button-icon{display:block;font-size:25px;margin-bottom:4px}
table{width:100%;border-collapse:collapse}th,td{padding:9px;border-bottom:1px solid #123e61;text-align:left}th{font-size:11px;color:#b3c8d9;text-transform:uppercase;background:#03111f}.table-wrap{overflow:auto}
.time-chip{display:inline-flex;gap:7px;align-items:center;background:#031426;border:1px solid #164d78;border-radius:20px;padding:6px 9px;margin:3px}.x{border:0;background:none;color:#ff5f67;font-weight:bold;cursor:pointer}
.login{max-width:420px;margin:45px auto}.metric{font-size:30px;font-weight:950}.install{display:none}.install.show{display:inline-block}.offline{display:none}.offline.show{display:block;background:#7f1d1d;text-align:center;padding:8px}

/* Public board */
.display-page header{display:none}.display-page main{max-width:none;padding:0}.departure-board{min-height:100vh;background:#020c18}
.notice{background:linear-gradient(#ffd43a,#ffbf00);color:#111;text-align:center;font-size:16px;font-weight:950;text-transform:uppercase;padding:11px}
.board-hero{height:174px;display:flex;justify-content:space-between;align-items:center;padding:10px 18px;background:
 linear-gradient(90deg,rgba(2,19,38,.97),rgba(6,62,107,.86)),
 radial-gradient(circle at 74% 30%,#2da6ed55,transparent 27%);border-bottom:3px solid var(--yellow);position:relative;overflow:hidden}
.board-hero:after{content:"";position:absolute;right:18%;bottom:-35px;width:500px;height:150px;opacity:.33;background:
 radial-gradient(circle at 20% 70%,transparent 44px,#00101e 46px 50px,transparent 52px),
 radial-gradient(circle at 50% 55%,transparent 57px,#00101e 59px 63px,transparent 65px),
 linear-gradient(75deg,transparent 48%,#00101e 49% 51%,transparent 52%) 10px 40px/90px 120px repeat-x}
.board-brand{display:flex;align-items:center;gap:22px;z-index:2}.board-logo{width:175px;height:160px;object-fit:contain}.park-name{font-size:42px;font-weight:950;letter-spacing:2px;text-transform:uppercase}.park-sub{color:#75c8ff;font-size:18px;font-weight:900;text-transform:uppercase;letter-spacing:1.4px}.board-title h2{color:var(--yellow);font-size:31px;margin:9px 0 0;letter-spacing:2px}.board-info{z-index:2;text-align:right;min-width:220px}.clock{font-size:32px;font-weight:950}.board-date{font-size:13px;margin:3px 0 10px}.mode-box{background:#096fbd;border-radius:6px;padding:12px;font-weight:950;text-transform:uppercase}
.now-strip{display:grid;grid-template-columns:220px 1fr;height:86px;border-bottom:2px solid #d59700}.now-label{background:var(--yellow);color:#171000;display:flex;align-items:center;padding:16px;font-size:22px;font-weight:950;text-transform:uppercase;clip-path:polygon(0 0,90% 0,100% 50%,90% 100%,0 100%)}.big-now{display:grid;grid-template-columns:repeat(4,1fr)}.now-card{padding:15px 18px;border-right:1px solid #194361}.now-card strong{display:block;font-size:18px;text-transform:uppercase}.status-text{color:#37ef69;font-weight:900;font-size:13px}
.board-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px}.board-columns.single{grid-template-columns:1fr}.board-column{border:1px solid #174f7b;border-radius:6px;overflow:hidden;background:#03162a}.column-title{padding:12px;text-align:center;font-size:24px;font-weight:950;text-transform:uppercase}.kids-title{background:linear-gradient(90deg,#097c39,#27aa55)}.thrill-title{background:linear-gradient(90deg,#69247f,#9047ae)}
.departure-row{display:grid;grid-template-columns:95px 1fr 120px 70px;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid #123d5e;font-size:17px}.departure-row:nth-child(even){background:#07223c}.departure-row.header{background:#020e1b;color:#b7cada;font-size:10px;text-transform:uppercase}.wait{text-align:center;font-weight:900}.wait small{display:block;font-size:9px}
.board-footer{display:flex;justify-content:space-between;padding:12px 20px;background:linear-gradient(90deg,#064177,#0869b5);font-size:13px;font-weight:900;text-transform:uppercase}
@media(max-width:900px){.board-hero{height:auto}.board-logo{width:100px}.park-name{font-size:28px}.park-sub{font-size:12px}.board-title h2{font-size:22px}.now-strip{height:auto;grid-template-columns:1fr}.now-label{clip-path:none}.big-now{grid-template-columns:1fr 1fr}.board-columns{grid-template-columns:1fr}.departure-row{grid-template-columns:75px 1fr 90px}.departure-row>:last-child{display:none}}

/* Dashboards */
.app-shell{display:grid;grid-template-columns:190px 1fr;gap:12px}.side-nav{background:#041a30;border:1px solid #164c76;border-radius:7px;overflow:hidden}.side-brand{padding:14px;text-align:center;border-bottom:1px solid #164c76}.side-brand img{width:90px}.side-nav a{display:block;color:#dcebf7;text-decoration:none;padding:11px 14px;border-bottom:1px solid #103b5d;font-size:13px}.side-nav a.active{background:#0877cc}.dash-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.kpi{background:linear-gradient(#0a3964,#06233e);border:1px solid #1a5b8d;border-radius:5px;padding:12px}.kpi .label{color:#b7cddd;text-transform:uppercase;font-size:10px}.kpi .value{font-size:28px;font-weight:950;margin-top:4px}.chart-placeholder{height:150px;background:linear-gradient(180deg,#06233e,#031426);border:1px solid #16466e;border-radius:4px;position:relative;overflow:hidden}.chart-placeholder:after{content:"";position:absolute;left:5%;right:5%;bottom:22%;height:3px;background:#35a9f1;box-shadow:50px -20px 0 -1px #35a9f1,100px -35px 0 -1px #35a9f1,150px -50px 0 -1px #35a9f1,200px -58px 0 -1px #35a9f1,250px -68px 0 -1px #35a9f1,300px -74px 0 -1px #35a9f1,350px -50px 0 -1px #35a9f1;transform:skewY(-8deg)}
.operator-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #164a72;padding-bottom:10px;margin-bottom:12px}.passenger-stepper{display:flex;align-items:center;gap:10px}.passenger-stepper button{width:42px;height:38px}.passenger-number{font-size:26px;font-weight:950;min-width:45px;text-align:center}
.donut{width:120px;height:120px;border-radius:50%;background:conic-gradient(#26a34d 0 65%,#ef9300 65% 88%,#cf252b 88%);position:relative;margin:auto}.donut:after{content:"";position:absolute;inset:26px;background:#06213a;border-radius:50%}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.side-nav{display:none}.dash-grid{grid-template-columns:1fr 1fr}}


/* Admin section navigation */
.side-nav .side-link {
  display:block;
  width:100%;
  color:#dcebf7;
  text-decoration:none;
  text-align:left;
  padding:11px 14px;
  border:0;
  border-bottom:1px solid #103b5d;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
}
.side-nav .side-link:hover,
.side-nav .side-link.active {
  background:#0877cc;
}
.side-nav .logout-link {
  color:#ffd4d6;
  margin-top:8px;
}
.admin-content {
  min-width:0;
}
.admin-section {
  display:none;
}
.admin-section.active {
  display:block;
}

/* Operator console intentionally has no application navigation */
.operator-header nav {
  display:none;
}
.operator-session-actions {
  display:flex;
  align-items:center;
  gap:12px;
}
.operator-page .login {
  margin-top:70px;
}


/* Live next-loading countdown */
.countdown {
  min-width:70px;
  color:#7dd3fc;
  font-variant-numeric:tabular-nums;
  letter-spacing:.5px;
}
.countdown-soon {
  color:#ffc400;
  animation:countdownPulse 1.2s ease-in-out infinite;
}
.countdown-due {
  color:#42e86b;
  text-transform:uppercase;
  font-size:12px;
}
.countdown-closed {
  color:#ff6469;
  text-transform:uppercase;
  font-size:12px;
}
@keyframes countdownPulse {
  0%,100% { opacity:1; }
  50% { opacity:.62; }
}


/* Schedule time edit control */
.schedule-edit {
  border:1px solid #2a76aa;
  border-radius:12px;
  background:#0b4f83;
  color:#fff;
  padding:3px 8px;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
}
.schedule-edit:hover {
  background:#1479be;
}


/* V6.1 prominent schedule editing controls */
.time-chip {
  gap:10px;
  padding:8px 10px;
}
.time-chip strong {
  min-width:48px;
  font-size:14px;
}
.btn.schedule-edit {
  min-height:auto;
  padding:5px 10px;
  border-radius:5px;
  border-color:#46b6ff;
  background:linear-gradient(#1598e8,#086bb7);
  font-size:12px;
  line-height:1.1;
  text-transform:none;
}
.btn.schedule-edit:hover {
  background:linear-gradient(#35adf2,#0b7dce);
}


/* Maintenance module */
.modal-backdrop {
  position:fixed;
  inset:0;
  z-index:100;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(0,0,0,.78);
}
.modal-card {
  width:min(560px,100%);
  max-height:90vh;
  overflow:auto;
}
.maintenance-job {
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:8px;
  padding:12px;
  border:1px solid #16476e;
  border-radius:6px;
  background:#06213a;
  color:#fff;
  text-align:left;
  cursor:pointer;
}
.maintenance-job:hover,
.maintenance-job.selected {
  background:#0a3e69;
  border-color:#36a8ef;
}
.maintenance-job strong,
.maintenance-job small {
  display:block;
}
.maintenance-job small {
  color:#a9c0d4;
  margin-top:4px;
  text-transform:capitalize;
}
.maintenance-priority {
  min-height:auto;
  padding:5px 8px;
  pointer-events:none;
  text-transform:uppercase;
  font-size:10px;
}
.maintenance-update {
  border-left:3px solid #168ce0;
  padding:9px 12px;
  margin:8px 0;
  background:#04182b;
}
.maintenance-update span {
  float:right;
  color:#9fb6cb;
  font-size:11px;
}


/* Maintenance dashboard layout fix */
.span-5 { grid-column: span 5; }
.span-7 { grid-column: span 7; }

#maintenanceJobs {
  min-width: 0;
}

#maintenanceDetails {
  min-width: 0;
  font-size: 13px;
}

#maintenanceDetails .ride-item {
  padding: 16px;
}

#maintenanceDetails p {
  margin: 8px 0;
  line-height: 1.35;
}

#maintenanceDetails input,
#maintenanceDetails select,
#maintenanceDetails textarea {
  width: 100%;
}

#maintenanceDetails textarea {
  min-height: 110px;
}

#maintenanceDetails .btn {
  margin: 6px 6px 0 0;
}

.maintenance-job {
  min-height: 72px;
}

.maintenance-job > span:first-child {
  min-width: 0;
  flex: 1;
}

.maintenance-job strong,
.maintenance-job small {
  overflow-wrap: anywhere;
}

@media(max-width: 1100px) {
  .span-5,
  .span-7 {
    grid-column: span 12;
  }
}


/* Configurable public display notice */
.notice {
  overflow:hidden;
  white-space:nowrap;
  position:relative;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.notice-text {
  display:inline-block;
  font-weight:950;
  text-transform:uppercase;
  line-height:1.2;
}
.notice.scrolling {
  justify-content:flex-start;
}
.notice.scrolling .notice-text {
  min-width:max-content;
  padding-left:100%;
  animation:noticeScroll var(--notice-scroll-duration,18s) linear infinite;
}
@keyframes noticeScroll {
  from { transform:translateX(0); }
  to { transform:translateX(-100%); }
}
.notice-settings-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(180px,1fr));
  gap:12px;
  margin-top:14px;
}
.notice-checkbox {
  grid-column:1/-1;
  display:flex;
  align-items:center;
  gap:9px;
}
.notice-checkbox input {
  width:auto;
}
@media(max-width:700px) {
  .notice-settings-grid { grid-template-columns:1fr; }
}


/* Maintenance V2 */
.maint-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.maint-tab{border:1px solid #1c5b8d;border-radius:5px;background:#07355d;color:#fff;padding:10px 13px;font-weight:800;cursor:pointer}
.maint-tab.active{background:#0877cc;border-color:#4bb5ff}
.maint-panel{display:none}.maint-panel.active{display:block}
.maint-panel .card{min-width:0}
#jobDetails textarea{min-height:100px}
#assets,#plans,#parts,#engineers,#inspections,#jobs{max-height:68vh;overflow:auto;padding-right:4px}
.maintenance-job{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;padding:12px;border:1px solid #16476e;border-radius:6px;background:#06213a;color:#fff;text-align:left;cursor:pointer}
.maintenance-job:hover{background:#0a3e69}
.maintenance-job strong,.maintenance-job small{display:block}.maintenance-job small{color:#a9c0d4;margin-top:4px}


/* Engineer Console */
.engineer-page nav { display:none; }
.engineer-job-summary {
  background:#04182b;
  border:1px solid #16466e;
  border-radius:6px;
  padding:10px 13px;
  margin-bottom:14px;
}
.engineer-job-summary p { margin:6px 0; }
.engineer-action {
  margin:5px 5px 5px 0;
  min-width:125px;
}


/* Admin-controlled inspection checklists */
.template-item-row {
  display:grid;
  grid-template-columns:1fr auto auto;
  gap:8px;
  align-items:center;
  margin-bottom:8px;
}
.template-critical-label {
  display:flex;
  align-items:center;
  gap:6px;
  margin:0;
  white-space:nowrap;
}
.template-critical-label input {
  width:auto;
}
.template-remove {
  min-height:auto;
  padding:7px 10px;
}
.template-preview {
  margin:10px 0 0;
  padding-left:22px;
}
.template-preview li {
  margin:5px 0;
}
.critical-badge {
  display:inline-block;
  margin-left:7px;
  padding:3px 7px;
  border-radius:10px;
  background:#cf252b;
  color:#fff;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
}
.engineer-panel {
  display:none;
}
.engineer-panel.active {
  display:block;
}
.inspection-row {
  border:1px solid #16476e;
  border-radius:7px;
  background:#06213a;
  padding:12px;
  margin-bottom:10px;
}
.inspection-question {
  margin-bottom:10px;
}
.inspection-result-buttons {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:9px;
}
.inspection-choice {
  border:1px solid #245b82;
  border-radius:5px;
  background:#082945;
  color:#fff;
  padding:9px 16px;
  font-weight:850;
  cursor:pointer;
}
.inspection-choice.pass.selected {
  background:#169847;
  border-color:#43d176;
}
.inspection-choice.fail.selected {
  background:#cf252b;
  border-color:#ff666b;
}
.inspection-choice.na.selected {
  background:#6b7280;
  border-color:#aab0ba;
}
.inspection-item-note {
  width:100%;
}
@media(max-width:700px) {
  .template-item-row {
    grid-template-columns:1fr;
  }
}
