*{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#eceae4;
  --surface:#ffffff;
  --surface2:#f5f4ef;
  --surface3:#eeede6;
  --text:#17171a;
  --text2:#68685e;
  --accent:#1e5f35;
  --accent-bg:#e3f0ea;
  --accent2:#bf4910;
  --accent2-bg:#faeee7;
  --perm:#525248;
  --perm-bg:#ebebE3;
  --border:#d9d8cf;
  --border-light:#e5e4dc;
  --radius:14px;
  --shadow-sm:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);
  --shadow-md:0 3px 10px rgba(0,0,0,.07),0 1px 3px rgba(0,0,0,.04);
  --shadow-lg:0 10px 40px rgba(0,0,0,.11),0 3px 10px rgba(0,0,0,.06);
}
body{font-family:'Manrope',sans-serif;background:var(--bg);background-image:radial-gradient(ellipse 65% 45% at 18% 0%,rgba(30,95,53,.055) 0%,transparent 100%),radial-gradient(ellipse 55% 40% at 88% 100%,rgba(191,73,16,.04) 0%,transparent 100%);color:var(--text);min-height:100vh;padding:24px 28px 48px}
header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;padding-bottom:22px;border-bottom:1px solid var(--border)}
.logo{font-size:17px;font-weight:800;letter-spacing:-.5px}
.logo span{color:var(--accent)}
.header-right{display:flex;align-items:center;gap:10px}
.date-chip{font-size:12px;font-weight:600;color:var(--text2);background:var(--surface);border:1px solid var(--border);padding:6px 14px;border-radius:20px;box-shadow:var(--shadow-sm)}
.upd-chip{display:none;align-items:center;font-size:12px;font-weight:600;color:var(--text2);background:var(--surface);border:1px solid var(--border);padding:6px 14px;border-radius:20px;box-shadow:var(--shadow-sm);white-space:nowrap;cursor:help}
.btn-primary{font-family:'Manrope',sans-serif;font-size:13px;font-weight:700;color:#fff;background:var(--accent);border:none;padding:9px 20px;border-radius:20px;cursor:pointer;transition:opacity .15s,transform .1s}
.btn-primary:hover{opacity:.86}
.btn-primary:active{transform:scale(.97);opacity:.82}
.btn-cancel{font-family:'Manrope',sans-serif;font-size:13px;font-weight:600;color:var(--text2);background:var(--surface2);border:1px solid var(--border);padding:9px 20px;border-radius:20px;cursor:pointer;transition:background .15s}
.btn-cancel:hover{background:var(--border)}

/* Password overlay */
#pw-overlay{position:fixed;inset:0;background:rgba(236,234,228,.94);display:none;align-items:center;justify-content:center;z-index:100;backdrop-filter:blur(6px)}
.pw-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:44px 48px;text-align:center;max-width:360px;width:100%;box-shadow:var(--shadow-lg)}
.pw-card .pw-ico{font-size:36px;margin-bottom:14px}
.pw-card h2{font-size:18px;font-weight:800;margin-bottom:6px;letter-spacing:-.3px}
.pw-card p{color:var(--text2);font-size:13px;margin-bottom:24px}
.pw-input{width:100%;font-family:'Manrope',sans-serif;font-size:14px;font-weight:600;border:1.5px solid var(--border);border-radius:10px;padding:10px 14px;outline:none;margin-bottom:10px;background:var(--surface2);color:var(--text);transition:border-color .15s}
.pw-input:focus{border-color:var(--accent)}
.pw-error{color:var(--accent2);font-size:12px;font-weight:600;margin-bottom:10px;display:none}
.pw-remember{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text2);margin-bottom:16px;cursor:pointer;user-select:none}
.pw-remember input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;cursor:pointer;flex-shrink:0}
.btn-logout{font-family:'Manrope',sans-serif;font-size:12px;font-weight:600;background:transparent;color:var(--text2);border:1px solid var(--border);padding:5px 12px;border-radius:20px;cursor:pointer;transition:all .15s}
.btn-logout:hover{background:var(--border);color:var(--text)}

