:root{--background: 45 30% 97%;--foreground: 25 25% 15%;--card: 40 25% 99%;--card-foreground: 25 25% 15%;--popover: 40 25% 99%;--popover-foreground: 25 25% 15%;--primary: 145 35% 35%;--primary-foreground: 45 30% 97%;--secondary: 35 30% 92%;--secondary-foreground: 25 25% 25%;--muted: 40 20% 94%;--muted-foreground: 25 15% 50%;--accent: 38 75% 55%;--accent-foreground: 25 25% 15%;--destructive: 0 65% 55%;--destructive-foreground: 45 30% 97%;--border: 35 20% 88%;--input: 35 20% 88%;--ring: 145 35% 35%;--radius: .8rem;--zen-gold: 38 75% 55%;--zen-sage: 145 35% 40%;--zen-earth: 25 30% 35%;--zen-water: 200 40% 50%;--zen-stone: 30 10% 75%;--zen-lotus: 340 45% 65%;--gradient-zen: linear-gradient(135deg, hsl(145 35% 40% / .14), hsl(38 75% 55% / .1));--gradient-card: linear-gradient(145deg, hsl(40 25% 99%), hsl(45 30% 97%));--shadow-soft: 0 2px 20px -4px hsl(25 25% 15% / .08);--shadow-card: 0 8px 24px -12px hsl(25 25% 15% / .22)}*{box-sizing:border-box}body{margin:0;background:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,Noto Sans,sans-serif}a{color:inherit;text-decoration:none}h1,h2,h3,h4{margin:0;font-family:Playfair Display,Noto Sans TC,serif}.landing-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:radial-gradient(circle at 10% 20%,hsl(var(--zen-gold) / .25),transparent 40%),radial-gradient(circle at 80% 0%,hsl(var(--zen-sage) / .18),transparent 35%),hsl(var(--background))}.landing{width:min(720px,100%);border:1px solid hsl(var(--border));background:linear-gradient(145deg,hsl(var(--card) / .95),hsl(var(--card) / .88));padding:2.5rem;border-radius:var(--radius);box-shadow:var(--shadow-card)}.landing-kicker{color:hsl(var(--accent));font-weight:700;letter-spacing:.15em;text-transform:uppercase;font-size:.85rem}.landing h1{font-size:2rem;margin:.75rem 0}.landing p{color:hsl(var(--foreground));opacity:.85;line-height:1.7}.landing-actions{display:flex;gap:.75rem;margin-top:1.3rem;flex-wrap:wrap}.landing-mini{margin-top:1rem;display:flex;flex-direction:column;gap:.45rem;font-size:.9rem;color:hsl(var(--muted-foreground))}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr;position:relative;overflow:hidden}.bg-decoration{position:absolute;width:420px;height:420px;border-radius:50%;z-index:-1}.bg-decoration-left{top:-180px;left:-180px;background:radial-gradient(circle at center,hsl(var(--zen-sage) / .22),transparent 60%)}.bg-decoration-right{bottom:-200px;right:-180px;background:radial-gradient(circle at center,hsl(var(--zen-gold) / .2),transparent 55%)}.sidebar{border-right:1px solid hsl(var(--border));padding:1.25rem;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(180deg,hsl(var(--card)),hsl(var(--background)))}.sidebar-inner{display:flex;flex-direction:column;gap:1rem}.brand{font-size:1.4rem;font-weight:800;letter-spacing:.03em}.brand-sub{margin:0;color:hsl(var(--muted-foreground));font-size:.93rem}.menu{display:flex;flex-direction:column;gap:.4rem;margin-top:1.2rem}.menu-item{display:flex;align-items:center;gap:.6rem;padding:.7rem .8rem;border-radius:.6rem;border:1px solid transparent}.menu-item.active{background:hsl(var(--accent) / .14);border-color:hsl(var(--accent) / .35);color:hsl(var(--zen-earth));font-weight:600}.menu-item:hover{background:hsl(var(--muted))}.user-wrap{padding-top:1rem;border-top:1px dashed hsl(var(--border))}.user-line{display:flex;gap:.5rem;align-items:center;margin-bottom:.7rem;font-size:.9rem}.user-wrap .btn{width:100%}.main-panel{padding:1.25rem 1.5rem 2rem}.topbar{margin-bottom:1rem}.topbar h1{font-size:1.6rem;margin-top:.3rem}.topbar-sub{color:hsl(var(--muted-foreground));margin-top:.2rem}.badge{display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .6rem;border-radius:999px;background:hsl(var(--accent) / .1);color:hsl(var(--zen-earth));font-size:.8rem}.content-card{background:var(--gradient-card);border:1px solid hsl(var(--border));border-radius:1rem;padding:1rem;box-shadow:var(--shadow-soft)}.btn{border-radius:.7rem;border:1px solid hsl(var(--border));padding:.68rem 1rem;color:hsl(var(--foreground));background:hsl(var(--card));cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-weight:600}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:hsl(var(--primary));border-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.btn-outline{background:transparent}.btn-google{background:#fff}.page-stack{display:grid;gap:1rem}.today-summary,.history-head,.stats-head{display:flex;justify-content:space-between;align-items:center}.progress-pill{background:hsl(var(--secondary));padding:.35rem .8rem;border-radius:999px;color:hsl(var(--foreground))}.habit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.8rem}.habit-card,.history-card,.empty-card{border:1px solid hsl(var(--border));background:hsl(var(--card));border-radius:.8rem;padding:1rem}.habit-head{display:flex;justify-content:space-between;gap:.5rem;align-items:flex-start}.habit-head p{color:hsl(var(--muted-foreground))}.habit-card p{font-size:.9rem;color:hsl(var(--muted-foreground))}.score-row{display:grid;gap:.35rem;margin-top:.7rem}input[type=range]{width:100%}.note-label{display:grid;gap:.4rem;font-size:.92rem}.note-label textarea{min-height:4rem;resize:vertical}.history-list{display:grid;gap:.6rem}.history-meta{display:flex;justify-content:space-between;color:hsl(var(--muted-foreground));font-size:.9rem}.history-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.history-tags span{background:hsl(var(--secondary));padding:.2rem .5rem;border-radius:999px;font-size:.8rem}.search-wrap{display:flex;align-items:center;gap:.4rem}.search-wrap input{padding:.4rem .6rem}.stats-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.6rem}.stats-kpis article,.chart-card{border:1px solid hsl(var(--border));background:hsl(var(--card));border-radius:.8rem;padding:.9rem}.stats-kpis article p{margin:.35rem 0 0;color:hsl(var(--muted-foreground))}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.8rem;margin-top:.5rem}.chart-card h3{margin-bottom:.4rem}.tab-row{display:flex;gap:.5rem;flex-wrap:wrap}.forecast-bar{height:12px;border-radius:999px;margin-top:.4rem;width:var(--value, 0%);background:linear-gradient(90deg,hsl(var(--accent)),hsl(var(--zen-sage)))}.auth-page{min-height:100vh;display:grid;place-items:center;padding:2rem;background:radial-gradient(circle at 20% 12%,hsl(var(--zen-gold) / .16),transparent 40%),radial-gradient(circle at 85% 90%,hsl(var(--zen-sage) / .13),transparent 35%),hsl(var(--background))}.auth-card{width:min(520px,100%);border:1px solid hsl(var(--border));background:linear-gradient(180deg,hsl(var(--card)),hsl(var(--card) / .94));border-radius:1rem;padding:1.4rem}.auth-hero{border:1px dashed hsl(var(--border));border-radius:.8rem;padding:1rem;background:hsl(var(--secondary));margin-bottom:1rem}.hero-chip{display:inline-flex;border-radius:999px;padding:.2rem .7rem;background:hsl(var(--accent) / .18);font-size:.75rem}.auth-hero h1{margin:.4rem 0}.auth-form{display:grid;gap:.7rem}label span{display:block;margin-bottom:.2rem;font-size:.9rem}input,textarea{width:100%;border-radius:.6rem;border:1px solid hsl(var(--border));background:hsl(var(--card));padding:.6rem .75rem;color:hsl(var(--foreground))}.input-wrap{position:relative}.input-wrap input{padding-left:2rem}.input-wrap svg{position:absolute;left:.65rem;top:50%;transform:translateY(-50%);opacity:.6}.auth-switches{display:flex;justify-content:space-between;gap:.5rem}.text-link,.text-btn{border:0;background:transparent;color:hsl(var(--primary));cursor:pointer}.text-btn{padding:0;font-size:.88rem}.message{border-radius:.6rem;border:1px solid hsl(var(--border));padding:.5rem .6rem;background:hsl(var(--secondary));font-size:.9rem}.auth-tip{font-size:.8rem;margin:0;color:hsl(var(--muted-foreground))}@media(max-width:960px){.app-shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;display:grid;grid-template-columns:1fr 220px;gap:1rem}.user-wrap{border-top:0;padding-top:0}}@media(max-width:640px){.sidebar{grid-template-columns:1fr;padding:1rem;border-right:0;border-bottom:1px solid hsl(var(--border))}.menu-item span{font-size:.95rem}.main-panel{padding:1rem}}
