/* ═══════════════════════════════════════════════════════════════════
   CALENDAR — standalone module styles. All selectors are cal-prefixed
   and scoped under #calendar-tracker (modals/toasts included there).
   Uses only the site-wide design tokens (--bg,--tx,--bl,--r,…) plus a
   module-local accent (--cal-acc, set from calendar settings).
   ═══════════════════════════════════════════════════════════════════ */
#calendar-tracker{--cal-acc:#3b82f6;}
#calendar-tracker .cal-shell{display:flex;flex-direction:column;height:calc(100vh - 61px);min-height:480px;}

/* ── Toolbar ─────────────────────────────────────────────────────── */
#calendar-tracker .cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-bottom:.5px solid var(--bl);flex-wrap:wrap;background:var(--bg);}
#calendar-tracker .cal-tb-left,#calendar-tracker .cal-tb-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
#calendar-tracker .cal-tb-btn{padding:7px 12px;font-size:13px;font-family:var(--f);background:none;border:.5px solid var(--bm);border-radius:var(--r);cursor:pointer;color:var(--tx2);transition:all .15s;line-height:1;}
#calendar-tracker .cal-tb-btn:hover{background:var(--bg2);color:var(--tx);}
#calendar-tracker .cal-nav-btns{display:flex;gap:0;}
#calendar-tracker .cal-nav-btns .cal-tb-btn{font-size:16px;padding:5px 12px;}
#calendar-tracker .cal-nav-btns .cal-tb-btn:first-child{border-radius:var(--r) 0 0 var(--r);border-right:none;}
#calendar-tracker .cal-nav-btns .cal-tb-btn:last-child{border-radius:0 var(--r) var(--r) 0;}
#calendar-tracker .cal-tb-title{font-size:17px;font-weight:600;letter-spacing:-.2px;margin-left:6px;white-space:nowrap;}
#calendar-tracker .cal-newbtn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;font-family:var(--f);background:var(--cal-acc);color:#fff;border:none;border-radius:var(--r);cursor:pointer;transition:opacity .15s;}
#calendar-tracker .cal-newbtn:hover{opacity:.85;}
#calendar-tracker .cal-plus{font-size:14px;line-height:1;}
#calendar-tracker .cal-sb-toggle{display:none;}

/* View segment */
#calendar-tracker .cal-viewseg{display:flex;background:var(--bg2);border-radius:var(--r);padding:3px;gap:2px;}
#calendar-tracker .cal-viewseg button{padding:6px 12px;font-size:12px;font-weight:500;font-family:var(--f);background:none;border:none;border-radius:6px;cursor:pointer;color:var(--tx2);transition:all .15s;white-space:nowrap;}
#calendar-tracker .cal-viewseg button:hover{color:var(--tx);}
#calendar-tracker .cal-viewseg button.active{background:var(--bg);color:var(--tx);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.12);}

/* Search */
#calendar-tracker .cal-search-wrap{position:relative;}
#calendar-tracker .cal-search{width:200px;padding:8px 12px;font-size:13px;font-family:var(--f);border:.5px solid var(--bm);border-radius:var(--r);background:var(--bg2);color:var(--tx);outline:none;transition:all .15s;}
#calendar-tracker .cal-search:focus{border-color:var(--cal-acc);background:var(--bg);width:240px;}
#calendar-tracker .cal-search-dd{position:absolute;top:calc(100% + 6px);right:0;width:320px;max-height:340px;overflow-y:auto;background:var(--bg);border:.5px solid var(--bm);border-radius:var(--rl);box-shadow:0 8px 28px rgba(0,0,0,.18);z-index:60;padding:6px;}
#calendar-tracker .cal-search-hit{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r);cursor:pointer;flex-wrap:wrap;}
#calendar-tracker .cal-search-hit:hover{background:var(--bg2);}
#calendar-tracker .cal-sh-title{font-size:13px;font-weight:600;}
#calendar-tracker .cal-sh-meta{font-size:11px;color:var(--tx3);width:100%;padding-left:16px;}
#calendar-tracker .cal-search-none{padding:14px;font-size:13px;color:var(--tx3);text-align:center;}

/* ── Body layout ─────────────────────────────────────────────────── */
#calendar-tracker .cal-body{display:flex;flex:1;min-height:0;}
#calendar-tracker .cal-sidebar{width:250px;flex-shrink:0;border-right:.5px solid var(--bl);padding:14px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;background:var(--bg);}
#calendar-tracker .cal-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);}
#calendar-tracker .cal-sb-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:40;}

