:root{--color-teal: #00BFA5;--color-teal-dark: #009E88;--color-teal-deeper: #007D6E;--color-teal-light: #E0F7F4;--color-teal-xlight: #F0FDFB;--gradient-teal: linear-gradient(135deg, #00BFA5 0%, #00D4B8 100%);--color-navy: #0B1420;--color-navy-mid: #1E293B;--color-navy-soft: #334155;--color-purple: #6B5CE7;--color-purple-light: #EDE9FD;--color-white: #FFFFFF;--color-bg: #F2EDE2;--color-bg-subtle: #EDE8DC;--color-border: #E2E8F0;--color-border-subtle: #F1F5F9;--color-text-primary: #0B1420;--color-text-body: #1E293B;--color-text-secondary: #64748B;--color-text-muted: #94A3B8;--color-text-on-teal: #FFFFFF;--color-success: #10B981;--color-success-light: #D1FAE5;--color-warning: #F59E0B;--color-warning-light: #FEF3C7;--color-error: #EF4444;--color-error-light: #FEE2E2;--color-info: #3B82F6;--color-info-light: #DBEAFE;--card-bg: var(--color-white);--card-border: 1px solid var(--color-border);--card-radius: 8px;--card-shadow: 0 1px 3px rgba(11, 20, 32, .08);--color-patient-page-bg: #FDFBFA;--card-shadow-md: 0 4px 12px rgba(11, 20, 32, .1);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--spacing-3xl: 64px;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 30px;--font-size-4xl: 36px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.7;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 9999px;--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;min-height:100vh;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:var(--font-size-base);color:var(--color-text-body);background-color:var(--color-bg);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{color:var(--color-text-primary);line-height:var(--line-height-tight);font-weight:var(--font-weight-bold)}.card{background:var(--card-bg);border:var(--card-border);border-radius:var(--card-radius);box-shadow:var(--card-shadow-md)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background-color:var(--color-teal);color:var(--color-text-on-teal);border:none;border-radius:var(--radius-md);padding:10px 22px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background-color var(--transition-fast),box-shadow var(--transition-fast);min-height:44px;white-space:nowrap;text-decoration:none}.btn-primary:hover{background-color:var(--color-teal-dark);box-shadow:0 2px 8px #00bfa54d}.btn-primary:active{background-color:var(--color-teal-deeper)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background-color:var(--color-white);color:var(--color-text-body);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px 22px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast);min-height:44px;white-space:nowrap;text-decoration:none}.btn-secondary:hover{background-color:var(--color-bg);border-color:#cbd5e1}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:8px;background-color:var(--color-error);color:#fff;border:none;border-radius:var(--radius-md);padding:10px 22px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background-color var(--transition-fast);min-height:44px}.btn-danger:hover{background-color:#dc2626}.btn-sm{padding:6px 12px;min-height:36px;font-size:var(--font-size-sm)}.link-button{background:none;border:none;cursor:pointer;color:var(--color-teal);text-decoration:underline;padding:0;font:inherit}.link-button:hover{color:var(--color-teal-dark)}.table{border-collapse:collapse}.table th,.table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--color-border)}.table th{font-weight:600;color:var(--color-navy)}.table tbody tr:hover{background:var(--color-bg-subtle)}.text-muted{color:var(--color-text-muted);font-size:var(--font-size-sm)}.text-secondary{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.text-error{color:var(--color-error);font-size:var(--font-size-sm)}.text-success{color:var(--color-success);font-size:var(--font-size-sm)}.text-teal{color:var(--color-teal)}.label-section{display:block;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.1em;text-transform:uppercase;color:var(--color-teal);margin-bottom:var(--spacing-sm)}.field-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.field-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.field-input{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text-body);background:var(--color-white);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);min-height:44px}.field-input::placeholder{color:var(--color-text-muted)}.field-input:focus{outline:none;border-color:var(--color-teal);box-shadow:0 0 0 3px var(--color-teal-light)}.field-input.error{border-color:var(--color-error);box-shadow:0 0 0 3px var(--color-error-light)}.field-error{font-size:var(--font-size-xs);color:var(--color-error)}.field-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.placeholder-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg)}.placeholder-card{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:40px 48px;text-align:center;max-width:420px;width:90%;box-shadow:var(--card-shadow-md)}.placeholder-badge{display:inline-block;background:var(--color-teal);color:var(--color-text-on-teal);font-size:11px;font-weight:700;padding:3px 12px;border-radius:var(--radius-pill);margin-bottom:16px;letter-spacing:.08em;text-transform:uppercase}.placeholder-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-navy);margin-bottom:8px}.placeholder-sub{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.header-teal{background:var(--gradient-teal);color:var(--color-text-on-teal)}.patient-layout{min-height:100vh;background-color:var(--color-patient-page-bg);display:flex;flex-direction:column;position:relative;overflow:hidden}.patient-header{background-color:var(--color-white);height:64px;display:flex;align-items:center;padding:0 var(--spacing-lg);box-shadow:0 1px 3px #00000014;position:relative;z-index:10}.patient-header .logo-text-reki{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-navy)}.patient-header .logo-text-tagline{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-left:var(--spacing-sm);white-space:nowrap;opacity:.8}.patient-main-content{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);position:relative;z-index:1}.patient-illustration{position:absolute;opacity:.1;z-index:0}.patient-illustration-top-right{top:-50px;right:-50px;width:300px;height:300px;background-color:var(--color-teal-light);border-radius:40% 60% 70% 30%/40% 50% 60%;filter:blur(50px)}.patient-illustration-bottom-left{bottom:-80px;left:-80px;width:350px;height:350px;background-color:var(--color-purple-light);border-radius:60% 40% 30% 70%/60% 50% 50% 40%;filter:blur(60px)}@media(max-width:768px){.patient-illustration{display:none}.patient-header{height:52px;padding:0 var(--spacing-md)}.patient-header .logo-text-reki{font-size:var(--font-size-lg)}.patient-header .logo-text-tagline{display:none}.patient-main-content{padding:var(--spacing-md)}}.patient-login-page{display:flex;flex-direction:column;min-height:100vh;width:100%;max-width:420px;margin:0 auto;text-align:center}.patient-login-logo{flex-shrink:0;padding-top:var(--spacing-lg);padding-bottom:0}.patient-login-center{flex:1;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;min-height:0;width:100%;padding-top:var(--spacing-lg)}.patient-login-center .patient-login-welcome-subtitle{margin:0 0 var(--spacing-lg);width:100%}.patient-login-center .patient-login-card,.patient-login-center .patient-login-signup{width:100%}.patient-login-logo-text{display:block;font-size:var(--font-size-3xl);font-weight:800;color:var(--color-navy);letter-spacing:-.5px;line-height:1.1}.patient-login-logo-img{display:block;max-width:560px;max-height:200px;width:auto;height:auto;margin:0 auto;object-fit:contain}.patient-login-welcome-title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-navy);margin:0 0 8px;line-height:1.2}.patient-login-welcome-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0 0 var(--spacing-xl);line-height:1.4}.patient-login-card{background:var(--color-white);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--card-shadow-md);padding:var(--spacing-xl);text-align:left}.patient-login-error{background:var(--color-error-light);color:var(--color-error);border:1px solid rgba(239,68,68,.3);border-radius:8px;padding:12px 16px;font-size:var(--font-size-sm);margin-bottom:var(--spacing-lg)}.patient-login-form{display:flex;flex-direction:column;gap:0}.patient-login-field-group{margin-bottom:var(--spacing-lg)}.patient-login-label{display:block;font-size:var(--font-size-sm);font-weight:600;color:var(--color-navy);margin-bottom:8px}.patient-login-input-wrap{display:flex;align-items:center;background:var(--color-white);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 1px 2px #0b14200d;transition:border-color .15s,box-shadow .15s}.patient-login-input-wrap:focus-within{border-color:var(--color-teal);box-shadow:0 0 0 3px var(--color-teal-light)}.patient-login-input-wrap.has-error{border-color:var(--color-error)}.patient-login-input-icon{display:flex;align-items:center;justify-content:center;width:48px;flex-shrink:0;color:var(--color-text-muted)}.patient-login-input{flex:1;min-width:0;height:48px;padding:0 12px 0 0;border:none;background:transparent;font-size:var(--font-size-base);color:var(--color-navy);outline:none}.patient-login-input::placeholder{color:var(--color-text-muted)}.patient-login-password-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:48px;flex-shrink:0;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;border-radius:0 10px 10px 0}.patient-login-password-toggle:hover{color:var(--color-navy)}.patient-login-field-error{display:block;font-size:var(--font-size-xs);color:var(--color-error);margin-top:6px}.patient-login-forgot-wrap{text-align:right;margin-bottom:var(--spacing-lg)}.patient-login-forgot-link{font-size:var(--font-size-sm);color:var(--color-teal);text-decoration:underline}.patient-login-forgot-link:hover{color:var(--color-teal-dark)}.patient-login-submit{width:100%;height:52px;border:none;border-radius:10px;background:var(--color-teal);color:var(--color-text-on-teal);font-size:var(--font-size-base);font-weight:700;letter-spacing:.05em;cursor:pointer;transition:background .15s}.patient-login-submit:hover:not(:disabled){background:var(--color-teal-dark)}.patient-login-submit:disabled{opacity:.7;cursor:not-allowed}.patient-login-signup{margin-top:var(--spacing-lg);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.patient-login-signup-link{color:var(--color-teal);text-decoration:underline}.patient-login-signup-link:hover{color:var(--color-teal-dark)}.patient-auth-card-centered{text-align:center}.patient-auth-success-message{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0 0 var(--spacing-lg);line-height:1.4}.patient-auth-back-wrap{margin-top:var(--spacing-lg);font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.badge-teal{background:var(--color-teal-light);color:var(--color-teal-dark)}.badge-success{background:var(--color-success-light);color:#065f46}.badge-warning{background:var(--color-warning-light);color:#92400e}.badge-error{background:var(--color-error-light);color:#991b1b}.badge-purple{background:var(--color-purple-light);color:var(--color-purple)}.badge-grey{background:#f1f5f9;color:#64748b}
