@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Mono:wght@400;700&display=swap');

/* RundownHQ admin system — SC Media Ready civic operations language */
:root {
  --sa-navy:#0A2D5C; --sa-deep:#062C56; --sa-gold:#C9A227; --sa-gold-light:#E8CB52;
  --sa-paper:#F4F7FA; --sa-surface:#FFFFFF; --sa-surface-2:#EDF2F7;
  --sa-line:#D7E0EA; --sa-line-strong:#B8C8D8; --sa-ink:#122A45; --sa-text:#18324F;
  --sa-text-2:#50657A; --sa-muted:#718397; --sa-hover:#F3F7FB;
  --sa-blue:var(--sa-navy); --sa-blue-light:#2B5886; --sa-green:#247A59;
  --sa-orange:#A66B18; --sa-red:#B64A48; --sa-yellow:var(--sa-gold-light); --sa-purple:#5C568C;
  --sa-shadow:0 8px 24px rgba(6,44,86,.08);
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--sa-paper)}
body{margin:0;background:var(--sa-paper);color:var(--sa-text);font-family:"DM Sans",ui-sans-serif,system-ui,sans-serif;font-size:14px;line-height:1.5}
button,input,select,textarea{font:inherit}
button,a{transition:color .18s,background-color .18s,border-color .18s,box-shadow .18s,transform .18s}
a{color:var(--sa-navy)}
:focus-visible{outline:3px solid rgba(201,162,39,.55);outline-offset:2px}

