:root{--bg:#fff7dc;--bg-alt:#fff2bd;--ink:#1f1a14;--card:#fffdf2;--line:#f5ca49;--accent:#f39a2d;--accent-2:#2fb344;--danger:#d94848;--shadow:0 8px 0 #f0ce5d}
*{box-sizing:border-box}body{background:radial-gradient(circle at top,var(--bg),var(--bg-alt));color:var(--ink);margin:0;font-family:Trebuchet MS,Segoe UI,sans-serif}.top-nav{border-bottom:4px solid var(--line);background:#fffaf0;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.brand{letter-spacing:.04em;font-size:1.7rem;font-weight:800}.nav-links{align-items:center;gap:1rem;display:flex}.user-name{border:2px solid var(--line);background:#fff3cd;border-radius:999px;padding:.2rem .55rem;font-weight:800}a,.link-button{color:var(--ink);font-weight:700;text-decoration:none}.link-button{cursor:pointer;background:0 0;border:0}.page-wrap{max-width:1100px;margin:0 auto;padding:1.5rem}.page-title{margin:0 0 1rem}.dashboard-shell{gap:1rem;display:grid}.overview-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.card{border:3px solid var(--line);background:var(--card);box-shadow:var(--shadow);border-radius:18px;padding:1rem;position:relative}.card h2,.card h3{margin-top:0}.card-big{grid-column:span 2}.metric-main{margin:.2rem 0 0;font-size:3.2rem;font-weight:900}.metric-small{margin:.2rem 0 0;font-size:1.8rem;font-weight:800}.chart-card{width:100%}.chart-wrap{width:100%;height:300px}.full-width{width:100%}.actions-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.action-card{min-height:210px}.action-row{align-items:center;gap:1rem;display:flex}.action-buttons{justify-content:flex-end;align-items:center;gap:1rem;margin-left:auto;display:flex}.action-btn{border:3px solid var(--ink);cursor:pointer;border-radius:14px;width:100px;height:100px;font-size:3rem;font-weight:900}.action-session-count{justify-content:center;align-items:center;width:72px;height:100px;font-size:3.1rem;font-weight:900;line-height:1;display:inline-flex}.action-session-count-weight{width:92px;margin-left:.35rem}.action-btn:disabled{opacity:.5;cursor:not-allowed}.action-positive{background:#ffd776}.action-negative{background:#ffbd9f}.auth-wrap{place-items:center;min-height:calc(100vh - 85px);padding:2rem 1rem;display:grid}.auth-card,.settings-form{gap:.8rem;width:100%;max-width:460px;display:grid}label{gap:.3rem;font-weight:700;display:grid}input,button{font:inherit}input{background:#fffdf5;border:2px solid #efce57;border-radius:10px;padding:.55rem .65rem}button{border:2px solid var(--ink);color:var(--ink);cursor:pointer;background:#ffd977;border-radius:12px;padding:.6rem .8rem;font-weight:800}.google-btn{color:#3c4043;background:#fff;border:1px solid #dadce0;border-radius:999px;justify-content:center;align-items:center;gap:.6rem;padding:.58rem 1rem;font-weight:600;transition:background-color .12s,box-shadow .12s,border-color .12s;display:inline-flex}.google-btn:hover{background:#f8f9fa;border-color:#d2e3fc;box-shadow:0 1px 2px #3c404333}.google-btn:focus-visible{outline-offset:2px;outline:2px solid #1a73e8}.google-btn-mark{color:#1a73e8;background:#fff;border:1px solid #dadce0;border-radius:999px;place-items:center;width:1.5rem;height:1.5rem;font-size:.95rem;font-weight:800;line-height:1;display:inline-grid}.error{color:var(--danger);margin:0}.toast{z-index:50;border:2px solid var(--ink);max-width:min(90vw,380px);box-shadow:var(--shadow);border-radius:12px;padding:.75rem 1rem;font-weight:700;position:fixed;bottom:1rem;right:1rem}.toast-error{color:#8b1e00;background:#ffe1d6}.auth-welcome{color:#3c4043;text-align:center;margin:.2rem 0 0}.star-burst{pointer-events:none;position:absolute;inset:0;overflow:hidden}.star{background:var(--accent);clip-path:polygon(50% 0%,61% 35%,98% 35%,69% 57%,80% 93%,50% 72%,20% 93%,31% 57%,2% 35%,39% 35%);animation:.62s ease-out forwards pop-star;position:absolute}@keyframes pop-star{0%{opacity:1;transform:scale(.2)}to{opacity:0;transform:translateY(-40px)scale(1.5)}}@media (max-width:900px){.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card-big{grid-column:span 2}.actions-grid{grid-template-columns:1fr}}
