/* 芘丽芙 PC 后台样式（按 PC后台原型_v1 与 开发规范_v2 还原） */
:root{
  --ink:#1B1916;--ink-2:#4A453D;--ink-3:#8A8378;--ink-4:#B5AEA2;
  --gold:#A9814F;--gold-l:#C9A961;--gold-bg:#F4EDE1;--gold-line:#E2D5BC;
  --page:#F7F5F1;--surface:#FFFFFF;--surface-2:#FAF8F4;--surface-3:#F0EDE6;
  --line:#E8E3DA;--line-s:#EFECE5;
  --blue:#5C7186;--blue-bg:#EDF1F5;--red:#A85A46;--red-bg:#F6EBE7;
  --green:#4E7A63;--green-bg:#EAF1ED;--purple:#7C6B8E;--purple-bg:#F1EEF5;--orange:#A87C2E;--orange-bg:#F6F0E2;
  --r-s:8px;--r-m:12px;--r-l:16px;
  --sh-1:0 1px 3px rgba(27,25,22,.05);--sh-2:0 6px 20px rgba(27,25,22,.08);--sh-3:0 18px 50px rgba(27,25,22,.16);
  --side-w:216px;
}
[hidden]{display:none !important}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--page);color:var(--ink);font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-size:13px}
body::before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(900px 420px at 10% -8%,rgba(169,129,79,.08),transparent 60%),radial-gradient(700px 380px at 95% 0%,rgba(92,113,134,.06),transparent 60%)}
svg{display:block}
button{font-family:inherit;cursor:pointer}

