:root{--bg: #f4f5f7;--surface: #ffffff;--chip-bg: #f3f4f6;--border: #e5e7eb;--border-strong: #d1d5db;--text: #1f2430;--text-strong: #374151;--text-muted: #6b7280;--text-faint: #9ca3af;--shadow-color: rgba(0, 0, 0, .06);--shadow-color-strong: rgba(0, 0, 0, .2);--overdue-bg: #fff5f5}[data-theme=dark]{--bg: #14161f;--surface: #1c1f2b;--chip-bg: #262a38;--border: #2e3342;--border-strong: #3a3f50;--text: #e7e9ee;--text-strong: #cbd0db;--text-muted: #9aa1b1;--text-faint: #6f7688;--shadow-color: rgba(0, 0, 0, .35);--shadow-color-strong: rgba(0, 0, 0, .55);--overdue-bg: #2a1a1d}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%;background:var(--bg)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);overscroll-behavior-y:none}.app-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.app-content{flex:1}.desktop-only{display:inline-flex}.mobile-only{display:none}button{cursor:pointer;border:none;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:600;background:#4f46e5;color:#fff}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{background:var(--border);color:var(--text)}input,textarea,select{padding:10px 12px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:14px;font-family:inherit}.center-screen{display:flex;align-items:center;justify-content:center;height:100vh}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#4f46e5,#7c3aed)}.auth-card{background:var(--surface);padding:40px;border-radius:16px;box-shadow:0 20px 60px #0003;width:360px;display:flex;flex-direction:column;gap:12px}.auth-card h1{margin:0;font-size:22px}.subtitle{margin:0 0 8px;color:var(--text-muted)}.switch-link{text-align:center;font-size:14px;margin-top:8px}.hint{text-align:center;font-size:12px;color:var(--text-faint);margin-top:12px}.error-banner{background:#fee2e2;color:#b91c1c;padding:10px 12px;border-radius:8px;font-size:14px}.error-inline{color:#b91c1c;font-size:13px}.info-banner{background:#e0e7ff;color:#3730a3;padding:10px 12px;border-radius:8px;font-size:14px}.otp-input{text-align:center;font-size:24px;letter-spacing:8px;font-weight:700}.navbar{background:var(--surface);box-shadow:0 1px 3px var(--shadow-color);margin-bottom:20px;position:sticky;top:0;z-index:40;padding-top:env(safe-area-inset-top)}.navbar-inner{max-width:1100px;margin:0 auto;padding:14px 16px;display:flex;align-items:center;gap:24px}.navbar-brand{font-weight:700;font-size:18px;white-space:nowrap}.navbar-links{display:flex;gap:16px;flex:1}.navbar-links a{color:var(--text-muted);text-decoration:none;font-size:14px;font-weight:600;padding:6px 4px;border-bottom:2px solid transparent}.navbar-links a.active{color:#4f46e5;border-bottom-color:#4f46e5}.avatar-menu{position:relative}.avatar-button{width:34px;height:34px;border-radius:999px;background:#4f46e5;color:#fff;padding:0;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}.avatar-button:hover{color:#fff}.avatar-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border-radius:12px;box-shadow:0 12px 32px #0000002e;padding:12px;display:flex;flex-direction:column;gap:10px;min-width:180px;z-index:60}.avatar-dropdown-name{font-size:13px;font-weight:600;color:var(--text-strong);padding:0 2px 8px;border-bottom:1px solid var(--border);word-break:break-word}.avatar-dropdown button{width:100%}.mobile-tabbar{display:none}.dashboard{max-width:900px;margin:0 auto;padding:0 16px 100px}.header-right{display:flex;align-items:center;gap:12px;font-size:14px}.stats-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.stat{background:var(--surface);border-radius:12px;padding:16px;text-align:center;box-shadow:0 1px 3px var(--shadow-color)}.stat-value{display:block;font-size:26px;font-weight:700}.stat-label{font-size:12px;color:var(--text-muted)}.stat-danger .stat-value{color:#dc2626}.stat-warning .stat-value{color:#d97706}.smart-focus{background:var(--surface);border-radius:12px;padding:16px 20px;margin-bottom:20px;box-shadow:0 1px 3px var(--shadow-color)}.smart-focus h2{margin:0 0 10px;font-size:16px}.smart-focus ol{margin:0;padding-left:20px}.smart-focus li{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:14px}.focus-title{flex:1}.due{font-size:12px;color:var(--text-muted)}.add-section{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.nl-input{display:flex;gap:8px;align-items:center}.nl-input input{flex:1}.link-button{background:none;color:#4f46e5;padding:4px 0;align-self:flex-start;font-weight:600}.task-form{background:var(--surface);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px;box-shadow:0 1px 3px var(--shadow-color)}.form-row{display:flex;gap:10px}.form-row input,.form-row select{flex:1}.filters{display:flex;gap:10px;margin-bottom:16px}.filters input{flex:1}.task-list{display:flex;flex-direction:column;gap:10px}.task-item{background:var(--surface);border-radius:12px;padding:14px 16px;display:flex;align-items:flex-start;gap:12px;box-shadow:0 1px 3px var(--shadow-color);border-left:4px solid var(--border-strong)}.task-item.priority-high{border-left-color:#dc2626}.task-item.priority-medium{border-left-color:#d97706}.task-item.priority-low{border-left-color:#10b981}.task-item.completed{opacity:.55}.task-item.completed .task-title{text-decoration:line-through}.task-item.overdue:not(.completed){background:var(--overdue-bg, #fff5f5)}.task-item input[type=checkbox]{margin-top:4px;width:18px;height:18px}.task-main{flex:1}.task-title{font-weight:600;font-size:15px}.task-desc{font-size:13px;color:var(--text-muted);margin-top:2px}.task-meta{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.badge{font-size:11px;padding:3px 8px;border-radius:999px;background:var(--chip-bg);color:var(--text-strong)}.badge-low{background:#d1fae5;color:#065f46}.badge-medium{background:#fef3c7;color:#92400e}.badge-high{background:#fee2e2;color:#991b1b}.badge-overdue{background:#fecaca;color:#7f1d1d;font-weight:700}.badge-score{background:#e0e7ff;color:#3730a3}.badge-ontrack{background:#d1fae5;color:#065f46}.badge-risk{background:#fee2e2;color:#991b1b}.badge-tag{background:#ede9fe;color:#5b21b6}.badge-subtasks{background:var(--chip-bg);color:var(--text-strong);border:none;cursor:pointer;font-size:11px;padding:3px 8px;font-weight:600}.subtask-list{margin-top:10px;padding-top:10px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.subtask-item{display:flex;align-items:center;gap:8px;font-size:13px}.subtask-item input[type=checkbox]{width:14px;height:14px;margin:0}.subtask-item span{flex:1}.subtask-done{text-decoration:line-through;color:var(--text-faint)}.subtask-add input{font-size:13px;padding:6px 10px;width:100%}.icon-button{background:none;color:var(--text-faint);padding:4px 8px}.icon-button:hover{color:#dc2626}.empty-state{text-align:center;color:var(--text-faint);padding:40px 0}.chat-widget{position:fixed;bottom:20px;right:20px;z-index:50}.chat-toggle{border-radius:999px;padding:12px 20px;box-shadow:0 8px 24px #4f46e566}.chat-panel{position:absolute;bottom:60px;right:0;width:340px;height:420px;background:var(--surface);border-radius:16px;box-shadow:0 20px 60px #0003;display:flex;flex-direction:column;overflow:hidden}.chat-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.chat-msg{max-width:85%;padding:8px 12px;border-radius:12px;font-size:13px}.chat-msg p{margin:0}.chat-user{align-self:flex-end;background:#4f46e5;color:#fff}.chat-widget .chat-msg.chat-assistant{align-self:flex-start;background:var(--chip-bg);color:var(--text)}.chat-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.chip-button{font-size:11px;padding:4px 10px;background:var(--surface);color:#4f46e5;border:1px solid #4f46e5}.chat-input-row{display:flex;gap:6px;padding:10px;border-top:1px solid var(--border)}.chat-input-row input{flex:1}.mic-button{background:var(--chip-bg);color:var(--text-muted);padding:8px 10px;flex-shrink:0}.mic-button.listening{background:#fee2e2;color:#dc2626;animation:mic-pulse 1.2s infinite}@keyframes mic-pulse{0%,to{box-shadow:0 0 #dc262666}50%{box-shadow:0 0 0 6px #dc262600}}.board-page{max-width:1100px;margin:0 auto;padding:0 16px 100px}.board-page h1{font-size:22px;margin:0 0 16px}.board-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.board-column{background:var(--chip-bg);border-radius:12px;padding:12px;min-height:300px;transition:background .15s}.board-column.drag-over{background:#dfe3fb}.board-column h2{font-size:14px;margin:0 0 10px;display:flex;align-items:center;gap:6px}.board-count{background:var(--surface);border-radius:999px;padding:1px 8px;font-size:12px;color:var(--text-muted)}.board-cards{display:flex;flex-direction:column;gap:8px;min-height:60px}.board-card{background:var(--surface);border-radius:10px;padding:10px 12px;box-shadow:0 1px 3px var(--shadow-color);border-left:4px solid var(--border-strong);cursor:grab}.board-card.priority-high{border-left-color:#dc2626}.board-card.priority-medium{border-left-color:#d97706}.board-card.priority-low{border-left-color:#10b981}.board-card-title{font-weight:600;font-size:14px;margin-bottom:6px}.board-card .task-meta{margin-top:0}.board-move{display:none;gap:6px;margin-top:10px}.board-move button{flex:1;padding:6px 4px;font-size:11px}@media (max-width: 800px){.board-columns{grid-template-columns:1fr}}.analytics-page{max-width:1100px;margin:0 auto;padding:0 16px 100px;display:flex;flex-direction:column;gap:20px}.analytics-page h1{font-size:22px;margin:0}.analytics-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.analytics-card{background:var(--surface);border-radius:12px;padding:18px 20px;box-shadow:0 1px 3px var(--shadow-color)}.analytics-card h2{margin:0 0 12px;font-size:15px}.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.analytics-grid .analytics-card{min-width:0}.model-note{font-size:12px;color:var(--text-faint);margin-top:10px}.model-untrained{color:var(--text-faint);font-size:14px}.settings-page{max-width:640px;margin:0 auto;padding:0 16px 100px;display:flex;flex-direction:column;gap:20px}.settings-page h1{font-size:22px;margin:0}.settings-card{background:var(--surface);border-radius:12px;padding:18px 20px;box-shadow:0 1px 3px var(--shadow-color)}.settings-card h2{margin:0 0 4px;font-size:15px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.settings-row-title{font-weight:600;font-size:14px}.settings-row-desc{font-size:13px;color:var(--text-muted);margin-top:2px}.settings-form{display:flex;flex-direction:column;gap:8px;margin-top:10px}.settings-label{font-size:12px;font-weight:600;color:var(--text-muted);margin-top:6px}.theme-switch{width:48px;height:28px;border-radius:999px;background:var(--border-strong);padding:3px;display:flex;align-items:center;justify-content:flex-start;flex-shrink:0;transition:background .15s}.theme-switch.on{background:#4f46e5;justify-content:flex-end}.theme-switch-knob{width:22px;height:22px;border-radius:999px;background:var(--surface);box-shadow:0 1px 3px #0003}.calendar-page{max-width:760px;margin:0 auto;padding:0 16px 100px}.calendar-page h1{font-size:22px;margin:0 0 16px}.calendar-header{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:12px}.calendar-header button{padding:8px 14px}.calendar-month-label{font-weight:700;font-size:16px;min-width:160px;text-align:center}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:12px;color:var(--text-muted);font-weight:600;margin-bottom:6px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:20px}.calendar-cell{aspect-ratio:1;background:var(--surface);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:6px 2px;box-shadow:0 1px 2px #0000000d;color:var(--text)}.calendar-cell.outside{color:var(--text-faint);background:var(--bg);box-shadow:none}.calendar-cell.today .calendar-cell-date{background:#4f46e5;color:#fff;border-radius:999px}.calendar-cell.selected{outline:2px solid #4f46e5}.calendar-cell-date{font-size:13px;font-weight:600;width:22px;height:22px;display:flex;align-items:center;justify-content:center}.calendar-cell-dots{display:flex;gap:2px;margin-top:4px;flex-wrap:wrap;justify-content:center}.calendar-dot{width:6px;height:6px;border-radius:999px;background:var(--border-strong)}.calendar-dot.priority-high{background:#dc2626}.calendar-dot.priority-medium{background:#d97706}.calendar-dot.priority-low{background:#10b981}.calendar-dot-more{font-size:9px;color:var(--text-muted)}.calendar-day-panel h2{font-size:15px;margin:0 0 10px}@media (max-width: 800px){.analytics-summary,.analytics-grid{grid-template-columns:1fr}}@media (max-width: 640px){.stats-bar{grid-template-columns:repeat(2,1fr)}.chat-panel{width:calc(100vw - 40px)}.desktop-only{display:none!important}.mobile-only{display:flex}.navbar{margin-bottom:0}.navbar-inner{padding:12px 16px;gap:12px}.navbar-brand{font-size:16px;flex:1}.navbar-links,.header-username{display:none}.header-right{gap:8px}.mobile-tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -2px 12px var(--shadow-color);padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 0 4px;color:var(--text-faint);text-decoration:none;font-size:11px;font-weight:600;border-radius:10px}.tab-item.active{color:#4f46e5}.tab-item:active{background:var(--chip-bg)}.dashboard,.board-page,.analytics-page,.calendar-page,.settings-page{padding-left:12px;padding-right:12px;padding-bottom:calc(84px + env(safe-area-inset-bottom))}.dashboard{padding-top:12px}.calendar-month-label{min-width:120px;font-size:14px}.settings-card,.calendar-cell,.stat,.smart-focus,.task-form,.task-item,.board-card,.analytics-card,.auth-card{border-radius:14px}.task-item{padding:14px}.task-item input[type=checkbox]{width:22px;height:22px}button{padding:12px 16px;font-size:15px}input,textarea,select{padding:12px 14px;font-size:16px}.add-section,.nl-input,.form-row,.filters{flex-direction:column}.nl-input button,.form-row button{width:100%}.task-form .form-row{gap:10px}.chat-widget{bottom:calc(84px + env(safe-area-inset-bottom));right:14px}.chat-panel{bottom:60px;width:calc(100vw - 28px);max-height:70vh}.auth-page{padding:16px}.auth-card{width:100%;max-width:400px;padding:28px 22px}.board-columns{gap:12px}.board-column{min-height:120px}}
