*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
[hidden]{display:none!important;}
:root{
--fh:"IBM Plex Sans","Segoe UI",system-ui,sans-serif;--fb:var(--fh);--fm:"IBM Plex Mono","Cascadia Mono",Consolas,ui-monospace,monospace;
--rs:6px;--r:8px;--rl:14px;--rxl:14px;--rpill:999px;
--tx-fast:background-color 0.15s,border-color 0.15s,color 0.15s,box-shadow 0.15s,opacity 0.15s,transform 0.15s,filter 0.15s;
--tx:background-color 0.2s,border-color 0.2s,color 0.2s,box-shadow 0.2s,opacity 0.2s,transform 0.2s,filter 0.2s;
--shadow:0 0 #0000;
}
:root{--bg:#1d2230;--bg2:#1d2230;--surface:#262c3c;--surface2:#303748;--surface3:#3a4152;--border:#3a4150;--border2:#6c7787;--text:#eef1f6;--text2:#eef1f6;--muted:#9aa3b2;--accent:#2f5bea;--accent2:#2449c2;--accent-dim:#243562;--accent-ink:#93acff;--on-accent:#ffffff;--focus:#93acff;--green:#57bd91;--green-dim:rgba(87,189,145,0.16);--amber:#e0a23d;--amber-dim:rgba(224,162,61,0.16);--red:#f38e8e;--red-dim:rgba(243,142,142,0.16);--l1:#e0a23d;--l2:#9aa3b2;--l3:#9aa3b2;--shadow-1:0 1px 2px rgba(0,0,0,0.45);--shadow-lg:0 12px 32px rgba(0,0,0,0.55);--scrim:rgba(10,12,18,0.62);color-scheme:dark;}
:root.p-light{--bg:#f1f3f6;--bg2:#f1f3f6;--surface:#ffffff;--surface2:#e6e9ef;--surface3:#d9dde5;--border:#d6dae1;--border2:#8a93a3;--text:#1d2230;--text2:#1d2230;--muted:#5b6472;--accent:#2f5bea;--accent2:#2449c2;--accent-dim:#e3e9fd;--accent-ink:#2449c2;--on-accent:#ffffff;--focus:#2f5bea;--green:#1a754b;--green-dim:rgba(26,117,75,0.12);--amber:#935b0d;--amber-dim:rgba(147,91,13,0.12);--red:#b93636;--red-dim:rgba(185,54,54,0.12);--l1:#935b0d;--l2:#5b6472;--l3:#5b6472;--shadow-1:0 1px 2px rgba(29,34,48,0.10);--shadow-lg:0 12px 32px rgba(29,34,48,0.16);--scrim:rgba(29,34,48,0.38);color-scheme:light;}
:root.p-graphite-dark{--bg:#1b1c1f;--bg2:#1b1c1f;--surface:#242528;--surface2:#2e2f33;--surface3:#393a3f;--border:#393a3f;--border2:#6b6e77;--text:#f0f0f2;--text2:#f0f0f2;--muted:#a3a5ad;--accent:#2f5bea;--accent2:#2449c2;--accent-dim:#26304d;--accent-ink:#93acff;--on-accent:#ffffff;--focus:#93acff;--green:#57bd91;--green-dim:rgba(87,189,145,0.16);--amber:#e0a23d;--amber-dim:rgba(224,162,61,0.16);--red:#f38e8e;--red-dim:rgba(243,142,142,0.16);--l1:#e0a23d;--l2:#a3a5ad;--l3:#a3a5ad;--shadow-1:0 1px 2px rgba(0,0,0,0.45);--shadow-lg:0 12px 32px rgba(0,0,0,0.55);--scrim:rgba(10,12,18,0.62);color-scheme:dark;}
:root.p-graphite-light{--bg:#f3f3f4;--bg2:#f3f3f4;--surface:#ffffff;--surface2:#e8e8eb;--surface3:#dcdce0;--border:#d9d9de;--border2:#8d8f98;--text:#1b1c1f;--text2:#1b1c1f;--muted:#5c5e66;--accent:#2f5bea;--accent2:#2449c2;--accent-dim:#e3e9fd;--accent-ink:#2449c2;--on-accent:#ffffff;--focus:#2f5bea;--green:#1a754b;--green-dim:rgba(26,117,75,0.12);--amber:#935b0d;--amber-dim:rgba(147,91,13,0.12);--red:#b93636;--red-dim:rgba(185,54,54,0.12);--l1:#935b0d;--l2:#5c5e66;--l3:#5c5e66;--shadow-1:0 1px 2px rgba(29,34,48,0.10);--shadow-lg:0 12px 32px rgba(29,34,48,0.16);--scrim:rgba(29,34,48,0.38);color-scheme:light;}
:root.p-harbor-dark{--bg:#172326;--bg2:#172326;--surface:#1f2e32;--surface2:#29393e;--surface3:#33454b;--border:#33454a;--border2:#5c7a81;--text:#ecf4f5;--text2:#ecf4f5;--muted:#93abb0;--accent:#0e7480;--accent2:#0b5f69;--accent-dim:#16424a;--accent-ink:#6fd0da;--on-accent:#ffffff;--focus:#6fd0da;--green:#57bd91;--green-dim:rgba(87,189,145,0.16);--amber:#e0a23d;--amber-dim:rgba(224,162,61,0.16);--red:#f38e8e;--red-dim:rgba(243,142,142,0.16);--l1:#e0a23d;--l2:#93abb0;--l3:#93abb0;--shadow-1:0 1px 2px rgba(0,0,0,0.45);--shadow-lg:0 12px 32px rgba(0,0,0,0.55);--scrim:rgba(10,12,18,0.62);color-scheme:dark;}
:root.p-harbor-light{--bg:#eff5f5;--bg2:#eff5f5;--surface:#ffffff;--surface2:#e1ebec;--surface3:#d3e0e2;--border:#d0dedf;--border2:#7f989c;--text:#152225;--text2:#152225;--muted:#4f6468;--accent:#0e7480;--accent2:#0b5f69;--accent-dim:#d8eef0;--accent-ink:#0b5f69;--on-accent:#ffffff;--focus:#0e7480;--green:#1a754b;--green-dim:rgba(26,117,75,0.12);--amber:#935b0d;--amber-dim:rgba(147,91,13,0.12);--red:#b93636;--red-dim:rgba(185,54,54,0.12);--l1:#935b0d;--l2:#4f6468;--l3:#4f6468;--shadow-1:0 1px 2px rgba(29,34,48,0.10);--shadow-lg:0 12px 32px rgba(29,34,48,0.16);--scrim:rgba(29,34,48,0.38);color-scheme:light;}
:root.p-iris-dark{--bg:#1e1d2c;--bg2:#1e1d2c;--surface:#282738;--surface2:#323145;--surface3:#3d3c52;--border:#3c3b50;--border2:#726e90;--text:#f1f0f7;--text2:#f1f0f7;--muted:#a6a3bd;--accent:#6447d6;--accent2:#5236c0;--accent-dim:#342b5e;--accent-ink:#b5a6ff;--on-accent:#ffffff;--focus:#b5a6ff;--green:#57bd91;--green-dim:rgba(87,189,145,0.16);--amber:#e0a23d;--amber-dim:rgba(224,162,61,0.16);--red:#f38e8e;--red-dim:rgba(243,142,142,0.16);--l1:#e0a23d;--l2:#a6a3bd;--l3:#a6a3bd;--shadow-1:0 1px 2px rgba(0,0,0,0.45);--shadow-lg:0 12px 32px rgba(0,0,0,0.55);--scrim:rgba(10,12,18,0.62);color-scheme:dark;}
:root.p-iris-light{--bg:#f3f2f8;--bg2:#f3f2f8;--surface:#ffffff;--surface2:#e8e6f1;--surface3:#dcd9e8;--border:#d9d6e6;--border2:#8f8aa8;--text:#1e1d2c;--text2:#1e1d2c;--muted:#5d5975;--accent:#6447d6;--accent2:#5236c0;--accent-dim:#e9e4fc;--accent-ink:#5236c0;--on-accent:#ffffff;--focus:#6447d6;--green:#1a754b;--green-dim:rgba(26,117,75,0.12);--amber:#935b0d;--amber-dim:rgba(147,91,13,0.12);--red:#b93636;--red-dim:rgba(185,54,54,0.12);--l1:#935b0d;--l2:#5d5975;--l3:#5d5975;--shadow-1:0 1px 2px rgba(29,34,48,0.10);--shadow-lg:0 12px 32px rgba(29,34,48,0.16);--scrim:rgba(29,34,48,0.38);color-scheme:light;}

html{scroll-behavior:smooth;}
html,body{background:var(--bg);color:var(--text);font-family:var(--fb);font-weight:400;min-height:100vh;overflow-x:hidden;transition:background 0.4s,color 0.4s;-webkit-font-smoothing:antialiased;font-size:15px;}
.app{position:relative;z-index:1;max-width:1380px;margin:0 auto;padding:14px 20px 60px;}

/* ── Nav ── */
.nav{display:flex;align-items:center;gap:0;margin-bottom:14px;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--rxl);box-shadow:var(--shadow);}
.nav-brand{display:flex;align-items:center;gap:8px;padding:0 14px;margin-right:8px;}
.nav-mark{width:30px;height:30px;border-radius:var(--r);background:var(--accent);display:flex;align-items:center;justify-content:center;color:var(--on-accent);font-size:15px;}
.nav-name{font-size:15px;font-weight:600;letter-spacing:-0.01em;}
.nav-tabs{display:flex;gap:2px;flex:1;}
.nav-tab{padding:8px 18px;border-radius:var(--rl);cursor:pointer;font-size:15px;font-weight:600;color:var(--muted);transition:var(--tx-fast);display:flex;align-items:center;gap:8px;border:none;background:none;}
.nav-tab:hover{color:var(--text2);background:var(--surface2);}
.nav-tab.on{color:var(--text);background:var(--surface2);}
.nav-tab i{font-size:15px;}
.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border-radius:var(--r);background:var(--accent);color:var(--on-accent);font-size:10px;font-weight:600;padding:0 4px;font-family:var(--fm);line-height:1;margin-left:2px;}
.nav-right{display:flex;align-items:center;gap:8px;margin-left:auto;padding-right:8px;}
.clock-block{text-align:right;}
.clock-t{font-family:var(--fm);font-size:15px;color:var(--text);font-weight:600;letter-spacing:-1px;}
.icon-btn{width:34px;height:34px;border-radius:var(--r);background:transparent;border:1px solid transparent;color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:15px;transition:var(--tx-fast);}
.icon-btn:hover{background:var(--surface2);border-color:var(--border);color:var(--accent-ink);}

/* ── Pages ── */
.page{display:none;}.page.on{display:block;animation:fadeUp 0.3s ease;}

/* ── Shared components ── */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rxl);overflow:hidden;box-shadow:var(--shadow);transition:box-shadow 0.2s,opacity 0.2s,transform 0.15s;}
.card.dragging{opacity:0.35;transform:scale(0.98);box-shadow:none;}
.card.drag-target{outline:2px dashed var(--accent);outline-offset:2px;}
.card-drop-zone{height:10px;border-radius:var(--r);margin:2px 0;transition:var(--tx-fast);background:transparent;position:relative;}
.card-drop-zone.active{height:48px;background:var(--accent-dim);border:1.5px dashed var(--accent);border-radius:var(--rl);}
.card-drop-zone.active::after{content:'Drop here';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--accent-ink);letter-spacing:0.06em;text-transform:uppercase;}
.card-hdr{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border);user-select:none;}
.card-drag-handle{color:var(--muted);cursor:grab;font-size:15px;flex-shrink:0;padding:2px 4px;border-radius:var(--rs);transition:color 0.15s;display:flex;align-items:center;}
.card-drag-handle:hover{color:var(--accent-ink);}
.card-drag-handle:active{cursor:grabbing;}
.card-hdr-icon{width:26px;height:26px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;}
.card-hdr-title{font-size:15px;font-weight:600;flex:1;}
.card-hdr-sub{font-size:12px;color:var(--muted);font-family:var(--fm);font-weight:500;}
.card-hdr-actions{display:flex;align-items:center;gap:4px;}
.card-hide-btn{background:none;border:none;color:var(--muted);cursor:pointer;width:22px;height:22px;border-radius:var(--rs);display:flex;align-items:center;justify-content:center;font-size:12px;transition:var(--tx-fast);opacity:0;}
.card-hdr:hover .card-hide-btn{opacity:1;}
.card-hide-btn:hover{background:var(--red-dim);color:var(--red);}
.card-body{padding:14px 16px;}
.btn{background:var(--accent);border:none;border-radius:var(--r);color:var(--on-accent);padding:8px 16px;cursor:pointer;font-family:var(--fb);font-size:13px;font-weight:600;transition:var(--tx-fast);white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;gap:6px;}

.btn.ghost{background:var(--surface2);color:var(--text2);border:1px solid var(--border);}.btn.ghost:hover{background:var(--surface3);color:var(--accent-ink);border-color:var(--border2);}
.btn.danger{background:var(--red-dim);color:var(--red);border:1px solid var(--red-dim);}
.btn.sm{padding:6px 12px;font-size:12px;}
.btn.xs{padding:4px 8px;font-size:12px;}
.inp{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);padding:8px 12px;color:var(--text);font-family:var(--fb);font-size:15px;font-weight:500;outline:none;transition:var(--tx);min-width:0;}.inp:focus{border-color:var(--accent);background:var(--surface3);}.inp::placeholder{color:var(--muted);}
.inp.grow{flex:1;}.inp.sm{width:60px;}.inp.md{width:110px;}
select.inp{cursor:pointer;}select.inp option{background:var(--surface2);}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.section-lbl{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:0.07em;text-transform:uppercase;margin-bottom:8px;}
.divider{height:1px;background:var(--border);margin:12px 0;}
.ta{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);padding:10px;color:var(--text);font-family:var(--fb);font-size:15px;font-weight:500;resize:vertical;min-height:80px;outline:none;transition:var(--tx);line-height:1.6;}.ta:focus{border-color:var(--accent);background:var(--surface3);}.ta::placeholder{color:var(--muted);}
.fpill{padding:4px 12px;border-radius:var(--r);background:var(--surface2);border:1px solid var(--border);color:var(--text2);font-size:12px;font-weight:600;cursor:pointer;transition:var(--tx-fast);}.fpill:hover{border-color:var(--border2);}.fpill.on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-ink);}
/* ── Standard tier upgrade callouts + modal ── */
.std-upgrade{padding:14px 16px;border-radius:var(--rl);background:var(--surface2);border:1px dashed var(--border2);margin:8px 0;text-align:center;}
.std-upgrade-icon{font-size:22px;margin-bottom:6px;}
.std-upgrade-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:4px;}
.std-upgrade-desc{font-size:12px;color:var(--muted);margin-bottom:10px;line-height:1.5;}
.std-upgrade-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:var(--r);background:var(--accent);color:var(--on-accent);font-size:12px;font-weight:600;border:none;cursor:pointer;text-decoration:none;transition:var(--tx);}
.std-upgrade-btn:hover{background:var(--accent2);}
.upgrade-modal-hero{text-align:center;padding:10px 0 16px;}
.upgrade-modal-icon{font-size:42px;margin-bottom:10px;}
.upgrade-modal-title{font-size:22px;font-weight:600;margin-bottom:6px;}
.upgrade-modal-sub{font-size:13px;color:var(--muted);margin-bottom:18px;line-height:1.6;}
.upgrade-feat-grid{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px;}
.upgrade-feat-item{display:flex;align-items:center;gap:8px;font-size:12px;padding:8px 10px;background:var(--surface2);border-radius:var(--r);font-weight:600;}
.upgrade-feat-item i{font-size:15px;color:var(--accent-ink);}
@keyframes spin{to{transform:rotate(360deg);}}
.toggle{position:relative;width:38px;height:22px;background:var(--surface3);border-radius:var(--rl);cursor:pointer;transition:background 0.2s;flex-shrink:0;}.toggle::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left 0.2s;}.toggle.on{background:var(--accent);}.toggle.on::after{left:18px;}
.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:var(--rs);font-size:12px;font-weight:600;}

