.portal-theme{--bg:#F6F4EF;--surface:#FFFFFF;--surface2:#F0EDE6;--surface3:#E8E4DB;--border:rgba(0,0,0,0.07);--border2:rgba(0,0,0,0.13);--text:#1C1A17;--text2:#6B6459;--text3:#A09890;--accent:#5B4A3F;--accent-light:#F0EAE4;--accent2:#7A6557;--warm:#C2703A;--warm-light:#FAF0E8;--blue:#2563A8;--blue-light:#EAF0FB;--danger:#B83333;--danger-light:#FCF0F0;--font-head:var(--font-fraunces,"Fraunces",serif);--font-body:var(--font-mulish,"Mulish",sans-serif);--sidebar-w:228px;--header-h:60px;--radius:10px;--radius-lg:16px;--radius-xl:22px;--transition:0.15s ease;--shadow-card:0 1px 4px rgba(0,0,0,0.05);--shadow-card-hover:0 4px 16px rgba(0,0,0,0.08);min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.portal-theme,.portal-theme *,.portal-theme :after,.portal-theme :before{box-sizing:border-box}.portal-theme ::selection{background:rgba(91,74,63,.15);color:var(--text)}.portal-theme ::-webkit-scrollbar{width:4px}.portal-theme ::-webkit-scrollbar-track{background:transparent}.portal-theme ::-webkit-scrollbar-thumb{background:var(--surface3);border-radius:2px}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:var(--radius);font-size:13px;font-weight:600;cursor:pointer;border:none;font-family:var(--font-body);transition:all .15s;text-decoration:none}.btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent2)}.btn-secondary{background:var(--surface);color:var(--text2);border:1px solid var(--border2)}.btn-secondary:hover{background:var(--surface2)}.btn-danger{background:var(--danger-light);color:var(--danger);border:1px solid rgba(184,51,51,.2)}.btn-warn{background:var(--warm-light);color:var(--warm);border:1px solid rgba(194,112,58,.2)}.btn-sm{padding:6px 12px;font-size:12px}.btn-lg{padding:13px 26px;font-size:14px;border-radius:var(--radius-lg)}.btn-full{width:100%;justify-content:center}.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:600}.tag-dot{width:5px;height:5px;border-radius:50%;background:currentColor}.t-green{background:var(--accent-light);color:var(--accent)}.t-blue{background:var(--blue-light);color:var(--blue)}.t-warn{background:var(--warm-light);color:var(--warm)}.t-danger{background:var(--danger-light);color:var(--danger)}.t-gray{background:var(--surface2);color:var(--text2)}.auth-shell{min-height:100vh;display:flex}.auth-left{width:400px;flex-shrink:0;background:var(--accent);padding:48px 40px;display:flex;flex-direction:column;justify-content:space-between}.auth-left-logo{display:flex;align-items:center;gap:12px}.auth-left-mark{width:38px;height:38px;background:rgba(255,255,255,.15);border-radius:11px;display:flex;align-items:center;justify-content:center}.auth-left-mark svg{width:19px;height:19px;stroke:#fff;fill:none;stroke-width:2.2}.auth-left-name{font-family:var(--font-head);font-size:18px;font-weight:500;color:#fff;letter-spacing:-.2px}.auth-left-tagline{font-family:var(--font-head);font-size:32px;font-weight:300;color:rgba(255,255,255,.9);line-height:1.25;font-style:italic}.auth-left-features{display:flex;flex-direction:column;gap:10px}.alf{display:flex;align-items:center;gap:10px;font-size:13px;color:rgba(255,255,255,.75)}.alf-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.5)}.auth-right{flex:1 1;display:flex;align-items:center;justify-content:center;padding:40px}.auth-card{width:420px;max-width:100%}.auth-title{font-family:var(--font-head);font-size:26px;font-weight:400;color:var(--text);margin-bottom:6px;letter-spacing:-.3px}.auth-sub{font-size:13px;color:var(--text3);margin-bottom:28px}.oauth-btn{width:100%;padding:10px 16px;border:1px solid var(--border2);border-radius:var(--radius);background:var(--surface);font-size:13px;font-weight:500;font-family:var(--font-body);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:background .15s;color:var(--text);margin-bottom:8px}.oauth-btn:hover{background:var(--surface2)}.or-line{display:flex;align-items:center;gap:10px;margin:18px 0;font-size:12px;color:var(--text3)}.or-line:after,.or-line:before{content:"";flex:1 1;height:1px;background:var(--border2)}.fg{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.fl{font-size:11px;font-weight:600;color:var(--text2);letter-spacing:.04em;text-transform:uppercase}.fi{padding:10px 13px;border:1px solid var(--border2);border-radius:var(--radius);font-size:14px;font-family:var(--font-body);background:var(--surface);color:var(--text);outline:none;transition:border .15s;width:100%}.fi:focus{border-color:var(--accent)}.fi::placeholder{color:var(--text3)}.fs{padding:10px 13px;border:1px solid var(--border2);border-radius:var(--radius);font-size:13px;font-family:var(--font-body);background:var(--surface);color:var(--text);outline:none;width:100%}.f-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.f-hint{font-size:11px;color:var(--text3)}.checkbox-row{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--text2);margin-bottom:18px;line-height:1.5}.checkbox-row input{accent-color:var(--accent);margin-top:2px}.auth-link{font-size:12px;color:var(--text3);text-align:center;margin-top:20px}.auth-link a{color:var(--accent);text-decoration:none;font-weight:600}.forgot-link{font-size:11px;color:var(--text3);text-decoration:none;font-weight:500}.forgot-link:hover{color:var(--accent)}.portal-header{position:fixed;top:0;left:0;right:0;height:var(--header-h);background:rgba(255,255,255,.88);backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2);border-bottom:1px solid var(--border);padding:0 24px;gap:16px;z-index:200}.portal-header,.portal-logo{display:flex;align-items:center}.portal-logo{gap:10px;width:var(--sidebar-w);flex-shrink:0;text-decoration:none}.portal-logo-mark{width:34px;height:34px;background:var(--accent);border-radius:10px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(91,74,63,.15)}.portal-logo-mark svg{width:17px;height:17px;stroke:#fff;fill:none;stroke-width:2.2}.portal-logo-name{font-family:var(--font-head);font-size:15px;font-weight:500;color:var(--accent)}.hdr-right{gap:10px;margin-left:auto}.hdr-plan,.hdr-right{display:flex;align-items:center}.hdr-plan{gap:6px;padding:5px 12px;background:var(--accent-light);border-radius:20px;font-size:12px;font-weight:600;color:var(--accent)}.hdr-plan-dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.icon-btn{width:36px;height:36px;background:var(--surface2);border-radius:10px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition);position:relative}.icon-btn:hover{border-color:var(--border2);background:var(--surface3)}.icon-btn svg{width:17px;height:17px;stroke:var(--text2);fill:none;stroke-width:1.8}.notif-badge{position:absolute;top:-3px;right:-3px;width:14px;height:14px;background:var(--danger);border-radius:50%;font-size:8px;font-weight:700;color:#fff;justify-content:center}.avatar-btn,.notif-badge{display:flex;align-items:center}.avatar-btn{gap:9px;padding:5px 12px 5px 5px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:border-color .15s}.avatar-btn:hover{border-color:var(--border2)}.av{width:30px;height:30px;border-radius:8px;background:var(--accent-light);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--accent);font-family:var(--font-head)}.av,.av-name{font-size:12px}.av-name{font-weight:600}.av-sub{font-size:10px;color:var(--text3)}.portal-sidebar{position:fixed;top:var(--header-h);left:0;bottom:0;width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);padding:20px 14px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.nav-section{font-size:10px;font-weight:700;color:var(--text3);letter-spacing:.1em;text-transform:uppercase;padding:14px 10px 5px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;cursor:pointer;font-size:13px;color:var(--text2);transition:all var(--transition);border:none;background:none;width:100%;text-align:left;font-family:var(--font-body);text-decoration:none;font-weight:500}.nav-item:hover{background:var(--surface2);color:var(--text)}.nav-item.active{background:var(--accent-light);color:var(--accent);font-weight:600}.nav-item svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8;flex-shrink:0}.nav-label{flex:1 1}.nav-badge{font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px;background:var(--danger);color:#fff}.nav-badge.warm{background:var(--warm)}.sidebar-quota{margin-top:auto;padding:14px;background:var(--surface2);border-radius:var(--radius-lg);border:1px solid var(--border)}.sq-label{font-size:11px;font-weight:600;color:var(--text2);margin-bottom:6px}.sq-nums{display:flex;justify-content:space-between;font-size:12px;margin-bottom:5px}.sq-plan{font-size:11px;color:var(--text3);margin-top:5px}.portal-main{margin-left:var(--sidebar-w);margin-top:var(--header-h);padding:28px 32px;min-height:calc(100vh - var(--header-h))}.page-head{margin-bottom:26px}.breadcrumb{font-size:12px;color:var(--text3);margin-bottom:8px;display:flex;align-items:center;gap:6px}.breadcrumb a{color:var(--accent);text-decoration:none;cursor:pointer}.page-title{font-family:var(--font-head);font-size:24px;font-weight:400;color:var(--text);letter-spacing:-.4px}.page-sub{font-size:13px;color:var(--text3);margin-top:4px}.g2{grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px}.g2,.g3{display:grid}.g3{grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}.g4{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px}.card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px}.card,.card-sm{background:var(--surface)}.card-sm{border:1px solid var(--border);border-radius:var(--radius);padding:15px 17px}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-title{font-family:var(--font-head);font-size:14px;font-weight:500;color:var(--text)}.card-sub{font-size:12px;color:var(--text3)}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.stat-icon{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:10px}.stat-icon svg{width:20px;height:20px;fill:none;stroke-width:1.8}.stat-label{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.05em}.stat-val{font-family:var(--font-head);font-size:30px;font-weight:400;color:var(--text);letter-spacing:-1px;margin-top:3px}.stat-sub{font-size:12px;color:var(--text3);margin-top:3px}.stat-up{color:var(--accent)}.stat-dn{color:var(--danger)}.tbl{width:100%;border-collapse:collapse}.tbl th{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;padding:9px 13px;text-align:left;background:var(--surface2)}.tbl td,.tbl th{border-bottom:1px solid var(--border)}.tbl td{padding:11px 13px;font-size:13px;vertical-align:middle}.tbl tr:last-child td{border-bottom:none}.tbl tr:hover td{background:rgba(0,0,0,.01)}.prog{height:6px;background:var(--surface3);overflow:hidden}.prog,.prog-fill{border-radius:3px}.prog-fill{height:100%;background:var(--accent);transition:width .4s}.prog-fill.warn{background:var(--warm)}.prog-fill.danger{background:var(--danger)}.divider{height:1px;background:var(--border);margin:16px 0}.tl{display:flex;flex-direction:column}.tl-item{display:flex;gap:13px;padding-bottom:18px;position:relative}.tl-item:last-child{padding-bottom:0}.tl-dot{width:26px;height:26px;border-radius:50%;border:2px solid var(--border2);background:var(--surface);display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1}.tl-dot.done{background:var(--accent);border-color:var(--accent)}.tl-dot.active{background:var(--accent-light);border-color:var(--accent)}.tl-dot.warn{background:var(--warm-light);border-color:var(--warm)}.tl-dot.pending{background:var(--surface2);border-color:var(--border2)}.tl-dot svg{width:11px;height:11px;fill:none;stroke-width:2.5}.tl-dot.done svg{stroke:#fff}.tl-dot.active svg{stroke:var(--accent)}.tl-dot.warn svg{stroke:var(--warm)}.tl-dot.pending svg{stroke:var(--text3)}.tl-line{position:absolute;left:12px;top:26px;bottom:0;width:2px;background:var(--border)}.tl-body{flex:1 1;padding-top:3px}.tl-title{font-size:13px;font-weight:600;color:var(--text)}.tl-desc{font-size:12px;color:var(--text3);margin-top:1px}.chat-wrap{display:flex;flex-direction:column;gap:14px;padding:0 0 8px}.cm{display:flex;gap:10px}.cm.own{flex-direction:row-reverse}.cm-av{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0;font-family:var(--font-head)}.cm-bubble{padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.55;max-width:380px}.cm-bubble.bot{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.cm-bubble.mgr{background:var(--warm-light);color:var(--text);border:1px solid rgba(194,112,58,.2)}.cm-bubble.own{background:var(--accent);color:#fff}.cm-time{font-size:10px;color:var(--text3);margin-top:4px}.cm.own .cm-time{text-align:right}.device-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;display:flex;flex-direction:column;gap:12px;transition:border-color var(--transition),box-shadow var(--transition)}.device-card:hover{border-color:var(--border2);box-shadow:var(--shadow-card-hover)}.dc-top{display:flex;align-items:flex-start;gap:12px}.dc-icon{width:46px;height:46px;border-radius:13px;background:var(--surface2);display:flex;align-items:center;justify-content:center;flex-shrink:0}.dc-icon svg{width:23px;height:23px;stroke:var(--text2);fill:none;stroke-width:1.6}.dc-icon.online{background:var(--accent-light)}.dc-icon.online svg{stroke:var(--accent)}.dc-name{font-size:14px;font-weight:600}.dc-meta{font-size:11px;color:var(--text3);margin-top:2px}.dc-status{margin-left:auto}.info-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.info-row:last-child{border-bottom:none}.info-label{color:var(--text3);font-size:12px}.notif-item{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--border)}.notif-item:last-child{border-bottom:none}.notif-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.notif-icon svg{width:16px;height:16px;fill:none;stroke-width:2;stroke:currentColor}.notif-title{font-size:13px;font-weight:600}.notif-desc{font-size:12px;color:var(--text3);margin-top:2px;line-height:1.5}.notif-time{font-size:11px;color:var(--text3);margin-top:4px}.unread-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-top:4px}.faq-item{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;overflow:hidden}.faq-q{padding:13px 16px;font-size:13px;font-weight:600;cursor:pointer;display:flex;justify-content:space-between;align-items:center;background:var(--surface)}.faq-q:hover{background:var(--surface2)}.faq-q svg{width:14px;height:14px;stroke:var(--text3);fill:none;stroke-width:2;flex-shrink:0;transition:transform .2s}.faq-a{display:none;padding:0 16px 13px;font-size:13px;color:var(--text2);line-height:1.7}.faq-a,.plan-card{background:var(--surface)}.plan-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;position:relative}.plan-card.current{border:2px solid var(--accent)}.plan-badge-current{position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:var(--accent);color:#fff;font-size:10px;font-weight:700;padding:3px 11px;border-radius:10px;letter-spacing:.06em;font-family:var(--font-head)}.plan-name{font-size:16px;font-weight:500;margin-bottom:4px}.plan-name,.plan-price{font-family:var(--font-head)}.plan-price{font-size:32px;font-weight:300;letter-spacing:-1px;color:var(--text)}.plan-period{font-size:12px;color:var(--text3)}.plan-feat{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text2);padding:5px 0}.plan-feat svg{width:13px;height:13px;stroke:var(--accent);fill:none;stroke-width:2.5;flex-shrink:0}.plan-feat.no svg{stroke:var(--text3)}.plan-feat.no{color:var(--text3)}.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.fc{padding:5px 12px;border-radius:7px;font-size:12px;border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text2);transition:all .15s;font-family:var(--font-body);font-weight:500}.fc.active{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.fc:hover:not(.active){background:var(--surface2)}.tab-bar{display:flex;border-bottom:1px solid var(--border);margin-bottom:20px}.tab{padding:9px 16px;font-size:13px;color:var(--text3);cursor:pointer;transition:all .15s;font-weight:500;border:none;background:none;font-family:var(--font-body)}.tab.active{color:var(--accent);border-bottom:2px solid var(--accent)}.upload-zone{border:2px dashed var(--border2);border-radius:var(--radius-lg);padding:28px;text-align:center;transition:border-color .2s;cursor:pointer}.upload-zone:hover{border-color:var(--accent)}.upload-icon{width:44px;height:44px;background:var(--surface2);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 10px}.upload-icon svg{width:20px;height:20px;stroke:var(--text3);fill:none;stroke-width:1.8}.search-bar{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:9px 13px;margin-bottom:16px}.search-bar:focus-within{border-color:var(--accent)}.search-bar svg{width:14px;height:14px;stroke:var(--text3);fill:none;stroke-width:2;flex-shrink:0}.search-bar input{background:none;border:none;outline:none;font-size:13px;font-family:var(--font-body);color:var(--text);width:100%}.search-bar input::placeholder{color:var(--text3)}.alert{padding:13px 15px;border-radius:var(--radius);font-size:13px;display:flex;gap:10px;align-items:flex-start;margin-bottom:16px}.alert svg{width:15px;height:15px;flex-shrink:0;fill:none;stroke-width:2;margin-top:1px;stroke:currentColor}.alert-warn{background:var(--warm-light);border:1px solid rgba(194,112,58,.2);color:var(--warm)}.alert-info{background:var(--blue-light);border:1px solid rgba(37,99,168,.2);color:var(--blue)}.alert-danger{background:var(--danger-light);border:1px solid rgba(184,51,51,.2);color:var(--danger)}.file-attach{gap:10px;padding:9px 12px;background:var(--surface2);border-radius:var(--radius);margin-bottom:6px}.fa-icon,.file-attach{display:flex;align-items:center}.fa-icon{width:32px;height:32px;background:var(--surface);border-radius:8px;justify-content:center;flex-shrink:0}.fa-icon svg{width:16px;height:16px;stroke:var(--accent);fill:none;stroke-width:1.8}.fa-name{font-size:13px;font-weight:500;flex:1 1}.fa-size{font-size:11px;color:var(--text3)}.ticket-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:8px;cursor:pointer;transition:border-color var(--transition),box-shadow var(--transition)}.ticket-card:hover{border-color:var(--accent);box-shadow:var(--shadow-card)}.tc-id{font-size:11px;color:var(--text3);font-weight:600;letter-spacing:.04em}.tc-subj{font-size:14px;font-weight:600;margin:5px 0}.tc-meta{font-size:12px;color:var(--text3);display:flex;align-items:center;gap:8px}.mc-portal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;cursor:pointer;transition:border-color .2s}.mc-portal:hover{border-color:var(--accent)}.mc-icon-p{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.mc-icon-p svg{width:24px;height:24px;fill:none;stroke-width:1.7}.mc-name-p{font-family:var(--font-head);font-size:15px;font-weight:500;margin-bottom:5px}.mc-desc-p{font-size:12px;color:var(--text3);line-height:1.6;margin-bottom:10px}.mc-meta-p{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--text3)}.plan-tag{padding:2px 7px;border-radius:4px;font-size:10px;font-weight:700}.pt-free{background:var(--surface2);color:var(--text3)}.pt-pro{background:var(--accent-light);color:var(--accent)}.pt-unl{background:var(--blue-light);color:var(--blue)}@media (max-width:1200px){.g4{grid-template-columns:repeat(2,1fr)}}@media (max-width:1024px){:root{--sidebar-w:200px}.g3{grid-template-columns:repeat(2,1fr)}.portal-main{padding:24px 20px}}@media (max-width:768px){:root{--sidebar-w:0px;--header-h:56px}.portal-sidebar{transform:translateX(-100%);transition:transform .25s ease;width:228px;z-index:250}.portal-sidebar.open{transform:translateX(0)}.portal-main{margin-left:0;padding:20px 16px}.g2,.g3,.g4{grid-template-columns:1fr}.page-title{font-size:20px}.stat-val{font-size:24px}.auth-shell{flex-direction:column}.auth-left{width:100%;padding:32px 24px;min-height:auto}.auth-left-tagline{font-size:24px}.auth-right{padding:32px 20px}.auth-card{width:100%}.av-name,.av-sub,.hdr-plan{display:none}.portal-logo{width:auto}}@media (max-width:480px){.portal-main{padding:16px 12px}.card{padding:16px}.stat{padding:14px}.f-row{grid-template-columns:1fr}}.portal-theme .d-flex{display:flex!important}.portal-theme .d-none{display:none!important}.portal-theme .d-block{display:block!important}.portal-theme .d-inline{display:inline!important}.portal-theme .d-inline-flex{display:inline-flex!important}.portal-theme .d-inline-block{display:inline-block!important}.portal-theme .d-grid{display:grid!important}.portal-theme .flex-column{flex-direction:column!important}.portal-theme .flex-row{flex-direction:row!important}.portal-theme .flex-wrap{flex-wrap:wrap!important}.portal-theme .flex-nowrap{flex-wrap:nowrap!important}.portal-theme .flex-shrink-0{flex-shrink:0!important}.portal-theme .flex-grow-1{flex-grow:1!important}.portal-theme .align-items-start{align-items:flex-start!important}.portal-theme .align-items-center{align-items:center!important}.portal-theme .align-items-end{align-items:flex-end!important}.portal-theme .align-items-baseline{align-items:baseline!important}.portal-theme .align-self-center{align-self:center!important}.portal-theme .justify-content-start{justify-content:flex-start!important}.portal-theme .justify-content-center{justify-content:center!important}.portal-theme .justify-content-end{justify-content:flex-end!important}.portal-theme .justify-content-between{justify-content:space-between!important}.portal-theme .justify-content-around{justify-content:space-around!important}.portal-theme .ms-auto{margin-left:auto!important}.portal-theme .me-auto{margin-right:auto!important}.portal-theme .mt-auto{margin-top:auto!important}.portal-theme .mb-auto{margin-bottom:auto!important}.portal-theme .mx-auto{margin-left:auto!important;margin-right:auto!important}.portal-theme .gap-1{gap:4px!important}.portal-theme .gap-2{gap:8px!important}.portal-theme .gap-3{gap:12px!important}.portal-theme .gap-4{gap:16px!important}.portal-theme .gap-5{gap:24px!important}.portal-theme .w-100{width:100%!important}.portal-theme .w-75{width:75%!important}.portal-theme .w-50{width:50%!important}.portal-theme .w-25{width:25%!important}.portal-theme .h-100{height:100%!important}.portal-theme .min-vh-100{min-height:100vh!important}.portal-theme .mw-100{max-width:100%!important}.portal-theme .m-0{margin:0!important}.portal-theme .p-0{padding:0!important}.portal-theme .p-1{padding:4px!important}.portal-theme .p-2{padding:8px!important}.portal-theme .p-3{padding:12px!important}.portal-theme .p-4{padding:16px!important}.portal-theme .p-5{padding:24px!important}.portal-theme .px-1{padding-left:4px!important;padding-right:4px!important}.portal-theme .px-2{padding-left:8px!important;padding-right:8px!important}.portal-theme .px-3{padding-left:12px!important;padding-right:12px!important}.portal-theme .px-4{padding-left:16px!important;padding-right:16px!important}.portal-theme .px-5{padding-left:24px!important;padding-right:24px!important}.portal-theme .py-1{padding-top:4px!important;padding-bottom:4px!important}.portal-theme .py-2{padding-top:8px!important;padding-bottom:8px!important}.portal-theme .py-3{padding-top:12px!important;padding-bottom:12px!important}.portal-theme .py-4{padding-top:16px!important;padding-bottom:16px!important}.portal-theme .py-5{padding-top:32px!important;padding-bottom:32px!important}.portal-theme .pt-1{padding-top:4px!important}.portal-theme .pt-2{padding-top:8px!important}.portal-theme .pt-3{padding-top:12px!important}.portal-theme .pt-4{padding-top:16px!important}.portal-theme .pb-1{padding-bottom:4px!important}.portal-theme .pb-2{padding-bottom:8px!important}.portal-theme .pb-3{padding-bottom:12px!important}.portal-theme .pb-4{padding-bottom:16px!important}.portal-theme .ps-0{padding-left:0!important}.portal-theme .ps-1{padding-left:4px!important}.portal-theme .ps-2{padding-left:8px!important}.portal-theme .ps-3{padding-left:12px!important}.portal-theme .ps-4{padding-left:16px!important}.portal-theme .pe-1{padding-right:4px!important}.portal-theme .pe-2{padding-right:8px!important}.portal-theme .pe-3{padding-right:12px!important}.portal-theme .mb-0{margin-bottom:0!important}.portal-theme .mb-1{margin-bottom:4px!important}.portal-theme .mb-2{margin-bottom:8px!important}.portal-theme .mb-3{margin-bottom:12px!important}.portal-theme .mb-4{margin-bottom:16px!important}.portal-theme .mb-5{margin-bottom:32px!important}.portal-theme .mt-0{margin-top:0!important}.portal-theme .mt-1{margin-top:4px!important}.portal-theme .mt-2{margin-top:8px!important}.portal-theme .mt-3{margin-top:12px!important}.portal-theme .mt-4{margin-top:16px!important}.portal-theme .mt-5{margin-top:32px!important}.portal-theme .me-1{margin-right:4px!important}.portal-theme .me-2{margin-right:8px!important}.portal-theme .me-3{margin-right:12px!important}.portal-theme .ms-1{margin-left:4px!important}.portal-theme .ms-2{margin-left:8px!important}.portal-theme .ms-3{margin-left:12px!important}.portal-theme .my-1{margin-top:4px!important;margin-bottom:4px!important}.portal-theme .my-2{margin-top:8px!important;margin-bottom:8px!important}.portal-theme .my-3{margin-top:12px!important;margin-bottom:12px!important}.portal-theme .my-4{margin-top:16px!important;margin-bottom:16px!important}.portal-theme .my-5{margin-top:32px!important;margin-bottom:32px!important}.portal-theme .mx-1{margin-left:4px!important;margin-right:4px!important}.portal-theme .mx-2{margin-left:8px!important;margin-right:8px!important}.portal-theme .mx-3{margin-left:12px!important;margin-right:12px!important}.portal-theme .fw-bold{font-weight:700!important}.portal-theme .fw-semibold{font-weight:600!important}.portal-theme .fw-medium{font-weight:500!important}.portal-theme .fw-normal{font-weight:400!important}.portal-theme .fw-light{font-weight:300!important}.portal-theme .text-center{text-align:center!important}.portal-theme .text-end{text-align:right!important}.portal-theme .text-start{text-align:left!important}.portal-theme .text-uppercase{text-transform:uppercase!important}.portal-theme .text-lowercase{text-transform:lowercase!important}.portal-theme .text-decoration-none{text-decoration:none!important}.portal-theme .text-white{color:#fff!important}.portal-theme .text-body-secondary,.portal-theme .text-muted,.portal-theme .text-secondary{color:var(--text2)!important}.portal-theme .text-success{color:var(--accent)!important}.portal-theme .text-danger{color:var(--danger)!important}.portal-theme .text-warning{color:var(--warm)!important}.portal-theme .text-primary{color:var(--blue)!important}.portal-theme .small{font-size:12px!important}.portal-theme .fs-6{font-size:13px!important}.portal-theme .fs-5{font-size:15px!important}.portal-theme .fs-4{font-size:18px!important}.portal-theme .fs-3{font-size:22px!important}.portal-theme .h4{font-size:18px;font-weight:700}.portal-theme .h5{font-size:15px;font-weight:700}.portal-theme .h6{font-size:13px;font-weight:700}.portal-theme .list-unstyled{list-style:none;padding:0;margin:0}.portal-theme .border{border:1px solid var(--border2)!important}.portal-theme .border-0{border:none!important}.portal-theme .border-top{border-top:1px solid var(--border2)!important}.portal-theme .border-bottom{border-bottom:1px solid var(--border2)!important}.portal-theme .border-start{border-left:1px solid var(--border2)!important}.portal-theme .border-end{border-right:1px solid var(--border2)!important}.portal-theme .border-secondary{border-color:var(--border2)!important}.portal-theme .rounded{border-radius:var(--radius)!important}.portal-theme .rounded-circle{border-radius:50%!important}.portal-theme .rounded-pill{border-radius:100px!important}.portal-theme .rounded-0{border-radius:0!important}.portal-theme .shadow-sm{box-shadow:var(--shadow-card)!important}.portal-theme .position-relative{position:relative!important}.portal-theme .position-absolute{position:absolute!important}.portal-theme .overflow-hidden{overflow:hidden!important}.portal-theme .overflow-auto{overflow:auto!important}.portal-theme .bg-transparent{background:transparent!important}.portal-theme .table{width:100%;border-collapse:collapse;font-size:13px;color:var(--text)}.portal-theme .table td,.portal-theme .table th{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.portal-theme .table th{font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text3)}.portal-theme .table th,.portal-theme .table-hover tbody tr:hover{background:var(--surface2)}.portal-theme .table-sm td,.portal-theme .table-sm th{padding:6px 10px}.portal-theme .progress{height:6px;background:var(--surface3);border-radius:100px;overflow:hidden}.portal-theme .progress-bar{height:100%;background:var(--accent);border-radius:100px;transition:width .4s ease}.portal-theme .progress-bar.bg-danger{background:var(--danger)!important}.portal-theme .progress-bar.bg-warning{background:var(--warm)!important}.portal-theme .bg-danger{background:var(--danger)!important}.portal-theme .bg-warning{background:var(--warm)!important}.portal-theme .bg-success{background:var(--accent)!important}.portal-theme .badge,.portal-theme [class*=text-bg-]{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap}.portal-theme .badge.bg-success,.portal-theme .text-bg-success{background:var(--accent-light);color:var(--accent)}.portal-theme .badge.bg-danger,.portal-theme .text-bg-danger{background:var(--danger-light);color:var(--danger)}.portal-theme .badge.bg-warning,.portal-theme .text-bg-warning{background:var(--warm-light);color:var(--warm)}.portal-theme .badge.bg-secondary,.portal-theme .text-bg-secondary{background:var(--surface2);color:var(--text2)}.portal-theme .badge.bg-primary,.portal-theme .text-bg-primary{background:var(--blue-light);color:var(--blue)}.portal-theme .alert{padding:12px 16px;border-radius:var(--radius);font-size:13px;border:1px solid transparent}.portal-theme .alert-success{background:var(--accent-light);color:var(--accent);border-color:rgba(91,74,63,.15)}.portal-theme .alert-danger{background:var(--danger-light);color:var(--danger);border-color:rgba(184,51,51,.15)}.portal-theme .alert-warning{background:var(--warm-light);color:var(--warm);border-color:rgba(194,112,58,.15)}.portal-theme .alert-secondary{background:var(--surface2);color:var(--text2);border-color:var(--border2)}.portal-theme .nav{display:flex;gap:4px;list-style:none;padding:0;margin:0}.portal-theme .nav-tabs{border-bottom:1px solid var(--border)}.portal-theme .nav-link{display:block;padding:8px 14px;font-size:13px;color:var(--text2);text-decoration:none;border-radius:var(--radius) var(--radius) 0 0;border:1px solid transparent;cursor:pointer;transition:color var(--transition)}.portal-theme .nav-link:hover{color:var(--text)}.portal-theme .nav-link.active{color:var(--text);background:var(--surface);border-color:var(--border2) var(--border2) var(--surface)}.portal-theme .list-group{display:flex;flex-direction:column;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.portal-theme .list-group-item{padding:10px 14px;font-size:13px;color:var(--text);background:var(--surface);border-bottom:1px solid var(--border);text-decoration:none;transition:background var(--transition)}.portal-theme .list-group-item:last-child{border-bottom:none}.portal-theme .list-group-item:hover{background:var(--surface2)}.portal-theme .list-group-item.active{background:var(--accent-light);color:var(--accent)}.portal-theme .form-label{display:block;font-size:12px;font-weight:600;color:var(--text2);margin-bottom:5px}.portal-theme .form-control,.portal-theme .form-select{display:block;width:100%;padding:8px 12px;font-size:13px;font-family:var(--font-body);color:var(--text);background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius);outline:none;transition:border-color var(--transition);-webkit-appearance:none;-moz-appearance:none;appearance:none}.portal-theme .form-control:focus,.portal-theme .form-select:focus{border-color:var(--accent)}.portal-theme .form-control.is-invalid,.portal-theme .form-select.is-invalid{border-color:var(--danger)}.portal-theme .invalid-feedback{display:block;font-size:11px;color:var(--danger);margin-top:3px}.portal-theme .form-check{display:flex;align-items:center;gap:8px;cursor:pointer}.portal-theme .form-check-input{width:16px;height:16px;border:1.5px solid var(--border2);border-radius:4px;background:var(--surface);cursor:pointer;accent-color:var(--accent)}.portal-theme .form-check-label{font-size:13px;color:var(--text);cursor:pointer}.portal-theme .input-group{display:flex;align-items:center}.portal-theme .input-group .form-control{border-radius:0;border-right:none}.portal-theme .input-group .form-control:first-child{border-radius:var(--radius) 0 0 var(--radius)}.portal-theme .input-group .form-control:last-child{border-radius:0 var(--radius) var(--radius) 0;border-right:1px solid var(--border2)}.portal-theme .input-group-text{display:flex;align-items:center;padding:0 10px;background:var(--surface2);border:1px solid var(--border2);border-right:none;border-radius:var(--radius) 0 0 var(--radius);color:var(--text3);font-size:13px;height:36px}.portal-theme .input-group-text svg{width:14px;height:14px}.portal-theme .modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:1040;display:flex;align-items:center;justify-content:center}.portal-theme .modal-dialog{background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius-lg);width:100%;max-width:520px;overflow:hidden;box-shadow:var(--shadow-card-hover)}.portal-theme .modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.portal-theme .modal-body{padding:20px}.portal-theme .modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--border)}.portal-theme .breadcrumb{display:flex;flex-wrap:wrap;list-style:none;padding:0;margin:0;font-size:12px;color:var(--text3);gap:4px;align-items:center}.portal-theme .breadcrumb-item+.breadcrumb-item:before{content:"/";margin-right:4px;opacity:.4}.portal-theme .breadcrumb-item.active{color:var(--text2)}.portal-theme .spinner-border{display:inline-block;width:20px;height:20px;border:2px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.portal-theme .spinner-border-sm{width:14px;height:14px}.portal-theme .pagination{display:flex;list-style:none;padding:0;margin:0;gap:4px}.portal-theme .page-item .page-link{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:1px solid var(--border2);background:var(--surface2);color:var(--text2);font-size:13px;font-family:var(--font-body);cursor:pointer;transition:all var(--transition);text-decoration:none}.portal-theme .page-item.active .page-link{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.portal-theme .page-item .page-link:hover{background:var(--surface3);color:var(--text)}.portal-theme .row{display:flex;flex-wrap:wrap;margin-left:-8px;margin-right:-8px}.portal-theme .row>*{padding-left:8px;padding-right:8px;min-width:0}.portal-theme .g-0{gap:0;margin-left:0;margin-right:0}.portal-theme .g-0>*{padding-left:0;padding-right:0}.portal-theme .g-3{gap:12px}.portal-theme .g-4{gap:16px}.portal-theme .gy-3{row-gap:12px}.portal-theme .gy-4{row-gap:16px}.portal-theme .gx-3{column-gap:12px}.portal-theme .col{flex:1 1}.portal-theme .col-1{flex:0 0 8.333333%;max-width:8.333333%}.portal-theme .col-2{flex:0 0 16.666667%;max-width:16.666667%}.portal-theme .col-3{flex:0 0 25%;max-width:25%}.portal-theme .col-4{flex:0 0 33.333333%;max-width:33.333333%}.portal-theme .col-5{flex:0 0 41.666667%;max-width:41.666667%}.portal-theme .col-6{flex:0 0 50%;max-width:50%}.portal-theme .col-7{flex:0 0 58.333333%;max-width:58.333333%}.portal-theme .col-8{flex:0 0 66.666667%;max-width:66.666667%}.portal-theme .col-9{flex:0 0 75%;max-width:75%}.portal-theme .col-10{flex:0 0 83.333333%;max-width:83.333333%}.portal-theme .col-11{flex:0 0 91.666667%;max-width:91.666667%}.portal-theme .col-12{flex:0 0 100%;max-width:100%}.portal-theme .col-auto{flex:0 0 auto;width:auto}@media (min-width:768px){.portal-theme .col-md-3{flex:0 0 25%;max-width:25%}.portal-theme .col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.portal-theme .col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.portal-theme .col-md-6{flex:0 0 50%;max-width:50%}.portal-theme .col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.portal-theme .col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.portal-theme .col-md-9{flex:0 0 75%;max-width:75%}.portal-theme .col-md-12{flex:0 0 100%;max-width:100%}.portal-theme .d-md-flex{display:flex!important}.portal-theme .d-md-none{display:none!important}.portal-theme .d-md-block{display:block!important}}@media (min-width:992px){.portal-theme .col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.portal-theme .col-lg-3{flex:0 0 25%;max-width:25%}.portal-theme .col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.portal-theme .col-lg-6{flex:0 0 50%;max-width:50%}.portal-theme .col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.portal-theme .col-lg-9{flex:0 0 75%;max-width:75%}.portal-theme .d-lg-none{display:none!important}}.portal-theme .row-cols-1>*{flex:0 0 100%;max-width:100%}.portal-theme .row-cols-2>*{flex:0 0 50%;max-width:50%}.portal-theme .row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}@media (min-width:768px){.portal-theme .row-cols-md-2>*{flex:0 0 50%;max-width:50%}.portal-theme .row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}}@media (min-width:992px){.portal-theme .row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.portal-theme .row-cols-lg-4>*{flex:0 0 25%;max-width:25%}}.portal-theme .container{max-width:1200px;margin:0 auto}.portal-theme .container,.portal-theme .container-fluid{width:100%;padding:0 16px}.portal-theme .btn-outline-secondary{background:transparent;color:var(--text2);border:1px solid var(--border2)}.portal-theme .btn-outline-secondary:hover{background:var(--surface2);color:var(--text)}.portal-theme .btn-success{background:var(--accent);color:#000;border:none}.portal-theme .btn-success:hover{background:var(--accent2)}.portal-theme .btn-outline-success{background:transparent;color:var(--accent);border:1px solid var(--accent)}.portal-theme .btn-outline-success:hover{background:var(--accent-light)}.portal-theme .btn-outline-danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}.portal-theme .btn-link{background:none;border:none;color:var(--accent);padding:0;font-size:inherit;cursor:pointer;text-decoration:none;font-family:var(--font-body)}.portal-theme .btn-link:hover{text-decoration:underline}.portal-theme .btn-close{background:none;border:none;cursor:pointer;color:var(--text2);font-size:18px;padding:4px;line-height:1;font-family:var(--font-body)}.portal-theme .btn-close:hover{color:var(--text)}.portal-theme .text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}