*{box-sizing:border-box}
body{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  color:#eef2f7;
  background-color:#080a0e;
  background-image:
    linear-gradient(135deg, rgba(255,255,255,.10) 0 10%, transparent 10% 50%, rgba(0,0,0,.22) 50% 60%, transparent 60%),
    linear-gradient(315deg, rgba(255,255,255,.08) 0 10%, transparent 10% 50%, rgba(0,0,0,.20) 50% 60%, transparent 60%),
    radial-gradient(circle at top center, rgba(80,88,96,.35), transparent 38%),
    linear-gradient(180deg,#0b0d12,#050608);
  background-size:42px 42px,42px 42px,100% 100%,100% 100%;
  background-attachment:fixed;
}
body:before{content:"";position:fixed;inset:0;background:rgba(3,5,8,.76);pointer-events:none;z-index:-1}.nav{display:flex;justify-content:space-between;align-items:center;padding:12px 28px;background:linear-gradient(180deg,#151d2b,#0d121b);border-bottom:1px solid #455264;box-shadow:0 2px 12px rgba(0,0,0,.45);position:sticky;top:0;z-index:2}.brand{font-weight:700;display:flex;align-items:center;gap:10px}.brand img{height:40px}.links a{color:#dbe7ff;text-decoration:none;margin-left:16px}.links a:hover{color:#fff;text-decoration:underline}.container{max-width:1200px;margin:0 auto;padding:24px}.hero{display:flex;gap:24px;align-items:center;background:linear-gradient(135deg,rgba(41,51,68,.94),rgba(12,16,24,.96));border:1px solid #516174;border-radius:24px;padding:24px;margin-bottom:22px;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 10px 30px rgba(0,0,0,.25)}.hero img{height:160px}.hero.fire{background:linear-gradient(135deg,rgba(60,20,20,.95),rgba(12,16,24,.96))}h1,h2{margin-top:0}.primary,button{background:linear-gradient(180deg,#4293ff,#236bd1);color:white;border:0;padding:11px 16px;border-radius:10px;text-decoration:none;cursor:pointer;font-weight:700;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}.primary:hover,button:hover{filter:brightness(1.08)}.danger{background:linear-gradient(180deg,#ef5656,#b92b2b)}.secondary{background:linear-gradient(180deg,#344257,#222d3d)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stats div,.card{background:linear-gradient(180deg,rgba(24,32,47,.96),rgba(18,24,36,.96));border:1px solid #455264;border-radius:18px;padding:18px;box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 8px 24px rgba(0,0,0,.22)}.stats strong{font-size:34px;display:block}.stats span{color:#c0cadb}.card{margin-bottom:20px}.narrow{max-width:780px;margin-left:auto;margin-right:auto}table{width:100%;border-collapse:collapse}th,td{padding:10px;border-bottom:1px solid #344255;text-align:left}th{color:#ffffff;background:rgba(255,255,255,.03)}tr:hover{background:#1a2333}input,select,textarea{width:100%;background:#0d121b;border:1px solid #465872;color:#eef2f7;padding:10px;border-radius:10px;margin:6px 0 12px}input:focus,select:focus,textarea:focus{outline:2px solid rgba(66,147,255,.35)}textarea{resize:vertical}.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-form .full,.grid-form textarea{grid-column:1/-1}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.pillrow{display:flex;gap:10px;flex-wrap:wrap}.pillrow span{background:#243044;border-radius:99px;padding:7px 12px}.message{padding:12px;border-radius:14px;margin:10px 0;background:#0d121b;border-left:4px solid #2f80ed}.message.internal{border-left-color:#f59f00;background:#21180b}.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:#050608}.login-card{width:360px;background:linear-gradient(180deg,#1b2433,#111722);border:1px solid #516174;border-radius:24px;padding:28px;text-align:center;box-shadow:0 18px 50px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.08)}.login-logo{height:170px;object-fit:contain}.card label{display:block;color:#c0cadb;font-size:13px;margin-bottom:2px}.card a.primary{display:inline-block}.muted{color:#a9b4c7}.small{font-size:12px}.clean-list{padding-left:20px}.stacked-form{display:block}.checkbox-panel{background:#0d121b;border:1px solid #465872;border-radius:12px;padding:12px;margin:6px 0 12px}.compact-panel{padding:10px}.checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px}.checkbox-grid.small-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.checkbox-grid label,.permission-category label{display:flex;align-items:flex-start;gap:8px;color:#eef2f7;font-size:13px}.checkbox-grid input,.permission-category input{width:auto;margin:2px 0 0}.permission-builder{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:12px 0}.permission-category{background:#0d121b;border:1px solid #465872;border-radius:14px;padding:12px}.permission-category h3{margin:0 0 10px;color:#dbe7ff}.permission-category label{padding:7px 0;border-bottom:1px solid rgba(70,88,114,.45)}.permission-category label:last-child{border-bottom:0}.permission-category span{font-weight:700;display:block}.permission-category small{display:block;color:#a9b4c7;margin-top:2px}.role-editor{background:#0d121b;border:1px solid #465872;border-radius:14px;margin:12px 0;padding:10px}.role-editor summary{cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center}.role-editor form{margin-top:14px}.user-editor-list,.admin-list{display:grid;gap:12px}.admin-row{display:grid;grid-template-columns:1fr 1.4fr .5fr auto;gap:10px;align-items:center;background:#0d121b;border:1px solid #465872;border-radius:14px;padding:12px}.inline-delete{margin:-8px 0 8px 12px}.inline-delete button{padding:8px 12px}.user-detail form:last-child,.role-editor form:last-child{margin-top:10px}.user-editor{display:grid;grid-template-columns:1.2fr .8fr .6fr 1.5fr auto;gap:10px;align-items:start;background:#0d121b;border:1px solid #465872;border-radius:14px;padding:12px}.user-editor select,.user-editor input,.admin-row input,.admin-row select{margin:0}.user-editor button{white-space:nowrap}@media(max-width:1000px){.permission-builder,.checkbox-grid,.checkbox-grid.small-grid,.user-editor,.admin-row{grid-template-columns:1fr}.role-editor summary{display:block}.user-editor button{width:100%}}@media(max-width:800px){.stats,.two-col,.grid-form{grid-template-columns:1fr}.hero{flex-direction:column;text-align:center}.links a{display:inline-block;margin:6px}.nav{display:block}.container{padding:14px}table{font-size:13px}}

/* Update: tighter report/admin controls */
.primary.tiny, a.tiny { padding: 4px 8px; font-size: 12px; border-radius: 8px; display: inline-block; }
table td, table th { vertical-align: top; }
.muted { color: #b8c3d6; }
.small { font-size: 12px; }
#firewatch-settings label, .grid-form label { display: block; margin-bottom: 6px; color: #cbd5e1; font-weight: 700; }

/* Ticket attachments, filters, and internal notes update */
.filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.filter-grid .full{grid-column:1/-1}.filter-actions{display:flex;gap:10px;align-items:center}.button-link{color:#fff;text-decoration:none;border-radius:10px;padding:11px 16px;font-weight:700;display:inline-block}.inline-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.inline-form input,.inline-form select{margin:0}.file-input{padding:9px;background:#0d121b}.preline{white-space:pre-wrap}.attachment-list{margin-top:14px}.attachment-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.attachment-chip{display:inline-block;background:#243044;color:#eaf2ff;text-decoration:none;border:1px solid #465872;border-radius:999px;padding:7px 11px;margin:4px 6px 4px 0;font-size:13px}.attachment-chip:hover{background:#30415d}.internal-card{border-color:#a66a00;background:linear-gradient(180deg,rgba(34,24,13,.96),rgba(18,24,36,.96))}.message-form{margin-top:16px;border-top:1px solid #344255;padding-top:16px}.danger-text{color:#ffb4b4;background:rgba(185,43,43,.18);border:1px solid rgba(239,86,86,.45);padding:10px;border-radius:10px}@media(max-width:800px){.filter-grid,.inline-form{grid-template-columns:1fr}.filter-actions{display:block}.button-link{margin-top:8px;width:100%;text-align:center}}

/* Saved dashboard filters and PM expansion */
.multi-select{min-height:142px}
.checkbox-line{display:flex!important;align-items:center;gap:8px;color:#eef2f7!important;font-size:14px!important}.checkbox-line input{width:auto;margin:0}.role-editor .grid-form{margin-top:12px}.role-editor form button{margin-top:6px}.preline.small{display:block;margin-top:6px;line-height:1.35}.card table form{margin:6px 0}.card table textarea{min-height:72px}.card table select{min-width:170px}.card table .attachment-chip{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* PM clarity and PM report update */
.help-text{display:block;color:#a9b4c7;font-size:12px;line-height:1.35;margin:-6px 0 10px}.compact-stats{grid-template-columns:repeat(4,1fr);margin-top:12px}.report-actions{margin:12px 0 14px}.grid-form div label{font-weight:700;color:#cbd5e1}
@media(max-width:800px){.compact-stats{grid-template-columns:1fr}}

.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.notice-card{border-color:#2f855a;background:linear-gradient(135deg,rgba(20,83,45,.35),rgba(15,23,42,.9))}
.report-actions{margin:.75rem 0 1rem}


/* Ticket detail polish */
.submitter-summary{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;background:#0d121b;border:1px solid #465872;border-radius:14px;padding:14px;margin:12px 0 18px}
.submitter-summary strong,.submitter-summary span{display:block}
.ticket-hero{display:flex;justify-content:space-between;gap:20px;align-items:center}
.ticket-hero h1{font-size:34px;margin:2px 0}
.ticket-hero h2{font-size:20px;color:#dbe7ff;margin:0}
.ticket-status-large{font-size:22px;font-weight:800;background:#243044;border:1px solid #516174;border-radius:18px;padding:18px 22px;white-space:nowrap}
.ticket-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.ticket-main{min-width:0}
.ticket-side{position:sticky;top:88px}
.ticket-meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}
.ticket-meta-grid div{background:#0d121b;border:1px solid #3a4b63;border-radius:12px;padding:12px}
.ticket-meta-grid div.wide{grid-column:span 2}
.ticket-meta-grid span{display:block;color:#a9b4c7;font-size:12px;margin-bottom:5px}
.ticket-meta-grid strong{display:block;color:#fff;word-break:break-word}
.request-box{background:#0d121b;border:1px solid #3a4b63;border-radius:14px;padding:16px;margin-top:12px}
.timeline{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.message-bubble{background:#0d121b;border:1px solid #3a4b63;border-left:5px solid #2f80ed;border-radius:16px;padding:14px}
.message-bubble.internal{border-left-color:#f59f00;background:#21180b}
.message-bubble.email-source{border-left-color:#22c55e}
.message-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}
.message-head span{color:#a9b4c7;font-size:12px;text-align:right}
.message-body{color:#eef2f7}
.attachment-grid{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.notice-card{border-color:#2f80ed}
.warning-text{color:#fbbf24;margin-left:8px}
.soft-divider{border:0;border-top:1px solid #344255;margin:18px 0}
@media(max-width:900px){.ticket-layout{grid-template-columns:1fr}.ticket-side{position:static}.ticket-meta-grid{grid-template-columns:1fr 1fr}.ticket-meta-grid div.wide{grid-column:span 2}.ticket-hero{display:block}.ticket-status-large{display:inline-block;margin-top:12px}}
@media(max-width:620px){.ticket-meta-grid{grid-template-columns:1fr}.ticket-meta-grid div.wide{grid-column:span 1}.message-head{display:block}.submitter-summary{display:block}}


/* Dashboard charts and weather */
.dashboard-hero{justify-content:space-between}
.weather-card{min-width:220px;background:#0d121b;border:1px solid #465872;border-radius:16px;padding:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.weather-card strong{display:block;font-size:30px;color:#fff}
.weather-card span,.weather-card small{display:block;color:#c0cadb}
.chart-row{margin-bottom:20px}
.bar-row{display:grid;grid-template-columns:140px 1fr 42px;gap:10px;align-items:center;margin:10px 0}
.bar-row span{color:#dbe7ff;font-size:13px}
.bar-row div{height:12px;background:#0d121b;border:1px solid #344255;border-radius:99px;overflow:hidden}
.bar-row i{display:block;height:100%;background:linear-gradient(90deg,#2f80ed,#60a5fa);border-radius:99px}
.bar-row b{text-align:right}

/* Contacts and schedule */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.contact-card{background:#0d121b;border:1px solid #465872;border-radius:16px;padding:16px}
.contact-card h3{margin:8px 0 10px}
.contact-type{display:inline-block;background:#243044;border-radius:99px;padding:5px 10px;color:#dbe7ff;font-size:12px}
.contact-row{grid-template-columns:1.1fr 1.1fr .9fr 1.2fr .8fr 1.3fr .7fr auto!important}
.compact-stats.stats{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.dashboard-hero{display:block}.weather-card{margin-top:14px}.bar-row{grid-template-columns:1fr}.bar-row b{text-align:left}.contact-row{grid-template-columns:1fr!important}}


/* Schedule redesign */
.weekday-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:8px;margin-top:10px}
.weekday-grid label{background:#0d121b;border:1px solid #3a4b63;border-radius:10px;padding:10px}
.schedule-day{border-top:1px solid #344255;padding-top:16px;margin-top:16px}
.schedule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.shift-card{background:#0d121b;border:1px solid #465872;border-radius:16px;padding:14px}
.shift-card strong,.shift-card span{display:block}
.shift-card span{color:#dbe7ff;font-size:18px;font-weight:700;margin:6px 0}
.shift-card p{color:#c0cadb}


/* Weekly engineer schedule board */
.weekly-board{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:14px;
}
.weekly-day{
  background:#0d121b;
  border:1px solid #465872;
  border-radius:16px;
  padding:14px;
  min-height:160px;
}
.weekly-day h3{
  margin:0 0 12px 0;
  border-bottom:1px solid #344255;
  padding-bottom:8px;
}
.weekday-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(135px,1fr));
  gap:8px;
  margin-top:10px;
}
.weekday-grid label{
  background:#0d121b;
  border:1px solid #3a4b63;
  border-radius:10px;
  padding:10px;
}
.schedule-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:12px;
}
.shift-card{
  background:#0d121b;
  border:1px solid #465872;
  border-radius:16px;
  padding:14px;
}
.shift-card strong,.shift-card span,.shift-card small{
  display:block;
}
.shift-card span{
  color:#dbe7ff;
  font-size:18px;
  font-weight:700;
  margin:6px 0;
}
.shift-card p{
  color:#c0cadb;
}
.active-shift{
  border-color:#22c55e;
  box-shadow:0 0 0 1px rgba(34,197,94,.25), 0 0 22px rgba(34,197,94,.12);
}
.mini-shift{
  margin-bottom:10px;
}
.mini-shift span{
  font-size:14px;
}

.contact-card a{color:#9cc7ff;text-decoration:none}.contact-card a:hover{text-decoration:underline}

.dashboard-pagination{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:10px 0 14px;color:#c0cadb}
.dashboard-pagination div{display:flex;gap:8px}
.backup-actions{display:grid;gap:16px}
.success-text{color:#86efac;font-weight:700}

.ticket-terminal-notice{border:1px solid #f59e0b;background:rgba(245,158,11,.12);border-radius:14px;padding:14px;margin-top:16px}
.ticket-terminal-notice h3{margin-top:0;color:#fde68a}
