/* Hypospark 2.13 — the blog's paper, sage and editorial rhythm. */
:root[data-theme="light"]{
  --bg:#f2f5f3;--bg-elev:#fbfdfc;--panel-solid:#fff;--panel-elev:#fff;
  --text:#23382e;--muted:#748179;--muted-strong:#52665b;
  --line:#223d3012;--line-soft:#223d300c;--line-strong:#223d3024;
  --acc:#247a5c;--acc2:#1b664c;--acc-strong:#1e674d;--acc-dim:#247a5c13;
  --chip:#e9f0eb;--input-bg:#fbfdfc;--paper:#fdfefc;--sidebar-bg:#f1f5f2;--rail-bg:#eaf0eb;
  --hover:#254a3708;--selection:#287c5915;
  --shadow:0 4px 16px #18352406;--shadow-lg:0 20px 55px #1835240f;
  --code-bg:#edf3ef;--code-bar:#e2ebe6;--code-text:#245b48;--code-line:#1e684e29;
}
:root[data-theme="dark"]{
  --bg:#111513;--bg-elev:#171c19;--panel-solid:#1b211e;--panel-elev:#222a25;
  --text:#e3ece5;--muted:#8e9f94;--muted-strong:#b0beb4;
  --line:#dceddf10;--line-soft:#dceddf09;--line-strong:#dceddf24;
  --acc:#72c9a1;--acc2:#59b58c;--acc-strong:#96dfba;--acc-dim:#72c9a112;
  --chip:#232d26;--input-bg:#171d19;--paper:#1a201c;--sidebar-bg:#171d19;--rail-bg:#141a16;
  --hover:#d2e4d708;--selection:#72c9a117;
  --shadow:0 4px 16px #00000010;--shadow-lg:0 20px 55px #00000024;
  --code-bg:#15201b;--code-bar:#1b2923;--code-text:#b8dfcc;--code-line:#6fd3a92e;
}
:root[data-theme]{--serif:Georgia,"Noto Serif SC","Songti SC","SimSun",serif;--tree:248px;--meta:214px}
body::before{background:radial-gradient(ellipse at 3% 1%,#3d926e0b,transparent 45%),radial-gradient(ellipse at 100% 90%,#3d926e06,transparent 40%);opacity:1}
.wrap{max-width:1160px;padding:26px 36px 60px}
header.appbar{padding:2px 0 20px;margin-bottom:18px;border-color:var(--line-strong);background:color-mix(in srgb,var(--bg) 92%,transparent)}
:root[data-theme] header.appbar .app-nav{background:transparent;padding:0;gap:30px;border-radius:0}
:root[data-theme] .nav-link{position:relative;background:transparent;border:0;box-shadow:none;padding:10px 2px;color:var(--muted);font-size:13px;letter-spacing:.04em;border-radius:0}
:root[data-theme] .nav-link.is-active{background:transparent;color:var(--acc);box-shadow:none;border:0}
.nav-link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--acc);transform:scaleX(0);transition:transform .2s}
.nav-link.is-active::after{transform:scaleX(1)}
:root[data-theme] .nav-link:hover{background:transparent;color:var(--text)}
:root[data-theme] .site-logo-mark{width:38px;height:38px;background:linear-gradient(135deg,var(--acc-dim),var(--paper));border-color:var(--line-strong);border-radius:11px 4px 11px 4px;transform:rotate(-3deg);box-shadow:0 4px 16px #1c5c3d08}
.site-logo:hover .site-logo-mark{transform:rotate(2deg)}
.site-logo-type strong{font-size:12px;letter-spacing:.25em}
.site-logo-type small{font-size:7px;color:var(--muted);letter-spacing:.2em}
:root[data-theme] .theme-toggle{border-color:var(--line);background:transparent}
:root[data-theme] .user-menu-btn{background:transparent;border-color:var(--line-strong);box-shadow:none;color:var(--muted-strong)}
.actions{gap:9px}
.page-intro{padding:36px 0 34px;gap:24px;align-items:flex-end}
.page-intro .eyebrow{font:10px/1.5 var(--mono);letter-spacing:.17em;color:var(--acc);margin:0 0 18px}
.page-intro h1{font:500 clamp(29px,3.8vw,42px)/1.4 var(--serif);letter-spacing:-.025em;margin:0 0 14px}
.page-intro h1 em{font-style:normal;color:var(--acc)}
.page-intro p:not(.eyebrow){font-size:13px;color:var(--muted);letter-spacing:.02em}
.today-label{font:11px/1.7 var(--mono);color:var(--muted);padding:8px 0 8px 16px;border-left:1px solid var(--line-strong);margin-bottom:4px}
.page-stats{gap:16px;margin-bottom:24px}
:root[data-theme] .stat{padding:22px 24px;background:color-mix(in srgb,var(--paper) 75%,transparent);border-color:var(--line-strong);border-radius:14px;box-shadow:var(--shadow)}
.stat::before{display:none}
.stat .l{color:var(--muted);font-size:11px}
.stat .n{font:500 32px/1.2 var(--serif);color:var(--text);margin-top:12px}
.stat .s{font-size:11px;color:var(--muted);margin-top:10px}
:root[data-theme] .stat:hover{border-color:var(--acc);background:var(--paper)}
.page .panel{max-width:none;width:100%}
:root[data-theme] .panel{background:var(--paper)!important;border-color:var(--line-strong)!important;border-radius:18px;padding:28px 30px;gap:20px;box-shadow:var(--shadow-lg)}
.panel-head{padding-bottom:17px;border-bottom:1px solid var(--line)}
.panel-head .eyebrow{font:10px/1.4 var(--mono);letter-spacing:.15em;color:var(--muted);margin-bottom:8px}
.panel-head h2{font:600 25px/1.4 var(--serif);letter-spacing:.01em}
.panel-desc{font-size:12px;margin:6px 0 0;color:var(--muted)}
.filter-bar{gap:12px}
:root[data-theme] .filter-tabs button{font-size:12px;min-height:32px;padding:6px 12px;border-radius:7px}
.filter-bar>input{width:220px;font-size:12px;min-height:36px;padding:8px 12px;border-color:var(--line)}
.list{gap:0}
.list .task-item{border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0;padding:17px 4px!important;background:transparent}
.list .task-item:last-child{border-bottom:0!important}
.list .task-item:hover{background:var(--hover)}
.list .task-item.overdue{border-left:0!important}
.task-title{font-size:14px;font-weight:500;line-height:1.6}
.task-item .meta{font-size:11px;margin-top:6px;color:var(--muted)}
.task-item.overdue .meta{color:var(--warn)}
.task-check{gap:12px}
.done-box{border-top:1px solid var(--line);padding-top:14px}
.done-box summary{font-size:12px;color:var(--muted)}
.done-item{border:0!important;background:transparent!important;padding:10px 4px!important}
form.row{padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--sidebar-bg);gap:8px;align-items:center}
form.row input,form.row select{background:var(--paper);border-color:var(--line-strong);font-size:12px;min-height:38px}
:root[data-theme] form.row button[type="submit"]{background:var(--acc);border-color:var(--acc);color:var(--paper);font-size:12px;min-height:38px}
:root[data-theme="dark"] form.row button[type="submit"]{color:#10251a}
.msg{font-size:11px;line-height:1.7}
#stats-ledger .stat{display:grid;grid-template-columns:1fr auto;gap:6px 20px;padding:20px 24px}
#stats-ledger .stat .l{align-self:end}
#stats-ledger .stat .n{grid-column:2;grid-row:1 / span 2;align-self:center;margin:0;font-size:29px}
#stats-ledger .stat .s{margin:0}
.month-bar{margin:0;justify-content:flex-start;gap:12px;font-size:13px;letter-spacing:.1em}
.month-summary{padding:20px 24px;background:var(--sidebar-bg);border-color:var(--line);border-radius:12px;gap:18px;margin:0}
.month-summary .ms-item{flex:1;min-width:80px}
.month-summary .ms-label{font-size:11px;letter-spacing:0}
.month-summary .ms-val{font:500 27px/1.4 var(--serif);margin-top:7px}
.ledger-tools>input{flex:1;max-width:300px}
th{background:var(--sidebar-bg);padding:11px 12px;font-size:11px;font-weight:500;color:var(--muted)}
td{padding:16px 12px;border-color:var(--line);font-size:13px}
.table-wrap{border:1px solid var(--line);border-radius:10px}
.table-wrap tbody tr:last-child td{border-bottom:0}
.money{font-size:12px}
/* The writing space stays compact; the paper carries the visual identity. */
html.is-notes .wrap,html:has(#page-notes:not([hidden])) .wrap{padding:18px 22px 22px}
html.is-notes header.appbar,html:has(#page-notes:not([hidden])) header.appbar{padding:2px 0 18px;margin-bottom:16px}
:root[data-theme] .notes-shell{border-radius:15px;border-color:var(--line-strong);box-shadow:var(--shadow-lg)}
.notes-sidebar-head{padding:25px 18px 18px}
.notes-side-brand>.eyebrow{font:9px/1.3 var(--mono);letter-spacing:.15em;color:var(--muted);margin-bottom:10px}
.vault-switcher>summary{font:600 17px/1.5 var(--serif);letter-spacing:0}
.vault-menu{box-shadow:0 16px 40px #163f2418;border-radius:10px}
.notes-search-wrap input{border-radius:7px}
.notes-create-actions{padding-top:0;padding-bottom:16px}
.notes-tree{padding:0 10px 18px}
:root[data-theme] .nt-row{font-size:12px;min-height:33px;padding-top:7px;padding-bottom:7px}
.nt-name{letter-spacing:.01em}
:root[data-theme] .ribbon-btn.is-active{background:var(--selection);box-shadow:none;border-color:var(--line);color:var(--acc)}
.notes-path-label{display:none}
:root[data-theme] .notes-editor-bar{padding:13px 22px;min-height:56px;background:var(--paper)}
.notes-path{font-size:12px;font-weight:500;letter-spacing:.02em}
.notes-modes{background:var(--sidebar-bg);border:1px solid var(--line);padding:2px}
:root[data-theme] .notes-modes button{font-size:10px;min-height:26px}
:root[data-theme] #notesSave{min-height:30px;padding:5px 13px;background:var(--acc);font-size:11px}
:root[data-theme] .notes-preview{font-family:var(--font);font-size:14.5px;line-height:1.95}
.notes-preview.is-reading{padding:40px clamp(24px,7%,92px) 96px}
.notes-preview h1,.notes-preview h2,.notes-preview h3{font-family:var(--serif);font-weight:600;letter-spacing:.005em;color:var(--text)}
.notes-preview h1{font-size:29px;margin-bottom:26px}
.notes-preview h2{font-size:23px;margin-top:35px}
.notes-preview h3{font-size:18px}
.notes-preview blockquote{background:var(--sidebar-bg);border-left-width:2px;color:var(--muted-strong);font-family:var(--serif);font-size:15px;padding:15px 20px}
.notes-preview .md-table th{font-size:11px;background:var(--sidebar-bg)}
.notes-preview .md-table td{font-size:12px}
.notes-editor{font:13px/1.95 var(--mono);padding:30px 32px}
.notes-meta-body{gap:26px;padding-top:12px}
.notes-meta h3{font:10px/1.5 var(--font);letter-spacing:.06em;margin-bottom:10px}
.notes-meta section:nth-child(1) h3::before{content:"01 / ";font-family:var(--mono);opacity:.5}
.notes-meta section:nth-child(2) h3::before{content:"02 / ";font-family:var(--mono);opacity:.5}
.notes-meta section:nth-child(3) h3::before{content:"03 / ";font-family:var(--mono);opacity:.5}
:root[data-theme] .ol-item,:root[data-theme] .bl-item{font-size:11.5px;line-height:1.7}
.notes-status{font-size:10px}
/* Arrival: an editorial opening, then a familiar login form. */
.login-stage{min-height:100dvh}
.node-field{background:radial-gradient(ellipse at 10% 42%,#52937612,transparent 48%),radial-gradient(circle,var(--line-strong) .7px,transparent 1px);background-size:auto,28px 28px;opacity:.45}
:root[data-theme="dark"] .node-field{background:radial-gradient(ellipse at 10% 42%,#52937615,transparent 48%),radial-gradient(circle,var(--line-strong) .7px,transparent 1px);background-size:auto,28px 28px}
.login-nav{width:100%;max-width:1280px;margin:0 auto;padding:35px 48px 0}
.login-hero{flex:1;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.8fr);gap:70px;align-items:center;justify-content:unset;max-width:1120px;width:100%;margin:0 auto;padding:90px 30px 100px;text-align:left}
.login-copy{padding-bottom:22px}
.login-eyebrow{display:flex;align-items:center;gap:10px;letter-spacing:.13em;color:var(--acc);font:10px/1.6 var(--mono)}
.login-eyebrow>span{display:inline-block;width:20px;height:1px;background:var(--acc)}
.login-hero h1{font:500 clamp(38px,4.3vw,60px)/1.45 var(--serif);letter-spacing:-.02em;margin:27px 0 24px;white-space:nowrap}
.login-hero h1 em{font-style:normal;color:var(--acc)}
.login-lead{font:13px/2 var(--font);letter-spacing:.02em;margin:0;color:var(--muted)}
.login-topics{display:flex;align-items:center;gap:15px;margin-top:44px;color:var(--muted);font:9px/1 var(--mono);letter-spacing:.15em}
.login-topics i{width:3px;height:3px;border-radius:50%;background:var(--acc);opacity:.55}
:root[data-theme] .login-card{max-width:none;width:100%;padding:34px 30px 30px;background:color-mix(in srgb,var(--paper) 92%,transparent);border:1px solid var(--line-strong);border-radius:16px;box-shadow:var(--shadow-lg)}
.login-card-heading{margin-bottom:25px;padding-bottom:21px;border-bottom:1px solid var(--line)}
.login-card-heading>.eyebrow{color:var(--muted);font:9px/1.5 var(--mono);letter-spacing:.16em}
.login-card-heading h2{font:600 26px/1.4 var(--serif);letter-spacing:.01em;margin:10px 0 8px}
.login-card-heading p{font:12px/1.6 var(--font);color:var(--muted);margin:0}
.login-card label{font-size:11px;font-weight:500;letter-spacing:.02em;color:var(--muted-strong);margin:17px 0 8px}
.login-card input{background:var(--input-bg);border-color:var(--line-strong);min-height:42px;font-size:13px}
:root[data-theme] .login-card #btn{margin-top:24px;font-size:12px;min-height:42px;border-radius:8px;display:flex;justify-content:space-between;align-items:center;padding:12px 15px}
.login-card #btn>span{font-size:17px;font-weight:400}
.login-footer{display:flex;justify-content:space-between;gap:16px;width:100%;max-width:1280px;margin:0 auto;padding:0 48px 28px;font:9px/1.5 var(--mono);letter-spacing:.08em;color:var(--muted)}
@media(max-width:1100px){.login-hero{gap:40px;padding-left:40px;padding-right:40px}.login-hero h1{font-size:43px}:root[data-theme]{--tree:224px;--meta:190px}}
@media(max-width:800px){.login-hero{grid-template-columns:1fr;gap:32px;max-width:480px;padding:60px 24px}.login-copy{padding-bottom:0}.login-hero h1{font-size:42px;margin:22px 0 16px}.login-topics{display:none}.login-nav{padding:25px 25px 0}.login-footer{padding:0 25px 24px}.login-footer>span:last-child{display:none}}
@media(max-width:640px){
  .wrap{padding:18px 16px 34px}
  header.appbar{padding:0 0 16px;margin-bottom:14px;gap:10px}
  :root[data-theme] header.appbar .app-nav{gap:28px;padding:6px 0 0;justify-content:flex-start}
  :root[data-theme] .nav-link{flex:0 0 auto;padding:9px 2px;font-size:12px}
  .page-intro{padding:24px 0 27px;display:block}
  .page-intro h1{font-size:29px;line-height:1.5}
  .page-intro .eyebrow{margin-bottom:13px;font-size:9px}
  .today-label{display:inline-block;margin-top:14px;font-size:10px;padding:0;border:0}
  .page-stats{gap:10px;margin-bottom:16px}
  :root[data-theme] .stat{padding:18px 16px}
  .stat .n{font-size:28px}
  :root[data-theme] .panel{padding:20px 17px;gap:16px;border-radius:14px}
  .panel-head{padding-bottom:14px}
  .panel-head h2{font-size:23px}
  .filter-bar>input{width:100%}
  form.row{padding:12px;gap:8px}
  form.row .grow,form.row .field-date,form.row .field-tags,form.row .field-amount{flex:1 1 100%;width:100%}
  form.row button{width:100%;flex:1 1 100%}
  .month-summary{padding:16px;gap:10px}
  .month-summary .ms-val{font-size:23px}
  .month-summary .ms-item{min-width:65px}
  html.is-notes .wrap,html:has(#page-notes:not([hidden])) .wrap{padding:12px 10px}
  html.is-notes header.appbar,html:has(#page-notes:not([hidden])) header.appbar{padding-bottom:10px;margin-bottom:10px}
  .notes-preview.is-reading{padding:26px 20px 70px}
  .notes-preview h1{font-size:25px}
  .notes-preview h2{font-size:21px}
  .notes-editor{padding:20px;font-size:12px}
  .login-hero{padding-top:40px;padding-bottom:40px}
  .login-hero h1{font-size:34px}
  .login-eyebrow{font-size:9px}
  :root[data-theme] .login-card{padding:26px 23px}
}
