:root{--bg: #0d0e12;--surface: #16181f;--border: #2a2d38;--text: #e8e6e3;--text-muted: #8b8f99;--accent: #c9a227;--accent-dim: #8a7422;--core: #4a7c59;--node-strong: #5b9e6e;--node-weak: #6b5b7c;--node-flux: #b8860b;--will-high: #4a7c59;--will-low: #8b4a4a}*{box-sizing:border-box}.panel{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.panel::-webkit-scrollbar{width:6px}.panel::-webkit-scrollbar-track{background:transparent}.panel::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.panel::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}html,body{height:100%;overflow:hidden}body{margin:0;font-family:Crimson Pro,Georgia,serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}#root{height:100%;overflow:hidden}.app{height:100%;display:flex;flex-direction:column;overflow:hidden}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes savedPop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.app-header{padding:.5rem 1.25rem .65rem;border-bottom:1px solid var(--border);flex-shrink:0;background:linear-gradient(180deg,rgba(22,24,31,.98) 0%,var(--surface) 100%)}.header-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.35rem}.greeting{margin:0;font-size:.95rem;font-weight:500;color:var(--text);letter-spacing:.02em}.header-actions{display:flex;align-items:center;gap:.4rem}.header-brand{margin-top:.1rem}.app-title{margin:0;font-size:1.1rem;font-weight:600;color:var(--text);letter-spacing:-.02em}.header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.app-header h1{margin:0;font-size:1.5rem;font-weight:600;color:var(--text)}.header-date{display:flex;align-items:center;gap:.5rem}.date-picker{padding:.3rem .5rem;font:inherit;font-size:.82rem;font-family:JetBrains Mono,monospace;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;transition:border-color .2s ease,box-shadow .2s ease}.date-picker:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #c9a22726}.saved-badge{font-size:.7rem;color:var(--node-strong);font-family:JetBrains Mono,monospace;animation:savedPop .25s ease-out}.tagline{margin:.15rem 0 0;font-size:.78rem;color:var(--text-muted)}.tagline a{color:var(--accent);text-decoration:none}.tagline a:hover{text-decoration:underline}.app-body{display:flex;flex:1;min-height:0;overflow:hidden}.sidebar{width:300px;padding:0;border-right:1px solid var(--border);background:var(--surface);flex-shrink:0;display:flex;flex-direction:column;min-height:0;box-shadow:4px 0 24px #00000026}.tabs{display:flex;flex-shrink:0;border-bottom:1px solid var(--border);padding:0 .5rem}.tab{flex:1;padding:.6rem .4rem;font:inherit;font-size:.85rem;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .2s ease,border-color .2s ease,background .2s ease}.tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.panel{flex:1;overflow-y:auto;padding:1rem 1.25rem;animation:fadeSlideIn .3s ease-out}.checkin-section{display:flex;flex-direction:column;gap:1.1rem}.sidebar-title{margin:0;font-size:1rem;font-weight:600;color:var(--text)}.date-display{margin:0;font-family:JetBrains Mono,monospace;font-size:.9rem;color:var(--text-muted)}.focus-label{display:flex;flex-direction:column;gap:.35rem}.label-text{font-size:.8rem;color:var(--text-muted)}.focus-input{width:100%;padding:.5rem .65rem;font:inherit;font-size:.9rem;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px;transition:border-color .2s ease,box-shadow .2s ease}.focus-input::placeholder{color:var(--text-muted);opacity:.8}.focus-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #c9a22726}.ratings-block{display:flex;flex-direction:column;gap:.5rem}.ratings-list{margin:0;padding:0;list-style:none}.rating-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.4rem}.rating-label{font-size:.85rem;color:var(--text);flex-shrink:0;min-width:5rem}.rating-dots{display:flex;gap:2px}.rating-dot{width:26px;height:26px;padding:0;font-size:11px;font-family:JetBrains Mono,monospace;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:color .2s ease,background .2s ease,border-color .2s ease,transform .15s ease}.rating-dot:hover{color:var(--text);border-color:var(--accent-dim);transform:scale(1.05)}.rating-dot.active{color:var(--bg);background:var(--accent);border-color:var(--accent)}.save-btn{margin-top:.35rem;padding:.55rem 1.1rem;font:inherit;font-size:.9rem;font-weight:500;color:var(--bg);background:var(--accent);border:none;border-radius:8px;cursor:pointer;transition:filter .2s ease,transform .15s ease,box-shadow .2s ease}.save-btn:hover{filter:brightness(1.1);box-shadow:0 2px 8px #c9a22740}.save-btn:active{filter:brightness(.95);transform:scale(.98)}.goals-block{display:flex;flex-direction:column;gap:.5rem}.goals-list{margin:0;padding:0;list-style:none}.goal-item{display:flex;align-items:center;gap:.35rem;margin-bottom:.35rem}.goal-check{display:flex;align-items:center;gap:.5rem;flex:1;cursor:pointer;font-size:.9rem;color:var(--text)}.goal-check input{flex-shrink:0;accent-color:var(--accent)}.goal-done{text-decoration:line-through;color:var(--text-muted)}.goal-remove{padding:.25rem .45rem;font-size:1rem;line-height:1;color:var(--text-muted);background:none;border:none;cursor:pointer;border-radius:6px;transition:color .2s ease,background .2s ease}.goal-remove:hover{color:var(--text);background:var(--border)}.goal-add{display:flex;gap:.35rem;margin-top:.25rem}.goal-add .focus-input{flex:1}.add-goal-btn{padding:.5rem .7rem;font:inherit;font-size:.85rem;color:var(--bg);background:var(--accent-dim);border:none;border-radius:8px;cursor:pointer;flex-shrink:0;transition:filter .2s ease,transform .15s ease}.add-goal-btn:hover{filter:brightness(1.1);transform:scale(1.02)}.sleep-dots{margin-top:.25rem}.diary-input{width:100%;padding:.5rem .6rem;font:inherit;font-size:.9rem;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:4px;resize:vertical;min-height:4em}.diary-input:focus{outline:none;border-color:var(--accent)}.diary-section{display:flex;flex-direction:column;gap:.75rem}.diary-textarea{width:100%;padding:.6rem;font:inherit;font-size:.95rem;line-height:1.5;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:4px;resize:vertical;min-height:200px}.diary-textarea:focus{outline:none;border-color:var(--accent)}.progress-section{display:flex;flex-direction:column;gap:1rem}.trend-grid{display:flex;flex-direction:column;gap:.5rem}.trend-row{display:grid;grid-template-columns:72px 1fr auto;gap:.5rem .75rem;align-items:center}.trend-label{font-size:.85rem;color:var(--text)}.trend-bars{display:flex;gap:6px;align-items:center;min-width:0}.trend-bar-wrap{width:44px;height:6px;background:var(--border);border-radius:3px;overflow:hidden;display:block}.trend-bar{display:block;height:100%;border-radius:3px;min-width:2px;transition:width .2s}.trend-bar.morning{background:var(--core)}.trend-bar.evening{background:var(--accent)}.trend-nums{font-size:.75rem;font-family:JetBrains Mono,monospace;color:var(--text-muted)}.goal-progress{margin-top:.5rem;padding-top:.75rem;border-top:1px solid var(--border)}.goal-stats{margin:.25rem 0 0;font-size:.9rem;color:var(--text)}.stats-block{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.stats-block.collapsible .stats-block-toggle{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem .5rem;width:100%;padding:0;margin:0;border:none;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.stats-block.collapsible .stats-block-toggle:hover{color:var(--accent)}.stats-block.collapsible .stats-block-toggle .stats-heading{margin:0;font-size:.95rem;font-weight:600;color:inherit}.stats-block-summary{font-size:.8rem;color:var(--text-muted)}.stats-block-chevron{font-size:.65rem;color:var(--text-muted);margin-left:auto}.stats-block-content{margin-top:.5rem}.stats-heading{margin:0 0 .5rem;font-size:.95rem;font-weight:600;color:var(--text)}.stats-table{font-size:.8rem;margin-top:.35rem}.stats-row{display:grid;grid-template-columns:4rem 3rem 3.5rem 1fr;gap:.5rem;padding:.25rem 0;border-bottom:1px solid var(--border);color:var(--text-muted)}.stats-row.stats-header{font-weight:600;color:var(--text)}.stats-date{font-family:JetBrains Mono,monospace}.stats-score-cell{font-variant-numeric:tabular-nums}.oura-summary-card{display:flex;flex-direction:column;gap:.35rem;padding:.55rem .7rem;margin-bottom:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;transition:border-color .2s ease,box-shadow .2s ease}.oura-summary-card:hover{border-color:#c9a2274d;box-shadow:0 2px 12px #0003}.oura-summary-card--compact .oura-summary-grid{gap:.5rem 1rem}.oura-summary-title{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.oura-summary-grid{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}.oura-summary-item{display:flex;flex-direction:column;gap:.1rem}.oura-summary-label{font-size:.7rem;color:var(--text-muted)}.oura-summary-value{font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.oura-block{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.oura-actions{display:flex;gap:.5rem;margin-top:.5rem;flex-wrap:wrap;align-items:center}.oura-status{font-size:.9rem;color:var(--node-strong)}.save-btn.secondary{background:var(--border);color:var(--text)}.save-btn.secondary:hover{filter:brightness(1.15)}.oura-message{margin:.5rem 0 0;font-size:.8rem}.oura-message.error{color:#c95a5a}.oura-message.success{color:var(--node-strong)}.oura-block a{color:var(--accent);text-decoration:none}.oura-block a:hover{text-decoration:underline}.progress-hero{display:flex;align-items:center;justify-content:center;padding:2rem;text-align:center}.progress-hero-text{color:var(--text-muted);max-width:320px}.legend{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border)}.legend h3{margin:0 0 .35rem;font-size:.9rem;font-weight:600;color:var(--text-muted)}.legend-desc{margin:0;font-size:.8rem;color:var(--text-muted);line-height:1.4}.matrix-container{flex:1;display:flex;align-items:center;justify-content:center;padding:1.5rem;min-height:0;overflow:hidden;animation:fadeIn .4s ease-out}.matrix-svg{max-width:100%}.matrix-3d-container{width:100%;height:100%;min-height:400px;position:relative;flex:1;background:radial-gradient(ellipse 90% 80% at 50% 50%,rgba(74,124,89,.06) 0%,rgba(201,162,39,.03) 40%,transparent 70%)}.core-label-3d{text-align:center;white-space:normal;background:#0d0e12d9;padding:.25rem .5rem;border-radius:4px}.core-oura-3d{display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem .6rem;margin-top:.25rem;font-size:9px;color:var(--text-muted);font-variant-numeric:tabular-nums}.core-label-title{display:block;font-size:10px;color:var(--text-muted);font-family:Crimson Pro,serif}.core-label-value{display:block;font-size:13px;color:var(--accent);font-family:JetBrains Mono,monospace}.node-label-3d{font-size:10px;color:var(--text);font-family:JetBrains Mono,monospace;white-space:nowrap;background:#0d0e12cc;padding:.15rem .35rem;border-radius:3px;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:.35rem}.node-rating-badge{font-size:9px;color:var(--accent);opacity:.9}.legal-page{max-width:42rem;margin:0 auto;padding:2rem 1.5rem 3rem}.legal-title{font-size:1.75rem;font-weight:600;margin:0 0 .25rem;color:var(--text)}.legal-updated{color:var(--text-muted);font-size:.9rem;margin:0 0 1.5rem}.legal-page p{margin:0 0 1rem;line-height:1.6;color:var(--text)}.legal-page h2{font-size:1.1rem;font-weight:600;margin:1.5rem 0 .5rem;color:var(--text)}.legal-page a{color:var(--accent);text-decoration:none}.legal-page a:hover{text-decoration:underline}.app-footer{padding:.75rem 1.5rem;border-top:1px solid var(--border);font-size:.85rem;color:var(--text-muted);flex-shrink:0}.app-footer a{color:var(--accent);text-decoration:none}.app-footer a:hover{text-decoration:underline}.footer-sep{margin:0 .5rem;color:var(--border)}
