*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--red:#e41936;--teal:#1aadbd;--navy:#002b5b;--bg:#f5f7fa;--card:#fff;--text:#1e293b;--muted:#64748b;--border:#e2e8f0;--radius:12px}body{background:var(--bg);color:var(--text);flex-direction:column;min-height:100vh;font-family:Inter,Segoe UI,system-ui,sans-serif;display:flex}#root{flex-direction:column;min-height:100vh;display:flex}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}.page{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:2rem 1rem;display:flex}.card{background:var(--card);border-radius:var(--radius);width:100%;max-width:500px;padding:2.5rem;box-shadow:0 4px 24px #00000014}.logo{text-align:center;margin-bottom:2rem}.logo-mark{letter-spacing:-1px;font-size:2rem;font-weight:800}.logo-mark span{color:var(--red)}.logo-sub{color:var(--muted);letter-spacing:.5px;text-transform:uppercase;margin-top:2px;font-size:.8rem}.field{margin-bottom:1.1rem}.field label{color:var(--muted);margin-bottom:5px;font-size:.82rem;font-weight:600;display:block}.field input,.field select,.field textarea{border:1px solid var(--border);width:100%;color:var(--text);background:#fafbfc;border-radius:8px;padding:.65rem .875rem;font-family:inherit;font-size:.95rem;transition:border-color .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--teal);outline:none}.field textarea{resize:vertical;min-height:80px}.field-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.btn{cursor:pointer;border:none;border-radius:8px;width:100%;padding:.85rem;font-size:1rem;font-weight:600;transition:opacity .15s,transform .1s;display:block}.btn:hover{opacity:.9}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--red);color:#fff}.btn-outline{border:1.5px solid var(--border);color:var(--text);background:0 0}.alert{border-radius:8px;margin-bottom:1.25rem;padding:.75rem 1rem;font-size:.875rem}.alert-error{color:#991b1b;background:#fee2e2}.alert-success{color:#166534;background:#dcfce7}.alert-info{color:#1e40af;background:#dbeafe}.card h2{margin-bottom:.25rem;font-size:1.35rem;font-weight:700}.card p.sub{color:var(--muted);margin-bottom:1.75rem;font-size:.875rem}.divider{align-items:center;gap:.75rem;margin:1.25rem 0;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.divider span{color:var(--muted);font-size:.8rem}.steps{justify-content:center;gap:.5rem;margin-bottom:2rem;display:flex}.step{background:var(--border);border-radius:2px;width:32px;height:4px}.step.active{background:var(--teal)}.step.done{background:var(--red)}.otp-input{text-align:center;letter-spacing:.6rem;border:1.5px solid var(--border);background:#fafbfc;border-radius:8px;width:100%;padding:.75rem;font-size:2.2rem;font-weight:800}.otp-input:focus{border-color:var(--teal);outline:none}footer{text-align:center;color:var(--muted);border-top:1px solid var(--border);background:var(--card);padding:1.5rem;font-size:.82rem}footer a{color:var(--teal);font-weight:500}.success-icon{text-align:center;margin-bottom:1rem;font-size:3.5rem}.success-title{text-align:center;margin-bottom:.5rem;font-size:1.5rem;font-weight:700}.success-body{color:var(--muted);text-align:center;font-size:.9rem;line-height:1.6}.navbar{background:var(--navy);color:#fff;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.navbar-brand{font-size:1.4rem;font-weight:800}.navbar-brand span{color:var(--red)}.navbar-links{gap:1.5rem;font-size:.88rem;display:flex}.navbar-links a{color:#fffc}.navbar-links a:hover{color:#fff;text-decoration:none}@media (width<=520px){.card{padding:1.75rem 1.25rem}.field-row{grid-template-columns:1fr}.navbar{padding:.85rem 1rem}.navbar-links{gap:.6rem;font-size:.82rem}.navbar-brand{font-size:1.2rem}}.dash-shell{background:var(--bg);min-height:100vh;display:flex}.dash-sidebar{background:var(--navy);color:#fff;z-index:200;flex-direction:column;flex-shrink:0;width:230px;transition:transform .25s;display:flex}.dash-overlay{display:none}.dash-main{flex-direction:column;flex:1;min-width:0;display:flex}.dash-header{border-bottom:1px solid var(--border);background:#fff;align-items:center;gap:1rem;padding:1.1rem 2rem;display:flex}.dash-header h1{color:var(--text);text-overflow:ellipsis;min-width:0;margin:0;font-size:1.35rem;font-weight:700;overflow:hidden}.dash-hamburger{cursor:pointer;color:var(--text);background:0 0;border:none;flex-shrink:0;align-items:center;padding:6px;display:none}.dash-body{flex:1;padding:2rem;overflow-y:auto}.table-wrap{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}@media (width<=900px){.dash-sidebar{position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.dash-sidebar.open{transform:translate(0);box-shadow:0 0 40px #00000073}.dash-overlay.show{z-index:199;background:#00000080;display:block;position:fixed;inset:0}.dash-hamburger{display:flex}.dash-header{padding:1rem 1.1rem}.dash-body{padding:1.25rem 1rem}}.portal-message-page{flex-direction:column;gap:1rem;display:flex}.portal-message-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.portal-message-top h2{margin-bottom:.25rem;font-size:1.1rem}.portal-message-top p{color:var(--muted);font-size:.9rem;line-height:1.45}.portal-message-refresh{width:auto;min-width:120px}.portal-message-shell{border:1px solid var(--border);background:#fff;border-radius:12px;flex-direction:column;min-height:640px;display:flex;overflow:hidden}.portal-message-thread{background:#f8fafc;flex-direction:column;flex:1;gap:.85rem;min-height:0;padding:1.25rem;display:flex;overflow-y:auto}.portal-message-empty{text-align:center;min-height:300px;color:var(--muted);justify-content:center;align-items:center;padding:2rem;font-size:.9rem;display:flex}.portal-message-row{max-width:min(760px,88%);display:flex}.portal-message-row.own{align-self:flex-end}.portal-message-bubble{border:1px solid var(--border);color:var(--text);word-break:break-word;background:#fff;border-radius:12px;padding:.8rem .9rem;font-size:.92rem;line-height:1.45;box-shadow:0 4px 14px #0f172a0f}.portal-message-row.own .portal-message-bubble{background:var(--navy);border-color:var(--navy);color:#fff}.portal-message-sender{margin-bottom:.35rem;font-size:.8rem}.portal-message-sender strong{font-weight:800}.portal-message-text{white-space:pre-wrap}.portal-message-bubble time{color:var(--muted);margin-top:.45rem;font-size:.72rem;display:block}.portal-message-row.own .portal-message-bubble time{color:#ffffffb8}.portal-message-attachments{gap:.5rem;margin-top:.65rem;display:grid}.portal-message-attachment{background:#eef2f7;border:1px solid #0f172a1f;border-radius:10px;max-width:min(360px,70vw);display:block;overflow:hidden}.portal-message-attachment img,.portal-message-attachment video{object-fit:cover;width:100%;max-height:260px;display:block}.portal-message-composer{border-top:1px solid var(--border);background:#fff;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.portal-message-composer textarea{resize:vertical;border:1px solid var(--border);width:100%;min-height:82px;max-height:180px;font:inherit;color:var(--text);background:#f8fafc;border-radius:10px;padding:.75rem .85rem}.portal-message-composer textarea:focus{border-color:var(--teal);outline:none}.portal-message-tools{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.portal-message-file{border:1px solid var(--border);min-height:42px;color:var(--text);cursor:pointer;background:#fff;border-radius:8px;justify-content:center;align-items:center;padding:.6rem .8rem;font-size:.88rem;font-weight:700;display:inline-flex}.portal-message-file input{display:none}.portal-message-file-list{min-width:160px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.8rem;overflow:hidden}.portal-message-send{width:auto;min-width:110px}@media (width<=700px){.portal-message-shell{min-height:560px}.portal-message-thread{padding:1rem}.portal-message-row{max-width:100%}.portal-message-tools{flex-direction:column;align-items:stretch}.portal-message-file,.portal-message-send,.portal-message-refresh{width:100%}.portal-message-file-list{white-space:normal;min-width:0}}
