/* Note helper, public page (App owns this file: ~/app/prototype/public/note-helper/nh.css).
   The tool's rules come from admin/app.html, scoped to .nh-app; the tokens below map them
   onto the site's light/dark theme from /assets/styles.css. */
.nh-app [hidden]{display:none!important}
.nh-app{
  --paper:var(--fg); --dim:var(--fg-2); --mute:var(--fg-3);
  --ink2:var(--panel); --ink3:var(--panel-2); --ink4:var(--hover);
  --line2:var(--line); --teal:var(--link); --r:14px;
  --f-text:var(--f-t); --f-display:var(--f-d);
  --nh-y:#8a6400; --nh-yb:rgba(244,196,48,.16);
  max-width:680px;margin:0 auto;color:var(--fg)}
:root[data-theme="dark"] .nh-app{--nh-y:#f4c430;--nh-yb:rgba(244,196,48,.12)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nh-app{--nh-y:#f4c430;--nh-yb:rgba(244,196,48,.12)}}
.nh-app{max-width:640px}
.nh-app .pts{display:flex;gap:6px;margin:0 0 14px;flex-wrap:wrap}
.nh-app .pts button{flex:1;min-width:44px;min-height:44px;border-radius:12px;border:1px solid var(--line2);
  background:var(--ink3);color:var(--paper);font:650 15px/1 var(--f-text);cursor:pointer;position:relative}
.nh-app .pts button.on{border-color:var(--teal);background:var(--ink4)}
.nh-app .pts button b{position:absolute;top:3px;right:6px;font:600 11px/1 var(--f-text);color:var(--teal)}
.nh-app .box{border:1px solid var(--line);border-radius:var(--r);background:var(--ink2);padding:14px;margin-bottom:14px}
.nh-app .row{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.nh-app input, .nh-app select, .nh-app textarea{width:100%;border-radius:12px;padding:10px 12px;border:1px solid var(--line);
  background:var(--ink3);color:var(--paper);font:400 16px/1.4 var(--f-text);box-sizing:border-box}
.nh-app input.t{width:84px;flex:none;text-align:center}
.nh-app textarea{min-height:110px;resize:vertical}
.nh-app .btn{min-height:48px;padding:10px 14px;border-radius:12px;border:1px solid var(--line2);background:var(--ink3);
  color:var(--paper);font:650 15px/1.1 var(--f-text);cursor:pointer}
.nh-app .btn.go{background:var(--teal);color:#111214;border-color:var(--teal);width:100%;font-size:17px}
.nh-app .btn:disabled{opacity:.5}
.nh-app .btns{display:flex;gap:8px;margin-top:8px}
.nh-app .btns .btn{flex:1}
.nh-app .entry{display:flex;gap:10px;padding:8px 0;border-top:1px solid var(--line);font:400 15px/1.45 var(--f-text)}
.nh-app .entry:first-child{border-top:0}
.nh-app .entry .tm{color:var(--teal);font-weight:650;flex:none;width:44px}
.nh-app .entry .tx{flex:1;overflow-wrap:anywhere}
.nh-app .entry button{background:none;border:0;color:var(--mute);font-size:18px;cursor:pointer;padding:0 4px}
.nh-app .empty{color:var(--mute);font:400 14px/1.5 var(--f-text)}
.nh-app .note{font:400 15.5px/1.55 var(--f-text);overflow-wrap:anywhere}
.nh-app .ln{display:flex;gap:8px;align-items:flex-start;padding:4px 6px;border-radius:8px;margin-bottom:4px}
.nh-app .ln .lt{flex:1}
.nh-app .ln.suggested{background:rgba(242,193,78,.10);border-left:3px solid var(--alert)}
.nh-app .ln.off{opacity:.35;text-decoration:line-through}
.nh-app .lx{flex:none;min-width:36px;min-height:36px;border-radius:10px;border:1px solid var(--line2);background:var(--ink3);
  color:var(--paper);font:600 16px/1 var(--f-text);cursor:pointer}
.nh-app h2{font:650 15px/1.2 var(--f-text);color:var(--dim);margin:14px 0 6px;text-transform:uppercase;letter-spacing:.04em}
.nh-app ul{margin:0;padding-left:20px;font:400 15px/1.5 var(--f-text)}
.nh-app ul li{margin-bottom:4px}
.nh-app .flags li{color:var(--alert)}
.nh-app .chipsrow{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 8px}
.nh-app .chip{min-height:36px;padding:6px 12px;border-radius:18px;border:1px solid var(--line2);background:var(--ink3);
  color:var(--paper);font:500 14px/1.1 var(--f-text);cursor:pointer}
.nh-app .ask{border-top:1px solid var(--line);padding:10px 0 2px}
.nh-app .ask .q{font:500 15px/1.45 var(--f-text);margin:0 0 8px}
.nh-app .blank{background:rgba(242,193,78,.18);color:var(--alert);border:1px dashed var(--alert);border-radius:6px;
  padding:1px 4px;font:inherit;cursor:pointer}
.nh-app .pick{margin:0 0 10px 6px;padding:10px;border:1px solid var(--line2);border-radius:12px;background:var(--ink3)}
.nh-app .pick .row{margin:0}
.nh-app .pick .btn{flex:none}
.nh-app .step{display:flex;align-items:center;gap:10px;font:650 17px/1.2 var(--f-text);color:var(--paper);
  text-transform:none;letter-spacing:0;margin:22px 0 10px}
.nh-app .step span{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--teal);
  color:#111214;font:700 15px/1 var(--f-text)}
.nh-app .btn.go{position:relative;overflow:hidden;min-height:56px}
.nh-app .btn.go .fill{position:absolute;left:0;top:0;bottom:0;width:0;background:rgba(17,18,20,.28);transition:width .4s linear}
.nh-app .btn.go .lbl{position:relative}
.nh-app .btn.go:disabled{opacity:1}
.nh-app .center{text-align:center;margin:6px 0 0}
.nh-app .legend{font:400 14.5px/1.5 var(--f-text);color:var(--dim);margin:0 0 10px}
.nh-app .lg-w{color:var(--paper)}
.nh-app .lg-y{color:var(--alert)}
.nh-app #copy{margin-top:4px}
.nh-app #copy:disabled{background:var(--ink4);border-color:var(--line2);color:var(--dim)}
.nh-app .more{margin:16px 0 0;color:var(--dim);font:400 14px/1.5 var(--f-text)}
.nh-app .more summary{cursor:pointer;min-height:36px}
.nh-app .end{margin-top:28px}
.nh-app .sub{font:500 13px/1.3 var(--f-text);color:var(--mute);margin:10px 0 6px}
.nh-app .chip.q{border-color:var(--teal)}
.nh-app .chip.on{background:var(--teal);color:#111214;border-color:var(--teal)}
.nh-app .qpanel{border:1px solid var(--teal);border-radius:12px;padding:12px;margin:0 0 10px;background:var(--ink3)}
.nh-app .qpanel input{margin-bottom:8px}
.nh-app .ptitle{font:650 15px/1.2 var(--f-text);margin:0 0 10px}
.nh-app .vgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.nh-app .vf span{display:block;font:500 12px/1.2 var(--f-text);color:var(--dim);margin-bottom:4px}
.nh-app .vf input{padding:8px;text-align:center;margin:0}
.nh-app .entry.new .tm{color:var(--alert)}
.nh-app .badge{display:inline-block;margin-left:6px;font:600 11px/1.6 var(--f-text);font-style:normal;color:var(--alert);
  border:1px solid var(--alert);border-radius:8px;padding:0 6px}
.nh-app #merge, .nh-app #merge2{margin:10px 0;background:var(--alert);border-color:var(--alert)}
.nh-app .named{color:var(--paper);text-decoration:underline dotted var(--mute)}
.nh-app .toast{position:fixed;left:12px;right:12px;bottom:max(16px,env(safe-area-inset-bottom));z-index:9;display:flex;
  gap:12px;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:14px;background:var(--paper);
  color:#111214;font:600 15px/1.3 var(--f-text);box-shadow:0 6px 24px rgba(0,0,0,.4);max-width:616px;margin:0 auto}
.nh-app .toast .undo{background:none;border:0;color:#111214;font:700 15px/1 var(--f-text);text-decoration:underline;cursor:pointer}
.nh-app .err{color:var(--coral);font:500 15px/1.4 var(--f-text);margin:8px 0 0}
.nh-app .cost, .nh-app .hint{color:var(--mute);font:400 13px/1.5 var(--f-text)}
/* public overrides: contrast in the light theme */
.nh-app .btn.go{color:var(--panel)}
.nh-app .ln.suggested{background:var(--nh-yb);border-left-color:var(--nh-y)}
.nh-app .blank{color:var(--nh-y);border-color:var(--nh-y);background:var(--nh-yb)}
.nh-app .lg-y,.nh-app .badge,.nh-app .entry.new .tm{color:var(--nh-y);border-color:var(--nh-y)}
.nh-app #merge,.nh-app #merge2{background:var(--nh-y);border-color:var(--nh-y);color:var(--panel)}
.nh-app .chip.on{color:var(--panel)}
.nh-app .step span{color:var(--panel)}
.nh-app .toast{background:var(--fg);color:var(--panel)}
.nh-app .toast .undo{color:var(--panel)}

/* the page around the tool */
.nh-notice{max-width:680px;margin:0 auto 22px;border:1px solid var(--line);border-left:4px solid var(--accent);
  border-radius:14px;background:var(--panel);padding:16px 18px}
.nh-notice h2{font:700 17px/1.3 var(--f-t);margin:0 0 10px}
.nh-notice ol{margin:0;padding-left:20px;font:400 15px/1.55 var(--f-t)}
.nh-notice li{margin-bottom:6px}
.nh-notice a,.nh-gate a,.nh-more a{color:var(--link);text-decoration:underline}
.nh-gate{border:2px solid var(--link);border-radius:14px;padding:14px;margin:18px 0 10px;background:var(--panel)}
.nh-gate label{display:flex;gap:12px;align-items:flex-start;font:500 15px/1.5 var(--f-t);cursor:pointer}
.nh-gate input{width:24px;height:24px;flex:none;margin-top:2px;accent-color:var(--link)}
.nh-gate .fine{font:400 13px/1.5 var(--f-t);color:var(--fg-3);margin:10px 0 0}
.nh-draft{font:500 13px/1.5 var(--f-t);color:var(--fg-3);text-align:center;margin:8px 0 0}
.nh-more{max-width:680px;margin:40px auto 0}
.nh-more h2{font:400 26px/1.15 var(--f-d);text-transform:uppercase;margin:34px 0 14px}
.nh-steps{display:grid;gap:12px;grid-template-columns:1fr}
.nh-steps div{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:14px}
.nh-steps b{display:block;font:700 16px/1.3 var(--f-t);margin-bottom:4px}
.nh-steps p{margin:0;font:400 15px/1.5 var(--f-t);color:var(--fg-2)}
.nh-never li,.nh-faq p{font:400 15.5px/1.6 var(--f-t)}
.nh-faq details{border-top:1px solid var(--line);padding:12px 0}
.nh-faq summary{font:650 16px/1.4 var(--f-t);cursor:pointer}
.nh-faq p{color:var(--fg-2);margin:10px 0 0}
@media (min-width:860px){
  .nh-steps{grid-template-columns:repeat(3,1fr)}
  .nh-app,.nh-notice,.nh-more{max-width:720px}
}

/* share + follow card (after Copy, or when a limit is hit) */
.nh-app .nh-follow{border:2px solid var(--accent);border-radius:14px;background:var(--panel);padding:16px;margin:14px 0}
.nh-f-title{font:700 17px/1.3 var(--f-t);margin:0 0 4px}
.nh-f-sub{font:400 15px/1.5 var(--f-t);color:var(--fg-2);margin:0 0 12px}
.nh-social{display:flex;gap:8px;margin-top:10px}
.nh-social a{flex:1;min-height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;
  font:650 15px/1 var(--f-t);color:var(--fg);text-decoration:none;background:var(--panel-2)}
.nh-app .nh-phi{font:600 13.5px/1.4 var(--f-t);color:var(--accent-ink);margin:0 0 6px}
.nh-app .rate{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}
.nh-app .rq{font:650 15px/1.4 var(--f-text);margin:0 0 8px}
.nh-app #rateUp.on, .nh-app #rateDown.on{border-color:var(--teal);background:var(--ink4)}
.nh-app textarea.small{min-height:70px;margin:8px 0}
.nh-app .fb{margin:22px 0 0}
.nh-app .linkbtn{background:none;border:0;padding:8px 0;color:var(--teal);font:600 15px/1.4 var(--f-text);text-decoration:underline;cursor:pointer}
.nh-app .entry .ed{color:var(--teal)}
.nh-app .entry .tx{cursor:pointer}
.nh-app .edit{border:1px solid var(--teal);border-radius:12px;padding:10px;margin:6px 0;background:var(--ink3)}
.nh-app .edit .btns{margin-top:6px}
.nh-app .btn.danger{color:var(--coral);border-color:var(--coral)}
.nh-app .lx.ed{color:var(--teal);font-size:15px}
.nh-app button.named{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline dotted var(--mute);cursor:pointer}
