:root{--portal-primary:#0071e3;--portal-primary-hover:#0064cc;--portal-primary-subtle:rgba(0,113,227,.08);--portal-primary-border:rgba(0,113,227,.25);--portal-secondary:#f5f5f7;--portal-font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--portal-radius:12px;--portal-radius-sm:8px;--portal-sidebar-width:260px;--portal-sidebar-collapsed:0px;--portal-header-height:64px;--portal-bg:#f5f5f7;--portal-surface:#fff;--portal-surface-hover:#fafafa;--portal-border:rgba(0,0,0,.08);--portal-border-strong:rgba(0,0,0,.14);--portal-text:#1d1d1f;--portal-text-secondary:#6e6e73;--portal-text-tertiary:#999;--portal-shadow-sm:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);--portal-shadow:0 4px 16px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.04);--portal-shadow-lg:0 8px 32px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.06)}.portal-root{font-family:var(--portal-font);background-color:var(--portal-bg);color:var(--portal-text);min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.portal-shell{display:flex;flex-direction:column;min-height:100dvh}.portal-body{display:flex;flex:1;overflow:hidden;height:calc(100dvh - var(--portal-header-height));position:relative}.portal-header{height:var(--portal-header-height);background:var(--portal-surface);border-bottom:1px solid var(--portal-border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:50;flex-shrink:0;box-shadow:0 1px 0 var(--portal-border)}.portal-header-left{display:flex;align-items:center;gap:12px}.portal-header-right{display:flex;align-items:center;gap:8px}.portal-logo{height:32px;width:auto;object-fit:contain}.portal-logo-text{font-size:17px;font-weight:600;color:var(--portal-text);letter-spacing:-.3px}.portal-sidebar{width:var(--portal-sidebar-width);flex-shrink:0;background:var(--portal-surface);border-right:1px solid var(--portal-border);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding:12px 0;position:relative}.portal-sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 10px;flex:1}.portal-nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--portal-radius-sm);font-size:14px;font-weight:450;color:var(--portal-text-secondary);cursor:pointer;transition:background .15s ease,color .15s ease;text-decoration:none;user-select:none;white-space:nowrap}.portal-nav-item:hover{background:var(--portal-secondary);color:var(--portal-text)}.portal-nav-item.active{background:var(--portal-primary-subtle);color:var(--portal-primary);font-weight:500}.portal-nav-icon{width:18px;height:18px;flex-shrink:0}.portal-sidebar-bottom{padding:10px;border-top:1px solid var(--portal-border);margin-top:auto}.portal-content{flex:1;overflow-y:auto;padding:32px;min-width:0}.portal-card{background:var(--portal-surface);border-radius:var(--portal-radius);border:1px solid var(--portal-border);box-shadow:var(--portal-shadow-sm);padding:24px}.portal-card-sm{padding:16px}.portal-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--portal-primary);color:#fff;font-size:14px;font-weight:500;padding:9px 18px;border-radius:var(--portal-radius-sm);cursor:pointer;border:none;transition:background .15s ease,opacity .15s ease;text-decoration:none;white-space:nowrap}.portal-btn-primary:hover{background:var(--portal-primary-hover)}.portal-btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:transparent;color:var(--portal-text-secondary);font-size:14px;font-weight:450;padding:9px 12px;border-radius:var(--portal-radius-sm);cursor:pointer;border:none;transition:background .15s ease,color .15s ease;text-decoration:none;white-space:nowrap}.portal-btn-ghost:hover{background:var(--portal-secondary);color:var(--portal-text)}.portal-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--portal-radius-sm);cursor:pointer;border:none;background:transparent;color:var(--portal-text-secondary);transition:background .15s ease,color .15s ease;position:relative}.portal-icon-btn:hover{background:var(--portal-secondary);color:var(--portal-text)}.portal-badge{position:absolute;top:4px;right:4px;min-width:16px;height:16px;background:#ff3b30;color:#fff;font-size:10px;font-weight:700;border-radius:99px;display:flex;align-items:center;justify-content:center;padding:0 3px;line-height:1;pointer-events:none}.portal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:40;backdrop-filter:blur(2px)}.portal-sidebar-drawer{position:fixed;top:0;left:0;bottom:0;width:var(--portal-sidebar-width);background:var(--portal-surface);z-index:50;display:flex;flex-direction:column;overflow-y:auto;padding:12px 0;box-shadow:var(--portal-shadow-lg)}@media (max-width:767px){.portal-sidebar{display:none}.portal-content{padding:20px 16px}.portal-header{padding:0 16px}}@media (min-width:768px){.portal-hamburger{display:none!important}}@keyframes portal-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.portal-page-fade{animation:portal-fade-in .25s ease both}