:root { --navy:#16283f; --blue:#2563eb; --border:#d7dee8; --bg:#f4f7fb; --danger:#b42318; --success:#147a43; --muted:#5e6d7e; }
* { box-sizing:border-box; }
[hidden] { display:none!important; }
body { margin:0; color:#172033; background:var(--bg); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
a { color:inherit; }
.skip-link { position:absolute; top:8px; left:8px; z-index:10; transform:translateY(-150%); padding:10px 14px; color:#fff; background:var(--navy); border-radius:6px; }
.skip-link:focus { transform:none; }
.login-page { min-height:100vh; display:grid; place-items:center; padding:32px 16px; }
.login-card { width:min(440px,100%); padding:32px; background:#fff; border:1px solid var(--border); border-radius:12px; box-shadow:0 12px 32px rgba(20,40,70,.12); }
.login-card h1 { margin:0 0 8px; color:var(--navy); font-size:24px; }
.login-card p { color:var(--muted); line-height:1.6; }
.shell { min-height:100vh; display:grid; grid-template-columns:240px minmax(0,1fr); }
.side { padding:24px 14px; color:#fff; background:var(--navy); }
.brand { margin:0 10px 26px; font-size:18px; font-weight:700; }
.side a { display:block; margin:4px 0; padding:10px 12px; border-radius:7px; text-decoration:none; }
.side a:hover,.side a.active { background:rgba(255,255,255,.16); }
.main { min-width:0; padding:28px; }
.top { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.top h1 { margin:0; font-size:25px; color:var(--navy); }
.admin-email { color:var(--muted); font-size:13px; }
.card { margin-bottom:18px; padding:20px; background:#fff; border:1px solid var(--border); border-radius:10px; }
.metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; }
.metric { padding:17px; border:1px solid var(--border); border-radius:8px; background:#fff; }
.metric strong { display:block; margin-top:5px; font-size:25px; color:var(--navy); }
.form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; align-items:end; }
#companyPlanStores { grid-column:1/-1; min-width:0; border:1px solid var(--border); border-radius:6px; }
#companyPlanStores label { display:flex; align-items:center; gap:8px; margin:8px 0; }
#companyPlanStores input { width:auto; }
label { display:grid; gap:6px; font-size:13px; color:#34445b; font-weight:600; }
input,select,textarea,button { font:inherit; }
input,select,textarea { width:100%; padding:9px 10px; color:#172033; background:#fff; border:1px solid #b9c5d3; border-radius:6px; }
textarea { min-height:110px; resize:vertical; }
button { padding:9px 14px; color:#fff; border:0; border-radius:6px; background:var(--blue); cursor:pointer; }
button:hover { filter:brightness(.94); } button:disabled { opacity:.55; cursor:wait; }
.secondary { color:#27364b; background:#e9eef5; }.danger { background:var(--danger); }.outline { color:var(--blue); background:#fff; border:1px solid var(--blue); }
.table-wrap { overflow:auto; }.table { width:100%; border-collapse:collapse; font-size:13px; }.table th,.table td { padding:10px; border-bottom:1px solid var(--border); text-align:left; vertical-align:top; white-space:nowrap; }.table th { color:#516074; background:#f8fafc; }.table td.wrap { min-width:240px; white-space:normal; }
.status { display:inline-block; padding:3px 8px; border-radius:99px; font-size:12px; font-weight:700; background:#e8edf3; }.status.active,.status.unused,.status.completed { color:#146c3a; background:#e5f5eb; }.status.suspended,.status.disabled { color:#9c1f16; background:#fbe9e7; }.status.used,.status.processing { color:#8b5b00; background:#fff2cf; }
.notice { margin:0 0 16px; padding:10px 12px; border-radius:6px; color:#174c2a; background:#e5f5eb; }.notice.error { color:#921d15; background:#fbe9e7; }.hidden { display:none!important; }.detail { white-space:pre-wrap; line-height:1.6; }.split { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.pagination { display:flex; justify-content:flex-end; gap:8px; margin-top:12px; }.muted { color:var(--muted); font-size:13px; }
.admin-detail { overflow:auto; }.admin-detail pre { margin:0; padding:14px; overflow:auto; color:#172033; background:#f8fafc; border:1px solid var(--border); border-radius:6px; font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace; }.detail-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }.detail-heading h2 { margin:0; font-size:18px; color:var(--navy); }
.maintenance-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }.maintenance-card h2 { margin:0 0 8px; color:var(--navy); font-size:19px; }.maintenance-state { margin:0 0 18px; font-weight:700; }.maintenance-state.enabled { color:var(--danger); }.maintenance-state.disabled { color:var(--success); }.maintenance-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }.maintenance-actions button { flex:1 1 135px; }
.weekly-automation-control { display:flex; align-items:center; justify-content:space-between; gap:16px; max-width:360px; margin-top:16px; font-size:15px; }
.weekly-automation-control input { appearance:none; flex:none; width:52px; height:30px; margin:0; padding:3px; border:0; border-radius:99px; background:#8b98a8; cursor:pointer; transition:background .15s; }
.weekly-automation-control input::before { content:""; display:block; width:24px; height:24px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.25); transition:transform .15s; }
.weekly-automation-control input:checked { background:var(--success); }.weekly-automation-control input:checked::before { transform:translateX(22px); }
.weekly-automation-control input:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }.weekly-automation-control input:disabled { opacity:.55; cursor:wait; }
.weekly-preview-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; margin:16px 0; }
.weekly-preview-metric { padding:12px; border:1px solid var(--border); border-radius:7px; font-size:13px; }
.weekly-preview-metric strong { display:block; margin:6px 0; color:var(--navy); font-size:23px; }
.weekly-preview-metric span { color:var(--muted); }
.weekly-preview-section { margin-top:24px; }.weekly-preview-section h3 { margin:0 0 10px; }
.weekly-report-title { color:var(--blue); text-decoration:underline; text-underline-offset:2px; }
.plan-price-original { color:#000; }
.plan-price-discount { color:#b42318; font-size:18px; }
.event-form .event-wide { grid-column:1/-1; }
.event-form small { font-weight:400; color:var(--muted); }
.event-form textarea { min-height:76px; }
.event-actions { margin-top:14px; }
.event-image-preview { display:block; width:min(320px,100%); max-height:180px; margin-top:12px; object-fit:cover; border:1px solid var(--border); border-radius:6px; }
.event-image-preview[hidden] { display:none; }
.event-thumb { display:block; width:96px; height:54px; object-fit:cover; border-radius:4px; }

/* Keep shared layouts usable with long names, narrow viewports, and zoomed text. */
img,video,svg { max-width:100%; height:auto; }
.side,.card,.metric,.login-card,.form-grid > *,.metrics > *,.split > *,
.maintenance-grid > *,.weekly-preview-metrics > * { min-width:0; }
.card,.metric,.weekly-preview-metric,.brand,.top,.detail-heading { overflow-wrap:anywhere; }
.metrics { grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr)); }
.form-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr)); }
.weekly-preview-metrics { grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr)); }
.split { grid-template-columns:repeat(2,minmax(0,1fr)); }
.top,.detail-heading,.pagination { flex-wrap:wrap; }
.top > div { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; min-width:0; }
.admin-email { overflow-wrap:anywhere; }
input,select,textarea,button { min-width:0; max-width:100%; }
button,.button-link { overflow-wrap:anywhere; }
.button-link { display:inline-flex; align-items:center; justify-content:center; padding:9px 14px; border-radius:6px; text-decoration:none; }
.button-link.outline { border:1px solid var(--blue); }
.button-link:hover { filter:brightness(.94); }
.side a:focus-visible { outline-color:#fff; }
.table-wrap { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
.table td { white-space:normal; overflow-wrap:anywhere; }
.table td.wrap { min-width:min(240px,60vw); }
.admin-detail pre { white-space:pre-wrap; overflow-wrap:anywhere; }
:is(a,button,input,select,textarea):focus-visible { outline:3px solid var(--blue); outline-offset:2px; }

@media (max-width:760px) {
  .shell { grid-template-columns:minmax(0,1fr); }
  .side { padding:12px; }
  .side nav { display:flex; overflow-x:auto; overscroll-behavior-inline:contain; }
  .side a { white-space:nowrap; }
  .brand { margin:0 0 10px; }
  .main { padding:16px; }
  .top { align-items:flex-start; }
  .top > div { justify-content:flex-start; }
  .split,.maintenance-grid { grid-template-columns:1fr; }
  input,select,textarea { font-size:16px; }
}
