:root{--bg-app: #F4EFE6;--bg-surface: #FBF8F1;--bg-card: #FFFFFF;--accent: #B8741C;--accent-soft: #F2E4C8;--forest: #2D4A2B;--forest-soft: #E8F0E0;--text-strong: #2A2117;--text-mid: #5C4A33;--text-soft: #8B6B3F;--border: rgba(140, 110, 70, .2);--danger: #993C1D;--danger-soft: #F5E3DC;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-size-sm: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 22px;--font-size-xxl: 28px;--tabbar-height: 64px;--content-max: 640px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{background:var(--bg-app);color:var(--text-strong);font-family:var(--font-sans);font-size:var(--font-size-md);line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}body{min-height:100dvh;background:var(--bg-app);padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom))}#app{max-width:var(--content-max);margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-6)}h1,h2,h3,h4{margin:0 0 var(--space-3);color:var(--text-strong);font-weight:700;line-height:1.25}h1{font-size:var(--font-size-xxl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}h4{font-size:var(--font-size-md)}p{margin:0 0 var(--space-3);color:var(--text-mid)}button{font:inherit;color:inherit;cursor:pointer}a{color:var(--accent);text-decoration:none}ul,ol{margin:0;padding-left:var(--space-5)}code,kbd{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.92em;background:var(--accent-soft);padding:1px 6px;border-radius:var(--radius-sm);color:var(--text-strong)}.muted{color:var(--text-soft)}.strong{color:var(--text-strong);font-weight:600}.center{text-align:center}.stack>*+*{margin-top:var(--space-3)}.stack-lg>*+*{margin-top:var(--space-5)}.row{display:flex;align-items:center;gap:var(--space-3)}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.section-title{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--text-soft);margin-bottom:var(--space-2)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.card-soft{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.card-accent{background:var(--accent-soft);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:var(--text-strong)}.card-forest{background:var(--forest-soft);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:var(--forest)}.card-danger{background:var(--danger-soft);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:var(--danger)}.pill{display:inline-flex;align-items:center;gap:var(--space-2);padding:4px 10px;border-radius:999px;background:var(--accent-soft);color:var(--text-strong);font-size:var(--font-size-sm);font-weight:600}.tile{flex:1;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:2px;cursor:pointer}.tile-active{border-color:var(--accent);background:var(--accent-soft)}.tile-label{font-size:var(--font-size-sm);color:var(--text-soft)}.tile-value{font-size:var(--font-size-xl);font-weight:700;color:var(--text-strong)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:12px 18px;border-radius:var(--radius-md);border:1px solid transparent;background:var(--bg-card);color:var(--text-strong);font-weight:600;font-size:var(--font-size-md);transition:transform .05s ease}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:#fff}.btn-forest{background:var(--forest);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{background:transparent;border-color:var(--border);color:var(--text-mid)}.btn-full{display:flex;width:100%}.btn-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.accent-text{color:var(--accent);font-weight:700}.forest-text{color:var(--forest);font-weight:700}.danger-text{color:var(--danger);font-weight:700}.ending{color:var(--accent);font-weight:700;border-bottom:2px dashed var(--accent)}.warning{display:flex;align-items:flex-start;gap:var(--space-2);background:var(--danger-soft);color:var(--danger);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}#tabbar{position:fixed;bottom:0;left:0;right:0;height:calc(var(--tabbar-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--bg-surface);border-top:1px solid var(--border);display:flex;z-index:10}.tabbar-btn{flex:1;background:transparent;border:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-soft);font-size:12px;font-weight:600;letter-spacing:.02em;padding:6px 0}.tabbar-btn-active{color:var(--accent)}.tabbar-icon{font-size:20px;line-height:1}.lang-toggle{background:transparent;border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;color:var(--text-soft);letter-spacing:.04em}.icon{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;flex-shrink:0}.icon svg{width:100%;height:100%;display:block}details>summary{list-style:none;cursor:pointer;position:relative;padding-right:28px;-webkit-user-select:none;user-select:none}details>summary::-webkit-details-marker{display:none}details>summary:after{content:"";position:absolute;right:4px;top:50%;width:18px;height:18px;transform:translateY(-50%);transition:transform .18s ease;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238B6B3F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>") center/contain no-repeat;opacity:.7}details[open]>summary:after{transform:translateY(-50%) rotate(180deg)}details>summary:hover:after{opacity:1}details.card>*:not(summary),details.card-soft>*:not(summary){margin-top:var(--space-3)}
