:root{--paper: #fff8ec;--cream: #fff8ec;--paper-2: #f4e8d2;--surface: #ffffff;--ink: #241b12;--ink-2: #6d5c46;--ink-3: #9a866b;--line: #e6d9bf;--line-2: #cbb896;--green: #2e7d4f;--green-card: #2e7d4f;--green-deep: #1d5334;--red: #e24b36;--red-deep: #a83322;--orange: #f2a03d;--beet: #8e3b6b;--shadow-hard: 0 4px 0 #e6d9bf;--shadow-btn: 0 5px 0 #a83322;--tabbar-h: 64px;--focus: 0 0 0 3px rgba(226, 75, 54, .25)}html.dark{--paper: #17110c;--cream: #fbf3e4;--paper-2: #241b13;--surface: #201811;--ink: #f7ecd9;--ink-2: #c3ae93;--ink-3: #a8957c;--line: #3a2d20;--line-2: #50402e;--green: #4fae72;--green-card: #1f6042;--green-deep: #2e7d4f;--red: #f26a52;--red-deep: #b03a28;--orange: #f7b25b;--beet: #c17bad;--shadow-hard: 0 4px 0 #0c0805;--shadow-btn: 0 5px 0 #7e2618}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;background-color:var(--paper);background-image:radial-gradient(color-mix(in srgb,var(--line) 70%,transparent) 1px,transparent 1px);background-size:15px 15px;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Noto Sans SC,system-ui,sans-serif;font-size:15px;line-height:1.6;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}::selection{background:color-mix(in srgb,var(--orange) 45%,transparent)}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:3px}#app{min-height:100dvh}button,input,label{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}.app-shell{max-width:620px;margin:0 auto;min-height:100dvh}.page{padding:0 18px calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 18px)}.page-plain{padding:0 18px calc(env(safe-area-inset-bottom) + 18px)}.display{font-size:31px;line-height:1.1;font-weight:900;letter-spacing:-.035em;margin:0}.display-sm{font-size:22px;line-height:1.2;font-weight:900;letter-spacing:-.03em;margin:0}.label{font-size:12px;font-weight:900;letter-spacing:.16em;color:var(--ink-3);text-transform:uppercase}.num{font-variant-numeric:tabular-nums;font-weight:900;letter-spacing:-.02em}.muted{color:var(--ink-2)}.small{font-size:13.5px}.tiny{font-size:12px}.bold{font-weight:800}.center{text-align:center}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt24{margin-top:24px}.mb8{margin-bottom:8px}.mb12{margin-bottom:12px}.section-title{font-size:12px;font-weight:900;letter-spacing:.18em;color:var(--ink-3);margin:26px 2px 10px}.sheet-block,.card{background:var(--surface);border-radius:4px;box-shadow:var(--shadow-hard)}.row{display:flex;align-items:center;gap:10px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.ledger-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-height:50px;padding:12px 0;border-bottom:1.5px dashed var(--line)}.ledger-row:last-child{border-bottom:0}.ledger-row .k{color:var(--ink-2);font-size:14px;font-weight:650}.ledger-row .v{font-size:17px;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.link-row{display:flex;align-items:center;gap:12px;width:100%;min-height:58px;padding:0;background:none;border:0;border-bottom:1.5px dashed var(--line);text-align:left;color:var(--ink)}.link-row:last-child{border-bottom:0}.link-row:active{background:var(--paper-2)}.link-row .ico{flex:none;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;background:var(--paper-2);color:var(--ink);font-size:13px;font-weight:900}.link-row .t{flex:1;font-weight:800;font-size:15.5px}.link-row .meta{font-size:12.5px;color:var(--ink-3);font-weight:700}.link-row .chev{color:var(--ink-3);flex:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border-radius:4px;border:0;background:var(--surface);color:var(--ink);font-weight:900;font-size:15.5px;letter-spacing:.01em;box-shadow:var(--shadow-hard);transition:transform .1s ease,box-shadow .1s ease,background .15s ease}.btn:active{transform:translateY(2px);box-shadow:0 2px 0 var(--line)}.btn-primary{background:var(--red);color:var(--cream);box-shadow:var(--shadow-btn)}html.dark .btn-primary{color:#1c120c}.btn-primary:active{box-shadow:0 2px 0 var(--red-deep)}.btn-outline{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-hard)}.btn-quiet{background:transparent;color:var(--ink-2);box-shadow:none;font-weight:800}.btn-block{width:100%}.btn-lg{min-height:56px;font-size:18px;letter-spacing:.03em}.btn:disabled{opacity:.45;box-shadow:none;transform:none;cursor:not-allowed}.icon-btn{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;border:0;background:transparent;color:var(--ink)}.icon-btn:active{background:var(--paper-2)}.segment{display:flex;gap:6px;padding:5px;background:var(--paper-2);border-radius:5px}.segment button{flex:1;min-height:40px;border:0;border-radius:3px;background:transparent;color:var(--ink-2);font-weight:800;font-size:14.5px}.segment button.active{background:var(--surface);color:var(--ink);box-shadow:0 2px 0 var(--line-2)}.segment button .n{font-size:11.5px;color:var(--ink-3);margin-left:5px;font-weight:800}.segment button.active .n{color:var(--red)}.pill-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 10px;scrollbar-width:none}.pill-tabs::-webkit-scrollbar{display:none}.pill-tab{flex:none;min-height:34px;padding:0 12px;border-radius:3px;border:1.5px solid var(--line-2);background:var(--surface);color:var(--ink-2);font-weight:800;font-size:13px}.pill-tab.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}html.dark .pill-tab.active{background:var(--orange);border-color:var(--orange);color:#1a1206}.chip{display:inline-flex;align-items:center;gap:4px;min-height:22px;padding:0 7px;border-radius:2px;border:1.5px solid var(--line-2);font-size:11.5px;font-weight:800;letter-spacing:.04em;color:var(--ink-2);background:var(--surface);white-space:nowrap}.chip-primary{background:color-mix(in srgb,var(--green) 14%,var(--surface));border-color:var(--green);color:var(--green-deep)}html.dark .chip-primary{color:var(--green)}.chip-danger{background:color-mix(in srgb,var(--red) 12%,var(--surface));border-color:var(--red);color:var(--red-deep)}html.dark .chip-danger{color:var(--red)}.chip-warn{background:color-mix(in srgb,var(--orange) 16%,var(--surface));border-color:var(--orange);color:#8a5a10}html.dark .chip-warn{color:var(--orange)}.progress-track{height:8px;background:var(--paper-2);border:1.5px solid var(--ink);border-radius:2px;overflow:hidden}html.dark .progress-track{border-color:var(--line-2)}.progress-fill{height:100%;background:var(--red);transition:width .3s ease}.option{display:flex;gap:12px;align-items:baseline;width:100%;text-align:left;padding:14px 15px;margin-bottom:10px;border-radius:4px;border:1.5px solid var(--line-2);background:var(--surface);color:var(--ink);font-size:15.5px;font-weight:650;line-height:1.55;box-shadow:0 3px 0 var(--line);transition:box-shadow .1s ease,border-color .12s ease,background .12s ease}.option:active{box-shadow:0 1px 0 var(--line);transform:translateY(2px)}.option-key{flex:none;font-size:13px;font-weight:900;color:var(--ink-3);width:16px;letter-spacing:.02em}.option.selected{border-color:var(--ink);box-shadow:0 3px 0 var(--ink)}.option.correct{border-color:var(--green);background:color-mix(in srgb,var(--green) 10%,var(--surface));box-shadow:0 3px 0 var(--green)}.option.correct .option-key{color:var(--green)}.option.wrong{border-color:var(--red);background:color-mix(in srgb,var(--red) 9%,var(--surface));box-shadow:0 3px 0 var(--red)}.option.wrong .option-key{color:var(--red)}.option.disabled{cursor:default}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:6px;height:54px;padding:0 6px;background:color-mix(in srgb,var(--paper) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1.5px solid var(--line)}.topbar-title{font-size:15px;font-weight:900;flex:1;text-align:center;letter-spacing:.02em}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:2px solid var(--ink)}html.dark .tabbar{border-top-color:var(--line-2)}.tabbar-inner{max-width:620px;margin:0 auto;width:100%;display:flex;height:var(--tabbar-h)}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--ink-3);text-decoration:none;font-size:11px;font-weight:900;letter-spacing:.08em}.tab-item svg{width:21px;height:21px}.tab-item.active{color:var(--red)}.sheet-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#1c140c80;display:flex;align-items:flex-end;justify-content:center;animation:fade .16s ease}.sheet{width:100%;max-width:620px;background:var(--paper);border-radius:8px 8px 0 0;border-top:2px solid var(--ink);padding:18px 18px calc(22px + env(safe-area-inset-bottom));max-height:80dvh;overflow-y:auto;animation:slideup .22s cubic-bezier(.2,.8,.2,1)}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slideup{0%{transform:translateY(14px);opacity:.7}to{transform:none;opacity:1}}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.fade-in{animation:fadein .22s ease}@keyframes fadein{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.empty{padding:40px 20px;text-align:center}.empty .mark{width:44px;height:44px;margin:0 auto 12px;border-radius:4px;border:1.5px solid var(--line-2);display:flex;align-items:center;justify-content:center;color:var(--ink-3)}input[type=text],input:not([type]){height:46px;border:1.5px solid var(--line-2);border-radius:4px;background:var(--surface);color:var(--ink);padding:0 12px;outline:none;font-weight:650}input:focus{border-color:var(--red)}textarea,input{caret-color:var(--red)}.menu-card{position:relative;margin-top:14px;padding:18px 18px 16px;background:var(--green-card);color:var(--cream);border-radius:5px;box-shadow:0 6px 0 var(--green-deep)}.menu-card .kicker{font-size:11.5px;font-weight:900;letter-spacing:.18em;opacity:.85}.menu-card .big{font-size:48px;font-weight:900;letter-spacing:-.045em;line-height:1;margin-top:8px}.menu-card .big small{font-size:17px;font-weight:900;letter-spacing:0;opacity:.9}.menu-card .dash{height:2px;margin:14px 0 12px;background:repeating-linear-gradient(90deg,rgba(255,248,236,.5) 0 8px,transparent 8px 14px)}.menu-card .stats{display:flex;gap:8px}.menu-card .stats>div{flex:1}.menu-card .stats b{display:block;font-size:19px;font-weight:900;letter-spacing:-.02em}.menu-card .stats span{font-size:11.5px;font-weight:800;opacity:.82;letter-spacing:.04em}.tag-card{position:relative;background:var(--surface);border-radius:4px;padding:13px 13px 15px;text-align:left;border:0;box-shadow:0 4px 0 var(--line);color:var(--ink);transition:transform .12s ease,box-shadow .12s ease}.tag-card:active{transform:translateY(2px);box-shadow:0 2px 0 var(--line)}.tag-card:before{content:"";position:absolute;top:-6px;left:14px;width:22px;height:12px;background:var(--red);border-radius:1px;transform:rotate(-6deg);opacity:.95}.tag-card .k{font-size:11.5px;font-weight:900;letter-spacing:.08em}.tag-card .v{font-size:24px;font-weight:900;letter-spacing:-.03em;margin-top:6px}.tag-card .v span{font-size:12.5px;font-weight:900;letter-spacing:0}.tag-1 .k{color:var(--red)}.tag-2 .k{color:#9a6a12}.tag-3 .k{color:var(--green)}.tag-4 .k{color:var(--beet)}html.dark .tag-2 .k{color:var(--orange)}.tag-card.rot-1{transform:rotate(-1.2deg)}.tag-card.rot-2{transform:rotate(1deg)}.tag-card.rot-1:active,.tag-card.rot-2:active{transform:translateY(2px) rotate(-.4deg)}.stamp{display:inline-block;background:var(--red);color:var(--paper);font-size:11.5px;font-weight:900;padding:7px 11px;border-radius:2px;transform:rotate(-3deg);box-shadow:0 3px 0 var(--red-deep);letter-spacing:.04em}.card-row{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1.5px dashed var(--line);border-radius:0;padding:14px 0;color:var(--ink);font:inherit;cursor:pointer}.card-row:last-child{border-bottom:0}.card-row:active{background:var(--paper-2)}.card-row-title{font-size:15.5px;font-weight:900;margin-top:6px;letter-spacing:-.015em;line-height:1.4}.card-row-body{font-size:13.5px;color:var(--ink-2);margin-top:4px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.star-btn{flex:none;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-3);border-radius:3px;margin:-6px -6px 0 0}.star-btn.on{color:var(--orange)}.star-btn:active{background:var(--paper-2)}.explain-box{margin-top:12px;padding:14px 15px;border-radius:4px;background:color-mix(in srgb,var(--orange) 14%,var(--surface));border-top:2px dashed var(--orange)}.explain-box .ok{color:var(--green);font-weight:900}.toast{position:fixed;left:50%;bottom:calc(var(--tabbar-h) + 24px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:3px;font-size:13.5px;font-weight:800;z-index:50}