/* Sidebar cards */
#calendar-tracker .cal-quickadd{width:100%;padding:10px;font-size:13px;font-weight:600;font-family:var(--f);background:var(--cal-acc);color:#fff;border:none;border-radius:var(--r);cursor:pointer;transition:opacity .15s;}
#calendar-tracker .cal-quickadd:hover{opacity:.85;}
#calendar-tracker .cal-side-card{background:var(--bg2);border-radius:var(--rl);padding:12px;}
#calendar-tracker .cal-side-title{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--tx2);margin-bottom:10px;}
#calendar-tracker .cal-side-link{font-size:11px;font-family:var(--f);background:none;border:none;color:var(--cal-acc);cursor:pointer;padding:0;font-weight:600;text-transform:none;letter-spacing:0;}
#calendar-tracker .cal-side-empty{font-size:12px;color:var(--tx3);padding:4px 0;}

/* Mini calendar */
#calendar-tracker .cal-mini-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
#calendar-tracker .cal-mini-title{font-size:13px;font-weight:600;}
#calendar-tracker .cal-mini-nav button{background:none;border:none;cursor:pointer;color:var(--tx2);font-size:15px;padding:2px 7px;border-radius:4px;}
#calendar-tracker .cal-mini-nav button:hover{background:var(--bg3);color:var(--tx);}
#calendar-tracker .cal-mini-dows{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:9px;font-weight:600;color:var(--tx3);text-transform:uppercase;margin-bottom:3px;}
#calendar-tracker .cal-mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;}
#calendar-tracker .cal-mini-d{position:relative;aspect-ratio:1;border:none;background:none;font-size:11px;font-family:var(--f);color:var(--tx);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s;}
#calendar-tracker .cal-mini-d:hover{background:var(--bg3);}
#calendar-tracker .cal-mini-d.other{color:var(--tx3);}
#calendar-tracker .cal-mini-d.today{background:var(--cal-acc);color:#fff;font-weight:700;}
#calendar-tracker .cal-mini-d.sel:not(.today){box-shadow:inset 0 0 0 1.5px var(--cal-acc);}
#calendar-tracker .cal-mini-dot{position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:3px;height:3px;border-radius:50%;background:var(--cal-acc);}
#calendar-tracker .cal-mini-d.today .cal-mini-dot{background:#fff;}

/* Upcoming */
#calendar-tracker .cal-up-ev{display:flex;align-items:flex-start;gap:8px;padding:6px 4px;border-radius:var(--r);cursor:pointer;transition:background .12s;}
#calendar-tracker .cal-up-ev:hover{background:var(--bg3);}
#calendar-tracker .cal-up-ev.done{opacity:.55;}
#calendar-tracker .cal-up-ev.done .cal-up-title{text-decoration:line-through;}
#calendar-tracker .cal-up-dot{width:8px;height:8px;border-radius:3px;margin-top:4px;flex-shrink:0;}
#calendar-tracker .cal-up-txt{min-width:0;}
#calendar-tracker .cal-up-title{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#calendar-tracker .cal-up-when{font-size:11px;color:var(--tx3);}

/* Sidebar categories */
#calendar-tracker .cal-cat-row{display:flex;align-items:center;gap:8px;padding:5px 4px;border-radius:var(--r);cursor:pointer;font-size:12px;}
#calendar-tracker .cal-cat-row:hover{background:var(--bg3);}
#calendar-tracker .cal-cat-row input{accent-color:var(--cal-acc);cursor:pointer;}
#calendar-tracker .cal-cat-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0;}
#calendar-tracker .cal-cat-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#calendar-tracker .cal-cat-add{width:100%;margin-top:6px;padding:6px;font-size:12px;font-family:var(--f);background:none;border:1px dashed var(--bm);border-radius:var(--r);cursor:pointer;color:var(--tx2);transition:all .15s;}
#calendar-tracker .cal-cat-add:hover{color:var(--tx);border-color:var(--bs);}

