/* 线上雷奇 · 松石工作台 · CSS-only visual refresh */

/* ⓐ 色板（三选一：把想用的一组取消注释，其余注掉） */
:root{
  /* 1 天青蓝——科技蓝白
  --brand:#1D4ED8;--brand2:#2F63E8;--brandbg:#E9EFFF;--gold:#38BDF8; */
  /* 2 松石绿（默认，李泽霖 2026-09-19 选定）——清爽 */
  --brand:#0F766E;--brand2:#0B655E;--brandbg:#E3F4F2;--gold:#5EEAD4;
  /* 3 靛紫——旧皮肤的亲戚，但亮
  --brand:#5B4BD6;--brand2:#7061E8;--brandbg:#ECEAFF;--gold:#C4B5FD; */

  --paper:#F3F7F7;--ink:#192F35;--mute:#586D73;--line:#DCE6E6;--zebra:#F7FAFA;
  --ok:#157A4F;--okbg:#E4F5EC;--warn:#C0392B;--warnbg:#FBEAE8;--amber:#9A6700;--amberbg:#FFF4D6;
  /* 首页/AI 经理侧栏沿用旧变量名，但值全部换成浅色 */
  --dark:#F3F7F7;--dark2:#FFFFFF;--dark3:#DCE6E6;--dtext:#192F35;--dmute:#586D73;
  --shadow:0 1px 2px rgba(22,35,46,.05),0 6px 20px -10px rgba(22,35,46,.18);
  --shadow2:0 2px 4px rgba(22,35,46,.06),0 14px 32px -12px rgba(15,118,110,.28);
  --r:12px;--r2:8px;--t:.16s cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.65 -apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--brand);text-decoration:none;transition:color var(--t)}
a:hover{color:var(--brand2)}
:focus-visible{outline:2px solid var(--brand2);outline-offset:2px;border-radius:6px}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}
.dim{color:var(--mute);font-weight:400}.small{font-size:12.5px}
.warn{color:var(--warn);font-weight:600}.amber{color:var(--amber);font-weight:600}
.sens{transition:filter .2s}
body.demo .sens{filter:blur(6px);user-select:none}
::selection{background:var(--brandbg);color:var(--brand)}

