/* ── FILE OVERLAY ────────────────────────────── */
.file-ov{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:1000;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px)}
.file-ov-box{background:#1a1a1a;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:38px 44px;text-align:center;max-width:360px;width:90%}
.file-ov-title{font-family:var(--font);font-size:22px;font-weight:300;color:#fff;margin-bottom:12px;letter-spacing:-.02em}
.file-ov-title b{font-weight:700}
.file-ov-msg{font-size:13px;color:var(--t2);margin-bottom:22px;line-height:1.6}
.file-ov-btn{background:var(--acc);border:none;color:#fff;font-family:var(--font);font-size:13px;font-weight:600;padding:10px 22px;border-radius:7px;cursor:pointer;transition:opacity .15s;display:block;width:100%;margin-bottom:16px}
.file-ov-hint{font-size:11px;color:var(--t3);line-height:1.6}
.file-ov-hint code{font-family:monospace;background:rgba(255,255,255,.07);padding:1px 5px;border-radius:3px;color:var(--t2)}

/* ── SEARCH OVERLAY ──────────────────────────────── */
.srch-ov{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:850;display:none;align-items:flex-start;justify-content:center;padding-top:110px;backdrop-filter:blur(5px)}
.srch-ov.open{display:flex;animation:pgIn .15s ease}
.srch-box{width:min(560px,90vw);background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:14px;overflow:hidden;box-shadow:0 28px 70px rgba(0,0,0,.85)}
.srch-bar{display:flex;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid var(--sep)}
.srch-ico{color:var(--t3);flex-shrink:0;display:flex;align-items:center}
.srch-inp{flex:1;background:none;border:none;outline:none;font-family:var(--font);font-size:15px;color:var(--t1);caret-color:var(--acc)}
.srch-inp::placeholder{color:var(--t3)}
.srch-hint{font-size:11px;color:var(--t3);white-space:nowrap;flex-shrink:0;padding:3px 8px;border:1px solid rgba(255,255,255,.08);border-radius:5px}
.srch-results{max-height:380px;overflow-y:auto}
.srch-group-label{padding:10px 18px 8px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--t3)}
.srch-empty{padding:28px;text-align:center;font-size:13px;color:var(--t3)}
.srch-empty b{display:block;color:var(--t2);margin-bottom:6px}
.srch-result{display:flex;align-items:center;gap:10px;padding:11px 18px;cursor:pointer;border-bottom:1px solid var(--sep);transition:background .08s}
.srch-result:last-child{border-bottom:none}
.srch-rico{
  width:26px;height:26px;border-radius:8px;background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.58);flex-shrink:0;
}
.srch-rico svg{width:14px;height:14px}
.srch-rdot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.srch-rmain{flex:1;min-width:0}
.srch-rsec{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--t3);margin-bottom:3px}
.srch-rtxt{font-size:13px;color:var(--t2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.srch-rmeta{font-size:11px;color:var(--t3);margin-left:auto;white-space:nowrap;flex-shrink:0}
.srch-rtxt mark{background:rgba(102,144,242,.28);color:#c8d4fa;border-radius:3px;padding:0 2px;font-style:normal}

/* ── KEYBOARD SHORTCUTS ────────────────────── */
.kb-title{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--t3);margin-bottom:14px}
.kb-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.kb-row:last-child{border-bottom:none}
.kb-keys{display:flex;align-items:center;gap:3px;width:110px;flex-shrink:0}
.kb-key{display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-bottom-width:2px;border-radius:5px;padding:2px 8px;font-size:11px;font-family:var(--font);font-weight:500;color:var(--t2);min-width:22px;line-height:1.7;white-space:nowrap}
.kb-desc{flex:1;font-size:12px;color:var(--t2)}

/* ── SIDEBAR TOGGLE (mobile) ──────────────────── */
.sb-toggle{display:none;width:100%;padding:10px 12px;background:rgba(255,255,255,.04);border:1px solid var(--sep);border-radius:8px;color:var(--t2);font-family:var(--font);font-size:13px;cursor:pointer;margin-bottom:8px;transition:background .1s}
.sb-toggle:active{background:rgba(255,255,255,.08)}

/* ── BOTTOM SHEET BACKDROP ────────────────────── */
.dp-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:959}

/* ── VIRTUAL KEYBOARD ─────────────────────────── */
.vk-open .undo-toast{bottom:calc(22px + var(--vk-offset,0px) + var(--safe-b))}

/* ── SLIDE-UP ANIMATION ───────────────────────── */
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}

