:root{--bg:#faf9f7;--surface:#fff;--ink:#1a1a17;--muted:#6b6b66;--line:#e6e4df;--accent:#2f6f4f;--danger:#a33;--radius:14px;--pad:16px;--bar-h:56px}*{box-sizing:border-box}body,html{margin:0;height:100%}body{font:16px/1.5 system-ui,sans-serif;color:var(--ink);background:var(--bg);-webkit-tap-highlight-color:transparent}.shell{display:flex;flex-direction:column;min-height:100dvh}.shell-main{flex:1 1;padding:var(--pad);padding-bottom:calc(var(--bar-h) + 24px)}.topbar{display:flex;align-items:center;gap:8px;padding:10px var(--pad);background:var(--surface);border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:20}.topbar select{flex:1 1;min-width:0;font:inherit;font-weight:600;border:none;background:transparent;color:var(--ink);padding:8px 0}.icon-btn{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);font:inherit;font-size:18px;cursor:pointer}.commandbar,.icon-btn{background:var(--surface)}.commandbar{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.commandbar button{flex:1 1;min-height:var(--bar-h);border:none;background:transparent;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer}.commandbar button.active{color:var(--accent)}.card{padding:var(--pad);margin-bottom:12px}.btn,.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.btn{display:block;width:100%;text-align:left;padding:14px 16px;margin:8px 0;font:inherit;color:var(--ink);cursor:pointer}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent);text-align:center}.btn-danger-outline{color:var(--danger);border-color:var(--danger);text-align:center}.field{width:100%;padding:12px;border:1px solid var(--line);border-radius:var(--radius);font:inherit;margin:6px 0;background:var(--surface);color:var(--ink)}.title{font-size:22px;font-weight:600;margin:0 0 4px}.sub{margin:0 0 16px}.muted,.sub{color:var(--muted)}.muted{font-size:13px}.err{color:var(--danger);font-size:14px}.screen-frame{width:100%;border:none;display:block;background:var(--bg)}.frame-wrap{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.frame-busy{opacity:.5;pointer-events:none}.debugstrip{position:fixed;bottom:calc(var(--bar-h) + env(safe-area-inset-bottom));left:0;right:0;z-index:25;font:11px/1.4 ui-monospace,monospace;color:var(--muted);background:var(--surface);border-top:1px solid var(--line);padding:4px var(--pad);white-space:nowrap;overflow-x:auto}.debugstrip.collapsed{display:none}.sheet-backdrop{position:fixed;inset:0;background:rgba(26,26,23,.35);z-index:40}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;background:var(--surface);border-radius:var(--radius) var(--radius) 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:75dvh;overflow-y:auto}.sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 12px}.note-item{border-left:3px solid var(--accent);border-radius:0 8px 8px 0;padding:8px 12px;margin:8px 0;font-size:14px}.badge,.note-item{background:var(--bg)}.badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:600;border:1px solid var(--line);color:var(--muted)}.badge-accent{color:var(--accent);border-color:var(--accent)}.badge-danger{color:var(--danger);border-color:var(--danger)}.row{display:flex;gap:8px;align-items:center}.row .grow{flex:1 1;min-width:0}