/* ---------- 登录 ---------- */
.login-body{background:
  radial-gradient(900px 500px at 10% -10%,var(--brandbg) 0,transparent 60%),
  radial-gradient(700px 400px at 110% 110%,#EAF7E4 0,transparent 60%),var(--paper);
  display:flex;align-items:center;justify-content:center;min-height:100vh}
.login-box{background:#fff;color:var(--ink);padding:36px 32px 30px;border-radius:20px;width:360px;border:1px solid var(--line);box-shadow:var(--shadow2);border-top:0;position:relative;overflow:hidden}
.login-box::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,var(--brand),var(--gold))}
.login-box h1{margin:0;font-size:26px;letter-spacing:4px;font-weight:700;color:var(--brand)}
.login-box .sub{margin:6px 0 22px;color:var(--mute);font-size:13px}
.login-box input{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:var(--r2);background:#F8FAFD;color:var(--ink);font-size:15px;margin-bottom:10px;transition:border-color var(--t),box-shadow var(--t),background var(--t)}
.login-box input:focus{outline:0;border-color:var(--brand2);background:#fff;box-shadow:0 0 0 4px var(--brandbg)}
.login-box button{width:100%;padding:12px;border:0;border-radius:var(--r2);background:var(--brand);color:#fff;font-weight:600;font-size:15px;cursor:pointer;transition:transform var(--t),background var(--t),box-shadow var(--t)}
.login-box button:hover{background:var(--brand2);box-shadow:var(--shadow2)}
.login-box button:active{transform:scale(.98)}
.login-box .err{background:var(--warnbg);color:var(--warn);padding:8px 10px;border-radius:8px;font-size:13px;margin:0 0 10px;border:0}

/* ---------- 工作页顶栏 ---------- */
nav.top{background:rgba(255,255,255,.86);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);color:var(--ink);display:flex;align-items:center;gap:22px;padding:0 20px;height:52px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
nav.top .brand{font-weight:700;letter-spacing:3px;font-size:16px;color:var(--brand);margin-right:6px}
nav.top a{color:var(--mute);font-size:14px;position:relative;padding:15px 0}
nav.top a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--brand);transform:scaleX(0);transform-origin:left;transition:transform .22s cubic-bezier(.2,.7,.2,1)}
nav.top a:hover{color:var(--ink)}
nav.top a:hover::after{transform:scaleX(1)}
nav.top .on{color:var(--brand);font-weight:600;font-size:14px;border-bottom:0;padding:15px 0}
nav.top .on::after{transform:scaleX(1)}
nav.top .right{margin-left:auto}
main{max-width:1100px;margin:0 auto;padding:24px 20px 64px}
h2{font-size:22px;font-weight:700;margin:0 0 16px;color:var(--ink);letter-spacing:.5px}
h2 .dim{font-size:13px;margin-left:8px;font-weight:400}
h3{font-size:13px;color:var(--mute);letter-spacing:2px;font-weight:600;margin:28px 0 10px;border-bottom:1px solid var(--line);padding-bottom:6px}

/* ---------- 卡片/提示 ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:18px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow);transition:transform var(--t),box-shadow var(--t),border-color var(--t)}
a.card:hover,.card:has(a:hover){transform:translateY(-2px);box-shadow:var(--shadow2);border-color:#CBD5E5}
.card .num{font-size:28px;font-weight:700;color:var(--brand);font-variant-numeric:tabular-nums;letter-spacing:-.5px}
.card .lbl{font-size:12.5px;color:var(--mute);margin-top:2px}
.card.warn .num{color:var(--warn)}
.tip{background:#fff;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:0 var(--r2) var(--r2) 0;padding:9px 13px;font-size:13px;color:var(--mute);margin:0 0 12px}
.ok,.ok-block{background:var(--okbg);color:var(--ok);padding:10px 14px;border-radius:var(--r2);margin-bottom:12px;border:1px solid #BFE3CF}
.err,.err-block{background:var(--warnbg);color:var(--warn);padding:10px 14px;border-radius:var(--r2);margin-bottom:12px;border:1px solid #F0C9C4}

/* ---------- 表格 ---------- */
.tablewrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
table{width:100%;border-collapse:separate;border-spacing:0;background:#fff}
th{background:#F3F6FB;color:var(--mute);text-align:left;padding:10px 12px;font-size:12.5px;font-weight:600;letter-spacing:.5px;white-space:nowrap;border-bottom:1px solid var(--line);position:sticky;top:0}
td{padding:9px 12px;border-bottom:1px solid #EEF2F7;font-size:14px;vertical-align:top;transition:background var(--t)}
tr:last-child td{border-bottom:0}
tr:nth-child(even) td{background:var(--zebra)}
tr:hover td{background:var(--brandbg)}
td.r,th.r{text-align:right;font-variant-numeric:tabular-nums}
td.ops{white-space:nowrap;text-align:right}
td.ops a,td.ops .link{margin-left:10px;font-size:13px}
.warncell{color:var(--warn);font-size:13px}
.pill{display:inline-block;font-size:12px;padding:2px 9px;border-radius:999px;background:var(--brandbg);color:var(--brand);font-weight:500;line-height:1.5}
.pill.s-超期,.pill.s-法务,.pill.s-逾期,.pill.s-停产,.pill.s-离职,.pill.s-终止,.pill.s-作废,.pill.s-停用{background:var(--warnbg);color:var(--warn)}
.pill.s-临期,.pill.s-评估中,.pill.s-维修,.pill.s-暂停,.pill.s-试配{background:var(--amberbg);color:var(--amber)}
.pill.s-正常,.pill.s-成交,.pill.s-已兑现,.pill.s-完成,.pill.s-在产,.pill.s-在职,.pill.s-运行,.pill.s-生效,.pill.s-关闭,.pill.s-入库{background:var(--okbg);color:var(--ok)}

/* ---------- 工具条/表单/按钮 ---------- */
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px}
.inline{display:inline;margin:0}
.toolbar input[type=search]{padding:9px 11px;border:1px solid var(--line);border-radius:var(--r2) 0 0 var(--r2);font-size:14px;width:220px;background:#fff;transition:border-color var(--t),box-shadow var(--t)}
.toolbar input[type=search]:focus{outline:0;border-color:var(--brand2);box-shadow:0 0 0 3px var(--brandbg)}
.toolbar form.inline button{padding:9px 13px;border:1px solid var(--brand);border-left:0;border-radius:0 var(--r2) var(--r2) 0;background:var(--brand);color:#fff;cursor:pointer;transition:background var(--t)}
.toolbar form.inline button:hover{background:var(--brand2)}
.btn{display:inline-block;padding:9px 15px;border-radius:var(--r2);background:var(--brand);color:#fff;font-size:13.5px;cursor:pointer;border:1px solid var(--brand);font-weight:500;transition:transform var(--t),box-shadow var(--t),background var(--t),color var(--t);box-shadow:0 1px 0 rgba(0,0,0,.04)}
.btn:hover{background:var(--brand2);border-color:var(--brand2);box-shadow:0 6px 16px -8px rgba(15,118,110,.55);transform:translateY(-1px)}
.btn:active{transform:translateY(0) scale(.97);box-shadow:none}
.btn.ghost{background:#fff;color:var(--brand)}
.btn.ghost:hover{background:var(--brandbg);color:var(--brand)}
.link{background:none;border:0;color:var(--brand);cursor:pointer;font-size:13px;padding:0;transition:color var(--t)}
.link:hover{color:var(--brand2)}
.link.danger{color:var(--warn)}
.card.form{margin-bottom:16px}
.form .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 14px}
.form label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--mute)}
.form label.wide{grid-column:1/-1}
.form input,.form select,.form textarea{padding:9px 11px;border:1px solid var(--line);border-radius:var(--r2);font-size:14px;font-family:inherit;color:var(--ink);background:#fff;transition:border-color var(--t),box-shadow var(--t)}
.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--brand2);box-shadow:0 0 0 3px var(--brandbg)}
.form textarea{resize:vertical}
.form .actions{margin-top:12px}
.form .actions button{padding:10px 24px;border:0;border-radius:var(--r2);background:var(--brand);color:#fff;font-size:14px;cursor:pointer;font-weight:500;transition:transform var(--t),background var(--t),box-shadow var(--t)}
.form .actions button:hover{background:var(--brand2);box-shadow:0 6px 16px -8px rgba(15,118,110,.55)}
.form .actions button:active{transform:scale(.97)}

/* ---------- 馆页 ---------- */
.rooms{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.roomcard{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;color:var(--ink);min-height:88px;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:transform var(--t),box-shadow var(--t),border-color var(--t)}
.roomcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brand);transform:scaleY(0);transition:transform .22s cubic-bezier(.2,.7,.2,1)}
.roomcard.table:hover,.roomcard.link:hover{transform:translateY(-2px);box-shadow:var(--shadow2);border-color:#CBD5E5}
.roomcard.table:hover::before,.roomcard.link:hover::before{transform:scaleY(1)}
.roomcard:active{transform:translateY(0) scale(.99)}
.roomcard .rn{font-weight:600;font-size:15px}
.roomcard .rd{font-size:13px;color:var(--mute);margin-top:6px}
.roomcard .num{font-size:22px;font-weight:700;color:var(--brand);font-variant-numeric:tabular-nums}
.roomcard.soon{background:#F3F6FB;border-style:dashed;color:var(--mute);box-shadow:none}
.roomcard.soon .rn{color:var(--mute)}
.roomcard.info{grid-column:1/-1}
.infobody{margin:8px 0 0;font:13.5px/1.7 inherit;white-space:pre-wrap;color:var(--ink)}
.tag{font-size:11px;font-weight:500;background:var(--brandbg);color:var(--brand);padding:1px 8px;border-radius:999px;margin-left:6px;vertical-align:2px}
.feed{list-style:none;margin:0;padding:0}
.feed li{padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.feed li:last-child{border-bottom:0}
.feed b{font-weight:600}

/* ---------- 首页（改浅色） ---------- */
body.home{background:
  radial-gradient(1000px 520px at 0% -20%,var(--brandbg) 0,transparent 55%),
  radial-gradient(800px 480px at 100% 0%,#EAF7E4 0,transparent 55%),var(--paper);color:var(--ink)}
.hh{display:flex;justify-content:space-between;align-items:center;padding:20px 22px 12px;max-width:1100px;margin:0 auto}
.hb{font-size:22px;font-weight:700;letter-spacing:3px;color:var(--brand)}
.hs{font-size:12px;color:var(--mute);margin-top:2px}
.hclock{font-size:20px;font-variant-numeric:tabular-nums}.hclock .hd{font-size:12px;color:var(--mute);margin-left:8px}
.homemain{padding-top:6px}
.ceo{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 20px 18px;margin-bottom:14px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.ceo::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--brand),var(--gold))}
.ceohd{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.ceohd a{color:var(--ink);font-weight:700;font-size:15px}
.lights{font-size:12px;color:var(--mute)}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px;vertical-align:1px;background:#CBD5E5}
.dot.g{background:#22C55E}.dot.y{background:#F59E0B}.dot.r{background:#EF4444}.dot.p{background:#8B5CF6}.dot.gray{background:#CBD5E5}
.nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}
.nums a,.nums>span{display:flex;flex-direction:column;color:var(--ink);padding:10px 12px;border-radius:var(--r2);background:#F8FAFD;border:1px solid transparent;transition:background var(--t),border-color var(--t),transform var(--t)}
.nums a:hover{background:var(--brandbg);border-color:#CBD5E5;transform:translateY(-1px)}
.nums a:active{transform:scale(.98)}
.nums b{font-size:26px;line-height:1.05;font-weight:700;color:var(--brand);font-variant-numeric:tabular-nums;letter-spacing:-.5px}
.nums b.warn{color:var(--warn)}.nums b.amber{color:var(--amber)}
.nums span span{font-size:12px;color:var(--mute);margin-top:4px}
.nums a span,.nums>span span{font-size:12px;color:var(--mute);margin-top:4px}
.halls{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:14px}
.hall{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:2px 12px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px;color:var(--ink);box-shadow:var(--shadow);transition:transform var(--t),box-shadow var(--t),border-color var(--t)}
.hall:hover{transform:translateY(-2px);box-shadow:var(--shadow2);border-color:#CBD5E5}
.hall:active{transform:translateY(0) scale(.99)}
.hall.empty{background:#F3F6FB;border-style:dashed;box-shadow:none}
.hall .mark{grid-row:1/3;width:42px;height:42px;border-radius:12px;background:var(--brandbg);color:var(--brand);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;border:0;transition:background var(--t),color var(--t)}
.hall:hover .mark{background:var(--brand);color:#fff}
.hall.empty .mark{color:var(--mute);background:#E9EEF6}
.hall .hn{font-weight:600;font-size:15px}
.hall .hsub{font-size:12px;color:var(--mute)}
.hall .hcnt{grid-column:2;font-size:12px;color:var(--mute);margin-top:4px;font-variant-numeric:tabular-nums}
.feedbox{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow)}
.feedbox .fh{font-weight:600;font-size:14px;margin-bottom:6px}
.feedbox .feed li{border-color:var(--line);color:var(--ink)}
.feedbox .hallname{color:var(--brand);font-weight:500}
.feedbox .dim{color:var(--mute)}
.hf{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:16px 4px 0;font-size:12.5px;color:var(--mute)}
.hf a{color:var(--mute)}.hf a:hover{color:var(--brand)}
.demo-btn{border:1px solid var(--line);border-radius:999px;padding:3px 10px;transition:border-color var(--t),color var(--t)}
body.home.demo .demo-btn{border-color:var(--brand);color:var(--brand)}

@media(max-width:640px){
  main{padding:14px 10px 56px}
  td,th{padding:7px 8px;font-size:12.5px}
  nav.top{gap:12px;padding:0 12px}
  .login-box{width:90%}
  .nums b{font-size:22px}
  .hh{padding:14px 14px 6px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- 首页 AI 经理大入口 ---------- */
.mgr-entry{display:flex;align-items:center;gap:14px;background:linear-gradient(120deg,var(--brand),var(--brand2) 60%,#2DD4BF);border:0;border-radius:18px;padding:16px 20px;margin:0 0 14px;color:#fff;box-shadow:0 12px 30px -14px rgba(15,118,110,.6);position:relative;overflow:hidden;transition:transform var(--t),box-shadow var(--t)}
.mgr-entry::after{content:"";position:absolute;right:-40px;top:-60px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.12);transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.mgr-entry:hover{transform:translateY(-2px);box-shadow:0 18px 40px -16px rgba(15,118,110,.7)}
.mgr-entry:hover::after{transform:scale(1.35)}
.mgr-entry:active{transform:translateY(0) scale(.99)}
.mgr-ic{width:52px;height:52px;border-radius:14px;background:#fff;color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;flex:none;font-family:"Noto Serif CJK SC","Songti SC",serif;box-shadow:0 4px 12px -6px rgba(0,0,0,.3)}
.mgr-t{display:flex;flex-direction:column;flex:1;min-width:0}
.mgr-t b{font-size:19px;letter-spacing:1px}
.mgr-t small{font-size:12.5px;color:rgba(255,255,255,.8);margin-top:2px}
.mgr-go{font-size:14px;color:#fff;white-space:nowrap;font-weight:600;transition:transform var(--t)}
.mgr-entry:hover .mgr-go{transform:translateX(3px)}
@media(max-width:640px){.mgr-t b{font-size:17px}.mgr-t small{font-size:12px}}

/* ---------- 批量操作条 ---------- */
.bulkbar{display:flex;gap:14px;align-items:center;margin:0 0 8px;font-size:13px;color:var(--mute)}
.bulkbar .danger-btn{color:var(--warn);border-color:#F0C9C4;background:#fff}
.bulkbar .danger-btn:hover{background:var(--warnbg)}
.bulkbar .danger-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.danger-link{color:var(--warn)}

/* ---------- 九馆线性图标（CSS 注入，index.php 不动；字符标记隐去） ---------- */
.hall .mark{font-size:0;background-repeat:no-repeat;background-position:center;background-size:24px 24px}
a.hall[href$="h=ceo"] .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230F766E%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203l2.6%205.3%205.9.9-4.3%204.1%201%205.8L12%2016.4%206.8%2019.1l1-5.8L3.5%209.2l5.9-.9z%22%2F%3E%3C%2Fsvg%3E")}
a.hall[href$="h=ceo"]:hover .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203l2.6%205.3%205.9.9-4.3%204.1%201%205.8L12%2016.4%206.8%2019.1l1-5.8L3.5%209.2l5.9-.9z%22%2F%3E%3C%2Fsvg%3E")}
a.hall[href$="h=sales"] .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230F766E%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2017l6-6%204%204%208-8%22%2F%3E%3Cpath%20d%3D%22M14%207h7v7%22%2F%3E%3C%2Fsvg%3E")}
a.hall[href$="h=sales"]:hover .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2017l6-6%204%204%208-8%22%2F%3E%3Cpath%20d%3D%22M14%207h7v7%22%2F%3E%3C%2Fsvg%3E")}
a.hall[href$="h=finance"] .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230F766E%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M8.5%208.5L12%2013l3.5-4.5%22%2F%3E%3Cpath%20d%3D%22M12%2013v5%22%2F%3E%3Cpath%20d%3D%22M9%2015.5h6%22%2F%3E%3C%2Fsvg%3E")}
a.hall[href$="h=finance"]:hover .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M8.5%208.5L12%2013l3.5-4.5%22%2F%3E%3Cpath%20d%3D%22M12%2013v5%22%2F%3E%3Cpath%20d%3D%22M9%2015.5h6%22%2F%3E%3C%2Fsvg%3E")}
a.hall[href$="h=rd"] .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230F766E%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%203h6%22%2F%3E%3Cpath%20d%3D%22M10%203v6L4.5%2018a2%202%200%20001.7%203h11.6a2%202%200%20001.7-3L14%209V3%22%2F%3E%3Cpath%20d%3D%22M7.5%2015h9%22%2F%3E%3C%2Fsvg%3E")}
a.hall[href$="h=rd"]:hover .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%203h6%22%2F%3E%3Cpath%20d%3D%22M10%203v6L4.5%2018a2%202%200%20001.7%203h11.6a2%202%200%20001.7-3L14%209V3%22%2F%3E%3Cpath%20d%3D%22M7.5%2015h9%22%2F%3E%3C%2Fsvg%3E")}
a.hall[href$="h=qc"] .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230F766E%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203l7%203v6c0%204.5-3%208-7%209-4-1-7-4.5-7-9V6z%22%2F%3E%3Cpath%20d%3D%22M9%2012l2%202%204-4%22%2F%3E%3C%2Fsvg%3E")}
a.hall[href$="h=qc"]:hover .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203l7%203v6c0%204.5-3%208-7%209-4-1-7-4.5-7-9V6z%22%2F%3E%3Cpath%20d%3D%22M9%2012l2%202%204-4%22%2F%3E%3C%2Fsvg%3E")}
a.hall[href$="h=prod"] .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230F766E%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2021V10l5%203V10l5%203V10l5%203v8%22%2F%3E%3Cpath%20d%3D%22M3%2021h18%22%2F%3E%3Cpath%20d%3D%22M16%2010V6l3-1v5%22%2F%3E%3C%2Fsvg%3E")}
a.hall[href$="h=prod"]:hover .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2021V10l5%203V10l5%203V10l5%203v8%22%2F%3E%3Cpath%20d%3D%22M3%2021h18%22%2F%3E%3Cpath%20d%3D%22M16%2010V6l3-1v5%22%2F%3E%3C%2Fsvg%3E")}
a.hall[href$="h=wh"] .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230F766E%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%209l9-5%209%205v11H3z%22%2F%3E%3Cpath%20d%3D%22M3%209h18%22%2F%3E%3Cpath%20d%3D%22M9%2020v-6h6v6%22%2F%3E%3C%2Fsvg%3E")}
a.hall[href$="h=wh"]:hover .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%209l9-5%209%205v11H3z%22%2F%3E%3Cpath%20d%3D%22M3%209h18%22%2F%3E%3Cpath%20d%3D%22M9%2020v-6h6v6%22%2F%3E%3C%2Fsvg%3E")}
a.hall[href$="h=admin"] .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230F766E%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%229%22%20cy%3D%228%22%20r%3D%223.5%22%2F%3E%3Cpath%20d%3D%22M2.5%2020a6.5%206.5%200%200113%200%22%2F%3E%3Ccircle%20cx%3D%2217%22%20cy%3D%229%22%20r%3D%222.5%22%2F%3E%3Cpath%20d%3D%22M15.5%2014a5%205%200%20016%205%22%2F%3E%3C%2Fsvg%3E")}
a.hall[href$="h=admin"]:hover .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%229%22%20cy%3D%228%22%20r%3D%223.5%22%2F%3E%3Cpath%20d%3D%22M2.5%2020a6.5%206.5%200%200113%200%22%2F%3E%3Ccircle%20cx%3D%2217%22%20cy%3D%229%22%20r%3D%222.5%22%2F%3E%3Cpath%20d%3D%22M15.5%2014a5%205%200%20016%205%22%2F%3E%3C%2Fsvg%3E")}
a.hall[href$="h=supply"] .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230F766E%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%207h11v9H2z%22%2F%3E%3Cpath%20d%3D%22M13%2010h5l3%203v3h-8z%22%2F%3E%3Ccircle%20cx%3D%226%22%20cy%3D%2218.5%22%20r%3D%221.8%22%2F%3E%3Ccircle%20cx%3D%2217%22%20cy%3D%2218.5%22%20r%3D%221.8%22%2F%3E%3C%2Fsvg%3E")}
a.hall[href$="h=supply"]:hover .mark{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%207h11v9H2z%22%2F%3E%3Cpath%20d%3D%22M13%2010h5l3%203v3h-8z%22%2F%3E%3Ccircle%20cx%3D%226%22%20cy%3D%2218.5%22%20r%3D%221.8%22%2F%3E%3Ccircle%20cx%3D%2217%22%20cy%3D%2218.5%22%20r%3D%221.8%22%2F%3E%3C%2Fsvg%3E")}
.hall.empty .mark{opacity:.55}
/* 房间卡：类型角标 */
.roomcard.table .rn::after{content:"表";font-size:10px;font-weight:600;color:var(--brand);background:var(--brandbg);padding:1px 6px;border-radius:999px;margin-left:8px;vertical-align:2px}
.roomcard.link .rn::after{content:"页";font-size:10px;font-weight:600;color:#7C3AED;background:#F1EBFF;padding:1px 6px;border-radius:999px;margin-left:8px;vertical-align:2px}
/* 标题左侧色条、页面进入一次渐显 */
h2{position:relative;padding-left:14px}
h2::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:4px;border-radius:2px;background:linear-gradient(180deg,var(--brand),var(--gold))}
main,.homemain{animation:rise .32s cubic-bezier(.2,.7,.2,1) both}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
/* 顶栏品牌前的小圆点 */
nav.top .brand::before,.hb::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--gold);margin-right:8px;vertical-align:2px;box-shadow:0 0 0 3px var(--brandbg)}
/* AI 经理入口图标：绿底白字改为白底绿字圆角，再加一圈 */
.mgr-ic{box-shadow:0 0 0 4px rgba(255,255,255,.25),0 4px 12px -6px rgba(0,0,0,.3)}

/* ---------- 松石工作台：布局与视觉 ---------- */
:root{color-scheme:light;--shadow:0 2px 6px -3px rgba(25,47,53,.12);--shadow2:0 12px 26px -14px rgba(15,118,110,.32);--t:.22s cubic-bezier(.22,1.35,.36,1)}
body.home,.login-body{background:var(--paper)}
body{line-height:1.65}
button,input,select,textarea{font-family:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
main,.homemain,.card,.rooms,.halls,.tablewrap,.form .grid>*{min-width:0}
main{padding-top:28px}
h2{font-size:24px;letter-spacing:0;margin-bottom:20px}
h2::before,.login-box::before,.ceo::before{background:var(--brand)}
h3{letter-spacing:.6px;color:var(--ink);padding-bottom:10px}
nav.top{background:#fff;height:56px;gap:24px;backdrop-filter:none;-webkit-backdrop-filter:none}
nav.top .brand{letter-spacing:1px;flex-shrink:0}
nav.top a,nav.top .on{padding:16px 0;white-space:nowrap}
nav.top a:focus-visible::after{transform:scaleX(1)}
nav.top .right{flex-shrink:0}
nav.top .brand::before,.hb::before{background:var(--brand);border-radius:3px}
.hh{padding:28px 20px 20px;gap:16px;flex-wrap:wrap}
.hb{letter-spacing:1px;font-size:24px}
.hs{margin-top:6px}
.hclock{font-size:18px;color:var(--ink)}
.homemain{padding-top:0}
.ceo{border-radius:var(--r);padding:22px;margin-bottom:20px}
.ceohd{margin-bottom:18px}
.nums{gap:12px}
.nums a,.nums>span{background:var(--zebra);padding:16px;border-color:var(--line);gap:6px}
.nums b{font-size:30px;line-height:1.2}
.cards,.rooms,.halls{gap:14px}
.halls{margin-bottom:20px}
.hall{padding:20px 16px;gap:4px 14px;align-content:start}
.hall .mark{width:44px;height:44px;border-radius:10px}
.hall .hn{letter-spacing:.2px}
.hall .hsub{line-height:1.6}
.hall.empty,.roomcard.soon{background:var(--zebra)}
.hall.empty .mark{opacity:1;background-color:#E9EFEF}
.hall:hover .mark{background-color:var(--brand)}
.card{padding:20px}
.card .num{font-size:30px}
.roomcard{padding:20px;min-height:106px}
.roomcard .rd{line-height:1.7}
.roomcard.link .rn::after{color:var(--brand);background:var(--brandbg)}
.feedbox{padding:20px}
.feedbox .fh{padding-bottom:10px;border-bottom:1px solid var(--line)}
.feed li{padding:12px 0}
.tip{border-left-color:var(--brand);background:var(--brandbg);color:var(--brand);border-radius:var(--r2)}
.mgr-entry{background:var(--brandbg);border:1px solid #B8DDD8;border-radius:var(--r);color:var(--ink);box-shadow:none;padding:20px;margin-bottom:20px}
.mgr-entry::after{display:none}
.mgr-entry:hover{color:var(--ink);box-shadow:var(--shadow2)}
.mgr-ic{background:var(--brand);color:#fff;border-radius:12px;box-shadow:none}
.mgr-t b{font-size:19px;letter-spacing:0}
.mgr-t small{color:#476C68;line-height:1.6}
.mgr-go{color:var(--brand)}
.tablewrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-color:#A9C7C3 transparent;scrollbar-width:thin}
.tablewrap table{min-width:640px}
th{background:#EDF3F3;color:#486167;padding:12px 14px;letter-spacing:0;z-index:1}
td{padding:12px 14px;border-bottom-color:#E8EFEF}
.pill{font-weight:600;padding:3px 10px}
.toolbar{gap:10px;margin-bottom:18px}
.toolbar input[type=search]{max-width:100%;min-height:44px}
.toolbar form.inline{display:inline-flex;max-width:100%}
.toolbar form.inline button{min-height:44px;flex-shrink:0}
.btn,.form .actions button,.login-box button{min-height:44px;line-height:1.5}
.btn{padding:11px 16px}
.btn:hover{color:#fff}
.btn.ghost:hover{color:var(--brand)}
.form label{gap:7px;color:#486167}
.form input,.form select,.form textarea{min-width:0;max-width:100%;min-height:44px;padding:11px 12px}
.form textarea{min-height:100px}
.form .grid{gap:16px}
.form .actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.bulkbar{flex-wrap:wrap;gap:10px}
.bulkbar .danger-btn:hover{color:var(--warn)}
.rowck{width:18px;height:18px;accent-color:var(--brand);cursor:pointer}
.login-body{padding:20px;min-height:100svh}
.login-box{width:400px;max-width:100%;padding:36px 30px;border-radius:16px}
.login-box input{background:var(--zebra);min-height:46px}
.login-box h1{letter-spacing:2px}
.infobody{font-family:inherit;font-size:13.5px;line-height:1.7;overflow-wrap:anywhere}

/* Inline manager stylesheet loads later: scoped specificity preserves this palette. */
.mgr .side{background:var(--dark);color:var(--dtext)}
.mgr .side .sh .btn{background:var(--brand);border-color:var(--brand);color:#fff}
.mgr .conv{border-bottom-color:var(--line)}
.mgr .conv.on{background:var(--brandbg);border-left-color:var(--brand)}
.mgr .quick button{color:var(--brand);background:#fff;border-color:#B8D7D3;min-height:36px}
.mgr .quick button:hover{color:var(--brand2);border-color:var(--brand)}
.mgr .meter b{color:var(--brand)}
.mgr .tg.on,.mgr .m code,.mgr .prop th{background:var(--brandbg)}
.mgr .chip{background:var(--zebra)}
.mgr .m.u .chip{background:#0B655E;border-color:#70B5AD;color:#fff}
.mgr .m.u code{background:#0B655E;color:#fff}
.mgr .m.u .who{color:#E1F4F1}
.mgr .m.u .who .mono{color:#fff}
.mgr .prop .ph .dim{color:#E1F4F1}
.mgr .drop{border-color:#AACBC7}
.mgr .drop.over{background:var(--brandbg);border-color:var(--brand)}
.mgr .irow textarea{min-width:0}
.mgr .irow textarea:focus{box-shadow:0 0 0 3px var(--brandbg)}
.mgr .conv .x{visibility:visible}
.mgr .prop .wrap{overflow:auto;max-width:100%}
.mgr{height:calc(100vh - 56px);height:calc(100dvh - 56px)}

/* Press/release uses a spring easing; keyboard focus keeps the same hierarchy. */
:is(.btn,.login-box button,.form .actions button,.toolbar form.inline button,.demo-btn,.mgr .quick button,.mgr .send,.hall,.roomcard,.nums a,.card){transition:transform var(--t),box-shadow var(--t),background-color .18s ease,border-color .18s ease,color .18s ease}
@media(hover:hover) and (pointer:fine){
  :is(.login-box button,.form .actions button,.toolbar form.inline button,.demo-btn,.mgr .quick button,.mgr .send):not(:disabled):hover{transform:translateY(-2px);box-shadow:var(--shadow2)}
  .card:not(.form):hover{transform:translateY(-2px);box-shadow:var(--shadow2);border-color:#A9CCC7}
}
:is(.hall,.roomcard,.mgr-entry,.nums a,.card:not(.form)):active{transform:translateY(0) scale(.985);box-shadow:var(--shadow)}
:is(.btn,.login-box button,.form .actions button,.toolbar form.inline button,.demo-btn,.mgr .quick button,.mgr .send):not(:disabled):active{transform:translateY(1px) scale(.97);box-shadow:none}
button:disabled,.btn[aria-disabled="true"]{cursor:not-allowed;opacity:.5;transform:none!important;box-shadow:none!important}

@media(max-width:640px){
  main{padding:18px 12px 40px}
  h2{font-size:21px}
  h2 .dim{display:block;margin:5px 0 0}
  nav.top{gap:16px;padding:0 12px;overflow-x:auto;max-width:100%;height:56px;white-space:nowrap}
  nav.top>*{flex-shrink:0}
  .hh{padding:20px 12px 16px;gap:10px}
  .hb{font-size:21px}
  .hclock{font-size:16px}
  .hclock .hd{display:block;margin:0}
  .homemain{padding-top:0}
  .ceo,.feedbox{padding:16px}
  .nums{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .nums a,.nums>span{padding:12px}
  .nums b{font-size:25px}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .card{padding:14px}
  .card .num{font-size:25px;overflow-wrap:anywhere}
  .halls{grid-template-columns:1fr;gap:10px}
  .hall{padding:16px;grid-template-columns:44px minmax(0,1fr)}
  .rooms{grid-template-columns:1fr}
  .mgr-entry{padding:16px;gap:12px;flex-wrap:wrap}
  .mgr-ic{width:44px;height:44px;font-size:23px}
  .mgr-t{flex-basis:calc(100% - 60px)}
  .mgr-go{margin-left:56px}
  .mgr-t b{font-size:17px}
  .form .grid{grid-template-columns:minmax(0,1fr)}
  .form input,.form select,.form textarea,.toolbar input[type=search],.login-box input,.mgr .irow textarea{font-size:16px}
  .toolbar form.inline{width:100%}
  .toolbar input[type=search]{width:0;flex:1;min-width:0}
  td,th{padding:10px;font-size:13px}
  .login-box{width:100%;padding:28px 22px}
  .hf{line-height:1.8}
}
@media(max-width:760px){.mgr .side.show{top:56px}.mgr{height:calc(100dvh - 56px)}}
@media(hover:none){
  .hall:hover,.roomcard.table:hover,.roomcard.link:hover,.nums a:hover,.mgr-entry:hover,.btn:hover,a.card:hover,.card:has(a:hover){transform:none}
}
/* Includes pseudo-elements and later inline manager rules. Keep navigation state visible. */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  :is(.btn,.login-box button,.form .actions button,.toolbar form.inline button,.demo-btn,.mgr .quick button,.mgr .send,.card,.hall,.roomcard,.nums a,.mgr-entry,.mgr-go,main,.homemain){transform:none!important}
  .mgr-entry::after{transform:none!important}
}/* Background shorthand in legacy hover rules must not reset icon placement. */
.hall:hover .mark,.hall.empty .mark{background-repeat:no-repeat;background-position:center;background-size:24px 24px}
body .mgr{height:calc(100vh - 56px);height:calc(100dvh - 56px)}

/* ---------- 松石 · 精简业务工作台 ---------- */
:root{
  --brand:#0F766E;--brand2:#0B655E;--brandbg:#EDF7F5;--gold:#5EEAD4;
  --paper:#F7F8FA;--ink:#20282C;--mute:#626E75;--line:#E3E7EA;--zebra:#FAFBFC;
  --dark:#F7F8FA;--dark2:#FFFFFF;--dark3:#E3E7EA;--dtext:#20282C;--dmute:#626E75;
  --shadow:0 1px 2px rgba(20,35,40,.025);
  --shadow2:0 6px 16px -9px rgba(20,55,52,.25);
  --r:9px;--r2:6px;--t:.2s cubic-bezier(.22,1.25,.36,1);
}
body{font-size:14px;line-height:1.6}
body.home,.login-body{background:var(--paper)}
main{max-width:1180px;padding:26px 28px 52px}
h2{padding-left:0;font-size:22px;letter-spacing:-.3px;font-weight:650;margin-bottom:20px}
h2::before{display:none}
h2 .dim{font-size:12px;letter-spacing:0}
h3{font-size:13px;letter-spacing:0;border-bottom-color:var(--line)}
nav.top{height:56px;gap:24px;padding:0 28px;background:#fff}
nav.top .brand{font-size:15px;letter-spacing:.5px}
nav.top a,nav.top .on{font-size:13px;padding:17px 0}
nav.top a::after{height:2px}
nav.top .brand::before,.hb::before{width:9px;height:9px;box-shadow:none;border-radius:3px;background:var(--brand)}
.hh{max-width:1180px;padding:26px 28px 22px;gap:16px}
.hb{font-size:23px;letter-spacing:.5px;font-weight:650}
.hs{font-size:12px;margin-top:5px}
.hclock{font-size:17px;color:#39464C}
.homemain{padding-top:0}
.mgr-entry{padding:15px 18px;gap:13px;background:#fff;border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:18px}
.mgr-ic{width:38px;height:38px;font:600 16px/1 -apple-system,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--brandbg);color:var(--brand);border-radius:8px;box-shadow:none}
.mgr-t b{font-size:15px;font-weight:650;letter-spacing:0}
.mgr-t small{font-size:12px;color:var(--mute)}
.mgr-go{font-size:12px;color:var(--brand)}
.ceo{padding:18px 20px;margin-bottom:18px;border-radius:var(--r);box-shadow:var(--shadow)}
.ceo::before{display:none}
.ceohd{margin-bottom:17px}
.ceohd a{font-size:13px;font-weight:600}
.lights{font-size:11.5px}
.dot{width:6px;height:6px;vertical-align:1px}
.nums{gap:0;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}
.nums a,.nums>span{background:transparent;padding:3px 20px 5px;border:0;border-left:1px solid var(--line);border-radius:0;gap:6px}
.nums>:first-child{border-left:0;padding-left:0}
.nums b{font-size:28px;line-height:1.2;font-weight:650;color:var(--ink);letter-spacing:-.7px}
.nums a span,.nums>span span{font-size:12px;margin-top:2px}
.nums a:hover{background:var(--brandbg);border-color:var(--line)}
.halls{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:20px}
.hall{padding:16px;grid-template-columns:36px minmax(0,1fr);gap:3px 12px;border-radius:var(--r);box-shadow:var(--shadow);background:#fff}
.hall .mark{width:36px;height:36px;border-radius:8px;background-color:#F0F6F5;background-size:22px 22px}
.hall:hover .mark,.hall.empty .mark{background-size:22px 22px}
.hall .hn{font-size:14px;font-weight:600}
.hall .hsub{font-size:12px;line-height:1.55}
.hall .hcnt{font-size:11.5px;margin-top:5px;color:var(--mute)}
.hall:hover{border-color:#ADCAC4;box-shadow:var(--shadow2)}
.feedbox{padding:16px 20px;box-shadow:var(--shadow)}
.feedbox .fh{font-size:13px;font-weight:600;padding-bottom:11px}
.feed li{padding:10px 0;font-size:12.5px}
.feedbox .hallname{color:var(--ink);font-weight:500}
.hf{font-size:11.5px;padding-top:16px}
.cards{gap:12px;margin-bottom:20px}
.card{padding:16px 18px;border-radius:var(--r);box-shadow:var(--shadow)}
.card .num{font-size:27px;font-weight:650;color:var(--ink);letter-spacing:-.6px}
.card .lbl{font-size:12px;margin-top:5px}
.card.warn .num{color:var(--warn)}
.toolbar{gap:8px;margin-bottom:14px}
.toolbar input[type=search]{width:240px;min-height:38px;font-size:13px;padding:8px 11px}
.toolbar form.inline button{min-height:38px;padding:8px 13px;font-size:13px;background:#fff;color:var(--ink);border:1px solid #CBD3D7;border-left:0}
.toolbar form.inline button:hover{background:#F1F5F5}
.btn{min-height:38px;padding:8px 13px;font-size:13px;font-weight:500;border-radius:6px;box-shadow:0 1px 2px #163b3310}
.btn.ghost{border-color:#D5DCDF;color:#425158;background:#fff}
.btn.ghost:hover{border-color:#ACCAC4;color:var(--brand);background:var(--brandbg)}
.tip{font-size:12px;padding:9px 12px;background:#F0F7F5;border:1px solid #DCEAE6;border-left:3px solid #82B6AA;color:#365C52}
.tablewrap{border-radius:8px;box-shadow:none}
th{padding:10px 13px;background:#F8F9FB;color:#5C686F;font-size:12px;font-weight:500;letter-spacing:0;border-bottom:1px solid #DFE5E8}
td{padding:11px 13px;font-size:13px;border-bottom:1px solid #EDF0F2;line-height:1.5}
tr:nth-child(even) td{background:#FCFDFD}
tr:hover td{background:#F0F7F5}
td.ops a,td.ops .link{font-size:12px;font-weight:500}
.pill{font-size:11.5px;font-weight:500;padding:2px 8px;border-radius:5px;white-space:nowrap}
.pill.s-正常,.pill.s-成交,.pill.s-完成,.pill.s-在产,.pill.s-运行{background:#EDF5F0;color:#326548}
.pill.s-临期,.pill.s-评估中,.pill.s-维修{background:#FBF3E3;color:#896319}
.pill.s-逾期,.pill.s-超期,.pill.s-停产{background:#FAEEEE;color:#A5443D}
.bulkbar{font-size:12px}
.roomcard{padding:16px 18px;min-height:94px;border-radius:var(--r)}
.roomcard .rn{font-size:14px;font-weight:600}
.roomcard .rd{font-size:12px}
.roomcard .num{font-size:24px;color:var(--ink)}
.form .grid{gap:17px 22px}
.form label{font-size:12px;color:#4D5B62;gap:7px}
.form input,.form select,.form textarea{font-size:14px;min-height:40px;padding:9px 11px;border-color:#D7DFE2;border-radius:6px}
.card.form{padding:24px;box-shadow:none}
.form .actions{border-top:1px solid var(--line);padding-top:18px;margin-top:22px;align-items:center}
.form .actions button{min-height:38px;padding:9px 18px;font-size:13px}
.login-box{border-radius:12px;box-shadow:0 12px 36px -24px #193b3550}
.login-box h1{font-size:24px;letter-spacing:1px}
.mgr .conv{font-size:13px;padding:11px 14px}
.mgr .conv.on{background:var(--brandbg)}
.mgr .quick button{border-radius:6px;font-size:12px}
.mgr .chd{padding:11px 16px}
.mgr .m{font-size:14px}
.mgr .m.a{border-left:2px solid #9CC8BE;border-radius:8px}
.mgr .m.u{background:var(--brandbg);color:var(--ink);border:1px solid #D6E9E4;border-radius:8px}
.mgr .m.u .who,.mgr .m.u .who .mono{color:var(--brand)}
.mgr .m.u .chip,.mgr .m.u code{background:#fff;border-color:#CBE0D9;color:var(--brand)}
@media(min-width:641px) and (max-width:860px){.halls{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){
  main{padding:18px 12px 36px}
  .hh{padding:20px 12px 18px}
  .hb{font-size:21px}
  .homemain{padding-top:0}
  nav.top{padding:0 12px;gap:18px}
  h2{font-size:21px}
  .mgr-entry{padding:14px;gap:10px}
  .mgr-t{flex-basis:calc(100% - 50px)}
  .mgr-t b{font-size:15px}
  .mgr-t small{font-size:12px}
  .mgr-go{margin-left:48px}
  .ceo{padding:16px}
  .nums{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 0}
  .nums a,.nums>span{padding:2px 14px}
  .nums>:nth-child(odd){padding-left:0;border-left:0}
  .nums b{font-size:26px}
  .halls{grid-template-columns:1fr;gap:8px}
  .hall{padding:14px;grid-template-columns:36px minmax(0,1fr)}
  .feedbox{padding:15px}
  .cards{gap:8px}
  .card{padding:14px}
  .card .num{font-size:24px}
  .toolbar input[type=search]{width:0;font-size:16px}
  .toolbar input[type=search],.toolbar form.inline button,.btn,.form .actions button{min-height:44px}
  .form input,.form select,.form textarea{font-size:16px;min-height:44px}
  .card.form{padding:18px 14px}
  .form .grid{gap:16px}
  td,th{padding:10px 12px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}

/* ---------- 松石 · 精密控制台 ---------- */
:root{
  --paper:#F3F7F9;--ink:#172D39;--mute:#58707D;--line:#D8E4EA;--zebra:#F8FBFC;
  --brand:#0F766E;--brand2:#08655F;--brandbg:#EAF8F6;--gold:#5EEAD4;
  --dark:#F3F7F9;--dark2:#FFFFFF;--dark3:#D8E4EA;--dtext:#172D39;--dmute:#58707D;
  --r:7px;--r2:5px;--shadow:0 1px 3px #133b4910;--shadow2:0 8px 22px -12px #087f8060;
}
body.home,.login-body{background:var(--paper)}
nav.top{border-bottom-color:#C7DEDF;box-shadow:0 2px 0 #0F766E08}
nav.top .brand,.hb{letter-spacing:1.5px;color:#19444C}
nav.top .brand::before,.hb::before{width:10px;height:10px;border:2px solid var(--brand);background:#BDF5E9;border-radius:2px;box-shadow:3px -3px 0 -1px #D8EEE9;vertical-align:1px}
nav.top a::after{height:2px;background:#0D9388;box-shadow:0 -2px 8px #2DD4BF35}
.hh{border-bottom:1px solid var(--line);margin-bottom:20px;position:relative}
.hh::after{content:"";position:absolute;bottom:-1px;left:28px;width:58px;height:2px;background:#139F94}
.hclock{font-family:ui-monospace,"SFMono-Regular",Consolas,monospace;font-size:20px;letter-spacing:.4px}
.hclock .hd{font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:0}
.mgr-entry{border:1px solid #B5DAD6;border-left:3px solid #0F766E;background:#F9FEFD;padding:17px 18px;position:relative}
.mgr-entry::after{display:block;right:7px;top:7px;width:9px;height:9px;background:transparent;border-top:1px solid #79BBAF;border-right:1px solid #79BBAF;border-radius:0;transition:none}
.mgr-entry:hover::after{transform:none}
.mgr-ic{border:1px solid #A8D9D1;border-radius:6px;color:var(--brand);background:#ECFAF7;font-family:ui-monospace,Consolas,monospace;box-shadow:3px 3px 0 #D9F1EC}
.mgr-t b{font-size:16px;letter-spacing:.5px}
.mgr-go{border:1px solid #BCDCD5;border-radius:4px;background:#fff;padding:5px 10px;font-size:12px}
.ceo{border-top:2px solid #2B8E86;position:relative}
.ceohd{border-bottom:1px solid #E6EEF1;padding-bottom:12px;margin-bottom:17px}
.ceohd a{letter-spacing:.6px;color:#254A54}
.lights .dot.g{background:#129789;box-shadow:0 0 0 3px #DDF5EF}
.nums b,.card .num,.roomcard .num{font-family:ui-monospace,"SFMono-Regular",Consolas,"PingFang SC","Microsoft YaHei",monospace;letter-spacing:-1px;font-weight:600}
.nums b{font-size:30px;color:#12434D}
.nums b.warn{color:var(--warn)}
.nums b.amber{color:var(--amber)}
.hall{position:relative;border-color:#D3E2E8;border-radius:7px;overflow:hidden}
.hall::after{content:"";position:absolute;right:8px;top:8px;width:7px;height:7px;border-top:1px solid #9FBFCA;border-right:1px solid #9FBFCA;transition:border-color .18s ease}
.hall:hover{border-color:#71B8AC;box-shadow:var(--shadow2)}
.hall:hover::after{border-color:var(--brand)}
.hall .mark{border:1px solid #C0DED9;border-radius:6px;background-color:#F0FAF8;box-shadow:2px 2px 0 #E6F2EF}
.hall:hover .mark{border-color:var(--brand);box-shadow:2px 2px 0 #CFE9E3}
.hall .hn{letter-spacing:.4px}
.hall .hcnt{font-variant-numeric:tabular-nums;letter-spacing:.25px;color:#486C79}
.feedbox{border-top:2px solid #C1D9E1}
.feedbox .fh{letter-spacing:.7px;color:#315866}
.feedbox .hallname{color:var(--brand)}
h2{letter-spacing:.1px}
.card:not(.form){border-top:2px solid #A9CCCF}
.card.warn{border-top-color:#D9A19B}
.card .num{color:#164751}
.card.warn .num{color:var(--warn)}
.btn{border-radius:5px;box-shadow:inset 0 1px 0 #FFFFFF20,0 2px 3px #113C3810}
.btn.ghost{box-shadow:none;border-color:#C9DCE0}
.tablewrap{border-color:#C9DCE3;border-radius:7px}
th{background:#EFF5F8;color:#42606E;border-bottom-color:#CDDFE6;font-size:12px}
td{border-bottom-color:#E7EFF3}
tr:hover td{background:#EAF7F5}
.pill{border-radius:4px}
.roomcard{border-radius:7px}
.roomcard::before{width:2px;background:#14998C}
.form input:focus,.form select:focus,.form textarea:focus{border-color:#0D9588;box-shadow:0 0 0 3px #DFF5EE}
.form .actions{border-top-color:#D4E5E9}
.mgr .chd{border-bottom-color:#C6DEE3}
.mgr .side{border-right-color:#C6DEE3}
.mgr .m.a{border-left-color:#218E82}
.mgr .irow .send{border-radius:6px;box-shadow:0 2px 6px #0F766E22}
.login-box::before{background:var(--brand);height:3px}
@media(max-width:640px){
  .hh{margin-bottom:16px}
  .hh::after{left:12px}
  .hclock{font-size:18px}
  .mgr-entry{padding:15px 14px}
  .mgr-go{margin-left:48px}
  .nums b{font-size:28px}
  .card .num{font-size:23px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}

/* ---------- 开场：页面加载时播放，不阻挡操作 ---------- */
@keyframes console-enter{
  from{opacity:0;transform:translateY(7px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes console-header{
  from{opacity:0;transform:translateY(-4px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes console-trace{
  from{transform:scaleX(0)}
  to{transform:scaleX(1)}
}
/* Opacity animation on the individual panels keeps links immediately usable. */
@media(prefers-reduced-motion:no-preference){
  main,.homemain{animation:none}
  body.home .hh{animation:console-header .32s ease-out both}
  body.home .hh::after{transform-origin:left;animation:console-trace .48s cubic-bezier(.2,.7,.2,1) .08s both}
  body.home .mgr-entry{animation:console-enter .36s ease-out .07s backwards}
  body.home .ceo{animation:console-enter .38s ease-out .12s backwards}
  body.home .hall{animation:console-enter .34s ease-out .18s backwards}
  body.home .hall:nth-child(2){animation-delay:.21s}
  body.home .hall:nth-child(3){animation-delay:.24s}
  body.home .hall:nth-child(4){animation-delay:.27s}
  body.home .hall:nth-child(5){animation-delay:.30s}
  body.home .hall:nth-child(6){animation-delay:.33s}
  body.home .hall:nth-child(7){animation-delay:.36s}
  body.home .hall:nth-child(8){animation-delay:.39s}
  body.home .hall:nth-child(9){animation-delay:.42s}
  body.home .feedbox{animation:console-enter .34s ease-out .44s backwards}
  body.home .hf{animation:console-enter .3s ease-out .48s backwards}
  body:not(.home):not(.login-body) main{animation:console-enter .3s ease-out}
  .login-box{animation:console-enter .38s ease-out}
  /* Pointer and keyboard interaction take priority over the entrance sequence. */
  body.home :is(.hall,.mgr-entry,.ceo):is(:hover,:focus-within,:active){animation:none}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  body.home .hh,body.home .hh::after{transform:none!important}
}

/* ---------- 宽屏补丁 v1（2026-09-19）：放宽版心 + 首页两栏 + 九馆自适应 ---------- */
/* 1 放宽：所有工作页与首页版心随屏走，最宽 1440 */
main,.hh,.homemain{max-width:min(1440px,94vw)}
/* 2 首页两栏（≥1100px）：左 总裁台 / AI 经理 / 九馆，右 最近动态 通栏到底并吸顶 */
@media(min-width:1100px){
  .homemain{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px 22px;align-items:start}
  .homemain>.ceo,.homemain>.mgr-entry,.homemain>.halls{grid-column:1}
  .homemain>.feedbox{grid-column:2;grid-row:1/span 3;position:sticky;top:72px;max-height:calc(100vh - 96px);overflow:auto;display:flex;flex-direction:column}
  .homemain>.feedbox .feed{flex:1}
  .homemain>.hf{grid-column:1/-1}
  .homemain>.ceo,.homemain>.mgr-entry,.homemain>.halls{margin-bottom:0}
  /* 3 九馆：宽屏 3 列→自适应，1440 下约 4 列 */
  .halls{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
}
/* 动态列过长时滚动条细一点 */
.homemain>.feedbox::-webkit-scrollbar{width:6px}
.homemain>.feedbox::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}

/* ---------- 终版定稿层（2026-09-19）：在"精简工作台"上找回三处亮点 + 琥珀对比度 ---------- */
:root{--amber:#8A5A00;--r:12px;--r2:9px}
/* 首页两团淡光晕回来（纯色底太素） */
body.home{background:radial-gradient(1000px 520px at 0% -20%,var(--brandbg) 0,transparent 55%),radial-gradient(800px 480px at 100% 0%,#EAF7E4 0,transparent 55%),var(--paper)}
/* AI 经理入口：整块松石渐变卡，白色"雷"字 */
.mgr-entry{background:linear-gradient(120deg,var(--brand),var(--brand2) 60%,#2DD4BF);border:0;border-left:0;color:#fff;border-radius:16px;padding:16px 20px;box-shadow:0 12px 30px -14px rgba(15,118,110,.6)}
.mgr-entry::after{display:block;content:"";position:absolute;right:-40px;top:-60px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.12);transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.mgr-entry:hover::after{transform:scale(1.35)}
.mgr-ic{width:50px;height:50px;background:#fff;color:var(--brand);border-radius:14px;font:700 24px/1 "Noto Serif CJK SC","Songti SC",serif;box-shadow:0 0 0 4px rgba(255,255,255,.22)}
.mgr-t b{font-size:18px;color:#fff}
.mgr-t small{color:rgba(255,255,255,.85)}
.mgr-go{color:#fff;font-size:14px}
/* 标题竖条与总裁台顶线回来 */
h2{padding-left:14px}
h2::before{display:block}
.ceo::before{display:block}
/* 总裁台四个数：数字用主色，比墨色醒目 */
.nums b{color:var(--brand)}
.nums b.warn{color:var(--warn)}.nums b.amber{color:var(--amber)}

/* ---------- 最近动态：可收起到右侧边条（配 index.php 的 feedToggle 按钮） ---------- */
.feedbox .fh{display:flex;align-items:center;gap:8px}
.feedbox .fh .dim{flex:1}
.feed-toggle{width:28px;height:28px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--mute);cursor:pointer;font-size:18px;line-height:1;display:none;align-items:center;justify-content:center;transition:transform var(--t),background var(--t),color var(--t)}
.feed-toggle:hover{background:var(--brandbg);color:var(--brand)}
.feed-toggle:active{transform:scale(.92)}
@media(min-width:1100px){
  .feed-toggle{display:inline-flex}
  .homemain{transition:grid-template-columns .28s cubic-bezier(.2,.7,.2,1)}
  /* 收起态：右栏缩成 44px 竖条，只留按钮，标题竖排 */
  body.feed-off .homemain{grid-template-columns:minmax(0,1fr) 44px}
  body.feed-off .homemain>.feedbox{padding:10px 6px;overflow:hidden;align-items:center}
  body.feed-off .feedbox .fh{flex-direction:column;gap:10px}
  body.feed-off .feedbox .fh .dim{display:none}
  body.feed-off .feedbox .fh{writing-mode:horizontal-tb}
  body.feed-off .feedbox .fh>:first-child,body.feed-off .feedbox .fh{font-size:12px}
  body.feed-off .feedbox .feed,body.feed-off .feedbox p{display:none}
  body.feed-off .feed-toggle{transform:rotate(180deg)}
  body.feed-off .feed-toggle:active{transform:rotate(180deg) scale(.92)}
  body.feed-off .feedbox .fh{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:2px}
  body.feed-off .feed-toggle{writing-mode:horizontal-tb}
}
