:root{font-family:system-ui,-apple-system,sans-serif;color:#24312b;background:#f7f5ef;--ink:#24312b;--muted:#6d746e;--accent:#a36b42;--line:#e9e5dc;--card:#fff;--radius:24px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}main{max-width:680px;margin:auto;padding:32px 22px calc(104px + env(safe-area-inset-bottom))}h1{font-size:clamp(2.6rem,12vw,4.8rem);line-height:.98;margin:22px 0 16px;letter-spacing:-.04em}h1 em{color:var(--accent);font-style:normal}h2{margin:32px 0 12px;font-size:1.35rem}h3{margin:0 0 6px}p{color:var(--muted);line-height:1.5}.eyebrow{font-size:.72rem;letter-spacing:.18em;color:#98734c;font-weight:800}.skip-link{position:absolute;left:-999px;top:8px;background:var(--ink);color:white;padding:10px 14px;border-radius:10px;z-index:10}.skip-link:focus{left:8px}.button,button{display:inline-block;border:0;border-radius:999px;background:var(--ink);color:#fff;padding:14px 22px;font:inherit;font-weight:750;margin-top:14px;text-decoration:none;cursor:pointer}.button:hover,button:hover{background:#3a4b42}.secondary{background:transparent;color:var(--accent);border:1px solid var(--accent)}a{color:var(--accent)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #d6a47f;outline-offset:3px}section,.stat,.empty{background:var(--card);border-radius:var(--radius);padding:24px;margin-top:20px;box-shadow:0 10px 26px #4b382110}.empty{text-align:center;font-size:2.2rem}.empty p{font-size:1rem}.stat{display:flex;align-items:baseline;gap:12px}.stat strong{font-size:2.8rem;color:var(--accent)}.book{display:flex;gap:16px;align-items:flex-start;padding:18px}.book-icon{font-size:2.5rem}.progress{height:8px;background:#eee8df;border-radius:9px;margin:12px 0}.progress i{display:block;height:100%;background:var(--accent);border-radius:9px}.book input{width:92px;border:1px solid #d8d1c5;border-radius:10px;padding:10px;font:inherit}.form{display:grid;gap:12px;margin-top:22px}.form p{display:grid;gap:6px;margin:0}.form input,.form textarea{width:100%;border:1px solid #d8d1c5;border-radius:12px;padding:13px;font:inherit;background:#fff}.form textarea{min-height:100px;resize:vertical}.form fieldset{border:1px solid var(--line);border-radius:16px;padding:16px;display:grid;gap:12px}.form legend{font-weight:750;padding:0 6px}.form label{color:var(--muted);line-height:1.4}.activity{border-bottom:1px solid var(--line);padding:12px 0}.activity strong{float:right;color:var(--accent)}.hub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:28px}.hub-card{background:var(--card);border-radius:20px;padding:20px;min-height:150px;text-decoration:none;display:flex;flex-direction:column;gap:8px;box-shadow:0 10px 24px #4b382110}.hub-card span{font-size:2rem}.hub-card strong{color:var(--ink);font-size:1.1rem}.hub-card small{color:var(--muted);line-height:1.35}.badge{display:flex;gap:14px;align-items:center;padding:18px}.badge span{font-size:2rem}.badge p{margin:4px 0 0}.toasts{position:fixed;top:14px;left:16px;right:16px;z-index:5}.toast{background:var(--ink);color:#fff;border-radius:14px;padding:14px 16px;margin-bottom:8px;box-shadow:0 8px 24px #0002}.toast.error{background:#9d3f35}.bottom-nav{position:fixed;z-index:4;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:#fffffff2;backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:8px 4px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -8px 24px #4b382110}.bottom-nav a{min-width:54px;text-align:center;text-decoration:none;color:#8a908b;font-size:.7rem;display:flex;flex-direction:column;gap:3px;align-items:center}.bottom-nav a span{font-size:1.15rem;line-height:1}.bottom-nav a.active{color:var(--accent);font-weight:800}.bottom-nav small{font-size:.68rem}@media(min-width:700px){main{padding-top:48px}.hub-grid{grid-template-columns:repeat(3,1fr)}.bottom-nav{left:50%;right:auto;transform:translateX(-50%);width:680px;border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0}}@media(max-width:380px){main{padding-left:16px;padding-right:16px}.bottom-nav a{min-width:48px}.bottom-nav small{font-size:.62rem}}
