:root{
  --bg:#fbf8f3; --panel:#ffffff; --ink:#26211c; --muted:#7a6f64; --line:#e8e0d5;
  --accent:#af5109; --accent-ink:#ffffff; --soft:#fdf0dd; --danger:#b91c1c; --ok:#15803d;
  --shadow:0 1px 2px rgba(60,40,10,.08),0 4px 14px rgba(60,40,10,.06);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#171411;--panel:#211d19;--ink:#f1ebe3;--muted:#a09484;--line:#362f28;--accent:#e08a2c;--accent-ink:#1a1209;--soft:#33291d;--danger:#f87171;--ok:#4ade80;--shadow:none;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#171411;--panel:#211d19;--ink:#f1ebe3;--muted:#a09484;--line:#362f28;--accent:#e08a2c;--accent-ink:#1a1209;--soft:#33291d;--danger:#f87171;--ok:#4ade80;--shadow:none;color-scheme:dark}
:root[data-theme="light"]{color-scheme:light}
*{box-sizing:border-box}
:root{color-scheme:light;--a2:var(--accent)}
html,body{height:100%;margin:0}
body{background:var(--bg);color:var(--ink);font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-text-size-adjust:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:8px 12px;min-height:40px}
button:hover{border-color:var(--accent)}
button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}
button.icon{width:42px;padding:0;font-size:20px}
button.ghost{border-color:transparent;background:transparent;color:var(--muted)}
button.danger{color:var(--danger)}
button.small{min-height:30px;padding:3px 9px;font-size:14px;border-radius:8px}
input,select,textarea{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 11px;width:100%;min-height:40px}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
input[type=checkbox]{width:22px;height:22px;min-height:0;accent-color:var(--accent);flex:none}
textarea{resize:vertical;line-height:1.5}

#app{display:flex;height:100%;overflow:clip}
#main{flex:1;display:flex;flex-direction:column;min-width:0;height:100%}
#top{display:flex;gap:8px;align-items:center;padding:10px 12px;padding-top:calc(10px + env(safe-area-inset-top));border-bottom:1px solid var(--line);background:var(--panel)}
#top #search{flex:1;min-width:0}
#top #newBtn{order:2}
button.alt{background:transparent;color:var(--accent)}
button.alt:hover{background:var(--soft)}
.panes{flex:1;display:flex;min-height:0}
#list{flex:0 0 380px;max-width:100%;overflow:auto;padding:14px;border-right:1px solid var(--line)}
#editor{flex:1;overflow:auto;min-width:0;padding:18px 22px 80px}
#editor .empty{color:var(--muted);text-align:center;margin-top:20vh}

/* drawer */
#drawer{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);background:var(--panel);border-right:1px solid var(--line);transform:translateX(-102%);visibility:hidden;transition:transform .2s,visibility 0s .2s;z-index:30;overflow:auto;padding:14px 10px calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:2px}
#scrim{position:fixed;inset:0;background:rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .2s;z-index:20}
.drawer-open #drawer{transform:none;visibility:visible;transition:transform .2s;box-shadow:var(--shadow)}
.drawer-open #scrim{opacity:1;pointer-events:auto}
#drawer h1{font-size:19px;margin:4px 8px 10px}
#drawer h3{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 8px 4px;display:flex;justify-content:space-between;align-items:center}
.nav{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:0;background:transparent;border-radius:9px;padding:8px 10px;min-height:38px}
.nav:hover{background:var(--soft)}
.nav.on{background:var(--soft);font-weight:600;color:var(--accent)}
.nav .n{margin-left:auto;color:var(--muted);font-size:13px}
.nav .x{display:none;margin-left:4px;color:var(--muted)}
.nav:hover .x{display:inline}

/* cards */
.view-title{font-size:20px;margin:2px 2px 12px;display:flex;align-items:baseline;gap:8px}
.view-title small{color:var(--muted);font-weight:400;font-size:14px}
.sect{margin:18px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.card{display:flex;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin-bottom:8px;cursor:pointer;box-shadow:var(--shadow)}
.card:hover{border-color:var(--accent)}
.card.sel{border-color:var(--accent);background:var(--soft)}
.card .ic{font-size:18px;line-height:1.5}
.card .bd{min-width:0;flex:1}
.card .t{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card .s{color:var(--muted);font-size:14px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}
.card .s mark{background:var(--soft);color:var(--accent);font-weight:600;padding:0 1px;border-radius:3px}
.card.done .t{text-decoration:line-through;color:var(--muted)}
.badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px;align-items:center}
.badge{font-size:12px;border:1px solid var(--line);border-radius:99px;padding:1px 8px;color:var(--muted);white-space:nowrap}
.badge.warn{color:var(--danger);border-color:var(--danger)}
.badge.hi{color:var(--accent);border-color:var(--accent)}
.empty-list{color:var(--muted);text-align:center;padding:36px 10px}

/* alerts */
#alerts{padding:0 12px}
.alert{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--soft);border:1px solid var(--accent);border-radius:12px;padding:9px 12px;margin-top:10px}
.alert b{flex:1;min-width:140px}

