@import url('https://fonts.googleapis.com/css2?family=Unbounded:wght@400;600;700;800&family=Inter:wght@300;400;500;600&display=swap');
:root {
  --bg:#1c1c1e; --surface:#242426; --border:#363638; --text:#f0f0f0; --muted:#85858a; --accent:#4ade80;
  /* Москва */
  --msk-1:#4ade80; --msk-2:#fb923c; --msk-3:#60a5fa;
  /* СПб */
  --spb-1:#a78bfa; --spb-2:#f472b6; --spb-3:#34d399; --spb-4:#38bdf8;
  --custom:#facc15; --off:#2c2c2e; --split:#c084fc;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;padding:16px;max-width:1400px;margin:0 auto;}

/* CITY TABS */
.city-tabs{display:flex;gap:6px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--border);}
.city-tab{flex:1;padding:10px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font-family:'Unbounded',sans-serif;font-size:12px;font-weight:600;cursor:pointer;text-align:center;transition:all 0.15s;max-width:160px;}
.city-tab:hover{border-color:#6c6c70;color:var(--text);}
.city-tab.active-msk{background:rgba(74,222,128,0.12);border-color:var(--msk-1);color:var(--msk-1);}
.city-tab.active-spb{background:rgba(167,139,250,0.12);border-color:var(--spb-1);color:var(--spb-1);}

/* TOP ROW */
.top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:8px;flex-wrap:wrap;}
h1{font-family:'Unbounded',sans-serif;font-size:19px;font-weight:800;letter-spacing:-0.4px;display:flex;align-items:center;gap:8px;}
.top-btns{display:flex;gap:7px;align-items:center;flex-wrap:wrap;}
.icon-btn{background:var(--surface);border:1px solid var(--border);color:var(--muted);padding:8px 12px;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;transition:all 0.15s;white-space:nowrap;}
.icon-btn:hover{border-color:#6c6c70;color:var(--text);}
.lock-badge{display:inline-flex;align-items:center;gap:5px;padding:8px 12px;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;transition:all 0.15s;border:1px solid;white-space:nowrap;}
.lock-badge.locked{background:var(--surface);border-color:var(--border);color:var(--muted);}
.lock-badge.locked:hover{border-color:#6c6c70;color:var(--text);}
.lock-badge.unlocked{background:rgba(74,222,128,0.12);border-color:var(--accent);color:var(--accent);}
.sync-dot{width:7px;height:7px;border-radius:50%;display:inline-block;}
.sync-dot.ok{background:var(--accent);} .sync-dot.loading{background:var(--custom);animation:pulse 0.8s infinite;} .sync-dot.err{background:#f87171;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.3;}}

/* MONTH NAV */
.month-nav{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.month-nav button{background:var(--surface);border:1px solid var(--border);color:var(--text);width:34px;height:34px;border-radius:8px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all 0.15s;}
.month-nav button:hover{border-color:#6c6c70;}
.month-label{font-family:'Unbounded',sans-serif;font-size:15px;font-weight:700;min-width:140px;letter-spacing:-0.2px;}

/* FILTERS */
.filters-section{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.filter-group{background:#202022;border:1px solid var(--border);border-radius:10px;padding:8px 10px;flex:1;min-width:0;}
.filter-group-label{display:flex;align-items:center;gap:5px;font-family:'Unbounded',sans-serif;font-size:9px;font-weight:600;color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:6px;}
.filter-row{display:flex;gap:5px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:1px;}
.filter-row::-webkit-scrollbar{display:none;}
.filter-tag{background:#29292b;border:1px solid #404042;border-radius:6px;padding:5px 10px;font-size:12px;font-weight:500;cursor:pointer;transition:all 0.15s;user-select:none;white-space:nowrap;flex-shrink:0;}
.filter-tag:hover{border-color:#6c6c70;}
.filter-tag.active-emp{border-color:#fff;background:#fff;color:#000;font-weight:600;}
.filter-tag.active-loc-msk-1,.filter-tag.active-loc-lesnaya{border-color:var(--msk-1);background:var(--msk-1);color:#000;font-weight:600;}
.filter-tag.active-loc-msk-2,.filter-tag.active-loc-dizain{border-color:var(--msk-2);background:var(--msk-2);color:#000;font-weight:600;}
.filter-tag.active-loc-msk-3,.filter-tag.active-loc-vokzal{border-color:var(--msk-3);background:var(--msk-3);color:#000;font-weight:600;}
.filter-tag.active-loc-spb-1,.filter-tag.active-loc-sevkabel{border-color:var(--spb-1);background:var(--spb-1);color:#000;font-weight:600;}
.filter-tag.active-loc-spb-2,.filter-tag.active-loc-pik{border-color:var(--spb-2);background:var(--spb-2);color:#000;font-weight:600;}
.filter-tag.active-loc-spb-3,.filter-tag.active-loc-spb-vokzal{border-color:var(--spb-3);background:var(--spb-3);color:#000;font-weight:600;}
.filter-tag.active-loc-chern{border-color:var(--spb-4);background:var(--spb-4);color:#000;font-weight:600;}

/* VIEW TOGGLE */
.view-toggle{display:none;gap:6px;margin-bottom:10px;}
.view-toggle-btn{flex:1;background:var(--surface);border:1px solid var(--border);color:var(--muted);padding:8px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;text-align:center;transition:all 0.15s;}
.view-toggle-btn.active{background:#fff;color:#000;border-color:#fff;}

/* TABLE */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px;border:1px solid var(--border);box-shadow:0 4px 24px rgba(0,0,0,0.3);}
table{width:100%;border-collapse:collapse;min-width:700px;}
thead th{background:#202022;padding:10px 8px;text-align:center;font-size:11px;font-weight:500;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;}
thead th:first-child{text-align:left;padding-left:14px;min-width:80px;position:sticky;left:0;background:#202022;z-index:2;}
tbody tr:not(:last-child) td{border-bottom:1px solid var(--border);}
tbody tr:hover td{background:#2b2b2d;}
tbody td{padding:5px;text-align:center;vertical-align:middle;}
tbody td:first-child{text-align:left;padding-left:14px;font-size:12px;font-weight:600;white-space:nowrap;position:sticky;left:0;background:var(--surface);z-index:1;border-right:1px solid var(--border);}

/* TODAY COLUMN */
thead th.today-col{background:rgba(74,222,128,0.18);color:var(--accent);}
tbody td.today-col{background:rgba(74,222,128,0.07);}

/* CELLS */
.cell{width:100%;min-height:36px;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity 0.15s,transform 0.1s;padding:2px;user-select:none;position:relative;}
.cell.editable{cursor:pointer;}
.cell.editable:hover{opacity:0.85;transform:scale(0.96);}
.cell-label{font-size:9px;font-weight:700;letter-spacing:0.3px;text-transform:uppercase;color:rgba(0,0,0,0.72);line-height:1;}
.cell-time{font-size:8px;color:rgba(0,0,0,0.52);margin-top:1px;}
/* Москва */
.cell.lesnaya{background:var(--msk-1);} .cell.dizain{background:var(--msk-2);} .cell.vokzal{background:var(--msk-3);}
/* СПб */
.cell.sevkabel{background:var(--spb-1);} .cell.pik{background:var(--spb-2);} .cell.spb-vokzal{background:var(--spb-3);} .cell.chern{background:var(--spb-4);}
/* Custom per location */
.cell.custom-lesnaya{background:color-mix(in srgb,var(--msk-1) 65%,white 35%);}
.cell.custom-dizain{background:color-mix(in srgb,var(--msk-2) 65%,white 35%);}
.cell.custom-vokzal{background:color-mix(in srgb,var(--msk-3) 65%,white 35%);}
.cell.custom-sevkabel{background:color-mix(in srgb,var(--spb-1) 65%,white 35%);}
.cell.custom-pik{background:color-mix(in srgb,var(--spb-2) 65%,white 35%);}
.cell.custom-spb-vokzal{background:color-mix(in srgb,var(--spb-3) 65%,white 35%);}
.cell.custom-chern{background:color-mix(in srgb,var(--spb-4) 65%,white 35%);}
.cell.off{background:var(--off);} .cell.off .cell-label{color:#48484a;}
.cell.vacation{background:#000;}
.cell.deins{background-image:repeating-linear-gradient(135deg,rgba(0,0,0,0.16) 0 4px,transparent 4px 9px);box-shadow:inset 0 0 0 2px rgba(0,0,0,0.55);}
.cell.highlighted{outline:2px solid #fff;outline-offset:1px;} .cell.dimmed{opacity:0.12!important;}

/* CALENDAR VIEW (mobile) */
.cal-view{display:none;}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin-bottom:12px;}
.cal-header{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin-bottom:4px;}
.cal-header-day{text-align:center;font-size:10px;font-weight:600;color:var(--muted);padding:4px 0;}
.cal-day{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:4px;min-width:0;min-height:72px;cursor:pointer;transition:all 0.15s;}
.cal-day:hover{border-color:#55555a;}
.cal-day.other-month{opacity:0.25;}
.cal-day.today .cal-day-num{background:var(--accent);color:#000;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;}
.cal-day-num{font-size:11px;font-weight:700;margin-bottom:3px;color:var(--text);}
.cal-day-num.weekend{color:#f87171;}
.cal-chip{display:block;width:100%;min-width:0;border-radius:4px;padding:1px 4px;font-size:9px;font-weight:700;color:rgba(0,0,0,0.75);margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cal-chip.lesnaya{background:var(--msk-1);} .cal-chip.dizain{background:var(--msk-2);} .cal-chip.vokzal{background:var(--msk-3);}
.cal-chip.sevkabel{background:var(--spb-1);} .cal-chip.pik{background:var(--spb-2);} .cal-chip.spb-vokzal{background:var(--spb-3);} .cal-chip.chern{background:var(--spb-4);}
.cal-chip.custom-lesnaya{background:color-mix(in srgb,var(--msk-1) 65%,white 35%);}
.cal-chip.custom-dizain{background:color-mix(in srgb,var(--msk-2) 65%,white 35%);}
.cal-chip.custom-vokzal{background:color-mix(in srgb,var(--msk-3) 65%,white 35%);}
.cal-chip.custom-sevkabel{background:color-mix(in srgb,var(--spb-1) 65%,white 35%);}
.cal-chip.custom-pik{background:color-mix(in srgb,var(--spb-2) 65%,white 35%);}
.cal-chip.custom-spb-vokzal{background:color-mix(in srgb,var(--spb-3) 65%,white 35%);}
.cal-chip.custom-chern{background:color-mix(in srgb,var(--spb-4) 65%,white 35%);}
.cal-chip.deins{background-image:repeating-linear-gradient(135deg,rgba(0,0,0,0.2) 0 2px,transparent 2px 5px);}

/* STATS */
.stats-bar{display:none;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.stat{background:#202022;border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-size:11px;display:flex;align-items:center;gap:6px;}
.stat-val{font-family:'Unbounded',sans-serif;font-size:13px;font-weight:700;display:inline;}
.stat-val.c1{color:var(--msk-1);} .stat-val.c2{color:var(--msk-2);} .stat-val.c3{color:var(--msk-3);}
.stat-val.cs1{color:var(--spb-1);} .stat-val.cs2{color:var(--spb-2);} .stat-val.cs3{color:var(--spb-3);} .stat-val.cs4{color:var(--spb-4);}
.stat-lbl{color:var(--muted);font-size:10px;}

/* BOTTOM INFO */
.bottom-info{margin-top:18px;padding-top:16px;border-top:1px solid var(--border);}
.legend{display:flex;flex-wrap:wrap;gap:8px;}
.legend-item{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted);}
.dot{width:8px;height:8px;border-radius:2px;flex-shrink:0;}
.dot.deins-sample{background-image:repeating-linear-gradient(135deg,rgba(0,0,0,0.35) 0 2px,transparent 2px 4px);box-shadow:inset 0 0 0 1px rgba(0,0,0,0.4);}
.dot.vacation{background:#000;box-shadow:inset 0 0 0 1px #4a4a4a;}

/* HOURS PANEL */
.emp-hours-panel{display:none;background:#202022;border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:14px;}
.emp-hours-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.emp-hours-title{font-family:'Unbounded',sans-serif;font-size:12px;font-weight:700;}
.period-toggle-btn{background:var(--surface);border:1px solid var(--border);color:var(--muted);padding:6px 12px;border-radius:7px;font-size:11px;font-weight:500;cursor:pointer;transition:all 0.15s;white-space:nowrap;}
.period-toggle-btn.active{background:rgba(74,222,128,0.12);border-color:var(--accent);color:var(--accent);}
.period-picker{background:#262628;border-radius:10px;padding:12px;margin-bottom:12px;display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;}
.period-dates{display:flex;gap:10px;flex-wrap:wrap;}
.period-dates label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted);}
.period-dates input[type=date]{background:#363638;border:1px solid #48484a;border-radius:7px;color:var(--text);padding:7px 9px;font-size:13px;font-family:'Inter',sans-serif;}
.period-calc-btn{background:var(--accent);color:#000;border:none;border-radius:7px;padding:8px 16px;font-size:12px;font-weight:600;cursor:pointer;}
.emp-hours-list{display:flex;flex-direction:column;gap:6px;}
.emp-hours-row{display:flex;flex-direction:column;gap:5px;padding:8px 10px;border-radius:8px;background:#262628;}
.emp-hours-row-top{display:flex;align-items:center;justify-content:space-between;}
.emp-hours-name{font-weight:600;font-size:13px;}
.emp-hours-detail{color:var(--muted);font-size:11px;}
.emp-hours-total{font-family:'Unbounded',sans-serif;font-weight:700;color:var(--accent);font-size:14px;}
.emp-hours-breakdown{display:flex;gap:5px;flex-wrap:wrap;}
.emp-loc-chip{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:5px;font-size:10px;font-weight:600;color:rgba(0,0,0,0.75);}
.emp-loc-chip.lesnaya{background:var(--msk-1);} .emp-loc-chip.dizain{background:var(--msk-2);} .emp-loc-chip.vokzal{background:var(--msk-3);}
.emp-loc-chip.sevkabel{background:var(--spb-1);} .emp-loc-chip.pik{background:var(--spb-2);} .emp-loc-chip.spb-vokzal{background:var(--spb-3);} .emp-loc-chip.chern{background:var(--spb-4);}
.emp-hours-empty{color:var(--muted);font-size:12px;text-align:center;padding:10px;}

/* MODALS */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.75);z-index:100;align-items:flex-end;justify-content:center;}
.modal-overlay.open{display:flex;}
.modal{background:#242426;border:1px solid var(--border);border-radius:20px 20px 0 0;padding:22px;width:100%;max-width:480px;animation:slideUp 0.2s ease;max-height:90vh;overflow-y:auto;}
.modal-sm{max-width:340px;}
@keyframes slideUp{from{transform:translateY(20px);opacity:0;}to{transform:translateY(0);opacity:1;}}
.modal-title{font-family:'Unbounded',sans-serif;font-size:14px;font-weight:600;margin-bottom:14px;}
.save-status{min-height:0;color:var(--muted);font-size:12px;margin-top:-8px;margin-bottom:8px;}
.modal.is-saving{opacity:0.72;cursor:progress;}
.modal.is-saving button,.modal.is-saving input,.modal.is-saving select{pointer-events:none;}
.modal-cancel{width:100%;padding:11px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;font-size:13px;margin-top:8px;}
.modal-options{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:10px;}
.modal-btn{padding:11px;border-radius:10px;border:none;cursor:pointer;font-size:12px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:3px;transition:opacity 0.15s;}
.modal-btn:hover{opacity:0.85;}
.modal-btn span{font-size:10px;font-weight:400;opacity:0.7;}
.modal-btn.lesnaya{background:var(--msk-1);color:#000;} .modal-btn.dizain{background:var(--msk-2);color:#000;} .modal-btn.vokzal{background:var(--msk-3);color:#000;}
.modal-btn.sevkabel{background:var(--spb-1);color:#000;} .modal-btn.pik{background:var(--spb-2);color:#000;} .modal-btn.spb-vokzal{background:var(--spb-3);color:#000;} .modal-btn.chern{background:var(--spb-4);color:#000;}
.modal-btn.off{background:#404042;color:#aaa;}
.modal-btn.vacation{background:#000;color:#ccc;border:1px solid #3a3a3a;}
.custom-time-block{background:#2c2c2e;border-radius:12px;padding:13px;margin-bottom:10px;border:1px solid var(--border);}
.custom-time-block .block-label{font-size:10px;color:var(--muted);margin-bottom:8px;font-weight:500;text-transform:uppercase;letter-spacing:0.5px;}
.time-inputs{display:flex;align-items:center;gap:8px;}
.time-inputs label{font-size:11px;color:var(--muted);}
.time-inputs input[type=time]{background:#363638;border:1px solid #48484a;border-radius:7px;color:var(--text);padding:7px 9px;font-size:14px;font-family:'Inter',sans-serif;width:105px;}
.time-sep{color:var(--muted);}
.loc-select{margin-top:8px;}
.loc-select label{font-size:11px;color:var(--muted);display:block;margin-bottom:5px;}
.loc-select select{background:#363638;border:1px solid #48484a;border-radius:7px;color:var(--text);padding:7px 9px;font-size:13px;font-family:'Inter',sans-serif;width:100%;}
.apply-custom-btn{width:100%;margin-top:8px;padding:10px;border-radius:9px;border:none;background:var(--custom);color:#000;font-size:13px;font-weight:600;cursor:pointer;}
.deins-block{background:#2a2210;border:1px solid #4d3d10;border-radius:12px;padding:12px;margin-bottom:10px;}
.deins-check{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;}
.deins-check input[type=checkbox]{width:17px;height:17px;accent-color:var(--custom);cursor:pointer;flex-shrink:0;}
.deins-hint{font-size:11px;color:var(--custom);margin-top:5px;margin-left:25px;min-height:14px;}
.confirm-shift-btn{width:100%;margin-top:8px;padding:11px;border-radius:9px;border:none;background:var(--accent);color:#000;font-size:13px;font-weight:600;cursor:pointer;}
.emp-order-hint{color:var(--muted);font-size:11px;line-height:1.4;margin:-5px 0 12px;}
.emp-list{display:flex;flex-direction:column;gap:7px;margin-bottom:14px;max-height:280px;overflow-y:auto;}
.emp-row{display:flex;align-items:center;gap:10px;background:#2c2c2e;border-radius:9px;padding:9px 12px;}
.emp-row input[type=text]{flex:1;background:transparent;border:none;color:var(--text);font-size:14px;font-family:'Inter',sans-serif;outline:none;}
.emp-row .del-btn{background:none;border:none;color:#85858a;font-size:18px;cursor:pointer;padding:0 4px;}
.emp-row .del-btn:hover{color:#f87171;}
.emp-move-btn{width:28px;height:28px;border:1px solid #48484a;border-radius:7px;background:#363638;color:var(--text);font-size:15px;font-weight:700;cursor:pointer;line-height:1;flex-shrink:0;}
.emp-move-btn:hover:not(:disabled){border-color:#85858a;background:#48484a;}
.emp-move-btn:disabled{opacity:0.32;cursor:default;}
.add-emp-btn{width:100%;padding:10px;border-radius:9px;border:1px dashed #55555a;background:transparent;color:var(--muted);font-size:13px;cursor:pointer;margin-bottom:8px;}
.save-emp-btn{width:100%;padding:11px;border-radius:9px;border:none;background:#fff;color:#000;font-size:13px;font-weight:600;cursor:pointer;margin-bottom:8px;}
.pin-modal{background:#242426;border:1px solid var(--border);border-radius:20px 20px 0 0;padding:26px 22px;width:100%;max-width:320px;animation:slideUp 0.2s ease;text-align:center;}
.pin-title{font-family:'Unbounded',sans-serif;font-size:14px;font-weight:700;margin-bottom:5px;}
.pin-sub{font-size:12px;color:var(--muted);margin-bottom:22px;}
.pin-dots{display:flex;justify-content:center;gap:13px;margin-bottom:22px;}
.pin-dot{width:13px;height:13px;border-radius:50%;border:2px solid #55555a;background:transparent;transition:all 0.15s;}
.pin-dot.filled{background:#fff;border-color:#fff;} .pin-dot.error{background:#f87171;border-color:#f87171;}
.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:10px;}
.pin-btn{background:#2f2f31;border:1px solid #404042;border-radius:11px;color:var(--text);font-size:20px;font-family:'Unbounded',sans-serif;padding:15px;cursor:pointer;transition:background 0.1s;}
.pin-btn:active{background:#48484a;transform:scale(0.95);}
.pin-btn.del{font-size:15px;color:var(--muted);}
.pin-error{color:#f87171;font-size:12px;min-height:16px;margin-bottom:4px;}
.editor-password{width:100%;background:#363638;border:1px solid #48484a;border-radius:9px;color:var(--text);padding:11px 12px;font-size:16px;font-family:'Inter',sans-serif;margin-bottom:10px;}
.setup-page{max-width:420px;margin:12vh auto;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:16px;}
.setup-page h1{margin-bottom:10px;}.setup-page p{color:var(--muted);font-size:14px;line-height:1.5;}.setup-form{display:flex;flex-direction:column;gap:12px;margin-top:20px;}.setup-form label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px;}.setup-form input{background:#363638;border:1px solid #48484a;border-radius:8px;color:var(--text);padding:10px;font:inherit;}.setup-form button{background:var(--accent);border:0;border-radius:8px;padding:11px;font-weight:700;cursor:pointer;}
.pin-setup-block{background:#2c2c2e;border-radius:11px;padding:13px;margin-bottom:10px;text-align:left;}
.pin-setup-block label{font-size:11px;color:var(--muted);display:block;margin-bottom:5px;text-transform:uppercase;letter-spacing:0.5px;}
.pin-setup-block input{background:#363638;border:1px solid #48484a;border-radius:7px;color:var(--text);padding:9px 12px;font-size:20px;font-family:'Unbounded',sans-serif;width:100%;letter-spacing:6px;text-align:center;}
.pin-save-btn{width:100%;padding:11px;border-radius:9px;border:none;background:var(--accent);color:#000;font-size:13px;font-weight:600;cursor:pointer;margin-bottom:8px;}

/* RESPONSIVE */
@media(max-width:640px){
  body{padding:12px;}
  .filters-section{flex-direction:column;gap:5px;}
  .filter-group{display:flex;align-items:center;gap:8px;padding:6px 10px;min-width:0;width:100%;}
  .filter-group-label{margin-bottom:0;flex-shrink:0;}
  .filter-row{flex:1 1 0;min-width:0;}
  .view-toggle{display:flex;}
  body.view-cal .table-wrap{display:none;}
  body.view-cal .cal-view{display:block;}
  body.view-table .cal-view{display:none;}
  body.view-table .table-wrap{display:block;}
}