/* ── Toast ── */
.toast-wrap{position:fixed;top:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:9999;pointer-events:none;}
.toast{background:var(--surface);border:1px solid var(--border2);border-radius:var(--r);padding:12px 16px;font-size:15px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:8px;min-width:200px;box-shadow:var(--shadow-lg);animation:slideInR 0.25s ease;pointer-events:auto;}
.toast.success{border-color:var(--green);}.toast.error{border-color:var(--red);}.toast.info{border-color:var(--border2);}
.toast i{font-size:18px;}.toast.success i{color:var(--green);}.toast.error i{color:var(--red);}.toast.info i{color:var(--accent-ink);}

/* ── Modal ── */
.modal-bg{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;z-index:1000;padding:16px;}
.modal-bg.on{display:flex;animation:fadeIn 0.2s ease;}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--rxl);max-width:640px;width:100%;max-height:92vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:slideUp 0.25s ease;}
.modal-hdr{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:1;}
.modal-title{font-size:18px;font-weight:600;}
.modal-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:18px;padding:4px;border-radius:var(--rs);line-height:1;}.modal-close:hover{color:var(--red);}
.modal-body{padding:18px 22px;}
.modal-section{margin-bottom:20px;}.modal-section:last-child{margin-bottom:0;}
.modal-section-title{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:0.07em;text-transform:uppercase;margin-bottom:10px;}
.field-row{display:flex;align-items:center;gap:14px;margin-bottom:12px;}.field-row:last-child{margin-bottom:0;}
.field-lbl{font-size:15px;font-weight:600;flex:1;}
.field-desc{font-size:12px;color:var(--muted);margin-top:2px;}

