:root{--portal-sidebar-w:260px;--portal-sidebar-bg:linear-gradient(180deg,#1e3a5f,#0f1d30);--portal-sidebar-text:hsla(0,0%,100%,.85);--portal-sidebar-hover:hsla(0,0%,100%,.12);--portal-accent:#0d6efd;--portal-accent-dark:#0b5ed7;--portal-bg:#f4f6fa;--portal-card-radius:.75rem;--portal-nav-active:#0ea5e9;--portal-mobile-nav-h:56px}.portal-body{background:var(--portal-bg);color:#1e293b;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;margin:0;min-height:100vh}.portal-shell{display:grid;grid-template-columns:var(--portal-sidebar-w) minmax(0,1fr);min-height:100vh}.portal-sidebar{background:var(--portal-sidebar-bg);bottom:0;color:var(--portal-sidebar-text);display:flex;flex-direction:column;left:0;overflow-y:auto;padding:0;position:fixed;top:0;transition:transform .25s ease;width:var(--portal-sidebar-w);z-index:1040}.portal-sidebar-hidden{display:none}.portal-brand{align-items:center;border-bottom:1px solid hsla(0,0%,100%,.08);display:flex;gap:.75rem;padding:1.25rem 1rem}.portal-brand-icon{align-items:center;background:hsla(0,0%,100%,.12);border-radius:.6rem;display:flex;font-size:1.2rem;height:38px;justify-content:center;width:38px}.portal-nav{display:flex;flex:1;flex-direction:column;padding:.75rem .75rem 1rem}.portal-nav-section{margin-bottom:.25rem}.portal-nav-group-label{color:hsla(0,0%,100%,.4);font-size:.65rem;font-weight:600;letter-spacing:.08em;margin:0;padding:.6rem .75rem .25rem;text-transform:uppercase}.portal-nav-link{align-items:center;border-radius:.5rem;color:var(--portal-sidebar-text);display:flex;font-size:.875rem;gap:.6rem;padding:.5rem .75rem;text-decoration:none;transition:background .15s,color .15s}.portal-nav-link i{font-size:1.05rem;text-align:center;width:1.2rem}.portal-nav-link:hover{background:var(--portal-sidebar-hover);color:#fff;text-decoration:none}.portal-nav-link.active{background:var(--portal-nav-active);color:#0f172a;font-weight:600}.portal-nav-section-bottom{margin-top:auto}.portal-admin-only{display:none}.portal-role-admin .portal-admin-only{display:block}.portal-sidebar-footer{border-top:1px solid hsla(0,0%,100%,.08);padding:.75rem 1rem}.portal-main{display:flex;flex-direction:column;grid-column:2;min-height:100vh;min-width:0}.portal-header{align-items:center;backdrop-filter:blur(10px);background:hsla(0,0%,100%,.92);display:flex;justify-content:space-between;padding:.85rem 1.5rem}.portal-header-actions{align-items:center;display:flex;gap:.5rem}.portal-user-badge{align-items:center;background:#f1f5f9;border-radius:2rem;display:flex;font-size:.8rem;gap:.4rem;padding:.35rem .75rem}.portal-content{flex:1}.portal-footer{background:#fff;margin-top:auto;padding:.75rem 1.5rem}.portal-toast-root{max-width:360px;position:fixed;right:1rem;top:1rem;z-index:1080}.portal-toast{animation:slideIn .25s ease;border-radius:.6rem}@keyframes slideIn{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.card{border-color:rgba(15,23,42,.06);border-radius:var(--portal-card-radius);box-shadow:0 1px 3px rgba(0,0,0,.04)}.card .card-body{padding:1.25rem}.table{--bs-table-bg:transparent;font-size:.875rem}.table th{border-bottom-width:2px;color:#64748b;font-size:.78rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.table td{vertical-align:middle}.cursor-pointer{cursor:pointer}.cursor-pointer:hover td{background:#f8fafc}.badge{font-size:.72rem;font-weight:500;letter-spacing:.02em}.portal-mobile-header{align-items:center;background:#1e3a5f;color:#fff;display:flex;justify-content:space-between;padding:.6rem 1rem;position:sticky;top:0;z-index:1050}.portal-mobile-brand{font-size:.95rem;font-weight:600}.portal-sidebar-overlay{background:rgba(0,0,0,.45);inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .25s;z-index:1039}.portal-sidebar-overlay.open{opacity:1;pointer-events:auto}.portal-mobile-nav{background:#fff;border-top:1px solid #e2e8f0;bottom:0;display:flex;height:var(--portal-mobile-nav-h);left:0;position:fixed;right:0;z-index:1030}.portal-mobile-nav-item{align-items:center;color:#94a3b8;display:flex;flex:1;flex-direction:column;font-size:.65rem;gap:.15rem;justify-content:center;text-decoration:none;transition:color .15s}.portal-mobile-nav-item i{font-size:1.15rem}.portal-mobile-nav-item.active,.portal-mobile-nav-item:hover{color:var(--portal-accent);text-decoration:none}.route-login .portal-mobile-header,.route-login .portal-mobile-nav,.route-login .portal-sidebar{display:none!important}.route-login .portal-shell{grid-template-columns:1fr}.route-login .portal-main{align-items:stretch;justify-content:center;min-height:100vh}.route-login .portal-footer,.route-login .portal-header{display:none!important}.route-login .portal-content{align-items:center;display:flex;justify-content:center;padding:2rem 1rem!important}.portal-login-wrap{margin:0 auto;max-width:520px;width:100%}.portal-login-card{width:100%}.breadcrumb{font-size:.85rem}.breadcrumb-item a{color:var(--portal-accent);text-decoration:none}.breadcrumb-item a:hover{text-decoration:underline}.list-group-item-action{border:1px solid rgba(15,23,42,.06);border-radius:var(--portal-card-radius)!important;margin-bottom:.5rem}.list-group-item-action:hover{background:#f8fafc}.form-label{color:#475569;font-size:.82rem;font-weight:500}.form-control:focus,.form-select:focus{border-color:var(--portal-accent);box-shadow:0 0 0 .2rem rgba(13,110,253,.15)}@media (max-width:991.98px){.portal-shell{grid-template-columns:1fr}.portal-sidebar{transform:translateX(-100%);width:280px}.portal-sidebar.open{transform:translateX(0)}.portal-main{grid-column:1;padding-bottom:var(--portal-mobile-nav-h)}}@media (max-width:575.98px){.portal-toast-root{left:.5rem;max-width:none;right:.5rem}.portal-content{padding-left:.75rem!important;padding-right:.75rem!important}}.portal-dashboard-grid{align-items:start;display:grid;gap:1rem;grid-template-columns:260px minmax(0,1fr) 280px}.portal-dash-center,.portal-dash-left,.portal-dash-right{min-width:0}.portal-avatar-lg{align-items:center;background:#e2e8f0;border-radius:50%;color:#64748b;display:flex;font-size:2rem;height:64px;justify-content:center;width:64px}@media (max-width:1199.98px){.portal-dashboard-grid{grid-template-columns:1fr 1fr}.portal-dash-left{grid-column:1/-1}.portal-dash-left .card{max-width:none}.portal-dash-left .card:first-child{display:grid;grid-template-columns:auto 1fr}.portal-dash-left .card:first-child .text-center{align-items:center;display:flex;gap:1rem;text-align:left!important}.portal-dash-left .card:first-child .portal-avatar-lg{font-size:1.5rem;height:48px;margin:0!important;width:48px}.portal-dash-left .card:first-child hr{display:none}}@media (max-width:767.98px){.portal-dashboard-grid{grid-template-columns:1fr}}.portal-dashboard-v2{align-items:stretch;display:grid;gap:1rem;grid-template-columns:repeat(12,minmax(0,1fr))}.portal-card-order{grid-column:span 12}.portal-card-payments,.portal-card-profile,.portal-card-resources{grid-column:span 4}.portal-card-ai{grid-column:span 12}.portal-kpi-chip{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.6rem;display:flex;flex-direction:column;gap:.2rem;padding:.65rem .75rem}.portal-kpi-chip span{font-size:.72rem;line-height:1.2}.portal-kpi-chip strong{font-size:.9rem;line-height:1.25}.portal-payment-line{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.6rem;display:flex;font-size:.82rem;gap:.75rem;justify-content:space-between;padding:.65rem .75rem}.portal-payment-line strong{font-size:.84rem;text-align:right}.portal-card-resources .list-group-item{border:0;border-bottom:1px solid #e2e8f0}.portal-card-resources .list-group-item:last-child{border-bottom:0}.portal-spec-image-wrap{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;display:flex;justify-content:center;min-height:220px;overflow:hidden}.portal-spec-image{height:220px;object-fit:cover;width:100%}.portal-spec-row{background:#fff;border:1px solid #e2e8f0;border-radius:.6rem;display:flex;font-size:.82rem;gap:1rem;justify-content:space-between;padding:.5rem .65rem}.portal-spec-row strong{font-weight:600;text-align:right}.portal-inline-modal{align-items:center;background:rgba(2,6,23,.55);display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:1200}.portal-inline-modal-dialog{width:min(560px,100%)}@media (max-width:1199.98px){.portal-card-payments,.portal-card-profile,.portal-card-resources{grid-column:span 6}.portal-card-ai{grid-column:span 12}}@media (max-width:767.98px){.portal-card-ai,.portal-card-payments,.portal-card-profile,.portal-card-resources{grid-column:span 12}}.ai-chat-card{display:flex;flex-direction:column;height:calc(100vh - 220px);max-height:700px;min-height:480px}.ai-chat-card .card-header{flex-shrink:0}.ai-chat-messages{background:#f8fafc;display:flex;flex:1;flex-direction:column;gap:.75rem;overflow-y:auto;padding:1rem}.ai-msg{animation:fadeInMsg .3s ease;display:flex;gap:.5rem;max-width:85%}@keyframes fadeInMsg{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ai-msg-bot{align-self:flex-start}.ai-msg-user{align-self:flex-end;flex-direction:row-reverse}.ai-msg-avatar{align-items:center;background:linear-gradient(135deg,#0ea5e9,#6366f1);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.85rem;height:32px;justify-content:center;width:32px}.ai-msg-content{background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;font-size:.875rem;line-height:1.5;padding:.6rem .9rem}.ai-msg-user .ai-msg-content{background:var(--portal-accent);border-color:var(--portal-accent);color:#fff}.ai-msg-user .ai-msg-content a{color:#fff;text-decoration:underline}.ai-agent-avatar{align-items:center;background:linear-gradient(135deg,#0ea5e9,#6366f1);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:1.1rem;height:40px;justify-content:center;width:40px}.ai-quick-action:hover{transform:translateX(2px);transition:transform .15s}@media (max-width:575.98px){.ai-chat-card{height:calc(100vh - 180px);min-height:300px}}