@font-face{font-family:Vazirmatn;src:url('/clinic/fonts/Vazirmatn-Regular.woff2')}@font-face{font-family:Vazirmatn;src:url('/clinic/fonts/Vazirmatn-Bold.woff2');font-weight:700}
:root{font-family:Vazirmatn,system-ui,sans-serif;color:#183b45;background:#f4f8f8;line-height:1.7}*{box-sizing:border-box}body{margin:0}header{padding:18px clamp(16px,4vw,64px);display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border-bottom:1px solid #dce8e8;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#123f49;font-weight:700}.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}main{max-width:1100px;margin:32px auto;padding:0 18px}h1{font-size:clamp(24px,4vw,34px)}h2{font-size:22px;margin-top:0}.card{background:white;border:1px solid #dce8e8;border-radius:18px;padding:24px;margin:20px 0;box-shadow:0 8px 24px #183b4506}.auth{max-width:470px;margin:60px auto}.stack{display:grid;gap:16px}input,select,button{font:inherit;border:1px solid #c7d9db;border-radius:9px;padding:10px 12px;max-width:100%;min-height:44px}input{width:100%}label{display:grid;gap:6px}button{cursor:pointer;background:#edf5f4;color:#123f49}button.primary{background:#123f49;color:white;border-color:#123f49}button:disabled{opacity:.6;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #42ba9c;outline-offset:3px}.notice{background:#edf7f5;padding:12px 16px;border-radius:10px;font-size:14px}.tabs{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.tabs [aria-selected=true]{background:#123f49;color:#fff}.table-wrap{overflow:auto;max-width:100%}table{border-collapse:collapse;width:100%;min-width:490px;font-size:14px}th,td{padding:12px;text-align:start;border-bottom:1px solid #e3eded;vertical-align:top;overflow-wrap:normal}th{background:#f2f7f7;font-weight:700}.balances{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.balance{background:#eef7f6;border-radius:14px;padding:18px}.money{white-space:nowrap;font-weight:700;direction:ltr;display:inline-block}.pager{display:flex;gap:10px;margin-top:16px}#patient-error{max-width:1000px;margin:20px auto;color:#a22b38;padding:0 18px}[hidden]{display:none!important}@media(max-width:600px){header{gap:12px;padding:14px}.header-actions{width:100%;justify-content:space-between}.card{padding:16px}th,td{padding:9px}.tabs button{flex:1 1 42%}}@media print{body{background:white}body>header,body>#patient-error,.tabs,.no-print,main>h1,main>p{display:none!important}.card{border:0;box-shadow:none;margin:0;padding:0}main{margin:0;max-width:none}main>section:not(.portal-print){display:none}table{font-size:10pt;min-width:0}thead{display:table-header-group}tr{break-inside:avoid}}

/* Appointment preferences and status stay compact on desktop and readable on phones. */
.portal-clinic-select{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.portal-clinic-select>label{flex:1;min-width:200px}.portal-clinic-select>form{flex-basis:100%}.portal-request-form textarea{font:inherit;border:1px solid #c7d9db;border-radius:9px;padding:10px 12px;min-height:90px;width:100%;resize:vertical}.portal-request-status p{margin:6px 0}.portal-request-status{padding:18px;margin:12px 0}.portal-request-form{margin-top:16px}.portal-request-form>p{margin:0}.portal-request-form>button{justify-self:start;min-width:170px}@media(min-width:720px){.portal-request-form{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-request-form>p,.portal-request-form>button,.portal-request-form>label:has(textarea){grid-column:1/-1}#portal-request-choices{display:contents}}

.portal-clinic-select>label{min-width:0;flex:1 1 220px}.portal-clinic-select select{width:100%;min-width:0;text-overflow:ellipsis}

/* WebKit includes the native select option width in ancestor scroll extents. */
.portal-clinic-select>label{overflow:hidden}.portal-clinic-select select{max-width:100%;box-sizing:border-box}