/* ═══ TODAY PAGE ═══ */
.hero{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.greeting-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rxl);padding:20px 24px;box-shadow:var(--shadow);position:relative;overflow:hidden;}
.greet-line{font-size:12px;color:var(--muted);margin-bottom:4px;font-family:var(--fm);letter-spacing:0.04em;text-transform:uppercase;font-weight:600;}
.greet-msg{font-size:30px;font-weight:600;letter-spacing:-0.02em;line-height:1.2;margin-bottom:14px;}.greet-msg span{color:var(--accent-ink);}
.int-row{display:flex;align-items:center;gap:10px;}
.int-icon{width:30px;height:30px;border-radius:var(--r);background:var(--accent-dim);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.int-inp{flex:1;background:transparent;border:none;outline:none;font-family:var(--fb);font-size:15px;color:var(--text);font-weight:600;border-bottom:1px dashed var(--border2);padding:4px 0;}.int-inp::placeholder{color:var(--muted);font-weight:500;}
.priority-card{background:var(--accent);color:var(--on-accent);border-radius:var(--rxl);padding:20px 24px;box-shadow:var(--shadow);position:relative;overflow:hidden;cursor:pointer;transition:transform 0.15s;}.priority-card:hover{transform:translateY(-1px);}
.pri-label{position:relative;font-size:12px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:6px;display:flex;align-items:center;gap:6px;}
.pri-task{position:relative;font-size:18px;font-weight:600;letter-spacing:-0.01em;line-height:1.3;margin-bottom:10px;}
.pri-cta{position:relative;display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;background:var(--accent2);padding:6px 12px;border-radius:var(--r);}


/* Search */

/* Grid layout — two draggable columns */
.grid{display:flex;gap:12px;align-items:flex-start;}
.grid-col{display:flex;flex-direction:column;gap:0;flex:1;min-width:0;padding:4px;}
/* Cards get spacing from drop zones */
.grid-col>.card{margin-bottom:0;}
.card-drop-zone+.card{margin-top:0;}

/* Tasks */
.task-list{list-style:none;display:flex;flex-direction:column;gap:4px;margin-bottom:10px;}
.task{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--r);background:var(--surface2);border-left:2.5px solid transparent;transition:var(--tx-fast);cursor:grab;position:relative;}
.task:hover{background:var(--surface3);}
.task.dragging{opacity:0.5;cursor:grabbing;}
.task.drag-over{border-top:2px solid var(--accent);}
.task.pri-now{border-left-color:var(--l1);}.task.pri-next{border-left-color:var(--accent);}.task.pri-later{border-left-color:var(--muted);}
.task.done{opacity:0.55;}.task.done .t-text{text-decoration:line-through;color:var(--muted);}
.t-check{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--border2);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;font-size:12px;color:var(--bg);transition:var(--tx);margin-top:1px;}
.task.done .t-check{background:var(--green);border-color:var(--green);}
.t-body{flex:1;min-width:0;}
.t-text{font-size:15px;font-weight:600;word-break:break-word;}
.t-meta{display:flex;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap;}
.t-est{font-family:var(--fm);font-size:12px;color:var(--muted);font-weight:500;}
.t-stamp{font-family:var(--fm);font-size:12px;color:var(--muted);font-weight:500;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;}
.t-tags{display:flex;gap:4px;flex-wrap:wrap;}
.t-tag{font-size:12px;font-family:var(--fm);padding:2px 6px;border-radius:var(--rs);background:var(--accent-dim);color:var(--accent-ink);font-weight:600;border:1px solid var(--border);}
.t-pri{font-size:12px;font-family:var(--fm);padding:2px 8px;border-radius:var(--rs);font-weight:600;text-transform:uppercase;}
.tp-now{background:var(--amber-dim);color:var(--amber);}.tp-next{background:var(--accent-dim);color:var(--accent-ink);}.tp-later{background:var(--surface3);color:var(--muted);}
.t-actions{display:flex;align-items:center;gap:4px;flex-shrink:0;}
.t-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;width:24px;height:24px;border-radius:var(--rs);display:flex;align-items:center;justify-content:center;opacity:0;transition:var(--tx-fast);}.task:hover .t-btn{opacity:1;}.t-btn:hover{background:var(--surface3);}.t-btn.del:hover{color:var(--red);}
.t-note{font-size:12px;color:var(--text2);margin-top:6px;padding:6px 10px;background:var(--surface3);border-radius:var(--r);border-left:2px solid var(--accent-dim);white-space:pre-wrap;line-height:1.5;}
.t-timer-btn{background:var(--green-dim);border:1px solid var(--green);color:var(--green);border-radius:var(--rs);padding:2px 8px;font-size:12px;font-weight:600;cursor:pointer;font-family:var(--fm);white-space:nowrap;}
.t-note-add{font-size:12px;color:var(--muted);cursor:pointer;padding:4px 8px;border-radius:var(--rs);background:none;border:1px dashed var(--border);transition:var(--tx-fast);}.t-note-add:hover{border-color:var(--accent);color:var(--accent-ink);}
.t-note-inp{width:100%;background:var(--surface3);border:1px solid var(--border);border-radius:var(--r);padding:8px 10px;color:var(--text);font-family:var(--fb);font-size:13px;resize:vertical;min-height:55px;outline:none;margin-top:4px;}.t-note-inp:focus{border-color:var(--accent);}

/* Folder/Backlog */

/* MIT */
.mit-list{list-style:none;display:flex;flex-direction:column;gap:6px;}
.mit{display:flex;align-items:center;gap:10px;padding:12px 12px;border-radius:var(--r);background:var(--surface2);}
.mit.done .mit-inp{text-decoration:line-through;opacity:0.4;}
.mit-n{font-family:var(--fm);font-size:15px;font-weight:600;color:var(--accent-ink);min-width:18px;}
.mit-inp{flex:1;background:transparent;border:none;outline:none;font-family:var(--fb);font-size:15px;font-weight:600;color:var(--text);}.mit-inp::placeholder{color:var(--muted);font-weight:500;}
.mit-ck{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--border2);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;color:var(--bg);flex-shrink:0;transition:var(--tx);}
.mit.done .mit-ck{background:var(--green);border-color:var(--green);}

/* Timer */
.timer-inner{text-align:center;padding-top:4px;}
.ring-wrap{position:relative;width:156px;height:156px;margin:8px auto 14px;}
.ring-wrap svg{position:absolute;top:0;left:0;width:100%;height:100%;transform:rotate(-90deg);}
.ring-ctr{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.t-digits{font-family:var(--fm);font-size:36px;color:var(--text);letter-spacing:-1.5px;line-height:1;font-weight:600;}
.t-modelbl{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:0.1em;text-transform:uppercase;margin-top:4px;}
.fbanner{display:none;align-items:center;gap:6px;background:var(--green-dim);border:1px solid var(--green);border-radius:var(--r);padding:8px 12px;margin-bottom:10px;font-size:12px;color:var(--green);text-align:left;font-weight:600;}
.dur-btns{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin-bottom:12px;}
.dbtn{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);color:var(--text2);padding:6px 12px;font-family:var(--fm);font-size:12px;font-weight:600;cursor:pointer;transition:var(--tx-fast);}.dbtn:hover{border-color:var(--border2);}.dbtn.on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-ink);}
.tbtn-row{display:flex;gap:8px;justify-content:center;margin-bottom:14px;}
.sdots{display:flex;gap:6px;justify-content:center;margin-bottom:4px;}
.sdot{width:9px;height:9px;border-radius:50%;background:var(--surface3);border:1px solid var(--border2);}.sdot.on{background:var(--accent);border-color:var(--accent);}
.slbl{font-family:var(--fm);font-size:12px;color:var(--muted);text-align:center;margin-bottom:12px;font-weight:500;}
.mood-row{display:flex;gap:4px;justify-content:space-between;}
.mbtn{flex:1;height:38px;border-radius:var(--r);background:var(--surface2);border:1.5px solid transparent;cursor:pointer;font-size:18px;transition:var(--tx-fast);display:flex;align-items:center;justify-content:center;}.mbtn:hover{border-color:var(--border2);}.mbtn.on{border-color:var(--accent);background:var(--accent-dim);}
.e-row{display:flex;gap:4px;align-items:center;}
.ebtn{width:36px;height:36px;border-radius:var(--r);background:var(--surface2);border:1px solid var(--border);cursor:pointer;font-size:15px;transition:var(--tx-fast);display:flex;align-items:center;justify-content:center;}.ebtn:hover{border-color:var(--border2);}.ebtn.on{border-color:var(--accent);background:var(--accent-dim);}
.e-lbl{font-family:var(--fm);font-size:12px;color:var(--muted);margin-left:4px;font-weight:500;}

/* Habits */
.hlist{display:flex;flex-direction:column;gap:8px;}
.hrow{display:flex;align-items:center;gap:10px;}
.hicon{width:32px;height:32px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.hname{font-size:15px;font-weight:600;}
.hstreak{font-family:var(--fm);font-size:12px;color:var(--amber);display:flex;align-items:center;gap:4px;font-weight:600;}
.hdays{display:flex;gap:4px;}
.hday{width:22px;height:22px;border-radius:var(--rs);background:var(--surface2);display:flex;align-items:center;justify-content:center;font-family:var(--fm);font-size:10px;color:var(--muted);cursor:pointer;transition:var(--tx-fast);border:1px solid transparent;font-weight:600;}.hday.done{background:var(--green);color:var(--bg);font-weight:600;}.hday.td{border-color:var(--accent);}
.hdel{margin-left:auto;background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;opacity:0;transition:opacity 0.15s;}.hrow:hover .hdel{opacity:1;}.hdel:hover{color:var(--red);}

/* Water */
.w-row{display:flex;gap:4px;flex-wrap:wrap;}
.wcup{flex:1;min-width:24px;max-width:34px;height:34px;border-radius:0 0 var(--rs) var(--rs);border:1.5px solid var(--border2);cursor:pointer;transition:var(--tx);display:flex;align-items:flex-end;justify-content:center;padding-bottom:4px;position:relative;overflow:hidden;}
.wcup.filled::before{content:'';position:absolute;inset:0;background:var(--accent);opacity:0.32;}.wcup.filled{border-color:var(--accent);}
.wcup i{position:relative;z-index:1;font-size:12px;color:var(--muted);}.wcup.filled i{color:var(--accent-ink);}

/* Med */
.med-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface2);border-radius:var(--r);border-left:2.5px solid var(--accent);margin-bottom:4px;}
.med-n{font-size:15px;font-weight:600;flex:1;}.med-t{font-family:var(--fm);font-size:12px;color:var(--muted);font-weight:500;}
.med-btn{padding:4px 12px;border-radius:var(--r);font-size:12px;font-weight:600;cursor:pointer;border:1px solid var(--border2);background:var(--surface3);color:var(--muted);transition:var(--tx);}.med-btn.yes{background:var(--green-dim);border-color:var(--green);color:var(--green);}
.med-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;}.med-del:hover{color:var(--red);}