.header{height:64px;padding:0 28px;background:var(--sa-surface)!important;color:var(--sa-navy);border-bottom:1px solid var(--sa-line)!important;box-shadow:0 2px 12px rgba(6,44,86,.06);display:flex;align-items:center;position:sticky;top:0;z-index:100}
.logo-wrap{display:flex;align-items:center;gap:9px;text-decoration:none;margin-right:24px}
.logo-icon{width:31px;height:31px;border-radius:3px;background:var(--sa-navy)!important;color:#fff!important;display:grid;place-items:center;font-size:13px;font-weight:800;border-bottom:3px solid var(--sa-gold)}
.logo-text{font-size:15px;font-weight:800;color:var(--sa-navy)!important;letter-spacing:-.02em}
.logo-badge{font-size:9px!important;letter-spacing:.08em;background:#F7EEC9!important;color:var(--sa-navy)!important;border:1px solid #E3CB73!important;border-radius:2px!important;padding:2px 6px!important;text-transform:uppercase}
.nav-divider{height:24px;width:1px;background:var(--sa-line)!important;margin-right:14px}
.nav-links{display:flex;gap:2px;align-items:center;flex:1;overflow-x:auto;scrollbar-width:none}
.nav-links::-webkit-scrollbar{display:none}
.nav-links a{color:var(--sa-text-2)!important;text-decoration:none;padding:8px 10px;border-radius:3px;font-size:12px;font-weight:600;white-space:nowrap}
.nav-links a:hover,.nav-links a.active{background:#EAF1F8!important;color:var(--sa-navy)!important}
.nav-links a.active{box-shadow:inset 0 -2px var(--sa-gold)}
.header-right{display:flex;align-items:center;gap:9px;margin-left:14px}
.user-pill{display:flex;align-items:center;gap:8px;max-width:240px;overflow:hidden;background:var(--sa-surface-2)!important;border:1px solid var(--sa-line)!important;border-radius:3px;padding:5px 10px;color:var(--sa-text-2)!important;font-size:11px}
#userDisplay{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-avatar{width:23px;height:23px;border-radius:50%;background:var(--sa-navy)!important;color:#fff!important;display:grid;place-items:center;font-size:10px;font-weight:700}
.logout-btn{border:1px solid var(--sa-line-strong)!important;background:#fff!important;color:var(--sa-navy)!important;border-radius:3px;padding:6px 11px;font-size:11px;font-weight:700;cursor:pointer}
.logout-btn:hover{background:var(--sa-navy)!important;color:#fff!important;border-color:var(--sa-navy)!important}

.container{max-width:1400px;margin:0 auto;padding:30px 28px 64px}
.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:22px;padding-bottom:17px;border-bottom:1px solid var(--sa-line)}
.page-title,.page-header h1{margin:0;color:var(--sa-navy)!important;font-size:22px;font-weight:800;letter-spacing:-.035em}
.page-subtitle,.page-header p{margin:4px 0 0;color:var(--sa-text-2)!important;font-size:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:3px;padding:8px 13px;cursor:pointer;font-size:12px;font-weight:700;text-decoration:none;line-height:1.35}
.btn:hover:not(:disabled){transform:translateY(-1px)}
.btn:disabled{opacity:.48;cursor:not-allowed}
.btn-primary,.btn-success{background:var(--sa-navy)!important;color:#fff!important;border-color:var(--sa-navy)!important}
.btn-primary:hover:not(:disabled),.btn-success:hover:not(:disabled){background:var(--sa-deep)!important}
.btn-secondary{background:#fff!important;color:var(--sa-navy)!important;border-color:var(--sa-line-strong)!important}
.btn-secondary:hover:not(:disabled),.btn-outline:hover:not(:disabled){background:#EAF1F8!important;border-color:var(--sa-navy)!important}
.btn-outline{background:#fff!important;color:var(--sa-navy)!important;border-color:var(--sa-navy)!important}
.btn-warning{background:#F7EEC9!important;color:#6D5110!important;border-color:#E3CB73!important}
.btn-danger{background:#FBEAE8!important;color:var(--sa-red)!important;border-color:#E8BDB8!important}
.btn-sm{padding:5px 9px;font-size:11px}.btn-lg{padding:11px 17px}

.card,.panel,.companies-table,.partners-table-container,.registrations-table,.controls,.controls-bar,.page-header{background:var(--sa-surface)!important;border:1px solid var(--sa-line)!important;border-radius:4px;box-shadow:var(--sa-shadow)}
.card-header,.panel-header{padding:14px 18px;border-bottom:1px solid var(--sa-line)!important;background:var(--sa-surface)!important}
.card-title,.panel-title{color:var(--sa-navy)!important;font-size:13px;font-weight:800}
.card-body{padding:18px}
.controls,.controls-bar{padding:12px 14px;margin-bottom:17px;box-shadow:none}
.controls-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.search-box{flex:1;min-width:210px}.search-box input,.filter-group select{width:100%;padding:8px 10px;background:#fff!important;color:var(--sa-ink)!important;border:1px solid var(--sa-line-strong)!important;border-radius:3px}
.filter-group{display:flex;gap:6px;flex-wrap:wrap}.filter-group select{width:auto;min-width:120px}
.search-box input:focus,.form-control:focus,.form-input:focus,.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:3px solid rgba(201,162,39,.25)!important;border-color:var(--sa-gold)!important}
.filter-btn{background:#fff!important;color:var(--sa-text-2)!important;border:1px solid var(--sa-line)!important;border-radius:3px;padding:6px 11px;font-size:11px;font-weight:700}.filter-btn.active,.filter-btn:hover{background:var(--sa-navy)!important;color:#fff!important;border-color:var(--sa-navy)!important}

table{width:100%;border-collapse:collapse}th{padding:10px 13px;text-align:left;background:#EAF1F8!important;color:var(--sa-text-2)!important;border-bottom:1px solid var(--sa-line)!important;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;white-space:nowrap}td{padding:11px 13px;color:var(--sa-text-2)!important;border-bottom:1px solid var(--sa-line)!important;font-size:12px;vertical-align:middle}tr:last-child td{border-bottom:0}tr:hover td{background:#F6F9FC!important}tr.selected td{background:#F7EEC9!important}
.table-wrapper,.table-wrap{overflow:auto}.companies-table,.partners-table-container,.registrations-table{overflow:auto}
.badge,.status-badge,.status{display:inline-flex;align-items:center;border-radius:3px;padding:3px 7px;font-size:10px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}
.badge-feature,.badge-standard{background:#EAF1F8!important;color:var(--sa-navy)!important}.badge-enhancement,.badge-active,.badge-approved,.badge-premium{background:#E4F2EB!important;color:var(--sa-green)!important}.badge-fix,.badge-pending{background:#F7EEC9!important;color:#755A12!important}.badge-draft,.badge-inactive,.badge-rejected{background:#EEF1F4!important;color:var(--sa-muted)!important}.badge-enterprise{background:#ECEBF6!important;color:var(--sa-purple)!important}
.status.pending,.status.submitted{background:#F7EEC9!important;color:#755A12!important}.status.accepted,.status.active,.status.verified,.status.participating{background:#E4F2EB!important;color:var(--sa-green)!important}.status.rejected,.status.suspended{background:#FBEAE8!important;color:var(--sa-red)!important}

.form-group{margin-bottom:14px}.form-label,.form-group label{display:block;margin-bottom:5px;color:var(--sa-text-2)!important;font-size:11px;font-weight:800}
.form-control,.form-input,.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px 10px;background:#fff!important;color:var(--sa-ink)!important;border:1px solid var(--sa-line-strong)!important;border-radius:3px;font-size:12px}
.form-control::placeholder,.form-input::placeholder{color:#94A3B3}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--sa-line)}

.stats-grid,.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:18px}.stat-card,.stat{background:var(--sa-surface)!important;border:1px solid var(--sa-line)!important;border-top:3px solid var(--sa-gold)!important;border-radius:4px;padding:15px 16px;box-shadow:var(--sa-shadow)}.stat-card:hover{border-top-color:var(--sa-navy)!important}.stat-label,.stat span{color:var(--sa-text-2)!important;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.stat-number,.stat-value,.stat b{display:block;color:var(--sa-navy)!important;font-size:26px;font-weight:800;line-height:1.1;margin-top:7px}
.loading,.loading-state{padding:42px;text-align:center;color:var(--sa-muted)!important}.empty-state,.empty{padding:42px 20px;text-align:center;color:var(--sa-muted)!important}.empty-title{color:var(--sa-navy)!important}
.alert,.message.success,.message.error,.notice,.error{padding:10px 13px;border-radius:3px;margin-bottom:13px;font-size:12px}.alert-success,.message.success,.notice{background:#E4F2EB!important;color:var(--sa-green)!important;border:1px solid #BBDCC8}.alert-danger,.message.error,.error{background:#FBEAE8!important;color:var(--sa-red)!important;border:1px solid #E8BDB8}.alert-info{background:#EAF1F8!important;color:var(--sa-navy)!important;border:1px solid #C7D8E8}.alert-warning{background:#F7EEC9!important;color:#755A12!important;border:1px solid #E3CB73}

 /* Modal primitives are intentionally split: district pages use .modal-overlay,
    partner review uses the modal element as its overlay. Never style the panel
    and scrim with the same generic selector. */
 .modal-overlay{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(6,44,86,.58);z-index:1000}
 .modal-overlay.active{display:flex}
 .modal-overlay>.modal,.modal-content,.dialog{background:var(--sa-surface);border:1px solid var(--sa-line);border-radius:5px;box-shadow:0 24px 70px rgba(6,44,86,.28);color:var(--sa-text);width:min(680px,100%);max-height:calc(100dvh - 40px);overflow:auto}
 .modal-overlay>.modal{padding:24px}
 .modal-lg{width:min(900px,100%)}
 #approveModal.modal,#rejectModal.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(6,44,86,.58);z-index:1000}
 #approveModal.modal.active,#rejectModal.modal.active{display:flex}
 #approveModal.modal>.modal-content,#rejectModal.modal>.modal-content{padding:24px;max-width:520px}
 .modal-header,.modal-footer{border-color:var(--sa-line)!important}.modal-title,.modal-header h2{color:var(--sa-navy)!important}.modal-body{color:var(--sa-text)}.close,.close-btn,.modal-close{color:var(--sa-muted)!important}.close:hover,.close-btn:hover,.modal-close:hover{color:var(--sa-navy)!important}
.pagination{display:flex;justify-content:center;align-items:center;gap:7px;padding:14px;color:var(--sa-text-2)}.pagination button{background:#fff!important;color:var(--sa-navy)!important;border:1px solid var(--sa-line)!important;border-radius:3px;padding:5px 10px}.pagination button.active,.pagination button:hover:not(:disabled){background:var(--sa-navy)!important;color:#fff!important}
.action-btn{border-radius:3px;font-size:10px;font-weight:800;padding:6px 9px}.action-btn.approve{background:#E4F2EB;color:var(--sa-green)}.action-btn.reject{background:#FBEAE8;color:var(--sa-red)}.action-btn.deactivate{background:#F7EEC9;color:#755A12}.action-btn.reset{background:#EEF1F4;color:var(--sa-text-2)}
.error-bar{font-size:12px!important;background:#FBEAE8!important;color:var(--sa-red)!important;border:1px solid #E8BDB8!important}
/* Page-specific surfaces retain their layout, but inherit the civic system. */
.district-card,.plan-card{background:var(--sa-surface)!important;border-color:var(--sa-line)!important;border-radius:4px!important;box-shadow:var(--sa-shadow)}
.district-card-header,.plan-header{background:#EAF1F8!important;border-color:var(--sa-line)!important}
.district-name,.plan-name,.district-card h3{color:var(--sa-navy)!important}
.district-code,.plan-description,.plan-price-unit,.plan-limit-label,.plan-features h4,.company-name{color:var(--sa-text-2)!important}
.plan-price,.plan-limit-value{color:var(--sa-navy)!important}
.school-item,.admin-item,.publish-item{background:var(--sa-hover)!important;border-color:var(--sa-line)!important}
.info-banner{background:#EAF1F8!important;border-color:#C7D8E8!important}.info-text h4{color:var(--sa-navy)!important}
.sync-section,.publish-notice{background:#F7EEC9!important;border-color:#E3CB73!important}.sync-title{color:#755A12!important}
.tab-btn,.config-tab{color:var(--sa-text-2)!important}.tab-btn.active,.config-tab.active{color:var(--sa-navy)!important;border-color:var(--sa-gold)!important}
.ai-blue,.ai-teal,.activity-dot{background:#EAF1F8!important;color:var(--sa-navy)!important}.ai-green{background:#E4F2EB!important;color:var(--sa-green)!important}.ai-orange{background:#F7EEC9!important;color:#755A12!important}.ai-purple{background:#ECEBF6!important;color:var(--sa-purple)!important}.ai-red{background:#FBEAE8!important;color:var(--sa-red)!important}
@media(max-width:760px){.header{height:auto;min-height:64px;padding:10px 16px;flex-wrap:wrap;gap:8px}.logo-wrap{margin-right:auto}.nav-divider{display:none}.nav-links{order:3;flex-basis:100%;padding-bottom:2px}.header-right{margin-left:0}.user-pill{max-width:130px}.container{padding:22px 15px 45px}.page-header{align-items:flex-start}.form-row{grid-template-columns:1fr}.stats-grid,.stats-row{grid-template-columns:repeat(2,1fr)}.modal-content{width:calc(100% - 28px)!important}.dashboard-grid,.bottom-row{grid-template-columns:1fr!important}}
@media(max-width:430px){.header-right{width:100%;justify-content:space-between}.user-pill{flex:1;max-width:none}.stats-grid,.stats-row{grid-template-columns:1fr 1fr}.btn{padding:8px 10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
/* Dense operations surfaces */
.page-header{position:relative;overflow:hidden}
.page-header:after{content:"";position:absolute;right:0;bottom:-1px;width:110px;height:3px;background:var(--sa-gold)}
.companies-table,.partners-table-container{border-top:3px solid var(--sa-navy)}
.districts-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.district-card{box-shadow:0 4px 14px rgba(6,44,86,.06)}
.district-card-actions .btn{flex:0 0 auto}
.company-avatar,.user-avatar,.logo-icon{font-family:"Space Mono",monospace}
.actions{flex-wrap:wrap}
@media(max-width:760px){
  .companies-table,.partners-table-container{margin-inline:-15px;border-left:0;border-right:0;border-radius:0}
  table{min-width:760px}
  .controls-row{align-items:stretch}
  .search-box{flex-basis:100%}
  .filter-group{flex:1}.filter-group select{flex:1}
  .districts-grid{grid-template-columns:1fr}
}
@media(max-width:430px){
  .school-item,.admin-item{align-items:flex-start;flex-direction:column;gap:10px}
  .school-item>div:last-child,.admin-item>div:last-child{width:100%;flex-wrap:wrap}
  .district-card-actions{flex-wrap:wrap}
}
 /* District operations */
 .districts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;margin-bottom:18px}
 .district-card{overflow:hidden;transition:border-color .18s,transform .18s}
 .district-card:hover{border-color:var(--sa-line-strong);transform:translateY(-1px)}
 .district-card-header{padding:14px 16px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
 .district-card-body{padding:15px 16px}
 .district-badge{background:var(--sa-surface);color:var(--sa-text-2);border:1px solid var(--sa-line);border-radius:3px;padding:3px 7px;font-size:10px;font-weight:800;text-transform:uppercase;white-space:nowrap}
 .district-stats{display:flex;gap:28px;padding:11px 0;border-top:1px solid var(--sa-line);margin-bottom:12px}
 .stat-item{text-align:left}.stat-number{font-size:21px;color:var(--sa-navy);font-weight:800;line-height:1.1}.stat-label{font-size:10px;color:var(--sa-muted);text-transform:uppercase;letter-spacing:.06em}
 .district-card-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}
 .section-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:9px;border-bottom:1px solid var(--sa-line)}
 .section-title{font-weight:800;color:var(--sa-navy);font-size:12px}
 .school-list,.admin-list{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto}
 .school-item,.admin-item{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:9px 11px;border-radius:3px}
 .school-name{font-weight:700;color:var(--sa-text);font-size:12px}.school-plan{font-size:11px;color:var(--sa-muted)}
 .lock-toggle{display:flex;align-items:center;gap:6px;white-space:nowrap}
 .toggle-switch{position:relative;display:inline-block;width:38px;height:21px}.toggle-switch input{opacity:0;width:0;height:0}
 .slider{position:absolute;inset:0;cursor:pointer;background:var(--sa-line-strong);border-radius:20px;transition:background-color .18s}
 .slider:before{content:"";position:absolute;width:15px;height:15px;left:3px;bottom:3px;background:var(--sa-surface);border-radius:50%;transition:transform .18s}
 .toggle-switch input:checked+.slider{background:var(--sa-navy)}.toggle-switch input:checked+.slider:before{transform:translateX(17px)}
 .tab-nav{display:flex;border-bottom:1px solid var(--sa-line);margin-bottom:18px;overflow:auto}
 .tab-btn{padding:8px 14px;border:0;background:none;cursor:pointer;color:var(--sa-text-2);font-size:12px;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
 .tab-btn.active{color:var(--sa-navy);border-bottom-color:var(--sa-gold);font-weight:800}.tab-content{display:none}.tab-content.active{display:block}
 .partner-details{font-size:12px;line-height:1.7}.partner-details dt{font-weight:800;color:var(--sa-text-2);margin-top:7px}.partner-details dd{color:var(--sa-text);margin:0}
 .modal-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:15px;border-top:1px solid var(--sa-line)}
 .form-group textarea{resize:vertical;min-height:80px}
 @media(max-width:760px){
   .districts-grid{grid-template-columns:1fr}
   .modal-overlay,#approveModal.modal,#rejectModal.modal{padding:12px}
   .modal-overlay>.modal,#approveModal.modal>.modal-content,#rejectModal.modal>.modal-content{padding:18px;max-height:calc(100dvh - 24px)}
   .section-header{align-items:flex-start;flex-direction:column}
   .school-item,.admin-item{align-items:flex-start;flex-direction:column;gap:10px}
   .school-item>div:last-child,.admin-item>div:last-child{width:100%;display:flex;flex-wrap:wrap}
   .partners-table-container{overflow-x:auto}
 }