/* ── HOVER GATING (desktop only) ──────────────── */
@media(hover:hover){
  .side-brand:hover{opacity:.7}
  .sn:not(.active):not(.sn-unavailable):hover{color:var(--sidebar-hover-text);background:var(--sidebar-hover-bg)}
  .sn:not(.active):not(.sn-unavailable):hover svg{color:var(--sidebar-hover-icon)}
  .sn-search:hover{color:var(--sidebar-hover-text);background:var(--sidebar-hover-bg);border-color:var(--sidebar-control-border);box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
  .sn-search:hover svg{color:var(--sidebar-hover-icon)}
  .side-collapse-toggle:hover{background:var(--panel-bg);border-color:var(--chip-hover-border);color:var(--sidebar-panel-open-icon);box-shadow:0 10px 24px rgba(0,0,0,.42)}
  .side-nav.is-collapsed .side-collapse-toggle:hover{background:var(--sidebar-hover-bg);border-color:transparent;color:var(--sidebar-hover-text);box-shadow:none}
  .task:hover{background:var(--rh)}
  [data-status=done].task:hover{background:rgba(77,184,112,.11)}
  [data-status=ongoing].task:hover{background:rgba(102,144,242,.1)}
  [data-status=hold].task:hover{background:rgba(201,138,48,.1)}
  [data-status=urgent].task:hover{background:rgba(224,48,48,.1)}
  .sec-swatch:hover{transform:scale(1.35)}
  .sec-ib:hover{color:var(--t1);opacity:1;background:none}
  .sec-ib.d:hover{color:var(--t1)}
  .sec-collapse:hover{color:var(--t1);opacity:1}
  .link-ico:hover{color:var(--acc)}
  .att-ind:hover{color:var(--t2)}
  .att-box-close:hover{color:var(--t1)}
  .att-nav-btn:not(:disabled):hover{background:rgba(255,255,255,.1);color:var(--t1)}
  .att-rm-btn:hover{background:rgba(192,64,64,.1);border-color:rgba(192,64,64,.45);color:#d06060}
  .att-act-btn:not(.danger):hover{background:rgba(255,255,255,.1);color:var(--t1)}
  .att-act-btn.danger:hover{background:rgba(192,64,64,.1);border-color:rgba(192,64,64,.45);color:#d06060}
  .opt-s:hover{background:rgba(255,255,255,.06);color:var(--t1)}
  .opt-s-check.cs:hover{background:rgba(77,184,112,.15);border-color:rgba(77,184,112,.3);color:#d9f3e0}
  .opt-a:hover{background:rgba(255,255,255,.08);color:var(--t1)}
  .opt-a.danger:hover{background:rgba(192,64,64,.1);color:#d06060}
  .opt-field-clear:hover{background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.16);color:var(--t1)}
  .repeat-clear:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.11);color:var(--t2)}
  .repeat-step-btn:hover{background:rgba(255,255,255,.06);color:var(--t1)}
  .repeat-chip:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.12);color:var(--t1);transform:translateY(-1px)}
  .add-trig:hover{color:var(--t2);background:rgba(255,255,255,.04)}
  .add-trig:hover .add-dot{border-color:var(--t2);color:var(--t2);background:rgba(255,255,255,.03)}
  .add-trig:hover .add-dot::before,.add-trig:hover .add-dot::after{background:var(--t2)}
  .add-sec-btn:hover{border-color:rgba(255,255,255,.2);color:var(--t2)}
  .arch-tog:hover{color:var(--t2)}
  .av-btn:hover{background:rgba(255,255,255,.09);color:var(--t1)}
  .av-btn.d:hover{background:rgba(192,64,64,.1)}
  .cp-sw:hover{transform:scale(1.2)}
  .cp-none:hover{border-color:rgba(255,255,255,.5)}
  .cp-act:hover{color:var(--t1);background:rgba(255,255,255,.07)}
  .cp-del:hover{color:#d06060!important}
  .ur-btn:hover:not(:disabled){color:var(--t1);background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1)}
  .widget-action:hover,.logbook-filter:hover,.settings-key-btn:hover{
    background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12);color:var(--t1);
  }
  .widgets-edit-btn:hover,.widgets-move-btn:not(:disabled):hover{
    background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12);color:var(--t1);
  }
  .widget-action:hover svg{color:rgba(255,255,255,.72)}
  .settings-key-btn.clear:hover{color:#d79898}
  .widgets-panel-reset:hover{color:var(--t1)}
  .srch-result:hover{background:rgba(255,255,255,.04)}
  .dp-day:not(.dp-blank):hover{background:rgba(255,255,255,.08);color:var(--t1)}
  .dp-nav:hover{color:var(--t1);background:rgba(255,255,255,.07)}
  .dp-act-btn:not(:disabled):hover{background:rgba(255,255,255,.08);color:var(--t1);border-color:rgba(255,255,255,.12)}
  .dp-act-today:not(:disabled):hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12);color:var(--t1)}
  .due-chip:hover{background:rgba(255,255,255,.14)}
  .due-chip.due-today:hover{background:rgba(180,115,30,.26)}
  .due-chip.due-overdue:hover{background:rgba(192,64,64,.26)}
  .due-chip:hover{padding-right:24px}
  .due-chip:hover .due-chip-x{opacity:.65;pointer-events:auto}
  .due-chip-x:hover{opacity:1!important}
  .file-ov-btn:hover{opacity:.85}
  .mini-player:hover{background:var(--panel-bg);border-color:rgba(255,255,255,.11);box-shadow:0 18px 44px rgba(0,0,0,.54)}
  .mini-player:hover .mini-player-ico{color:var(--t1)}
  .mini-player-next:hover{background:rgba(255,255,255,.06);color:var(--t1)}
  .mini-player-vol-range:hover::-webkit-slider-thumb{transform:scale(1.15);box-shadow:0 0 0 3px rgba(255,255,255,.06)}
}