/* ── Rich Text Editor ── */
.rte-wrap{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--surface2);}
.rte-toolbar{display:flex;align-items:center;gap:2px;padding:6px 8px;border-bottom:1px solid var(--border);flex-wrap:wrap;background:var(--surface);}
.rte-btn{background:none;border:1px solid transparent;color:var(--text2);cursor:pointer;width:28px;height:28px;border-radius:var(--rs);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;transition:var(--tx-fast);font-family:var(--fb);}
.rte-btn:hover{background:var(--surface2);border-color:var(--border);color:var(--accent-ink);}
.rte-btn.on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-ink);}
.rte-sep{width:1px;height:20px;background:var(--border);margin:0 4px;}
.rte-content{min-height:120px;max-height:320px;overflow-y:auto;padding:10px 12px;outline:none;color:var(--text);font-size:15px;font-weight:500;line-height:1.65;}
.rte-content ul{padding-left:20px;}.rte-content ol{padding-left:20px;}
.rte-content ul li,.rte-content ol li{margin-bottom:4px;}
.rte-content input[type=checkbox]{accent-color:var(--accent);width:14px;height:14px;cursor:pointer;margin-right:6px;vertical-align:middle;}
.rte-content blockquote{border-left:3px solid var(--accent);padding-left:12px;color:var(--text2);font-style:italic;margin:6px 0;}
.rte-content h3{font-size:15px;font-weight:600;margin-bottom:4px;color:var(--text);}
.rte-content code{font-family:var(--fm);font-size:13px;background:var(--surface3);padding:2px 4px;border-radius:var(--rs);color:var(--amber);}
.rte-content hr{border:none;border-top:1px solid var(--border);margin:8px 0;}
.rte-content a{color:var(--accent-ink);text-decoration:underline;}

/* ── Card Manager ── */
.card-manager{display:flex;flex-direction:column;gap:8px;}
.cm-row{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);cursor:grab;}
.cm-row:hover{background:var(--surface3);}
.cm-row i.drag-handle{color:var(--muted);font-size:15px;cursor:grab;}
.cm-name{font-size:15px;font-weight:600;flex:1;}
.cm-toggle{margin-left:auto;}

/* Custom card */
.custom-card-hdr-inp{background:transparent;border:none;outline:none;font-family:var(--fb);font-size:15px;font-weight:600;color:var(--text);flex:1;min-width:0;}

/* ── Backlog page ── */
.backlog-item{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--rl);background:var(--surface);border:1px solid var(--border);border-left:2.5px solid var(--muted);transition:var(--tx-fast);}
.backlog-item:hover{background:var(--surface2);border-left-color:var(--accent);}
.backlog-item.pri-now{border-left-color:var(--l1);}
.backlog-item.pri-next{border-left-color:var(--accent);}
.bi-body{flex:1;min-width:0;}
.bi-text{font-size:15px;font-weight:600;color:var(--text);word-break:break-word;}
.bi-meta{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap;}
.bi-date{font-family:var(--fm);font-size:12px;color:var(--muted);font-weight:500;}
.bi-note{font-size:12px;color:var(--text2);margin-top:6px;padding:4px 8px;background:var(--surface2);border-radius:var(--r);border-left:2px solid var(--accent-dim);line-height:1.5;}
.bi-actions{display:flex;gap:4px;flex-shrink:0;align-items:center;}

/* ── Custom card customization panel ── */
.cc-panel{border-top:1px solid var(--border);background:var(--surface2);padding:12px 14px;display:none;}
.cc-panel.open{display:block;}
.cc-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.cc-row:last-child{margin-bottom:0;}
.cc-label{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:0.05em;text-transform:uppercase;min-width:60px;}
.cc-icons{display:flex;gap:4px;flex-wrap:wrap;}
.cc-icon-btn{width:30px;height:30px;border-radius:var(--r);background:var(--surface3);border:1px solid var(--border);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:15px;transition:var(--tx-fast);}
.cc-icon-btn:hover,.cc-icon-btn.on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-ink);}
.cc-colors{display:flex;gap:4px;flex-wrap:wrap;}
.cc-color-swatch{width:24px;height:24px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:var(--tx-fast);flex-shrink:0;}
.cc-color-swatch.on{border-color:var(--text);transform:scale(1.15);}
.cc-type-btn{padding:4px 12px;border-radius:var(--r);background:var(--surface3);border:1px solid var(--border);color:var(--text2);font-size:12px;font-weight:600;cursor:pointer;transition:var(--tx-fast);}
.cc-type-btn:hover,.cc-type-btn.on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-ink);}
.cc-min-height{width:70px;}
/* Counter widget inside custom card */
.cc-counter{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 16px;gap:12px;}
.cc-counter-val{font-family:var(--fm);font-size:56px;font-weight:600;line-height:1;color:var(--accent-ink);}
.cc-counter-label{font-size:13px;color:var(--muted);font-weight:600;}
.cc-counter-btns{display:flex;gap:10px;}
.cc-counter-btn{width:44px;height:44px;border-radius:var(--rl);background:var(--surface2);border:1px solid var(--border2);color:var(--text);font-size:22px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--tx-fast);}
.cc-counter-btn:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-ink);}
/* Checklist inside custom card */
.cc-checklist{display:flex;flex-direction:column;gap:4px;}
.cc-check-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r);background:var(--surface2);}
.cc-check-item.done span{text-decoration:line-through;opacity:0.45;}
.cc-check-box{width:18px;height:18px;border-radius:var(--rs);border:1.5px solid var(--border2);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;font-size:10px;color:var(--bg);transition:var(--tx);}
.cc-check-item.done .cc-check-box{background:var(--green);border-color:var(--green);}
.cc-check-text{flex:1;font-size:15px;font-weight:600;}
.cc-check-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;opacity:0;}.cc-check-item:hover .cc-check-del{opacity:1;}.cc-check-del:hover{color:var(--red);}
.cc-gear-btn{background:none;border:none;color:var(--muted);cursor:pointer;width:24px;height:24px;border-radius:var(--rs);display:flex;align-items:center;justify-content:center;font-size:13px;transition:var(--tx-fast);opacity:0;}
.card-hdr:hover .cc-gear-btn{opacity:1;}
.cc-gear-btn:hover{background:var(--surface2);color:var(--accent-ink);}
.cc-gear-btn.active{opacity:1;color:var(--accent-ink);}

/* ── Task Edit Modal ── */
.edit-section{margin-bottom:14px;}
.edit-label{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:6px;}