/* ── Month view ──────────────────────────────────────────────────── */
#calendar-tracker .cal-monthview{display:flex;flex-direction:column;flex:1;min-height:0;}
#calendar-tracker .cal-mv-head{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--tx2);padding:8px 0 6px;border-bottom:.5px solid var(--bl);}
#calendar-tracker .cal-mv-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,1fr);flex:1;min-height:0;}
#calendar-tracker .cal-mv-cell{border-right:.5px solid var(--bl);border-bottom:.5px solid var(--bl);padding:4px;min-height:0;overflow:hidden;cursor:pointer;transition:background .12s;display:flex;flex-direction:column;gap:2px;}
#calendar-tracker .cal-mv-cell:nth-child(7n){border-right:none;}
#calendar-tracker .cal-mv-cell:hover{background:var(--bg2);}
#calendar-tracker .cal-mv-cell.dropover{background:color-mix(in srgb,var(--cal-acc) 12%,var(--bg));}
#calendar-tracker .cal-mv-cell.other{background:var(--bg2);}
#calendar-tracker .cal-mv-cell.other .cal-mv-daynum{color:var(--tx3);}
#calendar-tracker .cal-mv-cell.other:hover{background:var(--bg3);}
#calendar-tracker .cal-mv-daynum{font-size:12px;font-weight:600;line-height:1;padding:2px;flex-shrink:0;}
#calendar-tracker .cal-mv-cell.today .cal-mv-daynum span{background:var(--cal-acc);color:#fff;border-radius:50%;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;}
#calendar-tracker .cal-mv-ev{font-size:11px;line-height:1.35;padding:2px 6px;border-radius:5px;background:color-mix(in srgb,var(--ec) 16%,transparent);border-left:3px solid var(--ec);color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;flex-shrink:0;transition:filter .12s;}
#calendar-tracker .cal-mv-ev:hover{filter:brightness(1.12);}
#calendar-tracker .cal-mv-ev.done{opacity:.5;text-decoration:line-through;}
#calendar-tracker .cal-mv-ev.contL{border-left:none;border-radius:0 5px 5px 0;}
#calendar-tracker .cal-mv-ev.contR{border-radius:5px 0 0 5px;}
#calendar-tracker .cal-mv-ev.contL.contR{border-radius:0;}
#calendar-tracker .cal-mv-ev-time{font-weight:600;color:var(--ec);margin-right:4px;font-size:10px;}
#calendar-tracker .cal-mv-more{font-size:10px;font-weight:600;color:var(--tx2);padding:1px 6px;cursor:pointer;border-radius:4px;flex-shrink:0;}
#calendar-tracker .cal-mv-more:hover{background:var(--bg3);color:var(--tx);}

