*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #1976D2;--primary-dark: #1565C0;--primary-light: #BBDEFB;--success: #2E7D32;--success-light: #C8E6C9;--danger: #D32F2F;--danger-light: #FFCDD2;--warning: #FFA000;--warning-light: #FFE0B2;--info: #0288D1;--info-light: #B3E5FC;--gray-light: #f5f5f5;--gray-medium: #e0e0e0;--gray-dark: #9e9e9e;--gray-border: #ddd;--text-primary: #333;--text-secondary: #666;--text-light: #999;--white: #ffffff;--shadow-sm: 0 2px 4px rgba(0,0,0,.1);--shadow-md: 0 4px 8px rgba(0,0,0,.15);--shadow-lg: 0 8px 16px rgba(0,0,0,.2);--border-radius-sm: 4px;--border-radius-md: 8px;--border-radius-lg: 12px;--transition: all .3s ease}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6;color:var(--text-primary);background-color:#f8f9fa}h1,h2,h3,h4,h5,h6{font-weight:600;margin-bottom:16px;color:var(--text-primary)}h2{font-size:24px;margin-bottom:24px;color:var(--primary);position:relative;padding-bottom:8px}h2:after{content:"";position:absolute;bottom:0;left:0;width:60px;height:3px;background-color:var(--primary);border-radius:2px}h3{font-size:20px;margin-bottom:16px;color:var(--text-primary)}h4{font-size:16px;margin-bottom:12px;color:var(--text-primary)}p{margin-bottom:12px;color:var(--text-secondary)}.record-meta,.detail-label,.detail-value{font-size:14px}.stat-value{font-size:28px;font-weight:700;color:var(--primary)}.container{max-width:1200px;margin:0 auto;padding:0 20px}.page-container{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;padding:30px 0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:30px}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.record-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}header{background-color:var(--primary);color:var(--white);padding:16px 0;box-shadow:var(--shadow-md);position:sticky;top:0;z-index:1000}nav{display:flex;justify-content:space-between;align-items:center}.logo{font-size:24px;font-weight:700;color:var(--white);text-decoration:none}.nav-links{display:flex;list-style:none;align-items:center}.nav-links li{margin-left:24px}.nav-links a{color:var(--white);text-decoration:none;font-size:16px;font-weight:500;transition:var(--transition);position:relative;padding:8px 0}.nav-links a:hover{color:var(--primary-light)}.nav-links a:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background-color:var(--white);transition:var(--transition)}.nav-links a:hover:after{width:100%}.hamburger{display:none;font-size:24px;cursor:pointer;color:var(--white);padding:8px;border-radius:var(--border-radius-sm);transition:var(--transition)}.hamburger:hover{background-color:#ffffff1a}.stat-card{background-color:var(--white);padding:24px;border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm);transition:var(--transition);border:1px solid var(--gray-medium)}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px);border-color:var(--primary-light)}.stat-card h3{margin-bottom:12px;color:var(--text-secondary);font-size:16px;font-weight:500}.stat-card p{margin-top:8px;font-size:14px;color:var(--text-light)}.record-card{background-color:var(--white);padding:24px;border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm);transition:var(--transition);border:1px solid var(--gray-medium);cursor:pointer}.record-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px);border-color:var(--primary-light)}.record-card h3{margin-bottom:16px;color:var(--primary);font-size:18px}.record-meta{font-size:14px;color:var(--text-secondary);margin-bottom:16px;line-height:1.5}.record-meta p{margin-bottom:4px}.btn{display:inline-block;padding:12px 24px;background-color:var(--primary);color:var(--white);border:none;border-radius:var(--border-radius-sm);font-size:16px;font-weight:500;cursor:pointer;transition:var(--transition);position:relative;overflow:hidden;text-align:center;min-width:120px}.btn:hover{background-color:var(--primary-dark);box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.btn:focus{outline:none;box-shadow:0 0 0 3px #1976d24d}.btn:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:#ffffff80;opacity:0;border-radius:50%;transform:scale(1) translate(-50%,-50%);transform-origin:50% 50%}.btn:focus:not(:active):after{animation:ripple 1s ease-out}.btn-success{background-color:var(--success)}.btn-success:hover{background-color:#1b5e20}.btn-danger{background-color:var(--danger)}.btn-danger:hover{background-color:#b71c1c}.btn-warning{background-color:var(--warning)}.btn-warning:hover{background-color:#ff8f00}.btn-outline{background-color:transparent;border:1px solid var(--primary);color:var(--primary)}.btn-outline:hover{background-color:var(--primary);color:var(--white)}.action-btn{padding:20px;background-color:var(--white);border:1px solid var(--primary-light);border-radius:var(--border-radius-md);text-align:center;cursor:pointer;transition:var(--transition);position:relative;overflow:hidden;box-shadow:var(--shadow-sm)}.action-btn:hover{background-color:var(--primary-light);transform:translateY(-4px);box-shadow:var(--shadow-md)}.action-btn:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.action-btn h4{color:var(--primary);margin-bottom:8px}.action-btn p{font-size:14px;color:var(--text-secondary);margin-bottom:0}.action-btn:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:#1976d24d;opacity:0;border-radius:50%;transform:scale(1) translate(-50%,-50%);transform-origin:50% 50%}.action-btn:focus:not(:active):after{animation:ripple 1s ease-out}.action-btn-sm{padding:8px 16px;background-color:var(--primary);color:var(--white);border:none;border-radius:var(--border-radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:var(--transition);position:relative;overflow:hidden;min-width:80px}.action-btn-sm:hover{background-color:var(--primary-dark);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.action-btn-sm:active{transform:translateY(0);box-shadow:none}.action-btn-sm:focus{outline:none;box-shadow:0 0 0 3px #1976d24d}.action-btn-sm:after{content:"";position:absolute;top:50%;left:50%;width:3px;height:3px;background:#ffffff80;opacity:0;border-radius:50%;transform:scale(1) translate(-50%,-50%);transform-origin:50% 50%}.action-btn-sm:focus:not(:active):after{animation:ripple 1s ease-out}@keyframes ripple{0%{transform:scale(0);opacity:.5}to{transform:scale(20);opacity:0}}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:var(--text-primary);font-size:14px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px;border:1px solid var(--gray-border);border-radius:var(--border-radius-sm);transition:var(--transition);font-size:14px;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1976d233}.form-group textarea{resize:vertical;min-height:100px}.error-tip{color:var(--danger);font-size:12px;margin-top:4px;min-height:16px}.password-strength{margin-top:5px;font-size:12px}.strength-bar{height:4px;width:100%;background-color:#f0f0f0;border-radius:2px;margin-top:3px;overflow:hidden}.strength-fill{height:100%;transition:width .3s ease,background-color .3s ease;border-radius:2px}.strength-weak{width:33%;background-color:var(--danger)}.strength-medium{width:66%;background-color:#ff9800}.strength-strong{width:100%;background-color:var(--success)}.auth-container{max-width:450px;margin:60px auto;padding:32px;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);background-color:var(--white);transition:var(--transition);border:1px solid var(--gray-medium)}.auth-container:hover{box-shadow:0 12px 24px #00000026}.auth-container h2{text-align:center;margin-bottom:24px;color:var(--primary);font-size:24px}.auth-container h2:after{left:50%;transform:translate(-50%)}.auth-toggle{text-align:center;margin-top:20px;font-size:14px}.auth-toggle a{color:var(--primary);text-decoration:none;font-weight:500;transition:var(--transition)}.auth-toggle a:hover{text-decoration:underline;color:var(--primary-dark)}.dashboard{margin:0}.dashboard h2{margin-bottom:30px}.medical-records{margin:0}.medical-records h2{margin-bottom:30px}.filter-bar{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap;align-items:center;padding:16px;background-color:var(--white);border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm)}.filter-bar input,.filter-bar select{padding:10px 12px;border:1px solid var(--gray-border);border-radius:var(--border-radius-sm);font-size:14px;min-width:150px}.record-actions{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}.record-detail{margin:0}.record-detail h2{margin-bottom:30px}.detail-section{background-color:var(--white);padding:24px;border-radius:var(--border-radius-md);margin-bottom:24px;transition:var(--transition);box-shadow:var(--shadow-sm);border:1px solid var(--gray-medium)}.detail-section:hover{box-shadow:var(--shadow-md)}.detail-section h3{margin-bottom:20px;color:var(--primary);font-size:18px}.detail-row{display:flex;margin-bottom:12px;align-items:flex-start}.detail-label{width:160px;font-weight:500;color:var(--text-primary);flex-shrink:0}.detail-value{flex:1;color:var(--text-secondary);line-height:1.5}.share-management{margin:0}.share-management h2{margin-bottom:30px}.share-table{width:100%;border-collapse:collapse;margin-bottom:24px;background-color:var(--white);border-radius:var(--border-radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.share-table th,.share-table td{padding:16px;text-align:left;border-bottom:1px solid var(--gray-medium)}.share-table th{background-color:var(--gray-light);font-weight:600;color:var(--text-primary)}.share-table tr:hover{background-color:var(--gray-light)}.doctor-workspace{margin:0}.doctor-workspace h2{margin-bottom:30px}.patient-list{background-color:var(--white);border-radius:var(--border-radius-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--gray-medium)}.patient-item{padding:20px;border-bottom:1px solid var(--gray-medium);display:flex;justify-content:space-between;align-items:center;transition:var(--transition)}.patient-item:hover{background-color:var(--gray-light);transform:translate(4px)}.patient-info h3{color:var(--primary);margin-bottom:8px}.patient-info p{margin-bottom:4px;font-size:14px}@media (max-width: 768px){.hamburger{display:block}.nav-links{position:absolute;top:64px;left:0;width:100%;background-color:var(--primary);flex-direction:column;align-items:center;padding:20px 0;box-shadow:var(--shadow-md);display:none;transition:var(--transition)}.nav-links.active{display:flex}.nav-links li{margin:12px 0}.stats-grid,.quick-actions{grid-template-columns:1fr}.filter-bar{flex-direction:column;align-items:stretch}.filter-bar input,.filter-bar select{width:100%}.record-grid{grid-template-columns:1fr}.detail-row{flex-direction:column;align-items:flex-start}.detail-label{width:100%;margin-bottom:4px}.action-btn-sm,.btn{min-width:48px;min-height:48px;padding:12px 16px}.main-content{padding:20px 0}}@media (max-width: 375px){.auth-container{padding:24px;margin:40px auto}.stat-card{padding:20px}.action-btn{padding:16px}.detail-section{padding:20px}.patient-item{flex-direction:column;align-items:flex-start;gap:12px}.patient-item>div:last-child{align-self:stretch;display:flex;gap:8px}}.loading{display:inline-block;width:24px;height:24px;border:3px solid var(--gray-light);border-top:3px solid var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#fffc;z-index:10000;display:flex;justify-content:center;align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.loading-overlay-content{text-align:center;background-color:var(--white);padding:32px;border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg)}.loading-overlay-content p{margin-top:16px;color:var(--text-secondary)}.toast{position:fixed;top:80px;right:20px;padding:16px 24px;border-radius:var(--border-radius-md);color:var(--white);font-size:14px;font-weight:500;z-index:10000;transform:translate(400px);transition:transform .3s ease,box-shadow .3s ease;box-shadow:var(--shadow-md);max-width:300px}.toast.show{transform:translate(0);box-shadow:var(--shadow-lg)}.toast.success{background-color:var(--success)}.toast.error{background-color:var(--danger)}.toast.info{background-color:var(--primary)}img.lazy{background-color:var(--gray-light);border-radius:var(--border-radius-sm);transition:opacity .3s ease}img.lazy.loaded{opacity:1}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:1000;display:flex;justify-content:center;align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content{background-color:var(--white);padding:32px;border-radius:var(--border-radius-md);width:90%;max-width:500px;box-shadow:var(--shadow-lg)}table{width:100%;border-collapse:collapse;font-size:14px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--gray-light);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--gray-dark);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary-dark)}::selection{background-color:var(--primary-light);color:var(--primary-dark)}*:focus{outline:2px solid var(--primary);outline-offset:2px}button:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}input:disabled,select:disabled,textarea:disabled{background-color:var(--gray-light);cursor:not-allowed}section{animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