/* ── Journal ── */
.journal-layout{display:grid;grid-template-columns:300px 1fr;gap:14px;}
.cal{background:var(--surface);border:1px solid var(--border);border-radius:var(--rxl);padding:16px;box-shadow:var(--shadow);}
.cal-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.cal-title{font-size:15px;font-weight:600;text-align:center;flex:1;}
.cal-nav{background:none;border:none;color:var(--text2);cursor:pointer;font-size:18px;padding:4px 8px;border-radius:var(--r);transition:var(--tx-fast);}.cal-nav:hover{background:var(--surface2);color:var(--accent-ink);}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.cal-day-hdr{font-family:var(--fm);font-size:12px;color:var(--muted);text-align:center;padding:4px 0;font-weight:600;}
.cal-day{width:100%;aspect-ratio:1;border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;cursor:pointer;transition:var(--tx-fast);border:1.5px solid transparent;position:relative;}
.cal-day:hover{background:var(--surface2);}
.cal-day.empty{cursor:default;}.cal-day.empty:hover{background:transparent;}
.cal-day.today{border-color:var(--accent);background:var(--accent-dim);color:var(--accent-ink);font-weight:600;}
.cal-day.selected{background:var(--accent);color:var(--on-accent);font-weight:600;}
.cal-day.has-data::after{content:'';position:absolute;bottom:3px;width:5px;height:5px;border-radius:50%;background:var(--green);}
.trends{background:var(--surface);border:1px solid var(--border);border-radius:var(--rxl);padding:16px;box-shadow:var(--shadow);margin-top:14px;}
.trend-title{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:10px;}
.trend-chart{height:100px;display:flex;align-items:flex-end;gap:4px;padding-top:8px;}
.trend-bar{flex:1;border-radius:var(--rs) var(--rs) 0 0;transition:height 0.3s;min-height:2px;position:relative;}
.trend-bar:hover{opacity:0.8;}
.trend-bar .tip{display:none;position:absolute;top:-20px;left:50%;transform:translateX(-50%);font-family:var(--fm);font-size:12px;background:var(--surface3);padding:2px 8px;border-radius:var(--rs);white-space:nowrap;color:var(--text);z-index:10;}.trend-bar:hover .tip{display:block;}
.trend-labels{display:flex;justify-content:space-between;margin-top:4px;}
.trend-label{font-family:var(--fm);font-size:10px;color:var(--muted);}
.trend-legend{display:flex;gap:14px;margin-top:8px;flex-wrap:wrap;}
.trend-leg{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text2);font-weight:600;}
.trend-dot{width:9px;height:9px;border-radius:var(--rs);flex-shrink:0;}
.day-review{background:var(--surface);border:1px solid var(--border);border-radius:var(--rxl);box-shadow:var(--shadow);overflow:hidden;}
.dr-hdr{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;}
.dr-date{font-size:22px;font-weight:600;flex:1;}
.dr-badge{font-family:var(--fm);font-size:12px;color:var(--green);background:var(--green-dim);padding:4px 10px;border-radius:var(--rs);font-weight:600;}
.dr-body{padding:18px 22px;}
.dr-section{margin-bottom:18px;}.dr-section:last-child{margin-bottom:0;}
.dr-section-title{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:8px;display:flex;align-items:center;gap:6px;}
.dr-metric{display:flex;gap:10px;flex-wrap:wrap;}
.dr-metric-item{background:var(--surface2);border-radius:var(--r);padding:12px 16px;text-align:center;flex:1;min-width:80px;}
.dr-metric-val{font-family:var(--fm);font-size:18px;font-weight:600;color:var(--text);}
.dr-metric-lbl{font-size:12px;color:var(--muted);margin-top:4px;font-weight:600;}
.dr-task{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border);font-size:15px;font-weight:600;}.dr-task:last-child{border-bottom:none;}
.dr-task i{font-size:15px;}.dr-task.completed i{color:var(--green);}.dr-task.incomplete i{color:var(--muted);}
.dr-backlog-btn{margin-left:auto;flex-shrink:0;background:var(--surface2);border:1px solid var(--border);color:var(--text2);border-radius:var(--r);padding:4px 8px;font-size:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:4px;transition:var(--tx-fast);font-family:var(--fb);}.dr-backlog-btn:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-ink);}
.dr-task-past:hover{background:var(--surface2);border-radius:var(--r);padding-left:4px;}
.dr-intention{font-size:15px;font-style:italic;color:var(--text2);padding:12px 16px;background:var(--surface2);border-radius:var(--r);border-left:2.5px solid var(--accent);font-weight:500;}
.dr-note{font-size:15px;color:var(--text2);padding:12px 16px;background:var(--surface2);border-radius:var(--r);white-space:pre-wrap;line-height:1.5;max-height:200px;overflow-y:auto;font-weight:500;}
.dr-rte{white-space:normal;}.dr-rte ul,.dr-rte ol{padding-left:20px;margin:4px 0;}.dr-rte li{margin-bottom:2px;}.dr-rte h3{font-size:15px;font-weight:600;margin-bottom:4px;color:var(--text);}.dr-rte blockquote{border-left:2px solid var(--accent);padding-left:10px;color:var(--muted);font-style:italic;margin:4px 0;}.dr-rte input[type=checkbox]{accent-color:var(--accent);width:13px;height:13px;margin-right:4px;vertical-align:middle;}.dr-rte strong{color:var(--text);}.dr-rte a{color:var(--accent-ink);}.dr-rte code{font-family:var(--fm);font-size:12px;background:var(--surface3);padding:1px 4px;border-radius:var(--rs);}.dr-rte hr{border:none;border-top:1px solid var(--border);margin:6px 0;}
.dr-empty{text-align:center;padding:50px 20px;color:var(--muted);}.dr-empty i{font-size:36px;opacity:0.4;margin-bottom:10px;display:block;}

/* ── View another day ── */
.hero{position:relative;}
.dv-row{display:flex;align-items:center;gap:2px;}
.dv-arrow,.dv-chip{background:none;border:1px solid transparent;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;border-radius:var(--r);display:inline-flex;align-items:center;gap:4px;transition:var(--tx-fast);}
.dv-arrow{width:22px;height:22px;justify-content:center;color:var(--muted);font-size:13px;}
.dv-chip{padding:2px 8px;}
.dv-chip i{font-size:12px;opacity:0.7;}
.dv-arrow:hover,.dv-chip:hover{background:var(--surface2);border-color:var(--border);color:var(--accent-ink);}
.greeting-card.viewing{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim),var(--shadow);}
.dv-pop{position:absolute;z-index:60;width:300px;background:var(--surface);border:1px solid var(--border2);border-radius:var(--rl);padding:12px;box-shadow:var(--shadow-lg);animation:slideUp 0.18s ease;}
.dv-pop[hidden]{display:none;}
.dv-pop-foot{display:flex;justify-content:flex-end;margin-top:8px;}
.dv-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:12px;border-radius:var(--rl);background:var(--accent-dim);border:1px solid var(--accent);color:var(--text);font-size:13px;font-weight:600;}
.dv-banner[hidden]{display:none;}
.dv-banner>i{color:var(--accent-ink);font-size:15px;flex-shrink:0;}
.dv-banner span{flex:1;min-width:0;}
@media(max-width:680px){.dv-pop{left:8px!important;right:8px;width:auto;}.dv-banner{flex-wrap:wrap;}.dv-banner span{flex-basis:100%;}}
@media(hover:none) and (pointer:coarse){.dv-arrow{width:32px;height:32px;}.dv-chip{min-height:32px;}}

/* ── Custom Theme Builder ── */

/* ── Print styles ── */
@media print{
  body{background:#fff!important;color:#000!important;}
  .nav,.nav-right,.toast-wrap,.modal-bg,.icon-btn,.t-actions,.hdel,.t-note-add,.card-hdr-actions,.t-search,.dv-arrow,.dv-chip i,.dv-pop,.dv-banner button,.menu-wrap{display:none!important;}
  .app{padding:0;max-width:100%;}
  .grid{flex-wrap:wrap!important;}
  .grid-col{width:48%!important;flex:0 0 48%!important;}
  .card{break-inside:avoid;border:1px solid #ccc!important;box-shadow:none!important;background:#fff!important;}
  .card-hdr,.card-body,.card *{color:#000!important;}
  .hero{grid-template-columns:1fr!important;}
  .priority-card{background:#e8f4ff!important;color:#000!important;}
  .task,.mit,.hrow,.med-item,.wcup{background:#f5f5f5!important;color:#000!important;}
  .rte-content{color:#000!important;}
}

/* ── Animations ── */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes slideInR{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ═══ RESPONSIVE ═══ */
@media(max-width:1100px){
  .grid{flex-wrap:wrap;}
  .journal-layout{grid-template-columns:1fr;}
}
@media(max-width:768px){
  .hero{grid-template-columns:1fr;}
  .nav-tab span{display:none;}.nav-tab{padding:8px 12px;}
}
@media(max-width:680px){
  .app{padding:10px 12px 90px;padding-bottom:max(90px,calc(70px + env(safe-area-inset-bottom)));}
  .grid{flex-direction:column;gap:10px;}
  .grid-col{width:100%;}
  .nav{position:fixed;bottom:0;left:0;right:0;top:auto;z-index:50;margin:0;border-radius:0;padding:6px 8px;padding-bottom:max(6px,env(safe-area-inset-bottom));border:none;border-top:1px solid var(--border);flex-wrap:nowrap;justify-content:space-around;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:color-mix(in srgb,var(--surface) 88%,transparent);}
  .nav-brand{display:none;}.nav-tabs{flex:1;justify-content:center;gap:4px;}
  .nav-tab{flex-direction:column;gap:2px;padding:6px 14px;font-size:12px;}.nav-tab i{font-size:18px;}
  .nav-right{gap:4px;padding-right:0;margin-left:0;}.nav-right .clock-block{display:none;}
  .icon-btn{width:38px;height:38px;}
  .greet-msg{font-size:22px;}
  .modal-bg{padding:8px;align-items:flex-end;}.modal{max-width:100%;border-radius:var(--rxl) var(--rxl) 0 0;}
  .toast-wrap{top:auto;bottom:80px;right:10px;left:10px;}.toast{min-width:0;width:100%;}
}
@media(max-width:380px){.greet-msg{font-size:18px;}}
@media(hover:none) and (pointer:coarse){
  .t-btn{opacity:1!important;}.hdel{opacity:1!important;}
  .btn{min-height:44px;}.icon-btn{min-width:44px;min-height:44px;}
  .mbtn{min-height:44px;font-size:22px;}.ebtn{min-width:44px;min-height:44px;font-size:18px;}
  .t-check,.mit-ck{width:24px;height:24px;}.task{padding:12px 12px;}
  .fpill{min-height:36px;display:flex;align-items:center;}.dbtn{min-height:38px;}
  .cal-day{min-height:38px;}.cal-nav{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;}
}
::-webkit-scrollbar{width:6px;height:6px;}::-webkit-scrollbar-track{background:transparent;}::-webkit-scrollbar-thumb{background:var(--surface3);border-radius:var(--rs);}::-webkit-scrollbar-thumb:hover{background:var(--border2);}
/* ── Quick Capture ── */
.qc-overlay{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:91;display:none;animation:fadeIn 0.18s ease;}
.qc-overlay.on{display:block;}
.qc-panel{position:fixed;bottom:max(88px,calc(84px + env(safe-area-inset-bottom)));right:16px;width:340px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--border2);border-radius:var(--rxl);box-shadow:var(--shadow-lg);z-index:92;display:none;padding:18px 18px 14px;animation:slideUp 0.22s ease;}
.qc-panel.on{display:block;}
.qc-header{display:flex;align-items:center;gap:8px;margin-bottom:14px;}
.qc-icon{width:32px;height:32px;border-radius:var(--r);background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--on-accent);flex-shrink:0;}
.qc-title{font-size:15px;font-weight:600;letter-spacing:-0.01em;}
.qc-hint{font-size:12px;color:var(--muted);font-weight:500;}
.qc-inp{width:100%;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--rl);padding:12px 12px;color:var(--text);font-family:var(--fb);font-size:15px;font-weight:500;outline:none;transition:var(--tx);margin-bottom:12px;resize:none;min-height:70px;line-height:1.5;} .qc-inp:focus{border-color:var(--accent);background:var(--surface3);} .qc-inp::placeholder{color:var(--muted);}
.qc-actions{display:flex;gap:6px;}
.qc-btn{flex:1;padding:8px 6px;border-radius:var(--r);border:1px solid var(--border);background:var(--surface2);color:var(--text2);font-size:12px;font-weight:600;cursor:pointer;transition:var(--tx-fast);display:flex;flex-direction:column;align-items:center;gap:4px;} .qc-btn:hover{border-color:var(--border2);background:var(--surface3);}
.qc-btn i{font-size:18px;} .qc-btn span{font-size:12px;color:var(--muted);}
.qc-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-ink);}
.qc-send{width:100%;margin-top:10px;padding:12px;border-radius:var(--rl);font-size:15px;font-weight:600;}
.qc-pri-row{display:flex;gap:4px;margin-bottom:10px;flex-wrap:wrap;}
.qc-pri-btn{padding:4px 12px;border-radius:var(--r);font-size:12px;font-weight:600;background:var(--surface2);border:1px solid var(--border);color:var(--muted);cursor:pointer;transition:var(--tx-fast);} .qc-pri-btn.on{border-color:var(--accent);background:var(--accent-dim);color:var(--accent-ink);}
.qc-kbd-hint{text-align:center;font-family:var(--fm);font-size:12px;color:var(--muted);margin-top:8px;}
@media(max-width:680px){.qc-panel{bottom:max(96px,calc(88px + env(safe-area-inset-bottom)));right:8px;left:8px;width:auto;}}
/* ── Sub-steps ── */
.steps-wrap{margin-top:6px;display:flex;flex-direction:column;gap:4px;}
.step-item{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:var(--r);background:var(--surface3);border-left:2px solid var(--border2);transition:var(--tx-fast);}
.step-item:hover{background:var(--surface2);}
.step-item.done{opacity:0.45;}
.step-item.done .step-text{text-decoration:line-through;}
.step-check{width:15px;height:15px;border-radius:var(--rs);border:1.5px solid var(--border2);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;font-size:10px;color:var(--bg);transition:var(--tx);}
.step-item.done .step-check{background:var(--green);border-color:var(--green);}
.step-text{font-size:12px;font-weight:600;flex:1;color:var(--text2);}
.step-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;opacity:0;padding:0 2px;transition:opacity 0.15s;} .step-item:hover .step-del{opacity:1;} .step-del:hover{color:var(--red);}
.step-stamp{font-family:var(--fm);font-size:12px;color:var(--muted);white-space:nowrap;}
.steps-progress{height:3px;border-radius:var(--rs);background:var(--surface3);margin-top:4px;overflow:hidden;}
.steps-progress-fill{height:100%;border-radius:var(--rs);background:var(--green);transition:width 0.3s;}
.add-step-row{display:flex;gap:4px;margin-top:4px;} .add-step-inp{flex:1;background:var(--surface3);border:1px solid var(--border);border-radius:var(--rs);padding:4px 8px;color:var(--text);font-size:12px;font-family:var(--fb);outline:none;} .add-step-inp:focus{border-color:var(--accent);} .add-step-inp::placeholder{color:var(--muted);} .add-step-btn{padding:4px 10px;font-size:12px;border-radius:var(--rs);}
.steps-edit-list{display:flex;flex-direction:column;gap:4px;margin-bottom:8px;}
.steps-edit-item{display:flex;align-items:center;gap:8px;}
.steps-edit-item input{flex:1;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);padding:6px 8px;color:var(--text);font-size:13px;font-family:var(--fb);outline:none;} .steps-edit-item input:focus{border-color:var(--accent);}
.steps-edit-item .step-edit-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;} .steps-edit-item .step-edit-del:hover{color:var(--red);}

