@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&family=DM+Sans:wght@400;500;600&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root{--blue:#1a56db;--teal:#0d9488;--bg:#f4f6fa;--white:#fff;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--sidebar-w:220px}body{background:var(--bg);color:var(--text);font-family:Inter,sans-serif;font-size:14px}input,select,textarea,button{font-family:Inter,sans-serif}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:4px}.role-page{color:#1a1a18;background:#f8f7f4;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:22px 24px 18px;font-family:DM Sans,sans-serif;display:flex}.role-head{text-align:center;margin-bottom:24px}.role-head h1{letter-spacing:0;margin:0;font-size:clamp(28px,3.2vw,34px);font-weight:700;line-height:1}.role-head h1 span{color:#1d9e75}.role-head p{color:#74736c;margin:8px 0 0;font-size:clamp(15px,1.5vw,18px);line-height:1.35}.role-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;width:min(100%,780px);display:grid}.role-card{background:#fff;border:1px solid #dad9d5;border-radius:14px;flex-direction:column;align-items:flex-start;min-height:300px;padding:clamp(20px,2.2vw,26px);transition:border-color .18s,transform .18s,box-shadow .18s;display:flex}.role-card:hover{transform:translateY(-3px);box-shadow:0 22px 46px #1a1a1814}.role-card.doctor:hover{border-color:#7b70dd}.role-card.patient:hover{border-color:#1d9e75}.role-icon{border-radius:50%;place-items:center;width:50px;height:50px;margin-bottom:15px;display:grid}.role-card.doctor .role-icon{color:#5b51c8;background:#eeedfe}.role-card.patient .role-icon{color:#0f6e56;background:#def3ec}.role-icon i{font-size:20px}.role-card h2{letter-spacing:0;margin:0;font-size:clamp(20px,2vw,23px);font-weight:500;line-height:1.1}.role-card>p{color:#73726c;max-width:320px;margin:13px 0 14px;font-size:clamp(14px,1.35vw,16px);line-height:1.4}.role-card ul{gap:8px;margin:0 0 18px;padding:0;list-style:none;display:grid}.role-card li{color:#44433e;align-items:center;gap:12px;font-size:clamp(14px,1.25vw,15px);display:flex}.role-card li i{width:18px;color:inherit;justify-content:center;font-size:16px;display:inline-flex}.role-card.doctor li i{color:#5b51c8}.role-card.patient li i{color:#1d9e75}.role-card button{color:#1f1f1d;cursor:pointer;background:#fff;border:1px solid #bdbcb8;border-radius:12px;width:100%;min-height:44px;margin-top:auto;font-size:clamp(15px,1.45vw,17px);font-weight:500;transition:border-color .18s,background .18s,color .18s}.role-card.doctor button:hover{background:#f5f4ff;border-color:#5b51c8}.role-card.patient button:hover{background:#f1fbf7;border-color:#1d9e75}.role-emergency{grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;width:min(100%,780px);margin:20px 0 0;display:grid}.role-emergency span{background:#d7d5cf;height:1px}.role-emergency p{color:#74736c;text-align:center;white-space:nowrap;margin:0;font-size:clamp(13px,1.25vw,15px)}.role-footer{color:#74736c;align-items:center;gap:16px;margin-top:22px;font-size:clamp(13px,1.25vw,15px);display:flex}.role-footer button,.role-footer a{color:#3e3d39;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none}.role-footer button:hover,.role-footer a:hover{color:#1d9e75}.role-footer i{background:#a4a29b;border-radius:50%;width:4px;height:4px}@media (width<=760px){.role-page{justify-content:flex-start;padding:28px 16px}.role-head{margin-bottom:24px}.role-cards{grid-template-columns:1fr;gap:16px}.role-card{border-radius:16px;min-height:0}.role-card>p{margin:18px 0}.role-card button{min-height:48px}.role-emergency{grid-template-columns:1fr;gap:12px;margin-top:24px}.role-emergency span{display:none}.role-emergency p{white-space:normal}.role-footer{text-align:center;flex-wrap:wrap;justify-content:center;margin-top:26px}}.portal-shell,.portal-login,.portal-public{--portal-bg:#f4f8fb;--portal-surface:#fff;--portal-surface-2:#eef5fb;--portal-border:#d7e4ef;--portal-text:#102033;--portal-muted:#6b7f93;--portal-blue:#2563eb;--portal-green:#16a34a;--portal-amber:#f59e0b;--portal-red:#dc2626;color:var(--portal-text);font-family:DM Sans,sans-serif}.portal-shell{background:var(--portal-bg);min-height:100vh;display:flex}.portal-sidebar{border-right:1px solid var(--portal-border);background:#fff;flex-direction:column;gap:18px;width:260px;min-height:100vh;padding:18px;display:flex}.portal-brand,.portal-patient-chip,.portal-profile-head,.portal-emergency-head,.portal-qr-row{align-items:center;gap:14px;display:flex}.portal-brand-mark,.portal-avatar{background:var(--portal-blue);color:#fff;border-radius:12px;place-items:center;width:42px;height:42px;font-family:Sora,sans-serif;font-weight:700;display:grid}.portal-brand-mark.small{border-radius:10px;flex:none;width:34px;height:34px;font-size:11px}.portal-avatar{color:var(--portal-blue);background:#dbeafe;border-radius:50%}.portal-avatar.large{width:72px;height:72px;font-size:24px}.portal-brand strong,.portal-patient-chip strong{font-family:Sora,sans-serif;font-size:15px;display:block}.portal-brand span,.portal-patient-chip span,.portal-topbar strong,.portal-mini-row span,.portal-appointment span,.portal-row-button span,.portal-security,.portal-tip{color:var(--portal-muted);font-size:12px;display:block}.portal-patient-chip{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:12px;padding:12px}.portal-nav{flex-direction:column;gap:5px;display:flex}.portal-nav button{height:42px;color:var(--portal-muted);text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;padding:0 12px;display:flex}.portal-nav button.active,.portal-nav button:hover{color:var(--portal-text);background:var(--portal-surface);border-color:var(--portal-border)}.portal-nav em{color:#fff;background:var(--portal-red);border-radius:999px;margin-left:auto;padding:2px 7px;font-size:10px;font-style:normal}.portal-clinic{color:var(--portal-muted);margin-top:auto;font-size:12px}.portal-main{flex-direction:column;flex:1;min-width:0;display:flex}.portal-topbar{border-bottom:1px solid var(--portal-border);background:#ffffffeb;justify-content:space-between;align-items:center;height:64px;padding:0 26px;display:flex}.portal-topbar span{font-family:Sora,sans-serif;font-weight:600}.portal-content{padding:26px}.portal-stack{flex-direction:column;gap:18px;max-width:1180px;display:flex}.portal-hero,.portal-panel,.portal-upload,.portal-profile-head,.portal-emergency-card,.portal-login-card{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:14px}.portal-hero{justify-content:space-between;align-items:center;padding:24px;display:flex}.portal-hero h2,.portal-page-head h2,.portal-profile-head h2,.portal-emergency-head h2{margin:0 0 5px;font-family:Sora,sans-serif;font-size:24px}.portal-hero p,.portal-profile-head p,.portal-emergency-head p,.portal-note p,.portal-emergency-contact p,.portal-qr-row p{color:var(--portal-muted);margin:0}.portal-hero button,.portal-sos,.portal-primary,.portal-secondary,.portal-danger{border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:11px 14px;font-weight:600;display:inline-flex}.portal-primary,.portal-hero button{background:var(--portal-blue);color:#fff}.portal-primary:disabled{opacity:.5;cursor:not-allowed}.portal-primary.small,.portal-secondary,.portal-danger{padding:8px 11px;font-size:13px}.portal-secondary{background:var(--portal-surface-2);color:var(--portal-text);border:1px solid var(--portal-border)}.portal-danger{color:#ff8a92;background:#e639461f}.portal-sos{color:#ff9ca3;background:#e6394629}.portal-stats,.portal-actions,.portal-grid.two,.portal-form-grid,.portal-emergency-grid{gap:14px;display:grid}.portal-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-grid.two,.portal-emergency-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-stat,.portal-actions button{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:12px;padding:16px}.portal-stat strong{font-family:Sora,sans-serif;font-size:26px;display:block}.portal-stat span{color:var(--portal-muted)}.portal-stat.blue strong{color:var(--portal-blue)}.portal-stat.green strong{color:var(--portal-green)}.portal-stat.amber strong{color:var(--portal-amber)}.portal-panel{padding:18px}.portal-panel h3{margin:0 0 14px;font-family:Sora,sans-serif;font-size:16px}.portal-panel-head,.portal-page-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.portal-panel-head h3,.portal-page-head h2{margin:0}.portal-panel-head button{color:var(--portal-blue);background:0 0;border:0;font-weight:600}.portal-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.portal-actions button{color:var(--portal-text);align-items:center;gap:10px;display:flex}.portal-clinic-list{gap:10px;display:grid}.portal-clinic-row{border:1px solid var(--portal-border);background:var(--portal-surface-2);border-radius:12px;align-items:center;gap:12px;padding:12px;display:flex}.portal-clinic-row strong,.portal-clinic-row span{display:block}.portal-clinic-row span{color:var(--portal-muted);margin-top:2px;font-size:12px}.portal-med,.portal-mini-row,.portal-appointment,.portal-row-button,.portal-upload{align-items:center;gap:12px;display:flex}.portal-med{padding:10px 0}.portal-med+.portal-med{border-top:1px solid var(--portal-border)}.portal-med>span{background:var(--portal-green);border-radius:50%;flex:none;width:9px;height:9px}.portal-med p{color:var(--portal-muted);margin:3px 0 0;font-size:12px}.portal-empty{color:var(--portal-muted);text-align:center;padding:22px}.portal-tabs{flex-wrap:wrap;gap:8px;display:flex}.portal-tabs button{border:1px solid var(--portal-border);background:var(--portal-surface);color:var(--portal-muted);text-transform:capitalize;border-radius:999px;padding:8px 12px}.portal-tabs button.active{color:#fff;background:var(--portal-blue)}.portal-tabs span{opacity:.8;margin-left:7px}.portal-list{flex-direction:column;gap:12px;display:flex}.portal-appointment,.portal-row-button{background:var(--portal-surface);width:100%;color:var(--portal-text);text-align:left;border:0;justify-content:space-between}.portal-appointment{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:12px;padding:14px}.portal-appointment em,.portal-row-button em{color:var(--portal-blue);text-transform:capitalize;font-style:normal}.portal-expanded{border-top:1px solid var(--portal-border);margin-top:12px;padding-top:12px}.portal-note{background:var(--portal-surface-2);border:1px solid var(--portal-border);border-radius:10px;margin:12px 0;padding:12px}.portal-search,.portal-field input,.portal-form-grid input,.portal-form-grid select,.portal-profile-fields input{background:var(--portal-surface-2);border:1px solid var(--portal-border);width:100%;color:var(--portal-text);border-radius:10px;outline:none;padding:11px 12px}.portal-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:14px}.portal-form-grid label,.portal-field,.portal-profile-fields label{color:var(--portal-muted);flex-direction:column;gap:7px;font-size:12px;display:flex}.portal-upload{padding:14px}.portal-upload i{color:var(--portal-blue);font-size:22px}.portal-upload input{color:var(--portal-muted);flex:1}.portal-table{border-collapse:collapse;border-radius:10px;width:100%;overflow:hidden}.portal-table th,.portal-table td{border-bottom:1px solid var(--portal-border);text-align:left;padding:11px}.portal-table th{color:var(--portal-muted);font-size:12px;font-weight:500}.portal-emergency-card{border-color:#e6394659;padding:22px}.portal-emergency-head{border-bottom:1px solid var(--portal-border);justify-content:space-between;padding-bottom:18px}.portal-emergency-head span,.portal-emergency-section span,.portal-emergency-contact span,.portal-qr-row span{color:var(--portal-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.portal-emergency-head>strong{background:var(--portal-red);color:#fff;border-radius:18px;place-items:center;width:72px;height:72px;font-family:Sora,sans-serif;font-size:26px;display:grid}.portal-emergency-grid{margin:18px 0}.portal-emergency-section,.portal-emergency-contact{background:var(--portal-surface-2);border:1px solid var(--portal-border);border-radius:12px;padding:14px}.portal-emergency-section div{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.portal-emergency-section em{color:var(--portal-text);background:#e6edf5;border-radius:999px;padding:5px 9px;font-size:12px;font-style:normal}.portal-emergency-section em.red{color:#b91c1c;background:#fee2e2}.portal-emergency-section em.amber{color:#92400e;background:#fef3c7}.portal-emergency-section em.blue{color:#1d4ed8;background:#dbeafe}.portal-qr-row{border-top:1px solid var(--portal-border);align-items:flex-start;padding-top:18px}.portal-qr{background:#fff;border-radius:10px;flex:none;grid-template-columns:repeat(12,1fr);gap:3px;width:132px;height:132px;padding:10px;display:grid}.portal-qr span{background:0 0;border-radius:1px}.portal-qr span.on{background:#171b27}.portal-profile-head{padding:18px}.portal-profile-head button{margin-left:auto}.portal-profile-fields{gap:12px;display:grid}.portal-profile-fields span{color:var(--portal-text);font-size:14px}.portal-login,.portal-public{background:radial-gradient(circle at 10% 10%, #2563eb29, transparent 30%), var(--portal-bg);place-items:center;min-height:100vh;padding:22px;display:grid}.portal-login-card{width:min(420px,100%);padding:34px}.portal-login-brand{text-align:center;margin-bottom:24px}.portal-login-brand .portal-brand-mark{margin:0 auto 14px}.portal-login-brand h1{margin:0;font-family:Sora,sans-serif}.portal-login-brand p{color:var(--portal-muted);margin:6px 0 0}.portal-phone{background:var(--portal-surface-2);border:1px solid var(--portal-border);border-radius:10px;display:flex;overflow:hidden}.portal-phone span{color:var(--portal-muted);border-right:1px solid var(--portal-border);padding:11px 12px}.portal-phone input{border:0;border-radius:0}.portal-login-card .portal-primary{width:100%;margin-top:16px}.portal-error{color:#ff9ca3;background:#e6394624;border:1px solid #e6394647;border-radius:10px;margin-bottom:14px;padding:10px 12px;font-size:13px}.portal-otp-note{color:var(--portal-muted);justify-content:space-between;margin-bottom:14px;font-size:13px;display:flex}.portal-otp-note button{color:var(--portal-blue);background:0 0;border:0}.portal-security{text-align:center;margin-top:16px}.portal-loading{color:#6b7f93;background:#f4f8fb;place-items:center;min-height:100vh;font-family:DM Sans,sans-serif;display:grid}.portal-public .portal-emergency-card{width:min(760px,100%)}@media (width<=860px){.portal-shell{display:block}.portal-sidebar{border-right:0;border-bottom:1px solid var(--portal-border);width:100%;min-height:auto}.portal-nav{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.portal-content,.portal-topbar{padding-left:16px;padding-right:16px}.portal-stats,.portal-grid.two,.portal-actions,.portal-form-grid,.portal-emergency-grid{grid-template-columns:1fr}.portal-hero,.portal-page-head,.portal-qr-row{flex-direction:column;align-items:stretch}}