/* Admin banner */
#admin-banner{display:none;background:var(--accent);color:#fff;border-radius:10px;padding:10px 18px;margin-bottom:20px;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;box-shadow:0 3px 12px rgba(30,95,53,.3)}
.admin-banner-label{font-size:12px;font-weight:700;display:flex;align-items:center;gap:8px}
.admin-banner-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.btn-admin{font-family:'Manrope',sans-serif;font-size:12px;font-weight:600;background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.26);padding:6px 14px;border-radius:20px;cursor:pointer;transition:background .15s}
.btn-admin:hover{background:rgba(255,255,255,.26)}
.btn-admin-danger{font-family:'Manrope',sans-serif;font-size:12px;font-weight:600;background:rgba(191,73,16,.45);color:#fff;border:1px solid rgba(255,255,255,.18);padding:6px 14px;border-radius:20px;cursor:pointer;transition:background .15s}
.btn-admin-danger:hover{background:rgba(191,73,16,.7)}
input[type=file]{display:none}

/* Upload */
#upload-wrap{display:none;align-items:center;justify-content:center;min-height:calc(100vh - 200px)}
#drop-zone{background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius);padding:72px 48px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s;max-width:520px;width:100%;box-shadow:var(--shadow-sm)}
#drop-zone:hover,#drop-zone.over{border-color:var(--accent);background:var(--accent-bg);box-shadow:var(--shadow-md)}
#drop-zone .ico{font-size:40px;margin-bottom:16px;opacity:.4}
#drop-zone h2{font-size:18px;font-weight:700;margin-bottom:8px;letter-spacing:-.3px}
#drop-zone p{color:var(--text2);font-size:13px;line-height:1.7}

/* Loading / empty */
#status-wrap{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 200px)}
#status-msg{color:var(--text2);font-size:14px;display:flex;align-items:center;gap:10px}
.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}

/* Main grid */
#main{display:none}
.grid{display:grid;grid-template-columns:1fr 292px;gap:18px}

/* Card */
.card{background:var(--surface);border-radius:var(--radius);padding:20px 22px;border:1px solid var(--border);box-shadow:var(--shadow-md)}
.section-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.9px;color:var(--text2);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.badge{display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;border-radius:10px;padding:1px 8px;color:#fff}
.badge-green{background:var(--accent)}
.badge-gray{background:var(--perm)}
.badge-orange{background:var(--accent2)}

/* Event items */
.ev{padding:11px 14px;border-radius:11px;margin-bottom:7px;border-left:3px solid transparent;display:flex;align-items:flex-start;gap:10px;transition:filter .12s}
.ev:last-child{margin-bottom:0}
.ev-today{background:var(--accent-bg);border-left-color:var(--accent)}
.ev-today:hover{filter:brightness(.97)}
.ev-perm{background:var(--perm-bg);border-left-color:var(--perm)}
.ev-perm:hover{filter:brightness(.97)}
.ev-upcoming{background:var(--accent2-bg);border-left-color:var(--accent2)}
.ev-upcoming:hover{filter:brightness(.97)}
.ev-hidden-card{background:var(--surface2);border-left-color:var(--border);opacity:.6}
.ev-body{flex:1;min-width:0}
.ev-name{font-size:13px;font-weight:700;line-height:1.4;letter-spacing:-.1px}
.ev-name-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:3px}
.ev-type-pill{display:inline-flex;align-items:center;font-size:9.5px;font-weight:700;color:rgba(255,255,255,.95);border-radius:5px;padding:2px 7px;white-space:nowrap;flex-shrink:0;letter-spacing:.2px;margin-top:2px;opacity:.85}
.ev-dates{font-size:11px;font-weight:500;color:var(--text2)}
.ev-link{font-size:11px;font-weight:700;color:var(--accent);text-decoration:none;margin-top:5px;display:inline-flex;align-items:center;gap:3px;background:rgba(30,95,53,.1);padding:3px 9px;border-radius:6px;transition:background .12s}
.ev-link:hover{background:rgba(30,95,53,.18);text-decoration:none;opacity:1}
.ev-upcoming .ev-link{color:var(--accent2);background:rgba(191,73,16,.1)}
.ev-upcoming .ev-link:hover{background:rgba(191,73,16,.18)}
.ev-actions{display:flex;gap:3px;flex-shrink:0;align-items:flex-start}
.empty{color:var(--text2);font-size:13px;text-align:center;padding:20px 0;font-weight:500}

