*{box-sizing:border-box;margin:0;padding:0}
body{background:#030712;color:#F9FAFB;font-family:system-ui,sans-serif;min-height:100vh}
abbr[title]{text-decoration:underline dotted #6B7280;text-underline-offset:2px;cursor:help;text-decoration-skip-ink:none}

/* ─── APP ─── */
#app{display:block}
.sticky-nav{position:sticky;top:0;z-index:100}
.header{background:linear-gradient(135deg,#030712 0%,#0F172A 100%);border-bottom:1px solid #1F2937;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;position:relative}
.header::before{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Ccircle cx='0' cy='0' r='40' fill='none' stroke='%23D4A017' stroke-width='.4' opacity='.12'/%3E%3Ccircle cx='80' cy='80' r='40' fill='none' stroke='%23D4A017' stroke-width='.4' opacity='.12'/%3E%3Ccircle cx='80' cy='0' r='40' fill='none' stroke='%2393C5FD' stroke-width='.3' opacity='.08'/%3E%3Ccircle cx='0' cy='80' r='40' fill='none' stroke='%2393C5FD' stroke-width='.3' opacity='.08'/%3E%3Cline x1='0' y1='40' x2='80' y2='40' stroke='%23D4A017' stroke-width='.3' opacity='.07'/%3E%3Cline x1='40' y1='0' x2='40' y2='80' stroke='%23D4A017' stroke-width='.3' opacity='.07'/%3E%3C/svg%3E");background-size:80px 80px;pointer-events:none;z-index:0}
.header>*{position:relative;z-index:1}
.brand{font-size:1.5rem;font-weight:900;letter-spacing:-1px;color:#D4A017}
.subtitle{color:#93C5FD;font-size:.75rem;font-weight:600}
.dash-footer{padding:12px 16px;color:#4B5563;font-size:.7rem;text-align:center;border-top:1px solid #111827}
@media(max-width:768px){
  .header{padding:8px 12px;gap:4px}
  .brand{font-size:1.1rem}
}

/* ─── TABS ─── */
.tabs{display:flex;background:#111827;border-bottom:1px solid #1F2937;overflow:visible}
.tabs-scroll{display:flex;overflow-x:auto;flex:1;padding:0 8px;gap:2px;-webkit-overflow-scrolling:touch}
.admin-nav{display:flex;background:#111827;border-bottom:1px solid #1F2937;padding:0 8px;gap:2px;-webkit-overflow-scrolling:touch;overflow-x:auto}
.tab-btn{background:none;border:none;color:#9CA3AF;padding:10px 14px;font-size:.78rem;font-weight:600;cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;transition:all .2s}
.tab-btn:hover{color:#F9FAFB}
.tab-btn.active{color:#D4A017;border-bottom-color:#D4A017}
.tab-panel{display:none;padding:16px}
.tab-panel.active{display:block}
/* ─── NAV USER MENU ─── */
.nav-user-menu{position:relative;display:flex;align-items:center;margin-left:auto}
.nav-user-trigger{display:flex;align-items:center;gap:7px;background:none;border:none;cursor:pointer;padding:4px 0;color:inherit}
.nav-user-trigger:hover .nav-user-name{color:#F9FAFB}
.nav-user-avatar{width:26px;height:26px;border-radius:50%;border:1px solid #374151}
.nav-user-name{color:#E5E7EB;font-size:.75rem;font-weight:600;white-space:nowrap}
.nav-user-caret{color:#6B7280;transition:transform .2s;flex-shrink:0}
.nav-user-menu.open .nav-user-caret{transform:rotate(180deg)}
.nav-user-dropdown{display:none;position:absolute;top:calc(100% + 6px);right:0;min-width:130px;background:#1F2937;border:1px solid #374151;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.5);z-index:200;overflow:hidden}
.nav-user-menu.open .nav-user-dropdown{display:block}
.nav-user-dropdown-item{display:block;padding:10px 14px;color:#D1D5DB;font-size:.78rem;text-decoration:none;white-space:nowrap}
.nav-user-dropdown-item:hover{background:#374151;color:#F9FAFB}
/* ─── HAMBURGER (mobile only) ─── */
.hamburger-btn{display:none;align-items:center;justify-content:space-between;width:100%;padding:12px 16px;background:#111827;border:none;border-bottom:1px solid #1F2937;color:#D4A017;font-size:.85rem;font-weight:700;cursor:pointer;text-align:left}
.hamburger-btn svg{transition:transform .2s}
.hamburger-btn.open svg{transform:rotate(90deg)}
/* ─── MOBILE MENU ─── */
.mobile-menu{display:none;flex-direction:column;background:#111827;border-bottom:1px solid #1F2937}
.mobile-menu.nav-open{display:flex}
.mm-group-hdr{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 16px;background:none;border:none;border-top:1px solid #1F2937;color:#9CA3AF;font-size:.8rem;font-weight:700;cursor:pointer;text-align:left}
.mm-group:first-child .mm-group-hdr{border-top:none}
.mm-caret{transition:transform .2s;flex-shrink:0;color:#6B7280}
.mm-group.open .mm-caret{transform:rotate(90deg)}
.mm-group.open .mm-group-hdr{color:#D4A017}
.mm-group-items{display:none;flex-direction:column;background:#0F172A}
.mm-group.open .mm-group-items{display:flex}
.mm-item{display:block;background:none;border:none;border-left:3px solid transparent;padding:11px 20px 11px 28px;text-align:left;width:100%;color:#9CA3AF;font-size:.78rem;font-weight:600;cursor:pointer;text-decoration:none;white-space:normal}
.mm-item:hover{color:#F9FAFB;background:#111827}
.mm-item.active{color:#D4A017;border-left-color:#D4A017}
.mm-user-row{display:flex;align-items:center;gap:10px;padding:12px 16px;border-top:1px solid #1F2937}
.mm-user-row img{width:24px;height:24px;border-radius:50%;border:1px solid #374151}
.mm-user-row-name{color:#E5E7EB;font-size:.78rem;font-weight:600;flex:1}
.mm-user-row a{color:#6B7280;font-size:.75rem;text-decoration:none}
.mm-user-row a:hover{color:#F9FAFB}
/* ─── ADMIN HEADER USER (desktop only) ─── */
.hdr-user-menu{position:relative;display:flex;align-items:center;border-left:1px solid #1F2937;padding-left:12px}
.hdr-user-menu.open .nav-user-dropdown{display:block}
@media(max-width:768px){
  .hamburger-btn{display:flex}
  .tabs{display:none!important}
  .admin-nav{display:none!important}
  .hdr-user-menu{display:none}
  .tab-panel{padding:12px}
}

/* ─── CARDS ─── */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px}
@media(max-width:600px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}
.kpi-card{background:#111827;border:1px solid #1F2937;border-radius:12px;padding:14px;text-align:center}
.kpi-label{color:#9CA3AF;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}
.kpi-value{font-size:1.35rem;font-weight:900;margin-top:4px}
.kpi-sub{color:#6B7280;font-size:.7rem;margin-top:2px}
.section{background:#111827;border:1px solid #1F2937;border-radius:12px;margin-bottom:16px;overflow:hidden}
.sec-hdr{background:#1F2937;padding:10px 16px;font-size:.8rem;font-weight:700;color:#D4A017;letter-spacing:.05em;text-transform:uppercase}
.sec-body{padding:14px;overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ─── TABLE ─── */
table{width:100%;border-collapse:collapse;font-size:.78rem}
th{background:#1F2937;color:#9CA3AF;padding:8px 10px;text-align:right;font-weight:600;font-size:.7rem;text-transform:uppercase}
th:first-child{text-align:left}
td{padding:7px 10px;text-align:right;border-bottom:1px solid #1F2937;color:#E5E7EB}
td:first-child{text-align:left;color:#9CA3AF}
tr:last-child td{border-bottom:none}
tr:hover td{background:#1F2937}

/* ─── BARS ─── */
.bar-wrap{background:#374151;border-radius:4px;height:10px;overflow:hidden;margin-top:4px}
.bar-fill{height:100%;border-radius:4px;transition:width .6s}
.bar-green{background:#10B981}
.bar-yellow{background:#D4A017}
.bar-blue{background:#3B82F6}
.bar-orange{background:#F97316}.bar-red{background:#EF4444}
.bar-purple{background:#8B5CF6}
.bar-teal{background:#14B8A6}

/* ─── LAYOUT HELPERS ─── */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:640px){.grid2,.grid3,.grid4{grid-template-columns:1fr}}
.text-green{color:#10B981}.text-red{color:#EF4444}.text-yellow{color:#D4A017}
.text-blue{color:#60A5FA}.text-gray{color:#6B7280}.text-white{color:#F9FAFB}
.text-orange{color:#F97316}.text-purple{color:#A78BFA}
.bold{font-weight:700}.xbold{font-weight:900}
.flex{display:flex}.jb{justify-content:space-between}.ac{align-items:center}
.mt4{margin-top:4px}.mt8{margin-top:8px}.mt12{margin-top:12px}
.tag{display:inline-block;padding:2px 8px;border-radius:99px;font-size:.65rem;font-weight:700}
.tag-red{background:#450a0a;color:#FCA5A5}
.tag-green{background:#052e16;color:#86EFAC}
.tag-yellow{background:#422006;color:#FDE68A}
.tag-blue{background:#0c1a3d;color:#93C5FD}

/* ─── INPUTS ─── */
.inp{background:#030712;border:1px solid #374151;border-radius:6px;color:#F9FAFB;font-size:.8rem;padding:4px 8px;width:100%;text-align:right}
.inp:focus{outline:2px solid #D4A017}
.inp-label{color:#6B7280;font-size:.7rem;margin-bottom:2px}

/* ─── VERTICAL CHART (CSS) ─── */
.vchart{display:flex;align-items:flex-end;gap:6px;height:120px;padding-bottom:20px;position:relative}
.vchart-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}
.vchart-bar{width:100%;border-radius:3px 3px 0 0;transition:height .6s;min-height:2px}
.vchart-lbl{color:#9CA3AF;font-size:.6rem;text-align:center;position:absolute;bottom:0}
.hchart-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.hchart-lbl{color:#9CA3AF;font-size:.7rem;width:80px;text-align:right;flex-shrink:0}
.hchart-val{color:#E5E7EB;font-size:.7rem;width:70px;flex-shrink:0}
.pill{display:inline-flex;align-items:center;gap:4px;background:#1F2937;border-radius:6px;padding:4px 10px;font-size:.75rem}
.divider{height:1px;background:#1F2937;margin:12px 0}

/* ─── UTILITIES ─── */
.gap-4{gap:4px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}
.text-xs{font-size:.7rem}.text-sm{font-size:.75rem}.text-md{font-size:.78rem}.text-base{font-size:.82rem}
.muted{color:#6B7280}.dim{color:#4B5563}.faint{color:#9CA3AF}
.semi{font-weight:600}.fw-500{font-weight:500}
.mono{font-family:monospace}.italic{font-style:italic}
.text-center{text-align:center}.text-right{text-align:right}
.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.no-underline{text-decoration:none}
.hidden{display:none!important}
.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.fw-wrap{flex-wrap:wrap}
.ml4{margin-left:4px}.mr4{margin-right:4px}.mt2{margin-top:2px}.mt3{margin-top:3px}
.mb4{margin-bottom:4px}.mb8{margin-bottom:8px}.mb16{margin-bottom:16px}.mb20{margin-bottom:20px}
.p0{padding:0}.w-full{width:100%}.w-200{width:200px}.w-220{width:220px}.w-240{width:240px}
.opacity-35{opacity:.35}.cursor-default{cursor:default}
.text-error{color:#f87171}.text-success{color:#4ade80}.text-link{color:#60A5FA}
.td-label{color:#F9FAFB;font-weight:600}
@keyframes spin{to{transform:rotate(360deg)}}

/* ─── ADMIN LAYOUT ─── */
.admin-wrap{padding:16px 16px 24px}.admin-flash-wrap{padding:16px 16px 0}
.admin-back{color:#6B7280;font-size:.75rem;text-decoration:none}.admin-back:hover{color:#F9FAFB}
.admin-nav a{flex-shrink:0;background:none;color:#9CA3AF;padding:10px 14px;font-size:.78rem;font-weight:600;text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent;transition:all .2s}
.admin-nav a:hover{color:#F9FAFB}.admin-nav a.active{color:#D4A017;border-bottom-color:#D4A017}
.admin-card{background:#111827;border:1px solid #1F2937;border-radius:8px;overflow:hidden;margin-bottom:24px}
.admin-card.tight{margin-bottom:16px}
.admin-card-hdr{background:#1F2937;padding:12px 16px;font-weight:700;color:#F9FAFB;font-size:.85rem;display:flex;align-items:center;justify-content:space-between}
.admin-card-body{padding:16px;overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-card-body.flush{padding:0}
.admin-table{width:100%;border-collapse:collapse;font-size:.82rem}
.admin-table th{text-align:left;vertical-align:middle;padding:8px 20px;color:#6B7280;border-bottom:1px solid #374151;font-weight:600}
.admin-table td{text-align:left;vertical-align:middle;padding:9px 20px;border-bottom:1px solid #1F2937;color:#D1D5DB}
.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:#0F172A}
.admin-table.fixed{table-layout:fixed}
a.btn-sm{text-decoration:none;display:inline-block}

/* ─── ADMIN BADGES ─── */
.badge{display:inline-block;padding:2px 8px;border-radius:9999px;font-size:.7rem;font-weight:700}
.badge-green{background:#052e16;color:#4ade80}.badge-red{background:#450a0a;color:#f87171}
.badge-yellow{background:#451a03;color:#fbbf24}.badge-blue{background:#0c1a3d;color:#60a5fa}
.badge-gray{background:#1F2937;color:#9CA3AF}

/* ─── ADMIN BUTTONS & INPUTS ─── */
.inp-sm{background:#0F172A;color:#F9FAFB;border:1px solid #374151;border-radius:4px;padding:5px 8px;font-size:.8rem}
.btn-sm{padding:5px 12px;border-radius:5px;font-size:.78rem;font-weight:600;cursor:pointer;border:1px solid transparent}
.btn-xs{font-size:.72rem;padding:4px 10px}.btn-2xs{font-size:.65rem;padding:2px 6px}
.btn-lg{padding:8px 20px}
.btn-primary{background:#1D4ED8;color:#fff;border-color:#1D4ED8}.btn-primary:hover{background:#1e40af}
.btn-danger{background:#7f1d1d;color:#fca5a5;border-color:#991b1b}.btn-danger:hover{background:#991b1b}
.btn-secondary{background:#1F2937;color:#D1D5DB;border-color:#374151}.btn-secondary:hover{background:#374151}
.btn-disabled{opacity:.35;cursor:default}

/* ─── ADMIN FLASH ─── */
.flash-success{background:#052e16;border:1px solid #166534;color:#4ade80;border-radius:6px;padding:10px 14px;margin-bottom:16px;font-size:.82rem}
.flash-error{background:#450a0a;border:1px solid #991b1b;color:#fca5a5;border-radius:6px;padding:10px 14px;margin-bottom:16px;font-size:.82rem}

/* ─── ADMIN FORMS ─── */
.field-label{display:block;color:#9CA3AF;font-size:.72rem;margin-bottom:4px}
.field-hint{font-size:.7rem;color:#6B7280;margin-top:3px}
.req{color:#f87171}.form-inline{display:inline}.form-inline-ml{display:inline;margin-left:4px}
.form-inline-flex{display:inline-flex;gap:4px;align-items:center;justify-content:center}
.form-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.form-actions{margin-top:16px;display:flex;gap:10px;align-items:center}
.form-note{color:#4B5563;font-size:.7rem;margin-top:8px}.form-note strong{color:#9CA3AF}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;max-width:640px}
.full-col{grid-column:1/-1}

/* ─── ADMIN COMPONENTS ─── */
.empty-state{color:#6B7280;padding:24px;text-align:center;font-size:.85rem;margin:0}
.empty-state-sm{color:#6B7280;padding:16px;text-align:center;font-size:.85rem;margin:0}
.section-label{color:#9CA3AF;font-size:.75rem;font-weight:600;margin:0 0 8px;text-transform:uppercase;letter-spacing:.05em}
.hdr-meta{color:#6B7280;font-size:.72rem;font-weight:400}
.pagination-row{display:flex;align-items:center;gap:8px;padding:14px 20px;border-top:1px solid #374151;font-size:.8rem}
.page-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.page-hdr-title{margin:0;font-size:1rem;color:#F9FAFB}
.page-hdr-sub{color:#6B7280;font-size:.75rem;margin-top:2px}
.admin-notice-ok{background:#052e16;border:1px solid #166534;color:#4ade80;border-radius:6px;padding:12px 14px;font-size:.82rem}

/* ─── PERMISSIONS ─── */
.perm-group{margin-bottom:16px}
.perm-group-label{font-size:.7rem;font-weight:700;color:#6B7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.perm-checkboxes{display:flex;flex-wrap:wrap;gap:8px}
.perm-check{display:flex;align-items:center;gap:5px;font-size:.78rem;color:#D1D5DB;background:#0F172A;border:1px solid #374151;border-radius:4px;padding:4px 10px;cursor:pointer}
.perm-check input{cursor:pointer;accent-color:#3B82F6}

/* ─── USER TABLE ─── */
.user-meta{display:flex;align-items:center;gap:8px}
.user-avatar-sm{width:26px;height:26px;border-radius:50%}
.user-meta-name{color:#F9FAFB;font-weight:600}.user-meta-email{color:#6B7280;font-size:.72rem}
.you-label{color:#4B5563;font-size:.75rem}

/* ─── DATA PAGE ─── */
.data-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 16px;margin-bottom:20px}
.data-card{background:#111827;border-radius:6px;padding:10px 12px}
.data-card-label{font-size:.7rem;color:#6B7280;margin-bottom:3px}
.data-card-value{font-size:.95rem;font-weight:700;color:#F9FAFB}
.feed-badge{display:inline-block;font-size:.65rem;font-weight:600;padding:1px 6px;border-radius:3px;background:#064E3B;color:#6EE7B7;margin-left:6px;vertical-align:middle}
.cc-table{width:100%;max-width:480px;border-collapse:collapse;font-size:.82rem}
.cc-table th{text-align:left;padding:6px 8px;color:#6B7280;font-weight:500;border-bottom:1px solid #374151}
.cc-table th.right{text-align:right}.cc-table td{padding:4px 8px;border-bottom:1px solid #1F2937}
.cc-table .cc-grp td{font-weight:600;color:#D1D5DB;padding:5px 8px}
.cc-table .cc-name{padding-left:20px;color:#9CA3AF}
.cc-table .cc-val{text-align:right;color:#F9FAFB}
.cc-table .cc-sub{background:#111827;border-bottom:1px solid #374151}
.cc-table .cc-sub .cc-name{color:#6B7280;font-size:.75rem}
.cc-table .cc-sub .cc-val{color:#FBBF24;font-weight:700}
.cc-table .cc-total{background:#1F2937}
.cc-table .cc-total td{font-weight:700;color:#F9FAFB;padding:7px 8px}
.cc-table .cc-total .cc-val{color:#F87171}

/* ─── FEEDS PAGE ─── */
.feeds-pipeline{display:flex;align-items:center;flex-wrap:wrap;margin-bottom:20px}
.feed-step-wrap{display:flex;align-items:center;flex:0 0 auto}
.feed-step{border-radius:8px;padding:12px 16px;text-align:center;min-width:110px}
.feed-step-icon{font-size:1.4rem;margin-bottom:4px}
.feed-step-title{font-size:.8rem;font-weight:700}
.feed-step-desc{font-size:.68rem;color:#6B7280;margin-top:2px}
.feed-arrow{font-size:1.1rem;color:#374151;padding:0 6px;flex-shrink:0}
.feeds-hint{color:#9CA3AF;font-size:.78rem;margin:0}
.feeds-link{color:#60A5FA;text-decoration:none;font-weight:600}
.feed-error-td{padding:4px 20px 8px;font-size:.72rem;color:#FCA5A5;background:#1C0A0A}

/* ─── CRON PAGE ─── */
#run-now-btn.running{opacity:.6;cursor:not-allowed}
#run-status-area{padding:16px 20px}
.cron-run-row{cursor:pointer}.cron-run-row:hover td{background:#0d1829!important}
.cron-detail-row{background:#080f1c}
.cron-detail-row>td{border-top:1px solid #1F2937;padding:8px 16px 12px 28px}
.cron-chevron-col{color:#4B5563;font-size:.8rem;white-space:nowrap}
.cron-chevron{margin-right:4px}
.cron-inner-table{width:100%;font-size:.74rem;border-collapse:collapse}
.cron-inner-table tbody tr{border-bottom:1px solid #111827}
.cron-inner-th{padding:3px 8px;color:#6B7280;text-align:left;font-weight:600;border-bottom:1px solid #1F2937}
.cron-inner-th.center{text-align:center}
.cron-inner-td{padding:4px 8px}.cron-inner-td.center{text-align:center;color:#9CA3AF}
.cron-snip-row{background:#030712}.cron-snip-row td{padding:8px 12px}
.code-pre{font-size:.68rem;color:#9CA3AF;overflow:auto;max-height:200px;margin:0}
/* Utilization month sub-rows in cron history table */
.util-month-subrow td,.util-month-total td{background:#0B1120;border-bottom:1px solid #1a2235}
.util-month-total td{background:#111827;border-top:1px solid #374151;font-style:italic}
/* Utilization month sub-rows in JS live-status panel */
.util-subrow-js{display:flex;align-items:center;gap:12px;padding:3px 8px 3px 28px;font-size:.76rem;border-bottom:1px solid #1a2235}
.util-subrow-total{background:#111827;border-top:1px solid #374151;font-style:italic}
.util-subrow-name{color:#6B7280;min-width:90px}
.util-subrow-rows{min-width:70px}
.util-subrow-dur{color:#6B7280}
.run-msg{font-size:.82rem;margin:0}.run-msg.info{color:#9CA3AF}.run-msg.error{color:#f87171}
.run-status-info{font-size:.8rem;color:#9CA3AF;margin-bottom:8px}
.run-status-hdr{font-size:.82rem;margin-bottom:8px;font-weight:600}
.run-status-hdr.ok{color:#22C55E}.run-status-hdr.warn{color:#FDE68A}.run-status-hdr.err{color:#f87171}
.run-feed-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid #1F2937;font-size:.82rem}
.run-feed-row:last-child{border-bottom:none}.run-feed-row.faded{opacity:.4}
.run-feed-name{width:180px;font-weight:500}.run-feed-status{width:90px}
.run-feed-detail{color:#9CA3AF;font-size:.76rem}
.run-record-count{color:#D1FAE5}
.log-footer{padding:12px 20px;display:flex;gap:6px;align-items:center;font-size:.78rem;color:#6B7280;border-top:1px solid #1F2937}

/* ─── ACTIVITY LOG ─── */
.evt-when{color:#6B7280;font-size:.72rem;white-space:nowrap}
.evt-user-name{color:#F9FAFB;font-size:.78rem}.evt-user-email{color:#6B7280;font-size:.7rem}
.evt-desc{color:#9CA3AF;font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.evt-ip{font-size:.72rem}.evt-ip-office{color:#60A5FA}.evt-ip-other{color:#4B5563;font-family:monospace}

/* ─── DASH LOADING OVERLAY ─── */
.dash-loading{position:fixed;inset:0;background:rgba(3,7,18,.85);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;gap:12px}
.dash-loading-spinner{animation:spin 1s linear infinite}
.dash-loading-label{color:#9CA3AF;font-size:.8rem;letter-spacing:.05em}

/* ─── LOGIN PAGE ─── */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#030712}
.login-box{width:360px;text-align:center}
.login-card{background:#111827;border:1px solid #374151;border-radius:16px;padding:40px 32px}
.login-brand{color:#D4A017;font-size:2rem;font-weight:900;letter-spacing:-1px;margin-bottom:4px}
.login-subtitle{color:#93C5FD;font-size:.85rem;font-weight:600;margin-bottom:32px}
.login-icon{font-size:2rem;margin-bottom:12px}
.login-title{color:#F9FAFB;font-size:1rem;font-weight:700;margin-bottom:6px}
.login-desc{color:#6B7280;font-size:.8rem}
.google-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;background:#fff;border:none;border-radius:8px;color:#1F2937;font-size:.9rem;font-weight:700;padding:12px 16px;cursor:pointer;text-decoration:none;margin-top:24px;transition:background .15s}
.google-btn:hover{background:#F3F4F6}
.google-logo{width:20px;height:20px;flex-shrink:0}
.error-msg{background:#450a0a;border:1px solid #EF4444;border-radius:8px;color:#FCA5A5;font-size:.8rem;padding:10px 14px;margin-top:16px;text-align:left}

/* ─── ACCESS DENIED PAGE ─── */
.deny-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#030712}
.deny-card{width:400px;background:#111827;border:1px solid #374151;border-radius:16px;padding:40px 32px;text-align:center}
.deny-icon{font-size:2.5rem;margin-bottom:16px}
.deny-title{color:#F9FAFB;font-size:1.1rem;font-weight:700;margin-bottom:8px}
.deny-desc{color:#6B7280;font-size:.85rem;line-height:1.5;margin-bottom:24px}
.deny-link{color:#93C5FD}.deny-btn{display:inline-block;background:#1E3A5F;border-radius:8px;color:#fff;font-size:.85rem;font-weight:700;padding:10px 24px;text-decoration:none}

.text-left{text-align:left}
.text-amber{color:#FBBF24}
.bg-alt{background:#1F2937}
.bg-dark{background:#111827}
.mb20{margin-bottom:20px}
.hdr-updated-link{color:inherit;text-decoration:none}

/* ─── EXEC TAB: Revenue & Cost period tabs ─── */
.exec-rev-tabs{display:flex;flex-wrap:wrap;gap:4px}
.exec-rev-tab{background:#1F2937;border:1px solid #374151;border-radius:4px;color:#9CA3AF;cursor:pointer;font-size:.72rem;font-weight:600;padding:3px 8px;transition:background .15s,color .15s}
.exec-rev-tab:hover{background:#374151;color:#F9FAFB}
.exec-rev-tab.active{background:#1E3A5F;border-color:#3B82F6;color:#93C5FD}