/* ── Time grid (week/day) ────────────────────────────────────────── */
#calendar-tracker .cal-timegrid{display:flex;flex-direction:column;flex:1;min-height:0;}
#calendar-tracker .cal-tg-head{display:grid;grid-template-columns:56px repeat(var(--ncols),1fr);border-bottom:.5px solid var(--bl);}
#calendar-tracker .cal-tg-dayhead{text-align:center;padding:8px 0 6px;cursor:pointer;border-left:.5px solid var(--bl);}
#calendar-tracker .cal-tg-dayhead:hover .cal-tg-dnum{background:var(--bg3);}
#calendar-tracker .cal-tg-dow{display:block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--tx2);}
#calendar-tracker .cal-tg-dnum{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-size:15px;font-weight:600;margin-top:2px;transition:background .12s;}
#calendar-tracker .cal-tg-dayhead.today .cal-tg-dnum{background:var(--cal-acc);color:#fff;}
#calendar-tracker .cal-tg-allday{display:grid;grid-template-columns:56px repeat(var(--ncols),1fr);border-bottom:.5px solid var(--bl);min-height:26px;max-height:110px;overflow-y:auto;}
#calendar-tracker .cal-tg-gutter-ad{font-size:9px;color:var(--tx3);text-transform:uppercase;text-align:right;padding:5px 6px 0 0;}
#calendar-tracker .cal-tg-adcell{padding:2px 3px;display:flex;flex-direction:column;gap:2px;border-left:.5px solid var(--bl);}
#calendar-tracker .cal-ad-ev{font-size:11px;font-weight:600;line-height:1.4;padding:2px 7px;border-radius:5px;background:color-mix(in srgb,var(--ec) 78%,var(--bg));color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;}
#calendar-tracker .cal-ad-ev:hover{filter:brightness(1.1);}
#calendar-tracker .cal-ad-ev.done{opacity:.5;text-decoration:line-through;}
#calendar-tracker .cal-ad-ev.contL{border-radius:0 5px 5px 0;}
#calendar-tracker .cal-ad-ev.contR{border-radius:5px 0 0 5px;}
#calendar-tracker .cal-tg-scroll{flex:1;overflow-y:auto;min-height:0;}
#calendar-tracker .cal-tg-grid{display:grid;grid-template-columns:56px repeat(var(--ncols),1fr);position:relative;}
#calendar-tracker .cal-tg-gutter{position:relative;}
#calendar-tracker .cal-tg-hour-lbl{position:absolute;right:6px;transform:translateY(-50%);font-size:10px;color:var(--tx3);white-space:nowrap;}
#calendar-tracker .cal-tg-col{position:relative;border-left:.5px solid var(--bl);cursor:pointer;}
#calendar-tracker .cal-tg-line{position:absolute;left:0;right:0;height:0;border-top:.5px solid var(--bl);pointer-events:none;}
#calendar-tracker .cal-tg-ev{position:absolute;z-index:2;border-radius:6px;background:color-mix(in srgb,var(--ec) 20%,var(--bg));border-left:3px solid var(--ec);padding:3px 6px;overflow:hidden;cursor:grab;user-select:none;touch-action:none;transition:box-shadow .12s;}
#calendar-tracker .cal-tg-ev:hover{box-shadow:0 2px 8px rgba(0,0,0,.18);z-index:3;}
#calendar-tracker .cal-tg-ev.dragging{opacity:.75;box-shadow:0 6px 20px rgba(0,0,0,.3);z-index:9;cursor:grabbing;}
#calendar-tracker .cal-tg-ev.done{opacity:.5;}
#calendar-tracker .cal-tg-ev.done .cal-tg-ev-title{text-decoration:line-through;}
#calendar-tracker .cal-tg-ev-title{font-size:11px;font-weight:600;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#calendar-tracker .cal-tg-ev-time{font-size:10px;color:var(--tx2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#calendar-tracker .cal-tg-resize{position:absolute;left:0;right:0;bottom:0;height:7px;cursor:ns-resize;}
#calendar-tracker .cal-tg-resize::after{content:'';position:absolute;left:50%;bottom:2px;transform:translateX(-50%);width:22px;height:3px;border-radius:2px;background:var(--ec);opacity:0;transition:opacity .12s;}
#calendar-tracker .cal-tg-ev:hover .cal-tg-resize::after{opacity:.7;}
#calendar-tracker .cal-tg-now{position:absolute;left:0;right:0;height:0;border-top:2px solid #ef4444;z-index:5;pointer-events:none;}
#calendar-tracker .cal-tg-now span{position:absolute;left:-4px;top:-5px;width:8px;height:8px;border-radius:50%;background:#ef4444;}

/* ── Agenda ──────────────────────────────────────────────────────── */
#calendar-tracker .cal-agenda{flex:1;overflow-y:auto;padding:18px 22px;}
#calendar-tracker .cal-ag-day{display:flex;gap:16px;padding:12px 0;border-bottom:.5px solid var(--bl);}
#calendar-tracker .cal-ag-date{width:110px;flex-shrink:0;cursor:pointer;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;}
#calendar-tracker .cal-ag-date:hover .cal-ag-dnum{color:var(--cal-acc);}
#calendar-tracker .cal-ag-dnum{font-size:22px;font-weight:700;line-height:1;}
#calendar-tracker .cal-ag-dlbl{font-size:11px;color:var(--tx2);text-transform:uppercase;font-weight:600;}
#calendar-tracker .cal-ag-day.today .cal-ag-dnum{color:var(--cal-acc);}
#calendar-tracker .cal-ag-today-tag{font-size:9px;font-weight:700;color:#fff;background:var(--cal-acc);border-radius:4px;padding:2px 6px;text-transform:uppercase;}
#calendar-tracker .cal-ag-list{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;}
#calendar-tracker .cal-ag-ev{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--r);cursor:pointer;transition:background .12s;flex-wrap:wrap;}
#calendar-tracker .cal-ag-ev:hover{background:var(--bg2);}
#calendar-tracker .cal-ag-ev.done{opacity:.55;}
#calendar-tracker .cal-ag-ev.done .cal-ag-title{text-decoration:line-through;}
#calendar-tracker .cal-ag-time{font-size:11px;color:var(--tx2);width:130px;flex-shrink:0;}
#calendar-tracker .cal-ag-dot{width:9px;height:9px;border-radius:3px;flex-shrink:0;}
#calendar-tracker .cal-ag-title{font-size:13px;font-weight:600;}
#calendar-tracker .cal-ag-meta{font-size:11px;color:var(--tx3);}
#calendar-tracker .cal-pri-high{color:var(--neg);}

