:root{--water-900:#0a3540;--water-800:#0f4c5c;--water-700:#14607a;--water-500:#2a9d8f;--water-400:#4bc0a9;--sun:#ffb703;--sun-dark:#fb8500;--coral:#ff6b6b;--sand:#fef6e4;--cream:#fffaf0;--ink:#12303a;--muted:#5b7683;--card:#fff;--shadow:0 6px 20px #0f4c5c1f;--shadow-lg:0 12px 32px #0f4c5c2e;--radius:18px;--radius-sm:12px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{color:var(--ink);background:linear-gradient(160deg, #e3f4f1 0%, #f6fbfa 40%, var(--sand) 100%);-webkit-font-smoothing:antialiased;background-attachment:fixed;min-height:100vh;font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,sans-serif}h1,h2,h3{margin:0 0 .5em;line-height:1.15}h1{letter-spacing:-.02em;font-size:1.8rem}a{color:var(--water-700);text-decoration:none}.app-shell{max-width:640px;padding:0 16px calc(84px + env(safe-area-inset-bottom));margin:0 auto}.page{padding-top:20px;animation:.35s both rise}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:20px}.btn{border-radius:var(--radius-sm);cursor:pointer;background:var(--water-500);color:#fff;border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px 18px;font-size:1rem;font-weight:700;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex;box-shadow:0 4px 12px #2a9d8f59}.btn:hover{transform:translateY(-2px);box-shadow:0 8px 18px #2a9d8f73}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-sun{background:var(--sun-dark);box-shadow:0 4px 12px #fb850059}.btn-ghost{color:var(--water-700);box-shadow:none;background:0 0;border:2px solid #14607a33}.btn-danger{background:var(--coral);width:auto;padding:8px 14px;font-size:.85rem;box-shadow:0 4px 12px #ff6b6b59}label{color:var(--water-800);margin-bottom:6px;font-size:.9rem;font-weight:600;display:block}input,textarea{border-radius:var(--radius-sm);width:100%;color:var(--ink);background:#fbfefe;border:2px solid #dce8e6;padding:13px 14px;font-family:inherit;font-size:1rem;transition:border-color .15s}input:focus,textarea:focus{border-color:var(--water-400);outline:none}.field{margin-bottom:16px}.muted{color:var(--muted);font-size:.9rem}.error{color:#c92a2a;border-radius:var(--radius-sm);background:#ffe3e3;margin-bottom:16px;padding:12px 14px;font-size:.9rem}.success{color:#2b8a3e;border-radius:var(--radius-sm);background:#d3f9d8;margin-bottom:16px;padding:12px 14px;font-size:.9rem}.pill{background:var(--sun);color:var(--water-900);border-radius:999px;padding:4px 12px;font-size:.8rem;font-weight:700;display:inline-block}.tabbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:8px 8px calc(8px + env(safe-area-inset-bottom));z-index:50;background:#ffffffeb;border-top:1px solid #0f4c5c14;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--muted);border-radius:12px;flex-direction:column;align-items:center;gap:3px;min-width:56px;padding:6px 10px;font-size:.68rem;font-weight:600;display:flex}.tabbar a.active{color:var(--water-700);background:#2a9d8f1f}.tabbar .icon{font-size:1.35rem;line-height:1}.brandbar{justify-content:space-between;align-items:center;padding:18px 4px 8px;display:flex}.brandbar .logo{letter-spacing:-.02em;color:var(--water-800);align-items:center;gap:8px;font-size:1.35rem;font-weight:800;display:flex}
