:root{--bg: #0e1117;--panel: #171c26;--panel2: #1d2433;--border: #2a3245;--text: #e8ecf4;--muted: #8b96ab;--green: #3ddc97;--yellow: #ffc857;--red: #ff6b6b;--accent: #7c9eff;--violet: #b48cff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,system-ui,sans-serif}button,input,select,textarea{font:inherit}button{min-height:38px;border:1px solid var(--border);background:var(--panel2);color:var(--text);border-radius:8px;padding:8px 11px;display:inline-flex;align-items:center;gap:7px;cursor:pointer}button:hover,button.active{border-color:var(--accent)}button.primary{background:var(--accent);color:#08101f;border-color:var(--accent);font-weight:700}button:disabled{opacity:.6;cursor:wait}input,select,textarea{width:100%;min-height:38px;border:1px solid var(--border);background:#111722;color:var(--text);border-radius:8px;padding:8px 10px}textarea{min-height:88px;resize:vertical}a{color:var(--accent)}.page{width:min(1180px,calc(100vw - 32px));margin:0 auto;padding:22px 0 36px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px}.topbar h1{margin:0;font-size:24px}.topbar p{margin:4px 0 0;color:var(--muted)}.top-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.user-select{min-width:170px;display:flex;gap:8px;align-items:center;color:var(--muted)}.user-select select{min-width:120px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.login-panel{width:min(380px,100%);background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:24px;display:grid;gap:14px}.login-panel h1{margin:0 0 2px;font-size:24px}.login-panel label{display:grid;gap:6px;color:var(--muted)}.mark{width:46px;height:46px;border-radius:8px;display:grid;place-items:center;background:var(--panel2);color:var(--green)}.kpi-grid{display:grid;grid-template-columns:220px repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.score-card,.kpi-card,.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px}.score-card{grid-row:span 2;padding:18px;display:grid;place-items:center;align-content:center;gap:12px;text-align:center}.score-card p{margin:0;color:var(--muted)}.score-copy{display:grid;gap:5px}.score-copy small{max-width:180px;color:var(--muted);font-size:11px;line-height:1.4}.ring{width:132px;height:132px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--ring) calc(var(--score) * 1%),var(--panel2) 0);position:relative}.ring:after{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;border-radius:50%;background:var(--panel)}.ring span{position:relative;z-index:1;font-size:34px;font-weight:800}.kpi-card{padding:16px;min-height:132px}.kpi-card span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase}.kpi-card strong{display:block;margin-top:6px;font-size:30px}.kpi-card small{display:block;margin-top:2px}.bar{height:5px;background:var(--panel2);border-radius:99px;margin-top:13px;overflow:hidden}.bar i{display:block;height:100%;border-radius:inherit}.panel{padding:16px;margin-top:14px}.panel h2,.panel h3{margin:0 0 12px}.panel h2{font-size:16px}.panel h3{color:var(--muted);font-size:14px;margin-top:20px}.panel-title{display:flex;align-items:center;gap:8px;margin-bottom:12px}.panel-title h2{margin:0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.panel canvas{max-height:310px}.life-calendar{display:grid;gap:12px}.life-month{display:grid;grid-template-columns:112px minmax(0,1fr);gap:10px;align-items:start}.life-month h3{margin:1px 0 0;color:var(--muted);font-size:12px;font-weight:600;text-transform:capitalize}.life-grid{display:flex;flex-wrap:wrap;gap:4px;min-height:18px}.day-cell{min-height:0;width:17px;height:17px;border:0;border-radius:4px;padding:0;position:relative;background:linear-gradient(to bottom,var(--emotion-color, #252b38) 0 50%,var(--daily-color, #252b38) 50% 100%)}.day-cell.noted:after{content:"";position:absolute;top:2px;right:2px;width:4px;height:4px;border-radius:50%;background:#fff}.day-cell.selected{outline:2px solid var(--text);outline-offset:1px}.day-details{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.empty-state{color:var(--muted)}.score-legend{display:flex;flex-wrap:wrap;gap:8px 13px;align-items:center;color:var(--muted);font-size:12px;line-height:1.35}.score-legend.compact{justify-content:center;gap:6px 9px;font-size:11px}.score-legend span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.score-legend small{flex-basis:100%;color:var(--muted)}.legend-row{flex-basis:100%;display:flex;flex-wrap:wrap;gap:7px 11px;align-items:center}.legend-row b,.legend-label{color:var(--text);font-size:12px;font-weight:700}.legend-label{flex-basis:100%;margin-top:2px}.calendar-legend{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.swatch{width:10px;height:10px;border-radius:3px;display:inline-block}.bad-bg{background:var(--red)}.warn-bg{background:var(--yellow)}.good-bg{background:var(--green)}.empty-bg{background:#252b38;border:1px solid var(--border)}.note-dot{width:7px;height:7px;border-radius:50%;background:#fff;display:inline-block}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:9px;margin-top:10px}.detail-grid.compact{grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}.detail-grid div{background:var(--panel2);border-radius:8px;padding:10px}.detail-grid span{display:block;color:var(--muted);font-size:12px}.detail-grid strong{display:block;margin-top:3px;font-size:16px}.criterion-breakdown{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:14px}.criterion-section{border:1px solid var(--border);border-radius:8px;padding:12px;background:#ffffff05}.criterion-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.criterion-section h3{margin:0;color:var(--text);font-size:13px}.criterion-section dl{display:grid;gap:7px;margin:0}.criterion-section dl div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid rgba(255,255,255,.06);padding-top:7px}.criterion-section dt{color:var(--muted);font-size:12px}.criterion-section dd{margin:0;text-align:right;font-weight:700;color:var(--text)}blockquote{margin:12px 0 0;border-left:3px solid var(--violet);background:var(--panel2);border-radius:8px;padding:12px;color:#d9deea}.goals{display:grid;grid-template-columns:130px repeat(12,1fr);gap:7px;align-items:center}.goal-row{display:contents}.goals span{color:var(--muted);font-size:12px;text-align:center}.goals i{aspect-ratio:1;border-radius:5px;background:var(--green)}.goals p{grid-column:1 / -1;color:var(--muted);margin:8px 0 0}.finance-block{display:grid;gap:12px}.finance-notes{display:grid;gap:8px}.finance-notes article{background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:10px}.finance-notes b{display:block;margin-bottom:6px}.finance-notes p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.4}.finance-notes span{color:var(--text);font-weight:700}.search{display:flex;align-items:center;gap:10px;margin-bottom:14px}.journal-list{display:grid;gap:10px}.journal-list article{background:var(--panel2);border-radius:8px;padding:13px}.journal-list span{color:var(--muted)}.journal-list p{margin:8px 0 0}.settings-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.settings-table{display:grid;gap:8px;margin-bottom:10px}.settings-row{display:grid;grid-template-columns:130px 160px minmax(180px,1fr) 90px 42px;gap:8px}.question-table .settings-row{grid-template-columns:120px 140px minmax(260px,1fr) 125px 42px}.settings-row button{justify-content:center;padding:8px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:12px 0}.form-grid label,.question-list label{display:grid;gap:6px;color:var(--muted);font-size:13px}.question-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px;margin-top:12px}.question-list label{background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:12px}.check{align-content:end;grid-template-columns:18px 1fr!important;align-items:center;min-height:58px}.check input{width:18px;min-height:18px}.steps-toolbar{display:grid;grid-template-columns:42px 180px 42px minmax(0,1fr);gap:10px;align-items:end;margin:12px 0 16px}.steps-toolbar button{justify-content:center;padding:8px}.steps-toolbar label{display:grid;gap:6px;color:var(--muted);font-size:13px}.steps-summary{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.steps-summary span{min-height:38px;display:inline-flex;align-items:center;gap:5px;background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;color:var(--muted)}.steps-summary b{color:var(--text)}.steps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}.steps-grid label{display:grid;gap:6px;background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:10px}.steps-grid label.has-whoop{border-color:#3ddc9773}.steps-grid span{color:var(--muted);font-size:12px;text-transform:capitalize}.steps-grid input{text-align:right;font-weight:700}.auth-link{display:inline-flex;margin:4px 0 14px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);text-decoration:none}.success{color:#d9ffef;background:#3ddc9721;border:1px solid rgba(61,220,151,.3);border-radius:8px;padding:10px 12px;margin-top:12px}.error{color:#ffd5d5;background:#ff6b6b24;border:1px solid rgba(255,107,107,.35);border-radius:8px;padding:10px 12px}.error.wide{margin-bottom:12px}.loading{color:var(--muted);padding:28px}.good{color:var(--green)}.warn{color:var(--yellow)}.bad{color:var(--red)}.empty{color:var(--muted)}@media (max-width: 900px){.topbar,.settings-head{display:grid}.top-actions{justify-content:flex-start}.kpi-grid{grid-template-columns:1fr 1fr}.score-card{grid-row:auto;grid-column:span 2}.life-month{grid-template-columns:1fr;gap:6px}.two-col,.settings-row,.question-table .settings-row{grid-template-columns:1fr}.steps-toolbar{grid-template-columns:42px minmax(0,1fr) 42px}.steps-summary{grid-column:1 / -1;justify-content:flex-start}}
