/* ===================================================================
   yunningtang OS — Notion-like theme
   Flat paper surfaces, grey sidebar, system sans, hover-revealed controls.
   =================================================================== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --font:"Inter",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Noto Sans SC","Microsoft YaHei",sans-serif;
  --serif:"Noto Serif SC","Songti SC","STSong","Source Han Serif SC",Georgia,"Times New Roman",serif;
  --mono:"SFMono-Regular",ui-monospace,Menlo,Consolas,monospace;
  --ease:cubic-bezier(.23,1,.32,1);--liquid:cubic-bezier(.3,1.4,.4,1);
  --r:16px;--r2:10px;--r3:8px;
  --sidebar:240px;
  --fs-xs:.7rem;--fs-sm:.78rem;--fs-md:.875rem;--fs-lg:.95rem;--fs-xl:1.15rem;--fs-2xl:1.6rem;--fs-3xl:2.4rem;
  --lh-tight:1.3;--lh-body:1.55;--lh-loose:1.7;
}
html[data-theme="light"]{
  --bg:#f4f6fa;--side:#f4f6fa;--paper:#ffffff;--card-bg:#ffffff;
  --ink:#15171a;--text:#1b1d21;--text-2:#2d3036;--text-3:#6b7079;--text-4:#9a9ea6;
  --g1:#15171a;--g2:#3a3d43;--g3:#5c6068;--g4:#8a8f98;--g5:#b4b8bf;--g6:#d4d7dc;--g7:#e8eaee;
  --line:rgba(22,25,31,.08);--line-2:rgba(22,25,31,.15);--hover:rgba(22,25,31,.045);--hover-2:rgba(22,25,31,.085);
  --input:rgba(22,25,31,.035);--tag-bg:rgba(22,25,31,.06);--tag-line:transparent;
  --shadow:0 0 0 1px rgba(20,20,20,.07);--shadow-h:0 0 0 1px rgba(20,20,20,.12),0 10px 30px -18px rgba(20,20,20,.25);
  --pop:0 0 0 1px rgba(20,20,20,.08),0 12px 36px -12px rgba(20,20,20,.3);
  --sel:rgba(79,124,245,.16);--cal-bg:#f3f5f9;--code-bg:#f3f5f9;--blue:#4f7cf5;--ac:79,124,245;
  --red:#d2524f;--amber:#c7873a;--green:#3f8f62;--teal:#2d8f88;--violet:#7461c9;--rose:#c9588a;--orange:#d87b3a;
  --liq:rgba(22,25,31,.065);
  --glass:rgba(255,255,255,.68);--glass-side:rgba(246,247,250,.6);--glass-line:rgba(255,255,255,.95);--glass-edge:rgba(20,24,40,.06);--glass-hl:rgba(255,255,255,1);--glass-shadow:0 2px 12px rgba(20,24,40,.04),0 12px 32px -24px rgba(20,24,40,.25);--blur:22px;
  --blob1:rgba(79,124,245,.12);--blob2:rgba(201,88,138,.08);--blob3:rgba(45,143,136,.09);--blob4:rgba(199,135,58,.07);
}
html[data-theme="dark"]{
  --bg:#121419;--side:#121419;--paper:#1b1e25;--card-bg:#1a1d24;
  --ink:#f2f1ee;--text:#ececea;--text-2:#d6d5d2;--text-3:#9b9b98;--text-4:#6a6a68;
  --g1:#f2f1ee;--g2:#cfcecb;--g3:#a9a8a5;--g4:#858380;--g5:#605f5d;--g6:#454442;--g7:#303030;
  --line:rgba(255,255,255,.09);--line-2:rgba(255,255,255,.18);--hover:rgba(255,255,255,.06);--hover-2:rgba(255,255,255,.11);
  --input:rgba(255,255,255,.05);--tag-bg:rgba(255,255,255,.09);--tag-line:transparent;
  --shadow:0 0 0 1px rgba(255,255,255,.05),0 10px 30px -22px rgba(0,0,0,.6);--shadow-h:0 0 0 1px rgba(255,255,255,.08),0 16px 36px -20px rgba(0,0,0,.7);
  --pop:0 0 0 1px rgba(255,255,255,.1),0 12px 36px -12px rgba(0,0,0,.7);
  --sel:rgba(96,165,250,.3);--cal-bg:#262626;--code-bg:#1b1b1b;--blue:#60a5fa;--ac:96,165,250;
  --red:#f26d6d;--amber:#f0b45a;--green:#5cc083;--teal:#4fc3b0;--violet:#a78bfa;--rose:#f27aa6;--orange:#f59a5a;
  --liq:rgba(255,255,255,.1);
  --glass:rgba(28,31,38,.5);--glass-side:rgba(18,20,25,.6);--glass-line:rgba(255,255,255,.07);--glass-edge:rgba(255,255,255,.06);--glass-hl:rgba(255,255,255,.09);--glass-shadow:0 18px 44px -30px rgba(0,0,0,.8);
  --blob1:rgba(96,165,250,.14);--blob2:rgba(242,122,166,.09);--blob3:rgba(79,195,176,.1);--blob4:rgba(240,180,90,.07);
}

html{scrollbar-width:thin;scrollbar-color:rgba(128,128,128,.25) transparent}
body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(55% 45% at 8% 0%,var(--blob1),transparent 70%),radial-gradient(45% 40% at 95% 12%,var(--blob2),transparent 70%),radial-gradient(50% 45% at 55% 100%,var(--blob3),transparent 70%),radial-gradient(35% 35% at 20% 80%,var(--blob4),transparent 70%)}
body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;font-size:14px;line-height:var(--lh-body);overflow-x:hidden;letter-spacing:.005em}
body.modal-open{overflow:hidden}
::-webkit-scrollbar{width:7px;height:0}::-webkit-scrollbar:horizontal{display:none;height:0}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:transparent;border-radius:6px;border:2px solid transparent;background-clip:padding-box}
*:hover>::-webkit-scrollbar-thumb,:hover::-webkit-scrollbar-thumb{background:rgba(128,128,128,.3)}
.nb-list,.lc-list,.ns-body,.time-list,.trip-list,.note-list,.move-list{scrollbar-width:thin;scrollbar-color:transparent transparent}
.nb-list:hover,.lc-list:hover,.ns-body:hover,.time-list:hover,.trip-list:hover,.move-list:hover{scrollbar-color:rgba(128,128,128,.3) transparent}
::selection{background:var(--sel)}
.b-text::selection,.b-text *::selection{background:var(--sel)}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none}
h1,h2,h3,h4{font-weight:600;line-height:var(--lh-tight);letter-spacing:-.01em;color:var(--text)}
h1{font-size:var(--fs-2xl);font-weight:700}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}h4{font-size:var(--fs-md)}
.quote{font-family:var(--serif)}
small,.small{font-size:var(--fs-sm)}
.muted{color:var(--text-4)}
.ocean{display:none}

/* ===== Liquid selection ===== */
[data-liquid]{position:relative}
[data-liquid]>.liq{position:absolute;left:0;top:0;width:0;height:0;border-radius:var(--r);background:var(--liq);pointer-events:none;opacity:0;z-index:0;transform:translate(0,0);transition:transform .45s var(--liquid),width .35s var(--liquid),height .35s var(--liquid),opacity .2s ease;will-change:transform}
[data-liquid]>:not(.liq){position:relative}
.seg>background:var(--paper);box-shadow:0 1px 2px rgba(20,20,20,.12),0 0 0 1px rgba(20,20,20,.06);border-radius:var(--r3)}
html[data-theme="dark"] .seg>background:#333;box-shadow:none}
.subnav>.liq{border-radius:9px}
.beditor>background:var(--hover);border-radius:var(--r3)}
.nav>.liq,.ns-body>border-radius:var(--r)}

/* ===== Shell ===== */
#app{position:relative}
.shell{display:grid;grid-template-columns:var(--sidebar) 6px 1fr;min-height:100vh}
.shell-mini{grid-template-columns:64px 1fr}
.splitter{position:relative;width:6px;cursor:col-resize;flex-shrink:0;z-index:20;margin:0 -3px}
.splitter::after{content:"";position:absolute;top:0;bottom:0;left:2px;width:2px;border-radius:2px;background:transparent;transition:background .15s}
.splitter:hover::after,body.resizing .splitter::after{background:rgba(var(--ac),.5)}
.sp-side{margin:0;width:6px}.sp-side::after{left:0}
body.resizing{cursor:col-resize;user-select:none}
body.resizing *{pointer-events:none}
body.resizing .splitter{pointer-events:auto}
.side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:2px;padding:12px 10px 12px;background:var(--glass-side);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.5);backdrop-filter:blur(var(--blur)) saturate(1.5);border-right:1px solid var(--line);overflow:auto;scrollbar-width:none}
.side::-webkit-scrollbar{display:none}
.side-top{display:flex;align-items:center;justify-content:space-between;height:40px;padding:0 4px;margin-bottom:6px}
.brand{display:grid;place-items:center;width:34px;height:34px;text-decoration:none}
.brand .logo{width:28px;height:28px;border-radius:9px;background:var(--ink);color:var(--bg);display:grid;place-items:center}
.side-tg{color:var(--text-4)}
.side-week{font-size:.7rem;color:var(--text-4);padding-left:8px;letter-spacing:.04em}
.side.mini .side-week{display:none}
.ctx.popmenu{position:fixed;z-index:300;width:224px;max-height:calc(100vh - 16px);overflow-y:auto;overflow-x:hidden;animation:pop .1s var(--ease)}
.ctx .pm{display:grid;grid-template-columns:16px minmax(0,1fr) auto;gap:9px;align-items:center;padding:6px 10px;min-height:32px}
.ctx .pm .ic{color:var(--text-4);width:14px;height:14px;display:block}.ctx .pm.danger .ic{color:var(--red)}
.ctx .pm b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.ctx .pm small{margin-left:0;max-width:84px;overflow:hidden;text-overflow:ellipsis}
.ctx .pm-sec{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ctx .pm.disabled{opacity:.4;cursor:default}.ctx .pm.disabled:hover{background:none}
.ctx-sep{height:1px;background:var(--line);margin:4px 6px}
.nav{display:flex;flex-direction:column;gap:1px}
.nav a{display:flex;align-items:center;gap:9px;min-height:32px;padding:4px 10px;border-radius:var(--r2);font-size:.875rem;color:var(--text-3);text-decoration:none;transition:color .15s;position:relative}
.nav a:hover{color:var(--text)}
.nav a.active{color:var(--text);font-weight:500}
.nav a .ic{color:var(--text-4);flex-shrink:0}
.nav a.active .ic{color:var(--blue)}
.nav a .cnt{margin-left:auto;font-size:.72rem;color:var(--text-4)}
.nav .sep{display:flex;align-items:center;gap:4px;width:100%;font-size:var(--fs-xs);font-weight:600;color:var(--text-4);padding:14px 10px 4px;letter-spacing:.06em;text-transform:uppercase;text-align:left;border-radius:var(--r3)}
.nav .sep .ic{opacity:0;transition:opacity .15s,transform .2s var(--liquid)}
.nav .sep:hover .ic{opacity:1}.nav .sep.closed .ic{transform:rotate(-90deg)}
.nav div.sep{padding:6px 0}
.nav>.liq{background:var(--hover-2);border-radius:var(--r2)}
.nav-tree{margin:0 0 4px 2px;padding-left:6px}
.nav-tree .pt-row{min-height:28px;font-size:.84rem}
.nav-tree .nb-pages .pt-row{min-height:26px;font-size:.78rem;color:var(--text-4)}.nav-tree .nb-pages .pt-row.active{color:var(--text);font-weight:500}.nav-tree .nb-pages .pt-row .pt-ic{width:14px}.nav-tree .nb-pages .pt-row .pt-ic .ic{width:13px;height:13px}.nav-tree .nb-pages .pt-row:hover,.nav-tree .nb-pages .pt-row.active{color:var(--text)}
.nav-tree .nb-row{margin-top:3px}.nav-tree>div:first-child .nb-row{margin-top:0}
.tree-acts{display:flex;align-items:center;gap:2px}
.tree-acts .pt-row{flex:1}
.tree-mini{font-size:.68rem;color:var(--text-4);padding:3px 6px;border-radius:6px;opacity:0;transition:opacity .15s}
.nav-tree:hover .tree-mini{opacity:1}.tree-mini:hover{background:var(--hover);color:var(--text)}
.nav-tg{margin-left:2px;width:20px;height:20px;border-radius:6px;display:grid;place-items:center;color:var(--text-4)}
.nav-tg:hover{background:var(--hover-2);color:var(--text)}
.nav a .cnt+.nav-tg{margin-left:4px}
/* collapsed rail */
.side.mini{padding:12px 10px;align-items:center}
.side.mini .side-top{flex-direction:column;gap:6px;padding-bottom:8px}
.side.mini .nav a{width:44px;height:44px;padding:0;justify-content:center;border-radius:13px}
.side.mini .nl,.side.mini .nav .sep span,.side.mini .nav-tg,.side.mini .nav-tree,.side.mini .sep .ic{display:none}
.side.mini .nav .sep{padding:6px 0;height:12px}
.side.mini .nav a .cnt{position:absolute;top:6px;right:6px;margin:0;min-width:14px;height:14px;padding:0 4px;border-radius:7px;background:var(--blue);color:var(--on-ac,#fff);font-size:.6rem;font-weight:600;display:grid;place-items:center;line-height:1}
.side.mini .nav a .ic{width:18px;height:18px}
.side.mini .nav a[data-tip]::after,.side.mini .side-user[data-tip]::after{content:attr(data-tip);position:absolute;left:54px;top:50%;transform:translate(-4px,-50%);padding:4px 8px;border-radius:6px;background:var(--ink);color:var(--bg);font-size:.72rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s,transform .2s var(--liquid);z-index:70}
.side.mini .nav a:hover::after,.side.mini .side-user:hover::after{opacity:1;transform:translate(0,-50%)}
.side.mini .side-user{padding:4px;justify-content:center;position:relative}
.side.mini .nav>.liq{border-radius:13px}
.side-user{margin-top:auto;display:flex;align-items:center;gap:10px;padding:8px 8px;border-radius:var(--r2);text-decoration:none;color:inherit}
.side-user:hover{background:var(--hover)}
.side-user.active{background:var(--hover)}.side-user .su-gear{color:var(--text-4);margin-left:auto;flex-shrink:0}.side-user:hover .su-gear{color:var(--text-2)}
.side-user b{display:block;font-size:.82rem;font-weight:500}.side-user small{display:block;font-size:.68rem;color:var(--text-4)}
.side-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#c9d8ff,#e8d9ff);color:var(--text);display:grid;place-items:center;font-weight:600;font-size:.8rem;overflow:hidden;flex-shrink:0}
.side-avatar img{width:100%;height:100%;object-fit:cover}

.main{min-width:0;padding:0 28px 60px 24px;overflow-x:clip}
.shell{overflow-x:clip}
.topbar{--tb-bg:color-mix(in srgb,var(--bg) 72%,transparent);position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:8px;height:52px;margin:0 -28px 8px -24px;padding:0 28px 0 16px;background:transparent;transition:background .2s,transform .3s var(--ease)}
/* 往下滚时顶栏让路，往上滚一点就回来；下沿用一段渐变过渡，不画硬线 */
body.tb-hide .topbar{transform:translateY(-110%)}
.topbar::after{content:'';position:absolute;left:0;right:0;top:100%;height:18px;pointer-events:none;background:linear-gradient(var(--tb-bg),transparent);opacity:0;transition:opacity .2s}
body.scrolled .topbar::after{opacity:1}
body.scrolled .topbar{background:var(--tb-bg);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4)}
.topbar .ttl{font-size:.875rem;color:var(--text);display:flex;align-items:center;gap:2px;min-width:0;white-space:nowrap;overflow:hidden}
.topbar .ttl b{font-weight:500}
.crumb-top a{text-decoration:none;color:var(--text-3);padding:3px 6px;border-radius:var(--r3)}.crumb-top a:hover{background:var(--hover);color:var(--text)}.crumb-top span{color:var(--text-4);margin:0 2px}.crumb-top b{padding:3px 6px}
.topbar .sp{flex:1}
.searchbox{display:flex;align-items:center;gap:6px;width:auto;height:32px;padding:0 12px;border-radius:999px;background:transparent;box-shadow:inset 0 0 0 1px var(--line);color:var(--text-3);font-size:.8rem;cursor:pointer;transition:background .16s}
.searchbox:hover{background:var(--hover)}
.searchbox span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.searchbox kbd{margin-left:auto;font-size:.66rem;padding:1px 5px;border-radius:4px;border:1px solid var(--line-2);color:var(--text-4);font-family:var(--font)}
.ibtn.hamb{display:none}
.theme-glass{width:32px;height:32px;border-radius:999px;color:var(--text-3);display:grid;place-items:center;position:relative;overflow:hidden;font-size:.74rem}
.theme-glass:hover{background:var(--hover);color:var(--text)}
.theme-glass .ic{position:absolute;transition:all .35s var(--liquid)}
html[data-theme="dark"] .theme-glass .is{opacity:0;transform:rotate(90deg) scale(.4)}
html[data-theme="light"] .theme-glass .im{opacity:0;transform:rotate(-90deg) scale(.4)}

/* ===== Controls ===== */
.btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:var(--r2);font-size:.82rem;font-weight:500;color:var(--text);background:var(--paper);border:1px solid var(--line-2);transition:background .15s,transform .35s var(--liquid);white-space:nowrap}
.btn:active{transform:scale(.96)}
.btn:hover{background:var(--hover)}
.btn.primary{color:var(--on-ac,#fff);background:var(--blue);border-color:transparent;box-shadow:0 6px 16px -8px rgba(var(--ac),.6)}
.btn.primary:hover{opacity:.92}
.btn.ghost{border-color:transparent;color:var(--text-3)}
.btn.ghost:hover{color:var(--text);background:var(--hover)}
.btn.danger{color:var(--red)}
.btn.sm{height:26px;padding:0 8px;font-size:.78rem}
.btn:disabled{opacity:.5;pointer-events:none}
.ibtn{width:30px;height:30px;border-radius:9px;display:inline-grid;place-items:center;color:var(--text-3);transition:background .1s}
.ibtn:hover{background:var(--hover);color:var(--text)}
.ibtn.danger:hover{color:var(--red)}
input[type=text],input[type=url],input[type=date],input[type=time],input[type=number],input[type=password],input[type=search],select,textarea{width:100%;padding:8px 12px;border-radius:var(--r2);border:1px solid var(--line);background:var(--input);color:var(--text);font-size:.875rem;outline:none;transition:box-shadow .15s,border-color .15s}
input:focus,select:focus,textarea:focus{border-color:rgba(var(--ac),.6);box-shadow:0 0 0 2px rgba(var(--ac),.2);background:var(--bg)}
input::placeholder,textarea::placeholder{color:var(--text-4)}
textarea{resize:none;min-height:80px;line-height:1.6;scrollbar-width:none}textarea::-webkit-scrollbar{display:none}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239b9a97' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;padding-right:26px}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;border:0;padding:0;box-shadow:none;background:linear-gradient(var(--blue),var(--blue)) 0/var(--p,50%) 100% no-repeat var(--hover-2);cursor:pointer}
input[type=range]:focus{box-shadow:none;background:linear-gradient(var(--blue),var(--blue)) 0/var(--p,50%) 100% no-repeat var(--hover-2)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--paper);border:2px solid var(--blue);box-shadow:0 1px 3px rgba(16,24,40,.2);transition:transform .15s}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.12)}
input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--paper);border:2px solid var(--blue)}input[type=range]::-moz-range-track{height:4px;background:transparent}
input[type=checkbox]{accent-color:var(--blue);width:15px;height:15px}
.field{display:flex;flex-direction:column;gap:4px;font-size:.8rem}
.flabel{font-size:var(--fs-xs);font-weight:500;color:var(--text-3)}
.fhint{font-size:.7rem;color:var(--text-4)}
.row{display:flex;gap:10px;align-items:center}.row.wrap{flex-wrap:wrap}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.form{display:flex;flex-direction:column;gap:12px}
.seg{display:inline-flex;gap:1px;padding:3px;border-radius:var(--r2);background:var(--hover);height:32px;box-sizing:border-box}
.seg button{height:26px;padding:0 11px;border-radius:7px;font-size:.78rem;color:var(--text-3);transition:color .2s;display:inline-flex;align-items:center}
.seg button.on{color:var(--text)}
.seg.mini button{padding:1px 7px;font-size:.74rem}
.seg.mini .serif-f{font-family:var(--serif)}.seg.mini .mono-f{font-family:var(--mono)}
.tag{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;line-height:1.4;padding:3px 9px;border-radius:8px;background:var(--tag-bg);color:var(--text-2);white-space:nowrap;border:0;font-weight:500;box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
html[data-theme="dark"] .tag{box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.tag.tc,.tag.th,.mtag,.tag-chip{--tcd:var(--tc);color:color-mix(in srgb,var(--tc) 78%,var(--text));background:linear-gradient(180deg,color-mix(in srgb,var(--tc) 10%,var(--card-bg)),color-mix(in srgb,var(--tc) 17%,var(--card-bg)))}
html[data-theme="dark"] .tag.tc,html[data-theme="dark"] .tag.th,html[data-theme="dark"] .mtag,html[data-theme="dark"] .tag-chip{color:color-mix(in srgb,var(--tcd) 88%,#fff);background:linear-gradient(180deg,color-mix(in srgb,var(--tcd) 22%,var(--card-bg)),color-mix(in srgb,var(--tcd) 15%,var(--card-bg)))}
.tag button{color:inherit;opacity:.5;font-size:.85rem;line-height:1}.tag button:hover{opacity:1}
.tag.click{cursor:pointer}.tag.click:hover{filter:brightness(.96)}html[data-theme="dark"] .tag.click:hover{filter:brightness(1.15)}
.tag.click.on,.tag-chip.on{background:var(--ink);color:var(--bg)}.tag.tc.click.on,.tag.th.click.on,.tag-chip.on{background:var(--tc);color:#fff}html[data-theme="dark"] .tag.tc.click.on,html[data-theme="dark"] .tag.th.click.on,html[data-theme="dark"] .tag-chip.on{background:var(--tcd);color:#fff}
.taginput{display:flex;flex-wrap:wrap;gap:4px;padding:4px 8px;border-radius:var(--r2);border:1px solid var(--line-2);background:var(--input);min-height:32px;align-items:center}
.taginput input{flex:1;min-width:100px;border:0;background:none;padding:2px 2px;box-shadow:none}
.taginput input:focus{box-shadow:none;background:none}
.prog{height:4px;border-radius:2px;background:var(--hover-2);overflow:hidden}
.prog i{display:block;height:100%;border-radius:2px;background:var(--blue);transition:width .6s var(--liquid)}
.stars{display:inline-flex;gap:1px}
.stars button{color:var(--g6);padding:1px}.stars button.on{color:var(--text-2)}.stars button.on .ic{fill:currentColor}

/* ===== Cards (flat panels) ===== */
.card{position:relative;border-radius:var(--r);background:var(--glass);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.6);backdrop-filter:blur(var(--blur)) saturate(1.6);box-shadow:inset 0 1px 0 var(--glass-hl),0 0 0 1px var(--glass-edge),var(--glass-shadow);transition:box-shadow .25s var(--ease);overflow:hidden}
.card::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 1.5px var(--glass-line)}
html[data-theme="dark"] .card::after{box-shadow:inset 0 0 0 1px var(--glass-line)}
.card.pad{padding:18px 20px}
.card:hover{box-shadow:inset 0 1px 0 var(--glass-hl),0 0 0 1px var(--glass-edge-h,rgba(20,24,40,.09)),var(--glass-shadow-h,0 2px 12px rgba(20,24,40,.05),0 18px 40px -24px rgba(20,24,40,.3))}
.card-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.card-h h3{font-size:var(--fs-lg);font-weight:600;letter-spacing:-.01em}
.card-sub{display:block;font-size:var(--fs-xs);color:var(--text-4);margin-top:2px;font-weight:400}
.card-act{display:flex;gap:4px;align-items:center;flex-shrink:0}
.card.lift:hover{transform:none}
.empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 10px;color:var(--text-4);font-size:.8rem;text-align:center}
.empty .ic{opacity:.5}
.kicker{display:none}
.page-h{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:2px 0 14px;flex-wrap:wrap;min-height:36px}
.page-h>div:empty{display:none}.page-h:not(:has(.acts,.dnav,.desc)){display:none}
.page-h h1{font-size:var(--fs-2xl);font-weight:700}
.page-h .desc{font-size:var(--fs-sm);color:var(--text-3)}
.page-h .acts{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-left:auto}
.muted{color:var(--text-4)}.small{font-size:.76rem}.mono{font-variant-numeric:tabular-nums}
.serif{font-family:var(--serif)}
.fi{animation:fi .25s ease-out both}
@keyframes fi{from{opacity:0}to{opacity:1}}
.stack{display:flex;flex-direction:column;gap:12px}.stack>.card.grow{flex:1 1 auto}.gap8{gap:8px}.flex1{flex:1;min-width:0}
.sec-h{font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-4);margin:0 0 8px;display:flex;gap:6px;align-items:center}

/* ===== Modal / popovers ===== */
.modal-bg{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;width:100vw;height:100vh;background:rgba(15,15,15,.6);animation:fade .15s}
@keyframes fade{from{opacity:0}to{opacity:1}}
.modal{-webkit-backdrop-filter:blur(24px) saturate(1.5);backdrop-filter:blur(24px) saturate(1.5);width:min(540px,100%);max-height:92vh;display:flex;flex-direction:column;border-radius:20px;background:color-mix(in srgb,var(--paper) 86%,transparent);box-shadow:var(--pop);animation:pop .15s var(--ease)}
.modal.wide{width:min(820px,100%)}
.modal.confirm{width:min(380px,100%)}
.btn.danger-solid{color:#fff;background:var(--red);border-color:transparent}.btn.danger-solid:hover{opacity:.9}
@keyframes pop{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}
.modal-h{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 6px}
.modal-h h3{font-size:.95rem}
.modal-b{padding:6px 18px 14px;overflow:auto}
.modal-f{display:flex;justify-content:flex-end;gap:8px;padding:10px 18px 14px;border-top:1px solid var(--line)}
.popmenu{-webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5);position:absolute;left:0;z-index:40;width:300px;max-height:320px;overflow:auto;padding:6px;border-radius:14px;background:color-mix(in srgb,var(--paper) 86%,transparent);box-shadow:var(--pop)}
.pm{display:flex;align-items:baseline;gap:8px;padding:6px 10px;border-radius:var(--r2);cursor:pointer;font-size:.84rem;color:var(--text)}
.pm b{font-weight:400}.pm small{color:var(--text-4);margin-left:auto;font-size:.7rem;white-space:nowrap}
.pm.on,.pm:hover{background:var(--hover)}
.pm.danger{color:var(--red)}
.pm-sec{font-size:.7rem;color:var(--text-4);padding:8px 10px 2px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:200;padding:8px 14px;border-radius:var(--r2);background:var(--ink);color:var(--bg);font-size:.8rem;box-shadow:var(--pop);animation:pop .15s}

/* ===== Dashboard ===== */
.dash3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch;grid-auto-flow:row dense}
.widget{position:relative;min-width:0;display:flex;flex-direction:column}
.widget>.card{min-height:var(--wh,auto);flex:1;display:flex;flex-direction:column}
.widget[data-span-preview="1"]{grid-column:span 1!important}.widget[data-span-preview="2"]{grid-column:span 2!important}.widget[data-span-preview="3"]{grid-column:1 / -1!important}
.w-rz{position:absolute;z-index:4;opacity:0;transition:opacity .15s}
.widget:hover .w-rz,.widget.custom .w-rz{opacity:1}
.w-rz-b{left:14px;right:14px;bottom:-3px;height:8px;cursor:ns-resize}
.w-rz-b::after{content:"";position:absolute;left:50%;top:3px;width:28px;height:3px;margin-left:-14px;border-radius:2px;background:var(--line-2)}
.w-rz-b:hover::after{background:var(--blue)}
.w-rz-r{top:14px;bottom:14px;right:-3px;width:8px;cursor:ew-resize}
.w-rz-r::after{content:"";position:absolute;top:50%;left:3px;height:28px;width:3px;margin-top:-14px;border-radius:2px;background:var(--line-2)}
.w-rz-r:hover::after{background:var(--blue)}
body.resizing .w-rz{opacity:1}
.widget.span-1{grid-column:span 1}.widget.span-2{grid-column:span 2}.widget.span-3{grid-column:1 / -1}
.wk-stats{display:flex;flex-direction:column}.span-3 .wk-stats,.span-2 .wk-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0 28px}
@media (max-width:1180px){.dash3{grid-template-columns:repeat(2,minmax(0,1fr))}.widget.span-2,.widget.span-3{grid-column:1 / -1}.span-2 .wk-stats{grid-template-columns:repeat(3,1fr)}}
@media (max-width:720px){.dash3{grid-template-columns:1fr}.widget{grid-column:1 / -1!important}.wk-stats{display:flex!important}}
.widget.custom{cursor:grab}
.widget.custom>.card{outline:1.5px dashed var(--line-2);outline-offset:-1.5px}
.widget.dragging{opacity:.4}
.widget.drop-before::before,.widget.drop-after::after{content:"";position:absolute;top:0;bottom:0;width:3px;border-radius:2px;background:var(--blue);z-index:5}
.widget.drop-before::before{left:-9px}.widget.drop-after::after{right:-9px}
.w-tools{position:absolute;top:8px;right:8px;display:flex;gap:2px;align-items:center;z-index:6;background:var(--paper);border-radius:9px;box-shadow:var(--shadow)}
.w-grip{width:26px;height:26px;display:grid;place-items:center;color:var(--text-4);cursor:grab}
.w-dots{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;color:var(--text-3)}.w-dots:hover{background:var(--hover)}
.w-menu{right:0;left:auto;top:30px;width:150px}
.custom-bar{grid-column:1 / -1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;border-radius:12px;background:rgba(var(--ac),.07);font-size:.8rem;color:var(--text-2)}
.custom-bar>span{display:inline-flex;align-items:center;gap:6px}
.done-tg{display:flex;align-items:center;gap:6px;font-size:.76rem;color:var(--text-4);padding:6px 8px;border-radius:8px;margin-top:4px}
.done-tg:hover{background:var(--hover);color:var(--text)}
.d-row{display:contents}
.profile{flex-direction:row!important;align-items:center;gap:16px;padding:16px 20px}
.avatar.big{width:60px;height:60px;border-radius:50%;background:radial-gradient(120% 120% at 30% 20%,#dfe8ff,#c7d6ff 60%,#e9ddff);color:var(--text);font-size:1.3rem;font-weight:600}
.p-name{font-size:var(--fs-xl);font-weight:600;letter-spacing:-.01em}.p-sub{font-size:var(--fs-sm);color:var(--text-3);margin-top:3px}
.mini-tl-wrap{flex:1 1 auto;min-height:300px;max-height:640px;overflow-y:auto;overflow-x:hidden;margin:0 -6px;padding:10px 6px 4px;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}.mini-tl-wrap::-webkit-scrollbar{width:6px}.mini-tl-wrap::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:3px}
.mini-tl{position:relative;margin-left:44px}
.mt-h{position:absolute;left:0;right:0;border-top:1px solid var(--line)}
.mt-h span{position:absolute;left:-44px;top:-7px;font-size:.66rem;color:var(--text-4)}
.mt-b{position:absolute;left:6px;right:0;border-radius:9px;padding:4px 10px;font-size:.74rem;line-height:1.3;background:color-mix(in srgb,var(--bc) 16%,var(--paper));overflow:hidden;cursor:pointer;box-sizing:border-box;transition:box-shadow .15s}
.mt-b:hover{box-shadow:0 0 0 1.5px color-mix(in srgb,var(--bc) 55%,transparent);z-index:2}
.mt-b b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mt-b small{color:var(--text-3);font-size:.66rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.mt-b.one{display:flex;align-items:center;gap:8px;padding-top:0;padding-bottom:0}.mt-b.one b{flex:1;min-width:0}.mt-b.one small{flex:none}
.mt-b.past{opacity:.5}.mt-b.cur{box-shadow:0 0 0 1.5px var(--bc),0 4px 12px -6px color-mix(in srgb,var(--bc) 60%,transparent);font-weight:500}
.mt-now{position:absolute;left:0;right:0;height:1.5px;background:var(--blue)}
.mt-now::before{content:"";position:absolute;left:-5px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--blue)}
.tlist{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}
.tl-i{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:10px;font-size:.86rem;cursor:pointer}
.tl-i:hover{background:var(--hover)}.tl-i.done span{color:var(--text-4);text-decoration:line-through}.tl-i small{color:var(--text-4);font-size:.7rem}
.tl-i input{width:16px;height:16px;border-radius:5px}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:12px}
.thumb{display:block;text-decoration:none;color:inherit;text-align:left;border-radius:12px}
.thumb .th-prev{aspect-ratio:4/3;border-radius:12px;background:linear-gradient(135deg,#eef2fb,#e6ecfa);background-size:cover;background-position:center;display:grid;place-items:center;margin-bottom:8px;transition:transform .3s var(--liquid)}
.thumb:hover .th-prev{transform:translateY(-2px)}
.thumb b{display:block;font-size:.8rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thumb small{display:block;font-size:.68rem;color:var(--text-4);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-theme="dark"] .thumb .th-prev{background:linear-gradient(135deg,#232a3a,#1e2430)}
.th-lines{width:60%;display:flex;flex-direction:column;gap:6px}.th-lines i{height:5px;border-radius:3px;background:rgba(79,124,245,.22)}.th-lines i:nth-child(1){width:70%}.th-lines i:nth-child(3){width:85%}.th-lines i:nth-child(4){width:50%}
.thumb.new .th-prev{background:var(--hover);color:var(--text-4);border:1px dashed var(--line-2)}
.glist{display:flex;flex-direction:column;gap:2px}
.g-row{display:grid;grid-template-columns:18px minmax(0,1.2fr) minmax(0,1fr) 40px auto;gap:12px;align-items:center;padding:8px 8px;border-radius:10px;text-decoration:none;font-size:.84rem}
.g-row:hover{background:var(--hover)}.g-row .g-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.g-row .g-p{color:var(--text-3);font-size:.78rem;text-align:right}
.focus-pre{white-space:pre-wrap;font-size:.95rem;line-height:1.7;font-family:var(--font)}
.quote-line{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:.84rem;color:var(--text-3);display:flex;gap:8px;align-items:center}
.mc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.mc-w{font-size:.68rem;color:var(--text-4);padding:4px 0}
.mc-d{height:32px;border-radius:9px;font-size:.8rem;color:var(--text);position:relative}
.mc-d:hover{background:var(--hover)}.mc-d.out{color:var(--text-4);opacity:.5}
.mc-d.today{background:var(--blue);color:var(--on-ac,#fff);font-weight:600}
.mc-d.busy::after{content:"";position:absolute;left:50%;bottom:3px;width:4px;height:4px;border-radius:50%;background:var(--blue);transform:translateX(-50%)}
.mc-d.today.busy::after{background:#fff}
.focus-w{--pg1:#6d8dff;--pg2:#4f7cf5}.focus-w.break{--pg1:#5cc083;--pg2:#2d8f88}
.fw-hero{padding:14px 18px 16px;background:radial-gradient(120% 90% at 20% 0%,rgba(var(--ac),.14),transparent 60%),radial-gradient(90% 80% at 100% 100%,rgba(116,97,201,.1),transparent 55%)}
.focus-w.break .fw-hero{background:radial-gradient(120% 90% at 20% 0%,rgba(92,192,131,.16),transparent 60%),radial-gradient(90% 80% at 100% 100%,rgba(45,143,136,.12),transparent 55%)}
.fw-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.focus-w.break .fh-k{color:var(--pg2)}
.focus-w .dial3{width:184px;height:184px;margin:0 auto 4px}
.focus-w .pr-bg,.focus-w .pr-fg{stroke-width:9}.focus-w .pomo-time{font-size:2.1rem;letter-spacing:-.03em}.focus-w .pomo-sub{font-size:.72rem;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.focus-w.paused .pomo-time{opacity:.55}
.fw-start{display:flex;gap:6px;margin-bottom:10px}.fw-start input{flex:1;min-width:0;height:36px;font-size:.84rem;border-radius:999px;padding:0 14px;background:var(--paper);border-color:transparent;box-shadow:var(--shadow)}
.fw-go{display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 16px;border-radius:999px;background:linear-gradient(135deg,var(--pg1),var(--pg2));color:#fff;font-size:.82rem;font-weight:600;white-space:nowrap;flex-shrink:0;box-shadow:0 8px 18px -8px rgba(var(--ac),.7)}.fw-go:hover{filter:brightness(1.05)}
.fw-chips{display:flex;width:100%;margin-top:10px;gap:2px}.fw-chips .chip{flex:1;text-align:center;padding:5px 0;font-size:.74rem;color:var(--text-3);font-variant-numeric:tabular-nums}.fw-chips .chip i{font-style:normal;font-size:.62rem;margin-left:1px;opacity:.7}.fw-chips .chip.on{color:var(--blue);font-weight:600}.fw-chips .chip-in{flex:1;min-width:0;height:28px;border-radius:999px;font-size:.74rem;text-align:center;padding:0 6px}
.fw-ctl{display:flex;justify-content:center;gap:6px}.fw-ctl .pf-btn{height:36px;padding:0 14px;font-size:.8rem}.fw-ctl .pf-btn.main{color:#fff;background:linear-gradient(135deg,var(--pg1),var(--pg2))}
.fw-foot{padding:12px 18px 16px;border-top:0}.fw-today{display:flex;align-items:baseline;gap:6px;margin-bottom:8px}.fw-foot .prog i{display:block;height:100%;border-radius:2px;background:var(--blue)}.fw-today small{font-size:.72rem;color:var(--text-4)}.fw-today b{font-size:1.15rem;font-weight:600}.fw-today .muted{font-size:.74rem}
.focus-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.focus-big{font-size:1.3rem;font-weight:600;margin-top:2px}.focus-big .muted{font-size:.8rem;font-weight:400}
.ring{position:relative;width:84px;height:84px}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring-bg{fill:none;stroke:var(--hover-2);stroke-width:7}.ring-fg{fill:none;stroke:var(--blue);stroke-width:7;stroke-linecap:round;transition:stroke-dashoffset .8s var(--liquid)}
.ring-t{position:absolute;inset:0;display:grid;place-items:center;font-size:.78rem;font-weight:600;color:var(--blue)}
.bars{display:flex;gap:6px;align-items:flex-end;height:70px;margin-top:14px}
.bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}
.bar i{display:block;width:100%;max-width:18px;border-radius:5px;background:rgba(var(--ac),.18);transition:height .6s var(--liquid)}.bar i.on{background:var(--blue)}
.bar span{font-size:.64rem;color:var(--text-4)}
.dot-list{display:flex;flex-direction:column;gap:2px}
.dl-i{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:10px;text-decoration:none;color:inherit}
.dl-i:hover{background:var(--hover)}.dl-i i{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.dl-i b{display:block;font-size:.82rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dl-i small{display:block;font-size:.68rem;color:var(--text-4)}
.dl-i .fav{width:26px;height:26px;border-radius:8px;background:var(--hover);display:grid;place-items:center;flex-shrink:0}.dl-i .fav img{width:14px;height:14px}
.dl-i>div{min-width:0}
a.link{color:var(--text-3);text-decoration:none;display:inline-block;margin-top:8px;padding:0 8px}a.link:hover{color:var(--blue)}
.stat-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0}
.stat-row:last-child{border-bottom:0}.stat-row small{display:block;font-size:.7rem;color:var(--text-4)}.stat-row b{display:block;font-size:1.1rem;font-weight:600;margin-top:2px}
.spark{width:120px;height:36px;flex-shrink:0}

/* ===== Todos ===== */
.todo{display:flex;align-items:flex-start;gap:8px;padding:6px 6px;border-radius:var(--r2);position:relative}
.todo:hover{background:var(--hover)}
.todo .cb{flex-shrink:0;margin-top:3px;width:16px;height:16px;border-radius:3px;border:1.5px solid var(--text-4);display:grid;place-items:center;color:#fff;transition:all .1s;background:transparent}
.todo .cb:hover{border-color:var(--blue)}
.todo.done .cb{background:var(--blue);border-color:var(--blue);color:var(--on-ac,#fff)}
.todo .cb .ic{opacity:0;transform:scale(.5);transition:all .15s}.todo.done .cb .ic{opacity:1;transform:none}
.todo .tt{flex:1;min-width:0}
.todo .tt .ti{font-size:.875rem;cursor:pointer;word-break:break-word}
.todo.done .tt .ti{color:var(--text-4);text-decoration:line-through}
.todo .meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;align-items:center;font-size:.72rem;color:var(--text-4)}
.todo .meta .due.late{color:var(--red)}.todo .meta .due.today{color:var(--blue)}.todo .meta .due.passed{color:var(--amber)}
.todo .defer{display:inline-flex;align-items:center;gap:2px;font-size:.68rem;padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--amber) 14%,transparent);color:var(--amber);font-weight:500;white-space:nowrap}.todo .defer.late{background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red)}.todo .defer:hover{filter:brightness(.94)}
.bcard .meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:3px}
.bcard .meta .bl{display:inline-flex;align-items:center;font-size:.66rem;font-weight:500;line-height:1;padding:3px 7px;border-radius:999px;background:color-mix(in srgb,var(--amber) 14%,transparent);color:var(--amber);white-space:nowrap}.bcard .meta .bl.late{background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red)}.bcard .meta .bl:hover{filter:brightness(.94)}
.todo .pr{display:none}
/* priority lives in the checkbox: colour + tint, like Todoist */
.todo .cb{border:2px solid var(--pc);background:color-mix(in srgb,var(--pc) 14%,transparent);border-radius:5px;width:17px;height:17px}
.todo .cb:hover{background:color-mix(in srgb,var(--pc) 30%,transparent);border-color:var(--pc)}
.todo.done .cb{background:var(--pc);border-color:var(--pc)}
.todo.p3 .cb{border-color:var(--text-4);background:transparent}.todo.p3.done .cb{background:var(--text-4);border-color:var(--text-4)}
.todo.p0 .tt .ti{font-weight:600}.todo.p3 .tt .ti{color:var(--text-3)}
.todo .acts{opacity:0;transition:opacity .1s;display:flex}
.todo:hover .acts,.todo:focus-within .acts{opacity:1}
.quickadd{display:flex;gap:8px;align-items:center;padding:4px 8px 4px 12px;border-radius:12px;background:var(--input);margin-bottom:8px;border:1px solid transparent}
.quickadd:focus-within{border-color:rgba(var(--ac),.5);background:var(--bg)}
.quickadd input{border:0;background:none;padding:5px 0;box-shadow:none}.quickadd input:focus{box-shadow:none;background:none}
.quickadd .hint{font-size:.68rem;color:var(--text-4);white-space:nowrap}
.filters{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.group-h{font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-4);padding:16px 6px 6px;display:flex;align-items:center;gap:8px}
.group-h:first-child{padding-top:0}.group-h i{flex:1;height:1px;background:var(--line)}
.pri-pick{display:inline-flex;gap:4px}
.pri-pick button{width:32px;height:26px;border-radius:var(--r3);font-size:.72rem;font-weight:600;color:var(--pc);background:color-mix(in srgb,var(--pc) 10%,transparent);opacity:.55}
.pri-pick button.on,.pri-pick button:hover{opacity:1;background:color-mix(in srgb,var(--pc) 18%,transparent)}
.board-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:stretch}
.todo-tools{margin-bottom:12px}.todo-tools .quickadd{background:color-mix(in srgb,var(--paper) 70%,transparent);box-shadow:inset 0 0 0 1px var(--line)}.todo-tools .filters{margin-bottom:0;margin-top:8px}
.bcol{padding:8px;border-radius:14px;background:color-mix(in srgb,var(--paper) 42%,transparent);box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column;min-height:150px}
.bcol-none{flex:1;display:grid;place-items:center;padding:14px 6px;font-size:.78rem;color:var(--text-4);text-align:center}.bcol>.pt-row.new{margin-top:auto}
.bcard .meta .bs{color:var(--text-3)}.bcard .meta .bs.all{color:var(--green)}
.bcol .bh{display:flex;align-items:center;gap:7px;font-size:.8rem;font-weight:600;margin:4px 0 8px;padding:2px 4px;color:var(--pc)}
.bcol .bh .bh-p{display:inline-grid;place-items:center;height:20px;padding:0 7px;border-radius:999px;background:color-mix(in srgb,var(--pc) 14%,transparent);color:var(--pc);font-size:.7rem;font-weight:700;letter-spacing:.02em}
.bcol .bh span{margin-left:auto;color:var(--text-4);font-size:.74rem}
.bcard{display:flex;gap:9px;align-items:flex-start;padding:9px 11px;border-radius:10px;background:var(--paper);box-shadow:0 1px 2px rgba(20,24,40,.05);margin-bottom:6px;cursor:pointer;font-size:.82rem}
.bcard .bt{font-size:.86rem;font-weight:500;color:var(--text);line-height:1.35}
.bcard .meta .bd{font-weight:500;color:var(--text-3)}.bcard .meta i{font-style:normal;color:var(--text-4)}
.bcard:hover{box-shadow:0 3px 10px -4px rgba(20,24,40,.18)}
html[data-theme="dark"] .bcard{background:rgba(255,255,255,.05);box-shadow:none}html[data-theme="dark"] .bcard:hover{background:rgba(255,255,255,.08)}

.bcard.done{opacity:.5;text-decoration:line-through}


.bcard .meta{display:block;color:var(--text-4);font-size:.7rem;margin-top:2px}
/* 看板的勾选框和列表完全一样：按优先级着色的 2px 边 + 淡底 */
.bcard .cb{flex-shrink:0;width:17px;height:17px;margin-top:2px;border-radius:5px;border:2px solid var(--pc);background:transparent;display:grid;place-items:center;color:transparent;transition:all .1s}
.bcard .cb:hover{background:color-mix(in srgb,var(--pc) 16%,transparent)}
.bcard.done .cb{background:var(--pc);border-color:var(--pc);color:#fff}

/* ===== Planner ===== */
.subnav{display:flex;gap:2px;margin-bottom:14px;position:relative}
.subnav a{padding:6px 11px;font-size:.84rem;color:var(--text-3);text-decoration:none;border-radius:9px;position:relative;z-index:1}
.subnav a:hover{color:var(--text)}.subnav a.active{color:var(--text);font-weight:500}
.wnav{display:flex;align-items:center;gap:4px}
.wnav .lbl{font-size:.95rem;font-weight:600;min-width:170px;text-align:center}
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.wday{display:flex;flex-direction:column;min-height:240px;padding:10px 8px 8px}
.wday.today{box-shadow:0 0 0 1.5px var(--blue)}
.wday .dh{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}
.wday .dh b{font-size:.8rem}.wday .dh span{font-size:.68rem;color:var(--text-4)}
.wday.today .dh b{color:var(--blue)}
.wday ul{list-style:none;display:flex;flex-direction:column;gap:2px;flex:1}
.wday li{display:flex;gap:6px;align-items:flex-start;font-size:.78rem;padding:3px 4px;border-radius:var(--r3);cursor:pointer;line-height:1.4}
.wday li.todo-li{padding:0;display:block}.wday .todo{padding:4px 4px;gap:6px}.wday .todo .tt{font-size:.8rem}.wday .todo .meta{font-size:.68rem}
.wday li:hover{background:var(--hover)}
.wday li .dot{width:6px;height:6px;border-radius:50%;background:var(--pc,var(--blue));flex-shrink:0;margin-top:6px}
.wday li.done{color:var(--text-4);text-decoration:line-through}.wday li.done .dot{opacity:.35}
.wday li.todo-ref{padding-left:8px}.wday li.todo-ref .dot{display:none}
.wday .add{margin-top:6px}
.wday .add input{padding:4px 6px;font-size:.74rem;background:transparent;border-color:transparent}
.wday .add input:hover,.wday .add input:focus{border-color:var(--line-2);background:var(--input)}
.fb-h{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}.fb-h b{font-size:var(--fs-lg);font-weight:600}
.focus3{list-style:none;display:flex;flex-direction:column}
.focus3 li{display:flex;align-items:center;gap:12px;min-height:40px}
.focus3 .n{width:22px;height:22px;border-radius:7px;background:var(--hover);color:var(--text-3);font-size:.72rem;font-weight:600;display:grid;place-items:center;flex-shrink:0}
.focus3 input{border:0;background:transparent;padding:6px 4px;font-size:1rem;box-shadow:none;border-radius:8px}.focus3 input:focus{box-shadow:none;background:var(--hover)}
.focus3 li:has(input:placeholder-shown) .n{opacity:.45}
.review-ta{border:0;background:transparent;padding:6px 4px;font-size:1rem;line-height:1.8;min-height:72px;box-shadow:none;font-family:var(--serif);border-radius:8px}.review-ta:focus{box-shadow:none;background:var(--hover)}
.focus-ol{list-style:none;display:flex;flex-direction:column;gap:6px}.focus-ol li{display:flex;align-items:center;gap:10px;font-size:.95rem}.focus-ol .n{width:20px;height:20px;border-radius:6px;background:var(--hover);color:var(--text-3);font-size:.7rem;font-weight:600;display:grid;place-items:center;flex-shrink:0}
.day-layout{display:grid;grid-template-columns:minmax(0,1fr) 6px var(--dayside);gap:9px;align-items:stretch}
.tl-scroll{max-height:calc(100vh - 250px);min-height:360px;overflow-y:auto;overflow-x:hidden;margin:0 -8px;padding:6px 8px 0;scrollbar-width:none}.tl-scroll::-webkit-scrollbar{display:none}
.tl{position:relative;padding-left:48px;--h:48px}
.tl .hour{position:relative;height:var(--h);border-top:1px solid var(--line)}
.tl .hour span{position:absolute;left:-48px;top:-8px;font-size:.68rem;color:var(--text-4);width:38px;text-align:right;font-variant-numeric:tabular-nums}
.tl .blk{position:absolute;left:54px;right:4px;border-radius:var(--r2);padding:4px 8px;font-size:.76rem;overflow:hidden;background:color-mix(in srgb,var(--bc) 17%,var(--paper));color:var(--text);cursor:pointer;min-height:22px}
.tl .blk:hover{filter:brightness(.97);z-index:2}
.tl .blk b{display:block;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl .blk small{color:var(--text-3);font-size:.66rem}
.tl .now{position:absolute;left:44px;right:0;height:1px;background:var(--red);z-index:3;pointer-events:none}
.tl .now::before{content:"";position:absolute;left:-4px;top:-3px;width:7px;height:7px;border-radius:50%;background:var(--red)}
.tl .hour.click{cursor:copy}.tl .hour.click:hover{background:var(--hover)}
.kind-pick{display:flex;flex-wrap:wrap;gap:4px}
.kind-pick button{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--r3);font-size:.74rem;border:1px solid var(--line-2);color:var(--text-3)}
.kind-pick button i{width:8px;height:8px;border-radius:50%;background:var(--kc)}
.kind-pick button.on{color:var(--text);border-color:var(--kc);background:color-mix(in srgb,var(--kc) 12%,transparent)}
.day-sum{display:flex;flex-direction:column;gap:4px}
.day-sum .r{display:flex;align-items:center;gap:8px;font-size:.78rem}
.day-sum .r i{width:8px;height:8px;border-radius:50%}
.day-sum .r b{margin-left:auto;font-weight:500;color:var(--text-3);font-variant-numeric:tabular-nums}
.goals{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.goal .gh{display:flex;align-items:flex-start;gap:8px}.goal .gh h4{font-size:.92rem;flex:1}
.goal .pct{font-size:.84rem;color:var(--text-3);font-weight:500}
.goal .krs{list-style:none;margin-top:10px;display:flex;flex-direction:column;gap:3px}
.goal .krs li{display:flex;gap:8px;align-items:flex-start;font-size:.8rem;cursor:pointer;padding:3px 4px;border-radius:var(--r3)}
.goal .krs li:hover{background:var(--hover)}.goal .krs li.done{color:var(--text-4);text-decoration:line-through}
.goal .krs .cb{width:14px;height:14px;border-radius:3px;border:1.5px solid var(--text-4);display:grid;place-items:center;flex-shrink:0;margin-top:3px;color:#fff}
.goal .krs li.done .cb{background:var(--blue);border-color:var(--blue);color:var(--on-ac,#fff)}
.goal.done-all{opacity:.7}

/* ===== Reading ===== */
.shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.bk{display:flex;gap:12px;padding:12px;cursor:pointer}
.cv{width:58px;height:82px;border-radius:3px;flex-shrink:0;background:linear-gradient(150deg,color-mix(in srgb,var(--cc,#3a8fd9) 70%,#fff),var(--cc,#3a8fd9));box-shadow:0 2px 6px rgba(15,15,15,.25);display:grid;place-items:center;color:#fff;font-family:var(--serif);font-size:.68rem;padding:6px;text-align:center;overflow:hidden;line-height:1.3}
.cv img{width:100%;height:100%;object-fit:cover}
.cv.mini{width:40px;height:56px;font-size:.6rem;padding:3px;border-radius:3px;cursor:pointer;flex-shrink:0}
.bk-row{align-items:center}
.bk-row .li{cursor:pointer}
.bk-row .acts{align-items:center;gap:2px}
.bk .bi{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.bk .bi h4{font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk .bi .au{font-size:.72rem;color:var(--text-3)}
.bk .bi .pr{margin-top:auto;font-size:.68rem;color:var(--text-4);display:flex;align-items:center;gap:6px}.bk .bi .pr .prog{flex:1}
.reading-h{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.now-reading{display:flex;gap:14px;align-items:center}.now-reading .cv{width:64px;height:92px}

/* ===== Links ===== */
.links{display:flex;flex-direction:column;gap:2px}
.lk{display:flex;align-items:flex-start;gap:10px;padding:8px 8px;border-radius:var(--r2);text-decoration:none;position:relative}
.lk:hover{background:var(--hover)}
.lk .fav{width:28px;height:28px;border-radius:var(--r3);background:var(--tag-bg);display:grid;place-items:center;flex-shrink:0;overflow:hidden;color:var(--text-3);font-weight:600;font-size:.7rem;text-transform:uppercase}
.lk .fav img{width:16px;height:16px}
.lk .li{flex:1;min-width:0}
.lk .li b{display:block;font-size:.875rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lk .li .host{font-size:.7rem;color:var(--text-4)}
.lk .li p{font-size:.78rem;color:var(--text-3);margin-top:2px;line-height:1.5}
.lk .li .tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.lk .acts{display:flex;opacity:0}.lk:hover .acts{opacity:1}
.lk .heart{color:var(--g6)}.lk .heart.on{color:var(--rose)}.lk .heart.on .ic{fill:currentColor}

/* ===== Notes: notebooks ===== */
:root{--nbw:200px;--lcw:280px;--dside:300px;--dayside:320px;--expside:340px;--visside:0px}
.sp-col{align-self:stretch;min-height:200px}
.nb-layout{display:grid;grid-template-columns:var(--nbw) 6px var(--lcw) 6px minmax(0,1fr);gap:9px;align-items:start}
.nb-layout.no-nb{grid-template-columns:var(--lcw) 6px minmax(0,1fr)}
.nb-layout.no-list{grid-template-columns:var(--nbw) 6px minmax(0,1fr)}
.nb-layout.no-nb.no-list{grid-template-columns:minmax(0,1fr)}
.nb-layout .splitter{align-self:stretch;height:auto;min-height:60vh;position:sticky;top:60px;max-height:calc(100vh - 76px)}
.nb-col,.list-col{position:sticky;top:60px;height:calc(100vh - 76px);max-height:calc(100vh - 76px);display:flex;flex-direction:column;padding:10px;overflow:visible}
.notes-main{overflow:visible}
.nb-h,.lc-h{display:flex;align-items:center;gap:4px;padding:2px 4px 8px;min-width:0}
.nb-h h3,.lc-h h3{font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.nb-list{display:flex;flex-direction:column;gap:1px;overflow-y:auto;overflow-x:hidden;flex:1;position:relative;min-height:0}
.nb-sec{font-size:var(--fs-xs);font-weight:600;color:var(--text-4);padding:12px 10px 4px;letter-spacing:.06em;text-transform:uppercase}
.nb-i{display:flex;align-items:center;gap:8px;min-height:32px;padding:4px 10px;border-radius:var(--r2);font-size:.86rem;color:var(--text-3);text-align:left;text-decoration:none;position:relative;width:100%}
.nb-i:hover{color:var(--text)}.nb-i.active{color:var(--text);font-weight:500}
.nb-i .ic{color:var(--text-4);flex-shrink:0}.nb-i.active .ic{color:var(--blue)}
.nb-i small{color:var(--text-4);font-size:.72rem}.nb-i.new{color:var(--text-4)}
.nb-list>.liq{background:var(--hover-2);border-radius:var(--r2)}
.nb-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;display:inline-block}
.nb-rename{flex:1;min-width:0;width:0;padding:1px 6px;margin-left:-6px;font:inherit;font-size:.84rem;border-radius:6px;background:var(--bg);box-shadow:0 0 0 1px var(--line-2);border:0;color:var(--text)}.nb-rename:focus{outline:none;box-shadow:0 0 0 1.5px rgba(var(--ac),.5);background:var(--bg)}
.nb-foot{display:flex;gap:2px;padding-top:8px;border-top:1px solid var(--line);margin-top:6px}
.nb-i.trash-i{margin-top:auto;color:var(--text-4)}
.li-i{padding-right:40px}
.li-i .li-acts{position:absolute;right:6px;top:6px;display:flex;gap:0;opacity:0;transition:opacity .15s}
.li-i:hover .li-acts,.li-i.active .li-acts{opacity:1}
.li-i .li-acts .ibtn{width:26px;height:26px;color:var(--text-4)}.li-i .li-acts .ibtn:hover{background:var(--hover-2);color:var(--text)}
.li-i.trash small{color:var(--red)}
.trash-bar{display:flex;align-items:center;gap:10px;padding:10px 18px;background:color-mix(in srgb,var(--red) 8%,var(--paper));border-bottom:1px solid color-mix(in srgb,var(--red) 25%,transparent);font-size:.82rem;color:var(--text-2)}
.trash-bar .ic{color:var(--red)}
.trash-title{font-size:2rem;margin-bottom:18px;color:var(--text-3)}
.toast{display:flex;align-items:center;gap:12px}
.toast-act{color:var(--blue);font-weight:600;font-size:.8rem;padding:2px 6px;border-radius:6px}
.toast-act:hover{background:rgba(255,255,255,.12)}
.nb-foot .nb-i{flex:1;justify-content:center;min-height:30px;padding:2px 6px;font-size:.78rem}
.lc-sort{width:auto;padding:4px 24px 4px 8px;font-size:.74rem;border:0;background-color:transparent;color:var(--text-3)}
.list-col .searchin{flex:none;height:32px}
.lc-list{overflow-y:auto;overflow-x:hidden;flex:1;margin-top:8px;display:flex;flex-direction:column;gap:2px;position:relative}
.lc-list>.liq{background:var(--hover-2);border-radius:12px}
.li-i{display:block;padding:10px 12px;border-radius:12px;text-decoration:none;color:inherit;position:relative}
.li-i.active b{color:var(--text)}
.li-i{content-visibility:auto;contain-intrinsic-size:auto 76px}
.li-i b{display:block;font-size:.86rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:4px}
.li-i .li-pin{color:var(--blue);flex-shrink:0}.li-i .li-par{color:var(--text-4);font-weight:400}
.li-i p{font-size:.76rem;color:var(--text-3);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.45}
.li-i small{display:flex;align-items:center;gap:4px;font-size:.68rem;color:var(--text-4);margin-top:5px;white-space:nowrap;overflow:hidden}
.li-i small i{width:7px;height:7px;border-radius:50%;display:inline-block}
.pane-pill{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 10px 0 6px;border-radius:8px;font-size:.76rem;color:var(--text-3);background:var(--hover);white-space:nowrap}.pane-pill:hover{color:var(--text);background:var(--hover-2)}
.pane-pill.float{position:absolute;left:14px;top:13px;z-index:3;background:var(--hover)}
.nb-layout.no-list .page>.crumbs,.nb-layout.no-list .graph-wrap>.crumbs{padding-left:78px}
.nb-layout.no-list .cv-tb{padding-left:84px}
.nb-layout.no-list .cv-wrap .pane-pill.float{z-index:4}
.pane-show{position:absolute;left:-12px;top:14px;z-index:3;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;color:var(--text-4);background:var(--paper);box-shadow:var(--shadow)}
.pane-show:hover{color:var(--text)}
.pv-sel{width:auto;padding:3px 24px 3px 8px;font-size:.82rem;border-color:transparent;background-color:transparent}.pv-sel:hover{background-color:var(--hover)}
.nb-row{padding-left:4px}.nb-row .pt-link{font-weight:500;color:var(--text-3);font-size:.82rem}.nb-row:hover .pt-link{color:var(--text)}
.nb-pages{padding-left:16px}
.tag-group{margin-bottom:18px}.tag-group .sec-h{display:flex;align-items:center;gap:8px}
.tag-cloud{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 22px}
.tag-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 6px 0 10px;border-radius:8px;font-size:.78rem;font-weight:500;transition:background .12s,color .12s;--tcd:var(--tc)}
.tag-chip small{font-size:.68rem;color:inherit;opacity:.75;background:rgba(255,255,255,.55);border-radius:6px;padding:1px 6px;font-variant-numeric:tabular-nums}html[data-theme="dark"] .tag-chip small{background:rgba(0,0,0,.25)}
.tag-chip:hover{filter:brightness(.96)}.tag-chip.on small{background:rgba(255,255,255,.22);color:#fff;opacity:1}
.mtag-wrap{position:relative;display:inline-flex}
.tag-sug{position:absolute;left:0;top:30px;width:180px;max-height:240px;z-index:45}

/* ===== Notes: pages ===== */
.notes-layout{display:grid;grid-template-columns:250px 1fr;gap:12px;align-items:start}
.notes-side{position:sticky;top:60px;max-height:calc(100vh - 76px);display:flex;flex-direction:column;padding:10px;background:var(--card-bg)}
.ns-top{display:flex;gap:4px;align-items:center;margin-bottom:6px}
.searchin{flex:1;display:flex;align-items:center;gap:6px;padding:0 8px;height:30px;border-radius:var(--r2);background:var(--input);color:var(--text-4);border:1px solid transparent}
.searchin:focus-within{border-color:rgba(var(--ac),.5);background:var(--bg)}
.searchin input{border:0;background:none;padding:3px 0;box-shadow:none;font-size:.82rem;flex:1;min-width:0}.searchin input:focus{box-shadow:none;background:none}
.searchin.tagged{color:var(--blue)}.searchin.tagged input{color:var(--blue);font-weight:500}
.searchin .s-clear{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;color:var(--text-4)}.searchin .s-clear:hover{background:var(--hover-2);color:var(--text)}
.ns-tabs{margin-bottom:6px}.ns-tabs .seg{display:flex}.ns-tabs .seg button{flex:1}
.ns-body{overflow-y:auto;overflow-x:hidden;flex:1;min-height:0}
.ns-sec{font-size:.72rem;font-weight:500;color:var(--text-4);padding:10px 8px 3px;display:flex;gap:6px}
.ns-sec:first-child{padding-top:2px}
.ptree{list-style:none}
.pt-row{display:flex;align-items:center;gap:2px;min-height:27px;padding:1px 4px 1px 6px;border-radius:var(--r2);color:var(--text-3);text-decoration:none;font-size:.84rem;position:relative;width:100%;text-align:left}
.pt-row:hover{color:var(--text)}
.pt-row.active{color:var(--text);font-weight:500}
[data-liquid] .pt-row:hover{background:transparent}
.move-list .pt-row:hover{background:var(--hover)}.move-list .pt-row.active{background:var(--hover-2)}
.pt-row.flat{padding-left:8px}.pt-row.new{color:var(--text-4)}
.pt-tg{width:20px;height:20px;border-radius:var(--r3);display:grid;place-items:center;color:var(--text-4);flex-shrink:0}
.pt-tg:hover{background:var(--hover-2);color:var(--text)}.pt-tg.none{visibility:hidden}
.pt-link{display:flex;align-items:center;gap:6px;flex:1;min-width:0;text-decoration:none;color:inherit;padding:3px 2px}
.pt-ic{width:16px;flex-shrink:0;color:var(--text-4)}
.pt-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.pt-sub{font-size:.66rem;color:var(--text-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40%}
.pt-cnt{font-size:.7rem;color:var(--text-4)}
.pt-add{width:20px;height:20px;border-radius:var(--r3);display:grid;place-items:center;color:var(--text-4);opacity:0;flex-shrink:0;font-size:.9rem}
.pt-row:hover .pt-add{opacity:1}.pt-add:hover{background:var(--hover-2);color:var(--text)}
.ns-tag summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;min-height:27px;padding:1px 8px;border-radius:var(--r2);font-size:.84rem;color:var(--text-3)}
.ns-tag summary::-webkit-details-marker{display:none}
.ns-tag summary::before{content:"#";color:var(--text-4);margin-right:4px}
.note-item{display:block;padding:5px 8px;border-radius:var(--r2);text-decoration:none}
.note-item:hover{background:var(--hover)}
.note-item b{display:block;font-size:.84rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.note-item p{font-size:.72rem;color:var(--text-4);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.notes-main{min-height:calc(100vh - 76px);padding:0;overflow:visible}
.notes-empty{display:flex;align-items:center;justify-content:center;min-height:60vh}
.page{display:flex;flex-direction:column;min-height:calc(100vh - 80px)}
.crumbs{display:flex;align-items:center;font-size:.8rem;color:var(--text-3);padding:12px 18px 8px;flex-wrap:wrap}
.crumbs a{text-decoration:none;color:var(--text-3);padding:3px 6px;border-radius:var(--r3)}.crumbs a:hover{background:var(--hover);color:var(--text)}
.crumbs span{color:var(--text-4);margin:0 1px}.crumbs b{font-weight:500;color:var(--text);padding:3px 6px}
.page-acts{display:flex;gap:2px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.page-acts .ibtn.on{color:var(--blue)}
.page-cover{height:180px;border-radius:var(--r);background-size:cover;background-position:center;position:relative;margin-top:4px}
.page-cover .cover-acts{position:absolute;right:12px;bottom:10px;display:flex;gap:4px;opacity:0;transition:opacity .15s}
.page-cover:hover .cover-acts{opacity:1}
.page-cover .cover-acts .btn{background:var(--bg);height:26px}
.page-body{max-width:780px;width:100%;margin:0 auto;padding:28px 40px 80px}
.page-body.wide{max-width:none}
.page-top{display:flex;align-items:flex-end;gap:6px;min-height:28px}
.page-hover-acts{display:flex;gap:2px;opacity:0;transition:opacity .15s;padding-bottom:4px}
.page-top:hover .page-hover-acts,.page-body:hover .page-hover-acts{opacity:1}
input.page-title{display:block;width:100%;font-size:var(--fs-3xl);font-weight:700;border:0;background:transparent;padding:4px 0 10px;box-shadow:none;line-height:1.25}
input.page-title:focus{box-shadow:none;border:0;background:transparent}
input.page-title::placeholder{color:var(--text-4);opacity:.6}
.meta-line{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:2px 0 18px;font-size:.78rem;color:var(--text-3);min-height:28px}
.mchip{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 8px;border-radius:8px;color:var(--text-2);font-size:.78rem;transition:background .12s}
.mchip:hover{background:var(--hover)}.mchip .ic{color:var(--text-4)}
.mchip.ghost{color:var(--text-4);padding:0 7px}.mchip.ghost:hover{color:var(--text-2)}
.mchip.src{color:var(--blue);text-decoration:none}.mchip.src:hover{background:rgba(var(--ac),.08)}
.mtag{display:inline-flex;align-items:center;gap:0;padding:3px 9px;border-radius:8px;font-size:.72rem;line-height:1.4;font-weight:500;--tcd:var(--tc)}
.mtag a{color:inherit;text-decoration:none}.mtag button{width:0;height:16px;margin:0;border-radius:5px;color:inherit;opacity:0;font-size:.8rem;line-height:1;display:grid;place-items:center;overflow:hidden;transition:width .12s,margin .12s,opacity .12s}
.mtag:hover button{width:16px;margin:0 -4px 0 3px;opacity:.7}.mtag button:hover{background:rgba(0,0,0,.1);opacity:1}
.mtag-in{height:26px;width:96px;padding:0 8px;border-radius:8px;border:1px solid rgba(var(--ac),.5);background:var(--bg);font-size:.78rem;box-shadow:none}
.mtag-in:focus{outline:none;box-shadow:none;border-color:rgba(var(--ac),.6)}
.mdate{color:var(--text-4);margin-left:4px;cursor:default;font-variant-numeric:tabular-nums}
.subpages{margin-top:24px}
.sub-row{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:var(--r2);text-decoration:none;font-size:.875rem;color:var(--text)}
.sub-row:hover{background:var(--hover)}
.links-sec{margin-top:28px;padding-top:12px}
.links-sec a.tag,.bl a{text-decoration:none}
.tag.ghost{opacity:.6;outline:1px dashed var(--line-2)}
.bl{display:block;padding:8px 10px;border-radius:var(--r2);text-decoration:none;color:inherit;margin-bottom:4px;background:var(--side)}
.bl b{font-weight:500;font-size:.84rem;display:block}.bl p{font-size:.78rem;color:var(--text-3);margin-top:2px}.bl .btn{margin-top:6px}
.move-list{display:flex;flex-direction:column;gap:2px;max-height:50vh;overflow:auto}
.graph-wrap{display:flex;flex-direction:column;min-height:calc(100vh - 80px)}
.graph{flex:1;width:100%;min-height:520px;cursor:grab;touch-action:none;border-radius:var(--r);background:var(--hover)}
.md mark{background:rgba(59,111,214,.16);color:inherit;padding:0 2px;border-radius:2px}

/* ===== Block editor ===== */
.beditor{position:relative;padding:6px 0 0;min-height:200px;font-size:1rem;line-height:1.6;color:var(--text)}
.beditor.font-serif{font-family:var(--serif)}.beditor.font-mono{font-family:var(--mono);font-size:.9rem}
.b-tail{height:120px;cursor:text}
.b-row{position:relative;display:flex;align-items:flex-start;margin:1px 0;padding-left:calc(var(--ind) * 24px);border-radius:var(--r3)}
@keyframes brow{from{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:none}}
.b-row:has(.hmenu){z-index:30}
.b-row.dragging{opacity:.4}
.b-row.drop-before::before,.b-row.drop-after::after{content:"";position:absolute;left:0;right:0;height:2px;background:var(--ink);border-radius:2px}
.b-row.drop-before::before{top:-2px}.b-row.drop-after::after{bottom:-2px}
.b-gutter{position:absolute;left:-28px;top:3px;display:flex;gap:0;opacity:0;transition:opacity .1s;height:24px;align-items:center}
.b-row:hover>.b-gutter{opacity:1}
.b-handle{width:22px;height:24px;border-radius:var(--r3);display:grid;place-items:center;color:var(--text-4);font-size:.8rem;letter-spacing:-2px}
.b-handle:hover{background:var(--hover-2);color:var(--text)}
.b-handle{cursor:grab}
.bmenu{position:relative;left:0;top:0;margin:2px 0 6px;width:300px}
.b-text{flex:1;min-width:0;outline:none;padding:3px 2px;white-space:pre-wrap;word-break:break-word;caret-color:var(--text);min-height:1.6em}
.b-text:empty::before{content:attr(data-ph);color:var(--text-4);opacity:0;pointer-events:none}
.b-row.cur .b-text:empty::before,.b-row[data-type="h1"] .b-text:empty::before,.b-row[data-type="h2"] .b-text:empty::before,.b-row[data-type="h3"] .b-text:empty::before{opacity:.6}
.b-p,.b-h1,.b-h2,.b-h3,.b-bullet,.b-number,.b-todo,.b-toggle,.b-quote,.b-callout{display:flex;align-items:flex-start;width:100%;min-width:0}
.b-h1 .b-text{font-size:1.55rem;font-weight:700;line-height:1.3;margin-top:18px;letter-spacing:-.01em}
.b-h2 .b-text{font-size:1.25rem;font-weight:600;line-height:1.35;margin-top:14px}
.b-h3 .b-text{font-size:1.05rem;font-weight:600;line-height:1.4;margin-top:10px}
.b-row:first-child .b-h1 .b-text,.b-row:first-child .b-h2 .b-text,.b-row:first-child .b-h3 .b-text{margin-top:0}
.b-mark{width:24px;flex-shrink:0;text-align:center;padding-top:3px;color:var(--text);font-variant-numeric:tabular-nums;font-size:1.1rem;line-height:1.5}
.b-mark.num{font-size:1rem}
.b-check{width:16px;height:16px;flex-shrink:0;margin:8px 8px 0 2px;border-radius:3px;border:1.5px solid var(--text-3);display:grid;place-items:center;color:#fff;transition:all .1s}
.b-check:hover{background:var(--hover-2)}
.b-check.on{background:var(--blue);border-color:var(--blue);color:var(--on-ac,#fff)}
.b-check .ic{opacity:0}.b-check.on .ic{opacity:1}
.b-text.done{color:var(--text-4);text-decoration:line-through}
.b-tg{width:22px;height:22px;flex-shrink:0;margin:4px 2px 0 0;border-radius:var(--r3);display:grid;place-items:center;color:var(--text-3);transition:transform .3s var(--liquid);font-size:.8rem}
.b-tg:hover{background:var(--hover-2)}.b-tg.open{transform:rotate(90deg)}
.b-quote{border-left:3px solid var(--text);padding-left:12px;margin:4px 0}
.b-quote .b-text{font-size:1.02rem}
.b-callout{background:var(--cal-bg);border-radius:var(--r2);padding:10px 14px;margin:4px 0;gap:10px;border:1px solid var(--line)}
.b-callout .b-ico{color:var(--text-4)}
.b-callout .b-ico{color:var(--text-4);line-height:1.6;padding:3px 0}
.b-divider{flex:1;padding:8px 0;outline:none;border-radius:var(--r3)}
.b-divider:focus{background:var(--sel)}
.b-divider hr{border:0;border-top:1px solid var(--line-2)}
.b-tablewrap{flex:1;min-width:0;position:relative;margin:6px 0;padding:0 22px 22px 0}
.b-table{border-collapse:collapse;width:100%;font-size:.92rem;line-height:1.5;table-layout:fixed;min-height:0;padding:0}
.b-table td,.b-table th{border:1px solid var(--line-2);padding:6px 10px;vertical-align:top;min-width:40px;outline:none;word-break:break-word}
.b-table th{background:var(--hover);font-weight:600;text-align:left}
.b-table td:focus,.b-table th:focus{box-shadow:inset 0 0 0 1.5px rgba(var(--ac),.5)}
.tb-add{position:absolute;display:grid;place-items:center;color:var(--text-4);background:var(--hover);border-radius:6px;font-size:.9rem;opacity:0;transition:opacity .12s;user-select:none}.tb-add.col{top:0;bottom:22px;right:0;width:18px}.tb-add.row{left:0;right:22px;bottom:0;height:18px}
.b-tablewrap:hover .tb-add,.b-tablewrap:focus-within .tb-add{opacity:1}.tb-add:hover{background:var(--hover-2);color:var(--text)}
.b-filewrap{flex:1;min-width:0;margin:6px 0}
.b-file{border-radius:12px;background:var(--side);overflow:hidden}
.bf-head{display:flex;align-items:center;gap:12px;padding:10px 12px;cursor:default}.b-file.pdf .bf-head{cursor:pointer}
.bf-ic{width:36px;height:36px;border-radius:9px;background:var(--paper);display:grid;place-items:center;color:var(--text-3);flex-shrink:0;box-shadow:var(--shadow)}.bf-ic.pdf,.b-file.pdf .bf-ic{color:#d2524f}
.bf-meta{flex:1;min-width:0}.bf-meta b{display:block;font-size:.9rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bf-meta small{font-size:.72rem;color:var(--text-4)}
.bf-acts{display:flex;gap:2px;opacity:.5;transition:opacity .15s}.b-file:hover .bf-acts{opacity:1}.bf-acts .ibtn{width:28px;height:28px}
.bf-pdf{display:block;width:100%;height:560px;border:0;border-top:1px solid var(--line);background:#fff}
.b-filewrap .b-cap{font-size:.8rem;color:var(--text-3);padding:4px 6px;min-height:0}
.file-row{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:12px;cursor:pointer}.file-row:hover{background:var(--hover)}
.file-row .fr-main{flex:1;min-width:0}.file-row b{display:block;font-size:.875rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-row small{font-size:.72rem;color:var(--text-4)}
.beditor.file-over{outline:2px dashed rgba(var(--ac),.5);outline-offset:6px;border-radius:12px}
.b-code{flex:1;min-width:0;position:relative;margin:4px 0;border-radius:var(--r2);background:var(--code-bg);border:1px solid var(--line)}
.b-code pre{font-family:var(--mono);font-size:.85rem;line-height:1.6;padding:14px 16px;white-space:pre-wrap;word-break:break-word;min-height:3em;outline:none;tab-size:2}
.b-code .b-lang{position:absolute;right:8px;top:6px;width:90px;font-size:.7rem;padding:2px 6px;border:0;background:transparent;color:var(--text-4);text-align:right;opacity:0;box-shadow:none}
.b-code:hover .b-lang,.b-code .b-lang:focus{opacity:1}
.b-image{flex:0 1 auto;min-width:0;max-width:100%;margin:6px 0}.b-image.al-center{margin-left:auto;margin-right:auto}
.b-imgwrap{position:relative;border-radius:var(--r2);overflow:hidden}
.b-image img{width:100%;max-width:100%;border-radius:var(--r2);display:block}
.img-rz{position:absolute;top:50%;width:7px;height:44px;border-radius:4px;background:rgba(255,255,255,.9);box-shadow:0 0 0 1px rgba(0,0,0,.25),0 2px 6px rgba(0,0,0,.25);transform:translateY(-50%);opacity:0;cursor:ew-resize;transition:opacity .12s}.img-rz.l{left:8px}.img-rz.r{right:8px}
.b-image:hover .img-rz{opacity:1}body.resizing .img-rz{opacity:1}
.b-image .b-cap{font-size:.8rem;color:var(--text-3);text-align:center;margin-top:4px}
.b-mdview{flex:1;min-width:0;padding:4px 6px;border-radius:var(--r3);cursor:text}
.b-mdview:hover{background:var(--hover)}
.b-mdsrc{flex:1;font-family:var(--mono);font-size:.85rem;white-space:pre-wrap;padding:6px;background:var(--code-bg);border-radius:var(--r2);outline:none}
.b-text a{color:inherit;border-bottom:1px solid var(--line-2);text-decoration:none}
.b-text a[href]{color:var(--text);opacity:.85}
.b-text a.wiki{border:0;border-bottom:1.5px solid var(--blue);padding:0 1px;font-weight:500;cursor:pointer;text-decoration:none;transition:background .2s}
.b-text a.wiki:hover{background:var(--hover-2)}
.b-text code{font-family:var(--mono);font-size:.85em;background:var(--code-bg);color:var(--text);padding:1px 4px;border-radius:3px;border:1px solid var(--line)}
.b-text b{font-weight:600}
.b-text mark{background:rgba(59,111,214,.16)}

/* markdown preview (used for backlinks / md block) */
.md{font-size:.95rem;line-height:1.7;color:var(--text)}
.md h1,.md h2,.md h3{margin:1em 0 .4em}.md h1{font-size:1.6rem}.md h2{font-size:1.3rem}.md h3{font-size:1.1rem}
.md p{margin:.4em 0}.md ul,.md ol{padding-left:1.5em;margin:.4em 0}
.md blockquote{border-left:3px solid var(--text);padding:2px 12px;margin:.6em 0}
.md code{font-family:var(--mono);font-size:.85em;background:var(--code-bg);color:var(--text);padding:1px 4px;border-radius:3px;border:1px solid var(--line)}
.md pre{background:var(--code-bg);border:1px solid var(--line);border-radius:var(--r2);padding:12px 14px;overflow:auto;margin:.6em 0}
.md pre code{background:none;color:inherit;padding:0}
.md a{color:var(--text);border-bottom:1px solid var(--line-2);text-decoration:none}
.md a.wiki{border:0;border-bottom:1.5px solid var(--blue);padding:0 1px;font-weight:500}
.md table{border-collapse:collapse;width:100%;font-size:.875rem;margin:.6em 0}
.md th,.md td{border:1px solid var(--line-2);padding:6px 10px;text-align:left}
.md th{background:var(--side);font-weight:500}
.md hr{border:0;border-top:1px solid var(--line-2);margin:1em 0}
.md img{max-width:100%;border-radius:var(--r2)}

/* ===== Vision ===== */
.vision-grid{display:grid;grid-template-columns:minmax(0,1.2fr) 6px minmax(280px,var(--visside,1fr));gap:12px;align-items:stretch}
:root{--visside:1fr}
.aff{list-style:none;display:flex;flex-direction:column;gap:2px;margin-top:6px;counter-reset:aff}
.aff li{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:var(--r2);font-family:var(--serif);font-size:1.04rem;line-height:1.75;position:relative;transition:background .15s}
.aff li:hover{background:var(--hover)}
.aff .aff-n{font-family:var(--font);font-size:.68rem;font-variant-numeric:tabular-nums;color:var(--text-4);margin-top:7px;flex-shrink:0;letter-spacing:.04em}
.aff .aff-t{flex:1;cursor:text;white-space:pre-wrap;word-break:break-word}
.aff .aff-edit{flex:1;border:0;background:transparent;padding:0;font:inherit;line-height:inherit;color:inherit;resize:none;box-shadow:none;border-radius:0}
.aff .aff-edit:focus{box-shadow:none;background:transparent}
.aff li .acts{opacity:0;display:flex;margin-top:3px}.aff li:hover .acts,.aff li:focus-within .acts{opacity:1}.aff li .acts .ibtn{width:26px;height:26px;color:var(--text-4)}
.aff-write{border-radius:14px;background:var(--input);border:1px solid transparent;padding:10px 14px 8px;transition:border-color .15s,background .15s}
.aff-write:focus-within{border-color:rgba(var(--ac),.5);background:var(--bg)}
.aff-write textarea{width:100%;border:0;background:transparent;padding:2px 0;font-family:var(--serif);font-size:1.08rem;line-height:1.7;resize:none;box-shadow:none;min-height:34px;color:var(--text)}
.aff-write textarea:focus{box-shadow:none;background:transparent}
.aff-write-f{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;height:0;opacity:0;overflow:hidden;transition:height .18s var(--ease),opacity .18s}
.aff-write:focus-within .aff-write-f,.aff-write.has .aff-write-f{height:30px;opacity:1}
.aff-write .hint{font-size:.68rem;color:var(--text-4)}
.board-prev{position:relative;margin-top:8px;border-radius:10px;overflow:hidden;background:var(--side)}.board-prev img{display:block;width:100%;max-height:200px;object-fit:cover}.board-prev .ibtn{position:absolute;top:6px;right:6px;background:rgba(0,0,0,.5);color:#fff;width:26px;height:26px}
.board{columns:3;column-gap:10px}
.board .bi{break-inside:avoid;margin-bottom:10px;border-radius:14px;overflow:hidden;position:relative;background:var(--side);transition:transform .2s var(--ease),box-shadow .2s}.board .bi:hover{transform:translateY(-2px);box-shadow:var(--shadow-h)}
.board .bi img{display:block;width:100%}
.board .bi .cap{position:absolute;inset:auto 0 0;padding:18px 10px 8px;font-size:.72rem;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.65))}
.board .bi .del{position:absolute;top:6px;right:6px;opacity:0;background:rgba(0,0,0,.45);color:#fff;border-radius:var(--r3);width:26px;height:26px}.board .bi.txt .del{background:var(--hover-2);color:var(--text-3)}
.board .bi:hover .del{opacity:1}
.board .bi.txt{padding:18px 18px 16px;font-family:var(--serif);font-size:1.02rem;line-height:1.65;color:var(--text);background:var(--paper);box-shadow:var(--shadow)}.board .bi.txt .q{display:block;font-size:1.8rem;line-height:.6;color:var(--text-4);margin-bottom:8px}
.wheel-wrap{display:grid;grid-template-columns:230px 1fr;gap:18px;align-items:center}
.wheel svg{width:100%;height:auto}
.wheel svg polygon[fill^="rgba(var"]{fill:rgba(47,128,237,.18)}
.wheel-ctl{display:flex;flex-direction:column;gap:8px}
.wheel-ctl .r{display:grid;grid-template-columns:64px 1fr 26px;gap:10px;align-items:center;font-size:.8rem}
.wheel-ctl .r b{font-weight:500;color:var(--text-3);text-align:right}
.lt{display:flex;flex-direction:column;gap:4px}
.lt .li{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:12px;background:var(--side);transition:background .15s}.lt .li:hover{background:var(--hover)}
.lt-cb{width:18px;height:18px;border-radius:6px;border:1.5px solid var(--text-4);background:transparent;color:#fff;display:grid;place-items:center;flex-shrink:0;transition:all .15s}.lt-cb.on{background:var(--teal);border-color:var(--teal)}.lt-cb .ic{opacity:0}.lt-cb.on .ic{opacity:1}
.lt .li .lt-more{opacity:0;color:var(--text-4);width:26px;height:26px}.lt .li:hover .lt-more{opacity:1}
.lt .li.done{opacity:.6}.lt .li.done b{text-decoration:line-through}.lt .li b{flex:1;font-size:.9rem;font-weight:500}.lt .li .by{font-size:.7rem;color:var(--text-3);background:var(--hover);padding:2px 8px;border-radius:6px;font-variant-numeric:tabular-nums}

/* ===== Explore ===== */
.globe-card{position:relative;background:radial-gradient(120% 100% at 50% 50%,#0b1430 0%,#05091a 60%,#020410 100%);min-height:460px;color:#e6ebf1}
.globe-card canvas{display:block;width:100%;height:100%;position:absolute;inset:0;cursor:grab;touch-action:none;user-select:none}
.globe-card canvas.on{cursor:grabbing}
.globe-card .ov{position:absolute;left:16px;bottom:12px;font-size:.72rem;color:rgba(200,215,235,.55);pointer-events:none}
.globe-card .stat{position:absolute;top:12px;left:16px;padding:0;background:none;color:#fff;flex-direction:row;gap:14px;box-shadow:none}
.globe-card .stat b{font-size:1.2rem;color:#fff}.globe-card .stat small{color:rgba(200,215,235,.6)}
.globe-card .gbtns{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:6px}
.globe-card .gbtn{position:static;width:30px;height:30px;border-radius:var(--r2);border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#e7edf1;display:grid;place-items:center}
.globe-card .gbtn:hover{background:rgba(255,255,255,.18)}
.explore{display:grid;grid-template-columns:minmax(0,1fr) 6px var(--expside);gap:9px;align-items:stretch}
.trip-list{display:flex;flex-direction:column;gap:2px;max-height:560px;overflow:auto}
.trip{display:flex;gap:10px;padding:8px 8px;border-radius:var(--r2);cursor:pointer;align-items:flex-start}
.trip:hover,.trip.on{background:var(--hover)}
.trip .pinic{width:26px;height:26px;border-radius:var(--r2);background:color-mix(in srgb,var(--blue) 12%,transparent);color:var(--blue);display:grid;place-items:center;flex-shrink:0}.trip .pinic[data-kind="wish"]{background:color-mix(in srgb,var(--amber) 14%,transparent);color:var(--amber)}.trip .pinic[data-kind="live"]{background:color-mix(in srgb,var(--green) 14%,transparent);color:var(--green)}
.trip .ti{flex:1;min-width:0}.trip .ti b{display:block;font-size:.875rem;font-weight:500}.trip .ti small{display:block;color:var(--text-4);font-size:.7rem}
.trip .ti p{font-size:.76rem;color:var(--text-3);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.trip-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}
.trip-photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r3)}
.country-list{display:flex;flex-direction:column;gap:2px}
.country-list .r{display:flex;justify-content:space-between;font-size:.8rem;padding:5px 8px;border-radius:var(--r3);background:var(--side)}
.country-list .r b{font-weight:500;color:var(--text-3)}

/* ===== Drag & drop ===== */
.dragging{opacity:.4}
.drop-over{outline:2px solid var(--blue);outline-offset:-2px;background:rgba(var(--ac),.06)!important;border-radius:var(--r2)}
.drop-before,.drop-after{position:relative}
.drop-before::before,.drop-after::after{content:"";position:absolute;left:4px;right:4px;height:2px;border-radius:2px;background:var(--blue);z-index:5;pointer-events:none}
.drop-before::before{top:-2px}.drop-after::after{bottom:-2px}
[draggable="true"]{cursor:grab}[draggable="true"]:active{cursor:grabbing}
.tl .blk{user-select:none;touch-action:none}
.tl .blk .rz{position:absolute;left:0;right:0;bottom:0;height:7px;cursor:ns-resize;border-radius:0 0 var(--r2) var(--r2)}
.tl .blk .rz:hover{background:rgba(var(--ac),.25)}
.tl .blk.moving{box-shadow:0 10px 24px -10px rgba(16,24,40,.35);z-index:4;opacity:.92}
.wday.drop-over{outline-offset:0;border-radius:var(--r)}
.bcol.drop-over{border-radius:var(--r)}
.seg button.drop-over{outline-offset:0}

/* ===== Focus mode ===== */
body.focus-mode .side,body.focus-mode .topbar,body.focus-mode .nb-col,body.focus-mode .list-col,body.focus-mode .pane-show,body.focus-mode .pane-pill{display:none!important}
body.focus-mode .shell{grid-template-columns:1fr}
body.focus-mode .splitter{display:none}
body.focus-mode .main{padding:0}
body.focus-mode .nb-layout{grid-template-columns:1fr;gap:0}
body.focus-mode .notes-main{min-height:100vh;border-radius:0;box-shadow:none}
body.focus-mode .page-body{max-width:820px;padding-top:48px}
body.focus-mode .crumbs{position:sticky;top:0;background:var(--paper);z-index:5;padding:12px 24px}
.nb-i .nb-tg{width:18px;height:18px;border-radius:5px;display:grid;place-items:center;color:var(--text-4);margin-left:-4px;flex-shrink:0;opacity:.7}
.nb-i .nb-tg:hover{background:var(--hover-2);color:var(--text)}
.nb-i .nb-tg.open .ic{transform:rotate(90deg)}
.nb-sub{padding-left:14px;margin:2px 0 4px}
.nb-sub .pt-row{min-height:27px;font-size:.84rem}

/* ===== Editor extras ===== */
.beditor:focus{outline:none}
.beditor{caret-color:var(--text)}
.b-gutter,.b-mark,.b-check,.b-tg,.b-ico,.sel-tb,.link-pop,.bmenu,.hmenu,.b-tail{user-select:none;-webkit-user-select:none}
.beditor ::selection{background:rgba(var(--ac),.22)}
.link-pop{position:absolute;z-index:31;display:flex;align-items:center;gap:2px;padding:4px 4px 4px 10px;border-radius:10px;background:var(--paper);box-shadow:var(--pop);animation:pop .12s var(--ease);max-width:min(360px,90%)}
.link-pop .lp-url{font-size:.78rem;color:var(--blue);text-decoration:none;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px;margin-right:4px}
.link-pop .ibtn{width:26px;height:26px}
.tb-hl{display:inline-flex;align-items:center;gap:2px;padding-right:4px}
.sel-tb .hl-dot{width:14px;height:14px;min-width:0;padding:0;border-radius:50%;margin:0 1px;border:1.5px solid rgba(255,255,255,.35)}
.sel-tb .hl-dot:hover{transform:scale(1.2);background:inherit}
.sel-tb .hl-dot.hl-y{background:#f7d774}.sel-tb .hl-dot.hl-g{background:#8fd6a5}.sel-tb .hl-dot.hl-b{background:#9cc0ff}.sel-tb .hl-dot.hl-p{background:#d4b5ff}.sel-tb .hl-dot.hl-r{background:#ffb3b8}
.b-text mark.hl-g,.md mark.hl-g{background:rgba(120,210,150,.4)}.b-text mark.hl-b,.md mark.hl-b{background:rgba(120,165,255,.35)}.b-text mark.hl-p,.md mark.hl-p{background:rgba(190,150,255,.38)}.b-text mark.hl-r,.md mark.hl-r{background:rgba(255,140,150,.38)}
html[data-theme="dark"] .b-text mark.hl-g,html[data-theme="dark"] .md mark.hl-g{background:rgba(90,190,120,.32)}html[data-theme="dark"] .b-text mark.hl-b,html[data-theme="dark"] .md mark.hl-b{background:rgba(100,150,255,.3)}html[data-theme="dark"] .b-text mark.hl-p,html[data-theme="dark"] .md mark.hl-p{background:rgba(170,130,255,.3)}html[data-theme="dark"] .b-text mark.hl-r,html[data-theme="dark"] .md mark.hl-r{background:rgba(255,120,130,.3)}
.b-text s{text-decoration:line-through;color:var(--text-3)}
.b-text a[href]{color:var(--blue);opacity:1;border-bottom:1px solid rgba(var(--ac),.35);cursor:pointer}.b-text a[href]:hover{border-bottom-color:var(--blue)}
.sel-tb{position:absolute;z-index:30;transform:translate(-50%,calc(-100% - 8px));display:flex;gap:1px;padding:3px;border-radius:10px;background:var(--ink);color:var(--bg);box-shadow:var(--pop);animation:pop .12s var(--ease)}
.sel-tb button{min-width:28px;height:26px;padding:0 6px;border-radius:7px;color:inherit;font-size:.8rem;display:grid;place-items:center}
.sel-tb button:hover{background:rgba(255,255,255,.15)}
html[data-theme="dark"] .sel-tb button:hover{background:rgba(0,0,0,.2)}
.sel-tb .hl{background:rgba(255,220,80,.35)}
.b-text mark,.md mark{background:rgba(255,214,80,.45);color:inherit;padding:0 2px;border-radius:3px}
html[data-theme="dark"] .b-text mark,html[data-theme="dark"] .md mark{background:rgba(255,200,60,.3)}
.b-text u{text-decoration:underline;text-underline-offset:3px}
.b-text a.ref,.md a.ref{display:inline-flex;align-items:center;gap:4px;padding:0 6px 0 5px;border-radius:6px;border:1px solid var(--line-2);background:var(--hover);font-size:.92em;text-decoration:none;color:var(--text);cursor:pointer;vertical-align:baseline;line-height:1.5}
.b-text a.ref::before,.md a.ref::before{font-size:.68em;color:var(--text-4);letter-spacing:.04em}
a.ref[data-kind="todo"]::before{content:"待办"}a.ref[data-kind="book"]::before{content:"书"}a.ref[data-kind="trip"]::before{content:"足迹"}a.ref[data-kind="goal"]::before{content:"目标"}a.ref[data-kind="link"]::before{content:"收藏"}
a.ref:hover{border-color:var(--blue)}
.mt-now span{position:absolute;left:-46px;top:-8px;z-index:3;font-size:.62rem;font-weight:600;color:var(--on-ac,#fff);background:var(--blue);padding:1px 5px;border-radius:5px;font-variant-numeric:tabular-nums}

/* ===== Focus / pomodoro ===== */
.focus-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.focus-grid{--pg1:#6d8dff;--pg2:#4f7cf5}
.focus-grid .fstats{margin:0}
.fw-todo{margin-top:8px}.fw-todo .pick{display:block;width:100%}.fw-todo .pf-todo{background:none;padding:0;width:100%;max-width:none;border:0;box-shadow:none;height:auto;margin:0}.fw-todo .pf-todo .pick-btn{width:100%;margin:0;border-radius:12px;background:var(--paper)}
.focus-page{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:16px;align-items:stretch;--pg1:#6d8dff;--pg2:#4f7cf5}
.focus-page.break{--pg1:#5cc083;--pg2:#2d8f88}
.focus-hero{position:relative;border-radius:22px;padding:28px 32px 36px;overflow:hidden;color:var(--text);background:radial-gradient(120% 90% at 20% 0%,rgba(var(--ac),.14),transparent 60%),radial-gradient(90% 80% at 100% 100%,rgba(116,97,201,.12),transparent 60%),var(--card-bg);box-shadow:var(--shadow);min-height:560px;display:flex;flex-direction:column;transition:background .6s}
.focus-page.break .focus-hero{background:radial-gradient(120% 90% at 20% 0%,rgba(92,192,131,.16),transparent 60%),radial-gradient(90% 80% at 100% 100%,rgba(45,143,136,.12),transparent 60%),var(--card-bg)}
.focus-page.work .focus-hero::after{content:"";position:absolute;inset:-40%;background:radial-gradient(circle at 50% 50%,rgba(var(--ac),.08),transparent 55%);animation:breathe 6s ease-in-out infinite;pointer-events:none}
.focus-page.work.paused .focus-hero::after{animation-play-state:paused}
@keyframes breathe{0%,100%{transform:scale(.9);opacity:.6}50%{transform:scale(1.05);opacity:1}}
.fh-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;position:relative;z-index:1}
.fh-k{font-size:var(--fs-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}
.focus-page.break .fh-k{color:var(--green)}
.fh-title{font-size:1.5rem;font-weight:700;margin-top:4px;max-width:420px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fh-stats{display:flex;gap:18px;font-size:var(--fs-xs);color:var(--text-4);text-align:right;align-self:flex-start}
.fh-stats span{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.fh-stats b{font-size:1.25rem;font-weight:700;color:var(--text);line-height:1;font-variant-numeric:tabular-nums}
.fh-stats b i{font-style:normal;font-size:.7rem;font-weight:500;color:var(--text-4);margin:0 2px 0 1px}
.fh-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;position:relative;z-index:1;padding-top:10px}
.pomo-ring{position:relative;width:300px;height:300px;filter:drop-shadow(0 20px 40px rgba(var(--ac),.18))}
.pomo-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.pr-bg{fill:none;stroke:var(--hover-2);stroke-width:8}
.pr-fg{fill:none;stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset 1s linear}
.pr-dot{fill:#fff;stroke:var(--pg2);stroke-width:3;transition:cx 1s linear,cy 1s linear}
.ticks line{stroke:var(--line-2);stroke-width:1.5;stroke-linecap:round}
.ticks line.on{stroke:var(--pg2);opacity:.55}
.pomo-t{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;transform:none}
.pomo-time{font-size:4.2rem;font-weight:700;letter-spacing:-.04em;font-variant-numeric:tabular-nums;line-height:1}
.pomo-sub{font-size:.74rem;color:var(--text-4);letter-spacing:.01em}
.pomo-form{display:flex;flex-direction:column;gap:14px;width:100%;max-width:420px;align-items:center}
.pf-label{width:100%;text-align:center;font-size:1.05rem;padding:10px 14px;border:0;border-bottom:1.5px solid var(--line-2);border-radius:0;background:transparent;box-shadow:none}
.pf-label:focus{border-bottom-color:var(--blue);box-shadow:none;background:transparent}
.pf-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center}
.chips{display:inline-flex;gap:4px;padding:3px;border-radius:999px;background:var(--hover)}
.chip{padding:5px 12px;border-radius:999px;font-size:var(--fs-sm);font-weight:500;color:var(--text-3);transition:all .2s var(--liquid)}
.chip i{font-style:normal;font-size:.68rem;margin-left:1px;color:var(--text-4)}
.chip.on{background:var(--paper);color:var(--text);box-shadow:0 1px 3px rgba(16,24,40,.12)}
.chip-in{width:64px;padding:4px 8px;border-radius:999px;font-size:var(--fs-sm);text-align:center}
.pf-todo{width:auto;max-width:220px;padding:6px 26px 6px 10px;font-size:var(--fs-sm);border-color:transparent;background-color:var(--hover)}
.pf-start{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 28px;border-radius:999px;font-size:.95rem;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--pg1),var(--pg2));box-shadow:0 14px 30px -12px rgba(var(--ac),.7);transition:transform .3s var(--liquid),box-shadow .3s}
.pf-start:hover{transform:translateY(-1px);box-shadow:0 18px 34px -12px rgba(var(--ac),.8)}
.pf-start:active{transform:scale(.97)}
.pf-start.ghost{color:var(--text);background:var(--paper);box-shadow:var(--shadow-h)}
.pomo-ctl{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:center}
.pf-btn{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 16px;border-radius:999px;font-size:var(--fs-sm);font-weight:500;color:var(--text-2);background:var(--hover)}
.pf-btn:hover{background:var(--hover-2)}.pf-btn.danger{color:var(--red)}
.focus-side{display:flex;flex-direction:column;gap:16px;min-width:0}.focus-side>.card:last-child{flex:1}
.widget>.card.fstats,.fstats{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}
.fs-left,.fs-right{min-width:0;display:flex;flex-direction:column}.fs-right{justify-content:flex-start}.fs-right .fs-chart{flex:1;min-height:150px}
@media (max-width:1100px){.widget>.card.fstats,.fstats{grid-template-columns:1fr;gap:16px}.heat{overflow-x:auto}}
.day-strip{position:relative;height:38px;margin:14px 0 26px;border-radius:8px;background:var(--hover)}
.sess-list{display:flex;flex-direction:column;gap:2px}
.sess{display:flex;align-items:center;gap:10px;height:30px;padding:0 6px;border-radius:8px;font-size:.8rem}.sess:hover{background:var(--hover)}
.sess i{width:7px;height:7px;border-radius:50%;background:var(--pg2);flex-shrink:0}.sess .sess-t{color:var(--text-4);font-variant-numeric:tabular-nums;width:88px;flex-shrink:0;font-size:.76rem}.sess .sess-n{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.sess .sess-m{color:var(--text-4);font-size:.74rem;font-variant-numeric:tabular-nums}
.fstats.pad{padding:22px 24px 18px}
.fs-nums{display:flex;justify-content:space-around;margin-bottom:18px}.fs-nums div{display:flex;flex-direction:column;align-items:center;gap:2px}.fs-nums b{font-size:1.35rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.fs-nums b.muted{color:var(--text-4)}.fs-nums small{font-size:.72rem;color:var(--text-4)}
.heat{margin:0 0 18px}.heat-months{position:relative;height:16px;margin-left:22px;font-size:.68rem;color:var(--text-4)}.heat-months span{position:absolute;top:0;white-space:nowrap}
.heat-body{display:flex;gap:4px}.heat-wd{display:flex;flex-direction:column;justify-content:space-between;width:18px;font-size:.62rem;color:var(--text-4);line-height:1;padding:1px 0}
.heat-grid{flex:1;display:grid;gap:3px}.heat-col{display:grid;grid-template-rows:repeat(7,1fr);gap:3px}.heat-col i{display:block;aspect-ratio:1;border-radius:2.5px;background:var(--hover-2);cursor:pointer}
.heat-col i.l1{background:#c6d8fb}.heat-col i.l2{background:#93b4f6}.heat-col i.l3{background:#5a8cf0}.heat-col i.l4{background:#2f63d8}.heat-col i.fut{opacity:.35;cursor:default}.heat-col i.sel{box-shadow:0 0 0 1.5px var(--ink)}
html[data-theme="dark"] .heat-col i.l1{background:#2a3d66}html[data-theme="dark"] .heat-col i.l2{background:#345494}html[data-theme="dark"] .heat-col i.l3{background:#4a74c9}html[data-theme="dark"] .heat-col i.l4{background:#6d95f2}
.fs-seg{display:flex;justify-content:center;margin-bottom:14px}.fs-seg .seg{display:flex;width:100%}.fs-seg .seg button{flex:1;padding:6px}
.fs-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.fs-title{flex:1;text-align:center;display:flex;flex-direction:column;gap:2px}.fs-title small{font-size:.8rem;color:var(--text-3);display:inline-flex;align-items:center;justify-content:center;gap:8px}.fs-title b{font-size:1.6rem;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.fs-today{font-size:.7rem;color:var(--blue);padding:1px 7px;border-radius:6px;background:rgba(var(--ac),.08)}
.fs-nav{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:var(--text-3);background:var(--hover)}.fs-nav:hover{background:var(--hover-2);color:var(--text)}.fs-nav:disabled{opacity:.35;cursor:default}
.fs-chart{display:block;width:100%;height:160px;margin-top:4px}.fs-chart .gl{stroke:var(--line);stroke-width:1}.fs-chart .gl.v{stroke-dasharray:3 3}.fs-chart .bar{fill:var(--blue);opacity:.9}.fs-chart .ax{font-size:11px;fill:var(--text-4)}.fs-chart .ax.mid{text-anchor:middle}
.ds-h{position:absolute;top:100%;margin-top:4px;font-size:.62rem;color:var(--text-4);transform:translateX(-50%)}
.ds-b{position:absolute;top:6px;bottom:6px;border-radius:5px;background:linear-gradient(135deg,var(--pg1),var(--pg2));opacity:.9}
.ds-b.live{background:var(--green);animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.9}50%{opacity:.5}}
.focus-side .tlist button.tl-i{width:100%;text-align:left}
@media(max-width:1180px){.focus-page{grid-template-columns:1fr}}
@media(max-width:600px){.pomo-ring{width:240px;height:240px}.pomo-time{font-size:3.2rem}.focus-hero{padding:20px 18px 26px}}
.mini-pomo{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r2);text-decoration:none;color:var(--text);background:rgba(var(--ac),.1);margin:6px 0}
.mini-pomo.break{background:color-mix(in srgb,var(--green) 14%,transparent)}
.mini-pomo.paused{opacity:.7}
.mp-time{font-weight:700;font-variant-numeric:tabular-nums;font-size:.9rem}
.mp-label{flex:1;font-size:var(--fs-xs);color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side.mini .mini-pomo{flex-direction:column;gap:2px;padding:6px 4px}
.pomo-inline{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r2);background:rgba(var(--ac),.08);text-decoration:none;color:var(--text);margin-bottom:10px;font-size:var(--fs-sm)}
.pomo-inline b{font-variant-numeric:tabular-nums}
.pomo-inline span{color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tlist button.tl-i{width:100%;text-align:left}
@media(max-width:900px){.focus-layout{grid-template-columns:1fr}}

/* ===== Pickers ===== */
.pick{position:relative}
.pick-btn{display:flex;align-items:center;gap:8px;width:100%;height:36px;padding:0 12px;border-radius:var(--r2);border:1px solid var(--line);background:var(--input);font-size:.875rem;color:var(--text);text-align:left;transition:box-shadow .15s,border-color .15s}
.pick-btn:hover{border-color:var(--line-2)}.pick-btn:focus-visible{outline:none;border-color:rgba(var(--ac),.6);box-shadow:0 0 0 2px rgba(var(--ac),.2)}
.pick-btn.is-empty span{color:var(--text-4)}.pick-btn .ic{color:var(--text-4);flex-shrink:0}
.pick-btn span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.pick-btn .caret{margin-left:auto}
.pop.sel{width:auto;min-width:160px;max-width:320px;padding:6px}.pop.sel .time-list{max-height:260px}
.pf-todo .pick-btn{border-radius:999px;background:var(--paper);border-color:transparent;box-shadow:var(--shadow);height:34px;width:220px;margin:0 auto}
.lc-sort{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 8px;border-radius:7px;font-size:.74rem;color:var(--text-3);white-space:nowrap}.lc-sort:hover{background:var(--hover)}
.pop{position:fixed;z-index:200;width:272px;padding:10px;border-radius:14px;background:color-mix(in srgb,var(--paper) 82%,transparent);-webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5);box-shadow:var(--pop);animation:pop .15s var(--ease)}
.pop-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.pop-h b{font-size:.84rem;font-weight:600}
.pop-f{display:flex;gap:4px;align-items:center;margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.cal-w{font-size:.66rem;color:var(--text-4);padding:4px 0}
.cal-d{height:32px;border-radius:9px;font-size:.8rem;color:var(--text);position:relative}
.cal-d:hover{background:var(--hover)}.cal-d.today{font-weight:600;color:var(--blue)}.cal-d.sel{background:var(--blue);color:var(--on-ac,#fff);font-weight:600}
.pop.time{width:236px}
.time-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;margin-top:8px}.time-h{height:28px;border-radius:7px;font-size:.78rem;font-variant-numeric:tabular-nums;color:var(--text-2)}.time-h:hover{background:var(--hover)}.time-h.sel{background:var(--blue);color:var(--on-ac,#fff)}
.time-mins{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.time-m{height:30px;border-radius:8px;font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--text-2);background:var(--hover)}.time-m:hover{background:var(--hover-2)}.time-m.sel{background:var(--blue);color:var(--on-ac,#fff)}
.time-in{margin-bottom:6px}
.time-list{position:relative;max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:1px;scrollbar-width:thin}
.time-i{padding:6px 10px;border-radius:8px;font-size:.84rem;text-align:left;color:var(--text);font-variant-numeric:tabular-nums}
.time-i:hover{background:var(--hover)}.time-i.sel{background:var(--blue);color:var(--on-ac,#fff)}

/* ===== Search palette ===== */
.pal{width:100%}
.pal input{border:0;border-bottom:1px solid var(--line);border-radius:0;font-size:1rem;padding:12px 4px;box-shadow:none;background:none}
.pal input:focus{box-shadow:none;background:none}
.pal .res{max-height:50vh;overflow:auto;padding:6px 0}
.pal .ri{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--r2);cursor:pointer;font-size:.84rem}
.pal .ri:hover,.pal .ri.on{background:var(--hover)}
.pal .ri .k{font-size:.7rem;color:var(--text-4);width:44px;flex-shrink:0}
.pal .ri b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.pal .ri small{color:var(--text-4);white-space:nowrap}

/* ===== Settings ===== */
.settings{max-width:720px;display:flex;flex-direction:column;gap:14px;min-width:0}
.settings .card{scroll-margin-top:64px}
.danger-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.keys{display:grid;grid-template-columns:1fr 1fr;gap:16px 28px}
.keys-h{font-size:.7rem;font-weight:600;letter-spacing:.06em;color:var(--text-4);text-transform:uppercase;margin-bottom:6px}
.keys-r{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:.8rem;color:var(--text-2);border-top:1px solid var(--line)}.keys-r:first-of-type{border-top:0}
.keys-r kbd{flex:none;min-width:96px;font-size:.72rem;padding:2px 7px;border-radius:6px;background:var(--hover);color:var(--text)}
@media (max-width:900px){.keys{grid-template-columns:1fr}}
.sync-status{font-size:.76rem;color:var(--text-3);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sync-status .dot{width:8px;height:8px;border-radius:50%;background:var(--text-4)}
.sync-status .dot.ok{background:var(--green)}.sync-status .dot.err{background:var(--red)}
.avatar{width:52px;height:52px;border-radius:var(--r);background:var(--side);display:grid;place-items:center;color:var(--text);font-weight:600;font-size:1.2rem;overflow:hidden;flex-shrink:0}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar-pick{position:relative;border:0;padding:0;border-radius:50%;background:radial-gradient(120% 120% at 30% 20%,#dfe8ff,#c7d6ff 60%,#e9ddff);color:var(--text);font-weight:600;font-size:1.3rem;display:grid;place-items:center;overflow:hidden;flex-shrink:0;cursor:pointer;font-family:inherit;transition:box-shadow .15s}
.avatar-pick img{width:100%;height:100%;object-fit:cover;display:block}
.avatar-pick .ap-hint{position:absolute;inset:0;display:grid;place-items:center;background:rgba(20,28,48,.42);color:#fff;opacity:0;transition:opacity .15s}
.avatar-pick:hover .ap-hint,.avatar-pick.over .ap-hint{opacity:1}
.avatar-pick.over{box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 45%,transparent)}

/* ===== Responsive ===== */
@media(max-width:1180px){.board-cols{grid-template-columns:repeat(2,1fr)}.sp-col{display:none}.week{grid-template-columns:repeat(4,1fr)}.day-layout,.explore,.vision-grid{grid-template-columns:1fr}.board{columns:2}}
@media(max-width:900px){
  .shell{grid-template-columns:1fr}
  .side{position:fixed;left:0;top:0;bottom:0;width:min(280px,84vw);z-index:60;transform:translateX(-100%);transition:transform .25s var(--ease);box-shadow:var(--pop);background:var(--paper)}
  .side.open{transform:none}
  .side-bg{position:fixed;inset:0;z-index:55;background:rgba(15,15,15,.4)}
  .ibtn.hamb{display:inline-grid}
  .main{padding:0 14px 40px}
  .topbar{margin:0 -14px 8px -14px;padding:0 12px}
  .week{grid-template-columns:repeat(2,1fr)}
  .d-main{grid-template-columns:1fr}.widget.span-1{grid-column:1 / -1}
  .notes-layout,.nb-layout,.nb-layout.no-nb,.nb-layout.no-list{grid-template-columns:1fr}.splitter{display:none}.shell{grid-template-columns:1fr}.notes-side,.nb-col,.list-col{position:static;height:auto;max-height:260px;min-height:0}
  .page-body{padding:16px 6px 60px}.b-gutter{left:-30px}
  input.page-title{font-size:1.8rem}
  .reading-h{grid-template-columns:1fr}.wheel-wrap{grid-template-columns:1fr}
  .searchbox{width:auto;flex:1}.searchbox kbd{display:none}
  .grid2,.grid3{grid-template-columns:1fr}
  .board{columns:2}.board-cols{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){.stats{grid-template-columns:1fr 1fr}.week{grid-template-columns:1fr}.card.pad{padding:14px}.page-h h1{font-size:1.4rem}.hero .greet h1{font-size:1.5rem}.board-cols{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* ===== Now widget: clock / place / weather ===== */
.place-pop{width:260px}.place-pop .time-i small{display:block;font-size:.68rem;color:var(--text-4)}

/* ===== Quick capture ===== */
.cap-btn{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 12px 0 9px;border-radius:999px;font-size:.8rem;font-weight:500;color:var(--blue);background:color-mix(in srgb,var(--blue) 12%,transparent);box-shadow:none;white-space:nowrap;transition:background .16s}.cap-btn:hover{background:color-mix(in srgb,var(--blue) 20%,transparent)}
.cap-bg{position:fixed;inset:0;z-index:150;background:rgba(15,15,20,.28);display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 0;animation:fade .12s}
.cap{width:min(640px,100%);border-radius:18px;background:color-mix(in srgb,var(--paper) 85%,transparent);-webkit-backdrop-filter:blur(24px) saturate(1.5);backdrop-filter:blur(24px) saturate(1.5);box-shadow:var(--pop);padding:14px 14px 12px;animation:pop .14s var(--ease)}
.cap-in{width:100%;border:0;background:transparent;box-shadow:none;font-size:1.05rem;line-height:1.6;min-height:60px;max-height:220px;padding:4px 6px;resize:none}.cap-in:focus{box-shadow:none;background:transparent}
.cap-f{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}
.cap-seg{display:inline-flex}.cap-auto{font-size:.7rem;color:var(--text-4);padding:0 8px}.cap-auto:hover{color:var(--text)}
.cap-sum{flex:1;min-width:0;font-size:.76rem;color:var(--text-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cap-sum.bad{color:var(--red)}
.tabbar{display:none}
.m-back{display:none}

/* ===== Phone layout ===== */
@media(max-width:720px){
  html{font-size:15px}
  input[type=text],input[type=url],input[type=search],input[type=number],textarea,.cap-in,.searchin input,.pf-label{font-size:16px}
  .main{padding:0 14px 92px!important}
  .topbar{height:48px;gap:6px}.topbar .ttl{font-size:.82rem}.cap-btn span{display:none}.cap-btn{padding:0 9px}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;height:calc(60px + env(safe-area-inset-bottom));padding:4px 6px env(safe-area-inset-bottom);background:var(--paper);box-shadow:0 -1px 0 var(--line),0 -8px 24px -16px rgba(0,0,0,.25);align-items:stretch;justify-content:space-around}
  .tabbar a,.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:.62rem;color:var(--text-4);text-decoration:none;border-radius:12px}
  .tabbar a.active{color:var(--blue)}.tabbar .tab-cap{flex:0 0 56px;margin:0 4px;align-self:center;height:44px;border-radius:14px;background:var(--blue);color:var(--on-ac,#fff);box-shadow:0 8px 18px -8px rgba(var(--ac),.9)}
  .page-h{margin-bottom:10px}.page-h h1{font-size:1.5rem}.page-h .desc{display:none}
  /* notes: one pane at a time */
  .nb-layout{display:block}
  .nb-layout .nb-col,.nb-layout .list-col{position:static;height:auto;max-height:none;min-height:0;padding:8px;margin-bottom:10px}
  .nb-layout .nb-h,.nb-layout .lc-h .ibtn[title="收起列表"],.nb-layout .lc-h .ibtn[title="收起"],.nb-layout .nb-foot,.nb-layout .nb-sec,.nb-layout .nb-sub,.nb-layout .nb-tg{display:none}
  .nb-layout .nb-list{flex-direction:row;overflow-x:auto;overflow-y:hidden;gap:4px;padding-bottom:2px;scrollbar-width:none}.nb-layout .nb-list .liq{display:none}
  .nb-layout .nb-i{white-space:nowrap;flex:0 0 auto;width:auto;height:32px;padding:0 10px;border-radius:999px;background:var(--hover)}.nb-layout .nb-i.active{background:var(--ink);color:var(--bg)}.nb-layout .nb-i small{display:none}.nb-layout .nb-i .ic{display:none}
  .nb-layout .trash-i{display:none}.nb-layout .nb-i.new{display:none}
  .nb-layout .lc-list{max-height:none}
  .nb-layout:not(.m-page) .notes-main{display:none}
  .nb-layout.m-page .nb-col,.nb-layout.m-page .list-col,.nb-layout.m-page .splitter,.nb-layout.m-page .pane-pill{display:none}
  .m-back{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;margin-right:2px;color:var(--text-2)}
  .page>.crumbs>a:not(.m-back),.page>.crumbs>span{display:none}.page>.crumbs>b{display:none}
  .page-acts .btn span,.page-acts .btn{font-size:.76rem}
  .page-body{padding:12px 4px 80px}input.page-title{font-size:1.6rem}
  .b-gutter{display:none}.b-row{padding-left:calc(var(--ind) * 16px)}
  .meta-line{gap:2px}
  /* planner */
  .week{grid-template-columns:1fr;gap:8px}.wday{min-height:0}
  .wnav .lbl{min-width:0;font-size:.85rem}.wnav .pick{display:none}
  .day-layout,.focus-page{display:block}.day-layout>.stack{margin-top:12px}.tl-scroll{max-height:60vh}
  .focus-side{margin-top:12px}.fstats{margin-top:12px}
  /* modals as bottom sheets */
  .modal-bg{align-items:flex-end;padding:0}
  .modal{width:100%;max-width:none;max-height:92vh;border-radius:20px 20px 0 0;animation:sheet .22s var(--ease)}
  .modal-b{max-height:70vh}
  .ctx.popmenu{width:min(260px,calc(100vw - 24px))}
  .side-top .side-week{display:none}
}
@keyframes sheet{from{transform:translateY(40px);opacity:.6}to{transform:none;opacity:1}}

/* ===== Print (导出 PDF) ===== */
@media print{
  body.print-page{background:#fff!important}
  body.print-page .side,body.print-page .topbar,body.print-page .nb-col,body.print-page .list-col,body.print-page .splitter,body.print-page .page-acts,body.print-page .crumbs,body.print-page .links-sec,body.print-page .meta-line,body.print-page .b-gutter,body.print-page .pane-pill,body.print-page .toast,body.print-page .mini-pomo,body.print-page .b-tail,body.print-page .tb-add,body.print-page .img-rz,body.print-page .subpages{display:none!important}
  body.print-page .shell{display:block!important}body.print-page .main{padding:0!important;overflow:visible!important}
  body.print-page .notes-main,body.print-page .card{box-shadow:none!important;border-radius:0!important;overflow:visible!important}
  body.print-page .nb-layout{display:block!important}body.print-page .page-body{max-width:none!important;padding:0!important}
  body.print-page .beditor{color:#000}body.print-page input.page-title{font-size:26pt}
}

/* ---------- notes: foot links, properties ---------- */
.nb-foot{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.nb-foot .nb-i{flex:none;min-height:30px;padding:2px 4px;font-size:.72rem;gap:4px;justify-content:center}
.li-i small .li-rv{color:var(--amber);font-weight:500}.li-i small .li-rv.late{color:var(--red)}
.st-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}
.mchip.prop{color:var(--text-2)}.mchip.prop .ic{color:var(--text-4)}
.mchip.rv.soon{color:var(--amber)}.mchip.rv.today{color:var(--amber);font-weight:500}.mchip.rv.late{color:var(--red);font-weight:500}
.mrev{display:inline-flex;align-items:center}.mrev .mchip.ok{padding:0 6px;color:var(--green);margin-left:-4px}.mrev .mchip.ok:hover{background:rgba(63,143,98,.12)}
/* ---------- note tasks (行动) ---------- */
.nt-group{margin-bottom:14px}
.nt-h{display:flex;align-items:center;gap:7px;font-size:.78rem;color:var(--text-3);text-decoration:none;padding:4px 6px;border-radius:7px}.nt-h:hover{background:var(--hover);color:var(--text)}
.nt-h small{color:var(--text-4);font-size:.7rem}
.nt-row{display:flex;align-items:center;gap:10px;padding:6px 8px 6px 10px;border-radius:var(--r2);font-size:.86rem}
.nt-row:hover{background:var(--hover)}
.nt-row .cb{flex-shrink:0;width:16px;height:16px;border-radius:4px;border:1.5px solid var(--text-4);margin-top:3px;display:grid;place-items:center;color:transparent;transition:all .12s}
.nt-row .cb:hover{border-color:var(--blue)}.nt-row.done .cb{background:var(--blue);border-color:var(--blue);color:var(--on-ac,#fff)}
.nt-row.done .nt-t{color:var(--text-4);text-decoration:line-through}
.nt-t{flex:1;min-width:0;cursor:pointer;line-height:1.5}
.nt-more{display:inline-block;font-size:.78rem;color:var(--blue);text-decoration:none;padding:4px 8px}
.group-h .group-link{font-size:.72rem;color:var(--blue);text-decoration:none;text-transform:none;letter-spacing:0;font-weight:500}
.nt-sec .nt-group{margin-bottom:6px}
/* ---------- canvas (画布) ---------- */
.cv-wrap{display:flex;flex-direction:column;height:calc(100vh - 80px);min-height:480px;border-radius:var(--r);overflow:hidden}
.cv-tb{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line);position:relative;z-index:2;background:var(--card-bg);min-width:0}
.cv-tb>.btn{white-space:nowrap;flex-shrink:0}
.cv-tools{display:flex;gap:2px;padding:3px;border-radius:10px;background:var(--hover);position:relative}
.cv-tools button{position:relative;z-index:1;display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 9px;border-radius:8px;font-size:.78rem;color:var(--text-3);white-space:nowrap}
.cv-tools button:not(.on) span{display:none}
.cv-tools button.on{color:var(--text);background:var(--card-bg);box-shadow:var(--shadow)}
.cv-tools .liq{display:none}
.cv-pens{display:flex;align-items:center;gap:4px;padding:0 4px}
.cv-pen{width:18px;height:18px;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px var(--card-bg)}.cv-pen.on{box-shadow:0 0 0 2px var(--card-bg),0 0 0 3.5px var(--c)}
.cv-sep{width:1px;height:18px;background:var(--line-2);margin:0 4px}
.cv-w{height:24px;padding:0 7px;border-radius:6px;font-size:.74rem;color:var(--text-3)}.cv-w.on{background:var(--hover-2);color:var(--text)}
.cv-zoom{display:flex;align-items:center;gap:2px}.cv-z{min-width:48px;height:28px;border-radius:7px;font-size:.76rem;color:var(--text-3);font-variant-numeric:tabular-nums}.cv-z:hover{background:var(--hover)}
.cv-vp{flex:1;position:relative;overflow:hidden;touch-action:none;cursor:grab;user-select:none;background-color:transparent;background-image:radial-gradient(var(--line-2) 1px,transparent 1.2px)}
.cv-vp:active{cursor:grabbing}
.tool-pen .cv-vp{cursor:crosshair}.tool-text .cv-vp{cursor:text}.tool-erase .cv-vp{cursor:cell}
.cv-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.cv-stroke{fill:none;stroke-linecap:round;stroke-linejoin:round;pointer-events:stroke}
.cv-stroke.sel{filter:drop-shadow(0 0 3px rgba(var(--ac),.9))}
.tool-erase .cv-stroke:hover{opacity:.4}
.cv-edge{color:var(--text-4)}.cv-edge .line{fill:none;stroke:currentColor;stroke-width:1.7}
.cv-edge .hit{fill:none;stroke:transparent;stroke-width:16;pointer-events:stroke;cursor:pointer}
.cv-edge.sel,.cv-edge:hover{color:var(--blue)}
.cv-edge text{font-size:12px;fill:var(--text-3);paint-order:stroke;stroke:var(--side);stroke-width:5px;stroke-linejoin:round;pointer-events:auto;cursor:pointer}
.cv-tmpline{fill:none;stroke:var(--blue);stroke-width:1.6;stroke-dasharray:5 4}
.cv-layer{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none}
.cv-node{position:absolute;pointer-events:auto;background:var(--card-bg);border-radius:12px;box-shadow:var(--shadow);cursor:move;padding:10px 12px;box-sizing:border-box;font-size:.88rem;line-height:1.5;color:var(--text)}
.cv-node.tinted{background:color-mix(in srgb,var(--nc) 12%,var(--card-bg));box-shadow:0 0 0 1px color-mix(in srgb,var(--nc) 40%,transparent)}
.cv-node:hover{box-shadow:var(--shadow-h)}
.cv-node.sel{box-shadow:0 0 0 2px var(--blue)}
.cv-node.editing{cursor:text}
.cv-node.note{overflow:hidden;display:flex;flex-direction:column}
.cv-text{outline:none;white-space:pre-wrap;word-break:break-word;min-height:1.5em;cursor:inherit}
.cv-text:empty:before{content:attr(data-ph);color:var(--text-4)}
.cv-nt{display:flex;align-items:center;gap:6px;font-size:.84rem;min-width:0}.cv-nt b{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.cv-nt.muted{color:var(--text-4)}
.cv-open{color:var(--text-4);display:grid;place-items:center;width:22px;height:22px;border-radius:6px;cursor:pointer}.cv-open:hover{background:var(--hover-2);color:var(--text)}
.cv-snip{font-size:.76rem;color:var(--text-3);margin-top:4px;overflow:hidden;flex:1;line-height:1.5}
.cv-handle{position:absolute;right:-7px;top:50%;width:12px;height:12px;margin-top:-6px;border-radius:50%;background:var(--blue);border:2px solid var(--card-bg);opacity:0;cursor:crosshair;transition:opacity .12s}
.cv-node:hover .cv-handle,.cv-node.sel .cv-handle{opacity:1}
.cv-rz{position:absolute;right:2px;bottom:2px;width:12px;height:12px;cursor:nwse-resize;opacity:0;border-right:2px solid var(--text-4);border-bottom:2px solid var(--text-4);border-radius:0 0 4px 0}
.cv-node:hover .cv-rz,.cv-node.sel .cv-rz{opacity:.7}
.cv-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-4);font-size:.84rem;pointer-events:none}
.cv-hint{position:absolute;left:12px;bottom:10px;font-size:.7rem;color:var(--text-4);pointer-events:none;padding:4px 8px;border-radius:7px;background:color-mix(in srgb,var(--side) 80%,transparent)}
.cv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.cv-card{display:block;text-decoration:none;color:inherit;padding:10px;border-radius:var(--r2);background:var(--card-bg);box-shadow:var(--shadow)}
.cv-card:hover{box-shadow:var(--shadow-h)}
.cv-card b{display:block;font-size:.86rem;font-weight:500;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-card small{display:block;font-size:.7rem;color:var(--text-4);margin-top:2px}
.cv-prev{height:110px;border-radius:8px;background:var(--side);color:var(--text-4);display:grid;place-items:center;overflow:hidden}.cv-prev svg{width:100%;height:100%}
.move-i{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border-radius:var(--r2);font-size:.84rem;text-align:left;color:var(--text)}
.move-i:hover{background:var(--hover)}
@media(max-width:720px){
  .nb-foot .nb-i span{font-size:.7rem}
  .ctable .c-upd,.ctable th:last-child{display:none}.ctable .c-title span{max-width:140px}

  .cv-wrap{height:calc(100vh - 150px)}.cv-tb{padding:6px 8px;gap:4px}.cv-tools button{padding:0 8px}.cv-add .t{display:none}.cv-add{width:30px;padding:0;justify-content:center}.cv-hint{display:none}
}
body.print-page .nt-sec{display:none}

/* glass: print and reduced transparency fall back to solid */
@media print{.card,.side,.topbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}body::before{display:none}}
@media(prefers-reduced-transparency:reduce){.card{background:var(--card-bg);-webkit-backdrop-filter:none;backdrop-filter:none}.side{background:var(--side)}body::before{display:none}}
@media(max-width:720px){:root{--blur:14px}}
.mdate.saved{color:var(--green)}

/* ---------- skins: Notion (flat, hairline) and Claude (warm, terracotta) ---------- */
html[data-skin="notion"]{
  --font:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Noto Sans SC","Microsoft YaHei",Helvetica,Arial,sans-serif;
  --r:8px;--r2:6px;--r3:5px;--blur:0px;
  --bg:#ffffff;--side:#f7f7f5;--paper:#ffffff;--card-bg:#ffffff;
  --ink:#37352f;--text:#37352f;--text-2:#37352f;--text-3:#787774;--text-4:#9b9a97;
  --line:rgba(55,53,47,.09);--line-2:rgba(55,53,47,.16);--hover:rgba(55,53,47,.06);--hover-2:rgba(55,53,47,.1);
  --input:rgba(242,241,238,.6);--tag-bg:rgba(55,53,47,.08);--sel:rgba(35,131,226,.2);--cal-bg:#f7f7f5;--code-bg:#f7f6f3;
  --blue:#2383e2;--ac:35,131,226;--liq:rgba(55,53,47,.08);
  --shadow:0 0 0 1px rgba(55,53,47,.09);--shadow-h:0 0 0 1px rgba(55,53,47,.16);--pop:0 0 0 1px rgba(15,15,15,.05),0 3px 6px rgba(15,15,15,.1),0 9px 24px rgba(15,15,15,.2);
  --glass:#ffffff;--glass-side:#f7f7f5;--glass-line:transparent;--glass-edge:rgba(55,53,47,.12);--glass-edge-h:rgba(55,53,47,.2);--glass-hl:transparent;--glass-shadow:0 0 0 0 transparent;--glass-shadow-h:0 2px 6px rgba(15,15,15,.05);
  --blob1:transparent;--blob2:transparent;--blob3:transparent;--blob4:transparent;
}
html[data-skin="notion"][data-theme="dark"]{
  --bg:#191919;--side:#202020;--paper:#252525;--card-bg:#202020;
  --ink:#ffffff;--text:#d4d4d4;--text-2:#d4d4d4;--text-3:#9b9b9b;--text-4:#6f6f6f;
  --line:rgba(255,255,255,.094);--line-2:rgba(255,255,255,.16);--hover:rgba(255,255,255,.055);--hover-2:rgba(255,255,255,.1);
  --input:rgba(255,255,255,.04);--tag-bg:rgba(255,255,255,.08);--sel:rgba(35,131,226,.35);--cal-bg:#252525;--code-bg:#262626;
  --blue:#529cca;--ac:82,156,202;--liq:rgba(255,255,255,.09);
  --shadow:0 0 0 1px rgba(255,255,255,.094);--shadow-h:0 0 0 1px rgba(255,255,255,.16);--pop:0 0 0 1px rgba(255,255,255,.1),0 8px 24px rgba(0,0,0,.5);
  --glass:#202020;--glass-side:#202020;--glass-edge:rgba(255,255,255,.094);--glass-edge-h:rgba(255,255,255,.18);--glass-shadow-h:0 0 0 0 transparent;
}
html[data-skin="notion"] .card,html[data-skin="notion"] .side,html[data-skin="notion"] .topbar,html[data-skin="notion"] .pop,html[data-skin="notion"] .popmenu,html[data-skin="notion"] .modal,html[data-skin="notion"] .cap{-webkit-backdrop-filter:none;backdrop-filter:none}
html[data-skin="notion"] .card::after{display:none}
html[data-skin="notion"] .topbar{--tb-bg:var(--bg)}
html[data-skin="notion"] .side{background:var(--side)}
html[data-skin="notion"] .pop,html[data-skin="notion"] .popmenu,html[data-skin="notion"] .modal,html[data-skin="notion"] .cap{background:var(--paper)}
html[data-skin="notion"] body::before,html[data-skin="notion"] .tag{box-shadow:none}
html[data-skin="notion"] .btn.primary{border-radius:6px}

html[data-skin="claude"]{
  --r:14px;--r2:10px;--r3:8px;--blur:0px;
  --bg:#f4f1ea;--side:#efebe3;--paper:#faf9f5;--card-bg:#faf9f5;
  --ink:#1f1e1d;--text:#1f1e1d;--text-2:#3d3a37;--text-3:#73706b;--text-4:#9e9a93;
  --line:rgba(60,50,30,.1);--line-2:rgba(60,50,30,.18);--hover:rgba(60,50,30,.05);--hover-2:rgba(60,50,30,.09);
  --input:rgba(60,50,30,.045);--tag-bg:rgba(60,50,30,.07);--sel:rgba(217,119,87,.22);--cal-bg:#f1ede5;--code-bg:#f1ede5;
  --blue:#c96442;--ac:201,100,66;--liq:rgba(60,50,30,.07);
  --shadow:0 0 0 1px rgba(60,50,30,.1);--shadow-h:0 0 0 1px rgba(60,50,30,.16),0 8px 24px -16px rgba(60,50,30,.25);--pop:0 0 0 1px rgba(60,50,30,.1),0 12px 32px -12px rgba(60,50,30,.3);
  --glass:#faf9f5;--glass-side:#efebe3;--glass-line:transparent;--glass-edge:rgba(60,50,30,.11);--glass-edge-h:rgba(60,50,30,.18);--glass-hl:transparent;--glass-shadow:0 1px 2px rgba(60,50,30,.03);--glass-shadow-h:0 6px 20px -14px rgba(60,50,30,.25);
  --blob1:transparent;--blob2:transparent;--blob3:transparent;--blob4:transparent;
}
html[data-skin="claude"][data-theme="dark"]{
  --bg:#262624;--side:#1f1f1d;--paper:#30302e;--card-bg:#30302e;
  --ink:#f0efea;--text:#f0efea;--text-2:#d8d6cf;--text-3:#a3a09a;--text-4:#73706b;
  --line:rgba(255,255,255,.09);--line-2:rgba(255,255,255,.16);--hover:rgba(255,255,255,.05);--hover-2:rgba(255,255,255,.09);
  --input:rgba(255,255,255,.05);--tag-bg:rgba(255,255,255,.08);--sel:rgba(217,119,87,.3);--cal-bg:#3a3937;--code-bg:#1f1f1d;
  --blue:#d97757;--ac:217,119,87;--liq:rgba(255,255,255,.08);
  --shadow:0 0 0 1px rgba(255,255,255,.07);--shadow-h:0 0 0 1px rgba(255,255,255,.12),0 10px 30px -20px rgba(0,0,0,.6);--pop:0 0 0 1px rgba(255,255,255,.1),0 12px 36px -12px rgba(0,0,0,.6);
  --glass:#30302e;--glass-side:#1f1f1d;--glass-edge:rgba(255,255,255,.08);--glass-edge-h:rgba(255,255,255,.14);--glass-shadow:0 0 0 0 transparent;--glass-shadow-h:0 10px 30px -20px rgba(0,0,0,.6);
}
html[data-skin="claude"] .card,html[data-skin="claude"] .side,html[data-skin="claude"] .topbar,html[data-skin="claude"] .pop,html[data-skin="claude"] .popmenu,html[data-skin="claude"] .modal,html[data-skin="claude"] .cap{-webkit-backdrop-filter:none;backdrop-filter:none}
html[data-skin="claude"] .card::after{display:none}
html[data-skin="claude"] .topbar{--tb-bg:var(--bg)}
html[data-skin="claude"] .side{background:var(--side)}
html[data-skin="claude"] .pop,html[data-skin="claude"] .popmenu,html[data-skin="claude"] .modal,html[data-skin="claude"] .cap{background:var(--paper)}
html[data-skin="claude"] .page-h h1,html[data-skin="claude"] .hero .greet h1,html[data-skin="claude"] input.page-title,html[data-skin="claude"] .card-h h3,html[data-skin="claude"] .beditor .b-h1,html[data-skin="claude"] .beditor .b-h2,html[data-skin="claude"] .beditor .b-h3{font-family:var(--serif);font-weight:600;letter-spacing:0}
html[data-skin="claude"] .tag{box-shadow:none}
html[data-skin="claude"] .btn.primary{background:var(--blue);border-radius:10px}
.skin-pick{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.skin-opt{display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:12px;border:1.5px solid var(--line);background:var(--paper);cursor:pointer;text-align:left;color:var(--text-2);font-size:.8rem}
.skin-opt.on{border-color:var(--blue);box-shadow:0 0 0 3px rgba(var(--ac),.15)}
.skin-prev{height:52px;border-radius:8px;position:relative;overflow:hidden;border:1px solid rgba(0,0,0,.06)}
.skin-prev i{position:absolute;border-radius:5px}
.skin-opt small{color:var(--text-4);font-size:.7rem}

/* 3D clock-face dial */
.dial3{position:relative;touch-action:none;user-select:none;transition:transform .5s cubic-bezier(.2,.9,.3,1.2);transform:perspective(600px);will-change:transform;--d-rim1:#ffffff;--d-rim2:#d9deea;--d-face1:#ffffff;--d-face2:#eef1f7}
html[data-theme="dark"] .dial3{--d-rim1:#3a3f4b;--d-rim2:#1a1d25;--d-face1:#2c3039;--d-face2:#1c1f27}
.dial3.idle{cursor:grab}.dial3.turning{cursor:grabbing;transition:none}
.dial3 svg{width:100%;height:100%;overflow:visible;display:block}
.d3-shadow{fill:rgba(20,24,60,.18);filter:blur(14px);transform:translateY(14px) scale(.92);transform-origin:center}
html[data-theme="dark"] .d3-shadow{fill:rgba(0,0,0,.55)}
.d3-rim{stroke:rgba(255,255,255,.7);stroke-width:1}html[data-theme="dark"] .d3-rim{stroke:rgba(255,255,255,.08)}
.d3-groove{fill:rgba(20,24,60,.08)}html[data-theme="dark"] .d3-groove{fill:rgba(0,0,0,.45)}
.d3-face{stroke:rgba(255,255,255,.9);stroke-width:1.5}html[data-theme="dark"] .d3-face{stroke:rgba(255,255,255,.06)}
.d3-pie{transition:transform .9s linear}.dial3.turning .d3-pie{transition:none}
.d3-pie-c{opacity:.6;transition:stroke-dasharray .9s linear}.dial3.idle .d3-pie-c{transition:stroke-dasharray .25s cubic-bezier(.2,.9,.3,1.2)}.dial3.turning .d3-pie-c{transition:none}
.focus-w.break .d3-pie-c{--pg1:#5cc083;--pg2:#2d8f88}
.d3-tick{stroke:var(--text-4);stroke-width:1.2;opacity:.5;stroke-linecap:round}.d3-tick.big{stroke-width:2.4;opacity:.8;stroke:var(--text-3)}
.d3-num{font-size:12px;font-weight:600;fill:var(--text-3);text-anchor:middle;font-variant-numeric:tabular-nums}
.d3-gloss{pointer-events:none;mix-blend-mode:soft-light}html[data-theme="dark"] .d3-gloss{opacity:.25}
.d3-hand{transition:transform .9s linear}.dial3.turning .d3-hand{transition:none}
.d3-hand-sh{fill:rgba(20,24,60,.3);transform:translate(3px,7px)}html[data-theme="dark"] .d3-hand-sh{fill:rgba(0,0,0,.7)}
.d3-hand-p{fill:#fff;stroke:rgba(20,24,60,.25);stroke-width:1}html[data-theme="dark"] .d3-hand-p{fill:#e8eaf2;stroke:rgba(0,0,0,.4)}
.d3-hand-core{fill:var(--pg2)}
.d3-hub{fill:#fff;stroke:rgba(20,24,60,.15);stroke-width:1;filter:drop-shadow(0 2px 4px rgba(20,24,60,.25))}html[data-theme="dark"] .d3-hub{fill:#2a2e38;stroke:rgba(255,255,255,.1)}
.d3-hub-in{fill:var(--pg2)}
.d3-bubble{position:absolute;left:50%;top:-10px;transform:translate(-50%,-100%);padding:5px 12px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:.78rem;font-weight:600;white-space:nowrap;animation:pop .12s;pointer-events:none}
@media(prefers-reduced-motion:reduce){.dial3{transition:none}.d3-pie,.d3-hand,.d3-pie-c{transition:none}}

.pomo-t{position:static;inset:auto;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;margin-bottom:8px}
.focus-w .pomo-sub{max-width:200px}
.pomo-span{display:inline;color:var(--text-4);font-size:inherit;font-variant-numeric:tabular-nums}.pomo-span i{font-style:normal;margin:0 6px;opacity:.6}
.focus-w .pomo-t .pomo-time{font-size:1.9rem;letter-spacing:-.03em;line-height:1.1}

/* empty states fill their card and sit in the middle */
.widget>.card>.empty{flex:1;justify-content:center;min-height:160px}
/* focus: goal + plan */
.goal-row{display:flex;align-items:center;gap:10px;margin:2px 0 4px}
.goal-lbl{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 8px;border-radius:7px;font-size:.78rem;color:var(--text-2)}.goal-lbl small{color:var(--text-4)}.goal-lbl b{font-size:.86rem}.goal-lbl .ic{color:var(--text-4);opacity:0}.goal-lbl:hover{background:var(--hover)}.goal-lbl:hover .ic{opacity:1}
.goal-pct{font-size:.74rem;color:var(--text-4);font-variant-numeric:tabular-nums;min-width:34px;text-align:right}.goal-pct.done{color:var(--green);font-weight:600}
.fp-i{display:flex;align-items:center;gap:8px;min-height:34px;padding:2px 4px 2px 6px;border-radius:9px;font-size:.84rem}
.fp-i:hover{background:var(--hover)}.fp-i.live{background:rgba(var(--ac),.08)}
.fp-i .cb{flex-shrink:0;width:16px;height:16px;border-radius:4px;border:1.5px solid var(--text-4);display:grid;place-items:center;color:transparent;transition:all .12s}.fp-i .cb:hover{border-color:var(--blue)}.fp-i.done .cb{background:var(--blue);border-color:var(--blue);color:var(--on-ac,#fff)}
.fp-t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fp-i.done .fp-t{color:var(--text-4);text-decoration:line-through}
.fp-len{height:24px;padding:0 8px;border-radius:999px;background:var(--hover);font-size:.74rem;color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap}.fp-len i{font-style:normal;font-size:.66rem;margin-left:1px}.fp-len:hover{background:var(--hover-2);color:var(--text)}
.fp-go{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:var(--on-ac,#fff);background:var(--blue);flex-shrink:0;opacity:.9}.fp-go:hover{opacity:1}.fp-go:disabled{opacity:.3;cursor:default}
.fp-spent{display:block;font-size:.7rem;color:var(--text-4);margin-top:1px}
/* planner: week strip */
.dnav{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;width:100%}
.dnav-l{display:flex;align-items:baseline;gap:8px;min-width:200px}.dnav-l b{font-size:1.05rem;font-weight:700}.dnav-l .is-today{color:var(--blue);font-weight:600}
.dstrip{display:flex;align-items:center;gap:4px;margin:0 auto}
.dchip{display:flex;flex-direction:column;align-items:center;justify-content:center;width:44px;height:48px;border-radius:12px;color:var(--text-3);gap:1px;transition:background .15s,color .15s}
.dchip small{font-size:.66rem;line-height:1}.dchip b{font-size:.95rem;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}
.dchip:hover{background:var(--hover)}.dchip.today{color:var(--blue)}.dchip.today b{position:relative}.dchip.today b::after{content:'';position:absolute;left:50%;bottom:-5px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:currentColor}
.dchip.on{background:var(--blue);color:var(--on-ac,#fff);box-shadow:0 6px 14px -8px rgba(var(--ac),.8)}.dchip.on.today b::after{background:var(--on-ac,#fff)}
.dnav-r{display:flex;align-items:center;gap:6px;justify-self:end;flex-wrap:nowrap;justify-content:flex-end}.dnav-r .btn.sm{height:32px;padding:0 12px;font-size:.8rem}.dnav-r .pick-btn{height:32px;font-size:.82rem;border-radius:var(--r2)}
@media(max-width:720px){.dnav{grid-template-columns:1fr 1fr}.dnav-l{min-width:0}.dstrip{grid-column:1/-1;width:100%;justify-content:space-between}.dchip{width:38px;height:44px}.dnav-r{justify-self:end}}

/* ---------- 此刻: Apple-Weather-like card ---------- */
.now-w{position:relative;overflow:hidden;color:#fff;--wtx:#fff;--wmute:rgba(255,255,255,.78);--wglass:rgba(255,255,255,.16);--wline:rgba(255,255,255,.25);text-shadow:0 1px 2px rgba(0,0,0,.12)}
.now-w.no-sky{color:var(--text);--wtx:var(--text);--wmute:var(--text-3);--wglass:var(--hover);--wline:var(--line);text-shadow:none}
.now-w::after{display:none}
.now-in{position:relative;z-index:1;padding:18px 20px 16px;display:flex;flex-direction:column;height:100%;min-height:100%}
.now-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.now-clock{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 6px;font-variant-numeric:tabular-nums;letter-spacing:-.03em;line-height:1}
.now-clock b{font-size:3.4rem;font-weight:600;letter-spacing:-.04em}.now-clock small{font-size:1.05rem;color:var(--wmute);font-weight:500}
.now-date{flex-basis:100%;margin-top:4px;font-size:.82rem;color:var(--wmute);letter-spacing:0}
.now-loc{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;color:var(--wtx);padding:5px 10px 5px 8px;border-radius:999px;background:var(--wglass);max-width:60%;flex-shrink:0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.now-loc:hover{filter:brightness(1.1)}.now-loc span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now-loc small{color:var(--wmute);white-space:nowrap}
.now-big{display:flex;align-items:flex-end;gap:10px;margin-top:auto;padding-top:16px}
.nb-temp{font-size:2.6rem;font-weight:400;line-height:.9;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.nb-temp i{font-style:normal;font-size:1.4rem;font-weight:300;vertical-align:top;margin-left:1px;color:var(--wmute)}
.nb-side{display:flex;flex-direction:column;gap:2px;padding-bottom:2px;min-width:0}.nb-cond{font-size:.95rem;font-weight:600}.nb-hl{font-size:.76rem;color:var(--wmute)}
.now-feel{display:flex;gap:14px;margin-top:10px;font-size:.78rem;color:var(--wmute)}.now-feel b{color:var(--wtx);font-weight:600}
.now-days{display:flex;flex-direction:column;gap:2px;margin-top:14px;padding:8px 12px;border-radius:14px;background:var(--wglass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.now-days>div{display:grid;grid-template-columns:38px 20px 30px 1fr 30px;align-items:center;gap:8px;font-size:.78rem;min-height:28px}
.now-days>div+div{border-top:1px solid var(--wline)}
.now-days span{color:var(--wtx);font-weight:500}.now-days .ic{color:var(--wtx)}.now-days small{font-size:.76rem;color:var(--wmute);text-align:right;font-variant-numeric:tabular-nums}.now-days small:last-child{color:var(--wtx);font-weight:600}
.nd-bar{position:relative;height:4px;border-radius:2px;background:rgba(0,0,0,.18)}.nd-bar b{position:absolute;top:0;bottom:0;border-radius:2px;background:linear-gradient(90deg,#5ac8fa,#ffcc00)}
.now-w.no-sky .nd-bar{background:var(--hover-2)}
.now-msg{margin-top:12px;font-size:.78rem;color:var(--wmute);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.now-msg .btn{height:26px;color:var(--wtx);background:var(--wglass)}
.now-search input{flex:1;min-width:0;height:32px;font-size:.82rem;color:var(--text);text-shadow:none}
.now-search .popmenu{color:var(--text);text-shadow:none}
/* full-bleed sky */
.sky{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;border-radius:inherit}
.sky .horizon{position:absolute;left:-20%;right:-20%;bottom:-30%;height:70%;border-radius:50%;filter:blur(30px);opacity:.9}
.sky-sunny .sky{background:linear-gradient(180deg,#2f7fe8 0%,#5aa8f5 45%,#a9d4fb 100%)}.sky-sunny .sky .horizon{background:rgba(255,255,255,.55)}
.sky-sunny.tod-dawn .sky,.sky-partly.tod-dawn .sky{background:linear-gradient(180deg,#4a63b8 0%,#b07aa8 45%,#f6b48a 100%)}.tod-dawn .sky .horizon{background:rgba(255,205,150,.7)}
.sky-sunny.tod-dusk .sky,.sky-partly.tod-dusk .sky{background:linear-gradient(180deg,#273a7c 0%,#9a5b7a 50%,#f0905e 100%)}.tod-dusk .sky .horizon{background:rgba(255,170,100,.7)}
.sky-partly .sky{background:linear-gradient(180deg,#3a86df 0%,#7cb6f0 50%,#c5def6 100%)}.sky-partly .sky .horizon{background:rgba(255,255,255,.5)}
.sky-cloudy .sky{background:linear-gradient(180deg,#5f7390 0%,#8b9db4 55%,#b9c5d3 100%)}.sky-cloudy .sky .horizon{background:rgba(255,255,255,.3)}
.sky-rain .sky,.sky-storm .sky{background:linear-gradient(180deg,#2d3a50 0%,#4d5e7a 55%,#6f8097 100%)}.sky-rain .sky .horizon,.sky-storm .sky .horizon{background:rgba(180,195,215,.25)}
.sky-snow .sky{background:linear-gradient(180deg,#6f86a4 0%,#9fb1c7 55%,#cfdae6 100%)}.sky-snow .sky .horizon{background:rgba(255,255,255,.45)}
.sky-fog .sky{background:linear-gradient(180deg,#7f8a9a 0%,#a3adbb 55%,#c4cbd5 100%)}.sky-fog .sky .horizon{background:rgba(255,255,255,.35)}
.sky-night .sky,.sky-night-cloud .sky{background:linear-gradient(180deg,#070b1e 0%,#0f1a40 45%,#243a6e 100%)}.sky-night .sky .horizon,.sky-night-cloud .sky .horizon{background:rgba(90,120,200,.35)}
/* sun */
.sky .sun{position:absolute;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;background:radial-gradient(circle at 42% 40%,#fffbe6 0%,#ffe77a 45%,#ffc53d 100%);box-shadow:0 0 18px 4px rgba(255,236,160,.9),0 0 60px 20px rgba(255,205,90,.45),0 0 140px 60px rgba(255,190,70,.2)}
.sky .sun b{position:absolute;inset:-70px;border-radius:50%;background:radial-gradient(circle,rgba(255,240,200,.35) 0%,rgba(255,220,140,.12) 35%,transparent 65%);animation:sunpulse 7s ease-in-out infinite}
.sky-partly .sky .sun{width:56px;height:56px;margin:-28px 0 0 -28px}
@keyframes sunpulse{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.12);opacity:1}}
/* moon + stars */
.sky .moon{position:absolute;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:radial-gradient(circle at 34% 30%,#fffdf4 0%,#f6f1dc 42%,#ddd6bb 72%,#b9b399 100%);box-shadow:0 0 0 1px rgba(255,252,235,.15),0 0 26px 8px rgba(255,250,225,.22),0 0 90px 40px rgba(190,205,255,.12)}
.sky .moon::before{content:'';position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 62% 58%,rgba(150,145,120,.22) 0 5px,transparent 6px),radial-gradient(circle at 30% 66%,rgba(150,145,120,.18) 0 3px,transparent 4px),radial-gradient(circle at 58% 26%,rgba(150,145,120,.16) 0 2.5px,transparent 3.5px),radial-gradient(circle at 76% 36%,rgba(150,145,120,.14) 0 2px,transparent 3px)}
.sky .moon::after{content:'';position:absolute;inset:-14px;border-radius:50%;background:radial-gradient(circle,rgba(255,250,230,.18) 0%,rgba(255,250,230,.06) 45%,transparent 70%);animation:sunpulse 9s ease-in-out infinite}
.sky .star{position:absolute;border-radius:50%;background:#fff;animation:twinkle ease-in-out infinite}
.sky .star.s0{width:1.5px;height:1.5px;opacity:.6}.sky .star.s1{width:2px;height:2px;opacity:.8;box-shadow:0 0 4px 1px rgba(255,255,255,.6)}.sky .star.s2{width:3px;height:3px;opacity:.95;box-shadow:0 0 6px 2px rgba(200,220,255,.8)}
@keyframes twinkle{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.25)}}
/* clouds: soft shaded cumulus */
.sky .cloud{position:absolute;left:-45%;width:120px;height:34px;border-radius:60px;background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(230,236,245,.85));box-shadow:0 14px 30px -12px rgba(30,50,90,.35);filter:blur(.6px);animation:drift linear infinite}
.sky .cloud::before,.sky .cloud::after{content:'';position:absolute;border-radius:50%;background:radial-gradient(circle at 40% 30%,#fff 0%,rgba(230,236,245,.9) 70%)}
.sky .cloud::before{width:54px;height:54px;left:18px;top:-28px}.sky .cloud::after{width:40px;height:40px;left:64px;top:-17px}
.sky .cloud.c0{transform:scale(.8)}.sky .cloud.c1{transform:scale(1.05)}.sky .cloud.c2{transform:scale(.6)}
.sky-cloudy .sky .cloud,.sky-rain .sky .cloud,.sky-storm .sky .cloud,.sky-snow .sky .cloud{background:linear-gradient(180deg,rgba(225,232,242,.95),rgba(170,185,205,.9))}
.sky-cloudy .sky .cloud::before,.sky-cloudy .sky .cloud::after,.sky-rain .sky .cloud::before,.sky-rain .sky .cloud::after,.sky-storm .sky .cloud::before,.sky-storm .sky .cloud::after,.sky-snow .sky .cloud::before,.sky-snow .sky .cloud::after{background:radial-gradient(circle at 40% 30%,#f2f5fa 0%,rgba(185,198,215,.95) 75%)}
.sky .cloud.dark{background:linear-gradient(180deg,rgba(120,135,175,.55),rgba(60,75,115,.5));box-shadow:none;filter:blur(1.5px)}.sky .cloud.dark::before,.sky .cloud.dark::after{background:radial-gradient(circle at 40% 30%,rgba(140,155,195,.6),rgba(70,85,125,.5) 75%)}
@keyframes drift{from{left:-45%}to{left:115%}}
/* rain: slanted streaks */
.sky .drop{position:absolute;top:-14%;width:1.5px;border-radius:2px;background:linear-gradient(180deg,transparent,rgba(235,244,255,1));transform:rotate(12deg);animation:raindrop linear infinite}
@keyframes raindrop{from{top:-14%}to{top:112%}}
.sky .flash{position:absolute;inset:0;background:radial-gradient(60% 50% at 30% 10%,rgba(255,255,255,.95),rgba(255,255,255,.2) 60%,transparent);opacity:0;animation:flash 8s linear infinite}
@keyframes flash{0%,84%,100%{opacity:0}85%{opacity:.9}86%{opacity:.1}88%{opacity:.6}89.5%{opacity:0}}
/* snow */
.sky .flake{position:absolute;top:-6%;border-radius:50%;background:rgba(255,255,255,.95);box-shadow:0 0 3px rgba(255,255,255,.7);animation:snowfall linear infinite}
@keyframes snowfall{0%{top:-6%;margin-left:0}33%{margin-left:9px}66%{margin-left:-7px}100%{top:110%;margin-left:3px}}
/* fog */
.sky .fog{position:absolute;left:-20%;width:140%;height:36%;border-radius:50%;background:rgba(255,255,255,.4);filter:blur(16px);animation:fogdrift 18s ease-in-out infinite alternate}
.sky .fog.f1{top:2%}.sky .fog.f2{top:34%;animation-duration:24s;animation-delay:-8s}.sky .fog.f3{top:66%;animation-duration:30s;animation-delay:-15s}
@keyframes fogdrift{from{transform:translateX(-6%)}to{transform:translateX(6%)}}
@media(prefers-reduced-motion:reduce){.sky *{animation:none!important}}

.d3-sec{animation:sweep 60s linear infinite}.d3-sec.paused{animation-play-state:paused}
.d3-sec-l{stroke:var(--red);stroke-width:1.4;stroke-linecap:round}.d3-sec-t{fill:var(--red)}
.dial3.idle .d3-sec{opacity:.55}
@keyframes sweep{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.fw-lens{display:inline-flex;align-items:center;gap:3px;font-size:.76rem;color:var(--text-3);padding:2px 6px;border-radius:6px}.fw-lens:hover{background:var(--hover);color:var(--text)}

/* wiki link hover preview */
.wiki-peek{width:280px;padding:10px 12px;z-index:60;cursor:default}
.wiki-peek .wp-t{display:flex;align-items:center;gap:6px;text-decoration:none;color:var(--text);font-size:.86rem}.wiki-peek .wp-t b{font-weight:600}.wiki-peek a.wp-t:hover b{color:var(--blue)}
.wiki-peek p{font-size:.76rem;color:var(--text-3);margin-top:5px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.wiki-peek small{display:block;margin-top:6px;font-size:.68rem;color:var(--text-4)}
.kind-add{display:inline-flex;align-items:center;padding:3px 8px;border-radius:var(--r3);font-size:.74rem;border:1px dashed var(--line-2);color:var(--text-4)}.kind-add:hover{color:var(--text);border-color:var(--text-4)}

/* cards / canvas as standalone pages */
.nb-layout.standalone .page>.crumbs,.nb-layout.standalone .cv-tb{padding-left:18px}
.nb-layout.standalone .m-back{display:none}
.cv-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.cv-card.new{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:176px;border:1.5px dashed var(--line-2);background:transparent;box-shadow:none;color:var(--text-4);font-size:.86rem}.cv-card.new:hover{color:var(--text);border-color:var(--text-4);box-shadow:none}
.sess{position:relative}.sess .sess-n{display:flex;flex-direction:column;gap:1px}.sess-note{font-size:.72rem;color:var(--text-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sess .sess-acts{opacity:0;margin-left:2px}.sess:hover .sess-acts{opacity:1}.sess .sess-acts .ibtn{width:24px;height:24px}
.d3-hour{transition:transform .9s linear}.d3-hour-p{fill:var(--text-2);opacity:.85}html[data-theme="dark"] .d3-hour-p{fill:#d8dbe6}
/* canvas: snapping guides */
.cv-guide{position:absolute;background:var(--rose);opacity:.8;pointer-events:none}.cv-guide.v{width:1px;top:-100000px;bottom:-100000px}.cv-guide.h{height:1px;left:-100000px;right:-100000px}
.nb-layout.standalone .page-body{max-width:none;padding:12px 18px 40px}
.cv-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;align-items:stretch}
.cv-card{display:flex;flex-direction:column}
.cv-card.new{min-height:0;height:100%}
/* empty states: centered in whatever holds them */
.empty{justify-content:center}
.notes-main>.page{display:flex;flex-direction:column;min-height:calc(100vh - 76px)}
.notes-main>.page>.empty,.notes-main>.page>.page-body:has(>.empty){flex:1}
.notes-main>.page>.page-body:has(>.empty){display:flex;flex-direction:column}
.page-body>.empty{flex:1;justify-content:center}
.card>.empty,.card.pad>.empty{min-height:220px}
.widget>.card>.empty{min-height:160px}
.tlist:empty+.empty{min-height:160px}
body.focus-mode .notes-main>.page{min-height:100vh}
@media(max-width:720px){.notes-main>.page{min-height:60vh}}
.card:has(>.empty){display:flex;flex-direction:column}.card>.empty{flex:1}
.card:has(>.empty)>.card-h{flex:none}

/* one style for every "go there" link: text + chevron */
.more{display:inline-flex;align-items:center;gap:2px;font-size:.76rem;color:var(--text-3);text-decoration:none;padding:3px 4px 3px 8px;border-radius:7px;white-space:nowrap;text-transform:none;letter-spacing:0;font-weight:500}
.more:hover{color:var(--text);background:var(--hover)}.more .ic{opacity:.7}
.group-h .more{margin-left:auto}.card-h .more{margin-top:2px}

/* week timeline */
.wtl-card{overflow:hidden}
.wtl-head{display:grid;grid-template-columns:48px repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line);padding:8px 8px 6px 0}
.wtl-day{display:flex;flex-direction:column;align-items:center;gap:1px;text-decoration:none;color:var(--text-3);padding:4px 0;border-radius:10px;min-width:0}
.wtl-day small{font-size:.66rem}.wtl-day b{font-size:1rem;font-weight:600;color:var(--text);line-height:1.1}.wtl-day i{font-style:normal;font-size:.62rem;color:var(--text-4);min-height:12px}
.wtl-day:hover{background:var(--hover)}.wtl-day.today b{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--blue);color:var(--on-ac,#fff)}
.wtl-scroll{max-height:calc(100vh - 290px);min-height:420px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}.wtl-scroll::-webkit-scrollbar{display:none}
.wtl{display:grid;grid-template-columns:48px repeat(7,minmax(0,1fr));padding:8px 8px 20px 0;position:relative}
.wtl-gut{position:relative;height:calc(var(--h) * 24)}
.wtl .wtl-gut span{position:absolute;right:8px;margin-top:-7px;font-size:.64rem;color:var(--text-4);font-variant-numeric:tabular-nums}
.wtl-col{border-left:1px solid var(--line);min-width:0}
.wtl-col.today{background:rgba(var(--ac),.035)}
.wtl .tl{padding-left:0}
.wtl .tl .hour span{display:none}
.wtl .tl .blk{left:2px;right:2px;padding:3px 5px;font-size:.66rem;border-radius:7px;min-height:16px}
.wtl .tl .blk small{display:none}.wtl .tl .blk b{font-weight:500;white-space:normal;line-height:1.25;max-height:2.5em;overflow:hidden}
.wtl .tl .now{left:0}.wtl .tl .now::before{left:-3px}
@media(max-width:720px){.wtl-head,.wtl{grid-template-columns:40px repeat(7,minmax(0,1fr))}.wtl-day small{font-size:.6rem}.wtl-day b{font-size:.85rem}.wtl-day i{display:none}.wtl .tl .blk{padding:2px 3px;font-size:.58rem}.wtl-scroll{max-height:60vh}}

/* ---------- skin: Steam (dark slate, blue-green accent) ---------- */
html[data-skin="steam"],html[data-skin="steam"][data-theme="light"],html[data-skin="steam"][data-theme="dark"]{
  --font:"Motiva Sans","Segoe UI",Arial,"PingFang SC","Hiragino Sans GB","Noto Sans SC","Microsoft YaHei",sans-serif;
  --r:4px;--r2:3px;--r3:2px;--blur:0px;
  --bg:#1b2838;--side:#171d25;--paper:#2a475e;--card-bg:#2a475e;
  --ink:#ffffff;--text:#e9eef2;--text-2:#c6d4df;--text-3:#8f98a0;--text-4:#67707b;
  --line:rgba(255,255,255,.07);--line-2:rgba(255,255,255,.14);--hover:rgba(255,255,255,.06);--hover-2:rgba(255,255,255,.11);
  --input:#1f2f41;--tag-bg:rgba(255,255,255,.1);--sel:rgba(102,192,244,.3);--cal-bg:#1f2f41;--code-bg:#16202d;
  --blue:#66c0f4;--ac:102,192,244;--liq:rgba(255,255,255,.08);
  --red:#e76f6f;--amber:#f0b45a;--green:#5bb45f;--teal:#4fc3b0;--violet:#a78bfa;--rose:#f27aa6;--orange:#f59a5a;
  --shadow:0 0 0 1px rgba(0,0,0,.35);--shadow-h:0 0 0 1px rgba(102,192,244,.35);--pop:0 0 0 1px rgba(0,0,0,.5),0 10px 28px rgba(0,0,0,.6);
  --glass:linear-gradient(180deg,#2a475e,#1e3448);--glass-side:#171d25;--glass-line:transparent;--glass-edge:rgba(0,0,0,.35);--glass-edge-h:rgba(102,192,244,.35);--glass-hl:rgba(255,255,255,.06);--glass-shadow:0 2px 8px rgba(0,0,0,.35);--glass-shadow-h:0 4px 14px rgba(0,0,0,.45);
  --mist-top:#1b2838;--mist-mid:#1b2838;--mist-bot:#1b2838;--blob1:transparent;--blob2:transparent;--blob3:transparent;--blob4:transparent;
}
html[data-skin="steam"] body::before{background:linear-gradient(180deg,#1b2838 0%,#1b2838 100%),radial-gradient(60% 40% at 50% -10%,rgba(102,192,244,.14),transparent)}
html[data-skin="steam"] .card,html[data-skin="steam"] .side,html[data-skin="steam"] .topbar,html[data-skin="steam"] .pop,html[data-skin="steam"] .popmenu,html[data-skin="steam"] .modal,html[data-skin="steam"] .cap{-webkit-backdrop-filter:none;backdrop-filter:none}
html[data-skin="steam"] .card::after{display:none}
html[data-skin="steam"] .topbar{--tb-bg:#171d25}
html[data-skin="steam"] .side{background:#171d25;border-right:1px solid #000}
html[data-skin="steam"] .pop,html[data-skin="steam"] .popmenu,html[data-skin="steam"] .modal,html[data-skin="steam"] .cap{background:#1f2f41}
html[data-skin="steam"] .btn{background:linear-gradient(90deg,#3d4450,#2e3540);border:0;color:#d2e1ef;border-radius:2px}
html[data-skin="steam"] .btn:hover{background:linear-gradient(90deg,#4b5563,#3a4250);color:#fff}
html[data-skin="steam"] .btn.primary,html[data-skin="steam"] .fw-go,html[data-skin="steam"] .fp-go,html[data-skin="steam"] .cap-btn{background:linear-gradient(90deg,#75b022 5%,#588a1b 95%);color:#d2efa9;box-shadow:none;border-radius:2px;text-shadow:0 1px 1px rgba(0,0,0,.3)}
html[data-skin="steam"] .btn.primary:hover,html[data-skin="steam"] .fw-go:hover,html[data-skin="steam"] .cap-btn:hover{background:linear-gradient(90deg,#8ed629 5%,#6fb022 95%);color:#fff;filter:none}
html[data-skin="steam"] .nav>a.active{background:linear-gradient(90deg,rgba(102,192,244,.22),transparent);color:#fff;border-left:2px solid #66c0f4;border-radius:0 3px 3px 0}
html[data-skin="steam"] .nav>.liq{display:none}
html[data-skin="steam"] .seg{background:#1f2f41;border-radius:3px}html[data-skin="steam"] .seg button.on{color:#fff}html[data-skin="steam"] .seg>.liq{background:#3d6a8a;border-radius:2px}
html[data-skin="steam"] .card-h h3{text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;color:#c6d4df}
html[data-skin="steam"] input[type=text],html[data-skin="steam"] input[type=url],html[data-skin="steam"] input[type=number],html[data-skin="steam"] input[type=password],html[data-skin="steam"] textarea,html[data-skin="steam"] .searchin,html[data-skin="steam"] .quickadd{background:#1f2f41;border-color:#000;color:#fff;border-radius:3px}
html[data-skin="steam"] .tag{border-radius:2px}
html[data-skin="steam"] .nb-dot,html[data-skin="steam"] .dchip.on{box-shadow:none}
html[data-skin="steam"] .dchip.on{background:#66c0f4;color:#1b2838;border-radius:3px}
html[data-skin="steam"] .side-user{border-top:1px solid #000}
html[data-skin="steam"] .now-w.no-sky{color:var(--text)}

/* ---------- skin: Windows XP (Luna) ---------- */
html[data-skin="xp"],html[data-skin="xp"][data-theme="light"],html[data-skin="xp"][data-theme="dark"]{
  --font:Tahoma,"Trebuchet MS",Verdana,"PingFang SC","Microsoft YaHei",sans-serif;
  --r:8px;--r2:4px;--r3:3px;--blur:0px;
  --bg:#5a9ee0;--side:#ece9d8;--paper:#ffffff;--card-bg:#ece9d8;
  --ink:#000000;--text:#000000;--text-2:#1a1a1a;--text-3:#4a4a4a;--text-4:#7f7f7f;
  --line:#aca899;--line-2:#7f9db9;--hover:rgba(49,106,197,.1);--hover-2:rgba(49,106,197,.18);
  --input:#ffffff;--tag-bg:#e3e1d4;--sel:#316ac5;--cal-bg:#ffffff;--code-bg:#ffffff;
  --blue:#0a5fd6;--ac:10,95,214;--liq:rgba(49,106,197,.12);
  --red:#c8302a;--amber:#d08a00;--green:#3c8a2e;--teal:#1f7d8c;--violet:#6b3fa0;--rose:#c4367a;--orange:#d9641c;
  --shadow:0 0 0 1px #0831d9,inset 0 0 0 2px #fff;--shadow-h:0 0 0 1px #0831d9,inset 0 0 0 2px #fff,0 6px 16px -8px rgba(0,30,90,.5);--pop:0 0 0 1px #0831d9,0 8px 24px rgba(0,20,80,.45);
  --glass:#ece9d8;--glass-side:#ece9d8;--glass-line:transparent;--glass-edge:transparent;--glass-edge-h:transparent;--glass-hl:transparent;--glass-shadow:0 0 0 1px #0831d9,inset 0 0 0 2px #fff,0 4px 14px -8px rgba(0,30,90,.45);--glass-shadow-h:0 0 0 1px #0831d9,inset 0 0 0 2px #fff,0 8px 20px -8px rgba(0,30,90,.5);
  --mist-top:#5a9ee0;--mist-mid:#5a9ee0;--mist-bot:#5a9ee0;--blob1:transparent;--blob2:transparent;--blob3:transparent;--blob4:transparent;
}
html[data-skin="xp"] body::before{background:radial-gradient(120% 70% at 50% 110%,#5aa83a 0%,#3f8f32 22%,transparent 46%),linear-gradient(180deg,#2a63c9 0%,#4c8fe0 35%,#8fc0f0 60%,#cfe5fb 78%,#8fc26a 100%)}
html[data-skin="xp"] *{transition:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;text-shadow:none!important}
html[data-skin="xp"] .card::after{display:none}
html[data-skin="xp"] .card{border-radius:8px 8px 4px 4px;overflow:hidden}
/* window title bar */
html[data-skin="xp"] .card>.card-h,html[data-skin="xp"] .card.pad>.card-h{margin:0 0 10px;padding:0 6px 0 12px;min-height:30px;align-items:center;background:linear-gradient(180deg,#0a5fd6 0%,#2f80f0 12%,#0f5fe0 45%,#0b4fc8 100%);color:#fff;border-radius:7px 7px 0 0;box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
html[data-skin="xp"] .card.pad{padding-top:0!important}
html[data-skin="xp"] .card.pad>.card-h{margin:0 -20px 12px -20px}
@media(max-width:520px){html[data-skin="xp"] .card.pad>.card-h{margin:0 -14px 12px -14px}}
html[data-skin="xp"] .card>.card-h>div{display:flex;align-items:baseline;gap:8px;min-width:0}html[data-skin="xp"] .card>.card-h .card-act{display:flex;align-items:center;gap:4px}
html[data-skin="xp"] .widget>.card{padding-top:0}
html[data-skin="xp"] .card-h h3{color:#fff;font-weight:700;font-size:.82rem;text-shadow:0 1px 1px rgba(0,0,0,.45)!important}
html[data-skin="xp"] .card-h .card-sub,html[data-skin="xp"] .card-h small,html[data-skin="xp"] .card-h .muted,html[data-skin="xp"] .card-h h3 .muted,html[data-skin="xp"] .card-h h3 span{color:#dce8ff!important}
html[data-skin="xp"] .card-h .more,html[data-skin="xp"] .card-h .ibtn,html[data-skin="xp"] .card-h .btn{height:20px;min-width:20px;padding:0 6px;border-radius:3px;color:#fff;background:linear-gradient(180deg,#3d8cf6,#1b5fd8);box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),0 0 0 1px #0a3fa8;font-size:.72rem}
html[data-skin="xp"] .card-h .more:hover,html[data-skin="xp"] .card-h .ibtn:hover{background:linear-gradient(180deg,#5aa0ff,#2a6fe6)}
/* chrome */
html[data-skin="xp"] .side{background:linear-gradient(180deg,#f2f0e4,#e6e3d2);border-right:1px solid #aca899}
html[data-skin="xp"] .topbar,html[data-skin="xp"] body.scrolled .topbar{--tb-bg:transparent;background:transparent;box-shadow:none;margin-bottom:14px}html[data-skin="xp"] .topbar::after{display:none}
html[data-skin="xp"] .topbar .ttl,html[data-skin="xp"] .topbar .ttl a,html[data-skin="xp"] .topbar .ttl b{color:#fff;text-shadow:0 1px 2px rgba(0,30,90,.6)!important}
html[data-skin="xp"] .topbar .searchbox{background:#fff;color:#4a4a4a;box-shadow:0 0 0 1px #7f9db9}
html[data-skin="xp"] .topbar .theme-glass{color:#fff}
html[data-skin="xp"] body.scrolled .topbar{background:#ece9d8;box-shadow:0 1px 0 #aca899}html[data-skin="xp"] body.scrolled .topbar .ttl,html[data-skin="xp"] body.scrolled .topbar .ttl a,html[data-skin="xp"] body.scrolled .topbar .ttl b,html[data-skin="xp"] body.scrolled .topbar .theme-glass{color:#000;text-shadow:none!important}
/* controls */
html[data-skin="xp"] .btn,html[data-skin="xp"] .ibtn,html[data-skin="xp"] .seg button,html[data-skin="xp"] .pick-btn,html[data-skin="xp"] .chip,html[data-skin="xp"] .pf-btn,html[data-skin="xp"] .dchip,html[data-skin="xp"] .gbtn{background:linear-gradient(180deg,#ffffff,#ecebe5 86%,#d8d5c8);color:#000;border:1px solid #003c74;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.8);font-weight:400}
html[data-skin="xp"] .btn:hover,html[data-skin="xp"] .ibtn:hover,html[data-skin="xp"] .seg button:hover,html[data-skin="xp"] .chip:hover{box-shadow:inset 0 0 0 1px rgba(255,255,255,.8),inset 0 0 0 2px #f8b330,inset 0 -2px 0 2px #e59700}
html[data-skin="xp"] .seg button.on,html[data-skin="xp"] .chip.on,html[data-skin="xp"] .dchip.on{background:linear-gradient(180deg,#d8d5c8,#e9e7dc);box-shadow:inset 1px 1px 2px rgba(0,0,0,.25);color:#000}
html[data-skin="xp"] .btn.primary,html[data-skin="xp"] .fw-go,html[data-skin="xp"] .fp-go,html[data-skin="xp"] .cap-btn{background:linear-gradient(180deg,#5fbf4a 0%,#3d9a2c 60%,#2f7f24 100%);color:#fff;border:1px solid #1f5a18;border-radius:3px;box-shadow:inset 0 1px 0 rgba(255,255,255,.5);text-shadow:0 1px 1px rgba(0,0,0,.35)!important}
html[data-skin="xp"] .btn.primary:hover,html[data-skin="xp"] .fw-go:hover,html[data-skin="xp"] .cap-btn:hover{background:linear-gradient(180deg,#72d05a,#49ab36 60%,#3a8f2c);filter:none}
html[data-skin="xp"] .seg{background:transparent;padding:0;gap:2px}html[data-skin="xp"] .seg>.liq,html[data-skin="xp"] .nav>.liq,html[data-skin="xp"] .liq{display:none}
html[data-skin="xp"] .nav>a.active,html[data-skin="xp"] .nb-i.active,html[data-skin="xp"] .li-i.active,html[data-skin="xp"] .pt-row.active{background:#316ac5;color:#fff;border-radius:3px}
html[data-skin="xp"] .nav>a.active .ic,html[data-skin="xp"] .nav>a.active .cnt{color:#fff}
html[data-skin="xp"] input[type=text],html[data-skin="xp"] input[type=url],html[data-skin="xp"] input[type=number],html[data-skin="xp"] input[type=password],html[data-skin="xp"] input[type=search],html[data-skin="xp"] textarea,html[data-skin="xp"] .searchin,html[data-skin="xp"] .quickadd,html[data-skin="xp"] .fw-start input,html[data-skin="xp"] .cap-in{background:#fff;border:1px solid #7f9db9;border-radius:0;box-shadow:none;color:#000}
html[data-skin="xp"] input.page-title,html[data-skin="xp"] .nb-rename,html[data-skin="xp"] .mtag-in,html[data-skin="xp"] .fp-add input{background:transparent;border:0}
html[data-skin="xp"] .pop,html[data-skin="xp"] .popmenu,html[data-skin="xp"] .cap,html[data-skin="xp"] .ctx{background:#fff;border-radius:3px;box-shadow:0 0 0 1px #7f9db9,2px 2px 6px rgba(0,0,0,.3)}
html[data-skin="xp"] .modal{background:#ece9d8;border-radius:8px 8px 4px 4px;box-shadow:0 0 0 1px #0831d9,inset 0 0 0 3px #0a5fd6,0 10px 30px rgba(0,20,80,.5);overflow:hidden}
html[data-skin="xp"] .modal-h{background:linear-gradient(180deg,#0a5fd6 0%,#2f80f0 12%,#0f5fe0 45%,#0b4fc8 100%);color:#fff;margin:0;padding:0 6px 0 12px;min-height:30px;align-items:center}html[data-skin="xp"] .modal-h h3{color:#fff;font-size:.86rem;font-weight:700;text-shadow:0 1px 1px rgba(0,0,0,.45)!important}
html[data-skin="xp"] .modal-h .ibtn{background:linear-gradient(180deg,#e8775b,#c93b22);border:1px solid #fff;color:#fff;width:21px;height:21px;box-shadow:0 0 0 1px #8a2412}
html[data-skin="xp"] .pm.on,html[data-skin="xp"] .pm:hover,html[data-skin="xp"] .time-i.sel,html[data-skin="xp"] .time-i:hover{background:#316ac5;color:#fff}
html[data-skin="xp"] .tag{border-radius:3px}
html[data-skin="xp"] .todo .cb,html[data-skin="xp"] .fp-i .cb,html[data-skin="xp"] .nt-row .cb,html[data-skin="xp"] .bcard .cb{background:#fff;border:1px solid #1c5180;border-radius:2px;color:transparent;box-shadow:inset 1px 1px 2px rgba(0,0,0,.15)}
html[data-skin="xp"] .todo.done .cb,html[data-skin="xp"] .fp-i.done .cb,html[data-skin="xp"] .nt-row.done .cb,html[data-skin="xp"] .bcard.done .cb{color:#21a121;background:#fff}
html[data-skin="xp"] .prog{background:#fff;border:1px solid #7f9db9;height:14px;border-radius:2px}html[data-skin="xp"] .prog i{background:repeating-linear-gradient(90deg,#2fd127 0 8px,transparent 8px 10px);border-radius:0}
html[data-skin="xp"] .now-w .sky{display:none}html[data-skin="xp"] .now-w{color:#000;--wtx:#000;--wmute:#4a4a4a;--wglass:#fff;--wline:#d8d5c8}
html[data-skin="xp"] .fw-hero{background:transparent}
html[data-skin="xp"] .w-tools{background:#ece9d8;box-shadow:0 0 0 1px #7f9db9}
html[data-skin="xp"] .bcol{background:#f6f5ef;box-shadow:0 0 0 1px #d8d5c8}
html[data-skin="xp"] .side-user{border-top:1px solid #aca899}
html[data-skin="xp"] ::selection{background:#316ac5;color:#fff}
.skin-pick{grid-template-columns:repeat(5,1fr)}
@media(max-width:720px){.skin-pick{grid-template-columns:repeat(2,1fr)}}

/* list view: priority = coloured checkbox + a small tinted label, no stripes */
.todo .meta .pri{display:inline-flex;align-items:center;height:16px;padding:0 6px;border-radius:999px;font-size:.66rem;font-weight:600;color:var(--pc);background:color-mix(in srgb,var(--pc) 12%,transparent)}

/* same priority checkbox everywhere */
.fp-i .cb{border:2px solid var(--pc,var(--text-4));background:color-mix(in srgb,var(--pc,var(--text-4)) 14%,transparent);border-radius:5px}
.fp-i.p3 .cb{border-color:var(--text-4);background:transparent}
.tlist .todo{padding:5px 4px}.tlist .todo .tt .ti{font-size:.84rem}

/* ---------- 汤圆：3D 海豹助手 ---------- */
.seal-fab{position:fixed;left:0;top:0;width:88px;height:88px;border:0;padding:0;background:none;cursor:grab;touch-action:none;z-index:140;border-radius:50%;-webkit-tap-highlight-color:transparent}
.seal-fab:focus-visible{outline:2px solid rgba(var(--ac),.7);outline-offset:4px}
.seal-fab.turning{cursor:grabbing}
.seal-fab canvas{position:absolute;left:50%;top:50%;width:150px;height:150px;margin:-82px 0 0 -75px;pointer-events:none;filter:drop-shadow(0 10px 14px rgba(20,30,50,.18))}
html[data-theme="dark"] .seal-fab canvas{filter:drop-shadow(0 10px 14px rgba(0,0,0,.5))}
.seal-fab.nogl canvas{display:none}.seal-fab.nogl::after{content:"🦭";position:absolute;inset:0;display:grid;place-items:center;font-size:40px}
.seal-badge{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--red);color:#fff;font:600 11px/18px var(--font);text-align:center;box-shadow:0 0 0 2px var(--bg)}
/* 面板：轻、透、无分割线（参考 assistant-ui 的 modal 布局） */
html[data-theme="dark"] .seal-panel{box-shadow:var(--pop),inset 0 1px 0 rgba(255,255,255,.08)}
.seal-panel.closed{opacity:0;transform:scale(.6);pointer-events:none}
/* 展开：居中大窗；小窗左上角可拖动调整尺寸 */
.seal-panel:hover .seal-h .ibtn.dim{opacity:.35}
.seal-hist{gap:2px}
.sh-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;cursor:pointer;min-width:0}.sh-row:hover{background:var(--hover)}.sh-row.cur{background:color-mix(in srgb,var(--blue) 10%,transparent)}
.sh-row .sh-t{flex:1;min-width:0;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sh-row small{flex:none;font-size:.68rem;color:var(--text-4)}
.sh-del{flex:none;opacity:0}.sh-row:hover .sh-del{opacity:.7}.sh-del:hover{opacity:1!important}
.seal-empty{padding:40px 0;text-align:center;color:var(--text-4);font-size:.8rem}
.sm.typing{display:flex;gap:4px;align-items:center;padding:8px 4px}.sm.typing i{width:5px;height:5px;border-radius:50%;background:var(--text-4);animation:seal-dot 1s infinite}.sm.typing i:nth-child(2){animation-delay:.15s}.sm.typing i:nth-child(3){animation-delay:.3s}
@keyframes seal-dot{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.cap-ai{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 10px;border-radius:999px;font-size:.78rem;font-weight:500;color:var(--text-2);background:var(--hover)}.cap-ai:hover:not(:disabled){color:var(--text);background:color-mix(in srgb,var(--blue) 14%,var(--hover))}.cap-ai:disabled{opacity:.45}
html[data-skin="notion"] .seal-panel,html[data-skin="claude"] .seal-panel,html[data-skin="steam"] .seal-panel,html[data-skin="xp"] .seal-panel{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--paper)}

 /* ---------- 阅读进度：一根滑杆 + 一个可点的数字 ---------- */
.pctl{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.pctl input[type=range]{flex:1;min-width:80px}
.pctl-v{flex:none;font-size:.76rem;color:var(--text-3);padding:2px 6px;border-radius:6px;font-variant-numeric:tabular-nums}.pctl-v:hover{background:var(--hover);color:var(--text)}
.pctl-in{width:64px;height:24px;padding:0 6px;font-size:.78rem;text-align:right;flex:none;-moz-appearance:textfield}.pctl-in::-webkit-outer-spin-button,.pctl-in::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.pace{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.pace-bars{display:flex;align-items:flex-end;gap:3px;height:24px}.pace-bars i{flex:1;max-width:14px;border-radius:2px;background:color-mix(in srgb,var(--blue) 55%,transparent);min-height:1px}.pace-bars i:last-child{background:var(--blue)}
.ctx-dot{display:inline-block;width:10px;height:10px;border-radius:50%}

.sel-tb.fixed{position:fixed;z-index:210}
.cv-text b,.cv-text strong{font-weight:600}.cv-text mark{background:#f7d774;color:inherit;border-radius:2px;padding:0 1px}.cv-text mark.hl-g{background:#8fd6a5}.cv-text mark.hl-b{background:#9cc0ff}.cv-text mark.hl-p{background:#d4b5ff}.cv-text mark.hl-r{background:#ffb3b8}
html[data-theme="dark"] .cv-text mark{color:#111}

/* ---------- hover 节奏：显示类过渡 180ms，带 60ms 延迟，不要一碰就跳 ---------- */
.todo .acts,.lk .acts,.pt-add,.aff li .acts,.sh-del,.mtag button,.tree-mini,.nav-tg,.b-gutter,.card-act .ibtn,.nt-row .acts,.fp-i .fp-go{transition:opacity .18s ease .06s,background .15s ease,color .15s ease}
.lk,.todo,.bcard,.sh-row,.pt-row,.pm,.nav a,.seg button,.btn,.ibtn,.tag.click,.ac-row{transition-duration:.16s;transition-timing-function:ease}
.side.mini .nav a[data-tip]:hover::after,.side.mini .side-user[data-tip]:hover::after{transition-delay:.35s}

.fw-chips .chip-in{-moz-appearance:textfield;color:var(--blue);font-weight:600}.fw-chips .chip-in::-webkit-outer-spin-button,.fw-chips .chip-in::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* ---------- 回看：到期页面顶部的一行 ---------- */
.rv-bar{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:9px 12px 9px 14px;border-radius:12px;background:color-mix(in srgb,var(--amber) 10%,var(--paper));color:var(--text-2);font-size:.82rem;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--amber) 30%,transparent)}
.rv-bar .ic,.rv-bar>svg{color:var(--amber);flex:none}
.rv-bar .btn.sm{height:28px}

.nt-row .nt-go{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;color:var(--text-4);opacity:0;transition:opacity .18s ease .06s;flex:none}.nt-row:hover .nt-go{opacity:1}.nt-row .nt-go:hover{background:var(--hover);color:var(--text)}
.nt-row.done .nt-t{color:var(--text-4);text-decoration:line-through}

.todo .steps{display:inline-flex;align-items:center;gap:3px;font-size:.68rem;padding:1px 7px;border-radius:999px;background:var(--hover);color:var(--text-3);text-decoration:none}.todo .steps.all{color:var(--green);background:color-mix(in srgb,var(--green) 12%,transparent)}.todo .steps:hover{background:var(--hover-2);color:var(--text)}
.beditor .dim,.cv-text .dim{color:var(--text-4);font-size:.85em}

.board .bi .q.end{display:inline;position:static;font-size:1.4em;line-height:0;margin-left:2px;vertical-align:-.2em;opacity:.5}
.todo .deferred{display:inline-flex;align-items:center;gap:2px;font-size:.68rem;padding:1px 7px;border-radius:999px;background:var(--hover);color:var(--text-4)}.todo .deferred.many{color:var(--amber);background:color-mix(in srgb,var(--amber) 12%,transparent)}
html[data-theme="dark"] .todo .defer{background:color-mix(in srgb,var(--amber) 22%,transparent)}html[data-theme="dark"] .todo .defer.late{background:color-mix(in srgb,var(--red) 22%,transparent)}

/* ---------- 云端同步（设置） ---------- */
.sync-head{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--hover);font-size:.84rem;color:var(--text-2);margin-bottom:12px}
.sync-head .dot{width:8px;height:8px;border-radius:50%;background:var(--text-4);flex:none}.sync-head.ok .dot{background:var(--green)}.sync-head.warn .dot{background:var(--amber)}.sync-head.err .dot{background:var(--red)}.sync-head.err{color:var(--red)}
.int-list{border:1px solid var(--line-2);border-radius:14px;overflow:hidden}
.int-row{display:flex;align-items:center;gap:12px;padding:12px 14px;min-height:56px}.int-row+.int-row,.int-sub+.int-row{border-top:1px solid var(--line)}
.int-row.off{opacity:.6}
.int-ic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--hover);flex:none}.int-ic.gh{background:#24292f;color:#fff}html[data-theme="dark"] .int-ic.gh{background:#f6f8fa;color:#24292f}
.int-b{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}.int-b b{font-size:.86rem;font-weight:600}.int-b small{font-size:.74rem;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.int-tag{font-size:.7rem;padding:3px 8px;border-radius:999px;background:var(--hover);color:var(--text-3);white-space:nowrap}.int-tag.on{background:color-mix(in srgb,var(--green) 14%,transparent);color:var(--green)}
.int-sub{padding:4px 14px 14px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--hover) 50%,transparent)}
.sync-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.sync-how{margin-top:14px;font-size:.8rem}.sync-how summary{cursor:pointer;color:var(--text-3);list-style:none;display:inline-flex;align-items:center;gap:6px}.sync-how summary::before{content:'';width:0;height:0;border:4px solid transparent;border-left:5px solid currentColor;transition:transform .15s}.sync-how[open] summary::before{transform:rotate(90deg)}.sync-how summary::-webkit-details-marker{display:none}
.sync-how ul{margin:10px 0 0;padding-left:18px;color:var(--text-3);line-height:1.7}.sync-how li b{color:var(--text-2);font-weight:500}
/* ---------- 登录按钮 ---------- */
.login-btns{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.lbtn{display:inline-flex;align-items:center;gap:12px;height:52px;padding:0 18px 0 14px;border-radius:14px;text-decoration:none;font-size:.84rem;transition:transform .16s ease,box-shadow .16s ease,opacity .16s}
.lbtn span{display:flex;flex-direction:column;line-height:1.2;text-align:left}.lbtn b{font-weight:600}.lbtn small{font-size:.7rem;opacity:.7;margin-top:2px}
.lbtn.gh{background:#24292f;color:#fff;box-shadow:0 8px 20px -10px rgba(0,0,0,.6)}.lbtn.gh:hover{transform:translateY(-1px);box-shadow:0 12px 24px -10px rgba(0,0,0,.6)}
html[data-theme="dark"] .lbtn.gh{background:#f6f8fa;color:#24292f}
.lbtn.google{background:var(--paper);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-2),0 1px 2px rgba(20,20,20,.05)}.lbtn.google:disabled{opacity:.55;cursor:not-allowed}

.nt-card .card-h .more{font-size:.76rem}
.bcard .meta{display:flex;flex-wrap:wrap;align-items:center;gap:3px 8px;font-size:.72rem}


/* ---------- 汤圆面板：Linear 的克制 × Claude 的对话 × Things 的任务行 ---------- */
.seal-panel{--sp:#287FCD;--ss:#23947E;--sw-:#D29338;--s2:#9298A0;position:fixed;left:0;top:0;width:min(var(--sw,400px),calc(100vw - 32px));height:auto;min-height:200px;max-height:min(var(--sh,620px),calc(100vh - 40px));display:flex;flex-direction:column;z-index:139;border-radius:18px;background:color-mix(in srgb,var(--paper) 86%,transparent);-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4);box-shadow:0 0 0 1px color-mix(in srgb,var(--line-2) 80%,transparent),0 24px 60px -24px rgba(20,30,50,.35),0 2px 8px -2px rgba(20,30,50,.08);transform-origin:var(--ox,100%) var(--oy,100%);transition:opacity .18s,transform .22s cubic-bezier(.3,1.4,.5,1)}
html[data-theme="dark"] .seal-panel{box-shadow:0 0 0 1px rgba(255,255,255,.08),0 24px 60px -24px rgba(0,0,0,.7)}
.seal-panel.closed{opacity:0;transform:scale(.6);pointer-events:none}
/* 三种窗口：浮窗 400 / 展开 860 / 全屏；展开和全屏里内容列最宽 720，不让每张卡铺满 */
.seal-panel.big{width:min(860px,calc(100vw - 32px));height:auto;max-height:min(800px,calc(100vh - 40px));transform-origin:50% 50%}
.seal-panel.big:not(.pinned){left:50%!important;top:50%!important;transform:translate(-50%,-50%)}
.seal-panel.big.pinned{transform:none}.seal-panel.big.pinned.closed{transform:scale(.94)}
.seal-panel.big.sized{width:min(var(--sw),calc(100vw - 32px));height:min(var(--sh),calc(100vh - 40px));max-height:none}
.seal-panel.full{width:calc(100vw - 24px);height:calc(100vh - 24px);max-height:none;border-radius:16px}
.seal-panel.big:not(.pinned).closed{transform:translate(-50%,-50%) scale(.94)}
.seal-col{width:100%;margin:0 auto}.seal-panel.big .seal-col{max-width:720px}
.seal-panel.big .seal-msgs{padding:12px 28px 16px}.seal-panel.big .seal-cw{padding:0 24px 20px}.seal-panel.big .seal-h{padding:14px 18px 6px 26px}
.seal-panel.big .sm{font-size:.88rem}
.seal-panel:hover /* 头部：名字 + 一个状态点；连接状态和「正在生成」分开 */
.seal-h{display:flex;align-items:center;gap:4px;padding:12px 10px 4px 18px;flex:none}
.seal-h b{font-size:.88rem;font-weight:600}.seal-h small{color:var(--s2);font-size:.72rem}
.seal-id{display:inline-flex;align-items:center;gap:8px;min-width:0}.seal-id small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seal-id .dot{width:7px;height:7px;border-radius:50%;background:var(--s2);flex:none}.seal-id .dot.on{background:var(--ss)}.seal-id .dot.busy{background:var(--sp);animation:seal-pulse 1.2s ease-in-out infinite}
@keyframes seal-pulse{0%,100%{box-shadow:0 0 0 0 rgba(40,127,205,.45)}50%{box-shadow:0 0 0 5px rgba(40,127,205,0)}}
.seal-h .ibtn.dim{opacity:.35}
/* 对话区 */
.seal-msgs{flex:1;min-height:0;overflow:auto;padding:8px 16px 10px;-webkit-mask-image:linear-gradient(transparent,#000 10px,#000 calc(100% - 6px),transparent);mask-image:linear-gradient(transparent,#000 10px,#000 calc(100% - 6px),transparent)}
.seal-msgs .seal-col{display:flex;flex-direction:column;gap:14px}
.sm{max-width:100%;font-size:.84rem;line-height:1.6;animation:fade .15s}
.sm.bot{color:var(--text);align-self:stretch;padding:0 2px}
.sm.me{align-self:flex-end;max-width:80%;padding:7px 12px;border-radius:14px;border-bottom-right-radius:5px;background:var(--hover);color:var(--text);white-space:pre-wrap}
.sm-warn{margin-top:4px;font-size:.76rem;color:var(--sw-)}
.sm.typing{display:flex;gap:4px;align-items:center;padding:8px 4px}.sm.typing i{width:5px;height:5px;border-radius:50%;background:var(--text-4);animation:seal-dot 1s infinite}.sm.typing i:nth-child(2){animation-delay:.15s}.sm.typing i:nth-child(3){animation-delay:.3s}
@keyframes seal-dot{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.seal-intro{padding:8px 2px 0;color:var(--text-2);font-size:.84rem;line-height:1.6}.seal-intro p{margin:0 0 10px}
.seal-hints{display:flex;flex-direction:column;gap:2px;align-self:stretch}
.seal-hints button{text-align:left;font-size:.78rem;color:var(--text-3);padding:7px 10px;border-radius:10px;background:transparent}.seal-hints button:hover{color:var(--text);background:var(--hover)}
.seal-hist .seal-col{gap:2px}
.sh-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;cursor:pointer;min-width:0}.sh-row:hover{background:var(--hover)}.sh-row.cur{background:color-mix(in srgb,var(--sp) 10%,transparent)}
.sh-row .sh-t{flex:1;min-width:0;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sh-row small{flex:none;font-size:.68rem;color:var(--s2)}
.sh-del{flex:none;opacity:0}.sh-row:hover .sh-del{opacity:.7}.sh-del:hover{opacity:1!important}
.seal-empty{padding:40px 0;text-align:center;color:var(--s2);font-size:.8rem}
/* 确认卡：AI 的话是文字，要保存的东西集中在这一张卡里 */
.ac{margin-top:10px;border-radius:12px;background:var(--paper);box-shadow:0 0 0 1px var(--line-2),0 1px 2px rgba(20,20,20,.04);overflow:hidden}
html[data-theme="dark"] .ac{box-shadow:0 0 0 1px rgba(255,255,255,.09)}
.ac-h{display:flex;align-items:baseline;gap:8px;padding:9px 12px 7px;font-size:.76rem;font-weight:600;color:var(--text-2)}.ac-h small{font-weight:500;color:var(--s2)}
.ac-row{display:flex;align-items:center;gap:10px;padding:8px 12px;min-height:40px;border-top:1px solid var(--line);cursor:pointer;transition:background .16s ease,opacity .16s ease}
.ac-row:hover{background:var(--hover)}.ac.saved .ac-row{cursor:default}.ac.saved .ac-row:hover{background:transparent}
.ac-row.off .ac-b,.ac-row.off .ac-m{opacity:.4}
.ac-row input{width:15px;height:15px;margin:0;accent-color:var(--sp);flex:none}
.ac-n{flex:none;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:.66rem;font-weight:600;background:var(--hover-2);color:var(--text-3)}
.ac-b{flex:1;min-width:0;display:flex;align-items:baseline;gap:8px}
.ac-t{font-size:.82rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-k{flex:none;font-size:.68rem;color:var(--s2)}
.ac-m{flex:none;display:flex;gap:8px;font-size:.72rem;color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap}
.ac-m .inf{color:var(--sw-);text-decoration:underline dotted;text-underline-offset:3px}
.ac-edit{display:none;flex:none;gap:2px;align-items:center}.ac-row:hover .ac-edit,.ac-row:focus-within .ac-edit,.ac-row.editing .ac-edit{display:flex}
.ac-done{display:none;width:22px;height:22px;border-radius:6px;place-items:center;color:var(--text-3)}.ac-row.editing .ac-done{display:grid}.ac-done:hover{background:var(--hover-2)}
.ac-m{cursor:pointer}.ac.saved .ac-m{cursor:default}
.ac-edit .pick{display:inline-flex}.ac-edit .pick-btn{height:24px;width:auto;padding:0 7px;font-size:.7rem;border-radius:6px;background:transparent;border-color:transparent;color:var(--text-3);gap:4px}.ac-edit .pick-btn:hover{background:var(--hover-2);border-color:transparent}.ac-edit .pick-btn.is-empty span{color:var(--text-4)}
.ac-row:has(.ac-edit):hover .ac-m,.ac-row:has(.ac-edit):focus-within .ac-m,.ac-row.editing .ac-m{display:none}
.ac-go{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:var(--text-4);opacity:0;transition:opacity .18s ease .06s,background .15s}.ac-row:hover .ac-go{opacity:1}.ac-go:hover{background:var(--sp);color:#fff}.ac.saved .ac-go{display:none}
.ac-f{display:flex;align-items:center;gap:8px;padding:8px 10px 8px 12px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--hover) 55%,transparent)}
.ac-hint{font-size:.72rem;color:var(--s2)}.ac-hint.warn{color:var(--sw-)}
.ac-ok{display:inline-flex;align-items:center;gap:5px;font-size:.76rem;font-weight:500;color:var(--ss)}
.ac .btn.primary{background:var(--sp);border-color:var(--sp);color:#fff}.ac .btn.primary:hover:not(:disabled){background:#2270b8;border-color:#2270b8}
.ac .btn.sm{height:28px;padding:0 10px;font-size:.76rem}.ac .btn.ghost{background:transparent;border-color:transparent;color:var(--text-2)}.ac .btn.ghost:hover:not(:disabled){background:var(--hover-2)}
.ac.saved{box-shadow:0 0 0 1px color-mix(in srgb,var(--ss) 35%,transparent)}
.ac.sup{opacity:.55}.ac.sup .ac-h{padding:8px 12px;font-weight:500}
.ac-dash{color:var(--text-4);font-size:.72rem}
/* 输入：多行 composer，Enter 发送 */
.seal-cw{padding:0 12px 12px;flex:none}
.seal-form{display:flex;align-items:center;gap:6px;padding:4px 7px 4px 0;border-radius:14px;background:var(--paper);box-shadow:0 0 0 1px var(--line-2),0 1px 2px rgba(20,20,20,.04);transition:box-shadow .16s ease}
html[data-theme="dark"] .seal-form{box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.seal-form:hover{box-shadow:0 0 0 1px color-mix(in srgb,var(--text-4) 70%,var(--line-2)),0 1px 2px rgba(20,20,20,.04)}
.seal-form:focus-within{box-shadow:0 0 0 1px var(--sp),0 0 0 4px rgba(40,127,205,.12)}
.seal-form.busy{opacity:.75}
.seal-form textarea{display:block;flex:1;min-width:0;min-height:36px;max-height:160px;resize:none;border:0;outline:0;background:transparent;box-shadow:none;padding:8px 6px 8px 14px;font:inherit;font-size:.84rem;line-height:1.5;color:var(--text)}.seal-form textarea:focus,.seal-form textarea:focus-visible{outline:0;box-shadow:none;background:transparent}
.seal-form textarea::placeholder{color:var(--text-4)}

.seal-send{width:30px;height:30px;border-radius:9px;flex:none;display:grid;place-items:center;background:var(--sp);color:#fff;transition:opacity .15s,transform .15s,background .15s}.seal-send:hover:not(:disabled){background:#2270b8}.seal-send:active:not(:disabled){transform:scale(.96)}.seal-send:disabled{opacity:.3}
.seal-send .spin{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:seal-spin .8s linear infinite}
@keyframes seal-spin{to{transform:rotate(360deg)}}
@media (max-width:900px){.seal-rz{display:none}.seal-panel{width:calc(100vw - 32px);height:min(560px,70vh)}.seal-panel.big,.seal-panel.full{width:calc(100vw - 16px);height:calc(100vh - 24px)}.seal-panel.big .seal-msgs{padding:8px 16px 10px}.seal-panel.big .seal-cw{padding:0 12px 12px}.seal-panel.big .seal-h{padding:12px 10px 4px 18px}.ac-row{min-height:44px}.ac-row:hover .ac-edit,.ac-row:focus-within .ac-edit{display:none}.ac-row.editing .ac-edit{display:flex}.ac-row:has(.ac-edit):hover .ac-m,.ac-row:has(.ac-edit):focus-within .ac-m{display:flex}.ac-row.editing .ac-m{display:none}.seal-full{display:none}}

/* ---------- 子任务：挂在待办下面的一列 ---------- */
.todo .steps{cursor:pointer;border:0}.todo .steps.open{background:var(--hover-2);color:var(--text-2)}
.steps-l{list-style:none;margin:6px 0 2px;padding:0 0 0 2px;display:flex;flex-direction:column;gap:1px;border-left:2px solid color-mix(in srgb,var(--pc) 30%,transparent);margin-left:4px;padding-left:10px}
.step{display:flex;align-items:center;gap:8px;min-height:26px;padding:2px 6px 2px 2px;border-radius:7px;font-size:.8rem;color:var(--text-2);transition:background .16s ease}
.step:hover{background:var(--hover)}.step.dragging{opacity:.4}.step.drop-over{box-shadow:inset 0 2px 0 var(--blue)}
.step .cb{flex:none;width:14px;height:14px;margin:0;border-radius:4px;border:1.5px solid var(--text-4);background:transparent;display:grid;place-items:center;color:transparent;transition:all .1s}.step .cb:hover{border-color:var(--pc)}
.step.done .cb{background:var(--pc);border-color:var(--pc);color:#fff}
.step .st-t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:grab}.step.done .st-t{color:var(--text-4);text-decoration:line-through}
.step .st-m{flex:none;font-size:.68rem;color:var(--text-4);font-variant-numeric:tabular-nums}
.step .st-go{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:var(--text-4);opacity:0;transition:opacity .18s ease .06s,background .15s}.step:hover .st-go{opacity:1}.step .st-go:hover{background:var(--pc);color:#fff}
.step.new button{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;color:var(--text-4);padding:2px 4px;border-radius:6px}.step.new button:hover{color:var(--text-2);background:var(--hover)}
.step.new input{height:24px;font-size:.78rem;padding:0 6px;flex:1;min-width:0}
.todo.has-steps{align-items:flex-start}
/* 时间线里来自某一步的块：左侧一个小勾 */
.blk .st-cb{position:absolute;left:5px;top:5px;width:14px;height:14px;border-radius:4px;border:1.5px solid var(--bc);background:var(--paper);display:grid;place-items:center;color:transparent;cursor:pointer;z-index:1}
.blk.is-step{padding-left:24px}.blk.step-done .st-cb{background:var(--bc);color:#fff}.blk.step-done b{text-decoration:line-through;opacity:.6}

.nt-card{margin-top:14px}
.tl.drop-over{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--blue) 35%,transparent);border-radius:10px}
.wday .todo .meta{row-gap:3px}.wday .todo .meta .defer{padding:1px 6px;gap:1px}
.subnav a{cursor:pointer}.subnav a.dragging{opacity:.4}.subnav a.drop-before{box-shadow:inset 2px 0 0 var(--blue)}.subnav a.drop-after{box-shadow:inset -2px 0 0 var(--blue)}

/* 子页「返回」 */
.crumbs .crumb-back{display:inline-flex;align-items:center;gap:3px;color:var(--text-2);padding:3px 8px 3px 5px;border-radius:8px}.crumbs .crumb-back:hover{background:var(--hover);color:var(--text)}
/* 子任务：紧凑一列，分钟紧跟标题，删除键悬停才出现 */
.steps-l{max-width:640px}
.step .st-t{flex:0 1 auto;cursor:text}.step .st-t:hover{text-decoration:underline dotted;text-underline-offset:3px}
.step .st-m{flex:none;font-size:.68rem;color:var(--text-4);padding:1px 6px;border-radius:999px;background:transparent;font-variant-numeric:tabular-nums}.step .st-m:hover{background:var(--hover-2);color:var(--text-2)}
.step .st-in{flex:1;min-width:0;height:24px;font-size:.8rem;padding:0 6px}.step .st-min{width:56px;height:22px;font-size:.72rem;padding:0 4px;text-align:right}
.step .st-x{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:var(--text-4);opacity:0;transition:opacity .18s ease .06s,background .15s;margin-left:auto}.step:hover .st-x{opacity:.8}.step .st-x:hover{background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--red)}
.step .st-go{margin-left:0}
/* 弹窗里的步骤 */

.seal-h{cursor:grab;user-select:none}.seal-h:active{cursor:grabbing}.seal-panel.big .seal-h{cursor:default}.seal-panel.moving{transition:none!important}
.seal-h.pinned .seal-id b::after{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--s2);margin-left:6px;vertical-align:middle;opacity:.6}
.sm-retry{display:inline-flex;align-items:center;gap:4px;margin-left:8px;height:22px;padding:0 8px;border-radius:999px;font-size:.72rem;color:var(--text-2);background:var(--hover)}.sm-retry:hover{background:var(--hover-2);color:var(--text)}
.seal-form.multi{align-items:flex-end}.seal-form.multi .seal-send{margin-bottom:0}

.seal-panel.sized{height:min(var(--sh,620px),calc(100vh - 40px))}
.seal-msgs{flex:0 1 auto}.seal-panel.sized .seal-msgs,.seal-panel.full .seal-msgs{flex:1 1 auto}
.seal-avw{position:relative;width:26px;height:26px;flex:none}.seal-ava{width:26px;height:26px;display:block}
.seal-avw .dot{position:absolute;right:-1px;bottom:0;width:8px;height:8px;border-radius:50%;background:var(--s2);box-shadow:0 0 0 2px var(--paper)}.seal-avw .dot.on{background:var(--ss)}.seal-avw .dot.busy{background:var(--sp);animation:seal-pulse 1.2s ease-in-out infinite}
.seal-hints button{display:flex;align-items:center;gap:10px;width:100%}.seal-hints .sh-q{flex:1;min-width:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seal-hints .sh-k{flex:none;display:flex;gap:4px}.seal-hints .sh-k i{font-style:normal;font-size:.66rem;color:var(--s2);padding:1px 6px;border-radius:999px;background:var(--hover)}
.goal .gt{cursor:text}.goal .gt:hover{text-decoration:underline dotted;text-underline-offset:4px}.goal .gt-in{font-size:.95rem;font-weight:600;height:30px;width:100%}
.goal .krs li{align-items:center}.goal .krs .cb{margin-top:0}.goal .krs .kr-t{flex:1;min-width:0;cursor:text}.goal .krs .kr-t:hover{text-decoration:underline dotted;text-underline-offset:3px}.goal .krs li.done .kr-t{text-decoration:line-through}
.goal .krs .kr-in{flex:1;min-width:0;height:26px;font-size:.8rem;padding:0 6px}
.goal .krs .kr-x{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:var(--text-4);opacity:0;transition:opacity .18s ease .06s}.goal .krs li:hover .kr-x{opacity:.8}.goal .krs .kr-x:hover{background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--red)}
.goal .krs li.dragging{opacity:.4}.goal .krs li.drop-before{box-shadow:inset 0 2px 0 var(--blue)}.goal .krs li.drop-after{box-shadow:inset 0 -2px 0 var(--blue)}
.goal .krs .kr-new{padding:2px 4px;cursor:default}.goal .krs .kr-new:hover{background:transparent}.goal .krs .kr-new button{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;color:var(--text-4);padding:2px 4px;border-radius:6px}.goal .krs .kr-new button:hover{color:var(--text-2);background:var(--hover)}
.goal .krs li:not(.done) .cb{color:transparent}

/* 总览：会变长的卡内部滚动，不把同一行的卡撑高 */
.dash3 .todo-card .tlist{max-height:560px;overflow:auto}
/* 汤圆对话窗：头部 / 消息 / 输入框共用同一条左右边线 */
.seal-h{padding:12px 16px 4px 16px}.seal-hc{display:flex;align-items:center;gap:4px;width:100%}
.seal-panel.big .seal-h{padding:14px 28px 6px}.seal-panel.big .seal-hc{max-width:720px}
.seal-msgs{padding:8px 16px 10px}.seal-cw{padding:0 16px 14px}
.seal-panel.big .seal-msgs{padding:12px 28px 16px}.seal-panel.big .seal-cw{padding:0 28px 22px}
.seal-hints{margin:0 -10px}.seal-intro{padding:8px 0 0}.sm.bot{padding:0}
.seal-ava{border-radius:50%;object-fit:cover}img.seal-ava{background:color-mix(in srgb,var(--hover) 60%,transparent)}
.seal-panel.big .seal-col.seal-cw{max-width:776px}

/* 对话窗八个方向的拉伸把手 */
.seal-rz{position:absolute;z-index:3}
.rz-n{left:10px;right:10px;top:-4px;height:8px;cursor:ns-resize}.rz-s{left:10px;right:10px;bottom:-4px;height:8px;cursor:ns-resize}
.rz-e{top:10px;bottom:10px;right:-4px;width:8px;cursor:ew-resize}.rz-w{top:10px;bottom:10px;left:-4px;width:8px;cursor:ew-resize}
.rz-nw{left:-4px;top:-4px;width:14px;height:14px;cursor:nwse-resize}.rz-se{right:-4px;bottom:-4px;width:14px;height:14px;cursor:nwse-resize}
.rz-ne{right:-4px;top:-4px;width:14px;height:14px;cursor:nesw-resize}.rz-sw{left:-4px;bottom:-4px;width:14px;height:14px;cursor:nesw-resize}
.seal-panel.moving{transition:none!important}

/* 足迹：地点搜索候选 */
.pl-wrap{position:relative}.pl-wrap input{width:100%;padding-right:30px}
.pl-busy{position:absolute;right:10px;top:50%;width:12px;height:12px;margin-top:-6px;border-radius:50%;border:2px solid var(--line-2);border-top-color:var(--blue);animation:seal-spin .8s linear infinite}
.pl-ok{position:absolute;right:9px;top:50%;margin-top:-8px;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--green) 16%,transparent);color:var(--green)}
.pl-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;background:var(--paper);border-radius:12px;box-shadow:var(--pop);padding:4px;max-height:260px;overflow:auto}
.pl-list button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;text-align:left;padding:7px 10px;border-radius:8px;line-height:1.3}.pl-list button:hover,.pl-list button.on{background:var(--hover)}
.pl-list b{font-weight:500;font-size:.84rem}.pl-list small{font-size:.72rem;color:var(--text-4)}
.xy-tg{display:inline-flex;align-items:center;gap:4px;font-size:.76rem;color:var(--text-3);padding:2px 4px;border-radius:6px;margin:-4px 0 2px}.xy-tg:hover{background:var(--hover);color:var(--text)}

/* 弹窗里的步骤：一行一步，轻量输入，拖动排序，底部直接加 */
.steps-f{display:flex;flex-direction:column;gap:1px;margin:0 -6px}
.sf-row{display:flex;align-items:center;gap:6px;min-height:32px;padding:1px 6px 1px 2px;border-radius:8px}.sf-row:hover{background:var(--hover)}
.sf-row.dragging{opacity:.4}.sf-row.drop-before{box-shadow:inset 0 2px 0 var(--blue)}.sf-row.drop-after{box-shadow:inset 0 -2px 0 var(--blue)}
.sf-grip{width:14px;flex:none;display:grid;place-items:center;color:var(--text-4);opacity:0;cursor:grab}.sf-row:hover .sf-grip{opacity:.7}
.sf-row .cb{flex:none;width:15px;height:15px;border-radius:4px;border:1.5px solid var(--text-4);background:transparent;display:grid;place-items:center;color:transparent;transition:all .1s}.sf-row .cb:hover{border-color:var(--blue)}.sf-row .cb.on{background:var(--blue);border-color:var(--blue);color:var(--on-ac,#fff)}
.sf-n{flex:none;width:16px;font-size:.7rem;color:var(--text-4);text-align:right;font-variant-numeric:tabular-nums}
.sf-row input.sf-t,.sf-row input.sf-new{flex:1;min-width:0;height:28px;padding:0 6px;border:0;background:transparent;box-shadow:none;font-size:.84rem;border-radius:6px}.sf-row input.sf-t:focus,.sf-row input.sf-new:focus{background:var(--paper);box-shadow:inset 0 0 0 1px var(--line-2)}
.sf-row.done input.sf-t{color:var(--text-4);text-decoration:line-through}
.sf-m{flex:none;display:inline-flex;align-items:center;gap:2px;color:var(--text-4);font-size:.72rem}.sf-m input{width:44px;height:24px;padding:0 4px;text-align:right;border:0;background:transparent;box-shadow:none;font-size:.78rem;color:var(--text-3);border-radius:6px;-moz-appearance:textfield}.sf-m input:focus{background:var(--paper);box-shadow:inset 0 0 0 1px var(--line-2)}.sf-m input::-webkit-inner-spin-button,.sf-m input::-webkit-outer-spin-button{-webkit-appearance:none}.sf-m i{font-style:normal}
.sf-x{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:var(--text-4);opacity:0;transition:opacity .18s ease .06s}.sf-row:hover .sf-x{opacity:.8}.sf-x:hover{background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--red)}
.sf-add:hover{background:transparent}.sf-plus{width:15px;flex:none;display:grid;place-items:center;color:var(--text-4);margin-left:16px}.sf-add input.sf-new::placeholder{color:var(--text-4)}
.sf-sum{font-size:.72rem;color:var(--text-4);padding:4px 6px 0 42px}
.todo-card .tg-h{display:flex;align-items:center;gap:6px;font-size:.7rem;color:var(--text-4);padding:8px 4px 2px;font-weight:500}.todo-card .tg-h:first-child{padding-top:2px}.todo-card .tg-h span{color:var(--text-4);opacity:.7}.todo-card .tg-h.late{color:var(--red)}.todo-card .tg-h.today{color:var(--blue)}
.tl-card{position:relative}.mt-back{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 10px;border-radius:999px;font-size:.72rem;color:var(--on-ac,#fff);background:var(--blue);box-shadow:0 6px 16px -6px rgba(40,80,200,.5);animation:fade .15s}

/* ============ 液态玻璃（iOS 26 Liquid Glass）============
   更透、更圆、带折射感：卡片是薄薄一层玻璃，边缘有一圈高光，底下是流动的彩色光斑；按钮和分段控件都是胶囊。 */
html[data-skin="liquid"]{
  --r:26px;--r2:16px;--r3:12px;--blur:34px;
  --bg:#eef2fa;--side:transparent;--paper:#ffffff;--card-bg:#ffffff;
  --line:rgba(30,40,70,.08);--line-2:rgba(30,40,70,.14);--hover:rgba(255,255,255,.45);--hover-2:rgba(255,255,255,.7);
  --input:rgba(255,255,255,.45);--tag-bg:rgba(255,255,255,.55);--sel:rgba(47,124,246,.18);--cal-bg:rgba(255,255,255,.5);--code-bg:rgba(255,255,255,.55);
  --blue:#2f7cf6;--ac:47,124,246;--liq:rgba(255,255,255,.6);
  --glass:rgba(255,255,255,.34);--glass-side:rgba(255,255,255,.22);--glass-line:rgba(255,255,255,.75);--glass-edge:rgba(255,255,255,.55);--glass-edge-h:rgba(255,255,255,.8);--glass-hl:rgba(255,255,255,.95);
  --glass-shadow:0 1px 1px rgba(255,255,255,.6) inset,0 10px 30px -12px rgba(40,60,120,.18),0 30px 60px -40px rgba(40,60,120,.25);--glass-shadow-h:0 1px 1px rgba(255,255,255,.7) inset,0 16px 40px -14px rgba(40,60,120,.25),0 40px 80px -40px rgba(40,60,120,.3);
  --shadow:0 0 0 1px rgba(255,255,255,.6);--shadow-h:0 0 0 1px rgba(255,255,255,.9),0 10px 30px -18px rgba(40,60,120,.3);--pop:0 0 0 1px rgba(255,255,255,.7),0 1px 0 rgba(255,255,255,.9) inset,0 24px 60px -20px rgba(40,60,120,.35);
  --blob1:rgba(80,140,255,.42);--blob2:rgba(255,120,170,.34);--blob3:rgba(70,210,180,.36);--blob4:rgba(255,190,90,.3);
}
html[data-skin="liquid"][data-theme="dark"]{
  --bg:#0c1020;--side:transparent;--paper:#171b2c;--card-bg:#171b2c;
  --line:rgba(255,255,255,.09);--line-2:rgba(255,255,255,.16);--hover:rgba(255,255,255,.08);--hover-2:rgba(255,255,255,.14);
  --input:rgba(255,255,255,.08);--tag-bg:rgba(255,255,255,.1);--sel:rgba(96,165,250,.28);--cal-bg:rgba(255,255,255,.06);--code-bg:rgba(0,0,0,.3);
  --blue:#6aa6ff;--ac:106,166,255;--liq:rgba(255,255,255,.12);
  --glass:rgba(30,36,60,.42);--glass-side:rgba(20,24,44,.35);--glass-line:rgba(255,255,255,.22);--glass-edge:rgba(255,255,255,.14);--glass-edge-h:rgba(255,255,255,.26);--glass-hl:rgba(255,255,255,.35);
  --glass-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 20px 50px -20px rgba(0,0,0,.6);--glass-shadow-h:0 1px 0 rgba(255,255,255,.25) inset,0 30px 70px -24px rgba(0,0,0,.7);
  --shadow:0 0 0 1px rgba(255,255,255,.12);--shadow-h:0 0 0 1px rgba(255,255,255,.2),0 10px 30px -18px rgba(0,0,0,.6);--pop:0 0 0 1px rgba(255,255,255,.16),0 1px 0 rgba(255,255,255,.2) inset,0 24px 60px -20px rgba(0,0,0,.7);
  --blob1:rgba(80,140,255,.38);--blob2:rgba(255,100,160,.3);--blob3:rgba(60,200,170,.3);--blob4:rgba(255,170,70,.22);
}
/* 流动的底色：四团光斑慢慢漂 */
html[data-skin="liquid"] body::before{background:
  radial-gradient(42% 38% at 12% 8%,var(--blob1),transparent 70%),
  radial-gradient(38% 36% at 88% 16%,var(--blob2),transparent 70%),
  radial-gradient(44% 40% at 22% 92%,var(--blob3),transparent 70%),
  radial-gradient(36% 34% at 86% 86%,var(--blob4),transparent 70%),var(--bg);
  animation:lq-drift 28s ease-in-out infinite alternate;background-size:160% 160%}
@keyframes lq-drift{0%{background-position:0% 0%}100%{background-position:100% 100%}}
@media (prefers-reduced-motion:reduce){html[data-skin="liquid"] body::before{animation:none}}
/* 卡片：薄玻璃 + 边缘折射高光（左上亮、右下暗一点） */
html[data-skin="liquid"] .card{background:linear-gradient(135deg,rgba(255,255,255,.5),rgba(255,255,255,.18) 60%,rgba(255,255,255,.3));-webkit-backdrop-filter:blur(var(--blur)) saturate(1.9) brightness(1.04);backdrop-filter:blur(var(--blur)) saturate(1.9) brightness(1.04)}
html[data-skin="liquid"][data-theme="dark"] .card{background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.04) 60%,rgba(255,255,255,.07))}
html[data-skin="liquid"] .card::after{box-shadow:inset 1.5px 1.5px 0 rgba(255,255,255,.85),inset -1px -1px 0 rgba(255,255,255,.3),inset 0 0 0 1px rgba(255,255,255,.35)}
html[data-skin="liquid"][data-theme="dark"] .card::after{box-shadow:inset 1px 1px 0 rgba(255,255,255,.3),inset -1px -1px 0 rgba(255,255,255,.08),inset 0 0 0 1px rgba(255,255,255,.1)}
/* 侧栏和顶栏：和卡片同一层玻璃，侧栏不要分割线 */
html[data-skin="liquid"] .side{border-right:0;background:var(--glass-side);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.8);backdrop-filter:blur(var(--blur)) saturate(1.8);box-shadow:inset -1px 0 0 rgba(255,255,255,.35)}
html[data-skin="liquid"][data-theme="dark"] .side{box-shadow:inset -1px 0 0 rgba(255,255,255,.08)}
html[data-skin="liquid"] .topbar{--tb-bg:color-mix(in srgb,var(--bg) 40%,transparent)}
/* 导航：选中态是一枚胶囊玻璃，带高光 */
html[data-skin="liquid"] .nav a{border-radius:999px}
html[data-skin="liquid"] .nav>.liq,html[data-skin="liquid"] .subnav>.liq,html[data-skin="liquid"] .seg>.liq{border-radius:999px;background:var(--liq);box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 1px 2px rgba(40,60,120,.08),0 0 0 1px rgba(255,255,255,.5)}
html[data-skin="liquid"][data-theme="dark"] .nav>.liq,html[data-skin="liquid"][data-theme="dark"] .subnav>.liq,html[data-skin="liquid"][data-theme="dark"] .seg>.liq{box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 0 0 1px rgba(255,255,255,.12)}
/* 控件：全部胶囊；按钮是小块玻璃，主按钮是有色玻璃 */
html[data-skin="liquid"] .btn,html[data-skin="liquid"] .seg,html[data-skin="liquid"] .seg button,html[data-skin="liquid"] .quickadd,html[data-skin="liquid"] .tag,html[data-skin="liquid"] .chip,html[data-skin="liquid"] .searchin,html[data-skin="liquid"] .theme-glass,html[data-skin="liquid"] .ibtn,html[data-skin="liquid"] .subnav a,html[data-skin="liquid"] .pick-btn,html[data-skin="liquid"] input[type=text],html[data-skin="liquid"] input[type=url],html[data-skin="liquid"] input[type=number],html[data-skin="liquid"] input[type=search],html[data-skin="liquid"] select{border-radius:999px}
html[data-skin="liquid"] textarea{border-radius:18px}
html[data-skin="liquid"] .btn{background:rgba(255,255,255,.45);border-color:rgba(255,255,255,.7);box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 2px 8px -4px rgba(40,60,120,.25);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
html[data-skin="liquid"] .btn:hover{background:rgba(255,255,255,.7)}
html[data-skin="liquid"][data-theme="dark"] .btn{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
html[data-skin="liquid"][data-theme="dark"] .btn:hover{background:rgba(255,255,255,.16)}
html[data-skin="liquid"] .btn.primary{color:#fff;background:linear-gradient(135deg,rgba(var(--ac),.95),rgba(var(--ac),.75));border-color:rgba(255,255,255,.45);box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0 -1px 0 rgba(0,0,0,.08),0 10px 24px -10px rgba(var(--ac),.7)}
html[data-skin="liquid"] .btn.ghost{background:transparent;border-color:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
html[data-skin="liquid"] .seg{background:rgba(255,255,255,.3);box-shadow:inset 0 0 0 1px rgba(255,255,255,.6),inset 0 1px 2px rgba(40,60,120,.08)}
html[data-skin="liquid"][data-theme="dark"] .seg{background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
html[data-skin="liquid"] input[type=text],html[data-skin="liquid"] input[type=url],html[data-skin="liquid"] input[type=number],html[data-skin="liquid"] input[type=search],html[data-skin="liquid"] select,html[data-skin="liquid"] textarea,html[data-skin="liquid"] .quickadd,html[data-skin="liquid"] .searchin{background:rgba(255,255,255,.4);border-color:rgba(255,255,255,.7);box-shadow:inset 0 1px 2px rgba(40,60,120,.06)}
html[data-skin="liquid"][data-theme="dark"] input[type=text],html[data-skin="liquid"][data-theme="dark"] input[type=url],html[data-skin="liquid"][data-theme="dark"] input[type=number],html[data-skin="liquid"][data-theme="dark"] input[type=search],html[data-skin="liquid"][data-theme="dark"] select,html[data-skin="liquid"][data-theme="dark"] textarea,html[data-skin="liquid"][data-theme="dark"] .quickadd,html[data-skin="liquid"][data-theme="dark"] .searchin{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14)}
html[data-skin="liquid"] .tag{box-shadow:inset 0 0 0 1px rgba(255,255,255,.6)}
/* 浮层：弹窗、菜单、汤圆窗口也是同一块玻璃 */
html[data-skin="liquid"] .modal,html[data-skin="liquid"] .pop,html[data-skin="liquid"] .popmenu,html[data-skin="liquid"] .cap,html[data-skin="liquid"] .seal-panel,html[data-skin="liquid"] .ctx{border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(255,255,255,.5));-webkit-backdrop-filter:blur(40px) saturate(1.9);backdrop-filter:blur(40px) saturate(1.9);box-shadow:var(--pop)}
html[data-skin="liquid"][data-theme="dark"] .modal,html[data-skin="liquid"][data-theme="dark"] .pop,html[data-skin="liquid"][data-theme="dark"] .popmenu,html[data-skin="liquid"][data-theme="dark"] .cap,html[data-skin="liquid"][data-theme="dark"] .seal-panel,html[data-skin="liquid"][data-theme="dark"] .ctx{background:linear-gradient(135deg,rgba(40,46,72,.78),rgba(28,32,52,.7))}
html[data-skin="liquid"] .seal-form,html[data-skin="liquid"] .ac{border-radius:20px}
html[data-skin="liquid"] .seal-send{border-radius:999px}
/* 看板列、时间块、待办行跟着圆一点 */
html[data-skin="liquid"] .bcol{border-radius:22px;background:rgba(255,255,255,.22);box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
html[data-skin="liquid"][data-theme="dark"] .bcol{background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
html[data-skin="liquid"] .bcard,html[data-skin="liquid"] .tl .blk,html[data-skin="liquid"] .mt-b{border-radius:16px}
html[data-skin="liquid"] .todo,html[data-skin="liquid"] .lk{border-radius:14px}
/* 标题稍微紧一点、黑一点，和玻璃的轻形成对比 */
html[data-skin="liquid"] .page-h h1,html[data-skin="liquid"] .hero .greet h1{letter-spacing:-.02em;font-weight:700}

/* ============ macOS 原生（Golden Gate）============
   照 macOS 26 以后系统自带软件的样子：侧栏贴着窗口边缘，没有圆角和阴影，只靠一层浅浅的底色和正文分开（浅色下比正文深一点、深色下浅一点）。
   配色用 Apple 的系统色，字体用 SF（-apple-system），控件是胶囊形的系统按钮和分段控件，卡片和弹窗圆角更大。 */
html[data-skin="mac"]{
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Helvetica Neue","PingFang SC","Hiragino Sans GB","Noto Sans SC",system-ui,sans-serif;
  --serif:"New York","Songti SC","STSong","Noto Serif SC",Georgia,serif;
  --mono:"SF Mono",ui-monospace,Menlo,monospace;
  --r:18px;--r2:11px;--r3:9px;--blur:0px;
  --bg:#ffffff;--side:#f3f3f5;--paper:#ffffff;--card-bg:#ffffff;
  --ink:#000000;--text:rgba(0,0,0,.85);--text-2:rgba(0,0,0,.7);--text-3:rgba(0,0,0,.5);--text-4:rgba(0,0,0,.3);
  --g1:#000;--g2:#3a3a3c;--g3:#636366;--g4:#8e8e93;--g5:#aeaeb2;--g6:#d1d1d6;--g7:#e5e5ea;
  --line:rgba(0,0,0,.08);--line-2:rgba(0,0,0,.14);--hover:rgba(0,0,0,.045);--hover-2:rgba(0,0,0,.09);
  --input:rgba(0,0,0,.035);--tag-bg:rgba(0,0,0,.06);--sel:rgba(0,122,255,.22);--cal-bg:#f7f7f9;--code-bg:#f5f5f7;
  --blue:#007aff;--ac:0,122,255;--liq:#007aff;
  --red:#ff3b30;--amber:#ffcc00;--green:#34c759;--teal:#30b0c7;--violet:#5856d6;--rose:#ff2d55;--orange:#ff9500;
  --shadow:0 0 0 1px rgba(0,0,0,.08);--shadow-h:0 0 0 1px rgba(0,0,0,.14);--pop:0 0 0 .5px rgba(0,0,0,.14),0 10px 30px rgba(0,0,0,.14);
  --glass:#ffffff;--glass-side:#f3f3f5;--glass-line:transparent;--glass-edge:rgba(0,0,0,.09);--glass-edge-h:rgba(0,0,0,.16);--glass-hl:transparent;--glass-shadow:0 0 0 0 transparent;--glass-shadow-h:0 0 0 0 transparent;
  --blob1:transparent;--blob2:transparent;--blob3:transparent;--blob4:transparent;
}
html[data-skin="mac"][data-theme="dark"]{
  --bg:#1e1e1e;--side:#2a2a2c;--paper:#1e1e1e;--card-bg:#262628;
  --ink:#ffffff;--text:rgba(255,255,255,.85);--text-2:rgba(255,255,255,.7);--text-3:rgba(255,255,255,.55);--text-4:rgba(255,255,255,.3);
  --g1:#fff;--g2:#d1d1d6;--g3:#aeaeb2;--g4:#8e8e93;--g5:#636366;--g6:#48484a;--g7:#3a3a3c;
  --line:rgba(255,255,255,.1);--line-2:rgba(255,255,255,.17);--hover:rgba(255,255,255,.06);--hover-2:rgba(255,255,255,.11);
  --input:rgba(255,255,255,.06);--tag-bg:rgba(255,255,255,.1);--sel:rgba(10,132,255,.35);--cal-bg:#262628;--code-bg:#262628;
  --blue:#0a84ff;--ac:10,132,255;--liq:#0a84ff;
  --red:#ff453a;--amber:#ffd60a;--green:#30d158;--teal:#40cbe0;--violet:#5e5ce6;--rose:#ff375f;--orange:#ff9f0a;
  --shadow:0 0 0 1px rgba(255,255,255,.1);--shadow-h:0 0 0 1px rgba(255,255,255,.17);--pop:0 0 0 .5px rgba(255,255,255,.16),0 10px 30px rgba(0,0,0,.5);
  --glass:#262628;--glass-side:#2a2a2c;--glass-edge:rgba(255,255,255,.1);--glass-edge-h:rgba(255,255,255,.18);
}
html[data-skin="mac"] body{font-size:13px;letter-spacing:0}
html[data-skin="mac"] body::before{display:none}
html[data-skin="mac"] *{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html[data-skin="mac"] h1,html[data-skin="mac"] h2,html[data-skin="mac"] h3,html[data-skin="mac"] h4{letter-spacing:-.015em}
/* 侧栏：贴边、方角、无阴影，只有一层底色；分隔线也去掉 */
html[data-skin="mac"] .side{background:var(--side);border-right:0;box-shadow:none;padding:10px 10px 12px}
html[data-skin="mac"] .splitter::after{left:0;width:1px;border-radius:0}
html[data-skin="mac"] .nav a{border-radius:9px;min-height:28px;padding:3px 9px;font-size:13px}
html[data-skin="mac"] .nav>.liq{border-radius:9px;background:var(--blue)}
html[data-skin="mac"] .nav a.active,html[data-skin="mac"] .nav a.active .ic,html[data-skin="mac"] .nav a.active .cnt{color:#fff}
html[data-skin="mac"] .side.mini .nav a,html[data-skin="mac"] .side.mini .nav>.liq{border-radius:12px}
html[data-skin="mac"] .side-user,html[data-skin="mac"] .side-user.active{border-radius:9px}
/* 笔记的两栏：笔记本栏和页面列表栏也是贴边的平面，正文才是白纸 */
html[data-skin="mac"] .nb-layout{gap:0;margin-top:-8px}
html[data-skin="mac"] .card.nb-col,html[data-skin="mac"] .card.list-col{border-radius:0;box-shadow:none;top:52px;height:calc(100vh - 52px);max-height:calc(100vh - 52px)}
html[data-skin="mac"] .card.nb-col{background:var(--side);margin-left:-30px;padding-left:14px}
html[data-skin="mac"] .card.list-col{background:color-mix(in srgb,var(--side) 45%,var(--paper))}
html[data-skin="mac"] .nb-layout .splitter{top:52px;max-height:calc(100vh - 52px);margin:0;background:var(--side)}
html[data-skin="mac"] .nb-layout .splitter::after{background:var(--line)}
html[data-skin="mac"] .nb-layout .splitter:hover::after,html[data-skin="mac"] body.resizing .nb-layout .splitter::after{background:rgba(var(--ac),.6)}
html[data-skin="mac"] .nb-col::after,html[data-skin="mac"] .list-col::after{display:none}
html[data-skin="mac"] .card.notes-main{box-shadow:none;border-radius:0;background:var(--paper)}
html[data-skin="mac"] .nb-list>.liq,html[data-skin="mac"] .lc-list>.liq{border-radius:9px}
/* 顶栏：和正文同色，滚动后只有一道发丝线 */
html[data-skin="mac"] .topbar{--tb-bg:var(--bg)}
html[data-skin="mac"] .topbar::after{height:1px;background:var(--line)}
/* 卡片：平面分组框，发丝边，无阴影，无高光 */
html[data-skin="mac"] .card{background:var(--card-bg);box-shadow:0 0 0 1px var(--glass-edge)}
html[data-skin="mac"] .card::after{display:none}
html[data-skin="mac"] .bcol{border-radius:16px;background:var(--side);box-shadow:none}
html[data-skin="mac"] .bcard{border-radius:12px;box-shadow:0 0 0 1px var(--line),0 1px 1px rgba(0,0,0,.04)}
html[data-skin="mac"] .tl .blk,html[data-skin="mac"] .mt-b{border-radius:10px}
html[data-skin="mac"] .todo,html[data-skin="mac"] .lk{border-radius:10px}
/* 控件：系统按钮（白底发丝边、浅阴影）、蓝色主按钮、分段控件、圆角 6 的输入框 */
html[data-skin="mac"] .btn{height:28px;padding:0 13px;border-radius:999px;font-size:13px;font-weight:400;background:var(--paper);border:1px solid var(--line-2);box-shadow:0 .5px 1px rgba(0,0,0,.08)}
html[data-skin="mac"] .btn:hover{background:var(--hover)}
html[data-skin="mac"][data-theme="dark"] .btn{background:#3a3a3c;border-color:rgba(255,255,255,.12);box-shadow:0 .5px 1px rgba(0,0,0,.3)}
html[data-skin="mac"][data-theme="dark"] .btn:hover{background:#454547}
html[data-skin="mac"] .btn.primary,html[data-skin="mac"][data-theme="dark"] .btn.primary{color:#fff;background:linear-gradient(180deg,rgba(var(--ac),1),color-mix(in srgb,rgb(var(--ac)) 88%,#000));border-color:transparent;box-shadow:0 .5px 1px rgba(0,0,0,.2)}
html[data-skin="mac"] .btn.ghost,html[data-skin="mac"][data-theme="dark"] .btn.ghost{background:transparent;border-color:transparent;box-shadow:none}
html[data-skin="mac"] .btn.sm{height:24px;font-size:12px}
html[data-skin="mac"] .ibtn{border-radius:999px}
html[data-skin="mac"] .seg{height:28px;padding:2px;border-radius:999px;background:var(--hover)}
html[data-skin="mac"] .seg button{height:24px;border-radius:999px;font-size:12px}
html[data-skin="mac"] .seg>.liq{border-radius:999px;background:var(--paper);box-shadow:0 0 0 .5px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.12)}
html[data-skin="mac"][data-theme="dark"] .seg>.liq{background:#5a5a5e;box-shadow:0 1px 2px rgba(0,0,0,.3)}
html[data-skin="mac"] input[type=text],html[data-skin="mac"] input[type=url],html[data-skin="mac"] input[type=number],html[data-skin="mac"] input[type=search],html[data-skin="mac"] select,html[data-skin="mac"] textarea,html[data-skin="mac"] .quickadd,html[data-skin="mac"] .searchin{border-radius:10px;background:var(--paper);border:1px solid var(--line-2);box-shadow:none}
html[data-skin="mac"][data-theme="dark"] input[type=text],html[data-skin="mac"][data-theme="dark"] input[type=url],html[data-skin="mac"][data-theme="dark"] input[type=number],html[data-skin="mac"][data-theme="dark"] input[type=search],html[data-skin="mac"][data-theme="dark"] select,html[data-skin="mac"][data-theme="dark"] textarea,html[data-skin="mac"][data-theme="dark"] .quickadd,html[data-skin="mac"][data-theme="dark"] .searchin{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14)}
html[data-skin="mac"] .tag,html[data-skin="mac"] .chip{border-radius:999px;box-shadow:none}
html[data-skin="mac"] .subnav a{border-radius:999px}html[data-skin="mac"] .subnav>.liq{border-radius:999px}
/* 浮层：系统弹窗和菜单，圆角 10，发丝边加柔和阴影；菜单底色不透明 */
html[data-skin="mac"] .modal,html[data-skin="mac"] .pop,html[data-skin="mac"] .popmenu,html[data-skin="mac"] .cap,html[data-skin="mac"] .seal-panel,html[data-skin="mac"] .ctx{border-radius:18px;background:var(--paper);box-shadow:var(--pop)}
html[data-skin="mac"][data-theme="dark"] .modal,html[data-skin="mac"][data-theme="dark"] .pop,html[data-skin="mac"][data-theme="dark"] .popmenu,html[data-skin="mac"][data-theme="dark"] .cap,html[data-skin="mac"][data-theme="dark"] .seal-panel,html[data-skin="mac"][data-theme="dark"] .ctx{background:#2a2a2c}
html[data-skin="mac"] .seal-form,html[data-skin="mac"] .ac{border-radius:14px}html[data-skin="mac"] .seal-send,html[data-skin="mac"] .quickadd{border-radius:999px}html[data-skin="mac"] .popmenu,html[data-skin="mac"] .ctx{border-radius:12px}

/* ============ 笔记：汤圆写入的占位块 ============ */
.b-pending{flex:1;min-width:0;display:flex;align-items:flex-start;gap:10px;margin:4px 0;padding:10px 12px;border-radius:var(--r2);border:1.5px dashed rgba(var(--ac),.45);background:rgba(var(--ac),.05);outline:none}
.b-pending:focus{border-style:solid}
.b-pending.st-writing{border-style:solid;border-color:rgba(var(--ac),.35);background:rgba(var(--ac),.07)}
.b-pending.st-error{border-color:rgba(210,82,79,.5);background:rgba(210,82,79,.06)}
.bp-ico{color:var(--blue);display:grid;place-items:center;width:20px;height:22px;flex-shrink:0}
.bp-spin{width:14px;height:14px;border-radius:50%;border:2px solid rgba(var(--ac),.25);border-top-color:var(--blue);animation:bpspin .8s linear infinite}
@keyframes bpspin{to{transform:rotate(360deg)}}
.bp-body{flex:1;min-width:0;font-size:.85rem}.bp-body b{display:block;font-weight:500;color:var(--text);line-height:1.5}
.bp-intent{color:var(--text-3);white-space:pre-wrap;word-break:break-word}
.bp-err{color:var(--red);font-size:.78rem;margin-top:4px}
.bp-acts{display:flex;gap:4px;align-items:center;flex-shrink:0}
.b-row[data-type="pending"]:hover>.b-gutter{opacity:1}

/* ============ 笔记：块评论 ============ */
.b-cm{position:absolute;right:-44px;top:4px;display:inline-flex;align-items:center;gap:3px;height:22px;padding:0 7px;border-radius:999px;font-size:.7rem;font-weight:500;color:var(--blue);background:rgba(var(--ac),.1);opacity:.85;transition:opacity .15s,background .15s;user-select:none;-webkit-user-select:none}
.b-cm:hover{opacity:1;background:rgba(var(--ac),.18)}
.b-row.cm-flash{background:rgba(var(--ac),.12);transition:background .3s}
.cmt-panel{position:fixed;right:16px;top:64px;bottom:16px;width:330px;z-index:120;display:flex;flex-direction:column;background:var(--paper);border-radius:14px;box-shadow:var(--pop);animation:pop .15s var(--ease)}
.cmt-top{display:flex;align-items:center;gap:8px;padding:12px 10px 10px 14px;border-bottom:1px solid var(--line)}
.cmt-top b{font-size:.9rem;font-weight:600}
.cmt-body{flex:1;overflow:auto;padding:10px 10px 16px;display:flex;flex-direction:column;gap:10px}
.cmt-th{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;background:var(--card-bg)}
.cmt-th.focus{border-color:rgba(var(--ac),.5);box-shadow:0 0 0 2px rgba(var(--ac),.12)}
.cmt-th.resolved{opacity:.7}
.cmt-th.draft{border-style:dashed;border-color:rgba(var(--ac),.5)}
.cmt-q{text-align:left;font-size:.74rem;color:var(--text-3);padding:4px 8px;border-left:2px solid var(--line-2);background:var(--hover);border-radius:0 6px 6px 0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cmt-q:hover{color:var(--text);border-left-color:var(--blue)}
.cmt-m{font-size:.84rem;line-height:1.5}.cmt-m p{white-space:pre-wrap;word-break:break-word}
.cmt-m.reply{padding-left:10px;border-left:2px solid var(--line)}
.cmt-m.ai{border-left-color:rgba(var(--ac),.5)}.cmt-m.ai .cmt-h .ic{color:var(--blue)}
.cmt-h{display:flex;align-items:center;gap:6px;margin-bottom:2px}.cmt-h b{font-weight:600;font-size:.8rem}.cmt-h small{color:var(--text-4);font-size:.68rem}
.cmt-reply input{width:100%;height:30px;font-size:.82rem}
.cmt-th textarea{width:100%;font-size:.84rem;resize:vertical;min-height:64px}
.cmt-foot{display:flex;align-items:center;gap:4px}
.cmt-empty{text-align:center;color:var(--text-3);padding:40px 16px;font-size:.84rem;line-height:1.6}.cmt-empty .ic{color:var(--text-4);margin-bottom:8px}.cmt-empty p+p{margin-top:6px;font-size:.78rem}
.page-acts .cm-n{font-size:.68rem;margin-left:-4px;color:var(--blue)}
@media (max-width:900px){.cmt-panel{left:8px;right:8px;width:auto;top:auto;bottom:8px;height:70vh}.b-cm{right:-6px;top:-10px}}

/* ============ 笔记：页签条 + 历史版本 ============ */
.tabs-wrap{display:flex;flex-direction:column;gap:4px;margin:0 0 14px}
.tabs-strip{display:flex;align-items:center;gap:2px;flex-wrap:wrap;padding:3px;border-radius:10px;background:var(--hover)}
.tabs-strip .tab{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 11px;border-radius:8px;font-size:.8rem;color:var(--text-3);text-decoration:none;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis;transition:background .15s,color .15s}
.tabs-strip .tab:hover{color:var(--text);background:var(--hover-2)}
.tabs-strip .tab.on{color:var(--text);background:var(--paper);font-weight:500;box-shadow:0 1px 2px rgba(20,20,20,.1),0 0 0 1px var(--line)}
.tabs-strip .tab.main .ic{color:var(--text-4)}.tabs-strip .tab.main.on .ic{color:var(--blue)}
.tabs-strip .tab.add{padding:0 8px;color:var(--text-4)}.tabs-strip .tab.add:hover{color:var(--text)}
.tabs-strip .tab.drop-before{box-shadow:inset 2px 0 0 var(--blue)}.tabs-strip .tab.drop-after{box-shadow:inset -2px 0 0 var(--blue)}.tabs-strip .tab.dragging{opacity:.4}
.tab-ico{font-size:.9em}
.hist{display:grid;grid-template-columns:200px minmax(0,1fr);gap:14px;min-height:360px}
.hist-l{display:flex;flex-direction:column;gap:2px;max-height:60vh;overflow:auto;padding-right:4px}
.hist-i{text-align:left;padding:7px 10px;border-radius:var(--r2);display:flex;flex-direction:column;gap:1px}.hist-i b{font-weight:500;font-size:.82rem}.hist-i small{color:var(--text-4);font-size:.7rem}
.hist-i:hover{background:var(--hover)}.hist-i.on{background:var(--hover-2)}
.hist-r{display:flex;flex-direction:column;gap:8px;min-width:0}
.hist-h{display:flex;align-items:center;gap:8px;font-size:.84rem}
.hist-prev{max-height:60vh;overflow:auto;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r2);font-size:.88rem;line-height:1.6}
@media (max-width:720px){.hist{grid-template-columns:1fr}.hist-l{flex-direction:row;flex-wrap:wrap;max-height:120px}}

/* ============ 笔记：表格单元格底色（Claude Docs 的七色） ============ */
:root{--cbg-gray:#f0efec;--cbg-red:#fbebeb;--cbg-orange:#f9ece7;--cbg-yellow:#f9eeda;--cbg-green:#e5f4e4;--cbg-blue:#e7f1fb;--cbg-purple:#efedff;
  --cbg-gray-dot:#c9c6c0;--cbg-red-dot:#e8a3a3;--cbg-orange-dot:#e8b899;--cbg-yellow-dot:#e6cf8a;--cbg-green-dot:#9fd3a0;--cbg-blue-dot:#9ec5ec;--cbg-purple-dot:#b9b4f0}
html[data-theme="dark"]{--cbg-gray:rgba(255,255,255,.07);--cbg-red:rgba(255,99,99,.16);--cbg-orange:rgba(255,150,90,.16);--cbg-yellow:rgba(255,210,90,.16);--cbg-green:rgba(90,210,120,.16);--cbg-blue:rgba(90,160,255,.18);--cbg-purple:rgba(170,150,255,.18)}
.b-table .b-cell.bg-gray{background:var(--cbg-gray)}.b-table .b-cell.bg-red{background:var(--cbg-red)}.b-table .b-cell.bg-orange{background:var(--cbg-orange)}.b-table .b-cell.bg-yellow{background:var(--cbg-yellow)}.b-table .b-cell.bg-green{background:var(--cbg-green)}.b-table .b-cell.bg-blue{background:var(--cbg-blue)}.b-table .b-cell.bg-purple{background:var(--cbg-purple)}

/* ============ 质感：lite（默认）不用实时模糊 ============
   backdrop-filter 让每张卡片在底下内容变化时都重新模糊一遍；鼠标悬停、海豹动一下都会触发，整页就卡。
   lite 用更实一点的半透明底色代替，样子接近，交互顺滑；选「毛玻璃」才恢复模糊。 */
html[data-fx="lite"] .card,html[data-fx="lite"] .side,html[data-fx="lite"] body.scrolled .topbar,html[data-fx="lite"] .now-days,html[data-fx="lite"] .seal-panel{-webkit-backdrop-filter:none;backdrop-filter:none}
html[data-fx="lite"][data-skin="glass"][data-theme="light"]{--glass:rgba(255,255,255,.84);--glass-side:rgba(246,247,250,.9)}
html[data-fx="lite"][data-skin="glass"][data-theme="dark"]{--glass:rgba(28,31,38,.86);--glass-side:rgba(18,20,25,.92)}
html[data-fx="lite"] .topbar{--tb-bg:color-mix(in srgb,var(--bg) 94%,transparent)}
html[data-fx="lite"] .seal-panel{background:var(--paper)}
html[data-fx="lite"][data-theme="dark"] .seal-panel{background:#141826}
html[data-fx="lite"] .modal,html[data-fx="lite"] .pop,html[data-fx="lite"] .popmenu,html[data-fx="lite"] .cap{-webkit-backdrop-filter:none;backdrop-filter:none;background:color-mix(in srgb,var(--paper) 97%,transparent)}
.splitter-guide{position:fixed;left:0;width:2px;border-radius:2px;background:rgba(var(--ac),.7);z-index:200;pointer-events:none}

/* ============ 笔记：文字颜色 / 字号 / 字体（行内 span 和块级属性） ============ */
:root{--hand:"Yuanti SC","Hannotate SC","Kaiti SC","KaiTi","STKaiti","楷体",cursive;
  --tc-gray:#8e8e93;--tc-red:#e5484d;--tc-orange:#e8842b;--tc-yellow:#c9a227;--tc-green:#2f9e5d;--tc-blue:#2f7cf6;--tc-purple:#8a5cf6;--tc-pink:#e5457e}
html[data-theme="dark"]{--tc-gray:#9a9a9f;--tc-red:#ff6369;--tc-orange:#ffa04d;--tc-yellow:#e6c84a;--tc-green:#4ad07a;--tc-blue:#6aa6ff;--tc-purple:#b18cff;--tc-pink:#ff6fa3}
.b-text .tc-gray,.cv-text .tc-gray{color:var(--tc-gray)}.b-text .tc-red,.cv-text .tc-red{color:var(--tc-red)}.b-text .tc-orange{color:var(--tc-orange)}.b-text .tc-yellow{color:var(--tc-yellow)}.b-text .tc-green{color:var(--tc-green)}.b-text .tc-blue{color:var(--tc-blue)}.b-text .tc-purple{color:var(--tc-purple)}.b-text .tc-pink{color:var(--tc-pink)}
.b-text .fs-s{font-size:.85em}.b-text .fs-l{font-size:1.25em}.b-text .fs-xl{font-size:1.55em;line-height:1.3}
.b-text .ff-serif{font-family:var(--serif)}.b-text .ff-mono{font-family:var(--mono);font-size:.92em}.b-text .ff-hand{font-family:var(--hand)}
.b-text.bs-s{font-size:.88em}.b-text.bs-l{font-size:1.22em}.b-text.bs-xl{font-size:1.5em;line-height:1.3}
.b-text.bc-gray{color:var(--tc-gray)}.b-text.bc-red{color:var(--tc-red)}.b-text.bc-orange{color:var(--tc-orange)}.b-text.bc-yellow{color:var(--tc-yellow)}.b-text.bc-green{color:var(--tc-green)}.b-text.bc-blue{color:var(--tc-blue)}.b-text.bc-purple{color:var(--tc-purple)}.b-text.bc-pink{color:var(--tc-pink)}
.b-text.bf-serif{font-family:var(--serif)}.b-text.bf-mono{font-family:var(--mono);font-size:.92em}.b-text.bf-hand{font-family:var(--hand)}
.beditor.font-hand{font-family:var(--hand)}
.beditor.ps-s{font-size:.9rem}.beditor.ps-l{font-size:1.12rem}.beditor.ps-xl{font-size:1.28rem}
/* 工具栏里的样式面板 */
.sel-tb{position:absolute}
.sel-tb .tb-style{font-weight:600;letter-spacing:-.02em}.sel-tb .tb-style small{font-size:.7em;font-weight:400;margin-left:1px}.sel-tb .tb-style.on{background:rgba(255,255,255,.2)}
.tb-pop{position:absolute;left:50%;bottom:100%;transform:translateX(-50%);margin-bottom:6px;padding:8px 10px;border-radius:10px;background:var(--ink);color:var(--bg);display:flex;flex-direction:column;gap:6px;white-space:nowrap;box-shadow:0 10px 30px -10px rgba(0,0,0,.5)}
.tp-row{display:flex;align-items:center;gap:3px}.tp-row>span{font-size:.7rem;opacity:.6;width:30px}
.sel-tb .tp-b{min-width:22px;height:22px;padding:0}.tp-dot{display:block;width:14px;height:14px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35)}.tp-dot.none{background:transparent;border-style:dashed}
.sel-tb .tp-t{min-width:0;padding:0 7px;height:24px;font-size:.78rem}.sel-tb .tp-t.fs-s{font-size:.68rem}.sel-tb .tp-t.fs-l{font-size:.9rem}.sel-tb .tp-t.fs-xl{font-size:1rem}.sel-tb .tp-t.ff-serif{font-family:var(--serif)}.sel-tb .tp-t.ff-mono{font-family:var(--mono)}.sel-tb .tp-t.ff-hand{font-family:var(--hand)}

/* 字号：像素档位（8–72），行内 fs-N 和块级 bs-N */
.b-text .fs-8{font-size:8px}.b-text.bs-8{font-size:8px}.b-text .fs-9{font-size:9px}.b-text.bs-9{font-size:9px}.b-text .fs-10{font-size:10px}.b-text.bs-10{font-size:10px}.b-text .fs-11{font-size:11px}.b-text.bs-11{font-size:11px}.b-text .fs-12{font-size:12px}.b-text.bs-12{font-size:12px}.b-text .fs-13{font-size:13px}.b-text.bs-13{font-size:13px}.b-text .fs-14{font-size:14px}.b-text.bs-14{font-size:14px}.b-text .fs-15{font-size:15px}.b-text.bs-15{font-size:15px}.b-text .fs-16{font-size:16px}.b-text.bs-16{font-size:16px}.b-text .fs-17{font-size:17px}.b-text.bs-17{font-size:17px}.b-text .fs-18{font-size:18px}.b-text.bs-18{font-size:18px}.b-text .fs-19{font-size:19px}.b-text.bs-19{font-size:19px}.b-text .fs-20{font-size:20px}.b-text.bs-20{font-size:20px}.b-text .fs-21{font-size:21px}.b-text.bs-21{font-size:21px}.b-text .fs-22{font-size:22px}.b-text.bs-22{font-size:22px}.b-text .fs-23{font-size:23px}.b-text.bs-23{font-size:23px}.b-text .fs-24{font-size:24px}.b-text.bs-24{font-size:24px}.b-text .fs-25{font-size:25px}.b-text.bs-25{font-size:25px}.b-text .fs-26{font-size:26px}.b-text.bs-26{font-size:26px}.b-text .fs-27{font-size:27px}.b-text.bs-27{font-size:27px}.b-text .fs-28{font-size:28px}.b-text.bs-28{font-size:28px}.b-text .fs-29{font-size:29px}.b-text.bs-29{font-size:29px}.b-text .fs-30{font-size:30px}.b-text.bs-30{font-size:30px}.b-text .fs-31{font-size:31px}.b-text.bs-31{font-size:31px}.b-text .fs-32{font-size:32px}.b-text.bs-32{font-size:32px}.b-text .fs-33{font-size:33px}.b-text.bs-33{font-size:33px}.b-text .fs-34{font-size:34px}.b-text.bs-34{font-size:34px}.b-text .fs-35{font-size:35px}.b-text.bs-35{font-size:35px}.b-text .fs-36{font-size:36px}.b-text.bs-36{font-size:36px}.b-text .fs-37{font-size:37px}.b-text.bs-37{font-size:37px}.b-text .fs-38{font-size:38px}.b-text.bs-38{font-size:38px}.b-text .fs-39{font-size:39px}.b-text.bs-39{font-size:39px}.b-text .fs-40{font-size:40px}.b-text.bs-40{font-size:40px}.b-text .fs-41{font-size:41px}.b-text.bs-41{font-size:41px}.b-text .fs-42{font-size:42px}.b-text.bs-42{font-size:42px}.b-text .fs-43{font-size:43px}.b-text.bs-43{font-size:43px}.b-text .fs-44{font-size:44px}.b-text.bs-44{font-size:44px}.b-text .fs-45{font-size:45px}.b-text.bs-45{font-size:45px}.b-text .fs-46{font-size:46px}.b-text.bs-46{font-size:46px}.b-text .fs-47{font-size:47px}.b-text.bs-47{font-size:47px}.b-text .fs-48{font-size:48px}.b-text.bs-48{font-size:48px}.b-text .fs-49{font-size:49px}.b-text.bs-49{font-size:49px}.b-text .fs-50{font-size:50px}.b-text.bs-50{font-size:50px}.b-text .fs-51{font-size:51px}.b-text.bs-51{font-size:51px}.b-text .fs-52{font-size:52px}.b-text.bs-52{font-size:52px}.b-text .fs-53{font-size:53px}.b-text.bs-53{font-size:53px}.b-text .fs-54{font-size:54px}.b-text.bs-54{font-size:54px}.b-text .fs-55{font-size:55px}.b-text.bs-55{font-size:55px}.b-text .fs-56{font-size:56px}.b-text.bs-56{font-size:56px}.b-text .fs-57{font-size:57px}.b-text.bs-57{font-size:57px}.b-text .fs-58{font-size:58px}.b-text.bs-58{font-size:58px}.b-text .fs-59{font-size:59px}.b-text.bs-59{font-size:59px}.b-text .fs-60{font-size:60px}.b-text.bs-60{font-size:60px}.b-text .fs-61{font-size:61px}.b-text.bs-61{font-size:61px}.b-text .fs-62{font-size:62px}.b-text.bs-62{font-size:62px}.b-text .fs-63{font-size:63px}.b-text.bs-63{font-size:63px}.b-text .fs-64{font-size:64px}.b-text.bs-64{font-size:64px}.b-text .fs-65{font-size:65px}.b-text.bs-65{font-size:65px}.b-text .fs-66{font-size:66px}.b-text.bs-66{font-size:66px}.b-text .fs-67{font-size:67px}.b-text.bs-67{font-size:67px}.b-text .fs-68{font-size:68px}.b-text.bs-68{font-size:68px}.b-text .fs-69{font-size:69px}.b-text.bs-69{font-size:69px}.b-text .fs-70{font-size:70px}.b-text.bs-70{font-size:70px}.b-text .fs-71{font-size:71px}.b-text.bs-71{font-size:71px}.b-text .fs-72{font-size:72px}.b-text.bs-72{font-size:72px}
.b-text .fs-28,.b-text .fs-36,.b-text.bs-28,.b-text.bs-36{line-height:1.3}
.sel-tb .tp-step{min-width:22px;font-size:1rem;padding:0 4px}.sel-tb .tp-num{width:44px;height:24px;border-radius:6px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:inherit;text-align:center;font-size:.78rem;padding:0 2px;-moz-appearance:textfield}.sel-tb .tp-num::-webkit-inner-spin-button{display:none}.sel-tb .tp-preset{opacity:.75}.sel-tb .tp-preset:hover{opacity:1}

/* ============ 笔记：顶部固定格式栏（像 Word / Google Docs） ============ */
.fmt-host{position:sticky;top:52px;z-index:25;transition:top .2s}
body.tb-hide .fmt-host,body.focus-mode .fmt-host{top:0}
.fmt-host.off{display:none}
.fmt-bar{display:flex;align-items:center;gap:1px;flex-wrap:wrap;padding:5px 12px;background:color-mix(in srgb,var(--paper) 97%,transparent);border-bottom:1px solid var(--line);border-radius:var(--r) var(--r) 0 0}
body.focus-mode .fmt-bar{border-radius:0;justify-content:center}
.fmt-bar .fb{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-width:28px;height:28px;padding:0 6px;border-radius:7px;font-size:.82rem;color:var(--text-2);transition:background .12s}
.fmt-bar .fb:hover{background:var(--hover)}.fmt-bar .fb.on{background:rgba(var(--ac),.14);color:var(--blue)}
.fmt-bar .fb-dd{padding:0 6px 0 9px;color:var(--text);min-width:64px;justify-content:space-between}.fmt-bar .fb-dd .ic{color:var(--text-4)}
.fmt-bar .fb-sep{width:1px;height:18px;background:var(--line-2);margin:0 5px}
.fmt-bar .fb-step{font-size:1rem;min-width:24px}
.fmt-bar .fb-num{width:42px;height:26px;border-radius:6px;border:1px solid var(--line-2);background:var(--paper);text-align:center;font-size:.8rem;padding:0 2px;-moz-appearance:textfield}.fmt-bar .fb-num::-webkit-inner-spin-button{display:none}
.fmt-bar .fb-a{font-weight:700;border-bottom:3px solid var(--blue);line-height:1;padding-bottom:1px}
.fmt-bar .fb-ol{font-size:.72rem;font-weight:600}
.fmt-bar .fb b,.fmt-bar .fb i,.fmt-bar .fb u,.fmt-bar .fb s{font-family:var(--serif);font-size:.9rem}
@media (max-width:900px){.fmt-bar{padding:4px 6px}.fmt-bar .fb-dd{min-width:0}.fmt-bar .fb-sep{margin:0 2px}}
.fmt-bar{gap:0;padding:4px 8px}.fmt-bar .fb{min-width:26px;padding:0 4px;border-radius:6px}.fmt-bar .fb-sep{margin:0 3px}.fmt-bar .fb-dd{min-width:0;padding:0 4px 0 7px}.fmt-bar .fb-num{width:38px}
.notes-main{container-type:inline-size}
@container (max-width:760px){.fmt-bar .fb-opt{display:none}.fmt-bar .fb-sep{margin:0 1px}}
@container (max-width:620px){.fmt-bar .fb-dd:nth-of-type(2){display:none}}
.fmt-bar .fb-hl{display:inline-flex;flex-direction:column;align-items:center;line-height:1}.fmt-bar .fb-hl::after{content:"";display:block;width:14px;height:3px;border-radius:2px;background:#f7d774;margin-top:1px}
.fmt-bar .fb-hl.none::after{background:var(--line-2)}.fmt-bar .fb-hl.hl-y::after{background:#f7d774}.fmt-bar .fb-hl.hl-g::after{background:#8fd6a5}.fmt-bar .fb-hl.hl-b::after{background:#9cc0ff}.fmt-bar .fb-hl.hl-p::after{background:#d4b8ff}.fmt-bar .fb-hl.hl-r::after{background:#ffb3b3}
.fmt-bar .fb-a{border-color:var(--text-3)}
@container (max-width:780px){.fmt-bar .fb-ins .fb-lbl{display:none}.fmt-bar .fb-ins{padding:0 3px 0 5px}}
.fmt-bar .fb-font{max-width:120px}.fmt-bar .fb-font .fb-lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ============ 汤圆对话框：AI 聊天式样式 ============ */
.seal-intro h3{font-size:1.05rem;font-weight:600;margin:4px 0 6px;color:var(--text)}
.seal-hints{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:4px 0 0}
.seal-hints button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:9px 11px;border-radius:12px;background:var(--hover);color:var(--text-2);font-size:.78rem;line-height:1.4;text-align:left}
.seal-hints button:hover{background:var(--hover-2);color:var(--text)}
.seal-hints .sh-q{flex:none;white-space:normal;overflow:visible;text-overflow:clip;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.seal-hints .sh-k{display:flex;gap:4px}.seal-hints .sh-k i{font-style:normal;font-size:.66rem;padding:1px 6px;border-radius:999px;background:rgba(var(--ac),.1);color:var(--blue)}
.seal-panel:not(.big) .seal-hints{grid-template-columns:1fr}
.sm.me{border-radius:18px;border-bottom-right-radius:6px;padding:8px 14px;background:var(--hover-2)}
.sm.bot .sm-t.md{font-size:.86rem;line-height:1.65}
.sm-t.md p{margin:0 0 6px}.sm-t.md p:last-child{margin-bottom:0}.sm-t.md ul,.sm-t.md ol{margin:4px 0 6px 18px}.sm-t.md li{margin:2px 0}
.sm-t.md table{border-collapse:collapse;width:100%;margin:6px 0;font-size:.8rem}.sm-t.md th,.sm-t.md td{border:1px solid var(--line-2);padding:6px 8px;text-align:left;vertical-align:top}.sm-t.md th{background:var(--hover);font-weight:600}
.sm-t.md code{font-family:var(--mono);font-size:.85em;background:var(--code-bg);padding:1px 4px;border-radius:3px}.sm-t.md pre{background:var(--code-bg);padding:8px 10px;border-radius:8px;overflow:auto;font-size:.78rem}
.sm-acts{display:flex;gap:2px;margin-top:4px;opacity:0;transition:opacity .15s}.sm:hover .sm-acts,.sm:last-child .sm-acts{opacity:1}
.sm-acts button{width:26px;height:24px;border-radius:6px;display:grid;place-items:center;color:var(--text-4)}.sm-acts button:hover{background:var(--hover);color:var(--text)}
/* 输入框：文字在上，底栏在下；聚焦时渐变描边 */
.seal-form{flex-direction:column;align-items:stretch;gap:0;padding:0;border-radius:16px;border:1.5px solid transparent;background:linear-gradient(var(--paper),var(--paper)) padding-box,linear-gradient(90deg,var(--line-2),var(--line-2)) border-box;box-shadow:0 1px 2px rgba(20,20,20,.04)}
.seal-form:hover{box-shadow:0 1px 2px rgba(20,20,20,.04)}
.seal-form:focus-within{box-shadow:0 0 0 4px rgba(var(--ac),.1);background:linear-gradient(var(--paper),var(--paper)) padding-box,linear-gradient(90deg,#4f7cf5,#a78bfa) border-box}
.seal-form textarea{padding:11px 14px 4px;min-height:40px}
.sf-bar{display:flex;align-items:center;gap:4px;padding:4px 8px 8px 8px}
.sf-b{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 9px;border-radius:999px;font-size:.76rem;color:var(--text-2);transition:background .15s}.sf-b:hover{background:var(--hover)}.sf-b .ic{color:var(--text-3)}
.sf-cnt{font-size:.7rem;color:var(--text-4);font-variant-numeric:tabular-nums;margin-right:6px}.sf-cnt.warn{color:var(--sw-)}
.seal-send{border-radius:999px;width:32px;height:32px}
.sf-note{text-align:center;font-size:.68rem;color:var(--text-4);margin-top:6px}
/* 拆解卡：类型标签 + 时间线预览 */
.ac-tag{padding:1px 7px;border-radius:999px;background:var(--hover);color:var(--text-3);font-size:.68rem}
.sp-tl{border-top:1px solid var(--line);padding:8px 12px 10px;background:color-mix(in srgb,var(--hover) 40%,transparent)}
.sp-h{display:flex;align-items:baseline;gap:8px;font-size:.72rem;font-weight:600;color:var(--text-2);margin-bottom:6px}.sp-h small{font-weight:400;color:var(--text-4)}
.sp-row{display:grid;grid-template-columns:34px 86px minmax(0,1fr);align-items:center;gap:8px;min-height:26px}
.sp-day{font-size:.68rem;color:var(--text-4)}.sp-time{font-size:.72rem;color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap}
.sp-track{position:relative;height:20px;border-radius:6px;background:var(--hover)}
.sp-bar{position:absolute;left:0;top:0;height:100%;border-radius:6px;background:rgba(var(--ac),.18);display:flex;align-items:center;gap:5px;padding:0 7px;font-size:.7rem;color:var(--text);white-space:nowrap;overflow:hidden;font-style:normal}
.sp-bar b{font-weight:600;color:var(--blue)}

/* ============ 汤圆对话框：高级感（细线、低对比描边、渐变点睛、微光） ============ */
.seal-panel{--sg1:#15171a;--sg2:#3a3d43;--sg3:#3f8f62;--seal-grad:var(--ink);border-radius:22px;box-shadow:0 0 0 1px rgba(255,255,255,.9),0 1px 0 rgba(255,255,255,.6) inset,0 30px 80px -30px rgba(40,60,120,.35),0 2px 8px -2px rgba(20,30,50,.06)}
html[data-theme="dark"] .seal-panel{--sg1:#f2f1ee;--sg2:#cfcecb;--sg3:#5cc083;background:color-mix(in srgb,#141826 98%,transparent);box-shadow:0 0 0 1px rgba(255,255,255,.08),0 1px 0 rgba(255,255,255,.06) inset,0 40px 90px -30px rgba(0,0,0,.8)}
.seal-panel .ic{stroke-width:1.5}
.seal-h b{font-weight:600;letter-spacing:-.01em}
.seal-h small{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;letter-spacing:.02em;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--text-3)}
.seal-id .dot.on,.seal-avw .dot.on{background:var(--sg3);box-shadow:0 0 0 3px color-mix(in srgb,var(--sg3) 22%,transparent)}
/* 空状态：渐变标题，提示卡用描边而不是灰底 */
.seal-intro h3{font-size:1.15rem;font-weight:700;letter-spacing:-.02em;color:var(--text)}
.seal-intro p{color:var(--text-3);font-size:.82rem}
.seal-hints button{background:transparent;border:1px solid var(--line);border-radius:14px;padding:11px 13px;transition:border-color .18s,transform .25s var(--ease),box-shadow .25s}
.seal-hints button:hover{background:transparent;border-color:var(--text-4);transform:translateY(-1px)}
.seal-hints .sh-q{color:var(--text)}
.seal-hints .sh-k i{background:transparent;border:1px solid var(--line);color:var(--text-3);padding:1px 7px;font-size:.64rem;letter-spacing:.02em}
/* 消息 */
.sm.me{background:transparent;border:1px solid var(--line);border-radius:18px 18px 6px 18px;color:var(--text)}
html[data-theme="dark"] .sm.me{background:rgba(255,255,255,.04)}
.sm-acts button{width:28px;height:26px;border-radius:999px}.sm-acts button:hover{background:transparent;color:var(--text);box-shadow:inset 0 0 0 1px var(--line-2)}
/* 卡片：发丝边、无底色分隔；勾选框自定义 */
.ac{border-radius:16px;box-shadow:0 0 0 1px var(--line),0 12px 40px -30px rgba(40,60,120,.35)}
html[data-theme="dark"] .ac{background:rgba(255,255,255,.025);box-shadow:0 0 0 1px rgba(255,255,255,.08)}
.ac-h{padding:11px 14px 8px;font-size:.78rem;letter-spacing:-.005em}.ac-h small{color:var(--text-4);font-size:.7rem}
.ac-row{padding:9px 14px;border-top:1px solid var(--line)}.ac-row:hover{background:color-mix(in srgb,var(--hover) 60%,transparent)}
.ac-row input[type=checkbox]{appearance:none;-webkit-appearance:none;width:16px;height:16px;border-radius:5px;border:1.5px solid var(--line-2);background:transparent;position:relative;cursor:pointer;transition:border-color .15s,background .15s}
.ac-row input[type=checkbox]:checked{border-color:transparent;background:var(--seal-grad)}
.ac-row input[type=checkbox]:checked::after{content:"";position:absolute;left:4.5px;top:1.5px;width:4px;height:8px;border:solid var(--bg);border-width:0 1.8px 1.8px 0;transform:rotate(45deg)}
.ac-row input[type=checkbox]:disabled{opacity:.7;cursor:default}
.ac-n{width:20px;height:20px;background:transparent;border:1px solid var(--line-2);color:var(--text-3);font-family:var(--mono);font-size:.62rem;font-weight:500}
.ac-t{font-weight:500;letter-spacing:-.005em}
.ac-k{color:var(--text-4)}
.ac-tag{background:transparent;border:1px solid var(--line);color:var(--text-3);letter-spacing:.02em;font-size:.64rem;padding:1px 7px}
.ac-m{font-family:var(--mono);font-size:.7rem;color:var(--text-3)}
.ac-f{background:transparent;border-top:1px solid var(--line);padding:9px 12px 9px 14px}
.ac .btn.primary{background:var(--ink);color:var(--bg);border-color:transparent;box-shadow:none}.ac .btn.primary:hover:not(:disabled){background:var(--ink);opacity:.88}
.ac .btn.sm{border-radius:999px;padding:0 12px}
.ac.saved{box-shadow:0 0 0 1px color-mix(in srgb,var(--sg3) 55%,transparent),0 0 24px -12px color-mix(in srgb,var(--sg3) 60%,transparent)}
.ac-ok{color:var(--sg3)}
.ac-go{color:var(--text-3)}.ac-go:hover{background:transparent;box-shadow:inset 0 0 0 1px var(--line-2);color:var(--text)}
/* 时间线预览：渐变条 + 微光 */
.sp-tl{background:transparent;border-top:1px solid var(--line);padding:10px 14px 12px}
.sp-h{font-size:.74rem}.sp-h small{letter-spacing:.01em}
.sp-row{grid-template-columns:34px 88px minmax(0,1fr);min-height:28px}
.sp-day{font-size:.66rem;letter-spacing:.04em;color:var(--text-4)}.sp-time{font-family:var(--mono);font-size:.68rem}
.sp-track{height:22px;border-radius:999px;background:color-mix(in srgb,var(--hover) 70%,transparent)}
.sp-bar{border-radius:999px;background:color-mix(in srgb,var(--ink) 9%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 22%,transparent);padding:0 9px;font-size:.7rem}
.sp-bar b{font-family:var(--mono);font-weight:500;color:var(--text-2)}
/* 输入框 */
.seal-form{border-radius:18px;background:linear-gradient(var(--paper),var(--paper)) padding-box,linear-gradient(90deg,var(--line),var(--line)) border-box;box-shadow:0 10px 30px -24px rgba(40,60,120,.35)}
html[data-theme="dark"] .seal-form{background:linear-gradient(#171b2a,#171b2a) padding-box,linear-gradient(90deg,rgba(255,255,255,.1),rgba(255,255,255,.1)) border-box}
.seal-form:focus-within{background:linear-gradient(var(--paper),var(--paper)) padding-box,linear-gradient(90deg,var(--text-4),var(--text-4)) border-box;box-shadow:0 14px 40px -24px rgba(20,24,40,.35)}
html[data-theme="dark"] .seal-form:focus-within{background:linear-gradient(#171b2a,#171b2a) padding-box,linear-gradient(90deg,rgba(255,255,255,.3),rgba(255,255,255,.3)) border-box}
.sf-b{border:1px solid transparent;color:var(--text-3)}.sf-b:hover{background:transparent;border-color:var(--line-2);color:var(--text)}.sf-b .ic{color:var(--text-4)}
.sf-cnt{font-family:var(--mono);font-size:.66rem;letter-spacing:.02em}
.seal-send{background:var(--ink);color:var(--bg);box-shadow:none}.seal-send:hover:not(:disabled){background:var(--ink);opacity:.88;transform:translateY(-1px)}.seal-send:disabled{opacity:.35;box-shadow:none}
.sf-note{letter-spacing:.01em}
.sm.typing i{background:var(--text-3)}

/* 空状态：汤圆本尊在中间，问候语在下面，输入框居中；示例句子是一行小胶囊；模式胶囊在输入框底栏 */
.seal-intro{display:flex;flex-direction:column;align-items:center;text-align:center;padding:18px 8px 6px}
.seal-panel.big .seal-intro,.seal-panel.full .seal-intro{padding-top:40px}
.seal-hero{position:relative;width:132px;height:132px;display:grid;place-items:center;margin-bottom:6px;animation:seal-bob 4.5s ease-in-out infinite}
.seal-panel.big .seal-hero,.seal-panel.full .seal-hero{width:180px;height:180px}
.seal-hero::before{content:"";position:absolute;inset:14%;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--ink) 7%,transparent),transparent);z-index:0}
.seal-hero img,.seal-hero svg{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 18px 24px rgba(20,24,40,.18))}
@keyframes seal-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media (prefers-reduced-motion:reduce){.seal-hero{animation:none}}
.seal-intro h3{font-size:1.25rem;margin:2px 0 4px}.seal-panel.big .seal-intro h3,.seal-panel.full .seal-intro h3{font-size:1.5rem}
.seal-intro p{max-width:460px;margin:0 auto 14px;font-size:.8rem;color:var(--text-3)}
.seal-hints{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:0;max-width:560px}
.seal-hints button{flex-direction:row;align-items:center;gap:6px;padding:0 12px;height:30px;border-radius:999px;font-size:.76rem;color:var(--text-2);white-space:nowrap}
.seal-hints .sh-q{display:block;-webkit-line-clamp:1;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seal-hints .sh-k{display:none}
.seal-panel:not(.big):not(.full) .seal-hints{grid-template-columns:none}
.sf-b.on{border-color:var(--ink);color:var(--text);background:transparent}

/* ============ 汤圆对话框：侧边栏 / 活的汤圆 / 地铁式时间线 / 发送胶囊 ============ */
.seal-body{display:flex;flex:1;min-height:0}
.seal-main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}
.seal-side{width:208px;flex:none;display:flex;flex-direction:column;gap:6px;padding:6px 10px 12px 14px;border-right:1px solid var(--line);overflow:auto;scrollbar-width:thin}
.ss-new{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:.8rem;font-weight:500;margin:4px 0 8px}
.ss-new:hover{opacity:.88}
.ss-h{font-size:.66rem;letter-spacing:.04em;color:var(--text-4);padding:8px 6px 4px}
.ss-row{display:flex;align-items:center;gap:4px;min-height:32px;padding:4px 6px 4px 10px;border-radius:10px;cursor:pointer;color:var(--text-2);font-size:.78rem;transition:background .15s}
.ss-row:hover{background:var(--hover)}.ss-row.cur{background:var(--hover-2);color:var(--text)}
.ss-t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ss-del{width:22px;height:22px;opacity:0;color:var(--text-4)}.ss-row:hover .ss-del{opacity:1}
.ss-empty{padding:20px 8px;font-size:.76rem;color:var(--text-4);text-align:center}
.seal-panel:not(.big) .seal-side{display:none}
@media (max-width:900px){.seal-side{display:none}}
/* 活的汤圆停在占位格里：格子本身留空，截图藏掉 */
.seal-hero.docked img,.seal-hero.docked svg{visibility:hidden}
.seal-hero.docked{animation:none}
.seal-panel.big .seal-hero,.seal-panel.full .seal-hero{width:150px;height:150px}
/* 发送：墨色胶囊，带文字 */
.seal-send{width:auto;height:32px;padding:0 13px 0 11px;border-radius:999px;display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:500}
.seal-send .ic{stroke-width:2}
.sf-seg{display:inline-flex;margin-left:2px}.sf-seg .seg{height:28px;padding:2px}.sf-seg .seg button{height:24px;padding:0 10px;font-size:.74rem}
/* 地铁式时间线：左边时间，中间一条竖线和站点，右边站名 */
.sp-metro{position:relative;display:flex;flex-direction:column}
.sp-stop,.sp-dayrow{display:grid;grid-template-columns:48px 22px minmax(0,1fr);align-items:center;gap:0 10px;position:relative}
.sp-stop{min-height:40px}.sp-dayrow{min-height:24px}
.sp-stop::before,.sp-dayrow::before{content:"";position:absolute;left:calc(48px + 10px + 11px - 1px);top:0;bottom:0;width:2px;background:var(--line-2)}
.sp-metro>div:first-child .sp-dayrow::before{top:50%}.sp-metro>div:last-child .sp-stop::before{bottom:50%}
.sp-t{font-size:.76rem;color:var(--text-2);text-align:right;font-variant-numeric:tabular-nums}
.sp-node{position:relative;z-index:1;width:22px;height:22px;border-radius:50%;background:var(--paper);border:2px solid var(--ink);display:grid;place-items:center}
.sp-node i{font-style:normal;font-size:.62rem;font-weight:600;color:var(--text)}
.sp-node.day{width:10px;height:10px;margin:0 auto;border-width:2px;background:var(--ink)}
.sp-daylbl{font-size:.7rem;color:var(--text-4);letter-spacing:.03em}
.sp-lbl{display:flex;flex-direction:column;gap:1px;min-width:0}.sp-lbl b{font-weight:500;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-lbl small{font-size:.7rem;color:var(--text-4)}
html[data-theme="dark"] .sp-node{background:#171b2a}
/* 数字不用等宽字体 */
.ac-m,.sf-cnt,.ac-n,.sp-time{font-family:inherit}

/* ---- 汤圆对话框：展开时侧栏通顶、头部归到主栏；头部的 AI 来源选择 ---- */
.seal-panel.big .seal-side{padding:14px 10px 12px 14px;gap:4px}
.seal-panel.full .seal-side{width:240px;padding:14px 12px 12px 16px}
.seal-panel.big .seal-side .ss-new{margin:10px 0 0;flex:none}
.seal-side{overflow:hidden}.ss-list{flex:1;min-height:0;overflow:auto;scrollbar-width:thin;display:flex;flex-direction:column;gap:4px}
.seal-panel.big .seal-main .seal-h{padding:14px 18px 6px 28px}
.seal-panel.big .seal-main .seal-hc{max-width:none}
.seal-agent{display:inline-flex;align-items:center;gap:2px;height:24px;padding:0 5px 0 7px;margin-left:-2px;border-radius:8px;border:0;background:transparent;color:var(--text-3);font-size:.76rem;font-weight:500;line-height:1;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}
.seal-h.pinned .seal-id b::after{display:none}
.seal-agent:hover{background:var(--hover);color:var(--text)}
.seal-agent svg{opacity:.6}

/* ---- 汤圆确认卡：去掉外框，变成一段轻列表；每一行都能直接改 ---- */
.ac,html[data-theme="dark"] .ac{margin:10px -6px 0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.ac-h{padding:2px 8px 6px;font-size:.7rem;font-weight:500;letter-spacing:.02em;color:var(--text-4)}.ac-h small{color:var(--text-4)}
.ac-row{padding:7px 8px;min-height:38px;border-top:0;border-radius:10px;cursor:default;align-items:flex-start}
.ac-row:hover{background:color-mix(in srgb,var(--hover) 70%,transparent)}
.ac-row input[type=checkbox]{margin-top:3px}
.ac-b{flex-wrap:wrap;row-gap:4px;align-items:baseline}
.ac-t{white-space:normal;overflow:visible;text-overflow:clip;border-radius:5px;padding:1px 4px;margin:-1px -4px;outline:0;min-width:2em}
.ac-t[contenteditable=true]:hover{background:var(--hover-2)}.ac-t[contenteditable=true]:focus{background:var(--paper);box-shadow:0 0 0 1.5px var(--ink)}
.ac-subs{flex-basis:100%;display:flex;flex-wrap:wrap;gap:4px 6px;margin-top:2px}
.ac-sub{display:inline-flex;align-items:center;gap:2px;font-size:.72rem;color:var(--text-3);border-radius:6px;padding:1px 2px 1px 6px;background:var(--hover)}
.ac-sub [contenteditable]{outline:0;border-radius:4px;padding:0 2px}.ac-sub [contenteditable]:focus{background:var(--paper);box-shadow:0 0 0 1.5px var(--ink);color:var(--text)}
.ac-x{width:16px;height:16px;border-radius:4px;color:var(--text-4);font-size:.8rem;line-height:1;display:grid;place-items:center}.ac-x:hover{background:var(--hover-2);color:var(--text)}
.ac-add{font-size:.7rem;color:var(--text-4);padding:1px 6px;border-radius:6px;border:1px dashed var(--line-2)}.ac-add:hover{color:var(--text);border-color:var(--text-4)}
.ac-m{align-items:center;gap:2px;margin-top:2px;font-family:inherit;font-variant-numeric:tabular-nums}
.ac-row .ac-m{display:flex}
.ac-chip{display:inline-flex;align-items:center;height:22px;padding:0 6px;border-radius:6px;font-size:.72rem;color:var(--text-3)}
.btn-chip{cursor:pointer}.btn-chip:hover{background:var(--hover-2);color:var(--text)}
.ac-row .pick{display:inline-block}
.ac-row .pick-btn{height:22px;width:auto;padding:0 6px;gap:4px;border:0;background:transparent;font-size:.72rem;color:var(--text-3);border-radius:6px;font-variant-numeric:tabular-nums}
.ac-row .pick-btn:hover{background:var(--hover-2);color:var(--text)}.ac-row .pick-btn.is-empty{color:var(--text-4)}
.ac-row .pick-btn>svg:not(.caret){display:none}.ac-row .pick-btn .caret{opacity:.5}
.ac-row .pick.inf .pick-btn,.ac-chip.inf{color:var(--sw-);text-decoration:underline dotted;text-underline-offset:3px}
.ac-f{margin:6px 8px 0;padding:10px 0 0;border-top:1px solid var(--line);background:transparent}
.ac.sup .ac-h{padding:4px 8px}
.ac.steps .ac-row{align-items:center}.ac.steps .ac-m{margin-top:0}
.sp-tl{margin:6px 8px 0;padding:10px 0 0;border-top:1px solid var(--line);background:transparent}

/* ---- 汤圆空状态：整组竖向居中，输入框贴在问候下面，示例改成卡片网格；侧栏搜索 / 收起；头部分隔线 ---- */
.seal-panel.big .seal-col{max-width:760px}.seal-panel.big .seal-col.seal-cw{max-width:816px}
.seal-panel.big .seal-main .seal-h{border-bottom:1px solid var(--line);padding-bottom:10px}
.seal-panel.big .seal-msgs{padding-top:18px}
.seal-panel.big .seal-msgs .seal-col:has(.seal-intro){min-height:100%;justify-content:center}
.seal-panel.big .seal-intro,.seal-panel.full .seal-intro{padding:12px 0 8px}
.seal-panel.big .seal-hero,.seal-panel.full .seal-hero{width:120px;height:120px;margin-bottom:2px}
.seal-panel.big .seal-intro h3,.seal-panel.full .seal-intro h3{font-size:1.7rem;font-weight:700;letter-spacing:-.02em;margin:4px 0 6px}
.seal-panel.big .seal-intro p{max-width:none;font-size:.84rem;margin-bottom:18px}
.seal-intro .seal-cw{width:100%;max-width:none!important;padding:0!important;margin:0 0 14px}
.seal-intro .seal-cw .sf-note{display:none}
.seal-panel.big .seal-hints,.seal-panel.full .seal-hints{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;max-width:none;margin:0}
.seal-panel.big .seal-hints button,.seal-panel.full .seal-hints button{flex-direction:row;align-items:flex-start;gap:10px;height:auto;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:transparent;white-space:normal;text-align:left;color:var(--text-2);transform:none}
.seal-panel.big .seal-hints button:hover{border-color:var(--text-4);background:color-mix(in srgb,var(--hover) 50%,transparent);transform:none}
.sh-i{width:26px;height:26px;border-radius:8px;background:var(--hover);display:grid;place-items:center;color:var(--text-2);flex:none}
.sh-b{display:flex;flex-direction:column;gap:2px;min-width:0}
.sh-h{font-size:.78rem;font-weight:600;color:var(--text);line-height:1.3}
.seal-hints .sh-q{font-size:.72rem;color:var(--text-4);white-space:normal;max-width:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.45;text-overflow:clip}
.seal-panel:not(.big) .seal-hints{display:flex;flex-direction:column;gap:4px;max-width:none;align-self:stretch}
.seal-panel:not(.big) .seal-hints button{height:auto;padding:7px 10px;border-radius:10px;gap:8px;white-space:normal;text-align:left;justify-content:flex-start}
.seal-panel:not(.big) .seal-hints .sh-q{display:none}
.seal-panel:not(.big) .sh-i{width:22px;height:22px}
@media (max-width:900px){.seal-panel.big .seal-hints{grid-template-columns:1fr 1fr}}
.ss-search{display:flex;align-items:center;gap:6px;height:32px;padding:0 10px;border-radius:9px;background:var(--hover);color:var(--text-4);margin-bottom:8px;flex:none}
.ss-search input{flex:1;min-width:0;border:0;background:transparent;font-size:.78rem;color:var(--text);outline:0;font-family:inherit}
.ss-search input::-webkit-search-cancel-button{-webkit-appearance:none}
.seal-sidebtn{margin-right:2px;color:var(--text-3)}

/* ---- 汤圆对话框「冷光」：黑白主色之上只加光（设置 → 汤圆光效 可关） ---- */
@property --seal-ang{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes seal-ring{to{--seal-ang:360deg}}
@keyframes seal-breathe{0%,100%{box-shadow:0 0 0 2px var(--paper),0 0 0 3px color-mix(in srgb,var(--sg3,#5cc083) 25%,transparent),0 0 6px 1px color-mix(in srgb,var(--sg3,#5cc083) 35%,transparent)}50%{box-shadow:0 0 0 2px var(--paper),0 0 0 5px color-mix(in srgb,var(--sg3,#5cc083) 8%,transparent),0 0 12px 3px color-mix(in srgb,var(--sg3,#5cc083) 55%,transparent)}}
@keyframes seal-sweep{from{transform:translateX(-130%) skewX(-18deg)}to{transform:translateX(130%) skewX(-18deg)}}
html:not([data-glow="0"]) .seal-intro{position:relative;isolation:isolate}
html:not([data-glow="0"]) .seal-intro::before{content:"";position:absolute;left:50%;top:72px;width:460px;height:460px;transform:translate(-50%,-50%);z-index:-1;pointer-events:none;border-radius:50%;
  background:radial-gradient(circle at center,color-mix(in srgb,var(--ink) 5%,transparent),color-mix(in srgb,var(--ink) 1.5%,transparent) 40%,transparent 70%),
  radial-gradient(circle,color-mix(in srgb,var(--ink) 16%,transparent) 1px,transparent 1.2px) 0 0/14px 14px;
  -webkit-mask-image:radial-gradient(circle at center,#000 20%,transparent 68%);mask-image:radial-gradient(circle at center,#000 20%,transparent 68%)}
html[data-theme="dark"]:not([data-glow="0"]) .seal-intro::before{background:radial-gradient(circle at center,rgba(255,255,255,.14),rgba(255,255,255,.04) 40%,transparent 70%),radial-gradient(circle,rgba(255,255,255,.28) 1px,transparent 1.2px) 0 0/14px 14px}
html:not([data-glow="0"]) .seal-form:focus-within{border-color:transparent;background:linear-gradient(var(--paper),var(--paper)) padding-box,conic-gradient(from var(--seal-ang),var(--line) 0 62%,color-mix(in srgb,var(--ink) 70%,transparent) 78%,var(--line) 92%) border-box;animation:seal-ring 5s linear infinite;box-shadow:0 10px 30px -22px color-mix(in srgb,var(--ink) 45%,transparent)}
html[data-theme="dark"]:not([data-glow="0"]) .seal-form:focus-within{background:linear-gradient(#171b2a,#171b2a) padding-box,conic-gradient(from var(--seal-ang),rgba(255,255,255,.1) 0 62%,rgba(255,255,255,.75) 78%,rgba(255,255,255,.1) 92%) border-box;box-shadow:0 0 28px -10px rgba(255,255,255,.14)}
html:not([data-glow="0"]) .seal-hints button{position:relative;overflow:hidden}
html:not([data-glow="0"]) .seal-hints button::after{content:"";position:absolute;top:-20%;bottom:-20%;left:0;width:45%;pointer-events:none;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--ink) 6%,transparent),transparent);transform:translateX(-130%) skewX(-18deg)}
html[data-theme="dark"]:not([data-glow="0"]) .seal-hints button::after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent)}
html:not([data-glow="0"]) .seal-hints button:hover::after{animation:seal-sweep .7s ease-out forwards}
html:not([data-glow="0"]) .seal-hints button:hover .sh-i{box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 18%,transparent),0 0 10px color-mix(in srgb,var(--ink) 12%,transparent)}
html:not([data-glow="0"]) .seal-avw .dot.on{animation:seal-breathe 2.8s ease-in-out infinite}
html:not([data-glow="0"]) .seal-hero.docked::before{inset:4%;background:radial-gradient(closest-side,color-mix(in srgb,var(--ink) 10%,transparent),transparent 72%)}
@media (prefers-reduced-motion:reduce){.seal-form:focus-within,.seal-avw .dot.on,.seal-hints button:hover::after{animation:none!important}}

/* ---- 汤圆强调色：青绿 / 冰蓝 / 无（设置 → 汤圆强调色）。只用在发送键、保存键、状态点和光晕 ---- */
html[data-accent="teal"]{--seal-ac:#139f88;--seal-ac-on:#fff}
html[data-accent="teal"][data-theme="dark"]{--seal-ac:#5dd6c0;--seal-ac-on:#06221d}
html[data-accent="ice"]{--seal-ac:#2f7fe0;--seal-ac-on:#fff}
html[data-accent="ice"][data-theme="dark"]{--seal-ac:#7fb3ff;--seal-ac-on:#061a33}
html[data-accent]:not([data-accent="none"]) .seal-send{background:var(--seal-ac);color:var(--seal-ac-on)}
html[data-accent]:not([data-accent="none"]) .seal-send:hover:not(:disabled){background:var(--seal-ac);opacity:.9}
html[data-accent]:not([data-accent="none"]) .ac-save{background:var(--seal-ac);color:var(--seal-ac-on);box-shadow:none}
html[data-accent]:not([data-accent="none"]) .ac-save:hover:not(:disabled){background:var(--seal-ac);opacity:.9}
html[data-accent]:not([data-accent="none"]) .seal-id .dot.on,html[data-accent]:not([data-accent="none"]) .seal-avw .dot.on{background:var(--seal-ac);box-shadow:0 0 0 3px color-mix(in srgb,var(--seal-ac) 22%,transparent)}
html[data-accent]:not([data-accent="none"]) .ac-ok{color:var(--seal-ac)}
html[data-accent]:not([data-accent="none"]):not([data-glow="0"]) .seal-avw .dot.on{--sg3:var(--seal-ac)}
html[data-accent]:not([data-accent="none"]):not([data-glow="0"]) .seal-intro::before{background:radial-gradient(circle at center,color-mix(in srgb,var(--seal-ac) 14%,transparent),color-mix(in srgb,var(--seal-ac) 4%,transparent) 40%,transparent 70%),radial-gradient(circle,color-mix(in srgb,var(--ink) 16%,transparent) 1px,transparent 1.2px) 0 0/14px 14px}
html[data-accent]:not([data-accent="none"])[data-theme="dark"]:not([data-glow="0"]) .seal-intro::before{background:radial-gradient(circle at center,color-mix(in srgb,var(--seal-ac) 22%,transparent),color-mix(in srgb,var(--seal-ac) 6%,transparent) 40%,transparent 70%),radial-gradient(circle,rgba(255,255,255,.26) 1px,transparent 1.2px) 0 0/14px 14px}
html[data-accent]:not([data-accent="none"]):not([data-glow="0"]) .seal-form:focus-within{background:linear-gradient(var(--paper),var(--paper)) padding-box,conic-gradient(from var(--seal-ang),var(--line) 0 62%,var(--seal-ac) 78%,var(--line) 92%) border-box;box-shadow:0 10px 30px -20px color-mix(in srgb,var(--seal-ac) 60%,transparent)}
html[data-accent]:not([data-accent="none"])[data-theme="dark"]:not([data-glow="0"]) .seal-form:focus-within{background:linear-gradient(#171b2a,#171b2a) padding-box,conic-gradient(from var(--seal-ang),rgba(255,255,255,.1) 0 62%,var(--seal-ac) 78%,rgba(255,255,255,.1) 92%) border-box;box-shadow:0 0 30px -8px color-mix(in srgb,var(--seal-ac) 40%,transparent)}
html[data-accent]:not([data-accent="none"]):not([data-glow="0"]) .seal-hero.docked::before{background:radial-gradient(closest-side,color-mix(in srgb,var(--seal-ac) 16%,transparent),transparent 72%)}

/* ---- 汤圆：上下文胶囊、针对当前页面的提示词、侧栏入口 ---- */
.sf-ctx{display:flex;padding:10px 12px 0}
.sf-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;height:24px;padding:0 4px 0 8px;border-radius:7px;background:var(--hover);color:var(--text-3);font-size:.72rem}
.sf-chip>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}
.sf-chip button{width:18px;height:18px;border-radius:5px;display:grid;place-items:center;color:var(--text-4)}.sf-chip button:hover{background:var(--hover-2);color:var(--text)}
.seal-form .sf-ctx+textarea{padding-top:8px}
.sh-lbl{align-self:flex-start;font-size:.7rem;color:var(--text-4);margin:0 0 8px 2px;letter-spacing:.02em}
.seal-panel:not(.big) .sh-lbl{margin:2px 0 4px 10px}
.seal-hints button.ctx .sh-h::after{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--ink);opacity:.55;margin-left:6px;vertical-align:middle}
.side-ai{margin-top:auto;display:flex;align-items:center;gap:10px;width:100%;padding:7px 8px;border-radius:var(--r2);color:var(--text-2);font-size:.86rem;text-align:left;transition:background .15s}
.side-ai:hover{background:var(--hover)}
.side-ai-ic{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--ink);color:var(--bg);flex:none}
.side-ai .nl:first-of-type{flex:1}
.side-ai kbd{font-family:inherit;font-size:.66rem;color:var(--text-4);background:none;border:0;padding:0}
.side-ai~.side-user{margin-top:2px}
.side.mini .side-ai{width:44px;height:44px;padding:0;justify-content:center;border-radius:13px}
.seal-fab.ghost{display:none!important}

/* ---- 首页「汤圆今天的建议」、待办上的来源、目标拆出的待办、我的提示词 ---- */
.sugg-card .card-h h3{display:flex;align-items:center;gap:8px}
.sugg-dot{width:7px;height:7px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--ink) 12%,transparent)}
.sugg-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.widget.span-1 .sugg-list,.widget.span-2 .sugg-list{grid-template-columns:1fr}
.sugg{display:flex;align-items:flex-start;gap:10px;padding:10px 10px 10px 12px;border-radius:12px;background:color-mix(in srgb,var(--hover) 60%,transparent);min-width:0}
.sugg-ic{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:var(--paper);color:var(--text-2);flex:none;box-shadow:0 0 0 1px var(--line)}
.sugg-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.sugg-b b{font-size:.84rem;font-weight:600;line-height:1.35}
.sugg-b small{font-size:.72rem;color:var(--text-3);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sugg-a{display:flex;align-items:center;gap:2px;flex:none;align-self:center}
.sugg-x{width:22px;height:22px;opacity:0;color:var(--text-4)}.sugg:hover .sugg-x{opacity:1}
.sugg-none{padding:4px 2px}
@media (max-width:900px){.sugg-list{grid-template-columns:1fr}.sugg-x{opacity:1}}
.src-chip{display:inline-flex;align-items:center;gap:3px;max-width:160px;padding:0 6px;border-radius:6px;background:var(--hover);color:var(--text-3);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.src-chip:hover{color:var(--text);background:var(--hover-2)}
.goal-todos{display:inline-flex;align-items:center;gap:5px;margin-top:10px;font-size:.74rem;color:var(--text-3);text-decoration:none;padding:3px 8px;border-radius:7px;background:var(--hover)}
.goal-todos.ghost{background:transparent;border:1px dashed var(--line-2)}.goal-todos:hover{color:var(--text)}
.pr-list{display:flex;flex-direction:column;gap:10px}
.pr-row{padding:10px 12px;border-radius:12px;border:1px solid var(--line)}
.pr-title{flex:0 1 220px;min-width:120px;height:32px;padding:0 10px;border-radius:8px;border:1px solid var(--line);background:var(--input);font-size:.84rem}
.pr-text{width:100%;margin-top:8px;padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--input);font-size:.84rem;resize:vertical;font-family:inherit;line-height:1.5}
.pr-vars{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.pr-vars button{font-size:.68rem;padding:2px 7px;border-radius:6px;background:var(--hover);color:var(--text-3)}.pr-vars button:hover{color:var(--text);background:var(--hover-2)}
.pr-prev{margin-top:6px}

/* ---- 汤圆对话框对齐细节：头部和侧栏同一条左边线、空状态左对齐、单行卡片说明 ---- */
.seal-panel.big .seal-main .seal-h{padding-left:16px}
.seal-panel.big .seal-side{padding-left:14px}
.ss-empty{text-align:left;padding:10px 8px;font-size:.72rem}
.seal-panel.big .seal-hints .sh-q,.seal-panel.full .seal-hints .sh-q{-webkit-line-clamp:1;white-space:nowrap;text-overflow:ellipsis;display:block}
.seal-panel.big .seal-hints button,.seal-panel.full .seal-hints button{align-items:center}
@media (max-width:900px){
  .seal-panel.big .seal-hints,.seal-panel.full .seal-hints{grid-template-columns:1fr;gap:6px}
  .seal-panel.big .seal-hints button:nth-child(n+5){display:none}
  .seal-panel.big .seal-intro h3,.seal-panel.full .seal-intro h3{font-size:1.3rem}
  .seal-panel.big .seal-hero,.seal-panel.full .seal-hero{width:90px;height:90px}
  .seal-panel.big .seal-main .seal-h{padding-left:12px}
  html:not([data-glow="0"]) .seal-intro::before{width:320px;height:320px;top:52px}
}
@media (min-width:901px){.seal-panel.big .seal-histbtn{display:none}}
@media (max-width:900px){.seal-sidebtn{display:none}}
body.sp-full.sp-cover .seal-fab{opacity:0!important;pointer-events:none}
@media (max-width:900px){body.sp-cover .seal-fab{opacity:0!important;pointer-events:none}.si-more{display:none}}

/* ---- 汤圆对话框：半透明顶栏（无分割线，内容从下面滑过）+ 可折叠成图标条、可拖宽的历史侧栏 ---- */
.seal-panel.big .seal-main{position:relative}
.seal-panel.big .seal-main>.seal-h{position:absolute;top:0;left:0;right:0;z-index:3;border-bottom:0!important;padding:12px 16px 10px;background:transparent;transition:background .2s,box-shadow .2s}
.seal-panel.big .seal-main.scrolled>.seal-h{background:color-mix(in srgb,var(--paper) 72%,transparent);-webkit-backdrop-filter:blur(16px) saturate(1.5);backdrop-filter:blur(16px) saturate(1.5);box-shadow:0 8px 24px -18px rgba(20,24,40,.35)}
html[data-theme="dark"] .seal-panel.big .seal-main.scrolled>.seal-h{background:color-mix(in srgb,#141826 70%,transparent);box-shadow:0 8px 24px -16px rgba(0,0,0,.6)}
.seal-panel.big .seal-main>.seal-msgs{padding-top:60px;-webkit-mask-image:none;mask-image:none}
.seal-panel.big .seal-main>.seal-msgs .seal-col:has(.seal-intro){min-height:calc(100% - 20px)}
.seal-panel.big .seal-side{position:relative;width:var(--ssw,240px);border-right:0;background:color-mix(in srgb,var(--hover) 55%,transparent);padding:12px 10px 12px 12px;gap:2px}
html[data-theme="dark"] .seal-panel.big .seal-side,html[data-theme="dark"] .seal-rail{background:rgba(255,255,255,.025)}
.seal-panel.full .seal-side{width:var(--ssw,240px);padding:12px 10px 12px 12px}
.ss-top{display:flex;align-items:center;gap:4px;margin:0 0 8px;min-height:32px}
.ss-top .ibtn{color:var(--text-3)}.ss-top .ibtn:hover{color:var(--text)}
.ss-ttl{font-size:.78rem;font-weight:600;color:var(--text-2);margin-left:2px}
.seal-panel.big .ss-search{margin-bottom:6px}
.ss-rz{position:absolute;top:0;right:0;bottom:0;width:6px;cursor:col-resize;z-index:2}
.ss-rz::after{content:"";position:absolute;top:0;bottom:0;left:2px;width:2px;background:transparent;transition:background .15s}
.ss-rz:hover::after,body.resizing .ss-rz::after{background:var(--line-2)}
.seal-side.will-close{opacity:.5}
.seal-rail{width:52px;flex:none;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 0;background:color-mix(in srgb,var(--hover) 55%,transparent)}
.seal-rail .ibtn{width:34px;height:34px;border-radius:10px;color:var(--text-3)}.seal-rail .ibtn:hover{color:var(--text);background:var(--hover-2)}
.seal-panel:not(.big) .seal-rail{display:none}
@media (max-width:900px){.seal-rail{display:none}.seal-panel.big .seal-main>.seal-h{padding:10px 12px 8px}}
.seal-panel.big .seal-main>.seal-h{border-top-right-radius:18px}.seal-panel.full .seal-main>.seal-h{border-top-right-radius:16px}

/* ---- 汤圆对话框头部：只有文字「汤圆 · 模型 ⌄」，不放头像和状态点；忙 / 出错才显示 ---- */
.seal-id.seal-agent{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 8px;margin-left:-8px;border:0;border-radius:9px;background:transparent;color:var(--text);font-size:.9rem;font-weight:400;cursor:pointer;min-width:0}
.seal-id.seal-agent:hover{background:var(--hover)}
.seal-id.seal-agent b{font-weight:600;letter-spacing:-.01em}
.sa-sep{color:var(--text-4)}
.sa-m{color:var(--text-3);white-space:nowrap}
.seal-id.seal-agent>svg{color:var(--text-4);margin-left:-2px}
.sa-warn{color:var(--text-3);font-size:.78rem;white-space:nowrap}
.sa-busy{display:inline-flex;gap:3px;align-items:center;margin-left:2px}
.sa-busy i{width:4px;height:4px;border-radius:50%;background:var(--text-3);animation:sa-dot 1.1s ease-in-out infinite}
.sa-busy i:nth-child(2){animation-delay:.15s}.sa-busy i:nth-child(3){animation-delay:.3s}
@keyframes sa-dot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}
@media (prefers-reduced-motion:reduce){.sa-busy i{animation:none;opacity:.6}}

/* ===================================================================
   默认主题「墨白」（skin=glass，名字沿用以免旧数据失效）：跟汤圆对话框同一套——
   黑白中性、细线、浅灰底，强调色就是墨色，不用彩色渐变光斑。分类颜色（标签、时间块类型）照旧
   =================================================================== */
html[data-skin="glass"][data-theme="light"],html[data-skin="glass"][data-theme="light"][data-fx]{
  --bg:#f6f6f4;--side:#f6f6f4;--paper:#ffffff;--card-bg:#ffffff;
  --blue:#15171a;--ac:21,23,26;--on-ac:#ffffff;--sel:rgba(21,23,26,.12);--cal-bg:#f2f2f0;--code-bg:#f3f3f1;
  --glass:#ffffff;--glass-side:#f6f6f4;--glass-line:transparent;--glass-edge:rgba(21,23,26,.08);--glass-edge-h:rgba(21,23,26,.14);--glass-hl:transparent;
  --glass-shadow:0 1px 2px rgba(21,23,26,.03);--glass-shadow-h:0 1px 2px rgba(21,23,26,.04),0 12px 32px -22px rgba(21,23,26,.22);
  --blob1:transparent;--blob2:transparent;--blob3:transparent;--blob4:transparent;--liq:rgba(21,23,26,.06);
}
html[data-skin="glass"][data-theme="dark"],html[data-skin="glass"][data-theme="dark"][data-fx]{
  --bg:#111215;--side:#111215;--paper:#18191d;--card-bg:#18191d;
  --blue:#ecebe8;--ac:236,235,232;--on-ac:#141518;--sel:rgba(236,235,232,.2);--cal-bg:#1f2024;--code-bg:#1d1e22;
  --glass:#18191d;--glass-side:#111215;--glass-line:transparent;--glass-edge:rgba(255,255,255,.07);--glass-edge-h:rgba(255,255,255,.13);--glass-hl:transparent;
  --glass-shadow:0 0 0 0 transparent;--glass-shadow-h:0 14px 34px -22px rgba(0,0,0,.7);
  --blob1:transparent;--blob2:transparent;--blob3:transparent;--blob4:transparent;--liq:rgba(255,255,255,.08);
}
html[data-skin="glass"] .card,html[data-skin="glass"] .side{-webkit-backdrop-filter:none;backdrop-filter:none}
html[data-skin="glass"] .side{border-right:0;box-shadow:inset -1px 0 0 var(--line)}
html[data-skin="glass"] .btn.primary{box-shadow:none}
html[data-skin="glass"] .btn.primary:hover:not(:disabled){opacity:.88}
html[data-skin="glass"] .seal-panel{background:var(--paper)}
html[data-skin="glass"][data-theme="dark"] .seal-panel{background:#18191d}
html[data-skin="glass"][data-theme="dark"] .seal-form,html[data-skin="glass"][data-theme="dark"]:not([data-glow="0"]) .seal-form:focus-within{background:linear-gradient(#18191d,#18191d) padding-box,linear-gradient(90deg,rgba(255,255,255,.1),rgba(255,255,255,.1)) border-box}
html[data-skin="glass"][data-theme="dark"]:not([data-glow="0"]) .seal-form:focus-within{background:linear-gradient(#18191d,#18191d) padding-box,conic-gradient(from var(--seal-ang),rgba(255,255,255,.1) 0 62%,rgba(255,255,255,.75) 78%,rgba(255,255,255,.1) 92%) border-box}
html[data-skin="glass"][data-theme="dark"] .seal-panel.big .seal-main.scrolled>.seal-h{background:color-mix(in srgb,#18191d 72%,transparent)}
html[data-skin="glass"][data-theme="dark"] .sp-node{background:#18191d}
/* 墨白：番茄钟、头像、页面缩略图也换成墨色（休息时的绿色保留，表示状态） */
html[data-skin="glass"][data-theme="light"] .focus-w:not(.break),html[data-skin="glass"][data-theme="light"] .focus-grid,html[data-skin="glass"][data-theme="light"] .focus-page:not(.break){--pg1:#4a4c52;--pg2:#15171a}
html[data-skin="glass"][data-theme="dark"] .focus-w:not(.break),html[data-skin="glass"][data-theme="dark"] .focus-grid,html[data-skin="glass"][data-theme="dark"] .focus-page:not(.break){--pg1:#f4f3f0;--pg2:#c9c7c2}
html[data-skin="glass"][data-theme="dark"] .focus-w:not(.break) .fw-go,html[data-skin="glass"][data-theme="dark"] .focus-w:not(.break) .fw-ctl .pf-btn.main,html[data-skin="glass"][data-theme="dark"] .focus-page:not(.break) .pf-start{color:#141518}
html[data-skin="glass"] .fw-go,html[data-skin="glass"] .pf-start{box-shadow:none}
html[data-skin="glass"] .side-avatar,html[data-skin="glass"] .avatar-pick{background:var(--hover-2)}
html[data-skin="glass"] .th-lines i{background:color-mix(in srgb,var(--ink) 14%,transparent)}

/* ---- 墨白的颜色层级：红 = 现在要处理（过期、紧急、此刻），蓝 = 今天 / 当前，墨 = 主操作，灰 = 其余 ---- */
html[data-skin="glass"][data-theme="light"],html[data-skin="glass"][data-theme="light"][data-fx]{--now:#2b6fd6;--hot:#d2483f;--warn:#c27a1e}
html[data-skin="glass"][data-theme="dark"],html[data-skin="glass"][data-theme="dark"][data-fx]{--now:#6aa5ff;--hot:#ff6b61;--warn:#f0aa4a}
/* 今天 / 当前：蓝 */
html[data-skin="glass"] .mc-d.today{background:var(--now);color:#fff}
html[data-skin="glass"] .wtl-day.today b{background:var(--now);color:#fff}
html[data-skin="glass"] .dchip.today{color:var(--now)}html[data-skin="glass"] .dchip.today b::after{background:var(--now)}
html[data-skin="glass"] .dchip.on.today{background:var(--now);color:#fff;box-shadow:none}html[data-skin="glass"] .dchip.on.today b::after{background:#fff}
html[data-skin="glass"] .cal-d.today{color:var(--now)}
html[data-skin="glass"] .mt-b.cur{box-shadow:0 0 0 1.5px var(--now),0 6px 16px -8px color-mix(in srgb,var(--now) 55%,transparent)}
html[data-skin="glass"] .todo-card .tg-h.today{color:var(--now);font-weight:600}html[data-skin="glass"] .todo-card .tg-h.late{color:var(--hot);font-weight:600}
/* 此刻、过期、紧急：红 */
html[data-skin="glass"] .mt-now{background:var(--hot)}html[data-skin="glass"] .mt-now span{background:var(--hot);color:#fff}
html[data-skin="glass"] .tl .now,html[data-skin="glass"] .tl .now::before{background:var(--hot)}
/* 首页建议：按紧急程度上色，最急的那条最显眼 */
.sugg{position:relative}
html[data-skin="glass"] .sugg.hot .sugg-ic{color:var(--hot);box-shadow:0 0 0 1px color-mix(in srgb,var(--hot) 30%,transparent);background:color-mix(in srgb,var(--hot) 8%,var(--paper))}
html[data-skin="glass"] .sugg.now .sugg-ic{color:var(--now);box-shadow:0 0 0 1px color-mix(in srgb,var(--now) 30%,transparent);background:color-mix(in srgb,var(--now) 8%,var(--paper))}
html[data-skin="glass"] .sugg.warn .sugg-ic{color:var(--warn);box-shadow:0 0 0 1px color-mix(in srgb,var(--warn) 30%,transparent);background:color-mix(in srgb,var(--warn) 8%,var(--paper))}
html[data-skin="glass"] .sugg:first-child .sugg-a .btn{background:var(--ink);color:var(--bg);border-color:transparent}
.sugg.hot .sugg-b b{color:var(--text)}
/* 文字层级：标题更实、元信息更淡 */
html[data-skin="glass"] .card-h h3{font-weight:650;letter-spacing:-.01em}
html[data-skin="glass"] .nav a.active{font-weight:600}
html[data-skin="glass"] .nav a.active svg{color:var(--text)}
html[data-skin="glass"] .group-h.today{color:var(--now)}html[data-skin="glass"] .group-h.late{color:var(--hot)}

/* ===================================================================
   墨白 × Notion 的颜色层级（照 Notion 的取值）
   文字三级：正文 #37352F / 次要 65% / 提示 45%；面板 #FFF、侧栏 #F7F7F5；
   蓝 #2383E2 只给主操作和选中；红 = 今天、此刻、逾期（Notion 日历的做法）；橙 = 提醒；
   其余颜色是 Notion 的九色（文字色 + 浅底色成对）
   =================================================================== */
html[data-skin="glass"][data-theme="light"],html[data-skin="glass"][data-theme="light"][data-fx]{
  --bg:#f7f7f5;--side:#f7f7f5;--paper:#ffffff;--card-bg:#ffffff;
  --ink:#37352f;--text:#37352f;--text-2:rgba(55,53,47,.85);--text-3:rgba(55,53,47,.65);--text-4:rgba(55,53,47,.45);
  --line:rgba(55,53,47,.09);--line-2:rgba(55,53,47,.16);--hover:rgba(55,53,47,.06);--hover-2:rgba(55,53,47,.1);
  --input:rgba(242,241,238,.6);--tag-bg:rgba(227,226,224,.5);
  --blue:#2383e2;--ac:35,131,226;--on-ac:#ffffff;--sel:rgba(35,131,226,.18);
  --now:#eb5757;--hot:#e03e3e;--warn:#d9730d;--red:#e03e3e;--amber:#cb912f;--green:#448361;--teal:#448361;--violet:#9065b0;--rose:#c14c8a;--orange:#d9730d;
  --glass:#ffffff;--glass-side:#f7f7f5;--glass-edge:rgba(55,53,47,.09);--glass-edge-h:rgba(55,53,47,.16);
  --glass-shadow:0 1px 2px rgba(15,15,15,.03);--glass-shadow-h:rgba(15,15,15,.04) 0 0 0 1px,rgba(15,15,15,.06) 0 3px 6px,rgba(15,15,15,.08) 0 9px 24px;
  --liq:rgba(55,53,47,.08);--cal-bg:#f7f7f5;--code-bg:#f7f6f3;
}
html[data-skin="glass"][data-theme="dark"],html[data-skin="glass"][data-theme="dark"][data-fx]{
  --bg:#191919;--side:#202020;--paper:#202020;--card-bg:#202020;
  --ink:#d4d4d4;--text:rgba(255,255,255,.81);--text-2:rgba(255,255,255,.72);--text-3:rgba(255,255,255,.46);--text-4:rgba(255,255,255,.28);
  --line:rgba(255,255,255,.094);--line-2:rgba(255,255,255,.14);--hover:rgba(255,255,255,.055);--hover-2:rgba(255,255,255,.09);
  --input:rgba(255,255,255,.055);--tag-bg:rgba(255,255,255,.09);
  --blue:#2383e2;--ac:35,131,226;--on-ac:#ffffff;--sel:rgba(35,131,226,.35);
  --now:#df5452;--hot:#df5452;--warn:#c77d48;--red:#df5452;--amber:#ca9849;--green:#529e72;--teal:#529e72;--violet:#9d68d3;--rose:#d15796;--orange:#c77d48;
  --glass:#202020;--glass-side:#202020;--glass-edge:rgba(255,255,255,.094);--glass-edge-h:rgba(255,255,255,.14);
  --glass-shadow:0 0 0 0 transparent;--glass-shadow-h:rgba(15,15,15,.1) 0 0 0 1px,rgba(15,15,15,.2) 0 3px 6px,rgba(15,15,15,.4) 0 9px 24px;
  --liq:rgba(255,255,255,.08);--cal-bg:#252525;--code-bg:#252525;
}
/* 主操作：Notion 蓝（汤圆的发送、保存也是） */
html[data-skin="glass"] .seal-send,html[data-skin="glass"] .ac .btn.primary{background:var(--blue);color:#fff}
html[data-skin="glass"] .seal-send:hover:not(:disabled),html[data-skin="glass"] .ac .btn.primary:hover:not(:disabled){background:#0077d4;opacity:1}
html[data-skin="glass"] .seal-send:disabled{background:var(--hover-2);color:var(--text-4);opacity:1}
html[data-skin="glass"] .btn.primary:hover:not(:disabled){background:#0077d4;opacity:1}
html[data-skin="glass"] .sugg:first-child .sugg-a .btn{background:var(--blue);color:#fff}
html[data-skin="glass"][data-theme="light"] .focus-w:not(.break),html[data-skin="glass"][data-theme="light"] .focus-grid,html[data-skin="glass"][data-theme="light"] .focus-page:not(.break),
html[data-skin="glass"][data-theme="dark"] .focus-w:not(.break),html[data-skin="glass"][data-theme="dark"] .focus-grid,html[data-skin="glass"][data-theme="dark"] .focus-page:not(.break){--pg1:#4a9ae9;--pg2:#2383e2}
html[data-skin="glass"][data-theme="dark"] .focus-w:not(.break) .fw-go,html[data-skin="glass"][data-theme="dark"] .focus-w:not(.break) .fw-ctl .pf-btn.main,html[data-skin="glass"][data-theme="dark"] .focus-page:not(.break) .pf-start{color:#fff}
/* 选中 / 当前：Notion 的灰底，不上色 */
html[data-skin="glass"] .nav a.active{background:var(--hover-2)}
html[data-skin="glass"] .mt-b.cur{box-shadow:0 0 0 1.5px var(--blue),0 6px 16px -8px rgba(35,131,226,.45)}
/* 今天：红色实心圆（Notion 日历） */
html[data-skin="glass"] .dchip.on:not(.today){background:var(--hover-2);color:var(--text);box-shadow:none}html[data-skin="glass"] .dchip.on:not(.today) b::after{background:var(--text)}
/* 暗色下的汤圆对话框跟着 Notion 暗色 */
html[data-skin="glass"][data-theme="dark"] .seal-panel{background:#202020}
html[data-skin="glass"][data-theme="dark"] .seal-form,html[data-skin="glass"][data-theme="dark"]:not([data-glow="0"]) .seal-form:focus-within{background:linear-gradient(#252525,#252525) padding-box,linear-gradient(90deg,rgba(255,255,255,.1),rgba(255,255,255,.1)) border-box}
html[data-skin="glass"][data-theme="dark"]:not([data-glow="0"]) .seal-form:focus-within{background:linear-gradient(#252525,#252525) padding-box,conic-gradient(from var(--seal-ang),rgba(255,255,255,.1) 0 62%,rgba(255,255,255,.7) 78%,rgba(255,255,255,.1) 92%) border-box}
html[data-skin="glass"][data-theme="dark"] .seal-panel.big .seal-main.scrolled>.seal-h{background:color-mix(in srgb,#202020 74%,transparent)}
html[data-skin="glass"][data-theme="dark"] .sp-node{background:#202020}
/* Notion 式：普通优先级和日期都是灰，只有今天加重、逾期变红；「空档」是机会不是警报，用蓝 */
html[data-skin="glass"][data-theme="light"],html[data-skin="glass"][data-theme="light"][data-fx]{--p2:rgba(55,53,47,.5)}
html[data-skin="glass"][data-theme="dark"],html[data-skin="glass"][data-theme="dark"][data-fx]{--p2:rgba(255,255,255,.4)}
html[data-skin="glass"] .todo .meta .due.today{color:var(--text-2);font-weight:500}
html[data-skin="glass"] .todo .meta .due.late{color:var(--hot)}
html[data-skin="glass"] .todo .meta .due.passed{color:var(--warn)}
html[data-skin="glass"] .sugg.now .sugg-ic{color:var(--blue);box-shadow:0 0 0 1px rgba(35,131,226,.3);background:color-mix(in srgb,var(--blue) 8%,var(--paper))}
html[data-skin="glass"] .todo-card .tg-h.today{color:var(--text-2)}
html[data-skin="glass"] .group-h.today{color:var(--text-2)}

/* ===================================================================
   墨白 · 最终配色（每个颜色只有一个意思）
   墨 = 主操作和「今天」；红 = 现在要处理（P0、逾期、此刻）；橙 = 注意（P1、提醒）；
   蓝 = 普通优先级 P2；灰 = 其余（P3、次要按钮、元信息）
   --blue 在基础样式里是「主强调色」，这里让它指向墨色；P2 单独用 --p2
   =================================================================== */
html[data-skin="glass"][data-theme="light"],html[data-skin="glass"][data-theme="light"][data-fx]{
  --blue:#37352f;--ac:55,53,47;--on-ac:#ffffff;--now:#37352f;
  --hot:#e03e3e;--red:#e03e3e;--warn:#d9730d;--amber:#d9730d;--orange:#d9730d;--p2:#2383e2;
  --sel:rgba(35,131,226,.18);--btn-h:#1f1e1b;
}
html[data-skin="glass"][data-theme="dark"],html[data-skin="glass"][data-theme="dark"][data-fx]{
  --blue:#e6e5e3;--ac:230,229,227;--on-ac:#191919;--now:#e6e5e3;
  --hot:#df5452;--red:#df5452;--warn:#d9844b;--amber:#d9844b;--orange:#d9844b;--p2:#4a9ae9;
  --sel:rgba(35,131,226,.35);--btn-h:#ffffff;
}
/* 所有主按钮：墨底；悬停更深（暗色更亮）；禁用是浅灰 */
html[data-skin="glass"] .btn.primary,html[data-skin="glass"] .seal-send,html[data-skin="glass"] .ac .btn.primary,html[data-skin="glass"] .sugg:first-child .sugg-a .btn,
html[data-skin="glass"] .fw-go,html[data-skin="glass"] .pf-start,html[data-skin="glass"] .fw-ctl .pf-btn.main,html[data-skin="glass"] .fp-go,html[data-skin="glass"] .tabbar .tab-cap,html[data-skin="glass"] .ss-new,html[data-skin="glass"] .side-ai-ic{background:var(--blue);color:var(--on-ac);border-color:transparent;box-shadow:none}
html[data-skin="glass"] .btn.primary:hover:not(:disabled),html[data-skin="glass"] .seal-send:hover:not(:disabled),html[data-skin="glass"] .ac .btn.primary:hover:not(:disabled),html[data-skin="glass"] .fw-go:hover,html[data-skin="glass"] .pf-start:hover,html[data-skin="glass"] .ss-new:hover{background:var(--btn-h);opacity:1}
html[data-skin="glass"] .btn.primary:disabled,html[data-skin="glass"] .seal-send:disabled,html[data-skin="glass"] .ac .btn.primary:disabled{background:var(--hover-2);color:var(--text-4);opacity:1}
/* 番茄钟：进行中也是墨色（休息仍是绿） */
html[data-skin="glass"][data-theme="light"] .focus-w:not(.break),html[data-skin="glass"][data-theme="light"] .focus-grid,html[data-skin="glass"][data-theme="light"] .focus-page:not(.break){--pg1:#5a5853;--pg2:#37352f}
html[data-skin="glass"][data-theme="dark"] .focus-w:not(.break),html[data-skin="glass"][data-theme="dark"] .focus-grid,html[data-skin="glass"][data-theme="dark"] .focus-page:not(.break){--pg1:#f2f1ef;--pg2:#cfcdc9}
html[data-skin="glass"][data-theme="dark"] .focus-w:not(.break) .fw-go,html[data-skin="glass"][data-theme="dark"] .focus-w:not(.break) .fw-ctl .pf-btn.main,html[data-skin="glass"][data-theme="dark"] .focus-page:not(.break) .pf-start{color:#191919}
/* 今天：墨色实心圆；当前时间块：墨色描边；此刻线：红 */
html[data-skin="glass"] .mc-d.today,html[data-skin="glass"] .wtl-day.today b,html[data-skin="glass"] .dchip.on.today{background:var(--now);color:var(--on-ac)}
html[data-skin="glass"] .dchip.on.today b::after{background:var(--on-ac)}
html[data-skin="glass"] .dchip.today,html[data-skin="glass"] .cal-d.today{color:var(--text);font-weight:600}html[data-skin="glass"] .dchip.today b::after{background:var(--text)}
html[data-skin="glass"] .mt-b.cur{box-shadow:0 0 0 1.5px var(--text),0 6px 16px -8px rgba(15,15,15,.3)}
html[data-skin="glass"] .mt-now,html[data-skin="glass"] .tl .now,html[data-skin="glass"] .tl .now::before{background:var(--hot)}html[data-skin="glass"] .mt-now span{background:var(--hot);color:#fff}
/* 首页建议：急 = 红、空档 = 蓝（普通）、注意 = 橙 */
html[data-skin="glass"] .sugg.now .sugg-ic{color:var(--p2);box-shadow:0 0 0 1px color-mix(in srgb,var(--p2) 30%,transparent);background:color-mix(in srgb,var(--p2) 8%,var(--paper))}
/* 优先级标签：P0 红底、P1 橙底（Notion 的浅底 + 文字色） */
html[data-skin="glass"][data-theme="light"] .todo .meta .pri{color:var(--pc)}
/* 墨白 · 标签：照 Notion 的「浅底 + 深一号的文字色」，平底不做渐变，亮色下文字压深保证看得清 */
html[data-skin="glass"][data-theme="light"] .tag.tc,html[data-skin="glass"][data-theme="light"] .tag.th,html[data-skin="glass"][data-theme="light"] .mtag,html[data-skin="glass"][data-theme="light"] .tag-chip{color:color-mix(in srgb,var(--tc) 48%,#24231f);background:color-mix(in srgb,var(--tc) 12%,#fff);box-shadow:none}
html[data-skin="glass"][data-theme="dark"] .tag.tc,html[data-skin="glass"][data-theme="dark"] .tag.th,html[data-skin="glass"][data-theme="dark"] .mtag,html[data-skin="glass"][data-theme="dark"] .tag-chip{color:color-mix(in srgb,var(--tcd) 62%,#fff);background:color-mix(in srgb,var(--tcd) 16%,#202020);box-shadow:none}

/* ---- 顶栏：实底 + 一条细线，不再半透明渐隐（下面是深色卡片时会透出一道「裂缝」） ---- */
html[data-skin="glass"] .topbar,html[data-skin="glass"][data-fx] .topbar{--tb-bg:var(--bg)}
html[data-skin="glass"] .topbar::after{display:none}
html[data-skin="glass"] body.scrolled .topbar{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}

/* ---- 汤圆的发送键：圆形墨色图标按钮（像 Claude / ChatGPT），空的时候是浅灰 ---- */
.seal-send,html[data-skin="glass"] .seal-send{width:34px;height:34px;padding:0;border-radius:50%;display:grid;place-items:center;gap:0;background:var(--ink);color:var(--bg);box-shadow:0 1px 2px rgba(15,15,15,.12),inset 0 1px 0 rgba(255,255,255,.12);transition:background .15s,transform .15s,box-shadow .15s}
.seal-send:hover:not(:disabled),html[data-skin="glass"] .seal-send:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px -4px rgba(15,15,15,.35),inset 0 1px 0 rgba(255,255,255,.12);background:var(--ink)}
.seal-send:disabled,html[data-skin="glass"] .seal-send:disabled{background:var(--hover-2);color:var(--text-4);box-shadow:none;transform:none}
.seal-send svg{stroke-width:2.2}
html[data-theme="dark"] .seal-send:not(:disabled){color:#191919}

/* ---- 首页「汤圆今天的建议」：和汤圆对话框同一套——细线分隔的列表，不用灰色色块；按钮是细框胶囊 ---- */
.sugg-card .card-h h3 .muted{font-weight:500}
.sugg-list,.widget.span-1 .sugg-list,.widget.span-2 .sugg-list{display:flex;flex-direction:column;gap:0;grid-template-columns:none}
.sugg,html[data-skin="glass"] .sugg{align-items:center;gap:12px;padding:12px 8px;margin:0 -8px;border-radius:10px;background:transparent;transition:background .15s}
.sugg+.sugg{border-top:1px solid var(--line);border-radius:0}
.sugg:hover{background:color-mix(in srgb,var(--hover) 70%,transparent);border-radius:10px}
.sugg:hover+.sugg{border-top-color:transparent}
.sugg-ic,html[data-skin="glass"] .sugg.hot .sugg-ic,html[data-skin="glass"] .sugg.now .sugg-ic,html[data-skin="glass"] .sugg.warn .sugg-ic,html[data-skin="glass"] .sugg.calm .sugg-ic{width:30px;height:30px;border-radius:9px;background:var(--hover);box-shadow:none;color:var(--text-2)}
html[data-skin="glass"] .sugg.hot .sugg-ic{color:var(--hot)}html[data-skin="glass"] .sugg.warn .sugg-ic{color:var(--warn)}html[data-skin="glass"] .sugg.now .sugg-ic{color:var(--p2)}
.sugg-b b{font-size:.84rem;font-weight:600}
.sugg-b small{-webkit-line-clamp:1}
.sugg-go{display:inline-flex;align-items:center;gap:3px;height:28px;padding:0 9px 0 11px;border-radius:999px;border:1px solid var(--line-2);background:var(--paper);color:var(--text);font-size:.74rem;font-weight:500;white-space:nowrap;transition:background .15s,border-color .15s}
.sugg-go svg{opacity:.5;transition:transform .15s}
.sugg-go:hover{border-color:var(--text-4)}.sugg-go:hover svg{transform:translateX(2px);opacity:.8}
.sugg:first-child .sugg-go,html[data-skin="glass"] .sugg:first-child .sugg-go{background:var(--ink);color:var(--bg);border-color:transparent}
html[data-theme="dark"] .sugg:first-child .sugg-go{color:#191919}
.sugg:first-child .sugg-go svg{opacity:.8}


/* ---- 建议卡底部「今天的形状」点阵海报 ---- */
.sugg-card{display:flex;flex-direction:column}
.sugg-poster{position:relative;margin-top:auto;flex:1 1 auto;min-height:104px;max-height:180px;border-radius:12px;overflow:hidden;background:var(--hover);margin-top:12px}
.sugg-list+.sugg-poster,.sugg-none+.sugg-poster{margin-top:max(12px,auto)}
.sugg-poster svg{position:absolute;inset:0;width:100%;height:100%}
.sugg-poster circle{transition:r .4s}
.dp-base{fill:color-mix(in srgb,var(--text) 14%,transparent)}
.dp-sun{fill:color-mix(in srgb,var(--text) 30%,transparent)}
.dp-bar{fill:var(--text)}
.dp-done{fill:color-mix(in srgb,var(--text) 45%,transparent)}
.dp-now{fill:var(--hot,#e03e3e)}
.dp-cap{position:absolute;left:12px;top:10px;display:flex;align-items:baseline;gap:6px;color:var(--text);mix-blend-mode:normal;padding:2px 6px 2px 0;background:linear-gradient(90deg,var(--hover-bg,transparent),transparent)}
.dp-cap b{font-size:1.05rem;font-weight:700;letter-spacing:-.02em}
.dp-cap span{font-size:.62rem;letter-spacing:.14em;color:var(--text-3);font-weight:600}
.dp-meta{position:absolute;right:12px;bottom:9px;font-size:.66rem;color:var(--text-3);letter-spacing:.02em}
.dp-cap{align-items:baseline;padding:3px 8px 3px 0;border-radius:0 8px 8px 0;background:var(--hover);background:color-mix(in srgb,var(--paper) 0%,transparent)}
.dp-cap i{font-style:normal;font-size:.64rem;color:var(--text-3);margin-left:4px}
.dp-cap i::before{content:'·';margin-right:5px;color:var(--text-4)}
.sugg-poster{--dp-bg:color-mix(in srgb,var(--text) 5%,var(--paper));background:var(--dp-bg)}
.dp-cap{left:0;top:0;padding:10px 12px 8px 12px;border-radius:0 0 12px 0;background:var(--dp-bg);box-shadow:6px 6px 10px -4px var(--dp-bg)}

/* ---- 建议卡：点阵当背景叠底（不是单独的一块），从底部往上淡出，文字始终干净 ---- */
.sugg-poster{display:none}
.sugg-card{position:relative;overflow:hidden;isolation:isolate}
.sugg-card>*:not(.sugg-bg){position:relative;z-index:1}
.sugg-bg{position:absolute;inset:0;z-index:0;pointer-events:none;mix-blend-mode:multiply;opacity:.9;
  -webkit-mask-image:linear-gradient(to top,#000 0%,rgba(0,0,0,.75) 30%,rgba(0,0,0,.18) 62%,transparent 85%);mask-image:linear-gradient(to top,#000 0%,rgba(0,0,0,.75) 30%,rgba(0,0,0,.18) 62%,transparent 85%)}
html[data-theme="dark"] .sugg-bg{mix-blend-mode:screen}
.sugg-bg svg{position:absolute;inset:0;width:100%;height:100%}
.sugg-bg .dp-base{fill:color-mix(in srgb,var(--text) 9%,transparent)}
.sugg-bg .dp-sun{fill:color-mix(in srgb,var(--text) 18%,transparent)}
.sugg-bg .dp-bar{fill:color-mix(in srgb,var(--text) 30%,transparent)}
.sugg-bg .dp-done{fill:color-mix(in srgb,var(--text) 16%,transparent)}
.sugg-bg .dp-now{fill:color-mix(in srgb,var(--hot,#e03e3e) 70%,transparent)}
.sugg-card .sugg:hover{background:color-mix(in srgb,var(--hover) 80%,transparent)}
.sugg-bg{opacity:1;-webkit-mask-image:linear-gradient(to top,#000 0%,rgba(0,0,0,.6) 22%,rgba(0,0,0,.15) 45%,transparent 62%);mask-image:linear-gradient(to top,#000 0%,rgba(0,0,0,.6) 22%,rgba(0,0,0,.15) 45%,transparent 62%)}
.sugg-bg .dp-base{fill:color-mix(in srgb,var(--text) 7%,transparent)}
.sugg-bg .dp-sun{fill:color-mix(in srgb,var(--text) 13%,transparent)}
.sugg-bg .dp-bar{fill:color-mix(in srgb,var(--text) 20%,transparent)}
.sugg-bg .dp-done{fill:color-mix(in srgb,var(--text) 11%,transparent)}
.sugg-bg .dp-now{fill:color-mix(in srgb,var(--hot,#e03e3e) 45%,transparent)}
html[data-theme="dark"] .sugg-bg .dp-base{fill:rgba(255,255,255,.06)}html[data-theme="dark"] .sugg-bg .dp-sun{fill:rgba(255,255,255,.12)}html[data-theme="dark"] .sugg-bg .dp-bar{fill:rgba(255,255,255,.17)}html[data-theme="dark"] .sugg-bg .dp-done{fill:rgba(255,255,255,.09)}

/* ===================================================================
   番茄钟（参考 Time Timer）：0 在正上方，番茄红扇形 = 剩余时间，其余只用黑白灰
   指针：一根深色粗针（剩余时间的边）+ 一根红色细秒针；刻度三级（每分钟 / 每 5 分钟 / 每 15 分钟）
   材质：光源左上；浅色外圈、内凹的槽、微凸的表盘；投影两层（贴身深影 + 大范围淡影）
   =================================================================== */
.tt-card{--tt-rim1:#ffffff;--tt-rim2:#e3e1dc;--tt-groove1:#c9c6c0;--tt-groove2:#ffffff;--tt-face1:#fefefd;--tt-face2:#efeeea;
  --tt-red1:#e4513b;--tt-red2:#ef735f;--tt-t1:#bdbab4;--tt-t2:#77746e;--tt-t3:#272623;--tt-num:#34332f;--tt-hand:#1d1c1a;--tt-sec:#e4513b}
.tt-card.break{--tt-red1:#4c9a70;--tt-red2:#6db58e}
html[data-theme="dark"] .tt-card{--tt-rim1:#3b3b3a;--tt-rim2:#1b1b1b;--tt-groove1:#0c0c0c;--tt-groove2:#3d3d3c;--tt-face1:#2e2e2d;--tt-face2:#222221;
  --tt-t1:#5a5957;--tt-t2:#9a9894;--tt-t3:#ecebe8;--tt-num:#dcdad6;--tt-hand:#f1f0ec;--tt-sec:#ef6a55}
.tt-card .fw-hero,html[data-skin] .tt-card .fw-hero{background:none;padding:16px 18px 20px}
.ttd{position:relative;width:216px;aspect-ratio:1;margin:2px auto 6px;touch-action:none;user-select:none}
.ttd.idle{cursor:grab}.ttd.turning{cursor:grabbing}
.ttd svg{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 2px 3px rgba(25,22,18,.12)) drop-shadow(0 22px 34px rgba(25,22,18,.10))}
html[data-theme="dark"] .ttd svg{filter:drop-shadow(0 2px 3px rgba(0,0,0,.5)) drop-shadow(0 22px 34px rgba(0,0,0,.45))}
.tt-well{fill:rgba(0,0,0,.022)}html[data-theme="dark"] .tt-well{fill:rgba(255,255,255,.02)}
.tt-sector{transition:d .35s cubic-bezier(.2,.8,.2,1)}
.ttd.turning .tt-sector,.ttd.turning .tt-hand{transition:none}
.tt-tick{stroke-linecap:round}.tt-tick.l1{stroke:var(--tt-t1);stroke-width:1}.tt-tick.l2{stroke:var(--tt-t2);stroke-width:1.7}.tt-tick.l3{stroke:var(--tt-t3);stroke-width:3.2}
.tt-num{font-size:13px;font-weight:500;text-anchor:middle;fill:var(--tt-num);font-variant-numeric:tabular-nums;font-family:var(--font)}
.tt-hand{transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.tt-hand-l{stroke:var(--tt-hand);stroke-width:5.5;stroke-linecap:round}
.tt-sec{transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.tt-sec-l{stroke:var(--tt-sec);stroke-width:1.5;stroke-linecap:round}.tt-sec-t{fill:var(--tt-sec)}
.tt-hub{fill:var(--tt-hand)}.tt-hub-in{fill:var(--tt-sec)}
.tt-bubble{position:absolute;left:50%;top:-6px;transform:translate(-50%,-100%);padding:3px 10px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:.74rem;font-weight:600;white-space:nowrap;pointer-events:none}
.tt-info{text-align:center}
.tt-time{font-size:2.5rem;font-weight:400;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";color:var(--text)}
.tt-sub{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0 4px;margin:6px 0 14px;font-size:.78rem;color:var(--text-3)}
.tt-sub .pomo-span{color:var(--text-4);font-variant-numeric:tabular-nums}
.tt-break{color:inherit;font-size:inherit;padding:0 2px;border-radius:5px}.tt-break:hover{color:var(--text);background:var(--hover)}
.tt-label{display:block;width:100%;max-width:340px;height:38px;margin:0 auto 12px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:var(--input);font-size:.84rem;outline:0}
.tt-label:focus{border-color:var(--line-2);background:var(--paper)}
.tt-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.tt-chip{height:34px;min-width:58px;padding:0 14px;border-radius:999px;border:1px solid var(--line-2);background:var(--paper);color:var(--text);font-size:.84rem;font-weight:500;font-variant-numeric:tabular-nums;transition:background .15s,border-color .15s}
.tt-chip:hover{border-color:var(--text-4)}
.tt-chip.on{background:var(--ink);color:var(--paper);border-color:transparent}
html[data-theme="dark"] .tt-chip.on{color:#191919}
.tt-chip-in{width:76px;text-align:center;outline:0}
.tt-acts{display:flex;gap:10px;justify-content:center;margin-top:12px}
.tt-go{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 22px;border-radius:999px;background:var(--ink);color:var(--paper);font-size:.9rem;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.12);transition:transform .15s,box-shadow .15s}
.tt-go:hover{transform:translateY(-1px);box-shadow:0 6px 16px -6px rgba(0,0,0,.35)}
html[data-theme="dark"] .tt-go{color:#191919}
.tt-round{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-2);background:var(--paper);color:var(--text-2);transition:border-color .15s,color .15s}
.tt-round:hover{border-color:var(--text-4);color:var(--text)}
/* 专注页：横排，表盘在左、信息在右 */
.tt-card.full .fw-hero,html[data-skin] .tt-card.full .fw-hero{display:grid;grid-template-columns:minmax(240px,420px) minmax(260px,1fr);align-items:center;gap:clamp(24px,5vw,72px);padding:clamp(24px,4vw,48px) clamp(24px,5vw,64px)}
.tt-card.full .ttd{width:100%;max-width:400px;margin:0}
.tt-card.full .tt-info{text-align:left}
.tt-card.full .tt-time{font-size:clamp(3.4rem,7vw,6rem);font-weight:400;letter-spacing:-.03em}
.tt-card.full .tt-sub{justify-content:flex-start;font-size:.9rem;margin:10px 0 22px}
.tt-card.full .tt-label{margin:0 0 14px;max-width:380px}
.tt-card.full .tt-chips,.tt-card.full .tt-acts{justify-content:flex-start}
.tt-card.full .tt-chip{height:40px;min-width:72px;font-size:.95rem}
.tt-card.full .tt-acts{margin-top:18px}
.tt-card.full .tt-go{height:50px;padding:0 30px;font-size:1rem}
.tt-card.full .tt-round{width:50px;height:50px}
@media (max-width:860px){.tt-card.full .fw-hero,html[data-skin] .tt-card.full .fw-hero{grid-template-columns:1fr;justify-items:center}.tt-card.full .ttd{max-width:300px}.tt-card.full .tt-info{text-align:center}.tt-card.full .tt-sub,.tt-card.full .tt-chips,.tt-card.full .tt-acts{justify-content:center}.tt-card.full .tt-label{margin:0 auto 14px}}
@media (prefers-reduced-motion:reduce){.tt-sector,.tt-hand,.tt-sec{transition:none}}
.tt-go svg{fill:currentColor;stroke:currentColor}
/* 首页小卡片：更紧凑，按钮不被裁掉 */
.tt-card:not(.full) .fw-hero{padding:14px 16px 16px}
.tt-card:not(.full) .ttd{width:172px;margin:0 auto 4px}
.tt-card:not(.full) .tt-time{font-size:2.1rem}
.tt-card:not(.full) .tt-sub{margin:4px 0 10px;font-size:.74rem}
.tt-card:not(.full) .tt-chip{height:30px;min-width:52px;font-size:.78rem;padding:0 12px}
.tt-card:not(.full) .tt-acts{margin-top:10px}
.tt-card:not(.full) .tt-go{height:38px;padding:0 18px;font-size:.84rem}
.tt-card:not(.full) .tt-round{width:38px;height:38px}

/* ---- 番茄钟扇形颜色（右键表盘可换）：默认蓝 ---- */
.tt-card.tc-blue{--tt-red1:#1f7ad8;--tt-red2:#4c9cea;--tt-sec:#1f7ad8}
.tt-card.tc-tomato{--tt-red1:#e4513b;--tt-red2:#ef735f;--tt-sec:#e4513b}
.tt-card.tc-ink{--tt-red1:#37352f;--tt-red2:#5d5a53;--tt-sec:#e4513b}
html[data-theme="dark"] .tt-card.tc-ink{--tt-red1:#e9e8e4;--tt-red2:#c9c7c2}
.tt-card.tc-teal{--tt-red1:#24907f;--tt-red2:#45b09f;--tt-sec:#24907f}
html[data-theme="dark"] .tt-card.tc-blue{--tt-sec:#4c9cea}
.tt-card.break{--tt-red1:#4c9a70;--tt-red2:#6db58e;--tt-sec:#4c9a70}

/* ---- 首页小卡：横排迷你版（表盘左、信息右），不再竖着拉长 ---- */
.tt-card:not(.full) .fw-hero,html[data-skin] .tt-card:not(.full) .fw-hero{display:grid;grid-template-columns:132px minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:16px;align-items:center;padding:14px 16px 16px}
.tt-card:not(.full) .fw-top{grid-column:1/-1;margin-bottom:6px}
.tt-card:not(.full) .ttd{width:132px;margin:0}
.tt-card:not(.full) .tt-info{text-align:left;min-width:0}
.tt-card:not(.full) .tt-time{font-size:2rem}
.tt-card:not(.full) .tt-sub{justify-content:flex-start;margin:2px 0 10px;font-size:.72rem}
.tt-card:not(.full) .tt-chips{justify-content:flex-start;gap:5px;flex-wrap:nowrap}
.tt-card:not(.full) .tt-chip{height:26px;min-width:0;padding:0 9px;font-size:.72rem}
.tt-card:not(.full) .tt-acts{justify-content:flex-start;margin-top:8px;gap:6px}
.tt-card:not(.full) .tt-go{height:32px;padding:0 14px;font-size:.78rem;gap:6px}
.tt-card:not(.full) .tt-round{width:32px;height:32px}
.tt-card:not(.full) .tt-num{font-size:15px}
/* 专注页回到三列：大号竖排 */
.tt-card.full .fw-hero,html[data-skin] .tt-card.full .fw-hero{display:block;padding:18px 20px 22px}
.tt-card.full .ttd{width:min(100%,280px);margin:4px auto 10px}
.tt-card.full .tt-info{text-align:center}
.tt-card.full .tt-time{font-size:3rem}
.tt-card.full .tt-sub{justify-content:center;font-size:.8rem;margin:6px 0 14px}
.tt-card.full .tt-label{margin:0 auto 12px}
.tt-card.full .tt-chips,.tt-card.full .tt-acts{justify-content:center}
.tt-card.full .tt-chip{height:34px;min-width:58px;font-size:.84rem}
.tt-card.full .tt-go{height:42px;padding:0 22px;font-size:.9rem}.tt-card.full .tt-round{width:42px;height:42px}
.tt-card.full .tt-acts{margin-top:12px}
/* 总览：卡片高度跟着内容走，不再被同一行最高的卡拉长 */
.dash3:not(.focus-grid){align-items:start}
.dash3:not(.focus-grid) .widget>.card{flex:none}
/* 总览瀑布流：行单位 4px，卡片按内容高度占行（JS 算 span）；窄屏退回普通单列 */
@media (min-width:901px){.dash-home{grid-auto-rows:4px;align-items:start}.dash-home>.widget>.card{flex:none}}
.dash-home .mini-tl-wrap{max-height:420px}
.dash-home .todo-card .tlist{max-height:440px;overflow-y:auto;scrollbar-width:thin}

/* ---- Notion 九色：步骤类型、时间线预览共用 ---- */
:root,html[data-theme="light"]{--tone-blue:#2f7fd0;--tone-purple:#8a5cc2;--tone-green:#3f8a5f;--tone-orange:#d0742a;--tone-pink:#c4508c;--tone-yellow:#b98a1f;--tone-brown:#94664d;--tone-red:#d04a45;--tone-gray:#7d7b76;--tone-teal:#2f8f86}
html[data-theme="dark"]{--tone-blue:#4f9ee8;--tone-purple:#a57de0;--tone-green:#5cad7d;--tone-orange:#e08a4a;--tone-pink:#de6aa8;--tone-yellow:#d4ab4a;--tone-brown:#bf8a6f;--tone-red:#e3605a;--tone-gray:#9b9a97;--tone-teal:#4fb3a8}

/* ---- 自己发的话：气泡在文字上，下面一排小按钮（编辑 / 复制）；编辑时变成输入框 ---- */
.sm.me{background:none!important;border:0!important;padding:0!important;display:flex;flex-direction:column;align-items:flex-end;max-width:80%}
.sm.me>.sm-t{padding:8px 14px;border:1px solid var(--line);border-radius:18px 18px 6px 18px;background:var(--paper);color:var(--text);white-space:pre-wrap;cursor:text}
.sm.me>.sm-t:hover{border-color:var(--line-2)}
.sm-acts.me{justify-content:flex-end;opacity:0}.sm.me:hover .sm-acts.me{opacity:1}
.sm-edit{width:min(560px,100%);border:1.5px solid var(--text-4);border-radius:16px;background:var(--paper);padding:10px 12px 8px}
.sm-edit textarea{width:100%;border:0;outline:0;resize:vertical;background:transparent;font:inherit;font-size:.88rem;line-height:1.55;color:var(--text);min-height:44px}
.sm-edit-f{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:.7rem;color:var(--text-4)}

/* ---- 拆解步骤：类型标签按颜色分，时长、类型都能点着改，右键有更多 ---- */
.ac.steps .ac-row{cursor:default}
.ac-tag.k{border:0;background:color-mix(in srgb,var(--k) 12%,transparent);color:var(--k);font-weight:500;cursor:pointer}
.ac-tag.k:hover:not(:disabled){background:color-mix(in srgb,var(--k) 20%,transparent)}
.ac-min{font-size:.72rem;color:var(--text-3);padding:2px 6px;border-radius:6px;font-variant-numeric:tabular-nums}.ac-min:hover:not(:disabled){background:var(--hover-2);color:var(--text)}
.ac.steps .ac-n{border-color:color-mix(in srgb,var(--k) 45%,transparent);color:var(--k)}
.ac-tag:disabled,.ac-min:disabled{cursor:default}

/* ---- 时间线预览：像一小段日历——日期抬头、粗体开始时刻 / 浅色结束时刻、按类型上色的卡片（高度按时长），中间的空档标出来 ---- */
.sp-metro{display:none}
.sp-cal{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.sp-day{display:flex;align-items:baseline;gap:8px;margin:6px 0 2px;font-size:.78rem}
.sp-day b{font-weight:650;color:var(--text)}.sp-day span{color:var(--text-4);font-size:.72rem}
.sp-day i{flex:1;height:1px;background:var(--line);align-self:center}
.sp-g:first-child .sp-day{margin-top:0}
.sp-gap{margin:0 0 0 64px;font-size:.66rem;color:var(--text-4);padding:2px 0 2px 10px;border-left:1px dashed var(--line-2)}
.sp-ev{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:stretch}
.sp-when{display:flex;flex-direction:column;align-items:flex-end;padding-top:6px;font-variant-numeric:tabular-nums;line-height:1.25}
.sp-when b{font-size:.84rem;font-weight:600;color:var(--text)}.sp-when small{font-size:.68rem;color:var(--text-4)}
.sp-card{position:relative;display:flex;align-items:flex-start;gap:10px;min-height:var(--h);padding:8px 12px 8px 12px;border-radius:10px;background:color-mix(in srgb,var(--k) 9%,var(--paper));box-shadow:inset 3px 0 0 var(--k)}
html[data-theme="dark"] .sp-card{background:color-mix(in srgb,var(--k) 16%,var(--paper))}
.sp-no{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--k);color:#fff;font-size:.66rem;font-weight:700;margin-top:1px;font-variant-numeric:tabular-nums}
.sp-body{min-width:0;display:flex;flex-direction:column;gap:2px}
.sp-body b{font-size:.84rem;font-weight:550;color:var(--text);line-height:1.4}
.sp-body small{display:flex;align-items:center;gap:6px;font-size:.7rem;color:var(--text-3)}
.sp-kind{padding:0 6px;border-radius:5px;background:color-mix(in srgb,var(--k) 16%,transparent);color:var(--k);font-weight:500}
.sm-edit textarea{border:0!important;box-shadow:none!important;padding:0!important;background:transparent!important;border-radius:0!important}

/* ---- 时间线预览：地铁线路图——每段轨道是这一步类型的颜色，站点是圆环，圆越大这一步越久 ---- */
.sp-cal{display:none}
.sp-line{margin-top:10px}
.sp-day{display:flex;align-items:center;gap:8px;margin:4px 0 6px;font-size:.78rem}
.sp-term{width:52px;display:flex;justify-content:flex-end}
.sp-day b{font-weight:650;color:var(--text);margin-left:14px}
.sp-st{display:grid;grid-template-columns:52px 44px minmax(0,1fr);min-height:var(--rh)}
.sp-when{display:flex;flex-direction:column;align-items:flex-end;padding-top:2px;line-height:1.2;font-variant-numeric:tabular-nums}
.sp-when b{font-size:.84rem;font-weight:650;color:var(--text)}.sp-when small{font-size:.66rem;color:var(--text-4);margin-top:1px}
.sp-trk{position:relative}
.sp-trk::before{content:"";position:absolute;left:50%;top:12px;bottom:-12px;width:6px;margin-left:-3px;border-radius:3px;background:var(--k)}
.sp-st.last .sp-trk::before{display:none}
.sp-st.gapped .sp-trk::before{background:repeating-linear-gradient(to bottom,var(--k) 0 6px,transparent 6px 11px)}
.sp-dot{position:absolute;left:50%;top:12px;width:var(--d);height:var(--d);margin:calc(var(--d) / -2) 0 0 calc(var(--d) / -2);border-radius:50%;background:var(--paper);border:4px solid var(--k);z-index:1;display:grid;place-items:center;font-size:.62rem;font-weight:800;color:var(--k);font-variant-numeric:tabular-nums;box-shadow:0 0 0 3px var(--paper)}
.sp-lbl2{padding:1px 0 14px 2px;min-width:0}
.sp-lbl2 b{display:block;font-size:.86rem;font-weight:550;color:var(--text);line-height:1.35}
.sp-lbl2 small{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:3px;font-size:.7rem;color:var(--text-3)}
.sp-kind2{color:var(--k);font-weight:600}
.sp-lbl2 em{font-style:normal;color:var(--text-4)}
.sp-day{display:grid;grid-template-columns:52px 44px auto 1fr;align-items:center;gap:0;margin:2px 0 8px}
.sp-day .sp-term{grid-column:2;width:auto;justify-self:center;width:10px;height:10px;border-radius:50%;background:var(--text)}
.sp-day b{margin:0 8px 0 2px}
.sp-st{grid-template-columns:52px 48px minmax(0,1fr)}
.sp-dot{top:13px}.sp-trk::before{top:13px}
/* 地铁线：轨道改虚线（空档处更稀） */
.sp-trk::before{width:4px;margin-left:-2px;border-radius:0;background:repeating-linear-gradient(to bottom,var(--k) 0 7px,transparent 7px 12px)}
.sp-st.gapped .sp-trk::before{background:repeating-linear-gradient(to bottom,var(--k) 0 3px,transparent 3px 9px)}
/* 编辑自己的话：图标按钮 */
.sm-edit-f{margin-top:4px}
.sm-ic{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:var(--text-3)}.sm-ic:hover{background:var(--hover-2);color:var(--text)}
.sm-ic.go{background:var(--ink);color:var(--paper)}.sm-ic.go:hover{background:var(--ink);color:var(--paper);opacity:.88}.sm-ic.go:disabled{background:var(--hover-2);color:var(--text-4)}
html[data-theme="dark"] .sm-ic.go:not(:disabled){color:#191919}
.ac-row{cursor:context-menu}.sm.bot .sm-t{cursor:default}
/* 编辑框按钮：小而轻，不抢视觉 */
.sm-edit{padding:8px 12px 6px;border-width:1px;border-color:var(--line-2)}
.sm-edit textarea{resize:none;min-height:24px}
.sm-edit-f{margin-top:2px;gap:2px}
.sm-ic,.sm-ic.go{width:24px;height:24px;border-radius:6px;background:transparent;color:var(--text-4)}
.sm-ic svg{width:14px;height:14px}
.sm-ic:hover,.sm-ic.go:hover{background:var(--hover);color:var(--text);opacity:1}
.sm-ic.go{color:var(--text-2)}.sm-ic.go:disabled{background:transparent;color:var(--text-4);opacity:.5}
html[data-theme="dark"] .sm-ic.go:not(:disabled){color:var(--text-2)}

/* ===================================================================
   专注页 v2：计时器是主工作区，待办是旁边的队列；专注中收起其余内容；历史折叠
   =================================================================== */
.focus-page2{display:flex;flex-direction:column;gap:16px}
.fp-main{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:16px;align-items:start}
.fp-timer .tt-card.full .fw-hero,html[data-skin] .fp-timer .tt-card.full .fw-hero{display:grid;grid-template-columns:minmax(220px,340px) minmax(0,1fr);gap:clamp(20px,4vw,48px);align-items:center;padding:clamp(20px,3vw,36px)}
.fp-timer .tt-card.full .ttd{width:100%;max-width:340px;margin:0}
.fp-timer .tt-card.full .tt-info{text-align:left}
.fp-timer .tt-card.full .tt-time{font-size:clamp(2.8rem,5vw,4.2rem)}
.fp-timer .tt-card.full .tt-sub,.fp-timer .tt-card.full .tt-chips,.fp-timer .tt-card.full .tt-acts{justify-content:flex-start}
.fp-timer .tt-card.full .tt-label{margin:0 0 8px;max-width:420px}
.tt-prep{margin:0 0 12px}
.tt-goal{font-size:.8rem!important;height:34px!important}
.tp-task{display:flex;align-items:center;gap:8px;max-width:420px;padding:8px 6px 8px 12px;border-radius:12px;background:var(--hover);margin-bottom:6px}
.tp-k{font-size:.66rem;color:var(--text-4);letter-spacing:.04em;flex:none}
.tp-task b{flex:1;min-width:0;font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-resume{display:flex;flex-direction:column;gap:2px;max-width:420px;margin:0 0 8px;padding-left:12px;border-left:2px solid var(--line-2);font-size:.74rem;color:var(--text-3)}
.tt-two{color:var(--text-2)}
.tt-now{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:4px;display:flex;flex-direction:column;gap:2px}
.tt-now small{font-size:.8rem;font-weight:400;color:var(--text-3)}
.tt-cp-link{display:inline-block;margin:-4px 0 8px;font-size:.74rem;color:var(--text-2)}
/* 检查点 */
.tt-cp{max-width:460px}
.cp-k{font-size:.8rem;color:var(--text-3);margin-bottom:4px}.cp-k b{color:var(--text)}
.cp-goal{font-size:.78rem;color:var(--text-3);margin-bottom:10px}
.cp-f{display:block;margin-bottom:10px}
.cp-f span{display:block;font-size:.84rem;font-weight:600;color:var(--text);margin-bottom:5px}
.cp-f textarea,.cp-f input{width:100%;border:1px solid var(--line);border-radius:10px;background:var(--input);padding:8px 11px;font:inherit;font-size:.84rem;outline:0;resize:none}
.cp-f textarea:focus,.cp-f input:focus{border-color:var(--line-2);background:var(--paper)}
.cp-acts{flex-wrap:wrap;margin-top:6px!important}
.cp-skip{margin-top:8px;font-size:.72rem;color:var(--text-4)}.cp-skip:hover{color:var(--text-2)}
/* 待办队列：整行可点，悬停 / 聚焦才出现开始键 */
.fp-queue,.fp-today{background:var(--card-bg);border-radius:var(--r);box-shadow:0 0 0 1px var(--glass-edge,var(--line));padding:16px 14px}
.fq-h{display:flex;align-items:baseline;gap:8px;margin:0 4px 10px;flex-wrap:wrap}
.fq-h b{font-size:.9rem;font-weight:650}.fq-h small{font-size:.72rem;color:var(--text-4);flex:1}
.fq-list{display:flex;flex-direction:column;gap:2px}
.fq-row{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 10px;border-radius:10px;cursor:pointer;outline:0;transition:background .15s}
.fq-row:hover,.fq-row:focus-visible{background:var(--hover)}
.fq-row.on{background:var(--hover-2)}
.fq-p{width:3px;align-self:stretch;border-radius:2px;background:var(--pc);flex:none;opacity:.8}
.fq-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.fq-t b{font-size:.84rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fq-t small{font-size:.7rem;color:var(--text-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fq-go{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--paper);opacity:0;transition:opacity .15s;flex:none}
html[data-theme="dark"] .fq-go{color:#191919}
.fq-row:hover .fq-go,.fq-row:focus-within .fq-go,.fq-row.on .fq-go{opacity:1}
.fq-go:disabled{opacity:0!important}
@media (hover:none){.fq-go{opacity:1}}
.fq-empty{font-size:.8rem;color:var(--text-4);padding:8px}
.fq-goal{font-size:.72rem;color:var(--text-4)}.fq-goal:hover{color:var(--text)}
.fp-today .goal-row{flex:0 0 220px;margin:0}
.ft-list{display:flex;flex-direction:column;margin-top:10px}
.ft-row{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:10px;padding:7px 4px;border-top:1px solid var(--line);font-size:.8rem}
.ft-time{color:var(--text-3);font-variant-numeric:tabular-nums}.ft-b{min-width:0}.ft-b b{font-weight:500}.ft-b small{display:block;font-size:.72rem;color:var(--text-3)}.ft-m{color:var(--text-4);font-variant-numeric:tabular-nums}
.fq-fold{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-3);padding:4px 6px;border-radius:7px}.fq-fold:hover{background:var(--hover);color:var(--text)}
.fp-hist .fstats{margin-top:10px}
/* 专注中：只留计时器，居中放大 */
.fq-bar{display:flex;align-items:center;justify-content:center;gap:12px;font-size:.76rem;color:var(--text-4)}
.fq-bar button{color:var(--text-2);text-decoration:underline;text-underline-offset:3px}
.focus-page2.quiet .fp-main{grid-template-columns:1fr;max-width:860px;margin:4vh auto 0;width:100%}
.focus-page2.quiet .tt-card{box-shadow:none;background:transparent}
.focus-page2.quiet .tt-card.full .tt-time{font-size:clamp(3.4rem,7vw,5.6rem)}
@media (max-width:900px){.fp-main{grid-template-columns:1fr}.fp-timer .tt-card.full .fw-hero,html[data-skin] .fp-timer .tt-card.full .fw-hero{grid-template-columns:1fr;justify-items:center}.fp-timer .tt-card.full .ttd{max-width:260px}.fp-timer .tt-card.full .tt-info{text-align:center}.fp-timer .tt-card.full .tt-sub,.fp-timer .tt-card.full .tt-chips,.fp-timer .tt-card.full .tt-acts{justify-content:center}}
/* 表盘材质减弱一档，让扇形成为唯一焦点 */
.ttd svg{filter:drop-shadow(0 1px 2px rgba(25,22,18,.08)) drop-shadow(0 14px 24px rgba(25,22,18,.07))}
.focus-page2{--pg1:#4c9cea;--pg2:#1f7ad8}
.fp-timer .tt-card.full .tt-chips{flex-wrap:wrap;gap:6px}.tt-chip{white-space:nowrap;flex:none}
.fp-timer .tt-card.full .tt-chip{min-width:0;padding:0 12px;height:34px;font-size:.82rem}
.fp-timer .tt-card.full .fw-hero{grid-template-columns:minmax(200px,300px) minmax(0,1fr)!important}

/* ---- 专注页「接下来」：Notion 式安静列表 ---- */
.fp-queue{padding:14px 10px 10px}
.fq-h{align-items:center;margin:0 8px 6px}
.fq-h b{font-size:.86rem}.fq-h small{flex:1;font-size:.74rem;color:var(--text-4)}
.fq-h .more{color:var(--text-4);display:grid;place-items:center;width:24px;height:24px;border-radius:6px}.fq-h .more:hover{background:var(--hover);color:var(--text)}
.fq-row{gap:10px;padding:7px 8px;border-radius:8px}
.fq-row.on{background:var(--hover)}
.fq-row.on .fq-t b{font-weight:600}
.fq-p{width:14px;height:14px;align-self:auto;flex:none;border-radius:50%;border:1.5px solid var(--text-4);background:transparent;opacity:1;margin-top:1px}
.fq-p.p0{border-color:var(--hot);background:color-mix(in srgb,var(--hot) 14%,transparent)}
.fq-p.p1{border-color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,transparent)}
.fq-p.p2{border-color:color-mix(in srgb,var(--p2,var(--blue)) 70%,transparent)}
.fq-p.p3{border-color:var(--line-2)}
.fq-row{align-items:flex-start}.fq-row .fq-go{align-self:center}
.fq-t b{font-size:.85rem;font-weight:450;line-height:1.35}
.fq-t small{font-size:.7rem}
.fq-go{width:24px;height:24px;background:transparent;color:var(--text-3);border:1px solid var(--line-2)}
.fq-go:hover{background:var(--ink);color:var(--paper);border-color:transparent}
html[data-theme="dark"] .fq-go{color:var(--text-3)}html[data-theme="dark"] .fq-go:hover{color:#191919}
.fq-row.on .fq-go{background:var(--ink);color:var(--paper);border-color:transparent}html[data-theme="dark"] .fq-row.on .fq-go{color:#191919}
.fq-add{display:flex;align-items:center;gap:8px;margin:4px 0 0;padding:7px 8px;border-radius:8px;color:var(--text-4)}
.fq-add:focus-within{background:var(--hover)}
.fq-add input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:.82rem;color:var(--text)}
.fq-add input::placeholder{color:var(--text-4)}
.mail-login{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mail-login input{flex:1 1 180px;min-width:0;height:34px;padding:0 12px;border-radius:9px;border:1px solid var(--line);background:var(--input);font:inherit;font-size:.84rem;outline:0}
.mail-login input:focus{border-color:var(--line-2);background:var(--paper)}
.mail-msg{flex-basis:100%;color:var(--text-3)}