/* 登录 */
.login-wrap{position:fixed;inset:0;background:linear-gradient(160deg,#F7F5F1,#EDE8DF);z-index:100;display:flex;align-items:center;justify-content:center}
.login-wrap[hidden]{display:none !important}
.login-box{width:380px;background:var(--surface);border:1px solid var(--line-s);border-radius:var(--r-l);padding:34px 32px 30px;box-shadow:var(--sh-3)}
.login-box .logo{display:flex;align-items:center;gap:10px;padding:2px 10px 20px;border-bottom:1px solid rgba(255,255,255,.08)}
.login-box .err{color:var(--red);font-size:12px;margin-top:10px;min-height:18px}
/* 服务未启动：不是账号问题是环境问题，给醒目告警块 + 可操作指引 */
.login-box .err.warn{background:var(--red-bg);border:1px solid #E5CFC7;border-radius:10px;padding:11px 13px;line-height:1.55;font-weight:500}
.login-box .err .eh{display:block;color:#8A6A5E;font-weight:300;line-height:1.7;margin-top:5px}

/* 超级管理员专属元素：非超管（编辑）登录时整块隐藏 */
body.role-editor [data-super-only]{display:none !important}

/* 布局 */
.app{display:flex;min-height:100vh;position:relative}
.side{width:var(--side-w);flex:0 0 auto;background:linear-gradient(175deg,#221F1A,#171512);color:#D8D2C7;padding:22px 14px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;z-index:50}
.logo{display:flex;align-items:center;gap:10px;padding:2px 10px 20px;border-bottom:1px solid rgba(255,255,255,.08)}
.logo .lg{width:34px;height:34px;border-radius:10px;background:linear-gradient(140deg,var(--gold-l),var(--gold));display:flex;align-items:center;justify-content:center;color:#FFF8EC;font-weight:600;font-size:15px}
.logo b{font-size:15px;letter-spacing:.12em;color:#F2ECDF;font-weight:600}
.logo span{font-size:10px;color:#9A937F;display:block;margin-top:3px;letter-spacing:.08em}
.nav{margin-top:16px;flex:1}
.nav .grp{font-size:10px;color:#8A8371;letter-spacing:.18em;padding:14px 12px 8px}
.nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;cursor:pointer;color:#B9B2A3;font-size:13px;margin-bottom:2px;transition:.16s;position:relative}
.nav a:hover{background:rgba(255,255,255,.05);color:#EDE7DA}
.nav a.on{background:linear-gradient(90deg,rgba(201,169,97,.18),rgba(201,169,97,.05));color:#F0E6CF}
.nav a.on::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:2px;background:var(--gold-l)}
.nav a svg{width:16px;height:16px;flex:0 0 auto}
.side .foot{font-size:10.5px;color:#7E7767;padding:14px 12px 0;border-top:1px solid rgba(255,255,255,.08);line-height:1.8}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{height:58px;background:var(--surface);border-bottom:1px solid var(--line-s);display:flex;align-items:center;padding:0 26px;gap:14px;position:sticky;top:0;z-index:20}
.crumb{font-size:15px;font-weight:600;letter-spacing:.02em}
.top-search{position:relative;margin-left:auto;display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--line-s);border-radius:999px;padding:8px 15px;width:250px;color:var(--ink-4);font-size:12.5px;outline:none;font-family:inherit}
input.top-search{color:var(--ink);font-weight:400}
input.top-search:focus{border-color:var(--gold-line);box-shadow:0 0 0 3px rgba(169,129,79,.10)}
input.top-search::placeholder{color:var(--ink-4);font-weight:300}
.top-search-panel{display:none;position:absolute;top:44px;right:0;width:380px;max-height:480px;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.08);z-index:30;padding:6px 0}
.top-search-panel.on{display:block}
.topbar{position:relative}
.admin{display:flex;align-items:center;gap:9px}
.admin .ava{width:32px;height:32px;border-radius:50%;background:linear-gradient(140deg,var(--gold-l),var(--gold));color:#FFF8EC;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500}
.admin .nm{font-size:12.5px;font-weight:500}
.admin .rl{font-size:10.5px;color:var(--ink-4);display:block;margin-top:1px}
.content{padding:24px 26px 60px;max-width:1240px;width:100%}
.pg-view{display:none}
.pg-view.on{display:block}

/* 通用组件 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 17px;border-radius:9px;background:var(--ink);color:#F4EDE1;font-size:12.5px;font-weight:500;cursor:pointer;border:none;transition:.16s;letter-spacing:.02em}
.btn:hover{background:#2C2925}
.btn.gold{background:linear-gradient(140deg,var(--gold-l),var(--gold));color:#FFF8EC}
.btn.ghost{background:var(--surface);color:var(--gold);border:1px solid var(--gold-line)}
.btn.sm{height:30px;padding:0 12px;font-size:12px;border-radius:8px}
.btn.danger{background:var(--surface);color:var(--red);border:1px solid #E5CFC7}
.card{background:var(--surface);border:1px solid var(--line-s);border-radius:var(--r-l);box-shadow:var(--sh-1)}
.pill{display:inline-block;font-size:10.5px;padding:3px 9px;border-radius:999px;font-weight:400;letter-spacing:.03em;border:1px solid transparent}
.p-gold{background:var(--gold-bg);color:var(--gold);border-color:var(--gold-line)}
.p-blue{background:var(--blue-bg);color:var(--blue)}
.p-green{background:var(--green-bg);color:var(--green)}
.p-red{background:var(--red-bg);color:var(--red)}
.p-orange{background:var(--orange-bg);color:var(--orange)}
.p-purple{background:var(--purple-bg);color:var(--purple)}
.p-gray{background:var(--surface-3);color:var(--ink-2)}
.sec-t{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}
.sec-t h2,.sec-t h3{font-size:19px;font-weight:600;letter-spacing:.02em}
.sec-t .en{font-size:10px;letter-spacing:.2em;color:var(--ink-4);text-transform:uppercase}
.sec-t .sp{flex:1}
.hint{font-size:11.5px;color:var(--ink-4);font-weight:300;line-height:1.7}

/* 筛选行 */
.filters{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.sel{position:relative;display:flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--line);border-radius:9px;height:36px;padding:0 12px;font-size:12.5px;color:var(--ink-2);cursor:pointer;transition:.15s;user-select:none}
.sel:hover{border-color:var(--gold-line)}
.sel b{font-weight:400}
.sel svg{width:12px;height:12px;color:var(--ink-4)}
.sel .menu{display:none;position:absolute;top:calc(100% + 6px);left:0;min-width:100%;background:var(--surface);border:1px solid var(--line-s);border-radius:10px;box-shadow:var(--sh-2);z-index:70;padding:5px}
.sel.open .menu{display:block}
.sel .menu .it{padding:7px 12px;border-radius:7px;font-size:12px;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.sel .menu .it:hover{background:var(--surface-3)}
.sel .menu .it.on{background:var(--gold-bg);color:var(--gold)}
/* 案例筛选区搜索框：白底 + 描边 + 前置放大镜，hover/focus 走品牌金（与 .sel 下拉同高同圆角） */
.f-search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--gold-line);border-radius:9px;height:36px;padding:0 12px;width:250px;box-shadow:var(--sh-1);transition:border-color .15s,box-shadow .15s}
.f-search svg{width:14px;height:14px;color:var(--ink-3);flex:0 0 auto;transition:color .15s}
.f-search:hover{border-color:var(--gold-l)}
.f-search:hover svg{color:var(--gold-l)}
.f-search:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(169,129,79,.12)}
.f-search:focus-within svg{color:var(--gold)}
.f-search input{border:none;background:transparent;color:var(--ink);font-weight:400;outline:none;font-family:inherit;flex:1;min-width:0;height:100%;font-size:12.5px}
.f-search input::placeholder{color:var(--ink-4);font-weight:300;font-size:12.5px}
.clear-x{display:none;color:var(--ink-4);font-size:15px;cursor:pointer;line-height:1}
.clear-x.on{display:inline-block !important}

/* 表格 */
.tb{width:100%;border-collapse:collapse}
.tb th{font-size:11px;color:var(--ink-4);font-weight:400;text-align:left;padding:12px 14px;letter-spacing:.08em;border-bottom:1px solid var(--line-s);background:var(--surface-2);white-space:nowrap;vertical-align:middle}
.tb td{padding:11px 14px;border-bottom:1px solid var(--line-s);font-size:12.5px;color:var(--ink-2);vertical-align:middle}
/* .ct = 该列表头与单元格内容统一水平居中，使表头落在列的垂直中轴线上（日期 / 数字 / 状态徽标这类短内容列专用） */
.tb th.ct,.tb td.ct{text-align:center}
.tb tr:last-child td{border-bottom:none}
.tb tbody tr{transition:.14s;cursor:pointer}
.tb tbody tr:hover{background:var(--surface-2)}
.tb .tcell{display:flex;align-items:center;gap:11px}
.tb .thumb{width:44px;height:44px;border-radius:9px;flex:0 0 auto;background:var(--surface-3);object-fit:cover}
.tb .thumb.ph{display:flex;align-items:center;justify-content:center;color:var(--ink-4);font-size:11px}
.tb .t1{font-weight:500;color:var(--ink);font-size:12.5px}
.tb .t2{font-size:11px;color:var(--ink-4);margin-top:3px}
.tb .ops{display:flex;gap:6px;opacity:0;transition:.15s}
.tb tbody tr:hover .ops{opacity:1}
.mini{font-size:11.5px;padding:4px 9px;border-radius:7px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);cursor:pointer;transition:.14s}
.mini:hover{border-color:var(--gold-line);color:var(--gold)}
.mini.rd:hover{border-color:#E5CFC7;color:var(--red)}
.chk{width:15px;height:15px;border-radius:4px;border:1.3px solid var(--line);background:var(--surface);cursor:pointer;flex:0 0 auto;display:inline-block;vertical-align:middle}
.chk.on{background:var(--gold);border-color:var(--gold);position:relative}
.chk.on::after{content:"✓";color:#FFF8EC;font-size:10px;position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.pager{display:flex;align-items:center;gap:6px;padding:14px;justify-content:flex-end}
.pager .pg{min-width:28px;height:28px;border-radius:7px;border:1px solid var(--line);background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:12px;cursor:pointer;color:var(--ink-2)}
.pager .pg.on{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.pager .info{font-size:11.5px;color:var(--ink-4);margin-right:auto}

/* 统计卡 */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}
.stat{padding:16px 18px}
.stat .lb{font-size:11.5px;color:var(--ink-3);font-weight:300}
.stat .v{font-size:26px;font-weight:600;margin-top:8px;letter-spacing:.02em}
.stat .v small{font-size:12px;color:var(--ink-4);font-weight:300;margin-left:4px}
.stat .tr{font-size:11px;margin-top:8px}
.up{color:var(--green)}.dn{color:var(--red)}

/* 抽屉 */
.mask{position:fixed;inset:0;background:rgba(27,25,22,.42);z-index:80;opacity:0;pointer-events:none;transition:.25s;backdrop-filter:blur(2px)}
.mask.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:520px;max-width:94vw;background:var(--surface);z-index:90;box-shadow:var(--sh-3);transform:translateX(102%);transition:transform .3s cubic-bezier(.32,.9,.35,1);display:flex;flex-direction:column}
.drawer.on{transform:none}
.dr-head{padding:18px 24px;border-bottom:1px solid var(--line-s);display:flex;align-items:center}
.dr-head b{font-size:15px;font-weight:600;letter-spacing:.02em}
.dr-head .x{margin-left:auto;width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-3);font-size:16px;transition:.15s}
.dr-head .x:hover{background:var(--surface-3)}
.dr-body{flex:1;overflow-y:auto;padding:20px 24px 30px}
.dr-foot{padding:14px 24px;border-top:1px solid var(--line-s);display:flex;gap:10px;justify-content:flex-end;background:var(--surface-2)}

/* 表单 */
.f-lb{font-size:12px;color:var(--ink-3);font-weight:400;margin:16px 0 7px;display:flex;align-items:center;gap:6px}
.f-lb .req{color:var(--red)}
.f-in{width:100%;height:38px;border:1px solid var(--line);border-radius:9px;padding:0 12px;font-size:12.5px;font-family:inherit;color:var(--ink);background:var(--surface);outline:none;transition:.15s}
.f-in:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(169,129,79,.12)}
select.f-in{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 20 20' fill='none' stroke='%23948C7F' stroke-width='1.5'%3E%3Cpath d='M5 8l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:30px}
input[type="date"].f-in,input[type="time"].f-in{appearance:none}
textarea.f-in{height:auto;min-height:88px;padding:10px 12px;line-height:1.8;resize:vertical;font-weight:300}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.f-split{display:flex;gap:8px;align-items:center}
.f-split input.f-in{flex:1;min-width:0}
.f-split select.f-in{width:82px;flex:0 0 auto}
/* 只读输入框：浅灰底 + 禁止光标 + 去聚焦高亮，避免与可编辑框外观混淆（如账号名） */
.f-in.is-ro{background:var(--surface-3);color:var(--ink-3);cursor:not-allowed}
.f-in.is-ro:focus{border-color:var(--line);box-shadow:none}
.up-zone{border:1.5px dashed var(--gold-line);background:var(--gold-bg);border-radius:var(--r-m);padding:18px;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--gold);font-size:12px;cursor:pointer;transition:.16s;text-align:center}
.up-zone:hover{background:#F0E6D2}
.up-zone svg{width:20px;height:20px}
.up-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:9px}
.up-cell{aspect-ratio:1;border-radius:9px;background:var(--surface-3);display:flex;align-items:center;justify-content:center;color:var(--ink-4);font-size:11px;cursor:pointer;border:1px solid var(--line-s);position:relative;transition:.15s;overflow:hidden}
.up-cell:hover{border-color:var(--gold-line);color:var(--gold)}
.up-cell.fill{background:var(--gold-bg);color:var(--gold);border-style:solid;border-color:var(--gold-line)}
.up-cell img{width:100%;height:100%;object-fit:cover}
.up-cell .rm{position:absolute;top:2px;right:2px;width:16px;height:16px;border-radius:50%;background:rgba(0,0,0,.5);color:#fff;font-size:10px;display:none;align-items:center;justify-content:center}
.up-cell:hover .rm{display:flex}
.v-ico{font-size:18px;color:var(--gold);pointer-events:none}
.tag-in{display:flex;flex-wrap:wrap;gap:7px;min-height:38px;border:1px solid var(--line);border-radius:9px;padding:6px 9px;background:var(--surface);align-items:center}
.tag-in .pill{margin:0;display:inline-flex;align-items:center;gap:5px}
.tag-in .pill i{font-style:normal;cursor:pointer;opacity:.55;font-size:11px}
.tag-in input{border:none;outline:none;flex:1;min-width:90px;font-size:12px;font-family:inherit;background:transparent;height:24px}
.radio-row{display:flex;gap:9px;flex-wrap:wrap}
.radio-pill{padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:12px;color:var(--ink-2);cursor:pointer;transition:.15s}
.radio-pill.on{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.radio-pill.ro{opacity:.4;cursor:not-allowed;border-style:dashed}
.csw-row{display:flex;gap:9px;flex-wrap:wrap}
.csw{padding:7px 14px;border-radius:999px;font-size:12px;cursor:pointer;border:1.5px solid transparent;transition:.15s}
.csw.on{border-color:var(--ink);box-shadow:0 0 0 2px rgba(27,25,22,.08)}
.csw.ev-live{background:var(--red-bg);color:var(--red)}
.csw.ev-act{background:var(--purple-bg);color:var(--purple)}
.csw.ev-ck{background:var(--orange-bg);color:var(--orange)}
.csw.ev-sp{background:var(--green-bg);color:var(--green)}
.csw.ev-pt{background:var(--gold-bg);color:var(--gold)}
.agree-box{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-2);margin-top:14px}

/* 医生卡片 */
.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.doc-c{padding:18px;display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer;transition:.18s;position:relative}
.doc-c:hover{box-shadow:var(--sh-2);transform:translateY(-2px)}
.doc-c .del-x{position:absolute;top:10px;left:10px;width:24px;height:24px;border-radius:50%;background:var(--red-bg);color:var(--red);display:flex;align-items:center;justify-content:center;font-size:13px;line-height:1;cursor:pointer;opacity:0;transition:.15s}
.doc-c:hover .del-x{opacity:1}
.doc-c .del-x:hover{background:var(--red);color:#fff}
.doc-c .edit-hint{position:absolute;top:12px;right:12px;font-size:10.5px;color:var(--ink-4);opacity:0;transition:.15s}
.doc-c:hover .edit-hint{opacity:1;color:var(--gold)}
.doc-c .dph{width:64px;height:64px;border-radius:50%;background:linear-gradient(140deg,var(--gold-bg),var(--surface-3));color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:500;margin-bottom:11px;border:1px solid var(--gold-line)}
.doc-c .dn{font-size:14.5px;font-weight:600;letter-spacing:.03em}
.doc-c .dt{font-size:11.5px;color:var(--gold);margin-top:4px}
.doc-c .dd{font-size:11px;color:var(--ink-4);margin-top:3px}
.doc-c .tags{margin-top:10px;display:flex;gap:5px;flex-wrap:wrap;justify-content:center}

/* 排班网格 */
.sch-grid{width:100%;border-collapse:separate;border-spacing:3px}
.sch-grid th{font-size:10.5px;color:var(--ink-4);font-weight:400;padding:4px 0;text-align:center}
.sch-grid th:first-child{text-align:left;padding-right:6px}
.sch-grid td:first-child{font-size:11.5px;color:var(--ink-2);padding-right:6px;white-space:nowrap;text-align:left}
.sch-grid td{text-align:center}
.sch-grid .sch-cell{width:100%;height:26px;border-radius:6px;background:#f2f2f2;color:var(--ink-4);font-size:10.5px;cursor:pointer;text-align:center;border:none;font-family:inherit;transition:.13s;padding:0}
.sch-grid .sch-cell.e{background:var(--blue-bg);color:var(--blue)}
.sch-grid .sch-cell.n{background:var(--gold-bg);color:var(--gold)}
.sch-grid .sch-cell.x{background:var(--red-bg);color:var(--red)}
.sch-grid .sch-cell:hover{filter:brightness(.95)}

/* 院区卡片 */
.hos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.hos-c{cursor:pointer;overflow:hidden;transition:.15s}
.hos-c:hover{box-shadow:var(--sh-2);transform:translateY(-1px)}
.hos-c .cov{height:120px;background:linear-gradient(135deg,var(--gold-bg),var(--surface-3));display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.hos-c .cov svg{width:40px;height:40px;color:var(--gold)}
.hos-c .edittag{position:absolute;top:10px;right:10px;font-size:10px;color:var(--ink-4);background:rgba(255,255,255,.8);padding:3px 8px;border-radius:999px}
.hos-c .hb{padding:16px}
.hos-c .hn{font-size:15px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:8px}
.hos-c .hs{font-size:11.5px;color:var(--ink-4);margin-top:10px;display:flex;gap:14px}

/* 活动日历 */
.cal-wrap{display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start}
table.mcal{width:100%;border-collapse:collapse;background:var(--surface);border-radius:var(--r-l);overflow:hidden;border:1px solid var(--line-s);table-layout:fixed}
.mcal th{font-size:11px;color:var(--ink-4);font-weight:400;padding:11px 6px 9px;border-bottom:1px solid var(--line-s);text-align:center}
.mcal td{border-top:1px solid var(--line-s);padding:6px;height:90px;vertical-align:top;cursor:pointer;transition:.14s;position:relative;overflow:hidden}
.mcal td:hover{background:var(--surface-2)}
.mcal td.dim .dn{color:var(--line)}
.mcal td.today{box-shadow:inset 0 0 0 2px var(--gold)}
.mcal .dn{font-size:11.5px;color:var(--ink-3);display:block;margin-bottom:4px}
.mcal .ev{display:block;font-size:10.5px;border-radius:999px;padding:3px 18px 3px 10px;margin-top:3px;white-space:nowrap;line-height:1.5;overflow:hidden;text-overflow:ellipsis;position:relative;font-weight:500}
.mcal .ev .evx{position:absolute;top:1px;right:2px;width:12px;height:12px;color:var(--red);font-size:12px;line-height:12px;text-align:center;cursor:pointer;opacity:0;transition:.13s;font-style:normal;background:none;box-shadow:none}
.mcal .ev:hover .evx{opacity:1}
.mcal .ev.live{background:var(--red-bg);color:var(--red)}
.mcal .ev.act{background:var(--purple-bg);color:var(--purple)}
.mcal .ev.ck{background:var(--orange-bg);color:var(--orange)}
.mcal .ev.sp{background:var(--green-bg);color:var(--green)}
.mcal .ev.pt{background:var(--gold-bg);color:var(--gold)}
#actList{max-height:520px;overflow-y:auto}
#actList .act-item{display:flex;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line-s);align-items:flex-start;transition:.14s}
#actList .act-item:hover{background:var(--surface-2)}
#actList .act-item:last-child{border:none}
#actList .act-item .dt{width:46px;flex:0 0 auto;text-align:center;line-height:1.2}
#actList .act-item .dt b{display:block;font-size:20px;font-weight:600;color:var(--ink)}
#actList .act-item .dt span{display:block;font-size:10.5px;color:var(--ink-4);margin-top:2px}
#actList .act-item .act-body{flex:1;min-width:0}
#actList .act-item .pill{font-size:10.5px;padding:2px 8px;margin-bottom:6px}
#actList .act-item .t1{font-size:13px;font-weight:500;color:var(--ink);line-height:1.4}
#actList .act-item .t2{font-size:11px;color:var(--ink-4);margin-top:5px}

/* 仪器 */
.dev-group{margin-bottom:20px}
.dev-group .sec-t{margin-bottom:10px}

/* 顶部全站搜索面板 */
.top-search-panel{display:none;position:absolute;top:54px;right:24px;width:380px;max-height:480px;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px rgba(27,25,22,.12);z-index:40;padding:8px 0}
.top-search-panel.on{display:block}
.top-search-panel .grp{padding:6px 0}
.top-search-panel .grp-title{font-size:10.5px;color:var(--ink-4);letter-spacing:.18em;padding:6px 16px;text-transform:uppercase}
.top-search-panel .item{padding:9px 16px;cursor:pointer;display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--ink-2);transition:.12s}
.top-search-panel .item:hover{background:var(--surface-2);color:var(--ink)}
.top-search-panel .item .meta{font-size:10.5px;color:var(--ink-4);margin-left:auto}
.top-search-panel .empty{padding:24px;text-align:center;color:var(--ink-4);font-size:12px}
.top-search-panel mark{background:var(--gold-bg);color:var(--gold);border-radius:3px;padding:0 2px}
.top-search-panel .item mark{color:var(--gold)}

/* Toast */
.toast{position:fixed;top:74px;left:50%;transform:translateX(-50%) translateY(-16px);background:var(--ink);color:#F4EDE1;padding:10px 22px;border-radius:999px;font-size:12.5px;opacity:0;transition:.3s;z-index:120;pointer-events:none;box-shadow:var(--sh-2)}
.toast.on{opacity:1;transform:translateX(-50%)}

/* 案例表格空态 */
.case-row-empty{padding:50px 20px;text-align:center;color:var(--ink-4);font-size:12.5px}

/* 排班总览（医生管理）卡片额外样式 */
.sch-grid td:first-child{font-size:11.5px;color:var(--ink-2);padding-right:6px;white-space:nowrap;text-align:left;font-weight:500}

/* 案例表里的 SVG 缩略图 */
.tb .thumb.ph svg{width:18px;height:18px}