/* editor */
.ed-top{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.ed-top .back{display:none}
.ed-top select{width:auto;flex:1;min-width:120px}
.title{font-size:24px;font-weight:700;border:0;background:transparent;padding:6px 0;border-bottom:1px solid var(--line);border-radius:0}
.meta{color:var(--muted);font-size:13px;margin:6px 0 14px}
.row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px;align-items:flex-end}
.row label,.fld label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted);flex:1;min-width:110px}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:14px}
.fields .wide{grid-column:1/-1}
.fld label{font-size:12px;color:var(--muted);flex-direction:column;gap:3px;display:flex}
.calc{padding:9px 11px;border:1px dashed var(--line);border-radius:10px;min-height:40px;font-weight:600}
h4{margin:20px 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);display:flex;align-items:center;gap:8px}
h4 .sp{flex:1}
.body{min-height:140px}
.checks .cat{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:12px 0 2px}
.crow{display:flex;gap:8px;align-items:center;padding:3px 0}
.crow input[type=text]{border:0;background:transparent;padding:6px 4px;min-height:34px}
.crow.done input[type=text]{text-decoration:line-through;color:var(--muted)}
.crow select{width:auto;min-height:30px;padding:2px 6px;font-size:13px;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.chip{display:inline-flex;gap:6px;align-items:center;background:var(--soft);color:var(--accent);border-radius:99px;padding:3px 10px;font-size:14px;cursor:pointer;border:0;min-height:0}
.chip.ghost{background:transparent;border:1px dashed var(--line);color:var(--muted)}
.alarm{border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:8px;background:var(--panel)}
.alarm.off{opacity:.55}
.alarm .row{margin-bottom:6px}
.alarm .info{font-size:13px;color:var(--muted)}
.files{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.file{border:1px solid var(--line);border-radius:12px;padding:8px;background:var(--panel);display:flex;flex-direction:column;gap:6px}
.file img{width:100%;height:100px;object-fit:cover;border-radius:8px;cursor:pointer;background:var(--soft)}
.file .ph{height:100px;display:grid;place-items:center;font-size:34px;background:var(--soft);border-radius:8px;cursor:pointer}
.file .nm{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file .bt{display:flex;gap:6px;flex-wrap:wrap}
.load{height:6px;background:var(--line);border-radius:9px;overflow:hidden;margin-top:6px}
.load i{display:block;height:100%;background:var(--ok)}
.load.over i{background:var(--danger)}
.ctrl{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:12px}
.ctrl select,.ctrl input{width:auto}
.quickadd{display:flex;gap:8px;margin:6px 0 4px}

/* dialog + toast */
dialog{border:1px solid var(--line);border-radius:16px;padding:18px;background:var(--panel);color:var(--ink);width:min(440px,92vw);box-shadow:0 20px 60px rgba(0,0,0,.3)}
dialog::backdrop{background:rgba(0,0,0,.4)}
dialog h2{margin:0 0 12px;font-size:18px}
dialog .opts{display:flex;flex-direction:column;gap:6px;max-height:60vh;overflow:auto}
dialog .opts button{text-align:left}
dialog .opts small{display:block;color:var(--muted)}
dialog .actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}
#toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:99px;opacity:0;pointer-events:none;transition:.2s;z-index:60;max-width:90vw}
#toast.show{opacity:1;transform:translate(-50%,0)}

/* narrow screens: one pane at a time */
@media (max-width:820px){
  #list{flex:1;border-right:0}
  #editor{display:none;padding:14px 14px 80px}
  .editing #list{display:none}
  .editing #editor{display:block}
  .ed-top .back{display:inline-flex}
  .editing #fab{display:none}   /* the editor is full screen on phones */
}
@media (min-width:821px){ .ed-top .back{display:none} }

/* to-do list */
.todo{margin-top:8px}
.trow{display:flex;gap:8px;align-items:center;padding:4px 0;border-bottom:1px solid var(--line)}
.trow.sub{margin-left:30px}
.trow input[type=text]{border:0;background:transparent;padding:8px 4px;min-height:38px;flex:1;min-width:0;font-size:17px}
.trow.sub input[type=text]{font-size:15px}
.trow.done input[type=text]{text-decoration:line-through;color:var(--muted)}
.trow .dot{width:22px;text-align:center;color:var(--muted);flex:none}
.trow.addrow{border-bottom:0}
.trow button.small{white-space:nowrap}
.bell{min-height:30px;padding:2px 8px;border-radius:99px;border-color:transparent;background:transparent;font-size:15px;opacity:.55;white-space:nowrap}
.bell:hover,.bell.on{opacity:1}
.bell.on{border-color:var(--accent);color:var(--accent);font-size:13px}
.bell span{margin-left:5px}
@media (max-width:520px){.trow .lbl{display:none}.trow{gap:4px}.bell.on{font-size:12px;padding:2px 6px}}

/* shelves */
.shelfrow{display:flex;align-items:center;gap:2px;margin-top:4px}
.shelfrow .nav{flex:1;font-weight:600}
.shelfrow .chev{border:0;background:transparent;min-height:32px;width:28px;padding:0;color:var(--muted)}
.nav.indent{padding-left:44px}

/* import review */
.imp{position:fixed;inset:0;background:var(--bg);z-index:50;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top)}
.imp-head{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--panel)}
.imp-head h2{margin:0;font-size:20px}
.imp-actions{display:flex;gap:8px;flex-wrap:wrap}
.imp-body{flex:1;overflow:auto;padding:12px 16px 40px;max-width:900px;width:100%;margin:0 auto}
.imp-group{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-bottom:8px;overflow:hidden}
.imp-group>summary{display:flex;gap:10px;align-items:center;padding:12px 14px;cursor:pointer;list-style:none}
.imp-group>summary::-webkit-details-marker{display:none}
.imp-group>summary::before{content:'▸';color:var(--muted)}
.imp-group[open]>summary::before{content:'▾'}
.imp-group .n{color:var(--muted);margin-left:auto;font-size:14px}
.imp-row{padding:10px 14px;border-top:1px solid var(--line);display:grid;gap:4px}
.imp-t{display:flex;gap:8px;align-items:center}
.imp-s{color:var(--muted);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.imp-why{color:var(--muted);font-size:12px}
.imp-row select{margin-top:4px}

.nav.small-nav{min-height:34px;padding-top:4px;padding-bottom:4px;font-size:15px;color:var(--muted)}
.nav.small-nav.on{color:var(--accent)}
.nav .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.nav.indent{padding-left:34px}

.shelfrow .nav.plain{font-weight:400}
.shelfrow .nav.plain.on{font-weight:600}

/* sort desk */
.tabs{display:flex;gap:6px;padding:8px 16px 0;border-bottom:1px solid var(--line);background:var(--panel);overflow-x:auto}
.tab{border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;padding:8px 14px;color:var(--muted);white-space:nowrap}
.tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.gcard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}
.ghead{display:flex;gap:10px;align-items:baseline}
.ghead .n{margin-left:auto;color:var(--muted);font-size:14px;white-space:nowrap}
.gcard details{margin:6px 0}
.gcard summary{cursor:pointer;color:var(--muted);font-size:14px}
.rows{max-height:260px;overflow:auto;margin-top:6px;border-top:1px solid var(--line)}
.prow{display:flex;gap:10px;align-items:flex-start;padding:6px 0;border-bottom:1px solid var(--line);cursor:pointer}
.prow .pt{display:flex;flex-direction:column;min-width:0}
.prow .imp-s{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.dbar{margin-top:8px;display:grid;gap:8px}
.chip.big{padding:7px 12px;font-size:15px;border:1px solid var(--line);background:var(--panel);color:var(--ink)}
.chip.big.sug{background:var(--soft);color:var(--accent);border-color:var(--accent)}
.chip.big:hover{border-color:var(--accent)}
.rem{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--muted);margin:10px 0}
.single h3{margin:6px 0;font-size:22px}
.stext{white-space:pre-wrap;word-break:break-word;font:inherit;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;max-height:38vh;overflow:auto;margin:8px 0}

