.message-send-btn:disabled{background:#232323!important;color:#7d8a6b!important;cursor:not-allowed!important;filter:none!important}.input-with-send{position:relative;display:flex;align-items:stretch}.input-send-container{position:relative;flex:1;display:flex;align-items:center}.input-send-container textarea{width:100%;padding-right:38px;box-sizing:border-box}.send-inside{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:0 0;border:none;padding:0;margin:0;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;color:var(--accent,#90a678);opacity:.85;transition:opacity .18s}.send-inside:active{opacity:1}.send-inside[disabled]{opacity:.4;pointer-events:none}.input-send-container .send-inside{display:none}.input-send-container.show-send .send-inside{display:flex}body{min-height:100vh;font-family:Unbounded,system-ui,sans-serif;letter-spacing:-.2px;--portal-card-bg-15:rgba(255, 255, 255, 0.15);--portal-card-bg-10:rgba(255, 255, 255, 0.10)}.portal-shell{max-width:1100px;margin:32px auto;padding:0 16px 32px;display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px}.portal-header{display:flex;justify-content:space-between;align-items:center;gap:12px;height:var(--header-height,64px);box-sizing:border-box;padding:12px 24px;background:var(--header-bg);border-bottom:1px solid var(--border-soft);margin:0;margin-bottom:24px;color:var(--text)}.portal-header-left{display:flex;align-items:center;gap:20px}.portal-title{font-size:1.25rem;font-weight:600;letter-spacing:0;display:flex;align-items:center;gap:8px}.portal-title-link{color:var(--accent,#90a678);font-size:1.8rem;line-height:1;font-weight:900;letter-spacing:.05em;text-decoration:none;transition:color .2s ease,text-shadow .2s ease}.portal-title-link:hover{color:var(--accent,#90a678);text-shadow:0 0 10px rgba(144,166,120,.45)}.portal-title-separator{opacity:.6;font-weight:400}.portal-title-label{font-weight:400;opacity:.8}.portal-nav{display:flex;align-items:center;gap:10px;font-size:.9rem}.portal-nav a,.portal-nav-tab{color:var(--muted);text-decoration:none;padding:4px 10px;border-radius:999px;border:1px solid transparent;transition:background .15s ease,color .15s ease,border-color .15s ease;cursor:pointer}.portal-nav a:hover,.portal-nav-tab:hover{background:rgba(144,166,120,.12);border-color:var(--border-soft);color:var(--text)}.portal-nav a.is-active,.portal-nav-tab--active{background:var(--accent);color:#050608;border-color:var(--accent)}.portal-header-right{display:flex;align-items:center;gap:10px}.portal-chip{display:inline-block;font-size:.8rem;color:var(--muted);padding:0;border:none;background:0 0}.portal-logout{padding:8px 16px;border-radius:999px;border:1px solid var(--border-soft,#90a67860);background:0 0;color:var(--text,#f4f4f4);font-size:.85rem;cursor:pointer;transition:background .1s ease,color .1s ease,border-color .1s ease}.portal-logout:hover{background:#dc2626;border-color:#dc2626;color:#fff}.portal-settings{position:relative;display:flex;align-items:center}.portal-settings-btn{position:relative;width:34px;height:34px;border-radius:999px;border:1px solid var(--border-soft,#90a67860);background:0 0;color:var(--muted,#9ca3af);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform 80ms ease,color .15s ease}.portal-settings-btn:hover{background:rgba(255,255,255,.06);border-color:var(--accent,#90a678);color:var(--accent,#90a678);box-shadow:0 8px 16px rgba(0,0,0,.4);transform:translateY(-1px)}.portal-settings-icon{width:18px;height:18px;display:block;pointer-events:none}.portal-settings-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;background:var(--card-bg,#050608);border-radius:14px;border:1px solid var(--border-soft,#90a67860);box-shadow:0 20px 50px rgba(0,0,0,.85);overflow:hidden;display:none;z-index:3000}.portal-settings-dropdown.is-open{display:block}.portal-settings-item{width:100%;text-align:left;border:none;background:0 0;color:var(--text,#f4f4f4);padding:10px 12px;font-size:.88rem;cursor:pointer;transition:background .15s ease,color .15s ease}.portal-settings-item:hover{background:rgba(255,255,255,.06)}.portal-settings-item--danger{color:#fecaca}.portal-settings-item--danger:hover{background:rgba(220,38,38,.18);color:#fff}.assessment-list{border-radius:14px;border:1px solid var(--border-soft,#90a67860);padding:10px;background:var(--portal-card-bg-15);max-height:70vh;overflow-y:auto}.assessment-item{padding:8px 10px;border-radius:10px;border:1px solid transparent;background:var(--portal-card-bg-10);box-shadow:none;cursor:pointer;margin-bottom:6px;font-size:.9rem}.assessment-item:hover{background:var(--portal-card-bg-15);border-color:rgba(144,166,120,.55)}.assessment-item.active{background:var(--portal-card-bg-15);border-color:rgba(144,166,120,.55)}.assessment-status-pill{display:inline-block;font-size:.7rem;padding:2px 8px;border-radius:999px;border:1px solid var(--border-soft,#90a67860);background:var(--portal-card-bg-10);margin-top:2px}.portal-chat-card{border:1px solid rgba(144,166,120,.4);border-radius:16px;background:var(--portal-card-bg-15);box-shadow:none;padding:12px 14px;display:flex;flex-direction:column;max-height:min(65vh,720px);gap:0}.portal-tabbar{display:flex;gap:10px;margin:10px 0 12px}.portal-tab{padding:8px 14px;border-radius:999px;border:1px solid var(--border-soft,#90a67860);background:var(--portal-card-bg-15);color:var(--text,#f4f4f4);font-size:.85rem;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.portal-tab:hover{background:rgba(144,166,120,.12);border-color:var(--border-soft,#90a67880)}.portal-tab--active{background:var(--accent,#90a678);color:#050608;border-color:var(--accent,#90a678)}.portal-payments-card{border:1px solid rgba(144,166,120,.4);border-radius:16px;background:var(--portal-card-bg-15);padding:14px}.portal-payments-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.portal-payments-title{font-weight:600;font-size:1.05rem}.portal-payments-sub{color:var(--muted,#9ca3af);font-size:.85rem;margin-top:2px}.portal-payments-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.portal-payments-summary-item{border:1px solid var(--border-soft,#90a67840);border-radius:12px;padding:10px 12px;background:var(--portal-card-bg-10)}.portal-payments-summary-label{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted,#9ca3af);margin-bottom:6px}.portal-payments-summary-value{font-size:1.1rem;font-weight:600}.portal-payments-actions{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 14px}.portal-pay-btn{padding:10px 14px;border-radius:12px;border:1px solid var(--border-soft,#90a67860);background:var(--portal-card-bg-10);color:var(--text,#f4f4f4);font-weight:600;cursor:pointer;transition:transform 80ms ease,background .12s ease,border-color .12s ease}.portal-pay-btn:hover{background:rgba(144,166,120,.12);border-color:var(--border-soft,#90a67880)}.portal-pay-btn:active{transform:translateY(1px)}.portal-pay-btn--primary{background:var(--accent,#90a678);color:#050608;border-color:var(--accent,#90a678)}.portal-pay-btn:disabled{opacity:.65;cursor:not-allowed;transform:none}.portal-payments-history-title{font-weight:600;margin-bottom:8px}.portal-payment-list{border:1px solid var(--border-soft,#90a67840);border-radius:12px;background:var(--portal-card-bg-10);padding:10px 12px}.portal-payment-row{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}.portal-payment-row:last-child{border-bottom:none}.portal-payment-meta{color:var(--muted,#9ca3af);font-size:.8rem}.payment-modal{position:fixed;inset:0;z-index:9999}.payment-modal-overlay{position:absolute;inset:0;background:rgba(0,0,0,.65)}.portal-settings-modal{position:fixed;inset:0;z-index:10000}.portal-settings-overlay{position:absolute;inset:0;background:rgba(0,0,0,.65)}.portal-settings-content{position:relative;width:min(640px,calc(100vw - 24px));margin:8vh auto 0;border-radius:16px;border:1px solid rgba(144,166,120,.4);background:rgba(5,6,8,.98);padding:16px;box-shadow:0 18px 70px rgba(0,0,0,.55)}.portal-settings-close{position:absolute;top:10px;right:12px;width:34px;height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:var(--text,#f4f4f4);font-size:20px;line-height:20px;cursor:pointer}.portal-settings-title{font-weight:700;letter-spacing:.02em;margin:4px 0 4px}.portal-settings-sub{color:var(--muted,#9ca3af);font-size:.85rem;margin-bottom:12px}.portal-settings-msg{border-radius:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:var(--text,#f4f4f4);margin-bottom:12px;font-size:.9rem}.portal-settings-msg--success{border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.1)}.portal-settings-msg--error{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.1)}.portal-settings-msg--info{border-color:rgba(144,166,120,.45);background:rgba(144,166,120,.1)}.portal-settings-section{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.02);border-radius:14px;padding:12px;margin-bottom:12px}.portal-settings-section-title{font-weight:700;margin-bottom:6px}.portal-settings-help{color:var(--muted,#9ca3af);font-size:.85rem;margin-bottom:10px}.portal-settings-grid{display:grid;grid-template-columns:1fr;gap:10px}.portal-settings-input{width:100%;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.03);color:var(--text,#f4f4f4);padding:10px 12px;outline:0}.portal-settings-input:focus{border-color:rgba(144,166,120,.75);box-shadow:0 0 0 3px rgba(144,166,120,.12)}.portal-settings-actions{display:flex;gap:10px;flex-wrap:wrap}.portal-settings-btn-primary,.portal-settings-btn-secondary{border-radius:12px;padding:10px 12px;cursor:pointer;border:1px solid rgba(255,255,255,.14);transition:background .12s ease,border-color .12s ease,transform 80ms ease}.portal-settings-btn-primary{background:rgba(144,166,120,.2);border-color:rgba(144,166,120,.75);color:var(--text,#f4f4f4)}.portal-settings-btn-primary:hover{background:rgba(144,166,120,.28)}.portal-settings-btn-secondary{background:rgba(255,255,255,.03);color:var(--text,#f4f4f4)}.portal-settings-btn-secondary:hover{background:rgba(255,255,255,.06);border-color:rgba(144,166,120,.55)}.portal-settings-btn-primary:active,.portal-settings-btn-secondary:active{transform:translateY(1px)}.portal-2fa-setup{display:grid;grid-template-columns:110px 1fr;gap:12px;align-items:center;margin-bottom:10px}.portal-2fa-qr{width:110px;height:110px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.03)}.portal-2fa-kv-label{color:var(--muted,#9ca3af);font-size:.78rem;margin-bottom:4px}.portal-2fa-kv-value{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:.9rem;word-break:break-all}.portal-2fa-row{display:flex;gap:10px;align-items:center;margin-top:10px}@media (min-width:720px){.portal-settings-grid{grid-template-columns:1fr 1fr}#portal-pw-save{grid-column:1/-1}}.client-auth-shell{max-width:520px;margin:40px auto 0;padding:0 16px}.client-auth-card{border-radius:16px;border:1px solid var(--border-soft,#90a67860);background:rgba(5,6,8,.7);box-shadow:0 20px 50px rgba(0,0,0,.55);padding:18px}.client-auth-title{font-weight:800;letter-spacing:.02em;margin-bottom:4px}.client-auth-sub{color:var(--muted,#9ca3af);font-size:.9rem;margin-bottom:12px}.client-auth-form{display:grid;gap:10px}.client-auth-label{font-size:.85rem;color:var(--muted,#9ca3af)}.client-auth-input{width:100%;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.03);color:var(--text,#f4f4f4);padding:10px 12px;outline:0}.client-auth-input:focus{border-color:rgba(144,166,120,.75);box-shadow:0 0 0 3px rgba(144,166,120,.12)}.client-auth-error{border-radius:12px;padding:10px 12px;border:1px solid rgba(239,68,68,.35);background:rgba(239,68,68,.1);color:#fecaca;font-size:.9rem}.client-auth-btn{margin-top:4px;border-radius:12px;padding:10px 12px;cursor:pointer;border:1px solid rgba(144,166,120,.75);background:rgba(144,166,120,.2);color:var(--text,#f4f4f4);font-weight:700;transition:background .12s ease,border-color .12s ease,transform 80ms ease}.client-auth-btn:hover{background:rgba(144,166,120,.28)}.client-auth-btn:active{transform:translateY(1px)}.client-auth-legal{margin-top:12px;padding:10px 12px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03);color:var(--muted,#9ca3af);font-size:.86rem;line-height:1.45}.client-auth-legal a{color:var(--accent,#90a678);text-decoration:none;border-bottom:1px solid rgba(144,166,120,.45)}.client-auth-legal a:hover{border-bottom-color:rgba(144,166,120,.9)}.payment-modal-content{position:relative;width:min(520px,calc(100vw - 24px));margin:10vh auto 0;border-radius:16px;border:1px solid rgba(144,166,120,.4);background:rgba(5,6,8,.98);padding:14px;box-shadow:0 18px 70px rgba(0,0,0,.55)}.payment-modal-close{position:absolute;top:10px;right:12px;width:34px;height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:var(--text,#f4f4f4);font-size:20px;line-height:20px;cursor:pointer}.payment-modal-title{margin:6px 0 12px;font-size:1rem}.payment-modal-sub{color:var(--muted,#9ca3af);font-size:.85rem;margin:-6px 0 12px}.payment-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.payment-choice-btn{border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03);color:var(--text,#f4f4f4);padding:10px 12px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;transition:background .12s ease,border-color .12s ease,transform 80ms ease}.payment-choice-btn:hover{background:rgba(144,166,120,.1);border-color:rgba(144,166,120,.55)}.payment-choice-btn:active{transform:translateY(1px)}.payment-choice-btn.is-selected{background:rgba(144,166,120,.18);border-color:rgba(144,166,120,.75)}.payment-choice-btn:disabled{opacity:.55;cursor:not-allowed}.payment-choice-label{font-weight:600;font-size:.9rem}.payment-choice-amt{font-weight:700;letter-spacing:.02em}.payment-modal-note{min-height:18px;color:var(--muted,#9ca3af);font-size:.82rem;margin:2px 0 10px}.payment-element{padding:10px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.02);margin-bottom:10px}.payment-element-skeleton{display:none;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.02);padding:12px;margin-bottom:10px;overflow:hidden;position:relative}.payment-skel-row{height:14px;border-radius:8px;background:linear-gradient(90deg,rgba(255,255,255,.06) 0,rgba(255,255,255,.11) 40%,rgba(255,255,255,.06) 80%);background-size:240% 100%;animation:paymentShimmer 1.2s ease-in-out infinite;margin-bottom:10px}.payment-skel-row--short{width:72%}@keyframes paymentShimmer{0%{background-position:0 0}100%{background-position:100% 0}}.payment-powered{margin-top:10px;text-align:center;color:rgba(156,163,175,.9);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}@media (max-width:520px){.payment-choice{grid-template-columns:1fr}}.payment-error{min-height:18px;color:#fca5a5;font-size:.85rem;margin:8px 0}body.logged-in[data-theme=light] .payment-modal-overlay{background:rgba(15,23,42,.45)}body.logged-in[data-theme=light] .payment-modal-content{background:rgba(245,249,255,.94);border-color:rgba(144,166,120,.45);box-shadow:0 18px 55px rgba(30,45,65,.22);color:#0f172a}body.logged-in[data-theme=light] .payment-modal-close{border-color:rgba(96,120,91,.32);background:rgba(255,255,255,.4);color:#0f172a}body.logged-in[data-theme=light] .payment-modal-note,body.logged-in[data-theme=light] .payment-modal-sub,body.logged-in[data-theme=light] .payment-powered{color:rgba(15,23,42,.78)}body.logged-in[data-theme=light] .payment-choice-btn{background:rgba(255,255,255,.32);border-color:rgba(96,120,91,.32);color:#0f172a}body.logged-in[data-theme=light] .payment-choice-btn:hover{background:rgba(144,166,120,.16);border-color:rgba(144,166,120,.55)}body.logged-in[data-theme=light] .payment-choice-btn.is-selected{background:rgba(144,166,120,.26);border-color:rgba(144,166,120,.72)}body.logged-in[data-theme=light] .payment-element,body.logged-in[data-theme=light] .payment-element-skeleton{background:rgba(255,255,255,.3);border-color:rgba(96,120,91,.28)}body.logged-in[data-theme=light] .payment-error{color:#b91c1c}.messages-layout{display:grid;grid-template-columns:1fr auto 280px;gap:0;flex:1;min-height:0;overflow:hidden}.messages-left{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.messages-divider{width:4px;background:rgba(255,255,255,.05);cursor:col-resize;transition:background .15s ease;user-select:none}.messages-divider:hover{background:rgba(144,166,120,.3)}.messages-right{display:flex;flex-direction:column;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;padding-left:8px;padding-right:4px;border-left:1px solid rgba(255,255,255,.05)}.message-thread{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem;margin:.75rem 0;padding-bottom:0;scrollbar-width:thin;scrollbar-color:rgba(144,166,120,0.6) transparent;padding-right:1.25rem}.message-thread::-webkit-scrollbar{width:8px}.message-thread::-webkit-scrollbar-thumb{background:rgba(144,166,120,.4);border-radius:4px}.message-thread:hover::-webkit-scrollbar-thumb{background:rgba(144,166,120,.6)}.message-thread::-webkit-scrollbar-track{background:0 0}.message-input-shell{position:relative;flex:1;display:flex;align-items:center}.message-input{width:100%;max-width:none;padding:.9rem 1.2rem;padding-left:4rem;min-height:68px;border-radius:999px;border:1px solid rgba(255,255,255,.15);background:var(--portal-card-bg-10);font-size:.9rem;color:var(--text);font-family:Unbounded,system-ui,sans-serif;resize:none;overflow-y:hidden;line-height:1.4}.message-input:focus{outline:0;border-color:var(--accent)}.msg{max-width:40rem;padding:.7rem 1rem;border-radius:18px;font-size:.9rem}.msg-client{align-self:flex-end;background:rgba(255,255,255,.06);text-align:right}.msg-admin{align-self:flex-start;background:rgba(144,166,120,.45)}.msg-meta{font-size:.7rem;opacity:.7;margin-bottom:2px}.msg-body{white-space:pre-wrap}.message-input-row{display:flex;gap:.75rem;align-items:center;margin-top:.5rem}#message-input-row{display:none}.message-send-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 1.4rem;border-radius:999px;border:none;background:var(--accent,#90a678);font-weight:600;font-size:.9rem;cursor:pointer;color:#050608;white-space:nowrap}.message-send-btn:hover{filter:brightness(.95)}.portal-empty{font-size:.9rem;color:var(--muted,#9ca3af);margin-top:8px}.attach-btn{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:2rem;height:2rem;border-radius:999px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.15);background:var(--portal-card-bg-10);color:var(--text);cursor:pointer}.attach-btn:hover{border-color:var(--accent,#90a678);background:rgba(144,166,120,.2);color:#050608}.attachment-preview{display:flex;flex-direction:column;gap:8px;flex:1;overflow-y:auto;overflow-x:hidden;padding-right:2px;margin:0;scrollbar-width:none}.attachment-preview::-webkit-scrollbar{width:0}.attachment-preview::-webkit-scrollbar-thumb{background:0 0}.attachment-preview:hover::-webkit-scrollbar-thumb{background:0 0}.attachment-item{width:100%;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.03);cursor:pointer;transition:border-color .15s ease,background .15s ease;flex-shrink:0}.attachment-item:hover{border-color:var(--accent,#90a678);background:rgba(144,166,120,.1)}.attachment-item a{display:block;width:100%;height:100%}.attachment-thumb{display:block;width:100%;height:auto;max-height:120px;object-fit:cover;border-radius:0}.attachment-thumb img{display:block;width:100%;height:auto;object-fit:cover}.attachment-thumb-name{font-size:.7rem;padding:2px 4px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted,#9ca3af);background:rgba(0,0,0,.6)}.attachments-empty{display:flex;align-items:center;justify-content:center;height:100%;font-size:.85rem;color:var(--muted,#9ca3af);text-align:center;padding:1rem .5rem;white-space:normal}.msg-image{margin-top:.4rem}.msg-image img{max-width:180px;max-height:180px;border-radius:10px;border:1px solid rgba(255,255,255,.15);display:block}.image-preview-bar{display:none;margin:8px 0;padding:8px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);display:flex;gap:10px;flex-wrap:wrap}.image-preview-thumb{position:relative;width:70px;height:70px;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.15);flex-shrink:0;cursor:pointer}.image-preview-thumb img{width:100%;height:100%;object-fit:cover;display:block}.image-preview-overlay{position:absolute;inset:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;color:#f9fafb;font-size:1.8rem;font-weight:600;opacity:0;transition:opacity .12s ease-out}.image-preview-thumb:hover .image-preview-overlay{opacity:1}.image-preview-overlay span{padding:4px 10px;border-radius:999px;background:rgba(144,166,120,.25);border:1px solid rgba(144,166,120,.7)}.notification-bell .bell-icon,.notification-bell .notification-icon{width:18px;height:18px;display:block;fill:currentColor;pointer-events:none;transition:transform .2s ease}.notification-bell:hover .bell-icon,.notification-bell:hover .notification-icon{transform:translateY(-1px)}.notification-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:320px;max-height:360px;background:var(--card-bg,#050608);border-radius:16px;border:1px solid var(--border-soft,#90a67860);box-shadow:0 20px 50px rgba(0,0,0,.85);overflow:hidden;display:none;z-index:3000}.notification-dropdown.is-open{display:block}.notification-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .9rem;border-bottom:1px solid var(--border-soft,#90a67860);font-size:.85rem}.notification-header span{font-weight:600;letter-spacing:.04em;text-transform:uppercase}.notification-clear{border:none;background:0 0;color:var(--muted,#9ca3af);font-size:.75rem;padding:.2rem .4rem;border-radius:999px;cursor:pointer;transition:background .15s ease,color .15s ease}.notification-clear:hover{background:rgba(255,255,255,.06);color:var(--accent,#90a678)}.notification-list{max-height:280px;overflow-y:auto;padding:.4rem .4rem .6rem}.notification-item{position:relative;padding:8px 10px;border-radius:10px;margin-bottom:6px;font-size:.85rem;background:rgba(255,255,255,.02);color:var(--text,#f4f4f4);border:1px solid transparent;opacity:.55;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,opacity .15s ease,transform .1s ease}.notification-item:last-child{margin-bottom:0}.notification-item--unread{opacity:1;background:rgba(144,166,120,.25);border-color:rgba(144,166,120,.45);transform:translateY(-1px)}.notification-item:hover{background:rgba(255,255,255,.06);opacity:.9;box-shadow:0 10px 24px rgba(0,0,0,.5);transform:translateY(-1px)}.notification-center{position:relative;display:flex;align-items:center}.notification-bell{position:relative;width:34px;height:34px;border-radius:999px;border:1px solid var(--border-soft,#90a67860);background:0 0;color:var(--muted,#9ca3af);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform 80ms ease,color .15s ease}.notification-bell:hover{background:rgba(255,255,255,.06);border-color:var(--accent,#90a678);color:var(--accent,#90a678);box-shadow:0 8px 16px rgba(0,0,0,.4);transform:translateY(-1px)}.notification-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#ef4444;color:#fff;font-size:.65rem;line-height:16px;text-align:center;font-weight:600;box-shadow:0 0 0 1px #050608;display:none}.notification-ping{position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:999px;background:rgba(239,68,68,.4);transform:scale(.8);opacity:0;pointer-events:none}.notification-ping.is-active{animation:notificationPing 1.4s cubic-bezier(0,0,.2,1) infinite}.portal-quote-panel{margin-bottom:10px;border-radius:16px;border:1px solid rgba(144,166,120,.4);background:var(--portal-card-bg-10);box-shadow:none;padding:12px 14px;font-size:.85rem}.portal-quote-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.portal-quote-title{font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.portal-quote-sub{font-size:.8rem;color:var(--muted,#9ca3af)}.portal-quote-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);grid-template-areas:'labor right' 'materials right';gap:12px 14px;align-items:start}.portal-quote-section{min-width:0}.portal-quote-section:first-of-type{grid-area:labor}.portal-quote-section:nth-of-type(2){grid-area:materials}.portal-quote-right{grid-area:right;align-self:start}.portal-quote-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted,#9ca3af);margin-bottom:4px}.portal-quote-text{margin:0;line-height:1.35}.portal-quote-labor-lines{display:flex;flex-direction:column;gap:3px}.portal-quote-labor-line{line-height:1.35}.portal-quote-labor-line.is-heading{margin-top:4px;font-weight:600}.portal-quote-labor-line.is-bullet{position:relative;padding-left:12px}.portal-quote-labor-line.is-bullet::before{content:'\2022';position:absolute;left:0;top:0;color:var(--accent,#90a678)}.portal-quote-material-table{display:flex;flex-direction:column;gap:2px}.portal-quote-material-head,.portal-quote-material-row{display:grid;grid-template-columns:minmax(0,1fr) 42px 92px 82px;gap:8px;align-items:center}.portal-quote-material-head{padding:0 0 6px;margin-bottom:2px;border-bottom:1px dashed var(--border-soft,#90a67860)}.portal-quote-material-head>span{font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted,#9ca3af);white-space:nowrap}.portal-quote-material-head>span:not(:first-child){text-align:right}.portal-quote-material-row{padding:3px 0;border-bottom:1px solid rgba(144,166,120,.16)}.portal-quote-material-row:last-child{border-bottom:none}.portal-quote-material-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-quote-material-qty,.portal-quote-material-total,.portal-quote-material-unit{text-align:right;white-space:nowrap}.portal-quote-material-row.is-unpriced .portal-quote-material-qty,.portal-quote-material-row.is-unpriced .portal-quote-material-total,.portal-quote-material-row.is-unpriced .portal-quote-material-unit{color:var(--muted,#9ca3af)}.portal-quote-totals{padding:12px;border-radius:12px;border:1px solid var(--border-soft,#90a67860);background:var(--portal-card-bg-10);margin-bottom:10px;font-size:.85rem}.portal-quote-total-row{display:flex;justify-content:space-between;margin-bottom:4px}.portal-quote-total-row:last-child{margin-bottom:0}.portal-quote-pill{padding:6px 14px;border-radius:999px;font-size:.88rem;border:1px solid var(--border-soft,#90a67860);background:var(--portal-card-bg-10);display:inline-flex;align-items:center;justify-content:center}.portal-quote-summary-item{text-align:right}.portal-quote-summary-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted,#9ca3af);margin-bottom:2px}.image-modal{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;z-index:9999}.image-modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.85);cursor:pointer}.image-modal-content{position:relative;z-index:10000;max-width:90vw;max-height:90vh;display:flex;align-items:center;justify-content:center}#modal-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px;box-shadow:0 0 30px rgba(0,0,0,.8)}.image-modal-close{position:absolute;top:20px;right:20px;width:48px;height:48px;border-radius:50%;border:none;background:rgba(0,0,0,.7);color:var(--accent,#90a678);font-size:36px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease;z-index:10001}.image-modal-close:hover{background:rgba(0,0,0,.9);color:var(--accent,#90a678)}.portal-quote-summary-row{display:flex;align-items:center;justify-content:flex-end;gap:8px}.portal-quote-pill{padding:6px 14px;border-radius:999px;font-size:.88rem;border:1px solid var(--border-soft,#90a67860);background:var(--portal-card-bg-10);display:inline-flex;align-items:center;justify-content:center;min-width:0}.portal-quote-pill--value{font-weight:600;color:var(--accent,#90a678)}.portal-quote-summary-value{font-weight:600;font-size:.9rem;color:var(--text,#f4f4f4)}@keyframes notificationPing{0%{transform:scale(.8);opacity:.8}100%{transform:scale(1.8);opacity:0}}@media (max-width:900px){.portal-shell{grid-template-columns:1fr}.portal-quote-body{grid-template-columns:minmax(0,1fr);grid-template-areas:'labor' 'materials' 'right'}.portal-quote-material-head,.portal-quote-material-row{grid-template-columns:minmax(0,1fr) 38px 84px 76px;gap:6px}}