@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes dotPulse{0%,80%,to{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes subtlePulse{0%,to{opacity:1}50%{opacity:.7}}:root{--bg: #FAFAF8;--bg-warm: #F5F3F0;--surface: #FFFFFF;--text: #1C1917;--text-secondary: #78716C;--text-muted: #A8A29E;--border: #E7E5E4;--border-light: #F0EEEC;--primary: #C2662D;--primary-hover: #A8552A;--primary-light: #FDF2EC;--primary-subtle: #F9E4D6;--success: #16A34A;--success-bg: #DCFCE7;--warning: #D97706;--warning-bg: #FEF3C7;--danger: #DC2626;--danger-bg: #FEE2E2;--sidebar-bg: #1C1917;--sidebar-text: #E7E5E4;--sidebar-muted: #78716C;--sidebar-hover: rgba(255, 255, 255, .06);--sidebar-active: rgba(194, 102, 45, .15);--sidebar-width: 288px;--font-heading: "Sora", -apple-system, sans-serif;--font-body: "DM Sans", -apple-system, sans-serif;--radius: 10px;--radius-sm: 6px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(28, 25, 23, .04);--shadow: 0 1px 4px rgba(28, 25, 23, .06), 0 4px 12px rgba(28, 25, 23, .04);--shadow-md: 0 2px 8px rgba(28, 25, 23, .08), 0 8px 24px rgba(28, 25, 23, .06);--shadow-lg: 0 4px 16px rgba(28, 25, 23, .1), 0 16px 48px rgba(28, 25, 23, .08);--transition: .2s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-loading{display:flex;align-items:center;justify-content:center;height:100vh;font-family:var(--font-heading);font-size:1rem;font-weight:500;color:var(--text-secondary);letter-spacing:.02em}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);display:flex;flex-direction:column;transition:width .3s cubic-bezier(.4,0,.2,1);overflow:hidden;flex-shrink:0}.sidebar.collapsed{width:56px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:20px 18px;border-bottom:1px solid rgba(255,255,255,.06);min-height:64px}.sidebar-brand{display:flex;align-items:center;gap:10px}.sidebar-logo{width:32px;height:32px;flex-shrink:0}.sidebar-header h2{font-family:var(--font-heading);font-size:1.2rem;font-weight:700;color:#fafaf8;letter-spacing:-.01em}.btn-new-chat{margin:14px 14px 10px;padding:11px 16px;background:var(--primary);color:#fafaf8;border:none;border-radius:var(--radius);cursor:pointer;font-family:var(--font-body);font-size:.875rem;font-weight:500;transition:background var(--transition),transform var(--transition)}.btn-new-chat:hover{background:var(--primary-hover);transform:translateY(-1px)}.btn-new-chat:active{transform:translateY(0)}.sidebar-nav{padding:4px 10px}.nav-link{display:block;padding:9px 14px;border-radius:var(--radius-sm);color:var(--sidebar-text);text-decoration:none;font-size:.875rem;font-weight:500;transition:background var(--transition),color var(--transition)}.nav-link:hover{background:var(--sidebar-hover);color:#fafaf8}.nav-link.active{background:var(--sidebar-active);color:var(--primary)}.conversation-list{flex:1;overflow-y:auto;padding:8px 10px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}.conversation-list h3{font-family:var(--font-heading);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--sidebar-muted);margin-bottom:8px;padding-left:6px}.convo-item{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-radius:var(--radius-sm);color:var(--sidebar-text);text-decoration:none;font-size:.825rem;cursor:pointer;transition:background var(--transition)}.convo-item:hover{background:var(--sidebar-hover)}.convo-item.active{background:var(--sidebar-active);color:var(--primary)}.convo-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.convo-delete{background:none;border:none;color:var(--sidebar-muted);cursor:pointer;font-size:1.1rem;padding:0 4px;opacity:0;transition:opacity var(--transition),color var(--transition)}.convo-item:hover .convo-delete{opacity:.7}.convo-delete:hover{color:var(--danger);opacity:1}.sidebar-footer{padding:14px 18px;border-top:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;gap:6px}.user-email{font-size:.75rem;color:var(--sidebar-muted);overflow:hidden;text-overflow:ellipsis}.sidebar-footer .link-btn{color:var(--sidebar-muted);font-size:.8rem;text-align:left}.sidebar-footer .link-btn:hover{color:var(--sidebar-text)}.main-content{flex:1;overflow:hidden;display:flex;flex-direction:column;background:var(--bg)}.query-list{padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.06)}.query-list h3{font-family:var(--font-heading);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--sidebar-muted);margin-bottom:8px;padding-left:6px}.query-item{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:var(--radius-sm);transition:background var(--transition)}.query-item:hover{background:var(--sidebar-hover)}.query-item.active{background:var(--sidebar-active)}.query-run-btn{background:none;border:none;color:var(--primary);cursor:pointer;padding:2px;display:flex;align-items:center;opacity:.7;transition:opacity var(--transition);flex-shrink:0}.query-run-btn:hover{opacity:1}.query-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sidebar-text);text-decoration:none;font-size:.825rem}.query-item.active .query-title{color:var(--primary)}.query-delete-btn{background:none;border:none;color:var(--sidebar-muted);cursor:pointer;font-size:1.1rem;padding:0 4px;opacity:0;transition:opacity var(--transition),color var(--transition)}.query-item:hover .query-delete-btn{opacity:.7}.query-delete-btn:hover{color:var(--danger);opacity:1}.message-wrapper-user{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-bottom:20px}.message-wrapper-user .message-bubble{margin-bottom:0}.btn-save-query{background:var(--bg-warm);border:1px solid var(--border-light);color:var(--text-muted);cursor:pointer;padding:6px;border-radius:var(--radius-sm);opacity:0;transition:opacity var(--transition),color var(--transition),background var(--transition),border-color var(--transition);flex-shrink:0;display:flex;align-items:center}.message-wrapper-user:hover .btn-save-query{opacity:1}.btn-save-query:hover{color:var(--primary);background:var(--primary-light);border-color:var(--primary-subtle)}.save-query-dialog{padding:0 20px 12px}.save-query-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-md)}.save-query-content h3{font-family:var(--font-heading);font-size:.95rem;font-weight:600;margin-bottom:8px;color:var(--text)}.save-query-prompt-preview{font-size:.8rem;color:var(--text-secondary);margin-bottom:12px;padding:8px 10px;background:var(--bg-warm);border-radius:var(--radius-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.save-query-input{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.875rem;color:var(--text);background:var(--surface);margin-bottom:12px;box-sizing:border-box}.save-query-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light)}.save-query-buttons{display:flex;justify-content:flex-end;gap:8px}.save-query-buttons .btn-cancel{padding:7px 14px;background:var(--bg-warm);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:.825rem}.save-query-buttons .btn-confirm{padding:7px 14px;background:var(--primary);color:#fafaf8;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.825rem;font-weight:500}.save-query-buttons .btn-confirm:disabled{opacity:.5;cursor:not-allowed}.save-query-buttons .btn-confirm:hover:not(:disabled){background:var(--primary-hover)}.query-history{padding:32px 40px;max-width:700px;overflow-y:auto;height:100%}.query-history-loading{padding:32px 40px;color:var(--text-muted)}.query-history-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px}.query-history-title-row h2{font-family:var(--font-heading);font-size:1.4rem;font-weight:700;color:var(--text)}.query-history-actions{display:flex;gap:8px;flex-shrink:0}.btn-run-query{padding:8px 16px;background:var(--primary);color:#fafaf8;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.825rem;font-weight:500;transition:background var(--transition)}.btn-run-query:hover:not(:disabled){background:var(--primary-hover)}.btn-run-query:disabled{opacity:.5;cursor:not-allowed}.btn-delete-query{padding:8px 16px;background:var(--bg-warm);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:.825rem}.btn-delete-query:hover{color:var(--danger);border-color:var(--danger)}.query-prompt-display{font-size:.9rem;color:var(--text-secondary);padding:12px 14px;background:var(--bg-warm);border-radius:var(--radius);margin-bottom:12px}.query-meta{display:flex;gap:16px;font-size:.8rem;color:var(--text-muted);margin-bottom:32px}.query-runs h3{font-family:var(--font-heading);font-size:.85rem;font-weight:600;color:var(--text);margin-bottom:12px}.query-runs-empty{font-size:.875rem;color:var(--text-muted)}.query-runs-list{display:flex;flex-direction:column;gap:4px}.query-run-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-sm);text-decoration:none;color:var(--text);transition:border-color var(--transition),box-shadow var(--transition)}.query-run-item:hover{border-color:var(--border);box-shadow:var(--shadow-sm)}.query-run-date{font-size:.85rem;font-weight:500}.query-run-messages{font-size:.8rem;color:var(--text-muted)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(ellipse at 20% 80%,rgba(194,102,45,.06) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(194,102,45,.04) 0%,transparent 50%),var(--bg-warm);padding:24px}.login-page.login-solar{background:radial-gradient(ellipse at 20% 80%,rgba(16,185,129,.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(15,23,42,.06) 0%,transparent 50%),#f8fafc}.login-solar .btn-primary{background:#10b981}.login-solar .btn-primary:hover{background:#059669}.login-solar .link-btn{color:#10b981}.login-solar .demo-btn:hover{border-color:#10b981;color:#10b981;background:#ecfdf5}.login-card{background:var(--surface);border-radius:16px;box-shadow:var(--shadow-lg);padding:44px 40px;width:100%;max-width:440px;animation:fadeUp .5s ease-out;border:1px solid var(--border-light)}.login-header{text-align:center;margin-bottom:36px}.login-logo{width:72px;height:72px;margin-bottom:16px}.login-header h1{font-family:var(--font-heading);font-size:2.2rem;font-weight:700;color:var(--text);margin-bottom:6px;letter-spacing:-.03em}.login-header p{color:var(--text-secondary);font-size:.95rem}.form-group{margin-bottom:18px}.form-group label{display:block;font-size:.825rem;font-weight:500;margin-bottom:6px;color:var(--text)}.form-group input{width:100%;padding:11px 14px;border:1.5px solid var(--border);border-radius:var(--radius);font-family:var(--font-body);font-size:.925rem;background:var(--surface);color:var(--text);transition:border-color var(--transition),box-shadow var(--transition)}.form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.form-group input::placeholder{color:var(--text-muted)}.btn-primary{width:100%;padding:13px;background:var(--primary);color:#fafaf8;border:none;border-radius:var(--radius);font-family:var(--font-body);font-size:.95rem;font-weight:600;cursor:pointer;margin-top:8px;transition:background var(--transition),transform var(--transition),box-shadow var(--transition)}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #c2662d40}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.error-text{color:var(--danger);font-size:.825rem;margin-bottom:8px;font-weight:500}.demo-accounts{margin-top:28px;padding-top:24px;border-top:1px solid var(--border);text-align:center}.demo-label{font-family:var(--font-heading);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:12px}.demo-buttons{display:flex;flex-direction:column;gap:8px}.demo-btn{background:var(--primary-light);border:1.5px solid var(--primary-subtle);border-radius:var(--radius);padding:12px 16px;font-family:var(--font-body);font-size:.875rem;font-weight:500;color:var(--primary);cursor:pointer;transition:all var(--transition);text-align:left}.demo-btn:hover{background:var(--primary);border-color:var(--primary);color:#fafaf8;transform:translateY(-1px);box-shadow:0 4px 12px #c2662d33}.demo-btn:active{transform:translateY(0)}.demo-hint{font-size:.75rem;color:var(--text-muted);margin-top:12px}.toggle-mode{text-align:center;margin-top:20px;font-size:.875rem;color:var(--text-secondary)}.link-btn{background:none;border:none;color:var(--primary);cursor:pointer;font-family:var(--font-body);font-size:inherit;font-weight:500;padding:0;text-decoration:none;transition:color var(--transition)}.link-btn:hover{color:var(--primary-hover);text-decoration:underline}.otp-info{margin-bottom:18px;text-align:center;color:var(--text-secondary);font-size:.925rem}.icon-btn{background:none;border:none;cursor:pointer;font-size:1.05rem;color:var(--sidebar-muted);padding:6px 8px;border-radius:var(--radius-sm);transition:background var(--transition),color var(--transition)}.icon-btn:hover{background:var(--sidebar-hover);color:var(--sidebar-text)}.chat-panel{display:flex;flex-direction:column;height:100%}.chat-messages{flex:1;overflow-y:auto;padding:28px 32px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.chat-starter{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;animation:fadeUp .5s ease-out}.starter-greeting{margin-bottom:36px}.starter-greeting h2{font-family:var(--font-heading);font-size:1.75rem;font-weight:700;color:var(--text);margin-bottom:8px;letter-spacing:-.02em}.starter-greeting p{font-size:1rem;color:var(--text-secondary)}.starter-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-width:520px;width:100%}.starter-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:18px 20px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;text-align:left;transition:all var(--transition);box-shadow:var(--shadow-sm)}.starter-card:hover{border-color:var(--primary);box-shadow:var(--shadow),0 0 0 1px var(--primary-light);transform:translateY(-2px)}.starter-card:active{transform:translateY(0)}.starter-card-icon{font-size:1.4rem;line-height:1}.starter-card-label{font-family:var(--font-heading);font-size:.825rem;font-weight:600;color:var(--text)}.starter-card-question{font-size:.8rem;color:var(--text-secondary);line-height:1.4}.message-bubble{margin-bottom:20px;max-width:780px}.message-enter{animation:fadeUp .35s ease-out}.message-user{margin-left:auto}.message-header{display:flex;align-items:center;gap:8px;margin-bottom:5px}.message-label{font-family:var(--font-heading);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.message-time{font-size:.675rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.message-user .message-header{justify-content:flex-end}.message-user .message-label{text-align:right}.message-content{padding:14px 18px;border-radius:var(--radius-lg);font-size:.9rem;line-height:1.65}.message-user .message-content{background:var(--primary);color:#fafaf8;border-radius:var(--radius-lg) var(--radius-lg) 4px var(--radius-lg);box-shadow:0 2px 8px #c2662d26}.message-assistant .message-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) 4px;box-shadow:var(--shadow-sm)}.message-assistant .message-content p{margin-bottom:.6em}.message-assistant .message-content p:last-child{margin-bottom:0}.message-assistant .message-content strong{font-weight:600;color:var(--text)}.message-assistant .message-content h1,.message-assistant .message-content h2,.message-assistant .message-content h3{font-family:var(--font-heading);font-weight:600;color:var(--text);margin:1em 0 .4em;letter-spacing:-.01em}.message-assistant .message-content h1:first-child,.message-assistant .message-content h2:first-child,.message-assistant .message-content h3:first-child{margin-top:0}.message-assistant .message-content h1{font-size:1.15rem}.message-assistant .message-content h2{font-size:1.05rem}.message-assistant .message-content h3{font-size:.95rem}.message-assistant .message-content ul,.message-assistant .message-content ol{padding-left:1.4em;margin-bottom:.6em}.message-assistant .message-content li{margin-bottom:.25em}.message-assistant .message-content code{background:var(--bg-warm);padding:2px 6px;border-radius:4px;font-size:.85em;font-family:SF Mono,Fira Code,monospace;color:var(--primary)}.message-assistant .message-content blockquote{border-left:3px solid var(--primary);padding-left:14px;margin:.6em 0;color:var(--text-secondary);font-style:italic}.message-assistant .message-content hr{border:none;border-top:1px solid var(--border);margin:1em 0}.message-loading{padding:14px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:.875rem;display:flex;align-items:center;gap:10px;box-shadow:var(--shadow-sm)}.loading-dots{display:inline-flex;gap:4px;align-items:center}.loading-dots span{width:6px;height:6px;border-radius:50%;background:var(--primary);animation:dotPulse 1.2s ease-in-out infinite}.loading-dots span:nth-child(2){animation-delay:.15s}.loading-dots span:nth-child(3){animation-delay:.3s}.message-widgets{margin-top:14px;display:flex;flex-direction:column;gap:12px;min-width:0}.message-widget-wrapper{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;box-shadow:var(--shadow);transition:box-shadow var(--transition)}.message-widget-wrapper:hover{box-shadow:var(--shadow-md)}.btn-pin{position:absolute;top:10px;right:10px;background:var(--primary-light);color:var(--primary);border:1px solid var(--primary-subtle);border-radius:var(--radius-sm);padding:5px 12px;font-family:var(--font-body);font-size:.725rem;font-weight:600;cursor:pointer;opacity:0;transition:all var(--transition);text-transform:uppercase;letter-spacing:.04em}.message-widget-wrapper:hover .btn-pin{opacity:1}.btn-pin:hover{background:var(--primary);color:#fafaf8;border-color:var(--primary)}.follow-up-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;animation:fadeUp .4s ease-out .1s both}.follow-up-chip{padding:8px 16px;background:var(--surface);border:1.5px solid var(--border);border-radius:100px;cursor:pointer;font-family:var(--font-body);font-size:.8rem;font-weight:500;color:var(--text);transition:all var(--transition);box-shadow:var(--shadow-sm);line-height:1.3}.follow-up-chip:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light);transform:translateY(-1px);box-shadow:var(--shadow)}.follow-up-chip:active{transform:translateY(0)}.chat-error{padding:10px 16px;background:var(--danger-bg);color:var(--danger);border-radius:var(--radius);font-size:.85rem;font-weight:500;margin:8px 0;border:1px solid rgba(220,38,38,.15)}.chat-input-form{display:flex;gap:10px;padding:16px 32px 20px;border-top:1px solid var(--border);background:var(--surface)}.chat-input-form textarea{flex:1;padding:12px 16px;border:1.5px solid var(--border);border-radius:var(--radius);font-family:var(--font-body);font-size:.9rem;resize:none;min-height:44px;max-height:120px;background:var(--bg);color:var(--text);transition:border-color var(--transition),box-shadow var(--transition);line-height:1.4}.chat-input-form textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.chat-input-form textarea::placeholder{color:var(--text-muted)}.btn-send{padding:12px 24px;background:var(--primary);color:#fafaf8;border:none;border-radius:var(--radius);cursor:pointer;font-family:var(--font-body);font-weight:600;font-size:.875rem;white-space:nowrap;transition:background var(--transition),transform var(--transition);align-self:flex-end}.btn-send:hover{background:var(--primary-hover);transform:translateY(-1px)}.btn-send:active{transform:translateY(0)}.btn-send:disabled{opacity:.45;cursor:not-allowed;transform:none}.widget-kpi{text-align:center;padding:12px 8px}.kpi-title{font-family:var(--font-heading);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:8px}.kpi-value{font-family:var(--font-heading);font-size:2.2rem;font-weight:700;letter-spacing:-.02em;line-height:1.1}.kpi-trend{font-size:1.3rem;margin-left:6px;vertical-align:middle}.kpi-target{font-size:.8rem;color:var(--text-muted);margin-top:8px}.kpi-good .kpi-value{color:var(--success)}.kpi-warning .kpi-value{color:var(--warning)}.kpi-bad .kpi-value{color:var(--danger)}.widget-table{overflow:hidden;min-width:0}.table-title{font-family:var(--font-heading);font-size:.85rem;font-weight:600;margin-bottom:10px;color:var(--text)}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border) transparent;min-width:0}.widget-table table{width:100%;border-collapse:collapse;font-size:.8rem}.widget-table th{text-align:left;padding:10px 14px;border-bottom:2px solid var(--border);font-family:var(--font-heading);font-weight:600;font-size:.725rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);white-space:nowrap}.widget-table td{padding:9px 14px;border-bottom:1px solid var(--border-light);color:var(--text)}.widget-table tr:last-child td{border-bottom:none}.widget-table tbody tr{transition:background var(--transition)}.widget-table tbody tr:hover{background:var(--bg)}.widget-chart{padding:4px}.chart-title{font-family:var(--font-heading);font-size:.85rem;font-weight:600;margin-bottom:10px;color:var(--text)}.widget-alerts{padding:4px}.alerts-title{font-family:var(--font-heading);font-size:.85rem;font-weight:600;margin-bottom:10px;color:var(--text)}.alert-list{list-style:none}.alert-item{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-light);align-items:flex-start}.alert-item:last-child{border-bottom:none}.alert-badge{font-family:var(--font-heading);font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 10px;border-radius:100px;white-space:nowrap}.alert-high .alert-badge{background:var(--danger-bg);color:var(--danger)}.alert-medium .alert-badge{background:var(--warning-bg);color:var(--warning)}.alert-low .alert-badge{background:var(--primary-light);color:var(--primary)}.alert-content{flex:1;font-size:.85rem;line-height:1.4}.alert-content strong{font-weight:600;color:var(--text)}.alert-content p{color:var(--text-secondary);margin-top:2px}.alerts-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.alerts-header .alerts-title{margin-bottom:0}.alert-dismiss-all{font-size:.75rem;color:var(--text-secondary);background:none;border:1px solid var(--border-light);border-radius:6px;padding:3px 10px;cursor:pointer}.alert-dismiss-all:hover{color:var(--text);border-color:var(--text-secondary)}.alert-dismiss-btn{font-size:1.1rem;line-height:1;color:var(--text-secondary);background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:4px;flex-shrink:0;align-self:flex-start}.alert-dismiss-btn:hover{color:var(--text);background:var(--border-light)}.widget-unknown{padding:20px;text-align:center;color:var(--text-muted);font-size:.875rem}.dashboard-page{padding:28px 32px;overflow-y:auto;height:100%}.dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:14px}.dashboard-page h1{font-family:var(--font-heading);font-size:1.6rem;font-weight:700;margin-bottom:0;letter-spacing:-.02em}.period-selector{display:flex;align-items:center;gap:14px}.period-nav{display:flex;align-items:center;gap:6px}.period-arrow{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;color:var(--text);transition:all var(--transition)}.period-arrow:hover:not(:disabled){background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.period-arrow:disabled{opacity:.25;cursor:not-allowed}.period-label{font-family:var(--font-heading);font-size:.875rem;font-weight:600;color:var(--text);min-width:130px;text-align:center}.period-presets{display:flex;gap:4px}.preset-btn{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);padding:6px 14px;font-family:var(--font-body);font-size:.8rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.preset-btn:hover{border-color:var(--primary);color:var(--primary)}.preset-btn.active{background:var(--primary);border-color:var(--primary);color:#fafaf8}.latest-btn{margin-left:4px}.period-loading{text-align:center;padding:8px;color:var(--text-secondary);font-size:.85rem;margin-bottom:14px;animation:subtlePulse 1.5s ease-in-out infinite}.dashboard-empty{text-align:center;padding:80px 24px;color:var(--text-secondary);animation:fadeUp .5s ease-out}.dashboard-empty p{margin-bottom:6px;font-size:.95rem}.dashboard-empty p:first-child{font-family:var(--font-heading);font-size:1.1rem;font-weight:600;color:var(--text);margin-bottom:8px}.dashboard-loading{padding:40px;text-align:center;color:var(--text-secondary);font-size:.95rem}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:18px}.widget-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;transition:box-shadow var(--transition),transform var(--transition)}.widget-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.widget-card-header{display:flex;justify-content:flex-end;padding:10px 14px 0}.widget-card-actions{display:flex;gap:4px}.widget-card .icon-btn{color:var(--text-muted);font-size:1rem;padding:4px 8px}.widget-card .icon-btn:hover{color:var(--text);background:var(--bg)}.widget-card-body{padding:8px 18px 18px}.mobile-menu-btn{position:fixed;top:14px;left:14px;z-index:98;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text);box-shadow:var(--shadow);transition:all var(--transition)}.mobile-menu-btn:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}@media(max-width:768px){:root{--sidebar-width: 280px}.app-layout{position:relative}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:100;transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:none;will-change:transform}.sidebar.open{transform:translate(0);box-shadow:var(--shadow-lg)}.sidebar.collapsed{width:var(--sidebar-width);transform:translate(-100%)}.sidebar-overlay{position:fixed;inset:0;background:#1c191766;z-index:99;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.sidebar .icon-btn{display:none}.sidebar-header{padding:16px 18px}.main-content{width:100%}.chat-messages{padding:60px 16px 20px}.chat-input-form{padding:12px 16px 16px;gap:8px}.chat-input-form textarea{font-size:16px;min-height:44px;padding:10px 14px}.btn-send{min-width:44px;min-height:44px;padding:10px 18px;font-size:.85rem}.starter-cards{grid-template-columns:1fr;max-width:100%;padding:0 4px}.starter-greeting{padding-top:8px}.starter-greeting h2{font-size:1.4rem}.starter-card{padding:14px 16px}.message-bubble{max-width:100%}.message-content{padding:12px 16px;font-size:.875rem;line-height:1.6}.message-user .message-content{max-width:85%;margin-left:auto}.btn-save-query{opacity:.6}.message-wrapper-user{gap:6px}.follow-up-chips{gap:8px}.follow-up-chip{font-size:.8rem;padding:10px 16px;min-height:44px;display:inline-flex;align-items:center}.widget-table table{font-size:.75rem}.widget-table th{padding:8px;font-size:.675rem}.widget-table td{padding:7px 8px}.message-widget-wrapper{padding:14px 12px}.btn-pin{opacity:1}.query-history{padding:64px 16px 24px}.query-history-title-row{flex-direction:column;align-items:flex-start;gap:12px}.query-history-title-row h2{font-size:1.2rem}.query-history-actions{width:100%}.btn-run-query,.btn-delete-query{min-height:44px;padding:10px 16px;font-size:.875rem;flex:1;text-align:center}.query-prompt-display{font-size:.85rem;padding:10px 12px}.query-meta{flex-direction:column;gap:4px;margin-bottom:24px}.query-run-item{padding:12px;min-height:44px}.dashboard-page{padding:64px 16px 20px}.dashboard-grid{grid-template-columns:1fr}.dashboard-header{flex-direction:column;align-items:flex-start}.period-selector{flex-direction:column;align-items:flex-start;gap:10px;width:100%}.save-query-dialog{padding:0 12px 12px}.save-query-content{padding:14px}.save-query-input{font-size:16px}.save-query-buttons .btn-cancel,.save-query-buttons .btn-confirm{min-height:44px;padding:10px 16px;font-size:.875rem}.login-card{padding:32px 24px;max-width:100%;margin:0 8px}.login-header h1{font-size:1.8rem}}@media(max-width:480px){.chat-messages{padding:56px 12px 16px}.chat-input-form{padding:10px 12px 14px}.message-content{padding:10px 14px;font-size:.85rem}.btn-send{padding:10px 14px}.widget-table table{font-size:.7rem}.widget-table th,.widget-table td{padding:6px}.starter-greeting h2{font-size:1.2rem}.query-history{padding:56px 12px 20px}.query-history-title-row h2{font-size:1.1rem}.dashboard-page{padding:56px 12px 16px}.dashboard-page h1{font-size:1.3rem}.follow-up-chip{font-size:.775rem;padding:9px 14px}.message-widget-wrapper{padding:12px 10px}.kpi-value{font-size:1.8rem}}.portal-layout{display:flex;height:100vh;overflow:hidden;background:var(--brand-cream, #FDFBF8)}.portal-nav{width:260px;min-width:260px;background:var(--nav-bg, #1C1917);display:flex;flex-direction:column;height:100vh;overflow-y:auto}.portal-nav .nav-brand{padding:20px 20px 16px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;align-items:center}.portal-nav .nav-brand-logo-circle{width:72px;height:72px;border-radius:50%;background:var(--brand-primary, #C2662D);color:#fff;display:flex;align-items:center;justify-content:center;font-family:Sora,Montserrat,sans-serif;font-weight:700;font-size:28px;margin-bottom:12px;border:2px solid rgba(255,255,255,.12)}.portal-nav .nav-brand-logo-img{width:72px;height:72px;border-radius:50%;object-fit:cover;margin-bottom:12px;border:2px solid rgba(255,255,255,.12)}.portal-nav .nav-brand-name{font-family:Sora,Montserrat,sans-serif;font-weight:700;font-size:18px;color:#fff;letter-spacing:-.3px;text-align:center}.portal-nav .nav-powered{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:var(--nav-text-muted, #A8A29E);margin-top:8px;padding:3px 8px;background:#ffffff0a;border-radius:4px}.portal-nav .pulse-dot{width:6px;height:6px;background:var(--nav-active, #FFF5EE);border-radius:50%;animation:pulse-glow 2s ease-in-out infinite}@keyframes pulse-glow{0%,to{opacity:.6}50%{opacity:1;box-shadow:0 0 6px var(--nav-active, #FFF5EE)}}.portal-nav .nav-sections{flex:1;overflow-y:auto;padding-bottom:8px}.portal-nav .nav-section{padding:16px 12px 8px}.portal-nav .nav-section-label{font-family:Sora,Montserrat,sans-serif;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1.2px;color:var(--nav-text-muted, #A8A29E);padding:0 8px 8px}.portal-nav .nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:6px;color:var(--nav-text, #E7E5E4);cursor:pointer;transition:all .15s ease;font-size:14px;font-weight:500;position:relative;text-decoration:none}.portal-nav .nav-item:hover{background:#ffffff1a}.portal-nav .nav-item.active{background:#ffffff26;color:#fff}.portal-nav .nav-item.active:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;background:var(--nav-active, #FFF5EE);border-radius:0 2px 2px 0}.portal-nav .nav-item .icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.portal-nav .nav-item .badge{margin-left:auto;background:#fff3;color:#fff;font-size:11px;font-weight:600;padding:1px 7px;border-radius:10px;min-width:20px;text-align:center}.portal-nav .nav-divider{height:1px;background:#ffffff0f;margin:8px 12px}.portal-nav .nav-footer{margin-top:auto;padding:16px;border-top:1px solid rgba(255,255,255,.06)}.portal-nav .nav-user{display:flex;align-items:center;gap:10px;padding:8px;border-radius:6px}.portal-nav .nav-avatar{width:32px;height:32px;border-radius:50%;background:var(--brand-primary, #C2662D);color:#fff;display:flex;align-items:center;justify-content:center;font-family:Sora,Montserrat,sans-serif;font-weight:700;font-size:13px;flex-shrink:0}.portal-nav .nav-user-info{flex:1;min-width:0}.portal-nav .nav-user-name{font-size:13px;font-weight:600;color:var(--nav-text, #E7E5E4)}.portal-nav .nav-user-role{font-size:11px;color:var(--nav-text-muted, #A8A29E);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-nav .nav-logout-btn{display:block;width:100%;margin-top:8px;padding:6px 12px;background:none;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:var(--nav-text-muted, #A8A29E);font-size:12px;font-family:inherit;cursor:pointer;transition:all .15s ease}.portal-nav .nav-logout-btn:hover{border-color:#fff3;color:var(--nav-text, #E7E5E4)}.portal-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.portal-top-bar{display:flex;align-items:center;gap:12px;padding:16px 32px;background:var(--brand-surface, #FFFFFF);border-bottom:1px solid var(--brand-border, #E7E5E4);min-height:64px}.portal-top-bar .top-bar-text{flex:1;min-width:0}.portal-top-bar .top-bar-title{font-family:Sora,Montserrat,sans-serif;font-size:20px;font-weight:700;color:var(--brand-text, #1C1917);margin:0}.portal-top-bar .top-bar-subtitle{font-size:13px;color:var(--brand-text-secondary, #78716C);margin-top:2px}.portal-top-bar .top-bar-actions{display:flex;align-items:center;gap:12px}.portal-top-bar .btn-icon{width:36px;height:36px;border:1px solid var(--brand-border, #E7E5E4);border-radius:6px;background:var(--brand-surface, #FFFFFF);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--brand-text-secondary, #78716C);transition:all .15s ease;text-decoration:none}.portal-top-bar .btn-icon:hover{border-color:var(--brand-text-muted, #A8A29E);color:var(--brand-text, #1C1917)}.portal-content{flex:1;overflow-y:auto;padding:28px 32px}.portal-home .home-hero{background:linear-gradient(135deg,var(--brand-dark, #6B3409) 0%,var(--brand-primary, #C2662D) 100%);border-radius:14px;padding:36px 40px;color:#fff;margin-bottom:28px;position:relative;overflow:hidden}.portal-home .home-hero:after{content:"";position:absolute;right:-20px;top:-20px;width:200px;height:200px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);border-radius:50%}.portal-home .home-hero h2{font-family:Sora,Montserrat,sans-serif;font-size:24px;font-weight:700;margin-bottom:8px}.portal-home .home-hero p{font-size:14px;opacity:.8;max-width:500px;line-height:1.5}.portal-home .home-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.portal-home .stat-card{background:var(--brand-surface, #FFFFFF);border:1px solid var(--brand-border, #E7E5E4);border-radius:10px;padding:20px}.portal-home .stat-label{font-size:12px;color:var(--brand-text-secondary, #78716C);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.portal-home .stat-value{font-family:Sora,Montserrat,sans-serif;font-size:28px;font-weight:700;margin-top:4px;color:var(--brand-text, #1C1917)}.portal-home .stat-change{font-size:12px;margin-top:4px;font-weight:500;color:var(--brand-text-muted, #A8A29E)}.portal-home .stat-change.up{color:var(--brand-success, #16A34A)}.portal-home .stat-change.down{color:var(--brand-danger, #DC2626)}.portal-home .stat-card.stat-warning{border-left:3px solid var(--brand-warning, #D97706)}.portal-home .stat-card.stat-loading{min-height:100px}.portal-home .skeleton{background:linear-gradient(90deg,#f0efee 25%,#e7e5e4,#f0efee 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:4px}.portal-home .stat-label.skeleton{width:80%;height:14px}.portal-home .stat-value.skeleton{width:50%;height:32px;margin-top:8px}.portal-home .stat-change.skeleton{width:60%;height:14px;margin-top:8px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.portal-home .home-alerts{margin-bottom:28px}.portal-home .home-alerts .widget-alerts{border:1px solid var(--brand-border, #E7E5E4);border-radius:10px;padding:16px;background:var(--brand-surface, #FFFFFF)}.portal-home .section-heading{font-family:Sora,Montserrat,sans-serif;font-size:16px;font-weight:600;margin-bottom:16px;color:var(--brand-text, #1C1917)}.portal-home .home-quick-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.portal-home .quick-tile{background:var(--brand-surface, #FFFFFF);border:1px solid var(--brand-border, #E7E5E4);border-radius:10px;padding:24px;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden;text-decoration:none;color:inherit;display:block}.portal-home .quick-tile:hover{border-color:var(--brand-primary, #C2662D);box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.portal-home .quick-tile .tile-icon{font-size:28px;margin-bottom:12px}.portal-home .quick-tile h3{font-family:Sora,Montserrat,sans-serif;font-size:16px;font-weight:600;margin-bottom:6px}.portal-home .quick-tile p{font-size:13px;color:var(--brand-text-secondary, #78716C);line-height:1.4}.portal-home .quick-tile .tile-arrow{position:absolute;right:16px;top:50%;transform:translateY(-50%);opacity:0;transition:opacity .15s ease;color:var(--brand-primary, #C2662D);font-size:18px}.portal-home .quick-tile:hover .tile-arrow{opacity:1}.portal-section .section-header{margin-bottom:24px}.portal-section .section-header h2{font-family:Sora,Montserrat,sans-serif;font-size:20px;font-weight:700;color:var(--brand-text, #1C1917)}.portal-section .section-subtitle{font-size:13px;color:var(--brand-text-secondary, #78716C);margin-top:4px}.portal-section .category-tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}.portal-section .category-tile{background:var(--brand-surface, #FFFFFF);border:1px solid var(--brand-border, #E7E5E4);border-radius:10px;padding:20px 24px;cursor:pointer;transition:all .2s ease;display:flex;align-items:flex-start;gap:16px}.portal-section .category-tile:hover{border-color:var(--brand-primary, #C2662D);box-shadow:0 4px 12px #00000014}.portal-section .category-tile.coming-soon{opacity:.6;cursor:default}.portal-section .category-tile.coming-soon:hover{border-color:var(--brand-border, #E7E5E4);box-shadow:none}.portal-section .category-tile-icon{width:44px;height:44px;background:var(--brand-accent-light, #FDF2EC);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.portal-section .category-tile h3{font-family:Sora,Montserrat,sans-serif;font-size:15px;font-weight:600;margin-bottom:4px}.portal-section .category-tile p{font-size:13px;color:var(--brand-text-secondary, #78716C);line-height:1.4}.portal-section .coming-soon-badge{display:inline-block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--brand-text-muted, #A8A29E);background:var(--brand-accent-light, #FDF2EC);padding:2px 8px;border-radius:10px;margin-top:6px}.ai-workspace{background:var(--brand-surface, #FFFFFF);border:1px solid var(--brand-border, #E7E5E4);border-radius:10px;overflow:hidden}.ai-workspace-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--brand-accent-light, #FDF2EC);border-bottom:1px solid var(--brand-border, #E7E5E4)}.ai-workspace-header h3{font-family:Sora,Montserrat,sans-serif;font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px}.ai-workspace-header .ai-badge{font-size:10px;font-weight:600;background:var(--brand-primary, #C2662D);color:#fff;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px}.ai-suggestions{display:flex;flex-wrap:wrap;gap:8px;padding:16px 20px}.ai-chip{font-size:12px;font-weight:500;padding:6px 14px;border:1px solid var(--brand-border, #E7E5E4);border-radius:20px;background:var(--brand-surface, #FFFFFF);color:var(--brand-text-secondary, #78716C);cursor:pointer;transition:all .15s ease;font-family:inherit}.ai-chip:hover{border-color:var(--brand-primary, #C2662D);color:var(--brand-primary, #C2662D);background:var(--brand-accent-light, #FDF2EC)}.ai-input-area{padding:16px 20px;display:flex;gap:10px;align-items:flex-end;border-top:1px solid var(--brand-border, #E7E5E4)}.ai-input-area textarea{flex:1;resize:none;border:1px solid var(--brand-border, #E7E5E4);border-radius:6px;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:14px;color:var(--brand-text, #1C1917);background:var(--brand-cream, #FDFBF8);outline:none;transition:border-color .15s ease;min-height:42px;max-height:120px}.ai-input-area textarea:focus{border-color:var(--brand-primary, #C2662D)}.ai-input-area textarea::placeholder{color:var(--brand-text-muted, #A8A29E)}.ai-input-area .btn-send{width:42px;height:42px;border:none;border-radius:6px;background:var(--brand-primary, #C2662D);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:background .15s ease;flex-shrink:0}.ai-input-area .btn-send:hover{background:var(--brand-primary-hover, #A8552A)}.ai-input-area .btn-send:disabled{opacity:.5;cursor:not-allowed}.ai-workspace-header{cursor:pointer;width:100%;border:none;text-align:left;font-family:inherit}.ai-workspace-chevron{font-size:14px;color:var(--brand-text-muted, #A8A29E);transition:transform .2s ease}.ai-workspace-chevron.expanded{transform:rotate(180deg)}.ai-workspace-messages{max-height:400px;overflow-y:auto;border-bottom:1px solid var(--brand-border, #E7E5E4)}.ai-msg{padding:12px 20px;border-bottom:1px solid var(--brand-border, #E7E5E4)}.ai-msg:last-child{border-bottom:none}.ai-msg-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--brand-text-muted, #A8A29E);margin-bottom:4px}.ai-msg-user .ai-msg-content{font-size:14px;color:var(--brand-text, #1C1917);line-height:1.5}.ai-msg-assistant .ai-msg-content{font-size:14px;color:var(--brand-text, #1C1917);line-height:1.6;background:var(--brand-cream, #FDFBF8);border-radius:6px;padding:12px 16px}.ai-msg-assistant .ai-msg-content p{margin-bottom:8px}.ai-msg-assistant .ai-msg-content p:last-child{margin-bottom:0}.ai-msg-widgets{margin-top:12px;display:flex;flex-direction:column;gap:12px}.ai-msg-loading{font-size:14px;color:var(--brand-text-muted, #A8A29E);display:flex;align-items:center;gap:8px;padding:8px 0}.ai-msg-loading .loading-dots{display:inline-flex;gap:3px}.ai-msg-loading .loading-dots span{width:6px;height:6px;border-radius:50%;background:var(--brand-text-muted, #A8A29E);animation:dot-bounce 1.4s ease-in-out infinite}.ai-msg-loading .loading-dots span:nth-child(2){animation-delay:.2s}.ai-msg-loading .loading-dots span:nth-child(3){animation-delay:.4s}@keyframes dot-bounce{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.ai-workspace-error{padding:8px 20px;font-size:13px;color:var(--brand-danger, #DC2626)}.portal-layout .mobile-menu-btn{display:none;position:static;background:none;border:1px solid var(--brand-border, #E7E5E4);border-radius:6px;width:40px;height:40px;font-size:20px;cursor:pointer;color:var(--brand-text, #1C1917);align-items:center;justify-content:center;flex-shrink:0}.portal-nav-overlay{display:none}@media(max-width:768px){.portal-layout .mobile-menu-btn{display:flex}.portal-nav{position:fixed;left:-280px;top:0;width:280px;min-width:0;z-index:200;transition:left .25s ease}.portal-nav.mobile-open{left:0}.portal-nav-overlay{display:block;position:fixed;inset:0;background:#0006;z-index:199}.portal-top-bar{padding:12px 16px;position:sticky;top:0;z-index:50}.portal-top-bar .top-bar-subtitle{display:none}.portal-top-bar .top-bar-title{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-layout .mobile-menu-btn{background:var(--brand-primary, #10B981);color:#fff;border:none}.portal-content{padding:16px}.portal-home .home-stats{grid-template-columns:repeat(2,1fr);gap:10px}.portal-home .stat-value{font-size:20px}.portal-home .home-quick-tiles{grid-template-columns:1fr;gap:10px}.portal-home .home-hero{padding:24px 20px;border-radius:10px;margin-bottom:20px}.portal-home .home-hero h2{font-size:20px}.portal-section .category-tiles{grid-template-columns:1fr}}
