:root{--paper:#f5eddd;--panel:#fffaf0;--panel2:#fbf4e6;--white:#ffffff;--ink:#16201b;--muted:#607068;--faint:#9a9384;--line:#d9cbb7;--green:#244432;--green-2:#3f5d3a;--sage:#dce8d5;--clay:#bf6543;--clay-bg:rgba(191,101,67,0.12);--gold:#e7bb58;--danger:#a33;--radius:14px;--radius-card:18px;--pad:16px;--bar-h:60px;--maxw:460px;--serif:Georgia,"Times New Roman",serif;--sans:"Avenir Next","Segoe UI",system-ui,sans-serif}*{box-sizing:border-box}body,html{margin:0;height:100%}body{font:16px/1.5 var(--sans);color:var(--ink);background:var(--paper);-webkit-tap-highlight-color:transparent}.serif{font-family:var(--serif);letter-spacing:-.03em}.shell{display:flex;flex-direction:column;min-height:100dvh}.shell-main{flex:1 1;padding:var(--pad);padding-bottom:calc(var(--bar-h) + 28px)}.shell-main,.topbar{width:100%;max-width:var(--maxw);margin:0 auto}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;gap:10px;padding:12px var(--pad);background:var(--paper)}.brand,.topbar{display:flex;align-items:center}.brand{gap:9px;flex:1 1;min-width:0}.brand-mark{width:32px;height:32px;border-radius:10px;flex:0 0 auto;background:var(--gold);color:#4a3a12;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.brand-mark,.brand-name{font-family:var(--serif)}.brand-name{font-size:21px;letter-spacing:-.03em}.icon-btn{min-width:40px;min-height:40px;align-items:center;border:1px solid var(--line);border-radius:999px;color:var(--muted);font:inherit;font-size:18px;cursor:pointer}.commandbar,.icon-btn{display:flex;justify-content:center;background:var(--panel)}.commandbar{position:fixed;bottom:0;left:0;right:0;z-index:30;gap:4px;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.commandbar-inner{display:flex;width:100%;max-width:var(--maxw)}.commandbar button{flex:1 1;min-height:var(--bar-h);border:none;background:transparent;font:inherit;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.commandbar button .ci{font-size:20px;line-height:1}.commandbar button.active{color:var(--green)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-card);padding:var(--pad);margin-bottom:12px;box-shadow:0 8px 24px rgba(70,54,33,.07)}.section-head{display:flex;align-items:center;justify-content:space-between;margin:4px 2px 10px}.section-title{font-family:var(--serif);font-size:18px;letter-spacing:-.03em;margin:0}.section-link{font-size:13px;color:var(--green);font-weight:600}.page-title{font-family:var(--serif);font-size:24px;letter-spacing:-.03em;margin:6px 2px 2px}.page-sub{color:var(--muted);font-size:14px;margin:0 2px 16px}.exp-head{gap:11px}.exp-head,.exp-icon{display:flex;align-items:center}.exp-icon{width:38px;height:38px;border-radius:11px;flex:0 0 auto;background:var(--sage);color:var(--green);justify-content:center;font-size:19px}.exp-name{font-family:var(--serif);font-size:17px;letter-spacing:-.02em;margin:0}.exp-meta-row{display:flex;align-items:center;gap:7px;margin-top:12px;flex-wrap:wrap}.chip{color:var(--muted);background:var(--panel2);border:1px solid var(--line)}.chip,.note-badge{font-size:12px;border-radius:999px;padding:3px 9px;white-space:nowrap}.note-badge{font-weight:600;color:var(--clay);background:var(--clay-bg);display:inline-flex;align-items:center;gap:4px}.tag{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 8px}.ctx{display:flex;align-items:center;gap:8px;margin-top:12px}.ctx-label{font-size:11px;color:var(--faint);white-space:nowrap}.ctx-track{flex:1 1;height:6px;background:var(--sage);border-radius:999px;overflow:hidden}.ctx-fill{height:100%;border-radius:999px;background:var(--green)}.ctx-fill.warn{background:var(--gold)}.ctx-fill.hot{background:var(--clay)}.ctx-pct{font-size:11px;color:var(--muted);font-weight:600;white-space:nowrap}.btn{border:none;border-radius:var(--radius);padding:10px 16px;font:inherit;font-weight:600;font-size:14px;cursor:pointer}.btn-primary{background:var(--green);color:var(--panel)}.btn-secondary{background:var(--sage);color:var(--green)}.btn-accent{background:var(--clay);color:var(--panel)}.btn-block{display:block;width:100%}.btn-ghost{background:var(--white);color:var(--ink);border:1px solid var(--line)}.btn-dashed{background:transparent;border:1px dashed var(--line);border-radius:var(--radius-card);padding:15px;font:inherit;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.btn-dashed,.field{width:100%;color:var(--ink)}.field{padding:12px;border:1px solid var(--line);border-radius:var(--radius);font:inherit;margin:6px 0;background:var(--white)}.field:focus{outline:none;border-color:var(--green-2);box-shadow:0 0 0 3px rgba(63,93,58,.12)}.row{display:flex;gap:8px;align-items:center}.grow{flex:1 1;min-width:0}.muted{color:var(--muted);font-size:13px}.faint{color:var(--faint);font-size:12px}.learn-item{display:flex;gap:10px}.learn-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex:0 0 auto;background:var(--clay)}.learn-dot.gold{background:var(--gold)}.frame-wrap{border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden;background:var(--white)}.frame-busy{opacity:.55;pointer-events:none}.screen-frame{width:100%;border:none;display:block;background:var(--white)}.walk-top{display:flex;align-items:center;gap:10px;margin-bottom:10px}.walk-back{font-size:20px;color:var(--muted);background:none;border:none;cursor:pointer;padding:0}.testing{display:flex;align-items:center;gap:5px;color:var(--faint);font-size:12px;margin:0 2px 10px}.placeholder{text-align:center;color:var(--muted);padding:40px 16px}.sheet-backdrop{position:fixed;inset:0;background:rgba(22,32,27,.35);z-index:40}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;width:100%;max-width:var(--maxw);margin:0 auto;background:var(--panel);border-radius:20px 20px 0 0;border:1px solid var(--line);border-bottom:none;padding:var(--pad);padding-bottom:calc(var(--pad) + env(safe-area-inset-bottom));max-height:78dvh;overflow-y:auto;box-shadow:0 -16px 40px rgba(41,47,36,.14)}.sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 14px}.note-item{border-left:3px solid var(--clay);background:var(--panel2);border-radius:0 12px 12px 0;padding:10px 12px;margin:8px 0;font-size:14px}.note-fab{position:fixed;right:14px;bottom:calc(var(--bar-h) + 44px);z-index:35;min-width:46px;min-height:46px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--clay);font-size:18px;cursor:pointer;box-shadow:0 8px 24px rgba(70,54,33,.14)}