/* ── Utility classes (replace inline styles throughout) ── */
.u-w100{width:100%;}
.u-flex{display:flex;}
.u-flex-col{display:flex;flex-direction:column;}
.u-items-center{align-items:center;}
.u-justify-end{justify-content:flex-end;}
.u-gap-sm{gap:4px;}
.u-mt-sm{margin-top:6px;}
.u-mt-md{margin-top:10px;}
.u-mb-sm{margin-bottom:8px;}
.u-fs-sm{font-size:12px;}
.u-fs-xs{font-size:12px;}
.u-color-muted{color:var(--muted);}
.u-color-accent{color:var(--accent-ink);}
.u-fw-500{font-weight:500;}
.u-hidden{display:none;}
/* Icon in modal title */
.modal-title-icon{margin-right:8px;color:var(--accent-ink);}
/* Kbd shortcut display chip */
.kbd-chip{font-family:var(--fm);font-size:12px;background:var(--surface2);padding:4px 8px;border-radius:var(--rs);}
/* Section description text */
.section-desc{font-size:12px;color:var(--muted);margin-bottom:10px;font-weight:500;}
/* Onboarding icon */
.onboard-icon{width:56px;height:56px;border-radius:var(--rxl);background:var(--accent);display:flex;align-items:center;justify-content:center;color:var(--on-accent);font-size:30px;margin:0 auto 14px;}
/* Sync status dot */
.sync-dot{width:10px;height:10px;border-radius:50%;background:var(--muted);flex-shrink:0;transition:background 0.3s;}
/* Timestamp sub-label in section titles */
.section-ts{font-size:12px;color:var(--muted);font-weight:400;margin-left:6px;}
/* Step count label in section titles */
.section-count{font-size:12px;color:var(--muted);font-weight:500;margin-left:4px;}

/* ══════════════════════════════════════════
   COUNTDOWN EVENTS CARD
   ══════════════════════════════════════════ */
.cde-list{display:flex;flex-direction:column;gap:8px;padding:14px 16px 10px;}
.cde-empty{text-align:center;padding:30px 16px;color:var(--muted);font-size:13px;font-weight:600;}
.cde-empty i{font-size:30px;opacity:0.35;display:block;margin-bottom:8px;}

/* Individual event tile */
.cde-item{border-radius:var(--rl);overflow:hidden;border:1px solid var(--border);transition:box-shadow 0.2s;}
.cde-item:hover{border-color:var(--border2);}
.cde-bar{height:4px;width:100%;}
.cde-body{display:flex;align-items:center;gap:12px;padding:12px 14px;}
.cde-icon-wrap{width:38px;height:38px;border-radius:var(--rl);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;}
.cde-info{flex:1;min-width:0;}
.cde-name{font-size:15px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cde-date{font-size:12px;color:var(--muted);font-weight:500;margin-top:2px;font-family:var(--fm);}
.cde-countdown{text-align:right;flex-shrink:0;}
.cde-num{font-family:var(--fm);font-size:22px;font-weight:600;line-height:1;}
.cde-unit{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;margin-top:2px;opacity:0.75;}

/* Multi-unit display mode */
.cde-multi{font-family:var(--fm);font-size:12px;font-weight:600;line-height:1.6;text-align:right;}
.cde-multi span{opacity:0.55;font-weight:500;}

/* Expired / happening now */
.cde-item.expired .cde-num{color:var(--muted)!important;}
.cde-item.today .cde-num{animation:pulseBig 1.4s ease-in-out infinite;}
@keyframes pulseBig{0%,100%{opacity:1;}50%{opacity:0.5;}}

/* Add/edit modal */

/* CDE tile inline actions — live inside the flex row, not overlaid */
.cde-tile-actions{display:flex;gap:4px;flex-shrink:0;opacity:0;max-width:0;overflow:hidden;transition:opacity 0.15s,max-width 0.15s;}
.cde-item:hover .cde-tile-actions{opacity:1;max-width:60px;}
.cde-tile-btn{width:26px;height:26px;border-radius:var(--r);background:var(--surface3);border:1px solid var(--border);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:var(--tx-fast);flex-shrink:0;}
.cde-tile-btn:hover{background:var(--surface2);color:var(--text);}
.cde-tile-btn.del:hover{background:var(--red-dim);color:var(--red);border-color:var(--red);}
/* Note preview on tile */
/* Expand panel */
.cde-expand{max-height:0;overflow:hidden;transition:max-height 0.28s cubic-bezier(0.4,0,0.2,1);}
.cde-expand.open{max-height:600px;}
.cde-expand-inner{padding:14px 16px 16px;border-top:1px solid var(--border);}
.cde-expand-meta{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.cde-expand-meta-item{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);font-weight:600;font-family:var(--fm);}
.cde-expand-note{font-size:13px;color:var(--text2);line-height:1.65;margin-bottom:12px;}
.cde-expand-note:empty{display:none;}
/* Rich text styles inside expand */
.cde-expand-note ul,.cde-expand-note ol{padding-left:18px;margin:4px 0;}
.cde-expand-note li{margin-bottom:2px;}
.cde-expand-note strong{color:var(--text);}
.cde-expand-note h3{font-size:13px;font-weight:600;color:var(--text);margin-bottom:4px;}
.cde-expand-note blockquote{border-left:2px solid var(--accent);padding-left:10px;color:var(--muted);font-style:italic;margin:4px 0;}
.cde-expand-note a{color:var(--accent-ink);}
.cde-expand-note input[type=checkbox]{accent-color:var(--accent);width:13px;height:13px;margin-right:4px;vertical-align:middle;}
.cde-expand-note hr{border:none;border-top:1px solid var(--border);margin:6px 0;}
.cde-expand-actions{display:flex;gap:6px;}
/* Chevron on tile header */
.cde-chevron{font-size:12px;color:var(--muted);transition:transform 0.22s;flex-shrink:0;margin-left:2px;}
.cde-item.expanded .cde-chevron{transform:rotate(180deg);}
/* Tile cursor indicates it's clickable */
.cde-item{cursor:pointer;}
/* Has-note indicator dot */
.cde-has-note{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0;opacity:0.7;}
/* Note section in modal */
.cde-note-section{margin-top:4px;}
.cde-note-section .rte-wrap{border:1px solid var(--border);border-radius:var(--rl);overflow:hidden;}

.cde-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.cde-color-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;}
.cde-color-swatch{width:28px;height:28px;border-radius:50%;cursor:pointer;border:2.5px solid transparent;transition:var(--tx-fast);flex-shrink:0;}
.cde-color-swatch.on{border-color:var(--text);transform:scale(1.18);}
.cde-icon-row{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px;}
.cde-icon-btn{width:32px;height:32px;border-radius:var(--r);background:var(--surface2);border:1px solid var(--border);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:15px;transition:var(--tx-fast);}
.cde-icon-btn:hover,.cde-icon-btn.on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-ink);}
.cde-display-row{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px;}
.cde-display-btn{padding:6px 12px;border-radius:var(--r);background:var(--surface2);border:1px solid var(--border);color:var(--text2);font-size:12px;font-weight:600;cursor:pointer;transition:var(--tx-fast);}
.cde-display-btn:hover,.cde-display-btn.on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-ink);}

