:root{
  --bg:#f6f8fb;--panel:#fff;--ink:#172033;--muted:#687386;--line:#e5e9f0;--accent:#d45135;
  --accent2:#f7ede9;--good:#18794e;--warn:#a15c00;--danger:#b42318;--shadow:0 8px 30px rgba(29,41,57,.07);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)
}
*{box-sizing:border-box} body{margin:0;background:var(--bg);min-height:100vh} button,input,select,textarea{font:inherit}
button{cursor:pointer}.shell{max-width:1120px;margin:auto;padding:24px}.public-shell{max-width:900px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.brand{display:flex;align-items:center;gap:12px}.brandmark{width:42px;height:42px;border-radius:50%;background:#fff;border:2px solid var(--accent);display:grid;place-items:center;font-weight:800;color:var(--accent);letter-spacing:-1px}.brand h1{font-size:18px;margin:0}.brand small{display:block;color:var(--muted);margin-top:2px}.tabs,.segmented{display:flex;gap:6px;background:#edf0f5;padding:4px;border-radius:10px}.tabs button,.segmented button{border:0;background:transparent;color:var(--muted);padding:8px 12px;border-radius:7px;font-weight:650}.tabs button.active,.segmented button.active{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.07)}
.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin:12px 0 24px}.toolbar-right{display:flex;gap:10px;flex-wrap:wrap}.control{background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 12px;color:var(--ink)}.timezone-note{font-size:12px;color:var(--muted);margin-left:8px}.day{margin:0 0 24px}.day-title{font-size:13px;font-weight:800;letter-spacing:.06em;color:#475467;margin:0 0 9px;text-transform:uppercase}.day-title .today{color:var(--accent);margin-right:8px}.event-card{display:grid;grid-template-columns:90px 5px 1fr;gap:16px;align-items:stretch;background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:9px;overflow:hidden;box-shadow:0 2px 9px rgba(29,41,57,.03)}.event-time{padding:15px 0 15px 16px;font-weight:800;line-height:1.3}.event-time small{display:block;font-weight:600;color:var(--muted);font-size:12px}.catbar{background:var(--cat,#64748b)}.event-main{padding:14px 16px 14px 0}.event-name{font-weight:800}.event-meta{font-size:13px;color:var(--muted);margin-top:4px}.empty-day{background:transparent;border:1px dashed #d8dee8;border-radius:10px;color:var(--muted);padding:15px;text-align:center;font-size:13px}.list-row{display:grid;grid-template-columns:125px 6px 1fr auto;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.list-row .bar{height:34px;border-radius:5px;background:var(--cat)}.list-time{font-weight:750}.list-cat{font-size:12px;color:var(--muted)}
.admin-nav{background:#20283a;color:white}.admin-nav .inner{max-width:1180px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:13px 24px;gap:20px}.admin-brand{font-weight:800}.admin-links{display:flex;gap:5px}.admin-links button{background:transparent;border:0;color:#bec7d6;padding:8px 11px;border-radius:7px}.admin-links button.active,.admin-links button:hover{background:#333d51;color:#fff}.linkbtn{border:0;background:transparent;color:inherit}.admin-shell{max-width:1180px}.pagehead{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:20px}.pagehead h2{margin:0 0 5px;font-size:26px}.subtle{color:var(--muted);font-size:13px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:26px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.stat-label{font-size:12px;font-weight:800;letter-spacing:.05em;color:var(--muted)}.stat-num{font-size:30px;font-weight:850;margin-top:8px}.section-title{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:#475467;margin:24px 0 10px}.attention{background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px;margin-bottom:10px;display:grid;grid-template-columns:1fr auto;gap:18px;box-shadow:0 2px 9px rgba(29,41,57,.03)}.attention h3{margin:0 0 12px;font-size:16px}.kv{display:flex;gap:28px;flex-wrap:wrap}.kv div{font-size:13px}.kv b{display:block;font-size:11px;letter-spacing:.05em;color:var(--muted);margin-bottom:3px}.actions{display:flex;align-items:center;gap:8px}.btn{border:1px solid var(--line);background:white;padding:9px 13px;border-radius:9px;font-weight:750;color:var(--ink)}.btn:hover{background:#f8fafc}.btn.primary{background:var(--accent);border-color:var(--accent);color:white}.btn.danger{color:var(--danger)}.btn.small{padding:6px 9px;font-size:12px}.tablewrap{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:auto}.table{width:100%;border-collapse:collapse;min-width:720px}.table th,.table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);font-size:13px}.table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#fafbfc}.status{display:inline-block;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:850;letter-spacing:.04em;background:#eef2f6;color:#475467}.status.pending{background:#fff4e5;color:#985c00}.status.fixed{background:#eaf2ff;color:#245ba7}.status.scheduled{background:#e9f7ef;color:#18794e}.status.skipped,.status.missed{background:#f2f4f7;color:#667085}.ready{color:var(--good);font-weight:750}.notready{color:var(--muted)}
.modalback{position:fixed;inset:0;background:rgba(13,18,28,.45);display:grid;place-items:center;padding:18px;z-index:30}.modal{background:#fff;border-radius:15px;width:min(620px,100%);max-height:90vh;overflow:auto;box-shadow:0 25px 70px rgba(0,0,0,.25)}.modalhead{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}.modalhead h3{margin:0}.modalbody{padding:20px}.modalfoot{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--line)}.close{border:0;background:transparent;font-size:22px;color:var(--muted)}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:800;color:#475467;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:10px 11px;border:1px solid #cfd6e1;border-radius:8px;background:#fff;color:var(--ink)}.field textarea{min-height:80px;resize:vertical}.span2{grid-column:1/-1}.rulecards{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rulecard{border:1px solid var(--line);border-radius:10px;padding:12px;cursor:pointer}.rulecard.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.rulecard b{display:block;margin-bottom:4px}.rulecard small{color:var(--muted)}.note{background:#f7f9fc;border:1px solid #e4e8ef;border-radius:9px;padding:11px 13px;font-size:13px;color:#475467}.warning{background:#fff7e8;border:1px solid #f3d7a2;color:#805000}.error{background:#fff0ee;border:1px solid #f4c5bf;color:#9b2c20}.loginwrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login{width:min(390px,100%);background:#fff;border:1px solid var(--line);border-radius:15px;padding:28px;box-shadow:var(--shadow)}.login .brand{justify-content:center;margin-bottom:24px}.login h2{text-align:center;margin:0 0 20px}.login .btn{width:100%;margin-top:6px}.category-row{display:grid;grid-template-columns:28px 20px 1fr auto;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);padding:12px 14px;border-radius:10px;margin-bottom:8px}.swatch{width:16px;height:16px;border-radius:50%;background:var(--cat)}.drag{color:#98a2b3}.fabline{display:flex;justify-content:flex-end;margin-bottom:12px}.mutedbox{padding:20px;text-align:center;color:var(--muted)}
@media(max-width:720px){.shell{padding:16px}.topbar{align-items:flex-start;flex-direction:column}.toolbar{align-items:stretch}.toolbar-right{width:100%}.toolbar-right .control{flex:1}.event-card{grid-template-columns:72px 4px 1fr;gap:10px}.event-time{padding-left:12px;font-size:14px}.list-row{grid-template-columns:100px 4px 1fr}.list-cat{display:none}.stats{grid-template-columns:1fr 1fr 1fr;gap:8px}.stat{padding:13px}.stat-num{font-size:24px}.attention{grid-template-columns:1fr}.actions{justify-content:flex-end}.admin-nav .inner{align-items:flex-start;flex-direction:column}.admin-links{width:100%;overflow:auto}.formgrid,.rulecards{grid-template-columns:1fr}.span2{grid-column:auto}.pagehead{align-items:flex-start;flex-direction:column}}
