/* V2.8.11 — calm blue and sea-green, visible control boundaries and focus states. */
:root{--bg:#f4f8fa;--line:#dae5ec;--text:#193347;--muted:#607586;--blue:#21649b;--blue2:#174e7f;--teal:#167f74;--shadow:0 8px 30px rgba(34,76,99,.055)}
body,#app{background:var(--bg)}button{transition:background .18s,border-color .18s,box-shadow .18s,transform .18s}button:disabled{transform:none!important;box-shadow:none!important;cursor:not-allowed}
.primary{border:1px solid #185888;background:linear-gradient(125deg,#276baf,#167f86);box-shadow:0 3px 8px #1b698921,inset 0 1px 0 #ffffff2b;border-radius:11px;min-height:42px;padding:10px 17px;color:#fff}
.primary:hover:not(:disabled){background:linear-gradient(125deg,#205c99,#116d75);box-shadow:0 5px 14px #256a922e;transform:translateY(-1px)}.primary:active:not(:disabled){transform:translateY(0)}
.secondary{border:1px solid #cedfe9;background:#f0f6fb;color:#295c7c;border-radius:11px;min-height:40px;padding:9px 14px}.secondary:hover:not(:disabled){background:#e5f1f7;border-color:#a6c8d8;box-shadow:0 2px 6px #244f7710}
.danger{background:#fff5f3;border-radius:10px}.danger:hover:not(:disabled){background:#ffeae5;border-color:#e9a69a}
.primary:focus-visible,.secondary:focus-visible,button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #4695b3;outline-offset:3px}
.field input,.field select,.field textarea{border-color:#d3e0e8;border-radius:10px;min-height:43px;color:var(--text)}.field input:focus,.field select:focus,.field textarea:focus{border-color:#76a8bd;box-shadow:0 0 0 3px #e4f1f6}.field input::placeholder,.field textarea::placeholder{color:#8497a5}
.field label{color:#526b7d}.sidebar{background:linear-gradient(180deg,#fff 0,#f7fbfc 100%);border-right-color:#dce8ed}.brand{border-bottom-color:#e3edf1}.brand-sub{color:#6d8a98}
.nav-item{border:1px solid transparent;min-height:43px;border-radius:11px}.nav-item:hover{background:#ebf4f7;border-color:#d2e5ec;color:#1c5976}.nav-icon{color:#277595}.nav-badge{background:#e1eef6;border:1px solid #cddfe9;color:#245779}.section-title{color:#617f8f}.mini-row.active{background:#e7f2f4;color:#18746e}.mini-dot{background:#91b4c5}
.sidebar-bottom{border-color:#dce8ed}.recharge-button{background:linear-gradient(110deg,#e7f3ef,#edf4fd);border:1px solid #c8dedb;color:#1b6e70;border-radius:11px}.recharge-button:hover{background:#dfeeea}.credit-card{border-color:#d6e7e7;background:#f0f8f5;border-radius:12px}.credit-card strong{color:#186c66}.collapse{background:#edf4f7;border:1px solid #d8e6ed;color:#547c91}
.main{background:radial-gradient(ellipse at 70% 0,#eaf4f9 0,transparent 55%)}.topbar{background:rgba(255,255,255,.95);border-color:#dce7ed;backdrop-filter:blur(12px)}.role-pill{background:#f0f7f6;color:#386b63;border-color:#d6e5df}.language-control{border-color:#d2e2e9;border-radius:10px;background:#f8fbfd;color:#48718a}
.hero h1{color:#183e58;letter-spacing:-.02em}.hero p{color:#658094}.hero-logo{filter:drop-shadow(0 4px 7px #1862771a)}.composer-card{border-color:#cfdfe8;border-radius:20px;box-shadow:0 10px 35px #294e7410}.composer-card:focus-within{border-color:#91b8ca;box-shadow:0 0 0 3px #e9f3f6,0 10px 35px #294e7410}.attach-label{background:#eef6f8;color:#35657b;border:1px dashed #b8d3df;border-radius:9px}.attach-label:hover{background:#e1eff4}
.panel{border-radius:17px;border-color:#dae6ec}.setup-note{color:#4d7183;background:#edf6f8;border:1px solid #d7e8ef}.choice{border-radius:12px;min-height:48px}.choice.active{background:linear-gradient(115deg,#edf7f5,#f0f5ff);border-color:#9dbecb;color:#246578;box-shadow:inset 0 0 0 1px #d7e9ee}.choice:hover{border-color:#a6c6d5}
.chat-composer{border-color:#c5dbe5;border-radius:17px}.case-header{background:#f2f7faf0}.case-header-inner{border-color:#d3e4ed;border-radius:13px}.patient-avatar{background:#e5f3f2;color:#227d78}.msg.user .bubble{background:#286799}.msg.assistant .bubble{border-color:#d7e5ed;box-shadow:0 3px 12px #294b6c06}.hint,.charge-note,.patient-meta{color:#687f8f}
.recharge-card{border-radius:17px;border-color:#d2e3eb;background:linear-gradient(155deg,#fff 55%,#f1f8fa);box-shadow:0 5px 20px #24597808}.recharge-card:hover{border-color:#9fc3d0}.recharge-card strong{color:#3b738b}.recharge-card b{color:#174f69}.recharge-card small{min-height:2.8em;font-size:12px;color:#537e79;line-height:1.5}.recharge-note{margin-top:22px;color:#527586;font-size:13px;line-height:1.8;padding:14px 16px;border:1px solid #d5e6e9;border-radius:12px;background:#edf7f5}
.session-row{background:#fcfefe;border-color:#d9e6ed;border-radius:12px}.content-item{border-radius:14px}.upload-cert{background:#e8f3f7;border:1px solid #c5dce7;color:#27627e}.mobile-toggle{border-radius:9px;border-color:#cfdee6;background:#eef6f8;color:#39738b;min-width:40px;min-height:40px}
/* Public login: the published notice is the content, the form remains independent. */
.login-screen{padding:48px 32px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 4% 12%,#dff0ec99 0,transparent 50%),radial-gradient(ellipse at 98% 95%,#dceafa8c 0,transparent 50%),#f5f9fb;min-height:100svh}
.auth-shell{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(330px,.85fr);gap:60px;align-items:center;max-width:1180px;width:100%}.auth-announcement{min-width:0}.auth-brand{display:flex;align-items:center;gap:12px}.auth-brand img{width:40px;height:40px}.auth-brand strong{display:block;font-size:21px;letter-spacing:-.025em}.auth-brand span{display:block;font-size:11px;color:#6d8898;margin-top:4px;letter-spacing:.06em}
.auth-intro{margin:40px 0 22px}.auth-kicker{font-size:12px;color:#287869;letter-spacing:.13em;display:flex;align-items:center;gap:8px}.auth-kicker>span[aria-hidden]{display:inline-block;width:6px;height:6px;border-radius:50%;background:#39988b}.auth-intro h1{font-size:34px;letter-spacing:-.035em;color:#1d4258;margin:10px 0}.auth-intro p{font-size:14px;color:#648092;line-height:1.7;margin:0}
.login-notices{position:relative;background:#ffffffd9;border:1px solid #cfdee6;border-radius:20px;box-shadow:0 12px 36px #294e6910;padding:26px;min-height:280px;overflow:hidden}.login-notices::before{position:absolute;top:0;left:24px;right:24px;height:3px;content:'';background:linear-gradient(90deg,#3c9f8f,#5891c4 65%,#e0edf5);border-radius:0 0 4px 4px}
.notice-selector{display:flex;align-items:center;gap:12px;font-size:12px;color:#617c8b;margin-bottom:20px}.notice-selector>span{flex:none}.notice-selector select{min-width:0;width:100%;border:1px solid #d6e3eb;background:#f6fafc;color:#31596f;padding:9px 10px;border-radius:9px;font-size:13px;text-overflow:ellipsis}
.notice-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:11px;line-height:1.6;color:#758996}.notice-pin{display:inline-flex;background:#e4f3ee;border:1px solid #cce7dc;color:#277c63;padding:2px 7px;border-radius:5px;font-weight:600}.notice-title{font-size:23px;line-height:1.5;letter-spacing:-.02em;color:#254b63;margin:14px 0 16px;overflow-wrap:anywhere}.notice-body{max-height:390px;overflow:auto;padding-right:8px;scrollbar-width:thin;scrollbar-color:#b4cbd5 transparent}.notice-body:focus-visible{outline:2px solid #6bacc5;outline-offset:3px}.notice-body>:first-child{margin-top:0}.notice-fallback{font-size:11px;color:#786642;background:#faf5e7;display:inline-block;padding:4px 9px;border-radius:6px}.notice-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid #e1eaf0;font-size:11px;color:#6a8392}.notice-pagination button{font-size:12px;min-height:36px;padding:7px 10px}.notice-empty{padding:25px 8px;color:#637e8e;line-height:1.8}.notice-empty h2{font-size:18px;color:#345d72}.notice-empty p{font-size:14px}.notice-empty-icon{width:44px;height:44px;border:1px solid #d0e2e8;border-radius:13px;background:#eff7f8;display:grid;place-items:center;color:#408b96;font-size:24px}
.auth-announcement-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:11px;color:#6d8999;margin:17px 4px 0}.auth-announcement-footer a{font-size:12px;color:#377888;text-decoration:none}.auth-announcement-footer a:hover{text-decoration:underline}
.auth-shell .login-card{width:100%;padding:32px;border:1px solid #d7e5eb;border-radius:24px;box-shadow:0 20px 55px #2349670e;background:#fff;text-align:left;scroll-margin-top:24px}.auth-shell .login-card .login-logo{width:36px;height:36px;display:none}.auth-shell .login-card h2{font-size:25px;color:#25485e;margin:13px 0 10px}.auth-shell .login-card>p{font-size:13px;line-height:1.75;color:#6c8596;margin-bottom:24px}.auth-shell .auth-language{margin:-8px -8px 4px}.auth-tabs{border:1px solid #e0eaf0;background:#f1f6f9;border-radius:11px;margin-bottom:23px}.auth-tabs button{font-size:13px;min-height:38px;border:1px solid transparent}.auth-tabs button.active{color:#246287;border-color:#d7e7ef;border-radius:8px;box-shadow:0 2px 6px #2955780a}.auth-tabs button:hover:not(.active){color:#39718c;background:#e7f1f5}.auth-card .field{margin-bottom:17px}.auth-card .field input{min-height:46px}.auth-card .field>.secondary{margin-top:9px;font-size:12px}.auth-card .login-btn{min-height:46px}.auth-card .login-note{font-size:11px;line-height:1.8;color:#738897}.auth-error{line-height:1.7;font-size:12px}
@media(min-width:1500px){.auth-shell{gap:86px;max-width:1240px}.login-screen{padding:60px}}
@media(max-width:950px){.auth-shell{gap:28px;grid-template-columns:minmax(0,1fr) minmax(310px,.9fr)}.login-screen{padding:32px 24px}.login-notices{padding:21px}.auth-shell .login-card{padding:25px}.auth-intro h1{font-size:30px}.notice-title{font-size:21px}}
@media(max-width:720px){.login-screen{padding:26px 18px 40px;align-items:flex-start}.auth-shell{grid-template-columns:minmax(0,1fr);gap:30px;max-width:520px}.auth-brand strong{font-size:19px}.auth-intro{margin:26px 0 16px}.auth-intro h1{font-size:28px}.auth-intro p{font-size:13px}.login-notices{border-radius:17px;min-height:200px;padding:21px 18px}.notice-body{max-height:280px;font-size:14px}.notice-title{font-size:20px}.auth-shell .login-card{border-radius:20px;padding:24px}.auth-announcement-footer{font-size:11px}.notice-selector{flex-wrap:wrap;gap:6px}.auth-shell .login-card h2{font-size:24px}.recharge-card small{min-height:0}.primary,.secondary{min-height:43px}.topbar{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
