:root{--ink:#16243d;--muted:#778297;--line:#e7ebf2;--bg:#f6f8fc;--blue:#5261e8;--blue-light:#eef0ff;--teal:#119d8d;--teal-light:#e9f7f4;--amber:#b47d24;--radius:16px;--shadow:0 5px 24px rgba(30,44,90,.035)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.65}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button{border:0;background:none;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #a9b2ff;outline-offset:3px}h1,h2,h3,h4,p{margin:0}h1{font-size:27px;line-height:1.4;letter-spacing:-.6px}h2{font-size:17px}h3{font-size:15px}small{font-size:12px}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--blue)}.flex{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex:1}.icon{width:19px;height:19px;flex:none;vertical-align:middle}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:39px;padding:8px 15px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:12px;font-weight:600;white-space:nowrap;transition:.18s}.btn:hover{border-color:#b8c0dc;background:#fafbff}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 3px 9px #5261e81b}.btn.primary:hover{background:#424fc6}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn.danger{color:#b54747}.btn.small{min-height:30px;padding:4px 10px;font-size:11px}.pill{display:inline-flex;align-items:center;gap:5px;line-height:1.45;border-radius:6px;padding:4px 8px;font-size:10px;font-weight:600;background:#f0f3f8;color:#6d7890;white-space:nowrap}.pill.blue{background:var(--blue-light);color:var(--blue)}.pill.green{background:var(--teal-light);color:var(--teal)}.pill.amber{background:#fcf3df;color:var(--amber)}.pill.red{background:#fceeee;color:#b45050}.dot{width:6px;height:6px;border-radius:50%;display:inline-block;background:currentColor}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:17px}.field label{font-size:12px;font-weight:600}.field input,.field textarea,.field select,.filter-select{width:100%;border:1px solid #dde3ef;border-radius:9px;padding:10px 12px;background:white;color:var(--ink);outline:none}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #5261e810}.field textarea{resize:vertical;min-height:93px}.field .help{color:var(--muted);font-size:11px}.filter-select{width:auto;font-size:12px;max-width:225px;padding:7px 10px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.section-gap{margin-top:20px}.notice{display:flex;align-items:flex-start;gap:10px;background:#eef1ff;border:1px solid #e2e7ff;color:#6271a0;border-radius:11px;padding:11px 15px;font-size:11px}.notice.amber{background:#fffbef;border-color:#f4eacf;color:#947845}.notice .icon{width:16px;height:16px;margin-top:1px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card-head{padding:21px 23px 0}.card-body{padding:20px 23px}.divider{height:1px;background:var(--line);margin:20px 0}.empty{padding:40px 20px;text-align:center;color:var(--muted)}.empty .icon{width:34px;height:34px;color:#b4bdd6;margin-bottom:10px}.empty p{margin:6px 0 15px;font-size:12px}.logo-mark{width:40px;height:40px;border-radius:11px;background:var(--blue);color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #5261e829}
.logo-mark--asset{background:transparent;box-shadow:none;overflow:visible}
.logo-mark--asset img{width:100%;height:100%;object-fit:contain;display:block}.logo-mark .icon{width:24px;height:24px}.brand-word{font-size:18px;font-weight:750;letter-spacing:-.3px}
.brand-word-img{height:21px;width:auto;display:block;margin-top:1px}.brand-word span{font-weight:500;color:#8a93ab;font-size:12px;margin-left:6px}.label-line{font-size:9px;letter-spacing:1.4px;color:#a5aec0;line-height:1.2;margin-top:3px}.landing{min-height:100vh;background:radial-gradient(ellipse at 78% 25%,#e9edff 0,transparent 48%),radial-gradient(ellipse at 9% 90%,#e7f6f1 0,transparent 40%),#fafbff;position:relative}.landing-nav{max-width:1220px;margin:auto;padding:28px 34px;display:flex;align-items:center;justify-content:space-between}.landing-main{max-width:1220px;margin:35px auto 0;padding:30px 34px 55px;display:grid;grid-template-columns:1.02fr 1fr;gap:68px;align-items:center}.landing-title{font-size:47px;line-height:1.34;letter-spacing:-1.7px;margin:19px 0 23px;font-weight:750}.landing-title em{font-style:normal;color:var(--blue)}.landing-copy{font-size:14px;color:#75829a;line-height:1.95;max-width:470px}.landing-feature{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-top:38px}.landing-feature .icon{color:var(--blue);margin-bottom:9px}.landing-feature h3{font-size:12px}.landing-feature p{font-size:10px;color:var(--muted);margin-top:5px}.start-card{border-radius:22px;padding:31px;background:#ffffffed;border:1px solid #fff;box-shadow:0 20px 65px #354a9c13}.start-card h2{font-size:20px}.start-card .desc{margin:6px 0 25px;font-size:12px;color:var(--muted)}.full{width:100%}.landing-foot{max-width:1150px;margin:auto;padding:23px 0;border-top:1px solid #e6eaf4;color:#919bb1;display:flex;justify-content:space-between;font-size:11px}.subtle-rule{display:flex;align-items:center;gap:15px;color:#a1a9ba;font-size:10px;margin:20px 0}.subtle-rule:before,.subtle-rule:after{content:"";height:1px;background:var(--line);flex:1}.privacy-note{font-size:10px;color:#9ba4b8;margin-top:19px;text-align:center}.shell{display:flex;min-height:100vh}.sidebar{width:222px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:26px 17px;z-index:30}.sidebar .brand{padding-left:8px}.workspace{margin:32px 0 26px;background:#f8f9fc;border:1px solid var(--line);padding:11px;border-radius:10px}.workspace-symbol{background:#fff;border:1px solid var(--line);border-radius:8px;width:31px;height:31px;display:flex;align-items:center;justify-content:center;color:var(--blue);font-size:12px;font-weight:700}.workspace-name{font-size:11px;font-weight:650;max-width:133px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-label{font-size:9px;color:#a2abbd;letter-spacing:1px;padding:0 13px;margin-bottom:9px}.nav-item{display:flex;align-items:center;width:100%;gap:12px;border-radius:9px;padding:11px 13px;margin-bottom:5px;text-align:left;font-size:12px;color:#78849c}.nav-item.active{color:var(--blue);background:var(--blue-light);font-weight:650}.nav-item:not(.active):hover{background:#f7f9fc}.nav-item .nav-badge{margin-left:auto;background:#fff;border-radius:4px;padding:0 5px;color:#a4acc0;font-size:10px}.sidebar-foot{margin-top:auto;padding-top:25px}.sidebar-tip{padding:15px 13px;background:#f5f7ff;border-radius:10px;margin-bottom:20px;color:#8190ac;font-size:10px}.sidebar-tip h4{color:#526288;font-size:11px;margin-bottom:5px}.avatar{width:29px;height:29px;background:#edf1f7;color:#7b89a1;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}.main{margin-left:222px;flex:1;min-width:0}.topbar{height:76px;background:#ffffffde;border-bottom:1px solid var(--line);padding:0 33px;display:flex;align-items:center;justify-content:space-between;gap:10px}.breadcrumbs{font-size:11px;color:#a1aabe}.breadcrumbs b{font-weight:500;color:#606f89;margin-left:12px}.content{padding:28px 33px 34px;max-width:1640px;margin:0 auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.page-head h1{font-size:25px}.page-head p{font-size:11px;color:var(--muted);margin-top:5px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px}.kpi{padding:19px 20px}.kpi-icon{display:inline-flex;align-items:center;justify-content:center;width:31px;height:31px;background:#f2f3ff;color:var(--blue);border-radius:9px}.kpi-icon.teal{color:var(--teal);background:#eff9f6}.kpi-label{font-size:11px;color:var(--muted)}.kpi-value{font-size:32px;font-weight:670;line-height:1.2;margin:13px 0 9px;letter-spacing:-1px}.kpi-value small{font-size:16px;font-weight:500;margin-left:3px;color:#98a1b5}.kpi-caption{font-size:10px;color:#99a3b7}.overview-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(250px,1fr);gap:18px;margin-top:19px}.chart{width:100%;display:block;height:auto}.chart-wrap{padding:9px 16px 0}.chart-note{font-size:9px;color:#9ba5b9;margin:2px 22px 17px}.chart-legend{display:flex;gap:16px;font-size:10px;color:#8c98ae;margin-top:13px}.chart-legend span{display:inline-flex;gap:6px;align-items:center}.chart-legend i{width:14px;height:3px;background:var(--blue);border-radius:2px}.chart-legend i.teal{background:var(--teal)}.platform-row{margin-bottom:19px}.platform-logo{display:inline-flex;justify-content:center;align-items:center;width:27px;height:27px;border-radius:8px;background:#f0f3fa;color:#697794;font-size:10px;font-weight:700}.platform-text{font-size:11px;font-weight:600}.platform-count{font-size:10px;color:#9aa5b8}.track{height:6px;border-radius:5px;background:#eff2f8;overflow:hidden}.track i{display:block;background:var(--blue);height:100%;border-radius:5px;min-width:0}.track.teal i{background:var(--teal)}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mini-box{border:1px solid var(--line);border-radius:10px;padding:12px}.mini-box strong{font-size:20px;display:block;line-height:1.3}.mini-box small{color:var(--muted);font-size:10px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:11px}th{font-weight:500;color:#909bb0;background:#fafbfe;text-align:left;white-space:nowrap;padding:11px 20px;border-bottom:1px solid var(--line)}td{padding:13px 20px;border-bottom:1px solid #f0f2f7;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfdff}.question-text{font-size:11px;font-weight:550;max-width:410px}.row-sub{font-size:9px;color:#a3adc0;margin-top:4px}.clip{max-width:290px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-link{font-size:11px;color:var(--blue);padding:0}.footnote{margin:16px 0 0;color:#9ba5b9;font-size:10px;display:flex;justify-content:space-between;gap:10px}.profile-hero{display:flex;gap:18px;align-items:center;padding:25px}.clinic-symbol{width:62px;height:62px;border-radius:17px;background:#edf0ff;display:flex;align-items:center;justify-content:center;color:var(--blue)}.clinic-symbol .icon{width:32px;height:32px}.profile-hero h2{font-size:21px}.profile-hero p{margin-top:5px;color:var(--muted);font-size:11px}.kv{display:grid;grid-template-columns:100px 1fr;gap:12px;margin-bottom:16px;font-size:12px}.kv dt{color:var(--muted)}.kv dd{margin:0;word-break:break-word}.task{display:flex;gap:14px;padding:20px 23px;border-bottom:1px solid var(--line)}.task:last-child{border:0}.task-num{width:28px;height:28px;flex:none;display:flex;align-items:center;justify-content:center;background:#f3f5fc;border-radius:8px;color:#8591ac;font-size:11px}.task h3{font-size:13px}.task p{font-size:11px;color:var(--muted);margin-top:6px}.task.done h3{text-decoration:line-through;color:#a1abbd}.task input{accent-color:var(--blue);margin-left:auto}.tabs{display:flex;gap:6px;background:#edf0f6;padding:4px;border-radius:8px;width:fit-content}.tabs button{font-size:11px;padding:6px 12px;border-radius:6px;color:#8994aa}.tabs button.active{background:#fff;color:var(--blue);box-shadow:0 2px 5px #5261e80d}.source-icon{height:31px;width:31px;border-radius:8px;background:#f2f5fb;display:flex;align-items:center;justify-content:center;color:#94a1ba}.metric-big{font-size:46px;letter-spacing:-2px;font-weight:700}.code{padding:18px;background:#f6f8fc;border:1px solid var(--line);border-radius:9px;font-size:11px;line-height:1.65;white-space:pre-wrap;overflow:auto;word-break:break-word;max-height:420px}.progress{height:5px;background:#e9edf7;border-radius:5px;margin:15px 0;overflow:hidden}.progress i{display:block;background:var(--blue);height:100%;transition:width .3s}.dialog-mask{position:fixed;inset:0;background:#18294355;backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:25px}.dialog{width:660px;max-width:100%;max-height:92vh;overflow:auto;background:white;border-radius:18px;box-shadow:0 20px 90px #10204233}.dialog.wide{width:860px}.dialog-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:19px 25px}.dialog-head h2{font-size:16px}.dialog-body{padding:23px 25px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.answer-text{white-space:pre-wrap;line-height:1.9;font-size:12px;max-height:330px;overflow:auto;background:#f8faff;border-radius:10px;padding:18px;word-break:break-word}.answer-text mark{background:#e6eaff;color:#4d5adb;border-radius:3px;padding:1px 2px}.error-text{color:#b74c4c;font-size:12px;margin-top:10px}.close-btn{color:#9ca8bb;padding:4px}.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#253554;color:white;padding:11px 20px;border-radius:10px;box-shadow:0 7px 25px #233c5c22;font-size:12px;z-index:200;max-width:90vw}.searchbox{width:250px;max-width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:12px;background:white}.settings-list{font-size:12px;line-height:2.1;color:#718099}.settings-list strong{color:var(--ink)}.mobile-menu{display:none}.hide{display:none!important}.loading-dot{display:inline-block;animation:pulse 1.1s infinite}@keyframes pulse{50%{opacity:.35}}@media(min-width:1500px){.content{padding:32px 44px}.topbar{padding:0 44px}.overview-grid{grid-template-columns:1.8fr 1fr}}@media(max-width:1100px){.sidebar{width:196px;padding:22px 12px}.main{margin-left:196px}.content{padding:25px 23px}.topbar{padding:0 23px}.kpi-grid{gap:10px}.kpi{padding:16px}.kpi-value{font-size:28px}.overview-grid{grid-template-columns:1.45fr 1fr;gap:12px}.card-head{padding:18px 18px 0}.card-body{padding:17px 18px}.landing-main{gap:40px}.landing-title{font-size:39px}.landing-foot{margin:0 34px}.question-text{max-width:260px}}
@media(max-width:800px){.sidebar{display:none}.sidebar.open{display:flex;width:225px;box-shadow:20px 0 100px #21395733}.main{margin-left:0}.topbar{height:63px;padding:0 17px}.mobile-menu{display:inline-flex}.breadcrumbs{display:none}.content{padding:23px 17px}.overview-grid{grid-template-columns:1fr}.grid2,.grid3{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(2,1fr)}.page-head{flex-direction:column}.page-head h1{font-size:23px}.landing-main{grid-template-columns:1fr;padding:0 24px 35px;gap:34px;margin-top:25px}.landing-title{font-size:38px}.landing-nav{padding:24px}.landing-feature{margin-top:25px}.landing-foot{margin:0 24px;flex-direction:column;gap:8px}.start-card{padding:24px}.dialog-mask{padding:12px}.dialog-body{padding:20px}.topbar .btn{padding:6px 10px;font-size:10px}.footnote{flex-direction:column}.chart-note{font-size:10px}.kpi-label{font-size:10px}.notice{font-size:10px}.logo-mark{width:34px;height:34px}.brand-word{font-size:17px}}
@media print{.sidebar,.topbar,.btn,.notice.amber,.filter-select,.toast{display:none!important}.main{margin-left:0}.content{padding:0}.card{box-shadow:none;break-inside:avoid}.overview-grid{grid-template-columns:1.6fr 1fr}body{background:white}}

/* ===== 玖序 泛化版新增样式 ===== */
.sidebar .workspace{width:100%;justify-content:flex-start;gap:10px;padding:11px 12px;border-radius:12px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;margin:4px 0}
.sidebar .workspace:hover{background:#f2f5fb}
.workspace-symbol{width:34px;height:34px;flex:none;border-radius:10px;background:var(--blue-light);color:var(--blue);display:inline-flex;align-items:center;justify-content:center}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.chip{border:1px solid var(--line);background:#fff;color:#46526b;font-size:11px;font-weight:600;padding:5px 11px;border-radius:999px;cursor:pointer;transition:.15s}
.chip:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-light)}
.demo-grid{display:grid;gap:8px;margin-top:8px}
.demo-grid .btn{justify-content:flex-start;height:auto;padding:10px 13px;text-align:left;line-height:1.45}
.demo-grid small{display:block;font-weight:400;color:var(--muted);font-size:10.5px}
.project-list{display:grid;gap:8px;margin-top:8px}
.project-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.project-row .btn{flex:none}
.project-ico{width:32px;height:32px;flex:none;border-radius:9px;background:#eef1f8;color:var(--blue);display:inline-flex;align-items:center;justify-content:center}
.project-name{font-size:13px;font-weight:700;color:var(--ink)}
.project-row .row-sub{font-size:10.5px;color:var(--muted);margin-top:2px}
.filter-panel{padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:12px;margin:2px 0 16px}
.filter-panel .filter-select,.filter-panel .searchbox{margin-right:8px}
.content-body{min-width:0}

/* ===== Phase 1 登录页 ===== */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 78% 25%,#e9edff 0,transparent 48%),radial-gradient(ellipse at 9% 90%,#e7f6f1 0,transparent 40%),#fafbff;padding:24px}
.login-card{width:340px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px 28px;box-shadow:0 20px 65px #354a9c13;text-align:center}
.login-card .brand-word{font-size:22px;margin-top:2px}
.login-card .label-line{font-size:9px;letter-spacing:1.6px;color:#a5aec0;margin-top:3px}
.login-mark{width:52px;height:52px;border-radius:14px;background:var(--blue);color:#fff;display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px}
.login-mark .icon{width:28px;height:28px}
.login-card h2{margin:6px 0 2px}
.login-card form{text-align:left;margin-top:8px}

/* ===== 项目中心 ===== */
.landing-main.single{display:block;max-width:1220px;padding-top:6px}
.pc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.pc-title{font-size:30px;letter-spacing:-.9px;margin:5px 0 8px}
.pc-lead{font-size:12px;color:var(--muted);max-width:620px;line-height:1.85}
.pc-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.pc-search{width:290px;max-width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 12px;font-size:12px;background:#fff}
.pc-search:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #5261e810}
.pc-sort{border:1px solid var(--line);border-radius:9px;padding:9px 10px;font-size:12px;background:#fff;color:#4a5771}
.pc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.pc-card{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);padding:18px 19px;display:flex;flex-direction:column;gap:14px;transition:.15s}
.pc-card:hover{border-color:#c9d2ea;box-shadow:0 10px 30px #2b3f7a14}
.pc-card[hidden]{display:none}
.pc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.pc-name{font-size:15px;font-weight:700;line-height:1.4;word-break:break-word}
.pc-cat{font-size:11px;color:var(--muted);margin-top:4px}
.pc-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;background:#f8fafd;border-radius:10px;padding:11px 12px}
.pc-facts div{display:flex;flex-direction:column;gap:2px;font-size:10px;color:var(--muted)}
.pc-facts b{font-size:12px;color:var(--ink);font-weight:650}
.pc-foot{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.pc-empty{margin-top:24px;padding:44px 20px;text-align:center;border:1px dashed #d7ddea;border-radius:16px;background:#fff}
.pc-empty .icon{width:34px;height:34px;color:#b4bdd6;margin-bottom:10px}
.pc-empty h3{font-size:14px;margin-bottom:6px}
.pc-empty p{font-size:11px;color:var(--muted);margin-bottom:16px}
.demo-block{margin-top:26px;border-top:1px solid var(--line);padding-top:16px}
.demo-block summary{cursor:pointer;font-size:11px;color:var(--muted);font-weight:600}
.demo-block summary:hover{color:var(--blue)}
.landing .privacy-note{margin-top:22px}
/* 侧边栏项目切换 */
.ws-switch{display:flex;flex-direction:column;gap:6px;margin:0 0 18px;padding:0 4px}
.ws-label{font-size:9px;letter-spacing:1px;color:#a2abbd;padding-left:6px}
.ws-select{width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;color:#4a5771;font-size:11px;padding:7px 8px}
.ws-select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #5261e810}
.ws-new{display:flex;align-items:center;gap:7px;width:100%;border:1px dashed #d3dbec;border-radius:9px;padding:7px 10px;font-size:11px;color:#63708c;background:#fbfcff}
.ws-new:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-light)}
.ws-hint{font-size:10px;color:var(--muted);background:#f7f9fd;border-radius:8px;padding:7px 9px}
@media(max-width:800px){.pc-head{flex-direction:column}.pc-title{font-size:24px}.pc-grid{grid-template-columns:1fr}.pc-search{width:100%}}

/* ---------- 落地页（未登录首屏） ---------- */
.welcome{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(900px 480px at 78% -10%,#e8ecff 0%,rgba(255,255,255,0) 62%),radial-gradient(760px 420px at 8% 106%,#e6f7f3 0%,rgba(255,255,255,0) 60%),var(--bg)}
.w-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 34px;flex-wrap:wrap}
.w-nav .brand-word{font-size:17px}
.w-main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:26px 28px 44px;display:flex;flex-direction:column;justify-content:center}
.w-hero{text-align:center;max-width:760px;margin:0 auto}
.w-eyebrow{display:inline-block;font-size:11px;font-weight:700;letter-spacing:2.4px;color:var(--blue);background:var(--blue-light);border-radius:999px;padding:5px 14px}
.w-hero h1{font-size:44px;line-height:1.24;letter-spacing:-1.2px;margin:18px 0 14px}
.w-lead{color:#5a6680;font-size:15px;margin:0 auto 26px;max-width:660px}
.w-scan{display:flex;gap:10px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px;box-shadow:0 14px 40px rgba(38,56,120,.10);max-width:700px;margin:0 auto}
.w-scan input{flex:1;border:0;outline:0;padding:12px 14px;font-size:15px;background:transparent}
.w-go{padding:13px 22px;font-size:14.5px;white-space:nowrap}
.w-hint{font-size:11.5px;color:var(--muted);margin:12px 0 0}
.w-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:44px auto 0;width:100%;max-width:960px}
.w-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.w-card h3{font-size:14px;margin:8px 0 7px}
.w-card p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.7}
.w-no{font-size:10.5px;font-weight:800;letter-spacing:1.6px;color:var(--blue)}
.w-foot{text-align:center;margin:38px 0 0;font-size:12.5px;color:var(--muted)}
.w-foot p{margin:5px 0}
.w-note{font-size:11px;opacity:.75}
.link-btn{color:var(--blue);font-weight:600;font-size:inherit}
.link-btn:hover{text-decoration:underline}
@media(max-width:820px){.w-hero h1{font-size:30px}.w-scan{flex-direction:column}.w-go{width:100%}.w-cards{grid-template-columns:1fr}.w-main{padding:16px 16px 30px}.w-nav{padding:14px 16px}}

/* ---------- 项目中心体检入口 ---------- */
.pc-scan{display:flex;align-items:center;gap:18px;justify-content:space-between;flex-wrap:wrap;background:linear-gradient(100deg,#2f3aa8 0%,#4a55d8 58%,#5a4fd0 100%);border-radius:var(--radius);padding:18px 22px;margin:4px 0 18px;box-shadow:0 12px 30px rgba(50,62,160,.18)}
.pc-scan-txt{color:#fff;min-width:240px}
.pc-scan-txt b{display:block;font-size:14.5px;letter-spacing:.2px}
.pc-scan-txt span{display:block;font-size:12px;color:#cfd4ff;margin-top:3px;max-width:520px}
.pc-scan-form{display:flex;gap:8px;flex:1;min-width:320px;max-width:520px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);border-radius:12px;padding:6px}
.pc-scan-form input{flex:1;border:0;outline:0;background:transparent;color:#fff;padding:9px 12px;font-size:13px}
.pc-scan-form input::placeholder{color:#c3c9f5}
.pc-scan-form .btn{background:#fff;color:#2f3aa8;white-space:nowrap;font-weight:700}
.pc-scan-form .btn:hover{background:#eef0ff}

/* ---------- 侧栏体检入口 ---------- */
.scan-cta{display:block;width:100%;text-align:left;background:linear-gradient(100deg,#eef0ff,#e9f7f4);border:1px solid #dfe4fb;border-radius:11px;padding:10px 12px;margin:10px 0 4px}
.scan-cta:hover{border-color:#c7cff5;box-shadow:0 6px 16px rgba(70,86,190,.10)}
.scan-cta-top{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:#33409c}
.scan-cta em{font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:.6px;color:#fff;background:#3b46b8;border-radius:999px;padding:1px 7px}
.scan-cta small{display:block;font-size:10.5px;color:#6b76a8;margin-top:2px}
@media(max-width:820px){.pc-scan-form{flex-direction:column}.pc-scan-form input{text-align:center}}
.w-hero h1{font-weight:800}
.w-scan input:focus{outline:none}

/* ---------- 首屏切换（体检 / 登录） ---------- */
.w-box{max-width:700px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:18px;padding:8px;box-shadow:0 14px 44px rgba(38,56,120,.11);text-align:left}
.w-tabs{display:flex;gap:4px;background:#eef1f8;border-radius:12px;padding:4px;margin:2px 2px 4px}
.w-tab{flex:1;border:0;background:transparent;border-radius:9px;padding:9px 12px;font-size:13px;font-weight:600;color:#61708f;transition:background .15s,color .15s}
.w-tab:hover{color:#33409c}
.w-tab.active{background:#fff;color:#2c3aa8;box-shadow:0 2px 8px rgba(40,56,130,.10)}
.w-panel{padding:10px 10px 6px}
.w-panel .field{margin-bottom:10px}
.w-panel .field label{display:block;font-size:12px;color:#5b6884;margin-bottom:4px}
.w-panel .field input{width:100%;border:1px solid #dfe5f1;border-radius:10px;padding:10px 12px;font-size:14px;outline:0}
.w-panel .field input:focus{border-color:var(--blue)}
.w-panel .w-scan{gap:8px;padding:0;border:0;box-shadow:none;background:transparent;max-width:none;margin:0}
.w-panel .w-scan input{flex:1;border:1px solid #dfe5f1;border-radius:10px;padding:11px 13px;font-size:14.5px;background:#fff}
.w-panel .w-scan input:focus{border-color:var(--blue)}
.w-panel .w-go{margin-top:4px}
.w-panel .w-hint{text-align:left;margin:10px 0 0}
.w-panel .error-text{font-size:12px;color:#c0392b;margin:0 0 6px;min-height:0}

/* ---------- 首屏切换（小尺寸 + 滑动指示器，参考分段控件的做法） ---------- */
.w-tabs{position:relative;display:flex;width:max-content;margin:0 auto 12px;padding:3px;gap:0;background:#e2e6f5;border:1px solid #d5dbf0;border-radius:999px;box-shadow:inset 0 1px 2px rgba(28,42,110,.07)}
.w-tab{position:relative;z-index:1;flex:0 0 auto;width:96px;padding:6px 0;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.2px;color:#6b7694;background:transparent;box-shadow:none;transition:color .18s ease}
.w-tab:hover{color:#2b39a0}
.w-tab.active{background:transparent;color:#2b39a0;box-shadow:none}
.w-tab-ind{position:absolute;z-index:0;top:3px;left:3px;width:96px;height:calc(100% - 6px);border-radius:999px;background:#fff;box-shadow:0 1px 3px rgba(32,46,110,.20),0 0 0 .5px rgba(32,46,110,.05);transition:transform .26s cubic-bezier(.34,1.16,.64,1)}
.w-panel[hidden],.w-head[hidden]{display:none}

/* ===== 玖序 白底黑金主题（2026-10-27） ===== */
:root{
  --ink:#0b0b0c;
  --muted:#5f5b53;
  --line:#e7e2d7;
  --bg:#ffffff;
  --blue:#0b0b0c;
  --blue-light:#f6efe0;
  --teal:#8a5c2a;
  --teal-light:#fbf3e4;
  --amber:#8a5c2a;
  --shadow:0 5px 24px rgba(11,11,12,.045);
  --gold:#8a5c2a;
  --gold-soft:#c9a05c;
  --gold-pale:#f6efe1;
}
body{background:#fff;color:var(--ink)}
a{color:var(--ink)}
a:hover{color:var(--gold)}
button:focus-visible,a:focus-visible{outline:3px solid #d9c39a;outline-offset:3px}
.eyebrow{color:var(--gold)}
.btn:hover{background:#faf7f0;border-color:#d8c9ac}
.btn.primary{background:#0b0b0c;border-color:#0b0b0c;color:#fff;box-shadow:0 3px 10px rgba(11,11,12,.14)}
.btn.primary:hover{background:#2a2a2a;border-color:#2a2a2a}
.btn.ghost{color:#6b655a}
.pill{background:#f4f1ea;color:#6b6458}
.pill.blue{background:var(--gold-pale);color:var(--gold)}
.pill.amber{background:#fbf3e4;color:var(--gold)}
.logo-mark{background:#0b0b0c;box-shadow:none}
.login-mark{background:#0b0b0c}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,160,92,.16)}

/* 首屏 / 登录 / 项目中心 */
.landing,.login-wrap,.welcome{
  background:radial-gradient(900px 500px at 82% -8%,#f7efdf 0,rgba(255,255,255,0) 62%),radial-gradient(700px 420px at 6% 108%,#faf5e9 0,rgba(255,255,255,0) 60%),#fff;
}
.landing-title em{background:linear-gradient(120deg,#8a5c2a 10%,#c9a05c 90%);-webkit-background-clip:text;background-clip:text;color:transparent}
.landing-copy{color:#5f5b53}
.landing-feature .icon{color:var(--gold)}
.start-card{background:#fff;border-color:var(--line);box-shadow:0 20px 65px rgba(138,92,42,.08)}
.login-card{border-color:var(--line);box-shadow:0 20px 65px rgba(138,92,42,.08)}
.login-card .label-line,.label-line{color:#9a9284}
.landing-foot,.sidebar,.topbar{background:#fff}
.landing-foot{border-color:var(--line);color:#8c8578}
.landing-foot a{color:#5f5b53}
.privacy-note,.subtle-rule{color:#8c8578}
.subtle-rule:before,.subtle-rule:after{background:var(--line)}

/* 侧栏 / 顶栏 */
.sidebar{border-color:var(--line)}
.topbar{background:rgba(255,255,255,.92);border-color:var(--line)}
.nav-item{color:#6b655a}
.nav-item.active{color:#0b0b0c;background:var(--gold-pale);font-weight:650;box-shadow:inset 3px 0 0 var(--gold-soft)}
.nav-item:not(.active):hover{background:#faf6ec}
.nav-item .nav-badge{background:#fff;border:1px solid var(--line);color:#8c8578}
.sidebar-tip{background:#faf6ec;color:#6b6458}
.sidebar-tip h4{color:#0b0b0c}
.sidebar .workspace:hover{background:#faf6ec}
.project-ico,.source-icon,.kpi-icon{background:var(--gold-pale);color:var(--gold)}
.kpi-icon.teal{background:#fbf3e4;color:var(--gold)}
.ws-hint{background:#faf6ec;color:#6b6458}

/* 卡片 / 提示 / 标签 */
.card,.pc-card,.w-card,.w-box,.start-card,.login-card{background:#fff;border-color:var(--line)}
.pc-card:hover{border-color:#d8c9ac;box-shadow:0 10px 30px rgba(138,92,42,.08)}
.pc-facts{background:#faf6ec}
.pc-empty{background:#fff;border-color:#ddd4c2}
.pc-empty .icon{color:#c9a05c}
.notice{background:#faf6ec;border-color:#e8dcc4;color:#6b5a42}
.notice.amber{background:#fbf3e4;border-color:#ead9bb;color:#755a32}
.tabs{background:#f1ece2}
.tabs button{color:#7a7366}
.tabs button.active{background:#fff;color:#0b0b0c;box-shadow:0 1px 4px rgba(11,11,12,.08)}
.scan-cta{background:linear-gradient(100deg,#fbf3e4,#f6efe0);border-color:#e3d5bb}
.scan-cta:hover{border-color:#c9a05c;box-shadow:0 6px 16px rgba(138,92,42,.10)}
.scan-cta-top{color:#0b0b0c}
.scan-cta em{background:#0b0b0c;color:#fff}
.scan-cta small{color:#6b6458}
.w-eyebrow{color:var(--gold);background:var(--gold-pale)}
.w-no{color:var(--gold)}
.w-lead{color:#5f5b53}
.w-scan{box-shadow:0 14px 40px rgba(138,92,42,.08)}
.link-btn{color:var(--gold)}

/* 项目中心深色体检条 */
.pc-scan{background:linear-gradient(110deg,#0b0b0c 0%,#1a150e 70%,#2a2115 100%);box-shadow:0 12px 30px rgba(11,11,12,.18)}
.pc-scan-txt span{color:#d8cdb8}
.pc-scan-form{background:rgba(255,255,255,.08);border-color:rgba(201,160,92,.38)}
.pc-scan-form input{color:#fff}
.pc-scan-form input::placeholder{color:#b9ae9a}
.pc-scan-form .btn{background:#fff;color:#0b0b0c}
.pc-scan-form .btn:hover{background:#f6efe0}

/* 首屏切换 */
.w-box{box-shadow:0 14px 44px rgba(138,92,42,.08)}
.w-tabs{background:#efe9dd;border-color:#e3d5bb;box-shadow:inset 0 1px 2px rgba(11,11,12,.04)}
.w-tab{color:#6b6458}
.w-tab:hover{color:#0b0b0c}
.w-tab.active{color:#0b0b0c}
.w-tab-ind{background:#fff;box-shadow:0 1px 3px rgba(11,11,12,.10)}
.w-panel .field input,.w-panel .w-scan input{border-color:var(--line)}
.w-panel .field input:focus,.w-panel .w-scan input:focus{border-color:var(--gold)}

/* 数据与图表 */
.chart-legend i{background:#0b0b0c}
.chart-legend i.teal{background:var(--gold)}
.kpi-value small{color:#8c8578}
.kpi-caption,.chart-note,.chart-legend{color:#8c8578}
.logo-mark.logo-mark--asset{background:transparent;box-shadow:none;overflow:visible}


/* white-dominant pass: surfaces white, gold only hairline/accent */
:root{--blue-light:#ffffff;--teal-light:#ffffff;--gold-pale:#ffffff}
body{background:#fff}
.landing,.login-wrap,.welcome{background:#fff}
.btn:hover{background:#fff;border-color:#d8c9ac}
.pill,.pill.blue,.pill.amber{background:#fff;border:1px solid var(--line);color:#5f5b53}
.pill.blue{color:var(--gold)}
.nav-item.active{background:#fff;color:#0b0b0c;box-shadow:inset 2px 0 0 var(--gold-soft)}
.nav-item:not(.active):hover{background:#fafafa}
.sidebar-tip,.ws-hint,.notice,.pc-facts{background:#fff;border:1px solid var(--line)}
.project-ico,.source-icon,.kpi-icon,.kpi-icon.teal{background:#fff;border:1px solid var(--line)}
.scan-cta{background:#fff;border:1px solid var(--line)}
.scan-cta:hover{border-color:#c9a05c;box-shadow:0 6px 16px rgba(138,92,42,.08)}
.w-eyebrow{background:#fff;border:1px solid var(--line)}
.tabs,.w-tabs{background:#fff;border-color:var(--line);box-shadow:none}
.tabs button.active,.w-tab.active{background:#fff;color:#0b0b0c}
.w-tab-ind{background:#fff;border-bottom:2px solid var(--gold-soft);box-shadow:none}
.pc-scan{background:#fff;border:1px solid var(--line);box-shadow:0 10px 24px rgba(11,11,12,.05)}
.pc-scan h3,.pc-scan b,.pc-scan-txt{color:#0b0b0c}
.pc-scan-txt span{color:#5f5b53}
.pc-scan-form{background:#fff;border:1px solid var(--line)}
.pc-scan-form input{color:var(--ink)}
.pc-scan-form input::placeholder{color:#9a9284}
.pc-scan-form .btn{background:#0b0b0c;color:#fff;border-color:#0b0b0c}
.pc-scan-form .btn:hover{background:#2a2a2a}
tbody tr:hover{background:#fafafa}

.empty .icon{color:#8c8578}
.pill.green{background:#fff;border:1px solid var(--line);color:var(--gold)}
