@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Noto+Serif+SC:wght@400;500;700&display=swap";:root{--bg-primary:#fcfbf7;--bg-secondary:#f4f1ea;--bg-tertiary:#eae5da;--text-primary:#1f2823;--text-secondary:#4a564f;--text-muted:#7e8d84;--primary:#2c6e49;--primary-hover:#1e4e32;--primary-light:#2c6e491a;--primary-border:#2c6e4933;--accent:#c5a059;--accent-light:#c5a0591a;--danger:#d95d39;--danger-light:#d95d391a;--danger-border:#d95d394d;--border:#dfddd5;--border-focus:#2c6e49;--shadow-sm:0 2px 8px #1f28230a;--shadow-md:0 8px 24px #1f282314;--shadow-lg:0 16px 40px #1f28231f;--glass-bg:#fcfbf7d9;--glass-border:#dfddd580;--sans:"Outfit", system-ui, -apple-system, sans-serif;--serif:"Noto Serif SC", "Playfair Display", Georgia, serif;--card-padding:24px;--btn-padding:12px 24px;--input-padding:12px 16px;--gap-standard:24px;--font-scale:1}.compact-mode{--card-padding:12px!important;--btn-padding:8px 16px!important;--input-padding:8px 12px!important;--gap-standard:12px!important;--font-scale:.92!important}.dark-theme{--bg-primary:#0f1311;--bg-secondary:#171e1b;--bg-tertiary:#1e2723;--text-primary:#e6ebe7;--text-secondary:#adb7b0;--text-muted:#758079;--primary:#4fa973;--primary-hover:#3e8a5c;--primary-light:#4fa97326;--primary-border:#4fa9734d;--accent:#e5c384;--accent-light:#e5c3841f;--danger:#eb7a57;--danger-light:#eb7a5726;--danger-border:#eb7a5766;--border:#262e2a;--border-focus:#4fa973;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 8px 24px #0006;--shadow-lg:0 16px 40px #00000080;--glass-bg:#171e1bd9;--glass-border:#262e2a80}*{box-sizing:border-box;margin:0;padding:0;transition:background-color .3s,border-color .3s,color .15s}body{font-family:var(--sans);background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}h1,h2,h3,h4{color:var(--text-primary);letter-spacing:-.02em;font-weight:600}.serif-font{font-family:var(--serif)}.app-container{background-color:var(--bg-primary);min-height:100vh;display:flex}.sidebar{background-color:var(--bg-secondary);border-right:1px solid var(--border);z-index:100;flex-direction:column;width:260px;height:100vh;display:flex;position:sticky;top:0}.mobile-bottom-nav{display:none}.mobile-only-inline,.mobile-only-flex{display:none!important}.app-header{border-bottom:1px solid var(--border);z-index:10;background-color:var(--bg-secondary);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.header-left{align-items:center;gap:24px;display:flex}.clinic-selector-wrapper{max-width:100%;padding:6px 12px}.clinic-selector-select{text-overflow:ellipsis;white-space:nowrap;max-width:250px;overflow:hidden}.patient-overview-header{border-bottom:1px solid var(--border);background-color:var(--bg-secondary);-webkit-user-select:none;user-select:none;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 24px;display:flex}.patient-overview-details{color:var(--text-secondary);flex-wrap:wrap;gap:16px;margin-top:8px;font-size:12px;display:flex}.patient-overview-expand-btn{display:none}.main-content{flex-direction:column;flex:1;height:100vh;display:flex;overflow-y:auto}.premium-card{background-color:var(--bg-secondary);border:1px solid var(--border);padding:var(--card-padding);box-shadow:var(--shadow-sm);border-radius:16px;transition:transform .2s,box-shadow .2s}.premium-card:hover{box-shadow:var(--shadow-md);border-color:var(--primary-border)}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);box-shadow:var(--shadow-md);border-radius:16px}.chip-container{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.chip{font-size:calc(14px * var(--font-scale));cursor:pointer;background-color:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);-webkit-user-select:none;user-select:none;border-radius:50px;padding:8px 16px;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1)}.chip:hover{background-color:var(--primary-light);border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}.chip.active{background-color:var(--primary);border-color:var(--primary);box-shadow:0 4px 12px #2c6e4940;color:#fff!important}.premium-input,.premium-select,.premium-textarea{width:100%;padding:var(--input-padding);background-color:var(--bg-secondary);border:1px solid var(--border);font-family:var(--sans);font-size:calc(15px * var(--font-scale));color:var(--text-primary);border-radius:12px;outline:none;transition:all .2s}.premium-input:focus,.premium-select:focus,.premium-textarea:focus{border-color:var(--border-focus);background-color:var(--bg-primary);box-shadow:0 0 0 3px var(--primary-light)}.premium-button{padding:var(--btn-padding);background-color:var(--primary);color:#fff;font-weight:600;font-size:calc(15px * var(--font-scale));cursor:pointer;border:none;border-radius:12px;align-items:center;gap:8px;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.premium-button:hover{background-color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #2c6e4940}.premium-button:active{transform:translateY(0)}.premium-button-secondary{padding:var(--btn-padding);background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);font-weight:500;font-size:calc(15px * var(--font-scale));cursor:pointer;border-radius:12px;align-items:center;gap:8px;transition:all .2s;display:inline-flex}.premium-button-secondary:hover{background-color:var(--bg-secondary);border-color:var(--text-muted)}.scroll-panel{padding:var(--card-padding);flex:1;overflow-y:auto}.grid-2{gap:var(--gap-standard);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.grid-3{gap:var(--gap-standard);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}@media (width<=1024px){.grid-2,.grid-3{grid-template-columns:1fr}}@media (width<=768px){:root{--card-padding:14px;--btn-padding:10px 18px;--input-padding:10px 14px;--gap-standard:14px;--font-scale:.95}.sidebar{display:none!important}.app-container{flex-direction:column;height:100vh;padding-bottom:64px;overflow:hidden}.main-content{height:calc(100vh - 64px)}.workbench-container.show-list aside{width:100%!important;display:flex!important}.workbench-container.show-list .patient-dashboard,.workbench-container.show-dashboard aside{display:none!important}.workbench-container.show-dashboard .patient-dashboard{width:100%!important;display:flex!important}.desktop-only{display:none!important}.mobile-bottom-nav{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--glass-border);z-index:1000;justify-content:space-around;align-items:center;height:64px;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 24px #0000000d;display:flex!important}.mobile-only-inline{display:inline-flex!important}.mobile-bottom-nav-btn{color:var(--text-muted);font-size:11px;font-weight:600;font-family:var(--sans);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;height:100%;transition:all .2s;display:flex}.mobile-bottom-nav-btn.active{color:var(--primary)}.mobile-bottom-nav-btn:active{transform:scale(.95)}.app-header{padding:10px 16px!important}.header-left{gap:12px!important}.mobile-only-flex{display:flex!important}.clinic-selector-wrapper{padding:4px 8px!important}.clinic-selector-select{max-width:110px!important}.patient-overview-header{cursor:pointer;transition:background-color .15s;padding:10px 14px!important}.patient-overview-header:active{background-color:var(--bg-tertiary)!important}.patient-overview-expand-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:inline-flex!important}.patient-overview-expand-btn:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.patient-overview-details.collapsed{display:none!important}.patient-overview-details.expanded{border-top:1px dashed var(--border);flex-direction:column;width:100%;padding-top:12px;gap:8px!important;margin-top:12px!important;display:flex!important}}@media (width<=360px){.clinic-selector-select{max-width:80px!important}}.acupuncture-point-dot{cursor:pointer;transition:r .2s,fill .2s,filter .2s}.acupuncture-point-dot:hover{filter:drop-shadow(0 0 6px var(--primary))}.tongue-photo-container{border:1px solid var(--border);background-color:var(--bg-tertiary);aspect-ratio:4/3;border-radius:12px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.tongue-img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.tongue-photo-container:hover .tongue-img{transform:scale(1.05)}.prescription-row-expand{background-color:var(--bg-tertiary);border-bottom:1px solid var(--border);overflow:hidden}.login-screen{background:radial-gradient(circle at 10% 20%, #2c6e4914 0%, transparent 40%), radial-gradient(circle at 90% 80%, #c5a05914 0%, transparent 40%), var(--bg-primary);justify-content:center;align-items:center;width:100vw;height:100vh;padding:20px;display:flex;position:relative;overflow-y:auto}.login-card{width:100%;max-width:480px;box-shadow:var(--shadow-lg);border:1px solid var(--glass-border);border-radius:24px;padding:40px;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s;position:relative;overflow:hidden}.login-card:before{content:"";background:linear-gradient(90deg, var(--primary) 0%, var(--accent) 50%, var(--primary) 100%);width:100%;height:4px;position:absolute;top:0;left:0}.login-card:hover{transform:translateY(-4px);box-shadow:0 20px 48px #1f282326}.login-header-controls{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.lang-toggle-container{background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;gap:4px;padding:4px;display:flex}.lang-btn{cursor:pointer;color:var(--text-secondary);font-size:11px;font-weight:700;font-family:var(--sans);background:0 0;border:none;border-radius:6px;padding:4px 8px;transition:all .2s}.lang-btn.active{background-color:var(--primary);color:#fff!important}.theme-toggle-btn{border:1px solid var(--border);background:var(--bg-tertiary);cursor:pointer;color:var(--text-primary);border-radius:8px;justify-content:center;align-items:center;padding:8px;transition:all .2s;display:flex}.theme-toggle-btn:hover{background-color:var(--bg-secondary);border-color:var(--text-muted)}.login-brand{text-align:center;flex-direction:column;align-items:center;margin-bottom:32px;display:flex}.login-logo-badge{background-color:var(--primary-light);color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary-border);border-radius:20px;justify-content:center;align-items:center;margin-bottom:16px;padding:16px;animation:4s ease-in-out infinite float;display:inline-flex}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.login-title{color:var(--text-primary);letter-spacing:-.01em;margin-bottom:6px;font-size:26px;font-weight:700}.login-subtitle{color:var(--text-muted);font-size:14px;font-weight:500}.login-error-banner{background-color:var(--danger-light);border:1px solid var(--danger-border);color:var(--danger);border-radius:12px;align-items:center;gap:8px;margin-bottom:24px;padding:12px 16px;font-size:13.5px;font-weight:600;animation:.4s ease-in-out shake;display:flex}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.login-form{flex-direction:column;gap:20px;margin-bottom:32px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;padding-left:2px;font-size:12px;font-weight:700}.input-with-icon{align-items:center;display:flex;position:relative}.input-icon{color:var(--text-muted);pointer-events:none;align-items:center;transition:color .2s;display:flex;position:absolute;left:14px}.input-with-icon .premium-input{height:48px;padding-left:42px}.input-with-icon .premium-input:focus+.input-icon{color:var(--primary)}.login-submit-btn{background-color:var(--primary);width:100%;height:48px;box-shadow:0 4px 12px var(--primary-light);border-radius:12px;justify-content:center;margin-top:8px;font-size:15px;font-weight:700}.demo-accounts-section{border-top:1px dashed var(--border);padding-top:24px}.demo-accounts-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:6px;margin-bottom:12px;font-size:12px;font-weight:700;display:flex}.demo-accounts-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.demo-acc-btn{border:1px solid var(--border);background-color:var(--bg-tertiary);cursor:pointer;text-align:left;font-family:var(--sans);border-radius:10px;flex-direction:column;align-items:flex-start;padding:8px 12px;transition:all .2s;display:flex}.demo-acc-btn:hover:not(:disabled){background-color:var(--primary-light);border-color:var(--primary);transform:translateY(-1px)}.demo-acc-btn span:first-child{color:var(--text-primary);font-size:12.5px;font-weight:600}.demo-acc-btn .demo-credentials{color:var(--text-muted);margin-top:2px;font-family:monospace;font-size:10.5px}.demo-acc-btn:disabled{opacity:.5;cursor:not-allowed;background-color:var(--bg-secondary);border-style:dashed}.demo-acc-btn.inactive span:first-child{color:var(--text-muted);text-decoration:line-through}.animate-fade-in{animation:.5s cubic-bezier(.16,1,.3,1) both fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.acupuncture-map-wrapper{background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:16px;width:300px;height:520px;padding:10px;position:relative}.tongue-photo-container svg{max-width:100%;height:auto}@media (width<=768px){.login-card{padding:var(--card-padding);border-radius:16px}.login-brand{margin-bottom:20px}.login-logo-badge{margin-bottom:12px;padding:12px}.login-title{font-size:22px}.demo-accounts-grid{grid-template-columns:1fr}}@media (width<=360px){.acupuncture-map-wrapper{aspect-ratio:300/520;width:100%!important;height:auto!important}}