/* ── ACTIVE STATES (all devices) ──────────────── */
.task:active{background:rgba(255,255,255,.04)}
.opt-a:active{background:rgba(255,255,255,.10)}
.opt-s:active{background:rgba(255,255,255,.08)}
.opt-field-clear:active{background:rgba(255,255,255,.14);color:var(--t1)}
.pn:active,.sb:active{color:var(--t1)}
.ur-btn:active:not(:disabled){background:rgba(255,255,255,.08)}
.sec-ib:active{background:rgba(255,255,255,.07)}
.add-trig:active{color:var(--t2);background:rgba(255,255,255,.06)}
.add-trig:active .add-dot::before,.add-trig:active .add-dot::after{background:var(--t2)}
.dp-day:not(.dp-blank):active{background:rgba(255,255,255,.12)}
.dp-act-btn:not(:disabled):active{background:rgba(255,255,255,.11)}
.dp-act-today:not(:disabled):active{background:rgba(255,255,255,.11);color:var(--t1)}
.cp-sw:active{transform:scale(1.15)}
.srch-result:active{background:rgba(255,255,255,.06)}
.av-btn:active{background:rgba(255,255,255,.10)}
.add-sec-btn:active{border-color:rgba(255,255,255,.25)}
.widget-action:active,.logbook-filter:active,.settings-key-btn:active{background:rgba(255,255,255,.1)}
.widgets-edit-btn:active,.widgets-move-btn:not(:disabled):active{background:rgba(255,255,255,.1)}
.side-collapse-toggle:active{background:#202020;color:#fff}
.side-nav.is-collapsed .side-collapse-toggle:active{background:rgba(255,255,255,.08);color:var(--t1)}

/* ── INSTANT HOVER FEEDBACK ───────────────────── */
.file-ov-btn,
.srch-result{
  transition:none;
}
@media(hover:hover){
  .side-brand:hover{opacity:1}
  .sec-swatch:hover,
  .repeat-chip:hover,
  .cp-sw:hover,
  .cp-sw:active{
    transform:none;
  }
  .mini-player-vol-range:hover::-webkit-slider-thumb{
    transform:none;
    box-shadow:none;
  }
  .file-ov-btn:hover{opacity:1}
}