/* Empty state */
#calendar-tracker .cal-empty{text-align:center;padding:60px 20px;color:var(--tx2);}
#calendar-tracker .cal-empty-ico{font-size:40px;margin-bottom:10px;}
#calendar-tracker .cal-empty-t{font-size:15px;font-weight:600;color:var(--tx);}
#calendar-tracker .cal-empty-d{font-size:13px;margin-top:4px;}

/* ── Stats ───────────────────────────────────────────────────────── */
#calendar-tracker .cal-stats{flex:1;overflow-y:auto;padding:20px 22px;}
#calendar-tracker .cal-st-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:16px;}
#calendar-tracker .cal-st-card{display:flex;align-items:center;gap:12px;background:var(--bg2);border-radius:var(--rl);padding:16px;}
#calendar-tracker .cal-st-ico{font-size:22px;}
#calendar-tracker .cal-st-v{font-size:24px;font-weight:700;line-height:1.1;}
#calendar-tracker .cal-st-l{font-size:11px;color:var(--tx2);text-transform:uppercase;letter-spacing:.4px;font-weight:600;margin-top:2px;}
#calendar-tracker .cal-st-cats{max-width:520px;}
#calendar-tracker .cal-st-catrow{display:flex;align-items:center;gap:10px;padding:4px 0;}
#calendar-tracker .cal-st-catlbl{width:120px;flex-shrink:0;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#calendar-tracker .cal-st-bar{flex:1;height:8px;background:var(--bg3);border-radius:4px;overflow:hidden;}
#calendar-tracker .cal-st-bar div{height:100%;border-radius:4px;transition:width .3s;}
#calendar-tracker .cal-st-catn{font-size:12px;font-weight:600;width:26px;text-align:right;}