/* master task meter */
.cmeter{display:flex;gap:10px;align-items:center;margin:-2px 0 6px 32px;font-size:12px;color:var(--muted)}
.meter{display:flex;gap:3px;flex:1;height:9px;max-width:420px}
.meter i{flex:1;background:var(--line);border-radius:3px;transition:background .2s}
.meter i.on{background:var(--ok)}
.crow.sub{margin-left:30px}
.crow .dot{width:22px;text-align:center;color:var(--muted);flex:none}
.crow.sub input[type=text]{font-size:15px}
@media (max-width:520px){.crow .lbl{display:none}}
.crow button.small,.trow button.small{white-space:nowrap;flex:none}

/* ===== color themes (palettes). Classic = the defaults above. Each palette has a light and a dark set; Neon and Red LED are dark only. ===== */
body{font-family:var(--font,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif);text-shadow:var(--glow,none)}

/* Blue */
:root[data-palette="blue"]{--bg:#f3f7fc;--panel:#ffffff;--ink:#14202f;--muted:#5b6b80;--line:#dbe4ef;--accent:#1d63d6;--accent-ink:#ffffff;--soft:#e4eefc;--danger:#b91c1c;--ok:#15803d}
@media (prefers-color-scheme:dark){:root[data-palette="blue"]:not([data-theme="light"]){--bg:#0e1621;--panel:#152131;--ink:#e6eef8;--muted:#8fa3bb;--line:#243449;--accent:#5aa2ff;--accent-ink:#04101f;--soft:#17263a;--danger:#f87171;--ok:#4ade80;color-scheme:dark}}
:root[data-palette="blue"][data-theme="dark"]{--bg:#0e1621;--panel:#152131;--ink:#e6eef8;--muted:#8fa3bb;--line:#243449;--accent:#5aa2ff;--accent-ink:#04101f;--soft:#17263a;--danger:#f87171;--ok:#4ade80;color-scheme:dark}



/* LCD: old handheld screen colors sampled from a reference (grey-olive screen, dark olive ink); dark mode is the same screen, inverted */
:root[data-palette="lcd"]{--bg:#979a7f;--panel:#a4a68b;--ink:#25261b;--muted:#2f3024;--line:#6f7158;--accent:#23241c;--accent-ink:#b9bc9f;--soft:#8b8d76;--danger:#512016;--ok:#34352a;--shadow:none;--font:ui-monospace,"Cascadia Mono","SF Mono",Menlo,Consolas,monospace}
:root[data-palette="lcd"] body{background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.03) 0 1px,transparent 1px 3px)}
@media (prefers-color-scheme:dark){:root[data-palette="lcd"]:not([data-theme="light"]){--bg:#1c1d15;--panel:#26271c;--ink:#b3b69a;--muted:#8e9077;--line:#3d3e2f;--accent:#b3b69a;--accent-ink:#1c1d15;--soft:#2f3023;--danger:#d9937f;--ok:#b3b69a;--glow:none;color-scheme:dark}
  :root[data-palette="lcd"]:not([data-theme="light"]) body{background-image:none}}
:root[data-palette="lcd"][data-theme="dark"]{--bg:#1c1d15;--panel:#26271c;--ink:#b3b69a;--muted:#8e9077;--line:#3d3e2f;--accent:#b3b69a;--accent-ink:#1c1d15;--soft:#2f3023;--danger:#d9937f;--ok:#b3b69a;--glow:none;color-scheme:dark}
:root[data-palette="lcd"][data-theme="dark"] body{background-image:none}
.swatches{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:6px 0 12px}
.swatch{display:flex;flex-direction:column;gap:6px;align-items:flex-start;text-align:left;padding:8px 10px}
.swatch.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
.swatch .dots{display:flex;gap:4px}
.swatch .dots i{width:18px;height:18px;border-radius:50%;border:1px solid rgba(128,128,128,.4)}
.swatch small{color:var(--muted)}


.tagshead{display:flex;align-items:center;gap:2px;margin-top:14px}
.tagshead .chev{border:0;background:transparent;min-height:30px;width:28px;padding:0;color:var(--muted)}
.tagshead h3{cursor:pointer}
.tagshead h3 .n{font-weight:400}

#toast.act{pointer-events:auto;display:flex;gap:14px;align-items:center}
.toastbtn{background:transparent;border:1px solid currentColor;color:inherit;min-height:30px;padding:2px 12px;border-radius:99px;font-weight:600}

/* shortcuts, palette, welcome, a11y */
.krow{display:flex;gap:12px;align-items:center}
.krow kbd{min-width:120px;font:inherit;font-size:13px;background:var(--soft);border:1px solid var(--line);border-radius:6px;padding:2px 8px;white-space:nowrap}
dialog .opts button.on{border-color:var(--accent);background:var(--soft)}
.tips{margin:8px 0 12px;padding-left:20px;color:var(--muted)}
.tips li{margin:4px 0}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media (pointer:coarse){input[type=checkbox]{width:26px;height:26px}.crow,.trow{padding-top:6px;padding-bottom:6px}button.small{min-height:36px}}

.rulesui .row{align-items:center}
.rulesui .row input{flex:1;min-width:150px;width:auto}

.convert{display:flex;gap:8px;align-items:center;margin:0 0 10px;color:var(--muted);font-size:14px;flex-wrap:wrap}

.filebtn{flex:1 1 230px;min-width:230px;text-align:left;display:flex;gap:6px;align-items:center;white-space:nowrap;overflow:hidden}
.filebtn span{overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
dialog .sect{margin:10px 0 2px}

.filebtn .fl{color:var(--muted);font-weight:500;font-size:13px}





/* Green LED (always dark): black with green monospace text and a green glow */
:root[data-palette="greenled"]{--bg:#010a03;--panel:#04140a;--ink:#4dff72;--muted:#32d95a;--line:#0d4a1f;--accent:#2bff55;--accent-ink:#001204;--soft:#062412;--danger:#d4ffdc;--ok:#c6ff3d;--shadow:none;--glow:0 0 5px rgba(57,255,90,.5);--font:ui-monospace,"Cascadia Mono","SF Mono",Menlo,Consolas,monospace;color-scheme:dark}
:root[data-palette="greenled"] button.primary{box-shadow:0 0 12px rgba(43,255,85,.6)}
:root[data-palette="greenled"] .nav.on,:root[data-palette="greenled"] .card.sel{box-shadow:0 0 0 1px var(--accent),0 0 10px rgba(43,255,85,.4)}
:root[data-palette="greenled"] input::placeholder,:root[data-palette="greenled"] textarea::placeholder{color:#2ca24a}

.badge.hi{color:var(--a2);border-color:var(--a2)}
.alert{border-color:var(--a2)}
.checks .cat{color:var(--a2)}

/* Paper & Ink */
:root[data-palette="paper"]{--bg:#fbfbfa;--panel:#ffffff;--ink:#191919;--muted:#5f5e5b;--line:#e7e6e2;--accent:#191919;--accent-ink:#ffffff;--soft:#f1f0ec;--a2:#3b5bdb;--danger:#b3261e;--ok:#2b6e3f;--shadow:none}
@media (prefers-color-scheme:dark){:root[data-palette="paper"]:not([data-theme="light"]){--bg:#151515;--panel:#1e1e1e;--ink:#ededed;--muted:#a3a3a3;--line:#303030;--accent:#ededed;--accent-ink:#151515;--soft:#272727;--a2:#8fb0ff;--danger:#ff8f86;--ok:#7bd18f;--shadow:none;color-scheme:dark}}
:root[data-palette="paper"][data-theme="dark"]{--bg:#151515;--panel:#1e1e1e;--ink:#ededed;--muted:#a3a3a3;--line:#303030;--accent:#ededed;--accent-ink:#151515;--soft:#272727;--a2:#8fb0ff;--danger:#ff8f86;--ok:#7bd18f;--shadow:none;color-scheme:dark}

/* Ocean Reef */
:root[data-palette="ocean"]{--bg:#edf7fc;--panel:#ffffff;--ink:#0a2a3f;--muted:#3e6580;--line:#c9e2ef;--accent:#0a6c9e;--accent-ink:#ffffff;--soft:#d8edf8;--a2:#b0420f;--danger:#b3261e;--ok:#0b7a68;--shadow:none}
@media (prefers-color-scheme:dark){:root[data-palette="ocean"]:not([data-theme="light"]){--bg:#04202f;--panel:#0a3145;--ink:#def1fa;--muted:#8fbdd6;--line:#155070;--accent:#38c6f2;--accent-ink:#031a26;--soft:#0d3d57;--a2:#ff8a4a;--danger:#ff7b72;--ok:#4be0b0;--shadow:none;color-scheme:dark}}
:root[data-palette="ocean"][data-theme="dark"]{--bg:#04202f;--panel:#0a3145;--ink:#def1fa;--muted:#8fbdd6;--line:#155070;--accent:#38c6f2;--accent-ink:#031a26;--soft:#0d3d57;--a2:#ff8a4a;--danger:#ff7b72;--ok:#4be0b0;--shadow:none;color-scheme:dark}

/* Midnight Aqua */
:root[data-palette="aqua"]{--bg:#f0f5f5;--panel:#ffffff;--ink:#1f2833;--muted:#4a5a66;--line:#d3dddd;--accent:#2a7773;--accent-ink:#ffffff;--soft:#dff1f0;--a2:#3a4c60;--danger:#b3261e;--ok:#2a7773;--shadow:none}
@media (prefers-color-scheme:dark){:root[data-palette="aqua"]:not([data-theme="light"]){--bg:#141b24;--panel:#1f2833;--ink:#c5c6c7;--muted:#9a9da2;--line:#33414f;--accent:#66fcf1;--accent-ink:#0b1218;--soft:#283544;--a2:#52b3ae;--danger:#ff8f8f;--ok:#66fcf1;--shadow:none;color-scheme:dark}}
:root[data-palette="aqua"][data-theme="dark"]{--bg:#141b24;--panel:#1f2833;--ink:#c5c6c7;--muted:#9a9da2;--line:#33414f;--accent:#66fcf1;--accent-ink:#0b1218;--soft:#283544;--a2:#52b3ae;--danger:#ff8f8f;--ok:#66fcf1;--shadow:none;color-scheme:dark}

/* Ocean Reef: a soft blue wash behind the page */
:root[data-palette="ocean"] body{background-image:linear-gradient(180deg,#edf7fc 0%,#d8edf8 100%);background-attachment:fixed}
@media (prefers-color-scheme:dark){:root[data-palette="ocean"]:not([data-theme="light"]) body{background-image:linear-gradient(180deg,#04202f 0%,#06293c 100%)}}
:root[data-palette="ocean"][data-theme="dark"] body{background-image:linear-gradient(180deg,#04202f 0%,#06293c 100%)}

/* floating new-note button: reachable with one thumb */
.fab{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));width:60px;height:60px;border-radius:50%;padding:0;font-size:32px;line-height:1;display:grid;place-items:center;z-index:15;box-shadow:0 4px 14px rgba(0,0,0,.28)}
.fab:active{transform:scale(.94)}
@media (min-width:821px){.fab{right:auto;left:calc(380px - 78px)}}   /* on wide screens it sits in the corner of the notes list */
#toast{bottom:calc(92px + env(safe-area-inset-bottom,0px))}
.shelveshead{display:flex;align-items:center;gap:2px;margin-top:14px}
.shelveshead .chev{border:0;background:transparent;min-height:30px;width:28px;padding:0;color:var(--muted)}
.shelveshead h3{margin:0;flex:1;cursor:pointer;display:flex;align-items:center;gap:8px}
.shelveshead h3 .n{font-weight:400}

/* settings */
dialog{max-height:88vh;overflow:auto}
.set{margin:0 0 16px}
.set h3{margin:0 0 8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.seg3{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.seg3 button{border:0;border-radius:0;background:transparent;min-height:38px;padding:6px 18px}
.seg3 button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);font-weight:600}
.seg3 button:disabled{opacity:.45}
.swatches{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:10px 0 0}
.swatch{flex-direction:row;align-items:center;gap:8px;padding:6px 10px;min-height:40px}
.swatch .nm{font-size:14px}
.swatch .dots i{width:14px;height:14px}
.setrow{display:block;width:100%;text-align:left;margin-bottom:6px}
.setrow small{display:block;color:var(--muted);font-size:13px;margin-top:2px;font-weight:400}
.setrow.danger{color:var(--danger)}
.setcheck{display:flex;gap:12px;align-items:flex-start}
.setcheck small{display:block;color:var(--muted);font-size:13px}
.caprow{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:8px;font-size:14px;color:var(--muted)}
.caprow input{width:84px}
dialog .actions{position:sticky;bottom:-18px;background:var(--panel);padding-top:10px}
/* editor + menu polish */
.ed-top{flex-wrap:nowrap}
.ed-top .filebtn{flex:1 1 auto;min-width:0}
.addrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:18px 0 6px;color:var(--muted);font-size:13px}
.hint{color:var(--muted);font-size:13px;padding:2px 12px 8px;line-height:1.4}
#list{padding-bottom:96px}
.swatch .nm{font-size:13px;line-height:1.2}
.swatch .dots{flex:none}

.brand{display:flex;align-items:center;gap:10px}
.zmark{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:linear-gradient(160deg,#1c3526,#0c140f);color:#8df59a;font:900 20px/1 system-ui,sans-serif;transform:rotate(-8deg);text-shadow:0 0 8px rgba(70,220,110,.5);flex:none}
