.portal-body{background-color:var(--color-neutral-100);min-height:100vh;display:flex;flex-direction:column}.portal-main{flex:1;padding:var(--spacing-lg) var(--spacing-md);max-width:1200px;width:100%;margin:0 auto}.portal-navbar{background:linear-gradient(135deg,var(--color-primary-dark) 0%,var(--color-primary) 100%);padding:var(--spacing-sm) var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-md);position:sticky;top:0;z-index:100}.portal-navbar-logo{display:flex;align-items:center;gap:var(--spacing-sm);text-decoration:none;color:var(--color-white)}.portal-navbar-logo img{width:40px;height:40px;border-radius:var(--radius-sm)}.portal-navbar-logo span{font-family:var(--font-heading);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.portal-navbar-links{display:flex;align-items:center;gap:var(--spacing-xs);list-style:none;margin:0;padding:0}.portal-navbar-links a,.portal-navbar-links button{color:#ffffffd9;text-decoration:none;font-size:var(--font-size-sm);padding:.4rem .75rem;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:none;border:none;cursor:pointer;font-family:var(--font-body);position:relative}.portal-navbar-links a:hover,.portal-navbar-links button:hover{color:var(--color-white);background:#ffffff1f}.portal-navbar-links a.active{color:var(--color-white);background:#ffffff26}.portal-nav-badge{background:var(--color-accent);color:var(--color-white);font-size:.65rem;font-weight:var(--font-weight-bold);padding:.1rem .4rem;border-radius:999px;min-width:1.1rem;text-align:center;position:absolute;top:-2px;right:-4px}.portal-navbar-right{display:flex;align-items:center;gap:var(--spacing-md)}.portal-navbar-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.portal-navbar-identity{display:inline-flex;align-items:center;text-decoration:none;border-radius:999px;transition:box-shadow var(--transition-fast)}.portal-navbar-identity:hover,.portal-navbar-identity:focus-visible{outline:none;box-shadow:0 0 0 2px #ffffff80}.portal-navbar-avatar{width:2rem;height:2rem;font-size:.7rem;background:var(--color-accent);color:var(--color-primary-dark)}.portal-bell-mount{position:relative;display:flex;align-items:center}.portal-nav-toggle{display:none;background:none;border:none;color:var(--color-white);font-size:1.5rem;cursor:pointer;padding:.25rem}.portal-bell-wrapper{position:relative}.portal-bell-btn{background:none;border:none;color:#ffffffd9;cursor:pointer;padding:.45rem;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;position:relative;transition:all var(--transition-fast)}.portal-bell-btn:hover,.portal-bell-btn[aria-expanded=true]{background:#ffffff1f;color:var(--color-white)}.portal-bell-badge{position:absolute;top:2px;right:2px;background:var(--color-accent);color:var(--color-white);font-size:.6rem;font-weight:var(--font-weight-bold);padding:.05rem .3rem;border-radius:999px;min-width:1rem;text-align:center;line-height:1.2;border:2px solid var(--color-primary-dark)}.portal-bell-dropdown{position:absolute;top:calc(100% + var(--spacing-xs));right:0;width:22rem;max-width:calc(100vw - 2rem);background:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);border:1px solid var(--color-neutral-200);z-index:200;overflow:hidden;animation:portal-bell-fade .15s ease-out}@keyframes portal-bell-fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.portal-bell-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-neutral-200);font-family:var(--font-heading);font-weight:var(--font-weight-semibold);color:var(--color-primary-dark)}.portal-bell-mark-all{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-xs);font-family:var(--font-body);font-weight:var(--font-weight-medium);padding:.25rem .5rem;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.portal-bell-mark-all:hover{background:var(--color-neutral-100)}.portal-bell-list{max-height:24rem;overflow-y:auto}.portal-bell-empty{padding:var(--spacing-lg);text-align:center;color:var(--color-neutral-600);font-size:var(--font-size-sm)}.portal-bell-item{display:block;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-neutral-100);text-decoration:none;color:var(--color-neutral-900);cursor:pointer;transition:background var(--transition-fast)}.portal-bell-item:last-child{border-bottom:none}.portal-bell-item:hover{background:var(--color-neutral-100)}.portal-bell-item--unread{background:#2e5c8a0d;border-left:3px solid var(--color-accent)}.portal-bell-item--unread:hover{background:#2e5c8a1a}.portal-bell-item-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary-dark);margin-bottom:.15rem}.portal-bell-item-body{font-size:var(--font-size-xs);color:var(--color-neutral-700);margin-bottom:.25rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.portal-bell-item-time{font-size:.7rem;color:var(--color-neutral-500)}.portal-footer{background:var(--color-primary-dark);color:#fff9;text-align:center;padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-xs)}.portal-footer a{color:#fff9;text-decoration:none}.portal-footer a:hover{color:var(--color-white)}.portal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;color:var(--color-neutral-600);gap:var(--spacing-sm)}.portal-spinner{width:2rem;height:2rem;border:3px solid var(--color-neutral-200);border-top-color:var(--color-primary);border-radius:50%;animation:portal-spin .7s linear infinite}@keyframes portal-spin{to{transform:rotate(360deg)}}.portal-empty{text-align:center;padding:var(--spacing-xl) var(--spacing-lg);color:var(--color-neutral-600)}.portal-empty p{margin-bottom:var(--spacing-sm)}.auth-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-primary-dark) 0%,var(--color-primary) 100%);padding:var(--spacing-lg)}.auth-card{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--spacing-xl);width:100%;max-width:420px}.auth-header{text-align:center;margin-bottom:var(--spacing-lg)}.auth-header h1{font-family:var(--font-heading);font-size:var(--font-size-2xl);color:var(--color-primary-dark);margin-bottom:var(--spacing-xs)}.auth-header .auth-divider{width:3rem;height:3px;background:var(--color-accent);margin:var(--spacing-xs) auto;border-radius:2px}.auth-header p{color:var(--color-neutral-600);font-size:var(--font-size-sm)}.auth-error{background:var(--color-error-light);color:var(--color-error);padding:.75rem var(--spacing-sm);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md);text-align:center}.auth-form-group{margin-bottom:var(--spacing-md)}.auth-form-group label{display:block;margin-bottom:.35rem;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-neutral-900)}.auth-form-group input{width:100%;padding:.7rem .85rem;border:2px solid var(--color-neutral-300);border-radius:var(--radius-md);font-size:var(--font-size-base);font-family:var(--font-body);transition:border-color var(--transition-fast);box-sizing:border-box}.auth-form-group input:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.auth-form-group input:read-only{background:var(--color-neutral-100);cursor:not-allowed}.auth-hint{font-size:var(--font-size-xs);color:var(--color-neutral-600);margin-top:.25rem}.auth-submit{width:100%;padding:.75rem;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);font-family:var(--font-body);color:var(--color-white);background:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.auth-submit:hover:not(:disabled){background:var(--color-primary-light)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.portal-greeting{margin-bottom:var(--spacing-lg)}.portal-greeting h1{font-family:var(--font-heading);font-size:var(--font-size-3xl);color:var(--color-primary-dark);margin-bottom:.25rem}.portal-greeting p{color:var(--color-neutral-600);font-size:var(--font-size-sm)}.portal-alert-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.portal-alert-card{background:var(--color-white);border-radius:var(--radius-lg);padding:var(--spacing-md);box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:var(--spacing-sm);text-decoration:none;color:inherit;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.portal-alert-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.portal-alert-icon{width:3rem;height:3rem;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.portal-alert-icon--messages{background:#e8f4fd;color:var(--color-primary)}.portal-alert-icon--tasks{background:#fef3e2;color:var(--color-accent-dark)}.portal-alert-icon--matters{background:#e8f5e9;color:var(--color-success)}.portal-alert-icon--learning{background:#f3e5f5;color:#7b1fa2}.portal-alert-info{flex:1;min-width:0}.portal-alert-count{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-neutral-900);line-height:1}.portal-alert-label{font-size:var(--font-size-xs);color:var(--color-neutral-600);margin-top:.15rem}.portal-section{margin-bottom:var(--spacing-lg)}.portal-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm)}.portal-section-header h2{font-family:var(--font-heading);font-size:var(--font-size-xl);color:var(--color-primary-dark);border-bottom:2px solid var(--color-accent);padding-bottom:.25rem}.portal-section-header a{font-size:var(--font-size-sm);color:var(--color-primary);text-decoration:none}.portal-section-header a:hover{text-decoration:underline}.portal-card{background:var(--color-white);border-radius:var(--radius-lg);padding:var(--spacing-md);box-shadow:var(--shadow-sm)}.portal-card--clickable{cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast);text-decoration:none;color:inherit;display:block}.portal-card--clickable:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.portal-msg-shell{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:var(--spacing-sm);min-height:calc(100vh - 220px);background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.portal-msg-list-panel{display:flex;flex-direction:column;border-right:1px solid var(--color-neutral-200);background:var(--color-neutral-50, #fafafa);min-height:0}.portal-msg-list-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-neutral-200);background:var(--color-white)}.portal-msg-list-title{display:flex;align-items:center;gap:.5rem}.portal-msg-list-title h2{font-family:var(--font-heading);font-size:var(--font-size-lg);color:var(--color-primary-dark);margin:0}.portal-msg-unread-pill{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);background:var(--color-primary);color:var(--color-white);padding:.1rem .5rem;border-radius:999px}.portal-msg-compose-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-white);text-decoration:none;border:none;cursor:pointer;transition:background var(--transition-fast)}.portal-msg-compose-btn:hover,.portal-msg-compose-btn.is-active{background:var(--color-accent-dark)}.portal-msg-list-toolbar{padding:var(--spacing-xs) var(--spacing-sm);display:flex;flex-direction:column;gap:.4rem;border-bottom:1px solid var(--color-neutral-200)}.portal-msg-search{display:flex;align-items:center;gap:.4rem;padding:.4rem .6rem;background:var(--color-white);border:1.5px solid var(--color-neutral-300);border-radius:var(--radius-md);color:var(--color-neutral-600);transition:border-color var(--transition-fast)}.portal-msg-search:focus-within{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.portal-msg-search input{flex:1;border:none;outline:none;font-family:var(--font-body);font-size:var(--font-size-sm);background:transparent;color:var(--color-neutral-900);min-width:0}.portal-msg-filter-row{display:flex;gap:.35rem;flex-wrap:wrap}.portal-msg-filter-chip{padding:.25rem .65rem;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border:1.5px solid var(--color-neutral-300);border-radius:999px;background:var(--color-white);color:var(--color-neutral-700);cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;gap:.3rem}.portal-msg-filter-chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.portal-msg-filter-chip.is-active{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.portal-msg-filter-chip .dot{background:#ffffff40;padding:0 .4rem;border-radius:999px;font-size:.65rem}.portal-msg-filter-chip:not(.is-active) .dot{background:var(--color-primary);color:var(--color-white)}.portal-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--color-primary);color:var(--color-white);border-radius:50%;font-size:.75rem;font-weight:var(--font-weight-semibold);text-transform:uppercase;overflow:hidden;width:2.25rem;height:2.25rem}.portal-avatar img{width:100%;height:100%;object-fit:cover;display:block}.portal-avatar.has-photo{background:transparent}.portal-avatar-initials{letter-spacing:.02em;user-select:none}.portal-msg-avatar{width:2.25rem;height:2.25rem;font-size:.75rem}.portal-msg-cluster-avatar{width:2rem;height:2rem;font-size:.7rem;align-self:flex-start}.portal-msg-thread-list{flex:1;overflow-y:auto;display:flex;flex-direction:column}.portal-msg-thread-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-neutral-200);text-decoration:none;color:inherit;background:var(--color-white);transition:background var(--transition-fast);position:relative}.portal-msg-thread-item:hover{background:var(--color-neutral-100)}.portal-msg-thread-item.is-active{background:var(--color-primary-bg, rgba(26, 54, 93, .06));border-left:3px solid var(--color-primary);padding-left:calc(var(--spacing-md) - 3px)}.portal-msg-thread-item.is-unread:before{content:"";position:absolute;top:50%;left:.5rem;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--color-primary)}.portal-msg-thread-item.is-unread.is-active:before{display:none}.portal-msg-thread-item.is-new{animation:portal-msg-pulse 1.6s ease-out}@keyframes portal-msg-pulse{0%{background:var(--color-accent-light, #fff4d6)}to{background:var(--color-white)}}.portal-msg-thread-body{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.portal-msg-thread-row1,.portal-msg-thread-row2{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.portal-msg-thread-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-neutral-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-msg-thread-item.is-unread .portal-msg-thread-name{color:var(--color-primary-dark)}.portal-msg-thread-time{font-size:var(--font-size-xs);color:var(--color-neutral-600);flex-shrink:0}.portal-msg-thread-subject{font-size:var(--font-size-xs);color:var(--color-neutral-600);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--font-weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-msg-thread-badge{background:var(--color-primary);color:var(--color-white);font-size:.65rem;font-weight:var(--font-weight-semibold);padding:0 .4rem;border-radius:999px;min-width:1.2rem;text-align:center;flex-shrink:0}.portal-msg-thread-preview{font-size:var(--font-size-xs);color:var(--color-neutral-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:.15rem}.portal-msg-thread-sender{font-weight:var(--font-weight-semibold);color:var(--color-neutral-600)}.portal-msg-empty{padding:var(--spacing-lg) var(--spacing-md);text-align:center;color:var(--color-neutral-600);font-size:var(--font-size-sm)}.portal-msg-conversation-panel{display:flex;flex-direction:column;min-height:0;background:var(--color-white)}.portal-msg-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-lg);color:var(--color-neutral-600);text-align:center}.portal-msg-empty-state-icon{font-size:3rem;color:var(--color-neutral-300);margin-bottom:var(--spacing-sm)}.portal-msg-empty-state h3{font-family:var(--font-heading);font-size:var(--font-size-lg);color:var(--color-primary-dark);margin:0 0 .25rem}.portal-msg-empty-state p{font-size:var(--font-size-sm);margin:0}.portal-msg-conv-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-neutral-200);background:var(--color-white);position:sticky;top:0;z-index:1}.portal-msg-back-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-md);background:transparent;color:var(--color-neutral-700);border:none;cursor:pointer;transition:background var(--transition-fast);text-decoration:none}.portal-msg-back-btn:hover{background:var(--color-neutral-100);color:var(--color-primary)}.portal-msg-conv-meta{flex:1;min-width:0}.portal-msg-conv-meta h2{font-family:var(--font-heading);font-size:var(--font-size-lg);color:var(--color-primary-dark);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-msg-conv-meta p{font-size:var(--font-size-xs);color:var(--color-neutral-600);margin:.1rem 0 0}.portal-msg-conv-context-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .7rem;border-radius:999px;background:var(--color-neutral-100);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-decoration:none;transition:background var(--transition-fast)}.portal-msg-conv-context-chip:hover{background:var(--color-primary);color:var(--color-white)}.portal-msg-conv-action{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-md);background:transparent;color:var(--color-neutral-700);border:1.5px solid var(--color-neutral-300);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.portal-msg-conv-action:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:var(--color-neutral-100)}.portal-msg-conv-action:disabled{opacity:.5;cursor:not-allowed}.portal-msg-stream{flex:1;overflow-y:auto;padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-md)}.portal-msg-day-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.portal-msg-day-divider{text-align:center;position:relative}.portal-msg-day-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--color-neutral-200);z-index:0}.portal-msg-day-divider span{position:relative;z-index:1;display:inline-block;padding:.15rem .75rem;background:var(--color-white);font-size:var(--font-size-xs);color:var(--color-neutral-600);font-weight:var(--font-weight-semibold)}.portal-msg-cluster{display:flex;gap:.6rem;align-items:flex-end;max-width:80%}.portal-msg-cluster.is-firm{align-self:flex-start}.portal-msg-cluster.is-client{align-self:flex-end;flex-direction:row-reverse}.portal-msg-cluster-body{display:flex;flex-direction:column;gap:.2rem;min-width:0}.portal-msg-cluster.is-client .portal-msg-cluster-body{align-items:flex-end}.portal-msg-cluster-meta{display:flex;align-items:baseline;gap:.4rem;font-size:var(--font-size-xs);padding:0 .3rem}.portal-msg-cluster-name{font-weight:var(--font-weight-semibold);color:var(--color-neutral-900)}.portal-msg-cluster-role{text-transform:uppercase;letter-spacing:.05em;color:var(--color-neutral-600);font-size:.65rem}.portal-msg-cluster-bubbles{display:flex;flex-direction:column;gap:.25rem}.portal-msg-cluster.is-client .portal-msg-cluster-bubbles{align-items:flex-end}.portal-msg-bubble{padding:.5rem .85rem;border-radius:var(--radius-lg);font-size:var(--font-size-sm);line-height:var(--line-height-normal);white-space:pre-wrap;word-wrap:break-word;max-width:100%}.portal-msg-cluster.is-firm .portal-msg-bubble{background:var(--color-neutral-100);color:var(--color-neutral-900);border-bottom-left-radius:var(--radius-sm)}.portal-msg-cluster.is-client .portal-msg-bubble{background:var(--color-primary);color:var(--color-white);border-bottom-right-radius:var(--radius-sm)}.portal-msg-bubble-body{word-wrap:break-word}.portal-msg-bubble-time{font-size:.65rem;margin-top:.25rem;opacity:.6}.portal-msg-cluster.is-client .portal-msg-bubble-time{text-align:right}.portal-msg-read-receipt{font-style:italic}.portal-msg-composer{display:flex;gap:.5rem;align-items:flex-end;padding:var(--spacing-sm) var(--spacing-md);border-top:1px solid var(--color-neutral-200);background:var(--color-white);flex-wrap:wrap}.portal-msg-composer-input{flex:1;padding:.6rem .85rem;border:1.5px solid var(--color-neutral-300);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);resize:none;min-height:2.5rem;max-height:12rem;transition:border-color var(--transition-fast)}.portal-msg-composer-input:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.portal-msg-composer-send{display:inline-flex;align-items:center;gap:.35rem;padding:.55rem 1rem;background:var(--color-primary);color:var(--color-white);border:none;border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast);white-space:nowrap}.portal-msg-composer-send:hover:not(:disabled){background:var(--color-primary-light)}.portal-msg-composer-send:disabled{opacity:.5;cursor:not-allowed}.portal-msg-compose{display:flex;flex-direction:column;height:100%}.portal-msg-compose-form{flex:1;padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm);overflow-y:auto}.portal-msg-compose-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.portal-form-group{display:flex;flex-direction:column;gap:.3rem}.portal-form-group label{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-neutral-900)}.portal-form-group input:not([type=file]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),.portal-form-group select,.portal-form-group textarea{width:100%;padding:.65rem .85rem;border:1.5px solid var(--color-neutral-300);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-sm);background:var(--color-white);color:var(--color-neutral-900);box-sizing:border-box;transition:border-color var(--transition-fast)}.portal-form-group textarea{resize:vertical;min-height:6rem}.portal-form-group input:focus-visible,.portal-form-group select:focus-visible,.portal-form-group textarea:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.portal-form-group input:disabled,.portal-form-group select:disabled,.portal-form-group textarea:disabled{background:var(--color-neutral-100);cursor:not-allowed}.portal-form-hint{font-weight:var(--font-weight-normal);color:var(--color-neutral-600);font-size:var(--font-size-xs)}.portal-form-counter{font-size:var(--font-size-xs);color:var(--color-neutral-600);text-align:right}.portal-form-error{background:var(--color-error-light);color:var(--color-error);padding:.6rem .85rem;border-radius:var(--radius-md);font-size:var(--font-size-sm);border-left:3px solid var(--color-error)}.portal-thread-list{display:flex;flex-direction:column;gap:1px;background:var(--color-neutral-200);border-radius:var(--radius-lg);overflow:hidden}.portal-thread-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-white);text-decoration:none;color:inherit;transition:background var(--transition-fast)}.portal-thread-item:hover{background:var(--color-neutral-100)}.portal-thread-item--unread{border-left:3px solid var(--color-primary)}.portal-thread-item--unread .portal-thread-subject{font-weight:var(--font-weight-semibold)}.portal-thread-subject{font-size:var(--font-size-base);color:var(--color-neutral-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-thread-preview{font-size:var(--font-size-sm);color:var(--color-neutral-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-thread-time{font-size:var(--font-size-xs);color:var(--color-neutral-600);white-space:nowrap;flex-shrink:0}.portal-doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-sm)}.portal-doc-card{background:var(--color-white);border-radius:var(--radius-lg);padding:var(--spacing-md);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--spacing-xs);border:1px solid transparent}.portal-doc-card--clickable{cursor:pointer;text-align:left;font-family:inherit;color:inherit;transition:all var(--transition-fast)}.portal-doc-card--clickable:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:var(--color-primary)}.portal-doc-card.is-attention{border-color:var(--color-error);background:linear-gradient(180deg,var(--color-error-light) 0%,var(--color-white) 35%)}.portal-doc-card-row1{display:flex;align-items:flex-start;justify-content:space-between;gap:.4rem}.portal-doc-name{font-weight:var(--font-weight-semibold);color:var(--color-neutral-900);word-break:break-word}.portal-doc-attention-dot{width:8px;height:8px;background:var(--color-error);border-radius:50%;flex-shrink:0;margin-top:.4rem;box-shadow:0 0 #c7514666;animation:portal-doc-pulse 2s infinite}@keyframes portal-doc-pulse{0%{box-shadow:0 0 #c7514673}70%{box-shadow:0 0 0 8px #c7514600}to{box-shadow:0 0 #c7514600}}.portal-doc-meta{font-size:var(--font-size-xs);color:var(--color-neutral-600);display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.portal-doc-actions{display:flex;gap:var(--spacing-xs);margin-top:auto}.portal-doc-filters{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);flex-wrap:wrap}.portal-doc-filters .portal-tabs{margin-bottom:0;flex:1;min-width:0}.portal-tabs--scroll{overflow-x:auto}.portal-doc-status-select{padding:.45rem .7rem;border:1.5px solid var(--color-neutral-300);border-radius:var(--radius-md);background:var(--color-white);font-size:var(--font-size-sm);font-family:var(--font-body);color:var(--color-neutral-900);cursor:pointer}.portal-doc-status-select:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.portal-doc-status-select:disabled{opacity:.5;cursor:not-allowed}.portal-doc-view-toggle{display:inline-flex;gap:.35rem}.portal-dropzone-card{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm)}.portal-dropzone-header{display:flex;align-items:center;justify-content:space-between}.portal-dropzone-header h3{font-family:var(--font-heading);font-size:var(--font-size-lg);color:var(--color-primary-dark);margin:0}.portal-dropzone-close{background:transparent;border:none;font-size:1.5rem;line-height:1;color:var(--color-neutral-600);cursor:pointer;padding:0 .4rem;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.portal-dropzone-close:hover{background:var(--color-neutral-100);color:var(--color-neutral-900)}.portal-dropzone{border:2px dashed var(--color-neutral-300);border-radius:var(--radius-md);padding:var(--spacing-lg);display:flex;align-items:center;justify-content:center;min-height:8rem;cursor:pointer;transition:all var(--transition-fast);background:var(--color-neutral-50, #fafafa);color:var(--color-neutral-600)}.portal-dropzone:hover{border-color:var(--color-primary);color:var(--color-primary)}.portal-dropzone:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.portal-dropzone.is-dragover{border-color:var(--color-accent);background:var(--color-accent-light, #fff4d6);color:var(--color-primary-dark)}.portal-dropzone.has-file{border-style:solid;border-color:var(--color-primary);background:var(--color-white);cursor:default}.portal-dropzone-prompt{display:flex;align-items:center;gap:var(--spacing-sm);text-align:left}.portal-dropzone-prompt strong{display:block;color:var(--color-neutral-900);font-size:var(--font-size-base)}.portal-dropzone-prompt p{font-size:var(--font-size-xs);margin:.2rem 0 0}.portal-dropzone-file{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;color:var(--color-neutral-900)}.portal-dropzone-file>div:first-of-type{color:var(--color-primary)}.portal-dropzone-file-name{font-weight:var(--font-weight-semibold);word-break:break-all}.portal-dropzone-file-meta{font-size:var(--font-size-xs);color:var(--color-neutral-600)}.portal-dropzone-clear{margin-left:auto;padding:.25rem .6rem;font-size:var(--font-size-xs);background:transparent;border:1.5px solid var(--color-neutral-300);border-radius:var(--radius-md);cursor:pointer;color:var(--color-neutral-700);transition:all var(--transition-fast)}.portal-dropzone-clear:hover{border-color:var(--color-error);color:var(--color-error)}.portal-dropzone-fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm)}.portal-dropzone-fields .portal-form-group:first-child,.portal-dropzone-fields .portal-form-group:last-child{grid-column:span 2}.portal-dropzone-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.portal-doc-detail-backdrop{position:fixed;inset:0;background:#0000008c;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);animation:portal-doc-fade-in .15s ease-out}@keyframes portal-doc-fade-in{0%{opacity:0}to{opacity:1}}.portal-doc-detail-panel{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:min(960px,100%);max-height:calc(100vh - 2 * var(--spacing-md));display:flex;flex-direction:column;overflow:hidden;animation:portal-doc-slide-up .2s ease-out}@keyframes portal-doc-slide-up{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.portal-doc-detail-header{display:flex;align-items:flex-start;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--color-neutral-200);gap:var(--spacing-sm)}.portal-doc-detail-header h2{font-family:var(--font-heading);font-size:var(--font-size-xl);color:var(--color-primary-dark);margin:0 0 .25rem;word-break:break-word}.portal-doc-detail-meta{font-size:var(--font-size-xs);color:var(--color-neutral-600);margin:0}.portal-doc-detail-close{background:transparent;border:none;font-size:1.75rem;line-height:1;color:var(--color-neutral-600);cursor:pointer;padding:0 .5rem;border-radius:var(--radius-sm);transition:background var(--transition-fast);flex-shrink:0}.portal-doc-detail-close:hover{background:var(--color-neutral-100);color:var(--color-neutral-900)}.portal-doc-detail-status-row{display:flex;align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;padding:0 var(--spacing-md);margin-top:var(--spacing-sm)}.portal-doc-detail-direction{font-size:var(--font-size-xs);color:var(--color-neutral-600)}.portal-doc-detail-matter-chip{font-size:var(--font-size-xs);padding:.15rem .6rem;border-radius:999px;background:var(--color-neutral-100);color:var(--color-primary);text-decoration:none;font-weight:var(--font-weight-semibold);transition:background var(--transition-fast)}.portal-doc-detail-matter-chip:hover{background:var(--color-primary);color:var(--color-white)}.portal-doc-detail-note{margin:var(--spacing-sm) var(--spacing-md);padding:var(--spacing-sm);border-radius:var(--radius-md);font-size:var(--font-size-sm);border-left:3px solid var(--color-primary);background:var(--color-neutral-100)}.portal-doc-detail-note--warn{border-left-color:var(--color-error);background:var(--color-error-light)}.portal-doc-detail-note strong{display:block;margin-bottom:.25rem;color:var(--color-primary-dark)}.portal-doc-detail-note--warn strong{color:var(--color-error)}.portal-doc-detail-note p{margin:0;white-space:pre-wrap}.portal-doc-detail-description{margin:0 var(--spacing-md);font-size:var(--font-size-sm)}.portal-doc-detail-description strong{display:block;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-neutral-600);margin-bottom:.25rem}.portal-doc-detail-description p{margin:0;white-space:pre-wrap}.portal-doc-detail-preview{flex:1;min-height:200px;padding:var(--spacing-sm) var(--spacing-md);display:flex;align-items:stretch;justify-content:center;overflow:auto;background:var(--color-neutral-100);margin-top:var(--spacing-sm)}.portal-doc-detail-image{max-width:100%;max-height:60vh;object-fit:contain;border-radius:var(--radius-md);background:var(--color-white);box-shadow:var(--shadow-sm)}.portal-doc-detail-pdf{width:100%;height:60vh;border:none;border-radius:var(--radius-md);background:var(--color-white)}.portal-doc-detail-preview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-lg);color:var(--color-neutral-600);text-align:center}.portal-doc-detail-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-top:1px solid var(--color-neutral-200)}.portal-section-subtitle{margin:.25rem 0 0;font-size:var(--font-size-xs);color:var(--color-neutral-600)}@media(max-width:768px){.portal-dropzone-fields{grid-template-columns:1fr}.portal-dropzone-fields .portal-form-group:first-child,.portal-dropzone-fields .portal-form-group:last-child{grid-column:span 1}.portal-doc-detail-panel{max-height:calc(100vh - var(--spacing-sm));border-radius:0}.portal-doc-detail-pdf{height:50vh}}.portal-matter-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.portal-matter-card{display:flex;flex-direction:column;gap:var(--spacing-xs);border:1px solid transparent}.portal-matter-card.is-attention{border-color:var(--color-error);background:linear-gradient(180deg,var(--color-error-light) 0%,var(--color-white) 30%)}.portal-matter-card-row1{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-sm)}.portal-matter-card-title{font-size:var(--font-size-lg);color:var(--color-primary-dark);margin:0 0 .25rem;font-family:var(--font-heading)}.portal-matter-type{display:inline-block;font-size:var(--font-size-xs);color:var(--color-neutral-600);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--font-weight-semibold)}.portal-matter-card-description{font-size:var(--font-size-sm);color:var(--color-neutral-700);margin:0}.portal-matter-card-stats{display:flex;gap:var(--spacing-sm);flex-wrap:wrap;margin-top:var(--spacing-xs)}.portal-matter-stat{display:inline-flex;align-items:baseline;gap:.35rem;padding:.2rem .65rem;border-radius:999px;background:var(--color-neutral-100);font-size:var(--font-size-xs);color:var(--color-neutral-700)}.portal-matter-stat strong{font-size:var(--font-size-sm);color:var(--color-neutral-900);font-weight:var(--font-weight-semibold)}.portal-matter-stat.is-alert{background:var(--color-error-light);color:var(--color-error)}.portal-matter-stat.is-alert strong{color:var(--color-error)}.portal-matter-header{margin-bottom:var(--spacing-md)}.portal-matter-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.portal-matter-title{font-family:var(--font-heading);font-size:var(--font-size-2xl);color:var(--color-primary-dark);margin:0 0 .25rem}.portal-matter-description{font-size:var(--font-size-sm);color:var(--color-neutral-700);margin:var(--spacing-xs) 0 0}.portal-matter-dates{font-size:var(--font-size-xs);color:var(--color-neutral-600);margin-top:var(--spacing-xs)}.portal-matter-tabs{display:flex;gap:.4rem;margin-bottom:var(--spacing-md);border-bottom:2px solid var(--color-neutral-200);flex-wrap:wrap}.portal-matter-tab{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .9rem;background:transparent;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-neutral-600);cursor:pointer;transition:all var(--transition-fast);position:relative}.portal-matter-tab:hover{color:var(--color-primary)}.portal-matter-tab.is-active{color:var(--color-primary-dark);border-bottom-color:var(--color-accent)}.portal-matter-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .4rem;border-radius:999px;background:var(--color-neutral-200);color:var(--color-neutral-700);font-size:.7rem;font-weight:var(--font-weight-semibold)}.portal-matter-tab.is-active .portal-matter-tab-count{background:var(--color-primary);color:var(--color-white)}.portal-matter-tab-alert{position:absolute;top:.4rem;right:.3rem;width:7px;height:7px;border-radius:50%;background:var(--color-error);box-shadow:0 0 0 2px var(--color-white)}.portal-section-header h3{font-family:var(--font-heading);font-size:var(--font-size-lg);color:var(--color-primary-dark);margin:0}@media(max-width:768px){.portal-matter-card-row1{flex-direction:column}.portal-matter-tabs{overflow-x:auto;flex-wrap:nowrap}.portal-matter-tab{flex-shrink:0}}.portal-profile{display:flex;flex-direction:column;gap:var(--spacing-md)}.portal-profile-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.portal-profile-section h3{font-family:var(--font-heading);font-size:var(--font-size-lg);color:var(--color-primary-dark);margin:0;border-bottom:2px solid var(--color-neutral-200);padding-bottom:.4rem}.portal-profile-avatar-row{display:flex;gap:var(--spacing-md);align-items:flex-start;padding:var(--spacing-sm);border:2px dashed transparent;border-radius:var(--radius-md);transition:all var(--transition-fast)}.portal-profile-avatar-row.is-drag-over{border-color:var(--color-accent);background:var(--color-accent-light)}.portal-profile-avatar-preview{width:5.5rem!important;height:5.5rem!important;font-size:1.4rem!important;flex-shrink:0}.portal-profile-avatar-controls{display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1;min-width:0}.portal-profile-avatar-prompt{font-size:var(--font-size-sm);color:var(--color-neutral-600);margin:0}.portal-profile-avatar-actions{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.portal-profile-form{display:flex;flex-direction:column;gap:var(--spacing-sm)}.portal-profile-form-row{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.portal-profile-form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-xs)}@media(max-width:768px){.portal-profile-avatar-row{flex-direction:column;align-items:stretch}.portal-profile-form-row{flex-direction:column}}.portal-task-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.portal-task-item{background:var(--color-white);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:var(--spacing-sm)}.portal-task-item--overdue{border-left:3px solid var(--color-error)}.portal-task-item--completed{opacity:.6}.portal-task-check{width:1.5rem;height:1.5rem;border:2px solid var(--color-neutral-300);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;background:none;color:transparent;font-size:.85rem}.portal-task-check:hover{border-color:var(--color-primary);background:var(--color-neutral-100)}.portal-task-check--done{border-color:var(--color-success);background:var(--color-success);color:var(--color-white)}.portal-task-info{flex:1;min-width:0}.portal-task-title{font-size:var(--font-size-sm);color:var(--color-neutral-900)}.portal-task-due{font-size:var(--font-size-xs);color:var(--color-neutral-600)}.portal-task-due--overdue{color:var(--color-error);font-weight:var(--font-weight-semibold)}.portal-progress{display:flex;align-items:center;gap:var(--spacing-xs)}.portal-progress-bar{flex:1;height:.5rem;background:var(--color-neutral-200);border-radius:999px;overflow:hidden}.portal-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary) 0%,var(--color-primary-light) 100%);border-radius:999px;transition:width .4s ease}.portal-progress-fill--complete{background:var(--color-success)}.portal-progress-text{font-size:var(--font-size-xs);color:var(--color-neutral-600);white-space:nowrap}.portal-badge{display:inline-block;font-size:.65rem;font-weight:var(--font-weight-semibold);padding:.15rem .5rem;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.portal-badge--intake{background:#e3f2fd;color:#1565c0}.portal-badge--in_progress{background:#fff3e0;color:#e65100}.portal-badge--pending_client{background:#fce4ec;color:#c62828}.portal-badge--under_review{background:#f3e5f5;color:#6a1b9a}.portal-badge--completed{background:#e8f5e9;color:#2e7d32}.portal-badge--on_hold,.portal-badge--closed{background:var(--color-neutral-200);color:var(--color-neutral-600)}.portal-badge--pending_review{background:#fff3e0;color:#e65100}.portal-badge--reviewed{background:#e3f2fd;color:#1565c0}.portal-badge--revision_requested{background:#fce4ec;color:#c62828}.portal-badge--approved,.portal-badge--signed{background:#e8f5e9;color:#2e7d32}.portal-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .9rem;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-family:var(--font-body);border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.portal-btn--primary{background:var(--color-primary);color:var(--color-white)}.portal-btn--primary:hover{background:var(--color-primary-light)}.portal-btn--accent{background:var(--color-accent);color:var(--color-white)}.portal-btn--accent:hover{background:var(--color-accent-dark)}.portal-btn--outline{background:transparent;color:var(--color-primary);border:1.5px solid var(--color-primary)}.portal-btn--outline:hover{background:var(--color-primary);color:var(--color-white)}.portal-btn--sm{padding:.3rem .65rem;font-size:var(--font-size-xs)}.portal-btn:disabled{opacity:.5;cursor:not-allowed}.portal-video-container{position:relative;width:100%;max-width:960px;aspect-ratio:16 / 9;background:#000;border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--spacing-md)}.portal-video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.portal-tabs{display:flex;gap:2px;background:var(--color-neutral-200);border-radius:var(--radius-md);padding:2px;margin-bottom:var(--spacing-md);overflow-x:auto}.portal-tab{padding:.45rem 1rem;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-family:var(--font-body);color:var(--color-neutral-600);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.portal-tab:hover{color:var(--color-neutral-900)}.portal-tab--active{background:var(--color-white);color:var(--color-primary-dark);box-shadow:var(--shadow-sm)}.portal-user-menu{position:relative;display:inline-flex;align-items:center}.portal-user-menu-trigger{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;padding:0;border-radius:999px;cursor:pointer;transition:box-shadow var(--transition-fast)}.portal-user-menu-trigger:hover,.portal-user-menu-trigger:focus-visible,.portal-user-menu-trigger[aria-expanded=true]{outline:none;box-shadow:0 0 0 2px #ffffff8c}.portal-user-menu-panel{position:absolute;top:calc(100% + .5rem);right:0;min-width:14rem;max-width:calc(100vw - 2rem);background:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);border:1px solid var(--color-neutral-200);z-index:200;overflow:hidden;animation:portal-user-menu-fade .12s ease-out}@keyframes portal-user-menu-fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.portal-user-menu-header{padding:var(--spacing-sm) var(--spacing-md)}.portal-user-menu-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-user-menu-email{font-size:var(--font-size-xs);color:var(--color-neutral-600);margin-top:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-user-menu-separator{height:1px;background:var(--color-neutral-200);margin:0}.portal-user-menu-item{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:.6rem var(--spacing-md);background:transparent;border:none;font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--color-neutral-900);text-align:left;text-decoration:none;cursor:pointer;transition:background var(--transition-fast)}.portal-user-menu-item:hover,.portal-user-menu-item:focus-visible{outline:none;background:var(--color-neutral-100)}.portal-user-menu-item svg{flex-shrink:0;color:var(--color-neutral-600)}.portal-user-menu-item--danger{color:var(--color-error)}.portal-user-menu-item--danger:hover,.portal-user-menu-item--danger:focus-visible{background:var(--color-error-light)}.portal-user-menu-item--danger svg{color:var(--color-error)}.portal-user-menu-item:disabled{opacity:.5;cursor:not-allowed}.portal-back{display:inline-flex;align-items:center;gap:.3rem;font-size:var(--font-size-sm);color:var(--color-primary);text-decoration:none;margin-bottom:var(--spacing-md)}.portal-back:hover{text-decoration:underline}@media(max-width:768px){.portal-main{padding:var(--spacing-sm)}.portal-navbar-links{display:none}.portal-navbar-links.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--color-primary-dark);padding:var(--spacing-xs) var(--spacing-sm);box-shadow:var(--shadow-lg)}.portal-nav-toggle{display:block}.portal-greeting h1{font-size:var(--font-size-2xl)}.portal-alert-grid{grid-template-columns:repeat(2,1fr)}.portal-msg-cluster{max-width:92%}.portal-doc-grid{grid-template-columns:1fr}.portal-msg-shell{grid-template-columns:1fr;min-height:calc(100vh - 200px)}.portal-msg-shell.is-conversation-open .portal-msg-list-panel{display:none}.portal-msg-shell:not(.is-conversation-open) .portal-msg-conversation-panel{display:none}}@media(max-width:480px){.portal-alert-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.portal-spinner{animation-duration:1.5s}.portal-alert-card,.portal-card--clickable,.portal-progress-fill{transition:none}}.vp-container{position:relative;width:100%;aspect-ratio:16 / 9;background:#000;border-radius:var(--radius-md);overflow:hidden;user-select:none;margin-bottom:var(--spacing-md)}.vp-container iframe,.vp-iframe{position:absolute;top:-1px;left:-1px;width:calc(100% + 2px);height:calc(100% + 2px);border:0;display:block;pointer-events:none}.vp-poster{position:absolute;inset:0;z-index:10;background:#000 center / cover no-repeat;display:flex;align-items:center;justify-content:center;border:none;padding:0;cursor:default;width:100%;height:100%;opacity:1;visibility:visible;transition:opacity 1.6s ease,visibility 0s 0s}.vp-poster:not(:disabled){cursor:pointer}.vp-poster-hidden{opacity:0;visibility:hidden;pointer-events:none;transition:opacity 1.6s ease,visibility 0s 1.6s}.vp-poster .vp-big-play{position:static;transform:none;pointer-events:none}.vp-poster:not(:disabled):hover .vp-big-play{background:var(--color-primary-dark);transform:scale(1.08)}.vp-poster-spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.15);border-top-color:var(--color-accent);border-radius:50%;animation:vp-spin .8s linear infinite}@keyframes vp-spin{to{transform:rotate(360deg)}}.vp-click-overlay{position:absolute;inset:0 0 44px;z-index:2;background:transparent;border:none;cursor:pointer}.vp-pause-overlay{position:absolute;inset:0;z-index:4;background:transparent;display:flex;align-items:center;justify-content:center;border:none;padding:0;margin:0;cursor:pointer;width:100%;height:100%}.vp-pause-overlay .vp-big-play{position:relative;inset:auto;transform:none;pointer-events:none;z-index:1;transition:background .2s,transform .2s}.vp-pause-overlay:hover .vp-big-play{background:var(--color-primary-dark);transform:scale(1.08)}.vp-big-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3;width:60px;height:60px;border-radius:50%;background:var(--color-primary);border:2px solid var(--color-accent);display:flex;align-items:center;justify-content:center;color:var(--color-accent);pointer-events:none;transition:background .2s,transform .2s;box-shadow:0 2px 12px #0006}.vp-controls{position:absolute;bottom:0;left:0;right:0;z-index:5;display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,transparent 100%);opacity:0;transition:opacity .25s;pointer-events:none}.vp-controls-visible{opacity:1;pointer-events:auto}.vp-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;color:#fff;cursor:pointer;padding:2px;border-radius:3px;transition:background .15s;flex-shrink:0}.vp-btn:hover{background:#ffffff26}.vp-btn-sm svg{width:18px;height:18px}.vp-progress{flex:1;height:4px;padding-block:10px;box-sizing:content-box;background:#ffffff40;background-clip:content-box;border-radius:2px;cursor:pointer;position:relative;transition:height .15s}.vp-progress:hover{height:6px}.vp-progress-fill{height:100%;background:var(--color-accent);border-radius:2px;transition:width .1s linear;pointer-events:none}.vp-time{color:#ffffffd9;font-size:.7rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap;flex-shrink:0}.vp-container:fullscreen{border-radius:0}.vp-container:fullscreen .vp-big-play{width:72px;height:72px}.vp-container:fullscreen .vp-big-play svg{width:36px;height:36px}.portal-video-info{margin-top:var(--spacing-md)}.portal-btn[disabled]{opacity:.5;cursor:not-allowed;pointer-events:none}
