:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#101113;color:#f5f7fa;--bg: #101113;--panel: #1a1d21;--panel-strong: #22262c;--line: #333942;--text-muted: #aab2bf;--primary: #3ea6ff;--primary-strong: #78c3ff;--danger: #ff6b6b;--ok: #4ade80}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg)}button,input,select{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.sidebar{display:grid;grid-template-rows:auto 1fr auto;border-right:1px solid var(--line);background:#15171a;padding:24px 16px}.brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.brand-mark{display:grid;width:40px;height:40px;place-items:center;border-radius:8px;background:var(--primary);color:#07111d;font-weight:800}.brand strong,.brand span{display:block}.brand span{color:var(--text-muted);font-size:.85rem}.nav-list{align-content:start;display:grid;gap:6px}.sidebar-footer{display:grid;gap:8px}.sidebar-footer>span{color:var(--text-muted);font-size:.85rem;padding:0 12px}.nav-item{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:8px;padding:11px 12px;background:transparent;color:var(--text-muted);text-align:left}.nav-item.active,.nav-item:hover{background:var(--panel-strong);color:#fff}.app-main{min-width:0;padding:32px}.page{display:grid;gap:18px;max-width:1180px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.page-header h1{margin:0;font-size:2rem;line-height:1.2}.page-header p{margin:8px 0 0;color:var(--text-muted)}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.panel,.feature-card{border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:18px}.feature-card{display:grid;gap:8px;color:inherit;text-align:left}.feature-card span,.todo-content span,.news-row span{color:var(--text-muted)}.metric-card{display:grid;gap:8px}.metric-card span,.metric-card small{color:var(--text-muted)}.metric-card strong{font-size:2.25rem}.inline-form,.chat-input{display:grid;grid-template-columns:minmax(0,1fr) 120px 160px 120px auto;gap:10px}.chat-input{grid-template-columns:minmax(0,1fr) auto}input,select{min-height:40px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:#111317;color:#fff}.primary-button,.ghost-button{min-height:40px;border:1px solid var(--primary);border-radius:8px;padding:0 14px;background:var(--primary);color:#07111d;font-weight:700}.ghost-button{border-color:var(--line);background:transparent;color:var(--text-muted)}.stack{display:grid;gap:10px}.todo-row,.news-row,.message{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:8px;padding:12px;background:#14171b}.todo-row.completed .todo-content strong{color:var(--text-muted);text-decoration:line-through}.todo-content{display:grid;gap:4px;min-width:0;flex:1}.check-button{width:28px;height:28px;border:1px solid var(--line);border-radius:999px;background:#111317;color:var(--ok)}.priority{border-radius:999px;padding:4px 8px;background:var(--panel-strong);color:var(--text-muted);font-size:.8rem}.priority.high{color:var(--danger)}.weather-summary{display:grid;gap:16px}.weather-headline{display:flex;align-items:center;gap:18px}.weather-headline>span{font-size:3rem}.weather-summary strong{font-size:3rem}.weather-summary p{margin:4px 0 0;color:var(--text-muted)}.weather-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.weather-detail-grid span{border-radius:8px;background:var(--panel-strong);padding:10px}.weather-location-controls{display:flex;gap:10px;align-items:center}.location-box{display:grid;gap:6px;border:1px solid var(--line);border-radius:8px;background:#14171b;padding:12px 14px}.location-box span{color:var(--text-muted)}.forecast-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.forecast-item{display:grid;gap:6px;border-radius:8px;background:var(--panel-strong);padding:10px}.forecast-item small{color:var(--text-muted)}.news-row{display:grid;color:inherit;text-decoration:none}.notification-result-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;align-items:center;border-radius:8px;background:var(--panel-strong);padding:10px}.notification-result-row span{color:var(--text-muted)}.settings-grid{display:grid;gap:14px;max-width:520px}.account-form,.account-row{display:grid;grid-template-columns:120px minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto auto auto;gap:10px;align-items:center}.checkbox-row{display:flex;gap:6px;align-items:center;color:var(--text-muted);white-space:nowrap}.checkbox-row input{min-height:auto}.settings-grid label,.toggle-row{display:grid;gap:8px}.toggle-row{grid-template-columns:1fr auto;align-items:center}.segmented-control{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.segmented-control button{border:0;padding:10px 14px;background:#111317;color:var(--text-muted)}.segmented-control button.active{background:var(--primary);color:#07111d;font-weight:700}.chat-panel{display:grid;gap:14px;min-height:620px;grid-template-rows:1fr auto}.message-list{display:flex;flex-direction:column;gap:10px;overflow:auto}.message{align-items:flex-start;max-width:78%}.message.user{align-self:flex-end;background:#14324a}.message.assistant{align-self:flex-start}.message span{color:var(--primary-strong);font-weight:700;white-space:nowrap}.message p{margin:0;white-space:pre-wrap}.empty-state,.error-box,.notice-box{border-radius:8px;padding:16px;background:#14171b;color:var(--text-muted)}.login-page{display:grid;min-height:100vh;place-items:center;padding:24px}.login-panel{display:grid;width:min(100%,420px);gap:16px;border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:24px}.login-panel h1,.login-panel p{margin:0}.login-panel p{margin-top:8px;color:var(--text-muted)}.login-panel label{display:grid;gap:8px}.error-box{border:1px solid var(--danger);color:#ffd4d4}.notice-box{border:1px solid var(--primary);color:var(--primary-strong)}@media(max-width:820px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.nav-list{grid-template-columns:repeat(2,minmax(0,1fr))}.app-main{padding:20px}.grid.two,.grid.three,.grid.four,.inline-form,.account-form,.account-row,.forecast-grid,.weather-detail-grid{grid-template-columns:1fr}.page-header{display:grid}.message{max-width:100%}}
