:root{--ink: #1a2332;--ink-soft: #3d4a5c;--paper: #f4efe6;--paper-2: #ebe4d8;--card: #fffdf8;--line: #d5cbb8;--accent: #2f6f6a;--accent-2: #c45c26;--ok: #2f6f6a;--warn: #a15c2a;--danger: #9b2c2c;--shadow: 0 10px 30px rgba(26, 35, 50, .08);--radius: 14px;--safe-bottom: env(safe-area-inset-bottom, 0px);font-family:"Source Sans 3",system-ui,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(1200px 600px at 10% -10%,#fff8ec 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,#e7efe9 0%,transparent 50%),var(--paper)}body{-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}#app{max-width:720px;margin:0 auto;min-height:100dvh;padding:0 0 calc(72px + var(--safe-bottom))}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 12px;background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.brand{font-family:Fraunces,Georgia,serif;font-weight:700;font-size:1.25rem;letter-spacing:-.02em}.muted{color:var(--ink-soft);font-size:.92rem}.btn{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:.55rem 1rem;cursor:pointer;box-shadow:var(--shadow)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn-accent{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-ghost{background:transparent;box-shadow:none}.btn-danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,var(--line))}.screen{padding:16px}.hero{padding:48px 20px 24px;text-align:left}.hero h1{font-family:Fraunces,Georgia,serif;font-size:clamp(2rem,8vw,2.6rem);line-height:1.1;margin:0 0 12px}.hero p{margin:0 0 24px;color:var(--ink-soft);max-width:28rem}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}.list{display:grid;gap:10px}.item{width:100%;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:var(--radius);padding:14px;cursor:pointer;box-shadow:var(--shadow)}.item h3{margin:0 0 6px;font-size:1.02rem;line-height:1.3}.meta{display:flex;flex-wrap:wrap;gap:8px;font-size:.85rem;color:var(--ink-soft)}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:600;background:var(--paper-2);color:var(--ink-soft)}.badge.ok{background:color-mix(in srgb,var(--ok) 18%,white);color:var(--ok)}.badge.warn{background:color-mix(in srgb,var(--warn) 18%,white);color:var(--warn)}.nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:8px 12px calc(8px + var(--safe-bottom));background:color-mix(in srgb,var(--card) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line)}.nav button{border:0;background:transparent;padding:10px 6px;border-radius:12px;color:var(--ink-soft);font-weight:600;font-size:.85rem}.nav button.active{background:var(--ink);color:var(--paper)}.field{display:grid;gap:6px;margin-bottom:12px}.field label{font-size:.85rem;font-weight:600;color:var(--ink-soft)}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:12px;padding:.75rem .85rem;background:#fff}.field textarea{min-height:140px;resize:vertical}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.stack{display:grid;gap:12px}.detail h2{font-family:Fraunces,Georgia,serif;margin:0 0 8px;line-height:1.2}.prose{white-space:pre-wrap;line-height:1.55;font-size:.98rem}.toast{position:fixed;left:50%;bottom:calc(84px + var(--safe-bottom));transform:translate(-50%);background:var(--ink);color:var(--paper);padding:.7rem 1rem;border-radius:999px;font-size:.9rem;z-index:50;max-width:min(90vw,420px);text-align:center}.error-box{border:1px solid color-mix(in srgb,var(--danger) 35%,var(--line));background:#fff5f5;color:var(--danger);border-radius:var(--radius);padding:12px 14px;white-space:pre-wrap}.setup ol{margin:8px 0 0;padding-left:1.2rem;color:var(--ink-soft)}.setup code{font-size:.85em;background:var(--paper-2);padding:.1em .35em;border-radius:6px}.empty{text-align:center;padding:36px 16px;color:var(--ink-soft)}