/* Calendar */
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.cal-nav button{background:none;border:1px solid var(--border);border-radius:8px;padding:3px 10px;cursor:pointer;font-size:16px;color:var(--text);line-height:1.4;transition:background .1s}
.cal-nav button:hover{background:var(--surface2)}
.cal-month{font-size:14px;font-weight:700;text-transform:capitalize;letter-spacing:-.2px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-dn{font-size:10px;font-weight:700;text-align:center;color:var(--text2);padding:0 0 8px;text-transform:uppercase;letter-spacing:.4px}
.cal-d{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;font-size:12px;font-weight:500;position:relative;gap:2px;transition:background .1s}
.cal-d.other{opacity:.2}
.cal-d:not(.other){cursor:pointer}
.cal-d:not(.other):not(.today):not(.selected):hover{background:var(--surface2)}
.cal-d.active:not(.today){background:var(--accent-bg);color:var(--accent);font-weight:700}
.cal-d.today{background:var(--accent);color:#fff;font-weight:700}
.cal-d.selected:not(.today){background:var(--accent2);color:#fff;font-weight:700}
.view-date-reset{font-size:11px;font-weight:600;color:var(--accent2);background:var(--accent2-bg);border:none;border-radius:8px;padding:2px 8px;cursor:pointer;font-family:'Manrope',sans-serif;margin-left:auto;transition:opacity .15s}
.view-date-reset:hover{opacity:.75}
.dot{width:3px;height:3px;border-radius:50%;background:var(--accent)}
.today .dot{background:rgba(255,255,255,.7)}
.mb18{margin-bottom:18px}

/* ── ICON BUTTON ────────────────────────────────────────── */
.btn-icon{font-size:13px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:5px 8px;cursor:pointer;line-height:1;font-family:'Manrope',sans-serif;transition:background .1s}
.btn-icon:hover{background:var(--border)}
.btn-icon-danger:hover{background:#fde8df;border-color:var(--accent2)}

/* ── STAGING OVERLAY ─────────────────────────────────────── */
#staging-overlay{position:fixed;inset:0;background:rgba(20,20,18,.52);display:none;align-items:flex-start;justify-content:center;z-index:150;overflow-y:auto;padding:32px 16px;backdrop-filter:blur(3px)}
.staging-panel{background:var(--surface);border-radius:var(--radius);width:100%;max-width:660px;padding:28px;box-shadow:var(--shadow-lg);margin:auto}
.staging-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;gap:12px}
.staging-header h2{font-size:18px;font-weight:800;line-height:1.3;letter-spacing:-.3px}
.staging-meta{font-size:12px;color:var(--text2);font-weight:500;margin-top:4px}
.mode-bar{display:flex;gap:8px;margin-bottom:10px}
.mode-btn{font-family:'Manrope',sans-serif;font-size:13px;font-weight:600;background:var(--surface2);border:1px solid var(--border);padding:8px 18px;border-radius:20px;cursor:pointer;color:var(--text2);transition:background .15s,color .15s,border-color .15s}
.mode-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.mode-hint{font-size:12px;color:var(--text2);margin-bottom:16px;padding:10px 14px;background:var(--surface2);border-radius:10px;line-height:1.6}
.staging-list{max-height:52vh;overflow-y:auto;margin-bottom:20px}
.staging-ev{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:10px;border:1px solid var(--border);margin-bottom:8px;gap:10px;transition:opacity .2s}
.staging-ev.ev-exists{opacity:.35}
.stev-main{flex:1;min-width:0}
.stev-actions{display:flex;gap:6px;flex-shrink:0}
.staging-footer{display:flex;justify-content:flex-end;gap:10px;padding-top:16px;border-top:1px solid var(--border)}

/* ── EDIT MODAL ──────────────────────────────────────────── */
#edit-overlay{position:fixed;inset:0;background:rgba(20,20,18,.58);display:none;align-items:center;justify-content:center;z-index:200;padding:16px;backdrop-filter:blur(3px)}
.edit-card{background:var(--surface);border-radius:var(--radius);padding:32px;max-width:440px;width:100%;box-shadow:var(--shadow-lg)}
.edit-card h3{font-size:17px;font-weight:800;margin-bottom:20px;letter-spacing:-.3px}
.edit-field{margin-bottom:16px}
.edit-label{font-size:10.5px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px;display:block}
.edit-input{width:100%;font-family:'Manrope',sans-serif;font-size:13px;font-weight:600;border:1.5px solid var(--border);border-radius:10px;padding:9px 12px;outline:none;background:var(--surface2);color:var(--text);transition:border-color .15s}
.edit-input:focus{border-color:var(--accent)}
.edit-check-row{display:flex;align-items:center;gap:8px;margin-bottom:14px;font-size:13px;font-weight:600;cursor:pointer}
.edit-check-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}
.edit-footer{display:flex;gap:10px;margin-top:20px;justify-content:flex-end}

/* ── DATE PICKER ─────────────────────────────────────────── */
#dp-popup{position:fixed;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:16px;width:272px;z-index:300;display:none}
.dp-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.dp-nav button{background:none;border:1px solid var(--border);border-radius:8px;padding:3px 10px;cursor:pointer;font-size:15px;color:var(--text);line-height:1.4;transition:background .1s}
.dp-nav button:hover{background:var(--surface2)}
.dp-month{font-size:13px;font-weight:700;text-transform:capitalize;text-align:center;letter-spacing:-.2px}
.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.dp-dn{font-size:9px;font-weight:700;text-align:center;color:var(--text2);padding:0 0 6px;text-transform:uppercase}
.dp-d{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;user-select:none;transition:background .1s,color .1s}
.dp-d:hover:not(.dp-other){background:var(--surface2)}
.dp-d.dp-other{opacity:.2;pointer-events:none}
.dp-d.dp-start,.dp-d.dp-end{background:var(--accent)!important;color:#fff!important;font-weight:700}
.dp-d.dp-in-range{background:var(--accent-bg);color:var(--accent)}
.dp-d.dp-hover-range{background:var(--accent-bg);color:var(--accent);opacity:.7}
.dp-d.dp-today:not(.dp-start):not(.dp-end){outline:2px solid var(--accent);outline-offset:-2px;font-weight:700}
.dp-footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid var(--border);gap:8px}
.dp-hint{font-size:11px;font-weight:600;color:var(--text2);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dp-btn-clear{font-family:'Manrope',sans-serif;font-size:11px;font-weight:600;color:var(--text2);background:none;border:1px solid var(--border);border-radius:8px;padding:4px 10px;cursor:pointer;flex-shrink:0;transition:background .1s}
.dp-btn-clear:hover{background:var(--surface2)}
.dp-btn-ok{font-family:'Manrope',sans-serif;font-size:11px;font-weight:700;color:#fff;background:var(--accent);border:none;border-radius:8px;padding:4px 12px;cursor:pointer;flex-shrink:0;transition:opacity .1s}
.dp-btn-ok:hover{opacity:.88}
.period-input-wrap{display:flex;gap:8px;align-items:center}
.period-input-wrap .edit-input{flex:1}
.btn-calendar{font-family:'Manrope',sans-serif;font-size:14px;background:var(--surface2);border:1.5px solid var(--border);border-radius:10px;padding:8px 10px;cursor:pointer;line-height:1;flex-shrink:0;transition:background .1s}
.btn-calendar:hover{background:var(--border)}
/* ── TYPE CHIPS ──────────────────────────────────────────── */
.type-chips{display:flex;flex-wrap:wrap;gap:6px}
.type-chip{font-family:'Manrope',sans-serif;font-size:12px;font-weight:600;border:1.5px solid var(--border);border-radius:20px;padding:5px 13px;cursor:pointer;background:var(--surface2);color:var(--text2);transition:background .15s,color .15s,border-color .15s}
.type-chip:hover{border-color:var(--text2);color:var(--text)}
.type-chip.active{color:#fff;border-color:transparent}
/* ── ARCHIVE ─────────────────────────────────────────────── */
.arch-top{display:flex;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.arch-search{font-family:'Manrope',sans-serif;font-size:13px;font-weight:500;border:1.5px solid var(--border);border-radius:10px;padding:7px 12px;outline:none;background:var(--surface);color:var(--text);min-width:180px;max-width:280px;flex:1;transition:border-color .15s;box-shadow:var(--shadow-sm)}
.arch-search:focus{border-color:var(--accent)}
.arch-month-hd{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--text2);margin:18px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.arch-month-hd:first-child{margin-top:0}
.arch-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;overflow:hidden;box-shadow:var(--shadow-sm)}
.arch-ev{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;border-bottom:1px solid var(--border-light)}
.arch-ev:last-child{border-bottom:none}
/* ── VIEW TOGGLE ─────────────────────────────────────────── */
.view-tabs{display:flex;gap:3px;background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:3px;margin-bottom:20px;width:fit-content;box-shadow:var(--shadow-sm)}
.view-tab{font-family:'Manrope',sans-serif;font-size:12px;font-weight:600;border:none;background:none;padding:7px 18px;border-radius:19px;cursor:pointer;color:var(--text2);transition:background .15s,color .15s}
.view-tab.active{background:var(--accent);color:#fff;box-shadow:0 2px 6px rgba(30,95,53,.3)}

/* ── GANTT ───────────────────────────────────────────────── */
#view-gantt{display:none}
.gantt-top{display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.gantt-month-nav{display:flex;align-items:center;gap:8px}
.gantt-month-nav button{background:none;border:1px solid var(--border);border-radius:8px;padding:3px 10px;cursor:pointer;font-size:16px;color:var(--text);line-height:1.4;transition:background .1s}
.gantt-month-nav button:hover{background:var(--surface2)}
.gantt-month-label{font-size:15px;font-weight:800;text-transform:capitalize;min-width:170px;text-align:center;letter-spacing:-.3px}
.gantt-legend{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.gantt-leg{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--text2)}
.gantt-leg-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.count-chip{font-size:11px;font-weight:600;color:var(--text2);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:3px 10px;margin-left:auto;white-space:nowrap;box-shadow:var(--shadow-sm)}
.gantt-scroll{overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 220px);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-md)}
.gantt-table{border-collapse:collapse;table-layout:fixed}
.gantt-table th,.gantt-table td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);overflow:hidden}
/* sticky info columns */
.gcf{position:sticky;z-index:1;background:var(--surface)}
th.gcf{background:var(--surface2)!important;position:sticky;top:0;z-index:4;font-size:11px;font-weight:700;color:var(--text2);text-align:left;padding:8px 8px;white-space:nowrap}
td.gcf{padding:6px 8px;vertical-align:middle;font-size:11px}
/* sticky column offsets */
.gcf-num{left:0;width:36px;min-width:36px;max-width:36px}
.gcf-type{left:36px;width:90px;min-width:90px;max-width:90px}
.gcf-start{left:126px;width:86px;min-width:86px;max-width:86px}
.gcf-end{left:212px;width:86px;min-width:86px;max-width:86px}
.gcf-name{left:298px;width:240px;min-width:240px;max-width:240px;white-space:normal;line-height:1.35;box-shadow:4px 0 8px -2px rgba(0,0,0,.06)}
/* day header cells */
.gday-hd{position:sticky;top:0;z-index:2;width:26px;min-width:26px;max-width:26px;text-align:center;padding:3px 0!important;font-size:10px;font-weight:700;background:var(--surface2);line-height:1.25}
.gday-hd .gd-num{display:block;font-size:11px;font-weight:700;color:var(--text)}
.gday-hd .gd-name{display:block;font-size:9px;font-weight:500;text-transform:uppercase;color:var(--text2)}
.gday-hd.gday-weekend .gd-num{color:#dc2626}
.gday-hd.gday-weekend .gd-name{color:#dc2626}
.gday-hd.gday-today{background:var(--accent)!important}
.gday-hd.gday-today .gd-num,.gday-hd.gday-today .gd-name{color:#fff!important}
/* day body cells */
.gday-cell{width:26px;min-width:26px;max-width:26px;padding:4px 1px!important;vertical-align:middle}
.gday-cell.gday-weekend{background:rgba(0,0,0,.015)}
.gday-cell.gday-today{background:rgba(30,95,53,.07)}
/* event bar */
.gbar{height:16px;display:block;border-radius:0}
.gbar.bar-start{border-radius:5px 0 0 5px}
.gbar.bar-end{border-radius:0 5px 5px 0}
.gbar.bar-solo{border-radius:5px}
/* type chip */
.gantt-type-chip{display:inline-block;font-size:10px;font-weight:700;color:#fff;border-radius:4px;padding:2px 6px;letter-spacing:-.1px;white-space:nowrap}
/* name cell links */
td.gcf-name span{font-size:11px;font-weight:600;color:var(--text)}
td.gcf-name a{font-size:11px;font-weight:600;color:var(--accent);text-decoration:none}
td.gcf-name a:hover{text-decoration:underline}
/* row hover */
.gantt-table tbody tr:hover .gcf{background:var(--surface2)!important}
/* empty state */
.gantt-empty{text-align:center;color:var(--text2);padding:40px 0;font-size:13px;font-weight:600}

/* ── LIVE DOT ─────────────────────────────────────────────── */
.live-wrap{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--text2);background:var(--surface);border:1px solid var(--border);padding:5px 12px 5px 9px;border-radius:20px;box-shadow:var(--shadow-sm);cursor:help}
.live-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;flex-shrink:0;animation:livepulse 2.4s ease-in-out infinite;transition:background .3s}
.live-dot.paused{background:#94a3b8;animation:none}
.live-dot.offline{background:#f59e0b;animation:none}
@keyframes livepulse{0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}55%{box-shadow:0 0 0 5px rgba(34,197,94,0)}}

/* ── CARD TOP ACCENTS ─────────────────────────────────────── */
.card-accent-green{border-top:2.5px solid var(--accent)}
.card-accent-perm{border-top:2.5px solid var(--perm)}
.card-accent-orange{border-top:2.5px solid var(--accent2)}