/* ── Modals (shared modal-box base + cal extras) ─────────────────── */
.cal-modal-box{max-height:90vh;overflow-y:auto;width:520px;}
.cal-quick-box{width:400px;}
.cal-details-box{width:460px;}
.cal-ed-title{font-size:16px;font-weight:600;}
.cal-ed-row{display:flex;gap:12px;}
.cal-ed-field{flex:1;min-width:0;}
.cal-select{height:auto;padding:9px 12px;margin-bottom:12px;}
.cal-textarea{height:auto;min-height:64px;resize:vertical;padding:9px 12px;font-family:var(--f);}
.cal-ed-check{display:flex;align-items:center;gap:8px;font-size:13px;margin:2px 0 12px;cursor:pointer;}
.cal-ed-check input{accent-color:var(--cal-acc,var(--acc));cursor:pointer;}
.cal-ed-err{margin-top:10px;font-size:13px;color:var(--neg);font-weight:500;min-height:0;}
.cal-btn-acc{background:var(--cal-acc,var(--acc));}
.cal-btn-danger{padding:9px 16px;font-size:13px;font-weight:600;font-family:var(--f);background:none;border:.5px solid var(--neg);border-radius:var(--r);cursor:pointer;color:var(--neg);transition:all .15s;}
.cal-btn-danger:hover{background:var(--neg);color:#fff;}
.modal-actions .btn-cancel{padding:9px 16px;font-size:13px;border-radius:var(--r);}

/* Swatches & icons */
.cal-swatch-row{display:flex;gap:7px;flex-wrap:wrap;margin:4px 0 14px;}
.cal-swatch{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;font-size:10px;font-weight:700;color:var(--tx2);background:var(--bg3);display:flex;align-items:center;justify-content:center;transition:transform .12s;}
.cal-swatch:hover{transform:scale(1.15);}
.cal-swatch.sel{border-color:var(--tx);transform:scale(1.12);}
.cal-swatch.sm{width:21px;height:21px;}
.cal-icon-row{display:flex;gap:5px;flex-wrap:wrap;margin:4px 0 14px;}
.cal-icon-btn{width:30px;height:30px;font-size:15px;background:var(--bg2);border:1.5px solid transparent;border-radius:var(--r);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s;}
.cal-icon-btn:hover{background:var(--bg3);}
.cal-icon-btn.sel{border-color:var(--cal-acc,var(--acc));background:var(--bg3);}

/* Details modal */
.cal-dt-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.cal-dt-colorbar{width:5px;align-self:stretch;border-radius:3px;flex-shrink:0;}
.cal-dt-title{font-size:18px;font-weight:700;flex:1;min-width:0;overflow-wrap:break-word;}
.cal-dt-title.done{text-decoration:line-through;opacity:.6;}
.cal-dt-x{background:none;border:none;font-size:15px;color:var(--tx3);cursor:pointer;padding:4px 8px;border-radius:var(--r);flex-shrink:0;}
.cal-dt-x:hover{background:var(--bg2);color:var(--tx);}
.cal-dt-row{display:flex;gap:10px;font-size:13px;padding:4px 0;color:var(--tx);line-height:1.5;}
.cal-dt-row .cal-dt-ico{flex-shrink:0;width:18px;text-align:center;}
.cal-dt-quick{display:flex;gap:14px;margin:12px 0 2px;flex-wrap:wrap;}
.cal-dt-qf{flex:1;min-width:150px;}
.cal-dt-qf .cal-select{margin-bottom:4px;}
.cal-dt-qf .cal-swatch-row{margin-bottom:4px;}
.cal-dt-actions{margin-top:16px;flex-wrap:wrap;align-items:center;}
.cal-dt-delq{font-size:13px;font-weight:600;color:var(--neg);}

/* Category manager */
.cal-cm-list{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;max-height:240px;overflow-y:auto;}
.cal-cm-row{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:var(--r);background:var(--bg2);}
.cal-cm-name{flex:1;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cal-cm-btn{padding:4px 9px;font-size:11px;}
.cal-cm-formbox{background:var(--bg2);border-radius:var(--rl);padding:14px;margin-bottom:12px;}
.cal-cm-formbox .modal-actions{margin-top:0;}

/* ── Toasts ──────────────────────────────────────────────────────── */
.cal-toasts{position:fixed;bottom:20px;right:20px;z-index:200;display:flex;flex-direction:column;gap:8px;align-items:flex-end;}
.cal-toast{background:var(--tx);color:var(--bg);font-size:13px;font-weight:500;padding:10px 16px;border-radius:var(--rl);box-shadow:0 6px 20px rgba(0,0,0,.25);opacity:0;transform:translateY(8px);transition:all .25s;max-width:320px;}
.cal-toast.show{opacity:1;transform:translateY(0);}
.cal-toast.clickable{cursor:pointer;}

/* ── Responsive ──────────────────────────────────────────────────── */
@media(max-width:1100px){
  #calendar-tracker .cal-search{width:150px;}
  #calendar-tracker .cal-search:focus{width:180px;}
  #calendar-tracker .cal-sidebar{width:225px;}
}
@media(max-width:900px){
  #calendar-tracker .cal-sb-toggle{display:inline-flex;}
  #calendar-tracker .cal-sidebar{position:fixed;left:0;top:0;bottom:0;z-index:50;width:270px;transform:translateX(-100%);transition:transform .22s;box-shadow:4px 0 24px rgba(0,0,0,.15);padding-top:20px;}
  #calendar-tracker .cal-sidebar.open{transform:translateX(0);}
  #calendar-tracker .cal-shell{height:calc(100vh - 55px);}
  #calendar-tracker .cal-tb-title{font-size:15px;width:100%;order:5;margin-left:2px;}
  #calendar-tracker .cal-toolbar{padding:10px 12px;gap:8px;}
}
@media(max-width:640px){
  #calendar-tracker .cal-newbtn span+ span{display:none;}
  #calendar-tracker .cal-newbtn{padding:8px 12px;}
  #calendar-tracker .cal-viewseg{order:6;width:100%;justify-content:space-between;}
  #calendar-tracker .cal-viewseg button{flex:1;padding:6px 4px;}
  #calendar-tracker .cal-search{width:110px;font-size:12px;}
  #calendar-tracker .cal-search:focus{width:130px;}
  #calendar-tracker .cal-search-dd{width:270px;}
  #calendar-tracker .cal-mv-ev{font-size:9px;padding:1px 3px;border-left-width:2px;}
  #calendar-tracker .cal-mv-ev-time{display:none;}
  #calendar-tracker .cal-mv-daynum{font-size:10px;}
  #calendar-tracker .cal-mv-cell.today .cal-mv-daynum span{width:17px;height:17px;}
  #calendar-tracker .cal-tg-head,#calendar-tracker .cal-tg-allday,#calendar-tracker .cal-tg-grid{grid-template-columns:42px repeat(var(--ncols),1fr);}
  #calendar-tracker .cal-tg-dnum{font-size:13px;width:23px;height:23px;}
  #calendar-tracker .cal-ag-date{width:76px;}
  #calendar-tracker .cal-ag-time{width:100%;}
  #calendar-tracker .cal-agenda{padding:12px;}
  .cal-ed-row{flex-direction:column;gap:0;}
  .cal-modal-box{width:94vw;padding:18px;}
}
