*{box-sizing:border-box;margin:0;padding:0}:root{--primary: #2563eb;--primary-hover: #1d4ed8;--secondary: #6366f1;--bg: #f8fafc;--surface: #ffffff;--border: #e2e8f0;--text: #0f172a;--text-secondary: #64748b;--text-muted: #94a3b8;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--radius: 12px;--shadow: 0 1px 3px rgba(0, 0, 0, .1);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .1)}html,body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}.app{min-height:100vh;display:flex;flex-direction:column}.header{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.header-content{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;max-width:800px;margin:0 auto}.logo{font-weight:700;font-size:1.1rem}.header-center{font-weight:500;color:var(--text-secondary)}.hamburger{font-size:1.5rem;background:none;border:none;cursor:pointer;padding:4px 8px}.mobile-menu{background:var(--surface);border-bottom:1px solid var(--border);padding:8px 16px;display:flex;flex-direction:column;gap:4px}.mobile-menu button{display:flex;align-items:center;gap:8px;padding:12px;border:none;background:none;width:100%;text-align:left;font-size:1rem;border-radius:var(--radius);cursor:pointer}.mobile-menu button:hover{background:var(--bg)}.tabs{display:flex;background:var(--surface);border-bottom:1px solid var(--border);overflow-x:auto;-webkit-overflow-scrolling:touch}.tab{flex:1;padding:12px 8px;border:none;background:none;font-size:.85rem;font-weight:500;color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;transition:all .2s}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.tab:hover:not(.active){background:var(--bg)}.main{flex:1;padding:16px;max-width:800px;margin:0 auto;width:100%}.section-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;gap:12px}.section-header h2{font-size:1.5rem;font-weight:700}.subtitle{color:var(--text-secondary);font-size:.9rem}.header-actions{display:flex;gap:8px}.btn-primary{background:var(--primary);color:#fff;border:none;padding:10px 16px;border-radius:var(--radius);font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg);color:var(--text);border:1px solid var(--border);padding:10px 16px;border-radius:var(--radius);font-weight:500;font-size:.9rem;cursor:pointer;transition:all .2s}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-icon{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:4px;border-radius:6px}.btn-icon:hover{background:var(--bg)}.btn-icon.small{font-size:1rem}.btn-icon.danger:hover{background:#fee2e2}.btn-link{background:none;border:none;color:var(--primary);cursor:pointer;font-size:.9rem;padding:4px 0}.btn-link:hover{text-decoration:underline}.full-width{width:100%}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:6px}input[type=text],input[type=email],input[type=password],input[type=number],textarea,select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;font-family:inherit;background:var(--surface);transition:border-color .2s}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary)}textarea{resize:vertical;min-height:60px}input[type=checkbox]{width:18px;height:18px;cursor:pointer}.year-input{width:80px;padding:4px 8px;font-size:.9rem}.error{color:var(--danger);font-size:.9rem;margin-bottom:12px}.hint{color:var(--text-secondary);font-size:.85rem;margin:8px 0}.divider{text-align:center;color:var(--text-muted);font-size:.85rem;margin:12px 0}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:32px 24px;width:100%;max-width:380px}.login-header{text-align:center;margin-bottom:24px}.login-header h1{font-size:1.8rem;margin-bottom:4px}.login-header p{color:var(--text-secondary)}.onboarding{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2)}.onboarding-card{background:var(--surface);border-radius:20px;box-shadow:var(--shadow-lg);padding:32px 24px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.onboarding-header{text-align:center;margin-bottom:24px}.onboarding-icon{font-size:3rem;margin-bottom:12px}.onboarding-header h1{font-size:1.6rem;margin-bottom:8px}.onboarding-header p{color:var(--text-secondary)}.onboarding-content{margin-bottom:24px}.feature-list{display:flex;flex-direction:column;gap:16px}.feature{display:flex;gap:12px;align-items:flex-start}.feature-icon{font-size:1.5rem;flex-shrink:0}.feature strong{display:block;margin-bottom:2px}.feature p{color:var(--text-secondary);font-size:.9rem}.area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.area-tile{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;transition:all .2s}.area-tile:hover:not(:disabled){border-color:var(--primary)}.area-tile.selected{border-color:var(--primary);background:#eff6ff}.area-tile:disabled{opacity:.4;cursor:not-allowed}.area-icon{font-size:1.5rem}.area-title{font-size:.7rem;text-align:center;color:var(--text-secondary);line-height:1.2}.selection-counter{text-align:center;color:var(--text-secondary);font-size:.9rem;margin-bottom:16px}.step-dots{display:flex;justify-content:center;gap:8px;margin-top:20px}.dot{width:8px;height:8px;border-radius:50%;background:var(--border)}.dot.active{background:var(--primary)}.focus-view,.all-areas-view,.vision-view,.history-view{padding-bottom:80px}.focus-selector{background:var(--surface);border-radius:var(--radius);padding:16px;margin-bottom:20px;box-shadow:var(--shadow)}.checkbox-list{display:flex;flex-direction:column;gap:10px}.checkbox-item{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:.95rem}.checkbox-item input:disabled+span{opacity:.5}.area-cards{display:flex;flex-direction:column;gap:16px}.area-card{background:var(--surface);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);border-left:4px solid var(--border)}.area-card.feeling-in_control{border-left-color:var(--success)}.area-card.feeling-improving{border-left-color:#3b82f6}.area-card.feeling-stagnant{border-left-color:var(--warning)}.area-card.feeling-declining{border-left-color:#f97316}.area-card.feeling-neglected{border-left-color:var(--danger)}.area-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.area-card-title{display:flex;align-items:center;gap:8px}.area-card-title .icon{font-size:1.3rem}.area-card-title h3{font-size:1.1rem;font-weight:600}.feeling-badge{font-size:1rem}.area-card-edit{margin-top:8px}.area-card-content{color:var(--text-secondary);font-size:.95rem}.info-block{margin-bottom:12px}.info-block strong{display:block;font-size:.8rem;color:var(--text-muted);margin-bottom:4px}.info-block p{color:var(--text)}.action-list{list-style:none;padding:0}.action-list li{padding:4px 0}.action-list li.done{text-decoration:line-through;opacity:.6}.empty-hint{color:var(--text-muted);font-style:italic}.tactical-list{display:flex;flex-direction:column;gap:8px}.tactical-item{display:flex;align-items:center;gap:8px}.tactical-item input[type=text]{flex:1;padding:8px 10px;font-size:.9rem}.add-area-form{background:var(--surface);border-radius:var(--radius);padding:16px;margin-bottom:20px;box-shadow:var(--shadow)}.area-list{display:flex;flex-direction:column;gap:8px}.area-list-item{display:flex;align-items:center;gap:12px;background:var(--surface);padding:14px 16px;border-radius:var(--radius);box-shadow:var(--shadow)}.area-list-item .icon{font-size:1.3rem}.area-list-item .title{flex:1;font-weight:500}.vision-timeline{display:flex;flex-direction:column;gap:16px}.vision-card{background:var(--surface);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.vision-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.vision-label{font-weight:700;font-size:1.1rem}.year-badge{background:var(--bg);padding:4px 10px;border-radius:20px;font-size:.85rem;color:var(--text-secondary)}.vision-card p{color:var(--text);font-size:.95rem;line-height:1.6}.vision-card p.empty{color:var(--text-muted);font-style:italic}.history-list{display:flex;flex-direction:column;gap:20px}.history-month h3{font-size:1.1rem;margin-bottom:12px}.snapshot-list{display:flex;flex-direction:column;gap:8px}.snapshot-card{background:var(--surface);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow);border-left:3px solid var(--border);display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.snapshot-card strong{font-weight:600}.snapshot-card .feeling{font-size:.8rem;color:var(--text-secondary);text-transform:capitalize}.snapshot-card .goal{width:100%;font-size:.85rem;color:var(--text-secondary);margin:0}.empty-state{text-align:center;padding:40px 20px;color:var(--text-secondary)}.empty-state p:first-child{font-size:1.2rem;margin-bottom:8px}.fab{position:fixed;bottom:20px;right:20px;width:56px;height:56px;border-radius:50%;background:var(--secondary);color:#fff;border:none;font-size:1.5rem;box-shadow:var(--shadow-lg);cursor:pointer;z-index:90;transition:transform .2s}.fab:hover{transform:scale(1.1)}.chat-panel{position:fixed;bottom:0;right:0;width:100%;height:100%;background:var(--surface);display:flex;flex-direction:column;z-index:200}@media(min-width:600px){.chat-panel{width:400px;height:70vh;bottom:20px;right:20px;border-radius:var(--radius);box-shadow:var(--shadow-lg)}}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--border);font-weight:600}.chat-messages{flex:1;overflow-y:auto;padding:16px}.chat-empty{text-align:center;color:var(--text-secondary);padding:40px 20px}.message{margin-bottom:12px;padding:10px 14px;border-radius:var(--radius);max-width:85%;font-size:.95rem;line-height:1.5}.message.user{background:var(--primary);color:#fff;margin-left:auto}.message.assistant{background:var(--bg);color:var(--text)}.chat-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border)}@media(min-width:601px){.hamburger,.header-center,.mobile-menu{display:none!important}.desktop-actions{display:flex;gap:8px}}@media(max-width:600px){.desktop-actions{display:none}.area-grid{grid-template-columns:repeat(3,1fr);gap:8px}.area-tile{padding:10px 6px}.area-icon{font-size:1.3rem}.area-title{font-size:.65rem}.section-header{flex-direction:column;gap:12px}.header-actions{width:100%}.header-actions button{flex:1}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.area-card,.vision-card,.snapshot-card,.area-list-item{animation:fadeIn .3s ease-out}.focus-badge{font-size:.9rem;margin-left:4px}.area-card.is-focus{border-left:3px solid var(--primary)}.area-card-actions{display:flex;gap:4px;align-items:center}.btn-icon.active{color:var(--primary)}.btn-icon.danger{color:var(--danger)}.btn-icon.danger:hover{background:#fef2f2}.form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.areas-view{display:flex;flex-direction:column;gap:16px}.markdown-content{line-height:1.6}.markdown-content h1,.markdown-content h2,.markdown-content h3{margin-top:.8em;margin-bottom:.4em;font-weight:600}.markdown-content h1{font-size:1.3em}.markdown-content h2{font-size:1.2em}.markdown-content h3{font-size:1.1em}.markdown-content p{margin-bottom:.5em}.markdown-content ul{margin:.5em 0;padding-left:1.5em}.markdown-content li{margin-bottom:.3em}.markdown-content code{background:#0000001a;padding:.1em .4em;border-radius:4px;font-family:Monaco,Menlo,monospace;font-size:.9em}.markdown-content pre{background:#0000001a;padding:.8em;border-radius:6px;overflow-x:auto;margin:.5em 0}.markdown-content pre code{background:none;padding:0}.markdown-content strong{font-weight:600}.markdown-content em{font-style:italic}.chat-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border);background:var(--surface)}.chat-input input{flex:1}.message.assistant .markdown-content{color:inherit}
