:root{--bg: #121212;--surface: #1e1e1e;--surface-2: #232323;--surface-3: #2c2c2c;--primary: #90caf9;--on-primary: rgba(0, 0, 0, .87);--primary-8: rgba(144, 202, 249, .08);--primary-12: rgba(144, 202, 249, .12);--primary-24: rgba(144, 202, 249, .24);--success: #66bb6a;--success-12: rgba(102, 187, 106, .12);--warning: #ffa726;--warning-16: rgba(255, 167, 38, .16);--error: #f44336;--error-light: #e57373;--error-8: rgba(244, 67, 54, .08);--error-12: rgba(244, 67, 54, .12);--error-30: rgba(244, 67, 54, .3);--text-hi: rgba(255, 255, 255, .87);--text-med: rgba(255, 255, 255, .6);--text-dis: rgba(255, 255, 255, .38);--divider: rgba(255, 255, 255, .12);--hover-overlay: rgba(255, 255, 255, .08);--radius: 4px;--elev-1: 0 2px 1px -1px rgba(0,0,0,.2), 0 1px 1px 0 rgba(0,0,0,.14), 0 1px 3px 0 rgba(0,0,0,.12);--elev-4: 0 2px 4px -1px rgba(0,0,0,.2), 0 4px 5px 0 rgba(0,0,0,.14), 0 1px 10px 0 rgba(0,0,0,.12);--elev-6: 0 3px 5px -1px rgba(0,0,0,.2), 0 6px 10px 0 rgba(0,0,0,.14), 0 1px 18px 0 rgba(0,0,0,.12);--elev-24: 0 11px 15px -7px rgba(0,0,0,.2), 0 24px 38px 3px rgba(0,0,0,.14), 0 9px 46px 8px rgba(0,0,0,.12)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--bg);color:var(--text-hi);font-family:Roboto,-apple-system,BlinkMacSystemFont,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font-family:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.overline{font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-med)}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.appbar{display:flex;align-items:center;gap:12px;height:56px;padding:0 20px;background:var(--surface);box-shadow:var(--elev-4);flex-shrink:0;z-index:10}.appbar-icon{color:var(--primary)}.appbar-title{font-size:19px;font-weight:500;letter-spacing:.01em;color:var(--text-hi)}.layout{display:flex;flex:1;min-height:0}.col{display:flex;flex-direction:column;min-height:0}.col-goals{width:320px;flex-shrink:0;border-right:1px solid var(--divider);overflow-y:auto;padding:20px 16px}.col-detail{flex:1;min-width:0;overflow-y:auto;padding:24px 32px}.col-sessions{width:360px;flex-shrink:0;border-left:1px solid var(--divider);padding:20px 16px 16px}@media (max-width: 1100px){.app{height:auto;min-height:100vh;overflow:visible}.layout{flex-direction:column}.col-goals,.col-sessions{width:100%;border:none;border-bottom:1px solid var(--divider);overflow:visible}.col-detail{overflow:visible}.col-sessions{order:3}.session-entries{max-height:320px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:var(--radius);background:transparent;font-size:13px;font-weight:500;letter-spacing:.03em;text-transform:uppercase;padding:5px 12px;min-height:30px;cursor:pointer;color:var(--primary);transition:background-color .15s,border-color .15s,box-shadow .15s;white-space:nowrap;flex-shrink:0}.btn:disabled{color:var(--text-dis);cursor:default}.btn-text:hover:not(:disabled){background:var(--primary-8)}.btn-outlined{border:1px solid var(--primary-24);padding:4px 12px}.btn-outlined:hover:not(:disabled){border-color:var(--primary);background:var(--primary-8)}.btn-contained{background:var(--primary);color:var(--on-primary);padding:5px 14px;box-shadow:var(--elev-1)}.btn-contained:hover:not(:disabled){background:#a6d4fa;box-shadow:var(--elev-4)}.btn-contained:disabled{background:rgba(255,255,255,.12);box-shadow:none}.btn-success{color:var(--success)}.btn-success.btn-outlined{border-color:#66bb6a66}.btn-success.btn-outlined:hover:not(:disabled),.btn-success.btn-text:hover:not(:disabled){border-color:var(--success);background:var(--success-12)}.btn-error{color:var(--error-light)}.btn-error.btn-outlined{border-color:var(--error-30)}.btn-error.btn-outlined:hover:not(:disabled),.btn-error.btn-text:hover:not(:disabled){border-color:var(--error-light);background:var(--error-8)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:transparent;color:var(--text-med);cursor:pointer;transition:background-color .15s,color .15s;flex-shrink:0}.icon-btn:hover:not(:disabled){background:var(--hover-overlay);color:var(--text-hi)}.icon-btn:disabled{color:var(--text-dis);cursor:default}.icon-btn-error:hover:not(:disabled){color:var(--error-light);background:var(--error-8)}.chip{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 9px;border-radius:11px;font-size:12px;font-weight:500;white-space:nowrap;flex-shrink:0}.chip-active{background:var(--success-12);color:var(--success)}.chip-completed{background:var(--primary-12);color:var(--primary)}.chip-paused,.chip-progress{background:var(--warning-16);color:var(--warning)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;min-height:32px}.goals-list{display:flex;flex-direction:column;gap:10px}.goal-card{background:var(--surface);border:1px solid transparent;border-radius:var(--radius);box-shadow:var(--elev-1);padding:14px 16px;cursor:pointer;text-align:left;transition:background-color .15s,border-color .15s;width:100%;color:inherit;font:inherit}.goal-card:hover{background:var(--surface-2)}.goal-card-selected,.goal-card-selected:hover{background:var(--primary-8);border-color:var(--primary)}.goal-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.goal-card-title{font-size:14px;font-weight:500;color:var(--text-hi)}.goal-card-horizon{display:block;font-size:12px;color:var(--text-med);margin-top:2px}.goal-card-progress{display:flex;align-items:center;gap:10px;margin-top:12px}.progress-track{flex:1;height:4px;border-radius:2px;background:rgba(255,255,255,.12);overflow:hidden}.progress-bar{height:100%;border-radius:2px;background:var(--primary);transition:width .3s ease}.goal-card-count{font-size:12px;color:var(--text-med);flex-shrink:0}.goal-card-blockers{display:flex;align-items:center;gap:5px;margin-top:8px;font-size:12px;font-weight:500;color:var(--error-light)}.goal-card-archived{opacity:.6}.goal-card-archived.goal-card-selected{opacity:1}.empty-note{color:var(--text-med);font-size:13px;padding:8px 2px}.archived-section{margin-top:20px;padding-top:8px;border-top:1px solid var(--divider)}.archived-toggle{display:flex;align-items:center;gap:4px;width:100%;background:transparent;border:none;border-radius:var(--radius);color:var(--text-med);font-size:13px;font-weight:500;cursor:pointer;padding:8px 6px;margin-bottom:8px;transition:background-color .15s,color .15s}.archived-toggle:hover{background:var(--hover-overlay);color:var(--text-hi)}.detail-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--text-dis);font-size:14px}.detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:4px}.detail-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}.detail-title{font-size:22px;font-weight:500;line-height:1.3;color:var(--text-hi);overflow-wrap:anywhere}.detail-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;padding-top:3px}.detail-horizon{font-size:13px;color:var(--text-med);margin-bottom:12px}.detail-description{font-size:14px;color:var(--text-med);line-height:1.6;max-width:72ch;margin-bottom:8px}.archived-banner{display:flex;align-items:center;gap:8px;background:var(--primary-8);border:1px solid var(--primary-24);border-radius:var(--radius);color:var(--text-med);font-size:13px;padding:10px 14px;margin:12px 0 4px}.detail-section{margin-top:28px}.section-title-group{display:flex;align-items:baseline;gap:10px}.section-count{font-size:12px;color:var(--text-med)}.task-progress{margin-bottom:14px}.task-list{display:flex;flex-direction:column}.task-item{display:flex;align-items:center;gap:10px;padding:4px 8px 4px 4px;border-radius:var(--radius);transition:background-color .15s}.task-item:hover{background:var(--hover-overlay)}.task-status-btn.task-todo{color:var(--text-med)}.task-status-btn.task-in_progress{color:var(--warning)}.task-status-btn.task-done{color:var(--success)}.task-title{flex:1;font-size:14px;min-width:0;overflow-wrap:anywhere;padding:5px 0}.task-item-done .task-title{text-decoration:line-through;color:var(--text-med)}.task-item .icon-btn-error{opacity:0;transition:opacity .15s,background-color .15s,color .15s}.task-item:hover .icon-btn-error,.task-item:focus-within .icon-btn-error{opacity:1}.task-add{display:flex;align-items:center;gap:10px;margin-top:6px;padding:6px 8px 6px 10px;border-radius:var(--radius);color:var(--text-dis);border-bottom:1px solid var(--divider);transition:border-color .15s}.task-add:focus-within{border-color:var(--primary);color:var(--primary)}.task-add-input{flex:1;background:transparent;border:none;outline:none;color:var(--text-hi);font-size:14px;font-family:inherit;padding:4px 0}.task-add-input::placeholder{color:var(--text-dis)}.blockers-list{display:flex;flex-direction:column;gap:8px}.blocker-item{display:flex;align-items:center;gap:12px;padding:10px 8px 10px 14px;background:var(--error-8);border:1px solid var(--error-30);border-radius:var(--radius)}.blocker-icon{color:var(--error-light);flex-shrink:0}.blocker-desc{flex:1;font-size:14px;color:var(--text-hi);min-width:0;overflow-wrap:anywhere}.blocker-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.session-entries{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-bottom:8px;scrollbar-width:thin;scrollbar-color:var(--divider) transparent}.session-entry{background:var(--surface);border-radius:var(--radius);box-shadow:var(--elev-1);padding:12px 14px}.session-entry-date{font-size:11px;font-weight:500;letter-spacing:.04em;color:var(--text-med);margin-bottom:4px}.session-entry-text{font-size:13px;color:var(--text-hi);line-height:1.55;white-space:pre-wrap;word-break:break-word}.session-empty{color:var(--text-med);font-size:13px;text-align:center;margin-top:40px;padding:0 12px;line-height:1.6}.session-input-bar{display:flex;gap:10px;align-items:flex-end;margin-top:12px;padding-top:12px;border-top:1px solid var(--divider);flex-shrink:0}.session-input{flex:1;background:transparent;border:1px solid rgba(255,255,255,.23);border-radius:var(--radius);color:var(--text-hi);font-size:14px;font-family:inherit;line-height:1.5;padding:8px 12px;resize:none;outline:none;transition:border-color .15s,box-shadow .15s;max-height:120px;overflow-y:auto;scrollbar-width:thin}.session-input:hover{border-color:var(--text-med)}.session-input:focus{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.session-input::placeholder{color:var(--text-dis)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:24px;z-index:100}.modal{background:var(--surface-3);border-radius:var(--radius);width:100%;max-width:440px;box-shadow:var(--elev-24);overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 16px 12px 24px}.modal-title{font-size:18px;font-weight:500;color:var(--text-hi)}.modal-body{padding:0 24px 20px}.modal-form{display:flex;flex-direction:column;gap:16px}.modal-label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:500;letter-spacing:.03em;color:var(--text-med)}.modal-input,.modal-textarea{background:transparent;border:1px solid rgba(255,255,255,.23);border-radius:var(--radius);color:var(--text-hi);font-size:14px;font-family:inherit;padding:9px 12px;outline:none;transition:border-color .15s,box-shadow .15s}.modal-textarea{resize:vertical;line-height:1.5}.modal-input:hover,.modal-textarea:hover{border-color:var(--text-med)}.modal-input:focus,.modal-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}select.modal-input{color:var(--text-hi)}select.modal-input option{background:var(--surface-3)}.confirm-message{font-size:14px;color:var(--text-med);line-height:1.6}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:20px}.snackbar{position:fixed;bottom:24px;left:24px;display:flex;align-items:center;gap:10px;max-width:420px;background:var(--surface-3);color:var(--text-hi);font-size:14px;padding:12px 16px;border-radius:var(--radius);box-shadow:var(--elev-6);z-index:300;animation:snackbar-in .2s ease-out}.snackbar-icon{color:var(--error-light);flex-shrink:0}@keyframes snackbar-in{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.loading{color:var(--text-med);font-size:13px;padding:8px 2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(255,255,255,.16);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.24)}
