@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff")}:root{--brand-page: #f1f1ee;--brand-surface: #ffffff;--brand-soft: #f7f7f5;--brand-fill: #ecece8;--brand-photo: #e4e4e0;--brand-camera: #3d3d3a;--brand-border: #cfcfcb;--brand-inner: #e2e2de;--brand-ink: #1f1f1d;--brand-ink-2: #3d3d3a;--brand-muted: #5c5c58;--brand-mid: #8a8a85;--brand-on-dark: #ffffff;--brand-on-dark-muted: #d6d6d2;--brand-accent: #2f55c4;--brand-accent-ink: #22409a;--brand-accent-tint: #eef1fa;--brand-danger: #b42318;--brand-danger-ink: #8f1d13;--brand-danger-tint: #fde4e1;--brand-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--brand-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;--brand-radius-sm: 8px;--brand-radius-md: 12px}:root{--bg: var(--brand-page);--surface: var(--brand-surface);--surface-2: var(--brand-fill);--surface-3: var(--brand-soft);--dark: var(--brand-ink);--dark-2: var(--brand-ink-2);--camera: var(--brand-camera);--line: var(--brand-inner);--line-strong: var(--brand-border);--ink: var(--brand-ink);--ink-2: var(--brand-ink-2);--muted: var(--brand-muted);--on-dark: var(--brand-on-dark);--on-dark-muted: var(--brand-on-dark-muted);--green: var(--brand-accent);--green-ink: var(--brand-accent-ink);--leaf: var(--brand-accent);--leaf-soft: var(--brand-accent-tint);--mint: var(--brand-accent-tint);--amber: var(--brand-ink-2);--amber-soft: var(--brand-fill);--amber-ink: var(--brand-ink);--red: var(--brand-danger);--red-soft: var(--brand-danger-tint);--red-ink: var(--brand-danger-ink);--violet-soft: var(--brand-fill);--violet-ink: var(--brand-ink-2);--font: var(--brand-sans);--mono: var(--brand-mono);--fs-1: 12px;--fs-2: 13px;--fs-3: 15px;--fs-4: 17px;--fs-5: 22px;--fs-6: 28px;--fs-7: 36px;--r-xs: var(--brand-radius-sm);--r-sm: var(--brand-radius-sm);--r-md: var(--brand-radius-md);--r-lg: var(--brand-radius-md);--r-xl: var(--brand-radius-md);--r-pill: 999px;--gutter: 16px;--sidebar: 248px;--content-max: 1120px;--tap: 44px;--shadow-1: 0 1px 2px rgba(31, 31, 29, .08);--shadow-pop: 0 12px 40px rgba(31, 31, 29, .18)}@media(min-width:640px){:root{--gutter: 24px}}@media(min-width:1024px){:root{--gutter: 32px}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:var(--fs-3);line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-variant-numeric:tabular-nums}h1,h2,h3,p{margin:0}h1{font-size:var(--fs-5);font-weight:600;letter-spacing:-.02em;line-height:1.15}h2{font-size:var(--fs-4);font-weight:600;letter-spacing:-.01em}b,strong{font-weight:600}a{color:var(--green)}a:hover{color:var(--green-ink)}button,input,select,textarea{font:inherit;color:inherit;padding:0}input[type=checkbox],input[type=radio]{margin:0}button{cursor:pointer}button:disabled{cursor:not-allowed}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--leaf);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.mono{font-family:var(--mono);font-weight:500}.num{font-variant-numeric:tabular-nums;font-weight:600}.muted{color:var(--muted)}.ink-2{color:var(--ink-2)}.green{color:var(--green)}.danger{color:var(--red)}.small{font-size:var(--fs-2)}.tiny{font-size:var(--fs-1)}.strike{text-decoration:line-through}.center{text-align:center}.stack{display:flex;flex-direction:column;gap:12px}.stack-sm{display:flex;flex-direction:column;gap:8px}.stack-xs{display:flex;flex-direction:column;gap:4px}.stack-lg{display:flex;flex-direction:column;gap:20px}.row{display:flex;align-items:center;gap:12px}.between{display:flex;align-items:center;justify-content:space-between;gap:12px}.baseline{align-items:baseline}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.grid{display:grid;gap:12px}.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 16px;border-radius:var(--r-md);border:1px solid transparent;background:transparent;font-size:var(--fs-3);font-weight:500;text-decoration:none;white-space:nowrap;transition:background-color .12s ease,border-color .12s ease,transform 80ms ease}.btn:active:not(:disabled){transform:scale(.985)}.btn:disabled{opacity:.45}.btn-block{width:100%}.btn-lg{min-height:52px;font-size:var(--fs-4);font-weight:600}.btn-md{min-height:48px}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:var(--green-ink);color:#fff}.btn-dark{background:var(--dark);color:var(--on-dark)}.btn-dark:hover{background:#111a1c;color:var(--on-dark)}.btn-light{background:var(--bg);color:var(--ink)}.btn-outline{border-color:var(--green);color:var(--green);background:var(--surface)}.btn-outline:hover{background:var(--mint);color:var(--green-ink)}.btn-quiet{border-color:var(--line-strong);background:var(--surface);color:var(--ink)}.btn-quiet:hover{background:var(--surface-3);color:var(--ink)}.btn-danger{border-color:var(--red);color:var(--red);background:var(--surface)}.btn-dashed{border:1px dashed #b9b2a4;color:var(--ink)}.btn-link{min-height:var(--tap);padding:0 4px;color:var(--green);font-weight:600}.btn-ghost-dark{background:#f9f8f61f;color:var(--on-dark)}.btn-ghost-dark:hover{background:#f9f8f633;color:var(--on-dark)}.icon-btn{width:var(--tap);height:var(--tap);padding:0;flex-shrink:0}.card{background:var(--surface);color:var(--ink);border-radius:var(--r-lg);padding:16px}.card-flush{padding:4px 16px}.card-dark{background:var(--dark);color:var(--on-dark)}.card-green{background:var(--green);color:#fff}.card-tint{background:var(--surface-2)}.card-dashed{background:var(--surface);border:1px dashed #e3b7b1}.list>li,.list>.list-row{border-top:1px solid var(--line)}.list>li:first-child,.list>.list-row:first-child{border-top:0}.kv{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;font-size:var(--fs-3)}.kv>:first-child{color:var(--muted)}.kv>:last-child{text-align:right;font-weight:600}.divider-dashed{border-top:1px dashed #d3cdc1;padding-top:12px}.section-label{font-size:var(--fs-2);color:var(--muted)}.badge{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:var(--r-pill);font-size:var(--fs-1);font-weight:600;white-space:nowrap;background:var(--surface-2);color:var(--ink-2)}.badge-leaf{background:var(--leaf);color:var(--on-dark)}.badge-mint{background:var(--leaf-soft);color:var(--green-ink)}.badge-amber{background:var(--amber-soft);color:var(--amber-ink)}.badge-red{background:var(--red-soft);color:var(--red-ink)}.badge-violet{background:var(--violet-soft);color:var(--violet-ink)}.chip{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 16px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:var(--fs-3);font-weight:500}.chip[aria-pressed=true]{border-color:var(--green);background:var(--leaf-soft);color:var(--green-ink);font-weight:600}.chip-dark[aria-pressed=true]{border-color:var(--dark);background:var(--dark);color:var(--on-dark)}.chip-red[aria-pressed=true]{border-color:var(--red);background:var(--red-soft);color:var(--red-ink)}.tile{min-height:48px;border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:var(--fs-3);font-weight:500;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center;line-height:1.2}.tile[aria-pressed=true],.tile.tile-current{border-color:var(--green);background:var(--green);color:#fff;font-weight:600}.tile.tile-dark[aria-pressed=true]{border-color:var(--dark);background:var(--dark);color:var(--on-dark)}.tile.tile-amber[aria-pressed=true]{border-color:var(--amber);background:var(--amber-soft);color:var(--amber-ink)}.tile:disabled{border-style:dashed;background:var(--surface-2);color:var(--muted)}.seg{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;padding:4px;background:var(--surface-2);border-radius:var(--r-md)}.seg a,.seg button{min-height:var(--tap);border-radius:8px;display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--ink);font-weight:500;font-size:var(--fs-3);text-decoration:none}.seg [aria-current=page],.seg [aria-pressed=true]{background:var(--surface);box-shadow:0 1px 2px #1e292b1f;font-weight:600}.field{display:flex;flex-direction:column;gap:8px}.label{font-size:var(--fs-3);font-weight:600}.input,.select{width:100%;min-height:48px;border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);padding:0 16px;font-size:var(--fs-4);color:var(--ink)}.input:focus,.select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--mint)}.input-soft{background:var(--bg)}.money{display:flex;align-items:center;gap:8px;min-height:48px;border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);padding:0 16px}.money:focus-within{border-color:var(--green);box-shadow:0 0 0 3px var(--mint)}.money .cur{font-family:var(--font);font-variant-numeric:tabular-nums;color:var(--muted);font-size:var(--fs-3)}.money input{align-self:stretch;border:0;outline:none;background:transparent;width:100%;min-width:0;font-family:var(--font);font-variant-numeric:tabular-nums;font-weight:500;font-size:var(--fs-5);color:var(--ink)}.money-lg{min-height:56px}.money-lg input{font-size:var(--fs-5)}.select-wrap{position:relative}.select-wrap .select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:40px;font-weight:500}.select-wrap svg{position:absolute;right:14px;top:50%;transform:translateY(-50%);pointer-events:none}fieldset{border:0;margin:0;padding:0;min-width:0}legend{padding:0;margin-bottom:8px;font-size:var(--fs-3);font-weight:600}.switch{position:relative;width:52px;height:var(--tap);border:0;padding:0;background:none;flex-shrink:0}.switch:before{content:"";position:absolute;top:6px;right:0;bottom:6px;left:0;border-radius:var(--r-pill);background:#d3cdc1;transition:background-color .15s ease-out}.switch span{position:absolute;top:9px;left:4px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:var(--shadow-1);transition:transform .15s ease-out}.switch[aria-checked=true]:before{background:var(--green)}.switch[aria-checked=true] span{transform:translate(18px)}@media(prefers-reduced-motion:reduce){.switch:before,.switch span{transition:none}}.num-xl{font-family:var(--font);font-variant-numeric:tabular-nums;font-weight:600;font-size:var(--fs-6);line-height:1.05;letter-spacing:-.01em}.num-lg{font-family:var(--font);font-variant-numeric:tabular-nums;font-weight:600;font-size:var(--fs-5);line-height:1.1}.num-md,.num-sm{font-family:var(--font);font-variant-numeric:tabular-nums;font-weight:600;font-size:var(--fs-4)}.stat{display:flex;flex-direction:column;gap:4px}.stat-tile{background:var(--surface);border-radius:var(--r-md);padding:12px 8px;text-align:center;display:flex;flex-direction:column;gap:4px}.bar{height:10px;border-radius:var(--r-pill);background:var(--surface-2);overflow:hidden}.bar>span{display:block;height:100%;border-radius:var(--r-pill);background:var(--green)}.split-bar{display:flex;gap:4px;height:12px;border-radius:var(--r-pill);overflow:hidden}.dot{width:10px;height:10px;border-radius:8px;display:inline-block;flex-shrink:0}.avatar{width:40px;height:40px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--fs-3);flex-shrink:0;background:var(--surface-2);color:var(--ink-2)}.avatar-lg{width:56px;height:56px;border-radius:var(--r-lg);font-size:var(--fs-5)}.notice{border-radius:var(--r-md);padding:12px 16px;font-size:var(--fs-3);line-height:1.45;display:flex;gap:12px;align-items:flex-start}.notice-tint{background:var(--surface-2);color:var(--ink-2)}.notice-amber{background:var(--amber-soft);color:var(--amber-ink)}.notice-red{background:var(--red-soft);color:var(--red-ink);border:1px solid var(--red)}.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--dark);color:var(--on-dark);border-radius:var(--r-md);padding:12px 16px;font-size:var(--fs-3);box-shadow:var(--shadow-pop);z-index:100;max-width:calc(100vw - 32px)}.hero{padding:48px 24px 44px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;border-radius:0 0 16px 16px;color:#fff}.hero-green{background:var(--green)}.hero-red{background:var(--red)}.hero-icon{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center}.hero-title{font-size:var(--fs-6);font-weight:600;letter-spacing:-.02em;line-height:1.05}@media(min-width:640px){.hero{border-radius:var(--r-xl)}}.entry{background:var(--surface);border-radius:var(--r-md);padding:16px;display:flex;flex-direction:column;gap:8px;text-decoration:none;color:inherit}a.entry:hover{background:var(--surface-3);color:inherit}.keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.keypad button{min-height:52px;border-radius:var(--r-lg);border:0;background:var(--surface);font-family:var(--font);font-variant-numeric:tabular-nums;font-size:var(--fs-5);font-weight:500}.keypad button:active{background:var(--surface-2)}.pin-dots{display:flex;gap:16px;justify-content:center}.pin-dots span{width:14px;height:14px;border-radius:50%;border:1.5px solid #b9b2a4}.pin-dots span.on{background:var(--green);border-color:var(--green)}.table{width:100%;border-collapse:collapse;font-size:var(--fs-2)}.table th{text-align:left;font-size:var(--fs-1);letter-spacing:.05em;padding:8px 0;border-bottom:1.5px solid var(--ink)}.table td{padding:8px 0;border-bottom:1px solid var(--surface-2);vertical-align:top}.table .r{text-align:right;padding-left:12px;white-space:nowrap}.practice{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0;font-size:var(--fs-2);color:var(--muted)}.practice-tag{font-weight:600;color:var(--ink-2)}.practice-scan{min-height:var(--tap);padding:0 4px;border:0;background:none;color:var(--green);font-family:var(--mono);font-weight:500;text-decoration:underline;text-underline-offset:4px}.practice-scan:disabled{color:var(--muted);text-decoration:none}body.is-dark .practice-tag{color:var(--on-dark)}body.is-dark .practice,body.is-dark .practice-scan .muted{color:var(--on-dark-muted)}body.is-dark .practice-scan{color:var(--leaf)}.menu{padding-top:4px;padding-bottom:4px}.menu-group+.menu-group{margin-top:8px}.menu-group h2{font-size:var(--fs-2);font-weight:600;color:var(--muted);padding:12px 0 4px}.menu-row{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 0;color:var(--ink);text-decoration:none;border-top:1px solid var(--line)}.menu-group li:first-child .menu-row{border-top:0}.menu-row>svg{color:var(--muted);flex-shrink:0}.menu-row:hover .menu-label{color:var(--green-ink)}.menu-label{display:block;font-weight:600}.menu-hint{display:block;font-size:var(--fs-2);color:var(--muted)}.seg-many a,.seg-many button{font-size:var(--fs-2);padding-left:4px;padding-right:4px}.entries{background:var(--surface);border-radius:var(--r-md);overflow:hidden}.entries>li+li{border-top:1px solid var(--line)}.entries .entry{border-radius:0}.kind{font-size:var(--fs-2);font-weight:600}.kind-mint{color:var(--green)}.kind-amber{color:var(--amber-ink)}.kind-red{color:var(--red)}.kind-tint{color:var(--muted)}.kind-leaf{color:var(--green)}.kind-violet{color:var(--violet-ink)}.shell{min-height:100%;display:flex}.sidebar{display:none}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{color:var(--ink);padding:16px var(--gutter) 12px;display:flex;flex-direction:column;gap:16px;background:var(--bg);position:sticky;top:0;z-index:20}.brand{font-size:var(--fs-5);font-weight:600;letter-spacing:-.02em;line-height:1.1}.who{display:inline-flex;align-items:center;gap:8px;min-height:var(--tap);font-size:var(--fs-3);color:var(--muted);text-decoration:none;background:none;border:0;padding:0}.who u{color:var(--green);font-weight:600}.status-pill{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 12px;border-radius:var(--r-pill);font-size:var(--fs-2);font-weight:500;background:var(--mint);color:var(--green-ink);white-space:nowrap}.status-pill.offline{background:var(--amber-soft);color:#7a4a00}.content{flex:1;padding:4px var(--gutter) calc(32px + env(safe-area-inset-bottom))}.page{width:100%;max-width:var(--content-max);margin:0 auto}.page-narrow{width:100%;max-width:560px;margin:0 auto}.page-head{display:flex;align-items:center;gap:12px;padding:12px 0 16px}.page-head .titles{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.page-head .titles span{font-size:var(--fs-3);color:var(--muted)}.split{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}@media(min-width:900px){.split{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px}.split-even{grid-template-columns:repeat(2,minmax(0,1fr))}.split-aside-left{grid-template-columns:minmax(300px,.85fr) minmax(0,1.4fr)}.sticky-col{position:sticky;top:24px}}.cards-grid{display:grid;gap:12px}@media(min-width:720px){.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1200px){.cards-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.action-bar{position:sticky;bottom:0;padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg) 70%,rgba(249,248,246,0));display:flex;flex-direction:column;gap:8px;margin-top:16px;z-index:5}@media(min-width:900px){.action-bar{position:static;background:none;padding-bottom:0}}@media(min-width:1024px){.sidebar{display:flex;flex-direction:column;gap:24px;width:var(--sidebar);flex-shrink:0;padding:24px 16px;border-right:1px solid var(--line);position:sticky;top:0;height:100vh;background:var(--bg);color:var(--ink)}.topbar{display:none}.content{padding-top:24px}}.side-nav{display:flex;flex-direction:column;gap:4px}.side-nav a{display:flex;align-items:center;gap:12px;min-height:42px;padding:0 12px;border-radius:var(--r-md);color:var(--ink-2);text-decoration:none;font-weight:500}.side-nav a:hover{background:var(--surface-3);color:var(--ink)}.side-nav a.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1);font-weight:600}.side-nav a.active svg{color:var(--green)}.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:12px}body.is-dark,body.is-dark .main{background:var(--dark);color:var(--on-dark)}body.is-dark .page-head .titles span{color:var(--on-dark-muted)}body.is-dark .action-bar{background:linear-gradient(to top,var(--dark) 70%,rgba(30,41,43,0))}@media(min-width:900px){body.is-dark .action-bar{background:none}}.on-light{background:var(--bg);color:var(--ink);border-radius:var(--r-lg);padding:16px}.scanner{position:relative;border-radius:var(--r-xl);background:var(--dark);overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--on-dark)}.scanner.deep{background:var(--camera)}.scanner video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:.85}.scan-frame{position:relative;aspect-ratio:1}.scan-frame i{position:absolute;width:22%;height:22%;border-color:var(--leaf);border-style:solid;border-width:0}.scan-frame i:nth-child(1){top:0;left:0;border-top-width:3px;border-left-width:3px;border-top-left-radius:12px}.scan-frame i:nth-child(2){top:0;right:0;border-top-width:3px;border-right-width:3px;border-top-right-radius:12px}.scan-frame i:nth-child(3){bottom:0;left:0;border-bottom-width:3px;border-left-width:3px;border-bottom-left-radius:12px}.scan-frame i:nth-child(4){bottom:0;right:0;border-bottom-width:3px;border-right-width:3px;border-bottom-right-radius:12px}.scan-line{position:absolute;left:8%;right:8%;top:48%;height:2px;border-radius:8px;background:var(--leaf);animation:scan 2.2s ease-in-out infinite}@keyframes scan{0%,to{transform:translateY(-38%);opacity:.6}50%{transform:translateY(38%);opacity:1}}@media(prefers-reduced-motion:reduce){.scan-line{animation:none}}.scan-chip{position:absolute;top:12px;left:12px;display:flex;align-items:center;gap:8px;height:30px;padding:0 12px;border-radius:var(--r-pill);background:#f9f8f61f;font-size:var(--fs-2);font-weight:500;z-index:2}.scan-tools{position:absolute;bottom:12px;left:12px;right:12px;display:flex;justify-content:space-between;gap:8px;z-index:2}.scan-banner{position:absolute;top:12px;left:12px;right:12px;min-height:48px;border-radius:var(--r-md);background:var(--green);color:#fff;display:flex;align-items:center;gap:12px;padding:0 12px;z-index:3}.check-dot{width:28px;height:28px;border-radius:50%;background:var(--leaf);color:var(--on-dark);display:flex;align-items:center;justify-content:center;flex-shrink:0}.qr-sticker{background:#fff;border-radius:8px;padding:12px 12px 8px;transform:rotate(-5deg);display:flex;flex-direction:column;align-items:center;gap:8px;box-shadow:0 8px 24px #00000040;color:var(--ink);border:0;cursor:pointer;z-index:1}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e292bb8;z-index:50;display:flex;flex-direction:column;justify-content:flex-end}.sheet{background:var(--bg);color:var(--ink);border-radius:16px 16px 0 0;padding:12px 20px calc(20px + env(safe-area-inset-bottom));max-height:92vh;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.sheet-grip{align-self:center;width:44px;height:5px;border-radius:var(--r-pill);background:#d3cdc1}.sheet-top{padding:16px}@media(min-width:640px){.sheet-backdrop{justify-content:center;align-items:center;padding:24px}.sheet{width:100%;max-width:480px;border-radius:var(--r-xl);padding:24px}.sheet-grip{display:none}.sheet-top{width:100%;max-width:480px;padding:0 0 12px}}.record-head{border-radius:var(--r-xl);padding:16px 16px 20px;display:flex;flex-direction:column;gap:16px;color:var(--on-dark);background:var(--dark)}.record-head.green{background:var(--green-ink)}@media(max-width:639px){.record-head.bleed{margin:-4px calc(var(--gutter) * -1) 0;border-radius:0 0 var(--r-xl) var(--r-xl)}}.paper{background:#fff;border-radius:var(--r-xs);box-shadow:0 1px 3px #1e292b1a;padding:24px 20px;position:relative;display:flex;flex-direction:column;gap:16px}@media(min-width:640px){.paper{padding:36px 40px}}.stamp{position:absolute;top:72px;right:16px;transform:rotate(8deg);border:2px solid var(--amber);color:#a36b00;font-weight:600;font-size:var(--fs-3);letter-spacing:.08em;padding:4px 12px;border-radius:var(--r-xs)}@media(max-width:639px){.stamp{position:static;transform:none;align-self:flex-start;font-size:var(--fs-1);padding:4px 8px}}@media print{.sidebar,.topbar,.no-print{display:none!important}.content{padding:0}.paper{box-shadow:none}}.onboard{min-height:100%;width:100%;max-width:480px;margin:0 auto;padding:16px var(--gutter) 0;display:flex;flex-direction:column;gap:24px}.onboard-top{display:flex;align-items:center;gap:12px;min-height:var(--tap)}.onboard-body{flex:1;display:flex;flex-direction:column;gap:20px}.onboard h1{font-size:var(--fs-6);line-height:1.15;letter-spacing:-.01em}.progress{flex:1;height:4px;border-radius:var(--r-pill);background:var(--surface-2);overflow:hidden}.progress>span{display:block;height:100%;background:var(--green);transition:width .2s ease}.brand-mark{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:var(--fs-5);color:var(--green-ink)}.brand-mark .logo{width:32px;height:32px;border-radius:var(--r-sm);background:var(--green);color:#fff;display:grid;place-items:center}.welcome-hero{background:var(--dark);color:var(--on-dark);border-radius:var(--r-xl);padding:28px 20px;display:flex;flex-direction:column;gap:12px}.welcome-hero h1{font-size:var(--fs-6)}.welcome-hero p{color:var(--on-dark-muted)}.code-input{font-family:var(--mono);font-size:var(--fs-6);letter-spacing:.5em;text-align:center;min-height:64px}.fingerprint-btn{width:120px;height:120px;border-radius:50%;border:1.5px solid var(--green);background:var(--mint);color:var(--green);display:grid;place-items:center;margin:8px auto}.fingerprint-btn:active{background:var(--leaf-soft)}.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.checklist li{display:flex;align-items:center;gap:12px;min-height:52px;border-top:1px solid var(--line)}.checklist li:first-child{border-top:0}.checklist .tick{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line-strong);display:grid;place-items:center;flex:none}.checklist .done .tick{background:var(--green);border-color:var(--green);color:#fff}.checklist .done .what{color:var(--muted);text-decoration:line-through}.practice-banner{background:var(--amber-soft);color:var(--amber-ink);font-size:var(--fs-3);padding:8px var(--gutter);display:flex;gap:8px;align-items:center}
