.app{background:var(--color-portal-bg);flex-direction:row;min-height:100vh;display:flex}.app--sidebar{flex-direction:row}.app--topnav{flex-direction:column}.sidebar,.sidebar-overlay{display:none}.portal-navbar{background:var(--color-portal-navbar);align-items:stretch;gap:var(--space-md);width:280px;min-width:280px;height:100vh;padding:var(--space-lg);z-index:100;flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto;box-shadow:4px 0 20px #0000002e}.portal-navbar--sidebar{align-items:stretch;gap:var(--space-md);width:280px;min-width:280px;height:100vh;padding:var(--space-lg);flex-direction:column;overflow-y:auto;box-shadow:4px 0 20px #0000002e}.portal-navbar--top{align-items:center;gap:var(--space-sm);width:100%;min-width:0;height:auto;padding:var(--space-md) var(--space-lg);flex-direction:row;position:sticky;top:0;overflow:visible;box-shadow:0 2px 12px #00000026}.portal-navbar__brand{align-items:center;gap:var(--space-xs);font-weight:700;font-size:var(--font-lg);padding-bottom:var(--space-sm);border-bottom:1px solid #ffffff1f;flex-shrink:0;text-decoration:none;display:flex}.portal-navbar__brand-policy{color:#fff;font-style:italic}.portal-navbar__brand-hub{color:var(--color-portal-primary);font-style:italic}.portal-navbar__top-main{justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;width:100%;display:flex}.portal-navbar__section{gap:var(--space-xs);flex-direction:column;display:flex}.portal-navbar__section-title{color:#ffffff8c;letter-spacing:.08em;text-transform:uppercase;padding:var(--space-xs) var(--space-sm);font-size:11px;font-weight:700}.portal-navbar__nav{gap:var(--space-xs);flex-direction:column;display:flex}.portal-navbar__nav--top{align-items:center;gap:var(--space-xs);flex-flow:wrap;flex:1;min-width:320px}.portal-navbar__link{color:#ffffffb3;font-size:var(--font-sm);padding:var(--space-sm) var(--space-sm);border-radius:var(--radius-md);transition:color var(--transition-fast), background var(--transition-fast);align-items:center;gap:var(--space-sm);font-weight:500;text-decoration:none;display:flex}.portal-navbar__link svg{width:16px;height:16px}.portal-navbar--top .portal-navbar__link{padding:var(--space-xs) var(--space-sm)}.portal-navbar__link:hover{color:#fff;background:#ffffff1a}.portal-navbar__link--active{color:var(--color-portal-primary);background:#00bcd41a}.portal-navbar__actions{gap:var(--space-xs);padding-top:var(--space-sm);border-top:1px solid #ffffff1f;flex-direction:column;margin-top:auto;display:flex}.portal-navbar__top-actions{justify-content:flex-end;align-items:center;gap:var(--space-xs);flex-wrap:wrap;margin-left:auto;display:flex}.navbar-compliance{align-items:center;gap:var(--space-sm);border-radius:var(--radius-full);background:#ffffff14;padding:4px 12px 4px 4px;display:flex;position:relative}.navbar-compliance__ring{flex-shrink:0;width:36px;height:36px}.navbar-compliance__pct{text-align:center;color:#fff;pointer-events:none;width:36px;font-size:9px;font-weight:800;position:absolute;left:4px}.navbar-compliance__detail{flex-direction:column;line-height:1.2;display:flex}.navbar-compliance__label{color:#ffffffe6;font-size:11px;font-weight:700}.navbar-compliance__breakdown{color:#ffffff80;white-space:nowrap;font-size:10px}.portal-navbar--top .navbar-compliance{padding-right:8px}.portal-navbar__bell{color:#ffffffd1;cursor:pointer;transition:color var(--transition-fast), background var(--transition-fast);border-radius:var(--radius-md);background:#ffffff14;border:none;padding:8px;position:relative}.portal-navbar__bell:hover{color:#fff;background:#ffffff24}.portal-navbar__bell svg{width:22px;height:22px}.portal-navbar__bell-badge{background:var(--color-danger);color:#fff;border-radius:var(--radius-full);justify-content:center;align-items:center;min-width:18px;height:18px;font-size:10px;font-weight:700;line-height:1;display:flex;position:absolute;top:-2px;right:-4px}.portal-navbar__action{align-items:center;gap:var(--space-sm);border-radius:var(--radius-md);color:#ffffffd9;width:100%;font-size:var(--font-sm);padding:var(--space-sm);text-align:left;cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);background:#ffffff0f;border:1px solid #ffffff24;display:flex}.portal-navbar__action:hover{background:#ffffff1f;border-color:#ffffff38}.portal-navbar__action svg{width:16px;height:16px}.portal-navbar__action--danger{color:#ffb4b4}.portal-navbar--top .portal-navbar__action{white-space:nowrap;width:auto}.portal-navbar__avatar{border-radius:var(--radius-full);background:var(--color-portal-primary);color:#fff;width:34px;height:34px;font-weight:700;font-size:var(--font-sm);cursor:pointer;border:2px solid var(--color-portal-primary-light);flex-shrink:0;justify-content:center;align-items:center;display:flex}.portal-navbar__avatar img{border-radius:var(--radius-full);object-fit:cover;width:100%;height:100%}.portal-navbar__profile-wrap{position:relative}.portal-navbar__profile-btn{align-items:center;gap:var(--space-sm);border-radius:var(--radius-md);padding:var(--space-sm);color:inherit;cursor:pointer;text-align:left;background:#0000002e;border:1px solid #ffffff1a;width:100%;display:flex}.portal-navbar__profile-btn:hover{background:#0000003d;border-color:#ffffff38}.portal-navbar__user-name{color:#fff;font-weight:600;font-size:var(--font-sm)}.portal-navbar__user-meta{color:#ffffffa6;font-size:var(--font-xs)}.portal-navbar__profile-dropdown{top:calc(100% + var(--space-xs));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:260px;padding:var(--space-sm);z-index:250;display:none;position:absolute;right:0}.portal-navbar__profile-dropdown.open{display:block}.portal-navbar__dropdown-item{width:100%;color:var(--color-text);align-items:center;gap:var(--space-sm);border-radius:var(--radius-sm);padding:var(--space-sm);font-size:var(--font-sm);cursor:pointer;background:0 0;border:none;text-decoration:none;display:flex}.portal-navbar__dropdown-item:hover{background:var(--color-bg)}.portal-navbar__dropdown-item svg{width:16px;height:16px}.portal-navbar__dropdown-item--danger{color:var(--color-danger)}.portal-navbar__dropdown-divider{background:var(--color-border);height:1px;margin:var(--space-xs) 0}.portal-navbar__switcher-label{color:var(--color-text-muted);font-size:var(--font-xs);margin:var(--space-xs) 0;font-weight:700;display:block}.portal-navbar__switcher-select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);font-size:var(--font-sm);padding:8px}.portal-navbar--top .portal-navbar__profile-btn{width:auto}.portal-navbar--top .portal-navbar__brand{border-bottom:none;padding-bottom:0}.portal-navbar--top .portal-navbar__section,.portal-navbar--top .portal-navbar__actions,.portal-navbar--top .portal-navbar__section-title{display:none}.modal-backdrop.open{display:flex}.main{min-height:calc(100vh - var(--navbar-height));flex-direction:column;flex:1;margin-left:0;display:flex}.main--sidebar{min-height:100vh}.main--topnav{min-height:calc(100vh - var(--navbar-height))}.app--admin{flex-direction:column}.app__body{flex-direction:row;flex:1;min-height:0;display:flex}.admin-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);width:240px;min-width:240px;padding:var(--space-lg) var(--space-md);gap:var(--space-xs);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.admin-sidebar__title{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);padding:var(--space-xs) var(--space-sm);margin-bottom:var(--space-xs);font-size:11px;font-weight:700}.admin-sidebar__nav{flex-direction:column;gap:2px;display:flex}.admin-sidebar__link{align-items:center;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-sm);white-space:nowrap;transition:background var(--transition-fast), color var(--transition-fast);font-weight:500;text-decoration:none;display:flex;overflow:hidden}.admin-sidebar__link svg{width:16px;height:16px;color:var(--color-text-muted);flex-shrink:0}.admin-sidebar__link:hover{background:var(--color-bg);color:var(--color-primary)}.admin-sidebar__link:hover svg{color:var(--color-primary)}.admin-sidebar__link--active{background:var(--color-primary-bg);color:var(--color-primary);font-weight:600}.admin-sidebar__link--active svg{color:var(--color-primary)}.admin-sidebar__badge{color:#fff;text-align:center;background:#f97316;border-radius:9px;flex-shrink:0;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:10px;font-weight:700;line-height:18px}.header{display:none}.content{padding:var(--space-xl);max-width:var(--max-content-width);flex:1;width:100%;margin:0 auto}.sidebar-overlay.active{display:block}.portal-navbar__notif-wrap{display:inline-flex;position:relative}.portal-navbar--sidebar .portal-navbar__notif-wrap{width:100%}.portal-navbar--sidebar .portal-navbar__bell{justify-content:center;width:100%;display:inline-flex}.portal-navbar__notif-dropdown{top:calc(100% + var(--space-sm));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:200;width:min(380px,100vw - 32px);display:none;position:absolute;right:0;overflow:hidden}.portal-navbar--sidebar .portal-navbar__notif-dropdown{left:0;right:auto}.portal-navbar__notif-dropdown.open{display:block}.notif-dropdown__header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.notif-dropdown__title{font-size:var(--font-md);color:var(--color-text);font-weight:700}.notif-dropdown__body{max-height:360px;overflow-y:auto}.notif-dropdown__item{align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);color:var(--color-text);transition:background var(--transition-fast);border-bottom:1px solid var(--color-border);text-decoration:none;display:flex}.notif-dropdown__item:last-child{border-bottom:none}.notif-dropdown__item:hover{background:var(--color-bg)}.notif-dropdown__item--unread{background:var(--color-primary-bg)}.notif-dropdown__item--unread:hover{background:#dbeafe}.notif-dropdown__item-icon{border-radius:var(--radius-full);justify-content:center;align-items:center;width:32px;min-width:32px;height:32px;margin-top:2px;display:flex}.notif-dropdown__item-icon--warning{background:var(--color-warning-bg);color:var(--color-warning)}.notif-dropdown__item-icon--danger{background:var(--color-danger-bg);color:var(--color-danger)}.notif-dropdown__item-icon--info{background:var(--color-info-bg);color:var(--color-info)}.notif-dropdown__item-icon--neutral{background:var(--color-bg);color:var(--color-text-muted)}.notif-dropdown__item-content{flex:1;min-width:0}.notif-dropdown__item-title{font-size:var(--font-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:1.3;overflow:hidden}.notif-dropdown__item-desc{font-size:var(--font-xs);color:var(--color-text-muted);margin-top:2px}.notif-dropdown__empty{padding:var(--space-xl);text-align:center;color:var(--color-text-muted);font-size:var(--font-sm)}.notif-dropdown__footer{padding:var(--space-sm) var(--space-lg);text-align:center;font-size:var(--font-sm);color:var(--color-primary);border-top:1px solid var(--color-border);transition:background var(--transition-fast);font-weight:600;text-decoration:none;display:block}.notif-dropdown__footer:hover{background:var(--color-primary-bg)}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:16px}body{min-height:100vh;line-height:1.6;font-family:var(--font-family);color:var(--color-text);background-color:var(--color-bg)}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:var(--space-sm) var(--space-md)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2}
@media (max-width:575.98px){.app,.app__body{flex-direction:column}.admin-sidebar{border-right:none;border-bottom:1px solid var(--color-border);width:100%;min-width:0;padding:var(--space-md)}.admin-sidebar__nav{gap:var(--space-xs);flex-flow:wrap}.portal-navbar{width:100%;min-width:100%;height:auto;max-height:none;position:static}.main{min-height:0}.content{padding:var(--space-md)}.grid--2,.grid--3,.grid--4,.policy-card-grid{grid-template-columns:1fr}.form-row{flex-direction:column}.filter-bar,.portal-filters{flex-direction:column;align-items:stretch}.hero-banner{padding:var(--space-xl) var(--space-md)}.hero-banner__title{font-size:var(--font-xl)}.portal-navbar--top{padding:var(--space-sm) var(--space-md)}.portal-navbar--top .portal-navbar__top-main{align-items:stretch;gap:var(--space-sm);flex-direction:column}.portal-navbar--top .portal-navbar__nav--top{flex-wrap:nowrap;min-width:0;padding-bottom:2px;overflow-x:auto}.portal-navbar--top .portal-navbar__top-actions{justify-content:stretch;width:100%;margin-left:0}.portal-navbar--top .navbar-compliance{justify-content:center;width:100%}.portal-navbar--top .navbar-compliance__detail{display:none}.portal-navbar--top .portal-navbar__notif-wrap,.portal-navbar--top .portal-navbar__profile-wrap{width:100%}.portal-navbar--top .portal-navbar__bell,.portal-navbar--top .portal-navbar__profile-btn{justify-content:center;width:100%}.portal-navbar--top .portal-navbar__notif-dropdown,.portal-navbar--top .portal-navbar__profile-dropdown{width:100%;left:auto;right:0}}@media (min-width:576px) and (max-width:767.98px){.app,.app__body{flex-direction:column}.admin-sidebar{border-right:none;border-bottom:1px solid var(--color-border);width:100%;min-width:0}.admin-sidebar__nav{flex-flow:wrap}.portal-navbar{width:100%;min-width:100%;height:auto;max-height:none;position:static}.main{min-height:0}.portal-navbar--top .portal-navbar__nav--top{min-width:0}.portal-navbar--top .navbar-compliance__detail{display:none}.portal-navbar--top .portal-navbar__top-actions{width:100%;margin-left:0}.grid--3,.grid--4,.policy-card-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:768px) and (max-width:1023.98px){.portal-navbar--sidebar{width:240px;min-width:240px}.admin-sidebar{width:180px;min-width:180px}.grid--4,.policy-card-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.policy-card-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width:1200px){.content{padding:var(--space-xl) var(--space-2xl)}}@media print{.sidebar,.header,.sidebar-overlay,.portal-navbar,.hero-banner,.toast-container,.menu-toggle,.btn,.filter-bar,.portal-filters,.tabs,.portal-tabs{display:none!important}.main{margin-left:0}.content{max-width:100%;padding:0}.certificate{page-break-inside:avoid;border:2px solid #000}}
@media (max-width:575.98px){.portal-navbar--top .portal-navbar__nav--top{gap:var(--space-xs);flex-wrap:wrap;min-width:0;overflow-x:visible}.portal-navbar--top .portal-navbar__top-actions{justify-content:flex-end;gap:var(--space-xs);flex-wrap:nowrap;width:auto}.portal-navbar--top .navbar-compliance{justify-content:flex-start;width:auto}.portal-navbar--top .navbar-compliance__detail{display:flex}.portal-navbar--top .portal-navbar__notif-wrap,.portal-navbar--top .portal-navbar__profile-wrap{width:auto}.portal-navbar--top .portal-navbar__bell,.portal-navbar--top .portal-navbar__profile-btn{justify-content:flex-start;width:auto}.portal-navbar--top .portal-navbar__notif-dropdown{right:calc(-3.5 * var(--space-md));width:min(380px,100vw - 32px);left:auto}.portal-navbar--top .portal-navbar__profile-dropdown{width:min(300px,100vw - 32px);left:auto;right:0}.portal-navbar__profile-btn>div:last-child{display:none}}@media (min-width:576px) and (max-width:767.98px){.portal-navbar--top .portal-navbar__nav--top{flex-wrap:wrap;min-width:0}.portal-navbar--top .portal-navbar__top-actions{gap:var(--space-xs);flex-wrap:nowrap;width:auto}.portal-navbar__profile-btn>div:last-child{display:none}}
.notif-dropdown__empty{text-align:center;color:var(--text-muted,#6b7280);padding:1.5rem 1rem;font-size:.875rem}
.portal-navbar__avatar,.user-avatar{overflow:hidden}.profile-form-card input[type=file]::file-selector-button{color:#000;cursor:pointer;background-color:#f3f4f6;border:1px solid #777;border-radius:3px;padding:0 6px;font-family:Arial,sans-serif;font-size:14px;font-weight:400}.profile-form-card input[type=file]::file-selector-button:hover{background-color:#e5e7eb}.form-hint--locked{color:var(--color-text-muted);font-size:var(--font-xs);align-items:center;gap:4px;margin-top:6px;font-style:italic;display:flex}.form-hint--locked svg{flex-shrink:0;width:12px;height:12px}
:root{--color-primary:#1a56db;--color-primary-light:#3b82f6;--color-primary-dark:#1e40af;--color-primary-bg:#eff6ff;--color-success:#059669;--color-success-bg:#ecfdf5;--color-warning:#d97706;--color-warning-bg:#fffbeb;--color-danger:#dc2626;--color-danger-bg:#fef2f2;--color-info:#0891b2;--color-info-bg:#ecfeff;--color-text:#1f2937;--color-text-muted:#6b7280;--color-bg:#f9fafb;--color-surface:#fff;--color-border:#e5e7eb;--color-border-dark:#d1d5db;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"Fira Code", "Consolas", monospace;--font-xs:.75rem;--font-sm:.875rem;--font-md:1rem;--font-lg:1.125rem;--font-xl:1.25rem;--font-2xl:1.5rem;--font-3xl:1.875rem;--font-4xl:2.25rem;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--sidebar-width:260px;--header-height:64px;--max-content-width:1200px;--transition-fast:.15s ease;--transition-normal:.25s ease;--color-portal-primary:#00bcd4;--color-portal-primary-dark:#00838f;--color-portal-primary-light:#b2ebf2;--color-portal-accent:#00e5ff;--color-portal-bg:#e8eef5;--color-portal-navbar:#263238;--color-portal-hero-start:#00838fd9;--color-portal-hero-end:#00bcd4b3;--navbar-height:56px}