/* Add button in card footer */
.cde-add-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;margin:0 14px 12px;border-radius:var(--r);background:var(--surface2);border:1px dashed var(--border);color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;transition:var(--tx-fast);width:calc(100% - 28px);}
.cde-add-btn:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-dim);}


/* ═══ POLISH LAYER v2.1.1 ═══ */
/* Keyboard focus — visible on keyboard navigation only; mouse clicks unchanged. */
:is(button,a[href],summary,[role=button],[role=switch],[role=checkbox],[tabindex]:not([tabindex="-1"])):focus-visible{outline:2px solid var(--focus);outline-offset:2px;}
/* Bordered text fields: accent border already applies on focus; add a soft ring. */
:is(.inp,.ta,.qc-inp,.t-note-inp,.add-step-inp,.steps-edit-item input):focus{box-shadow:0 0 0 3px var(--accent-dim);}
/* Borderless inline fields: accent underline on focus. */
:is(.int-inp,.mit-inp,.custom-card-hdr-inp):focus{box-shadow:0 2px 0 0 var(--accent);}
.rte-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);}
.fi-move{line-height:inherit;}
/* In-app dialog (replaces native confirm/prompt) */
.ui-dlg{position:fixed;inset:0;z-index:1100;display:none;align-items:center;justify-content:center;padding:16px;background:var(--scrim);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.ui-dlg.on{display:flex;animation:fadeIn 0.15s ease;}
.ui-dlg-box{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border2);border-radius:var(--rxl);box-shadow:var(--shadow-lg);padding:20px;}
.ui-dlg-title{font-family:var(--fh);font-size:18px;font-weight:600;color:var(--text);line-height:1.3;margin-bottom:8px;}
.ui-dlg-msg{font-size:15px;color:var(--text2);line-height:1.5;margin-bottom:16px;}
.ui-dlg-inp{width:100%;margin-bottom:8px;}
.ui-dlg-err{font-size:13px;color:var(--red);margin:0 0 8px;}
.ui-dlg-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px;}
.ui-dlg-actions .btn.danger{border-color:var(--red);}
@media(max-width:380px){.ui-dlg-actions{flex-direction:column-reverse;}.ui-dlg-actions .btn{width:100%;justify-content:center;}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important;}}
@media print{.ui-dlg{display:none!important;}}

/* ═══ STORAGE v3 ═══ */
.store-status{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 10px;border-radius:var(--r);border:1px solid var(--border);background:var(--surface);color:var(--text2);font-family:var(--fm);font-size:12px;font-weight:600;cursor:pointer;transition:var(--tx-fast);}
.store-status:hover{border-color:var(--border2);color:var(--text);}
.store-status.ok{color:var(--green);}.store-status.warn{color:var(--amber);border-color:var(--amber-dim);}.store-status.err{color:var(--red);border-color:var(--red-dim);}
.store-status .ti-loader-2{animation:spin 1s linear infinite;}@keyframes spin{to{transform:rotate(360deg);}}
.sync-dot.ok{background:var(--green);}.sync-dot.warn{background:var(--amber);}.sync-dot.err{background:var(--red);}
.fr-choice{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;padding:12px 14px;border-radius:var(--rl);border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;font-family:var(--fb);transition:var(--tx-fast);}
.fr-choice:hover{border-color:var(--accent);background:var(--surface3);}
.fr-choice>i{font-size:22px;color:var(--accent-ink);flex-shrink:0;margin-top:2px;}
.fr-choice b{display:block;font-size:15px;font-weight:600;}.fr-choice span{display:block;font-size:13px;color:var(--text2);line-height:1.45;margin-top:2px;}
.fr-choice.muted>i{color:var(--muted);}
@media(max-width:680px){.store-status span{display:none;}.store-status{padding:0 8px;}}
@media print{.store-status{display:none!important;}}

/* ═══ FOCALSLATE TOKENS LAYER ═══ */
/* Selected state: cobalt-soft fill, ink text (never accent text on accent-soft). */
.fpill.on,.dbtn.on,.rte-btn.on,.cc-icon-btn.on,.cc-type-btn.on,.qc-btn.active,.qc-pri-btn.on,.cde-icon-btn.on,.cde-display-btn.on,.cal-day.today,.mbtn.on,.ebtn.on{color:var(--text);}
/* Icons take the text colour of their context; colour lives on status only. */
.card-hdr-icon:not([id]){background:var(--surface2)!important;color:var(--muted)!important;}
.btn:hover{background:var(--accent2);}
.btn.danger:hover{background:var(--red-dim);border-color:var(--red);}
.toggle{border-radius:var(--rpill);}.toggle::after{background:var(--on-accent);}
.nav-tab{border-radius:var(--r);}
.palette-pill{display:inline-flex;align-items:center;gap:6px;}
.palette-pill.locked{color:var(--muted);}
.pal-dot{width:14px;height:14px;border-radius:4px;border:2px solid;display:inline-flex;align-items:flex-end;justify-content:flex-end;flex-shrink:0;}
.pal-dot span{width:6px;height:6px;border-radius:2px;display:block;}
input[type=color]{width:40px;height:32px;border:1px solid var(--border2);border-radius:var(--rs);background:var(--surface2);padding:2px;cursor:pointer;}

/* ═══ BRAND ═══ */
.fs-mark{width:26px;height:26px;color:var(--text);display:block;flex-shrink:0;}
.nav-mark{background:none!important;width:auto;height:auto;}
.nav-name{font-size:17px;font-weight:600;letter-spacing:-0.025em;}
.onboard-icon{background:var(--surface2)!important;color:var(--text)!important;border:1px solid var(--border);}
.onboard-icon .fs-mark{width:34px;height:34px;}
.about-mark{width:44px;height:44px;border-radius:10px;background:var(--surface2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.about-mark .fs-mark{width:30px;height:30px;}
.upgrade-modal-icon .fs-mark{width:48px;height:48px;margin:0 auto;}
.link-danger{background:none;border:none;font-size:12px;color:var(--muted);cursor:pointer;padding:4px 8px;border-radius:var(--rs);}
.link-danger:hover{color:var(--red);}

/* ═══ ACCESSIBILITY LAYER ═══ */
.skip-link{position:absolute;left:12px;top:-60px;z-index:2000;background:var(--accent);color:var(--on-accent);padding:8px 12px;border-radius:var(--r);font-weight:600;text-decoration:none;}
.skip-link:focus{top:12px;}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
button.t-check,button.mit-ck,button.cc-check-box{background:none;padding:0;font:inherit;}
.task.done button.t-check,.mit.done button.mit-ck{background:var(--green);}
.cc-check-item.done button.cc-check-box{background:var(--green);}
button.wcup{background:none;font:inherit;padding:0 0 4px;}
.task:focus-within .t-btn,.card-hdr:focus-within .card-hide-btn,.card-hdr:focus-within .cc-gear-btn,.hrow:focus-within .hdel,
.step-item:focus-within .step-del,.cc-check-item:focus-within .cc-check-del,.cde-item:focus-within .cde-tile-actions{opacity:1;max-width:none;}
h1.greet-msg,h2.card-hdr-title{margin:0;}
.cal-day[role=button]:focus-visible,.hday:focus-visible,.cde-item:focus-visible{outline:2px solid var(--focus);outline-offset:2px;}
.modal:focus{outline:none;}

/* ═══ C2: the hidden attribute always wins ═══ */
[hidden]{display:none!important;}
/* ═══ C5: toasts with actions, clear of the status pill ═══ */
.toast-wrap{top:auto;bottom:88px;right:20px;}
.toast-act{margin-left:auto;background:none;border:1px solid var(--border2);color:var(--text);border-radius:var(--r);padding:4px 10px;font:600 13px var(--fb);cursor:pointer;}
.toast-act:hover{background:var(--surface2);}
/* ═══ C4: focused Today ═══ */
.card-tray{margin:14px 4px 0;padding:14px 16px;border:1px dashed var(--border2);border-radius:var(--rxl);}
.tray-title{font-size:12px;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;}
.tray-row{display:flex;flex-wrap:wrap;gap:6px;}
.tray-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--r);background:var(--surface);border:1px solid var(--border);color:var(--text);font:500 13px var(--fb);cursor:pointer;transition:var(--tx-fast);}
.tray-btn:hover{border-color:var(--border2);background:var(--surface2);}
.tray-btn.ghost{color:var(--muted);border-style:dashed;}
.tray-btn i{font-size:15px;color:var(--muted);}
.nav-capture{display:none;}
.mini-timer{position:fixed;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:49;display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;background:var(--surface);border:1px solid var(--border2);border-radius:var(--rxl);box-shadow:var(--shadow-1);}
.mt-digits{font-family:var(--fm);font-size:20px;font-weight:600;color:var(--text);background:none;border:none;cursor:pointer;padding:0;}
.mt-mode{font-size:12px;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;color:var(--muted);flex:1;}
@media(min-width:681px){.mini-timer{display:none!important;}}
@media(max-width:680px){
  .nav-capture{display:flex;}
  .hide-mobile{display:none!important;}
  .nav-tab>span:not(.nav-badge){display:inline;font-size:12px;}
  .app{padding-bottom:max(150px,calc(140px + env(safe-area-inset-bottom)));}
  .toast-wrap{bottom:calc(140px + env(safe-area-inset-bottom));}
}

