/* CabinetTabModule v3 */
.cab{display:flex;flex-direction:column;flex:1;min-height:100vh;padding:0 0 var(--space-4) 0;gap:0;background:var(--bg-url,url('/bg-night.jpg')) center/cover no-repeat fixed;position:relative}
.cab::before{content:'';position:fixed;inset:0;background:var(--scene-overlay);pointer-events:none;z-index:0}
.cab>*{position:relative;z-index:1}
.cab-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-5) var(--space-3);background:transparent}
.cab-situational-wrap{padding:0 var(--space-5) var(--space-3)}
.cab-situational-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);align-items:stretch}
.cab-situational-row>.cab-situational,.cab-situational-row>.cab-weekly-trends{margin-bottom:0;min-width:0;height:100%}
.cab-situational-row>:only-child{grid-column:1/-1}
.cab-situational{background:var(--glass-panel-bg);border:1px solid var(--glass-panel-border);border-left:3px solid #38bdf8;border-radius:var(--radius-xl);padding:var(--space-4);margin-bottom:var(--space-2)}
.cab-situational--empty{opacity:.85}
.cab-situational-hdr{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}
.cab-situational-hdr .material-symbols-outlined{color:var(--primary-color);font-size:22px}
.cab-situational-title{font-size:var(--fs-caption);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--primary-color)}
.cab-situational-loc{margin-left:auto;font-size:var(--fs-micro);color:var(--fg-3);font-weight:500;text-transform:none;letter-spacing:0}
.cab-situational-headline{margin:0 0 var(--space-3);font-size:var(--fs-body);font-weight:600;color:var(--fg-1);line-height:1.45}
.cab-situational-empty{margin:0;font-size:var(--fs-body-sm);color:var(--fg-3)}
.cab-situational-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}
.cab-situational-card{background:rgba(255,255,255,.03);border:1px solid var(--border-1);border-radius:var(--radius-md);padding:var(--space-3)}
.cab-situational-card-title{font-size:var(--fs-micro);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#38bdf8;margin-bottom:var(--space-2)}
.cab-situational-list{margin:0;padding-left:18px;color:var(--fg-2);font-size:var(--fs-body-sm);line-height:1.45}
.cab-situational-list li{margin-bottom:4px}
.cab-situational-updated{margin-top:var(--space-2);font-size:var(--fs-micro);color:var(--fg-4)}
.cab-weekly-trends{background:var(--glass-panel-bg);border:1px solid var(--glass-panel-border);border-left:3px solid #a855f7;border-radius:var(--radius-xl);padding:var(--space-4);margin-bottom:var(--space-2)}
.cab-weekly-list{margin:0;padding-left:18px;color:var(--fg-2);font-size:var(--fs-body-sm);line-height:1.45}
.cab-weekly-list li{margin-bottom:6px}
.cab-weekly-date{color:var(--fg-4);font-size:var(--fs-micro);margin-right:4px}
.cab-settings-btn{display:none;margin-left:auto;width:38px;height:38px;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--glass-chip-bg);border:1px solid var(--glass-chip-border);color:var(--fg-2);cursor:pointer;transition:var(--transition-fast)}
.cab-settings-btn:hover{background:var(--glass-chip-bg-hover);color:var(--fg-1)}
.cab-settings-btn .material-symbols-outlined{font-size:20px}
.cab-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);align-items:start;padding:var(--space-4)}
.cab-col{display:flex;flex-direction:column;gap:var(--space-3);min-width:0;overflow:hidden}
.cab-col-label{padding:0 var(--space-1)}
.cab-card{background:var(--glass-panel-bg);border:1px solid var(--glass-panel-border);border-radius:var(--radius-xl);overflow:hidden;transition:var(--transition);position:relative;min-width:0;width:100%}
.cab-card:hover{border-color:var(--border-3)}
.cab-card--open{box-shadow:0 4px 20px rgba(245,158,11,.10)}
.cab-card-hdr{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);width:100%;background:transparent;border:none;color:var(--fg-1);font-family:var(--font-sans);font-size:var(--fs-body);cursor:pointer;transition:var(--transition-fast)}
.cab-card-hdr:hover{background:var(--hover-bg)}
.cab-card-lbl{flex:1;font-weight:500;text-align:left}
.cab-card-cnt{font-size:var(--fs-caption);color:var(--fg-3);font-weight:600;background:var(--glass-chip-bg);padding:1px 8px;border-radius:var(--radius-pill)}
.cab-badge{width:18px;height:18px;border-radius:50%;background:var(--error);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;animation:cab-badge-pulse 1.5s infinite}
@keyframes cab-badge-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
.cab-card-stub{font-size:var(--fs-caption);color:var(--fg-4);font-style:italic}
.cab-card-hdr .cab-chevron{font-size:20px!important;color:var(--fg-4)!important;transition:transform .3s var(--ease-out)}
.cab-card--open>.cab-card-hdr .cab-chevron{transform:rotate(180deg)}
.cab-card-body{display:none;padding:var(--space-3);border-top:1px solid var(--border-1)}
.cab-card-fab{position:absolute;bottom:var(--space-2);right:var(--space-2);width:32px;height:32px;min-width:32px;min-height:32px;border-radius:50%;background:var(--accent-gradient);border:none;color:var(--fg-on-grad);cursor:pointer;display:none;align-items:center;justify-content:center;box-shadow:var(--shadow-glow);transition:var(--transition-fast);z-index:2;flex-shrink:0;overflow:hidden}
.cab-card-fab .material-symbols-outlined{font-size:18px;color:var(--fg-on-grad);flex-shrink:0}
.cab-card--open .cab-card-fab{display:flex}
.cab-card-fab:hover{transform:scale(1.1)}
.cab-task{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:var(--transition-fast);min-width:0;overflow:hidden}
.cab-task:hover{background:var(--hover-bg)}
.cab-tcheck{background:none;border:none;padding:2px;cursor:pointer;color:var(--fg-3);display:flex;align-items:center;flex-shrink:0}
.cab-tcheck:hover{color:var(--success)}
.cab-tcheck .material-symbols-outlined{font-size:20px}
.cab-ttitle{flex:1;min-width:0;font-size:var(--fs-body-sm);color:var(--fg-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:color .15s}
.cab-ttitle:hover{color:var(--primary-color)}
.cab-tmeta{font-size:var(--fs-micro);color:var(--fg-4);flex-shrink:0}
.cab-overdue{color:var(--error)!important}
.cab-tdel{background:none;border:none;padding:2px;cursor:pointer;color:var(--fg-4);display:flex;align-items:center;opacity:0;transition:var(--transition-fast)}
.cab-task:hover .cab-tdel,.cab-rmind:hover .cab-tdel{opacity:1}
.cab-tdel:hover{color:var(--error)}
.cab-note{background:var(--glass-panel-bg);border:1px solid var(--glass-panel-border);border-radius:var(--radius-md);padding:var(--space-3);transition:var(--transition-fast);margin-bottom:var(--space-3)}
.cab-note:hover{background:var(--glass-panel-bg-hover)}
.cab-note--pinned{border-color:rgba(245,158,11,.3)}
.cab-note-top{display:flex;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-1)}
.cab-note-text{flex:1;font-size:var(--fs-body-sm);color:var(--fg-1);line-height:1.5;word-break:break-word;white-space:pre-wrap}
.cab-note-text--collapsible{max-height:4.5em;overflow:hidden;position:relative;transition:max-height .3s var(--ease-out)}
.cab-note-text--collapsible.cab-note-text--expanded{max-height:none}
.cab-note-collapse{position:absolute;bottom:0;left:0;right:0;height:2em;background:linear-gradient(to bottom,transparent,var(--glass-panel-bg));pointer-events:none}
.cab-note-text--expanded .cab-note-collapse{display:none}
.cab-note-expand{display:none;align-items:center;gap:2px;background:none;border:none;color:var(--fg-4);font-family:var(--font-sans);font-size:var(--fs-micro);cursor:pointer;padding:2px 0;margin-top:2px;transition:var(--transition-fast)}
.cab-note-text--collapsible~.cab-note-expand{display:flex}
.cab-note-expand:hover{color:var(--primary-color)}
.cab-note-actions{display:flex;gap:2px;flex-shrink:0}
.cab-nbtn{background:none;border:none;padding:4px;border-radius:var(--radius-xs);cursor:pointer;color:var(--fg-4);transition:var(--transition-fast);display:flex;align-items:center}
.cab-nbtn:hover{color:var(--fg-1)}
.cab-nbtn--active{color:var(--mfa-amber)}
.cab-nbtn--del:hover{color:var(--error)}
.cab-note-foot{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}
.cab-note-date{font-size:var(--fs-micro);color:var(--fg-4)}
.cab-pinned{font-size:10px}
.cab-tag{font-size:10px;background:rgba(255,255,255,.06);border-radius:var(--radius-xs);padding:2px 6px;color:var(--fg-3)}
.cab-rmind{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:var(--transition-fast)}
.cab-rmind:hover{background:var(--hover-bg)}
.cab-rmind-icon{width:32px;height:32px;border-radius:var(--radius-sm);background:rgba(251,191,36,.12);color:var(--mfa-amber-light);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.cab-rmind-body{flex:1;min-width:0}
.cab-rmind-msg{font-size:var(--fs-body-sm);color:var(--fg-1);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cab-rmind-time{font-size:var(--fs-micro);color:var(--info)}
.cab-shop-wrap{border-radius:var(--radius-md);transition:var(--transition-fast)}
.cab-shop-wrap:hover{background:var(--hover-bg)}
.cab-shop-toggle{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) 44px var(--space-2) var(--space-3);background:transparent;border:none;color:var(--fg-1);font-family:var(--font-sans);cursor:pointer}
.cab-shop-toggle .cab-chevron{transition:transform .3s var(--ease-out);flex-shrink:0}
.cab-shop-wrap--open .cab-shop-toggle .cab-chevron{transform:rotate(180deg)}
.cab-shop-name{flex:1;font-size:var(--fs-body-sm);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cab-shop-items{padding:0 var(--space-3) var(--space-2)}
.cab-shop-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);transition:var(--transition-fast);cursor:pointer}
.cab-shop-item:hover{background:var(--hover-bg)}
.cab-shop-check{font-size:18px;color:var(--fg-3);flex-shrink:0}
.cab-shop-item--done .cab-shop-check{color:var(--success)}
.cab-shop-item--done .cab-shop-item-text{text-decoration:line-through;color:var(--fg-4)}
.cab-shop-item-text{flex:1;font-size:var(--fs-body-sm);color:var(--fg-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cab-cal{padding:var(--space-2) 0}
.cab-cal-nav{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-bottom:var(--space-3)}
.cab-cal-btn{background:var(--glass-chip-bg);border:1px solid var(--glass-chip-border);border-radius:var(--radius-sm);width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--fg-2);transition:var(--transition-fast)}
.cab-cal-btn:hover{background:var(--glass-chip-bg-hover);color:var(--fg-1)}
.cab-cal-title{font-size:var(--fs-body);font-weight:700;color:var(--fg-1)}
.cab-cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center;margin-bottom:var(--space-2)}
.cab-cal-weekdays span{font-size:var(--fs-micro);color:#ffffff;font-weight:600}
.cab-cal-weekdays span:nth-child(6),.cab-cal-weekdays span:nth-child(7){color:var(--mfa-rose)}
[data-mode=light] .cab-cal-weekdays span{color:var(--fg-2)}
[data-mode=light] .cab-cal-weekdays span:nth-child(6),[data-mode=light] .cab-cal-weekdays span:nth-child(7){color:var(--mfa-rose)}
.cab-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cab-cal-cell{padding:4px;border-radius:var(--radius-sm);min-height:48px;transition:var(--transition-fast);cursor:pointer;min-width:0;overflow:hidden}
.cab-cal-cell:hover{background:var(--hover-bg)}
.cab-cal-today{background:rgba(var(--primary-rgb),.12)}
.cab-cal-other{opacity:.3}
.cab-cal-num{font-size:var(--fs-micro);color:var(--fg-2);font-weight:600;margin-bottom:2px}
.cab-cal-today .cab-cal-num{color:var(--primary-color)}
.cab-cal-evts{display:flex;flex-direction:column;gap:1px}
.cab-cal-chip{display:block;font-size:9px;padding:1px 3px;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--fg-1);max-width:100%}
.cab-cal-chip--task{background:rgba(var(--primary-rgb),.2)}
.cab-cal-chip--reminder{background:rgba(251,113,133,.2)}
.cab-cal-chip--event{background:rgba(244,63,94,.15);color:#f43f5e}
.cab-cal-more{font-size:9px;color:var(--fg-4)}
/* Компактная неделя (дефолт) + тумблер полного месяца */
.cab-week-list{display:flex;flex-direction:column;gap:var(--space-2)}
.cab-week-day{display:flex;gap:var(--space-3);padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm)}
.cab-week-day--today{background:rgba(var(--primary-rgb),.10)}
.cab-week-day-label{flex:0 0 84px;font-size:var(--fs-micro);font-weight:700;color:var(--fg-2);text-transform:capitalize;padding-top:2px}
.cab-week-day--today .cab-week-day-label{color:var(--primary-color)}
.cab-week-day-evts{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.cab-week-ev{display:flex;gap:7px;font-size:var(--fs-caption,12px);padding:3px 8px;border-radius:6px;cursor:pointer;color:var(--fg-1)}
.cab-week-ev-time{flex:0 0 auto;font-weight:700;color:var(--fg-2)}
.cab-week-ev-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cab-week-empty{font-size:var(--fs-caption,12px);color:var(--fg-4)}
.cab-cal-expand{display:flex;align-items:center;gap:6px;width:fit-content;align-self:center;margin:var(--space-3) auto 0;padding:7px 14px;border-radius:var(--radius-pill);border:1px dashed var(--glass-chip-border);background:transparent;color:var(--primary-color);font-size:var(--fs-caption,12px);font-weight:600;font-family:inherit;cursor:pointer}
.cab-cal-expand:hover{background:var(--glass-chip-bg)}
.cab-cal-expand .material-symbols-outlined{font-size:16px}
.cab-cal--week{display:flex;flex-direction:column;align-items:stretch}
.cab-book,.cab-recipe{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:var(--transition-fast)}
.cab-book--play{width:100%;border:none;background:transparent;text-align:left;cursor:pointer;font:inherit;color:inherit}
.cab-book--play:disabled{opacity:0.55;cursor:wait}
.cab-book-play-icon{color:var(--primary-color);font-size:22px;flex-shrink:0}
.cab-book:hover,.cab-recipe:hover{background:var(--hover-bg)}
.cab-book-info{flex:1;min-width:0}
.cab-book-title,.cab-recipe-title{font-size:var(--fs-body-sm);color:var(--fg-1);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cab-book-author{font-size:var(--fs-micro);color:var(--fg-4)}
.cab-video{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-md);transition:var(--transition-fast);min-width:0}
.cab-video--play{width:100%;display:flex;align-items:stretch;gap:var(--space-3);padding:var(--space-2);border:1px solid var(--border-1);border-radius:var(--radius-md);background:var(--glass-chip-bg);text-align:left;cursor:pointer;font:inherit;color:var(--fg-1);appearance:none;-webkit-appearance:none;transition:var(--transition-fast)}
.cab-video--play:hover{background:var(--glass-chip-bg-hover);border-color:var(--border-3)}
.cab-video-thumb{width:80px;min-width:80px;height:52px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;background:rgba(0,0,0,.2)}
.cab-video-thumb--placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(99,102,241,.25),rgba(244,63,94,.2))}
.cab-video-thumb--placeholder .material-symbols-outlined{font-size:28px;color:var(--primary-color)}
.cab-video-play-icon{display:none}
.cab-video-body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px}
.cab-video-title{font-size:var(--fs-body-sm);color:var(--fg-1);display:block;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cab-video-meta{font-size:var(--fs-micro);color:var(--fg-4)}
.cab-empty{padding:var(--space-4);text-align:center;color:var(--fg-4);font-size:var(--fs-body-sm);font-style:italic}
.cab-loading{padding:var(--space-4);text-align:center;color:var(--fg-3);font-size:var(--fs-body-sm)}
.cab-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:9999;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}
.cab-modal-overlay.show{opacity:1}
.cab-modal{background:var(--glass-modal-bg);border:1px solid var(--glass-panel-border);border-radius:var(--glass-modal-radius);backdrop-filter:var(--glass-blur-modal);-webkit-backdrop-filter:var(--glass-blur-modal);width:90%;max-width:420px;box-shadow:var(--shadow-modal);transform:translateY(10px);transition:transform .2s var(--ease-out)}
.cab-modal-overlay.show .cab-modal{transform:translateY(0)}
.cab-modal-hdr{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-1)}
.cab-modal-title{font-size:var(--fs-body);font-weight:700;color:var(--fg-1)}
.cab-modal-close{background:none;border:none;cursor:pointer;color:var(--fg-4);display:flex;padding:4px;border-radius:var(--radius-xs)}
.cab-modal-close:hover{color:var(--fg-1);background:var(--hover-bg)}
.cab-modal-body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}
.cab-modal-input{width:100%;padding:var(--space-2) var(--space-3);background:rgba(255,255,255,.04);border:1px solid var(--border-2);border-radius:var(--radius-md);color:var(--fg-1);font-family:var(--font-sans);font-size:var(--fs-body-sm);outline:none;resize:vertical}
.cab-modal-input:focus{border-color:var(--primary-color)}
.cab-modal-input::placeholder{color:var(--fg-4)}
.cab-modal-input[type=date],.cab-modal-input[type=datetime-local]{color-scheme:dark;min-height:38px;color:var(--fg-1)!important;accent-color:var(--primary-color)}
.cab-modal-input[type=time]{color-scheme:dark;min-height:38px;color:var(--fg-1)!important;accent-color:var(--primary-color)}
.cab-modal-input[type=time]::-webkit-datetime-edit-fields-wrapper{color:var(--fg-1)}
.cab-modal-input[type=time]::-webkit-datetime-edit{color:var(--fg-1)}
.cab-modal-input[type=time]::-webkit-datetime-edit-text{color:var(--fg-3)}
.cab-modal-input[type=date]::-webkit-calendar-picker-indicator,.cab-modal-input[type=datetime-local]::-webkit-calendar-picker-indicator,.cab-modal-input[type=time]::-webkit-calendar-picker-indicator{filter:invert(1) brightness(10) saturate(10) !important;opacity:.8;cursor:pointer;width:20px;height:20px}
.cab-modal-input[type=time]::-webkit-inner-spin-button{filter:invert(1) brightness(10) saturate(10) !important;opacity:.8}
[data-mode=light] .cab-modal-input[type=date],[data-mode=light] .cab-modal-input[type=datetime-local],[data-mode=light] .cab-modal-input[type=time]{color-scheme:light;color:var(--fg-1)!important}
[data-mode=light] .cab-modal-input[type=date]::-webkit-calendar-picker-indicator,[data-mode=light] .cab-modal-input[type=datetime-local]::-webkit-calendar-picker-indicator,[data-mode=light] .cab-modal-input[type=time]::-webkit-calendar-picker-indicator{filter:none!important}
.cab-modal-colors{display:flex;gap:var(--space-2);padding:var(--space-1) 0}
.cab-color-dot{width:20px;height:20px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:var(--transition-fast)}
.cab-color-dot.active{border-color:var(--fg-1);transform:scale(1.2)}
.cab-ev-type{display:flex;gap:var(--space-2);margin-top:var(--space-2)}
.cab-ev-type-btn{flex:1;padding:var(--space-2) var(--space-3);background:var(--glass-chip-bg);border:1px solid var(--glass-chip-border);border-radius:var(--radius-md);color:var(--fg-2);font-family:var(--font-sans);font-size:var(--fs-body-sm);font-weight:500;cursor:pointer;transition:var(--transition-fast);text-align:center}
.cab-ev-type-btn:hover{background:var(--glass-chip-bg-hover);color:var(--fg-1)}
.cab-ev-type-btn.active{background:var(--accent-gradient);border-color:transparent;color:var(--fg-on-grad);box-shadow:var(--shadow-glow)}
.cab-modal-foot{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-1)}
.cab-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--fs-body-sm);font-weight:500;cursor:pointer;transition:var(--transition-fast);border:none}
.cab-btn--ghost{background:transparent;color:var(--fg-2)}
.cab-btn--ghost:hover{background:var(--hover-bg);color:var(--fg-1)}
.cab-btn--primary{background:var(--accent-gradient);color:var(--fg-on-grad);box-shadow:var(--shadow-glow)}
.cab-btn--primary:hover{box-shadow:0 12px 40px rgba(245,158,11,.50)}
.cab-toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%) translateY(20px);padding:var(--space-3) var(--space-5);background:var(--glass-modal-bg);border:1px solid var(--glass-panel-border);border-radius:var(--radius-pill);backdrop-filter:var(--glass-blur-modal);color:var(--fg-1);font-size:var(--fs-body-sm);box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:all .3s var(--ease-spring);z-index:9999}
.cab-toast.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}
@media(max-width:768px){.cab-situational-row{grid-template-columns:1fr}.cab-grid{grid-template-columns:1fr}.cab-col-label{font-size:var(--fs-h3);padding:var(--space-1) 0}.cab-col:first-child{margin-bottom:var(--space-4)}.cab-settings-btn{display:flex}}
@media(max-width:640px){.cab{padding:0 0 var(--space-2) 0}.cab-grid{padding:var(--space-2)}.cab-card-hdr{padding:var(--space-4)}.cab-card-body{padding:var(--space-3)}.cab-ttitle,.cab-rmind-msg,.cab-shop-item-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cab-card-fab{width:28px;height:28px;min-width:28px;min-height:28px}.cab-card-fab .material-symbols-outlined{font-size:16px}}
[data-mode=light] .cab-card{background:var(--glass-panel-bg);border-color:var(--glass-panel-border)}
[data-mode=light] .cab-note{background:var(--glass-panel-bg);border-color:var(--glass-panel-border)}
[data-mode=light] .cab-modal{background:var(--glass-modal-bg)}
[data-mode=light] .cab-modal-input{background:rgba(0,0,0,.02);border-color:var(--border-2);color:var(--fg-1)}
/* Drag-and-drop (cards) */
.cab-drag-handle{font-size:18px;color:var(--fg-4);opacity:0;transition:opacity .15s;cursor:grab;flex-shrink:0;user-select:none;margin-right:-2px}
.cab-card:hover .cab-drag-handle{opacity:.5}
.cab-card--dragging{opacity:.45;border:2px dashed var(--primary-color)!important;background:var(--hover-bg)!important;cursor:grabbing}
.cab-card--dragging .cab-drag-handle{opacity:1;cursor:grabbing}
/* Drag-and-drop (tasks) */
.cab-task-drag{font-size:16px;color:var(--fg-4);opacity:0;transition:opacity .15s;cursor:grab;flex-shrink:0;user-select:none}
.cab-task:hover .cab-task-drag{opacity:.5}
.cab-task--dragging{opacity:.4;background:var(--hover-bg);border-radius:var(--radius-md);cursor:grabbing}
/* Auto-grow textarea in modal */
.cab-modal-textarea{resize:none;overflow:hidden;min-height:38px;line-height:1.5}