/* ═══ POLISH ═══ */
/* focus keeps the resting surface so placeholders stay ≥4.5:1 */
.inp:focus,.ta:focus,.qc-inp:focus{background:var(--surface2);}
.t-btn:focus-visible{opacity:1;}
/* muted text never sits on surface-3 (4.0:1 in dark); those controls use surface-2 or ink */
.add-step-inp,.t-note-inp{background:var(--surface2);}
.cde-tile-btn,.med-btn{color:var(--text2);}
label[for=onboard-name]{display:block;text-transform:none;letter-spacing:0;font-size:15px;font-weight:500;color:var(--text);margin-bottom:8px;}
.onboard-icon{background:none!important;border:none!important;}
.nav-capture{display:flex;width:auto;padding:0 12px;gap:6px;font:500 13px var(--fb);color:var(--text);border:1px solid var(--border);}
.nav-capture span{display:inline;}
.qc-panel{top:72px;bottom:auto;right:max(16px,calc((100vw - 1380px)/2 + 20px));}
@media(hover:hover){.t-note-add{opacity:0;transition:opacity .15s;}.task:hover .t-note-add,.task:focus-within .t-note-add{opacity:1;}}
@media(max-width:680px){.nav-capture{padding:0;width:44px;justify-content:center;border:none;}.nav-capture span{display:none;}
  .qc-panel{top:auto;bottom:calc(84px + env(safe-area-inset-bottom));left:8px;right:8px;}}

/* ═══ CLEAN PASS 3.2.1 ═══ */
/* 1 · stats live in the greeting */
.greet-stats{font:500 13px/1.4 var(--fm);color:var(--muted);margin:6px 0 14px;}
.greet-stats .gs-n{color:var(--text);font-weight:600;}
/* 3 · search inside the Tasks card */
.card-search-btn{width:28px;height:28px;color:var(--muted);}
.t-search{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:0 4px 0 12px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);}
.t-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);}
.t-search>i{color:var(--muted);font-size:15px;}
.t-search input{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--text);font:500 15px var(--fb);padding:8px 0;}
.t-search input::placeholder{color:var(--muted);}
.t-search .icon-btn{width:28px;height:28px;}
/* 5 · smaller timer, one control row */
.ring-wrap{width:120px;height:120px;margin:4px auto 12px;}
.t-digits{font-size:28px;letter-spacing:-1px;}
.timer-ctl{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;margin-bottom:12px;}
.timer-ctl .dur-btns,.timer-ctl .tbtn-row{margin:0;}
/* 6 · overflow menus */
.menu-wrap{position:relative;display:flex;}
.menu{position:absolute;top:calc(100% + 6px);right:0;z-index:60;min-width:230px;padding:4px;background:var(--surface);border:1px solid var(--border2);border-radius:var(--rl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:2px;}
.menu [role=menuitem]{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;border-radius:var(--r);padding:8px 10px;font:500 14px var(--fb);color:var(--text);cursor:pointer;text-align:left;}
.menu [role=menuitem]:hover,.menu [role=menuitem]:focus{background:var(--surface2);}
.menu [role=menuitem] i{font-size:16px;color:var(--text2);}
.menu [role=menuitem] kbd{margin-left:auto;font:500 12px var(--fm);color:var(--muted);}
.menu [role=menuitem].danger,.menu [role=menuitem].danger i{color:var(--red);}
.dr-menu{margin-left:auto;}
.day-review{overflow:visible;} /* the day menu must escape the panel */
/* 7 · one priority style: plain text, NOW in amber */
.t-pri,.t-pri.tp-now,.t-pri.tp-next,.t-pri.tp-later{background:none;padding:0;border-radius:0;font-weight:500;color:var(--muted);}
.t-pri.tp-now{color:var(--amber);font-weight:600;}
/* 8 · collapsed done tasks */
.t-done-row{list-style:none;display:flex;align-items:center;gap:8px;}
.t-done-tog,.t-done-clear{background:none;border:none;cursor:pointer;font:500 13px var(--fb);color:var(--muted);padding:6px 8px;border-radius:var(--rs);display:inline-flex;align-items:center;gap:6px;}
.t-done-tog:hover,.t-done-clear:hover{color:var(--text);background:var(--surface2);}
.t-done-clear{margin-left:auto;}
/* 9 · light palettes: outlined rows instead of grey fills */
:root[class*="light"] :is(.task,.mit,.cc-check-item,.dr-metric-item){background:var(--surface);border-top:1px solid var(--border);border-right:1px solid var(--border);border-bottom:1px solid var(--border);}
:root[class*="light"] :is(.mit,.cc-check-item,.dr-metric-item){border-left:1px solid var(--border);}
:root[class*="light"] .med-item{background:var(--surface);border-top:1px solid var(--border);border-right:1px solid var(--border);border-bottom:1px solid var(--border);}
:root[class*="light"] .task:hover{background:var(--surface2);}
/* 10 · drag handles only when asked for */
.card-drag-handle{opacity:0;transition:opacity .15s,color .15s;}
.card-hdr:hover .card-drag-handle,.card-hdr:focus-within .card-drag-handle{opacity:1;}
@media(hover:none){.card-drag-handle{display:none;}}
/* 11 · limit hints */
.card-hdr-sub.at-limit{color:var(--text);font-weight:600;}
/* 14 · journal glyphs */
.dr-task.incomplete i{color:var(--muted);}
/* 15 · settings tabs */
.set-body{display:grid;grid-template-columns:184px minmax(0,1fr);padding:0;}
.set-tabs{display:flex;flex-direction:column;gap:2px;padding:14px 10px;border-right:1px solid var(--border);}
.set-tab{display:flex;align-items:center;gap:10px;text-align:left;background:none;border:none;border-radius:var(--r);padding:8px 10px;font:500 14px var(--fb);color:var(--text2);cursor:pointer;}
.set-tab i{font-size:16px;color:var(--muted);}
.set-tab:hover{background:var(--surface2);color:var(--text);}
.set-tab[aria-selected=true]{background:var(--surface2);color:var(--text);font-weight:600;box-shadow:inset 2px 0 0 var(--accent);}
.set-tab[aria-selected=true] i{color:var(--accent-ink);}
.set-panels{padding:18px 22px;min-height:460px;}
.pal-stack{display:inline-flex;margin-right:4px;}
.pal-stack span{width:10px;height:10px;border-radius:50%;margin-right:-3px;border:1px solid var(--surface2);}
@media(max-width:680px){
  .set-body{grid-template-columns:1fr;}
  .set-tabs{flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border);padding:8px;}
  .set-tab{white-space:nowrap;}
  .set-tab[aria-selected=true]{box-shadow:inset 0 -2px 0 var(--accent);}
  .set-panels{min-height:0;padding:16px;}
}

/* 16 · what's new (3.3.0) */
.icon-btn{position:relative;}
.wn-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-ink);box-shadow:0 0 0 2px var(--surface);flex-shrink:0;}
.icon-btn .wn-dot{position:absolute;top:5px;right:5px;}
.set-tab .wn-dot{margin-left:auto;}
.wn-list{display:flex;flex-direction:column;gap:8px;margin-top:4px;}
.wn-rel{border:1px solid var(--border);border-radius:var(--rl);background:var(--surface2);}
.wn-rel summary{display:flex;align-items:baseline;gap:10px;padding:12px 14px;cursor:pointer;list-style:none;border-radius:var(--rl);}
.wn-rel summary::-webkit-details-marker{display:none;}
.wn-rel summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}
.wn-ver{font:600 14px var(--fb);color:var(--text);}
.wn-date{font:400 12px var(--fm);color:var(--muted);}
.wn-cur{margin-left:auto;font:600 12px var(--fb);color:var(--accent-ink);}
.wn-rel summary::after{content:"";width:7px;height:7px;margin-left:auto;align-self:center;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-2px) rotate(45deg);transition:transform .2s;}
.wn-rel[open] summary::after{transform:translateY(2px) rotate(-135deg);}
.wn-rel summary:has(.wn-cur)::after{margin-left:14px;}
.wn-rel ul{margin:0;padding:0 14px 14px 32px;display:flex;flex-direction:column;gap:6px;}
.wn-rel li{font-size:13px;line-height:1.5;color:var(--text2);}
