:root{--ground: #F3F4F1;--card: #FFFFFF;--line: #DCDFDA;--line-soft: #ECEEEA;--ink: #1C2321;--ink-2: #3F4743;--ink-soft: #5B6460;--accent: #0F6E64;--accent-dark: #0A4F48;--accent-soft: #DDEBE8;--accent-line: #A9CFC8;--bad: #B23A12;--bad-bg: #F8DDD3;--bad-ink: #8E2C0C;--warn: #9A5B00;--warn-bg: #FBEBD0;--warn-ink: #7A4A00;--review-bg: #EADCF3;--review-ink: #5B2172;--doing-bg: #DCE7FB;--doing-ink: #1E3A8A;--done-bg: #DDEBE8;--done-ink: #0A4F48;--todo-bg: #ECEEEA;--mono: "Cascadia Mono", Consolas, "SF Mono", Menlo, monospace;font-family:Segoe UI,Microsoft YaHei,PingFang SC,Noto Sans SC,Hiragino Sans GB,system-ui,sans-serif;font-size:15px;line-height:1.55;color:var(--ink)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--ground);color:var(--ink);-webkit-text-size-adjust:100%}a{color:var(--accent)}a:hover{color:var(--accent-dark)}h1,h2,h3{margin:0;line-height:1.3}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 45%,white);outline-offset:2px}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--ink-soft)}.small{font-size:13px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.between{justify-content:space-between}.grow{flex:1 1 auto;min-width:0}.stack{display:flex;flex-direction:column;gap:10px}.topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-badge{width:42px;height:42px;flex:none;border-radius:10px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px}.brand-logo{width:42px;height:42px;flex:none;object-fit:contain;border-radius:8px;background:#fff}.brand-name{font-weight:700;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-sub{font-size:12px;color:var(--ink-soft)}.top-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.user-chip{display:flex;align-items:center;gap:10px;padding-left:10px;border-left:1px solid var(--line)}.avatar{width:34px;height:34px;flex:none;border-radius:50%;background:#e3e7e2;color:var(--ink);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.avatar.sm{width:26px;height:26px;font-size:11px}.user-chip .who{display:flex;flex-direction:column;line-height:1.25}.user-chip .who b{font-weight:600;font-size:14px}.user-chip .who span{font-size:12px;color:var(--ink-soft)}.shell{display:flex;flex-wrap:wrap;align-items:flex-start}.sidenav{flex:1 1 200px;max-width:232px;padding:18px 14px;display:flex;flex-direction:column;gap:3px}.sidenav a{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;border-radius:8px;color:var(--ink);text-decoration:none}.sidenav a:hover{background:#e7eae5;color:var(--ink)}.sidenav a.active{background:var(--accent-soft);color:var(--accent-dark);font-weight:700}.sidenav .sep{height:1px;background:var(--line);margin:10px 4px}.sidenav .badge-count{margin-left:auto}.sidenav .foot{font-size:11px;color:var(--ink-soft);margin:18px 14px 0}.main{flex:999 1 560px;min-width:0;padding:22px 26px 60px;display:flex;flex-direction:column;gap:22px}.page-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px}.page-head h1{font-size:24px}.page-head .muted{font-size:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;display:flex;flex-direction:column;gap:12px;min-width:0}.card-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px}.card-head h2{font-size:17px}.card-head .muted{font-size:13px}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:22px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:2px;text-align:left}button.kpi{cursor:pointer}button.kpi:hover{border-color:var(--accent-line)}.kpi .label{font-size:14px;color:var(--ink-soft)}.kpi .value{font-family:var(--mono);font-size:36px;font-weight:600;line-height:1.15}.kpi .sub{font-size:13px;color:var(--ink-soft)}.kpi.bad .value{color:var(--bad)}.kpi.warn .value{color:var(--warn)}.kpi.good .value{color:var(--accent)}.empty{padding:18px;text-align:center;color:var(--ink-soft);font-size:14px;background:#fafbf9;border-radius:10px;border:1px dashed var(--line)}.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:500;white-space:nowrap}.pill.todo{background:var(--todo-bg);color:var(--ink-2)}.pill.doing{background:var(--doing-bg);color:var(--doing-ink)}.pill.stuck{background:var(--warn-bg);color:var(--warn-ink)}.pill.review{background:var(--review-bg);color:var(--review-ink)}.pill.done{background:var(--done-bg);color:var(--done-ink)}.pill.cancelled{background:#f1f1ef;color:#6e7470;text-decoration:line-through}.pill.overdue{background:var(--bad-bg);color:var(--bad-ink)}.tag{display:inline-block;padding:1px 8px;border-radius:4px;font-size:12px;font-weight:700;white-space:nowrap}.tag.urgent{background:var(--bad);color:#fff}.tag.step{background:var(--review-bg);color:var(--review-ink)}.tag.helper{background:var(--doing-bg);color:var(--doing-ink)}.tag.each{background:var(--todo-bg);color:var(--ink-2)}.tag.routine{background:var(--accent-soft);color:var(--accent-dark)}.tag.demo{background:#fff4d6;color:#7a5a00;font-weight:500}.count-badge{display:inline-flex;min-width:22px;height:22px;padding:0 6px;border-radius:11px;align-items:center;justify-content:center;background:var(--bad);color:#fff;font-size:12px;font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 18px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:#fff;font-weight:700;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:hover{background:var(--accent-dark);color:#fff}.btn.outline{background:#fff;color:var(--accent-dark)}.btn.outline:hover{background:var(--accent-soft)}.btn.plain{background:#fff;color:var(--ink);border-color:#c9cec8;font-weight:500}.btn.plain:hover{background:#f4f5f2}.btn.warn{background:#fff;color:var(--warn-ink);border-color:#c9cec8;font-weight:500}.btn.warn:hover{background:#fbf6ec}.btn.danger{background:var(--bad);border-color:var(--bad)}.btn.danger:hover{background:var(--bad-ink)}.btn.danger-outline{background:#fff;color:var(--bad-ink);border-color:#e3b5a3;font-weight:500}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2);font-weight:500;padding:0 10px}.btn.ghost:hover{background:#eef0ec}.btn.link{background:transparent;border-color:transparent;color:var(--accent);font-weight:500;padding:0 6px;text-decoration:underline}.btn.sm{min-height:36px;padding:0 12px;font-size:14px}.btn:disabled{opacity:.55;cursor:not-allowed}.icon-btn{width:44px;height:44px;border-radius:8px;border:1px solid transparent;background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;position:relative;color:var(--ink-2)}.icon-btn:hover{background:#eef0ec}.icon-btn .dot{position:absolute;top:4px;right:2px}label.field,.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span,.field>label{font-weight:600;font-size:14px}.field .hint{font-weight:400;font-size:13px;color:var(--ink-soft)}input[type=text],input[type=password],input[type=date],input[type=number],input[type=time],input[type=search],input[type=email],select,textarea{min-height:44px;padding:0 12px;border:1px solid #9AA19C;border-radius:8px;background:#fff;color:var(--ink);width:100%;min-width:0}.pw-wrap{position:relative;display:block}.pw-wrap input{padding-right:48px}.pw-eye{position:absolute;top:0;right:0;height:100%;width:44px;display:flex;align-items:center;justify-content:center;border:0;background:none;color:var(--ink-soft);cursor:pointer;border-radius:0 8px 8px 0}.pw-eye:hover{color:var(--ink)}textarea{padding:10px 12px;min-height:72px;resize:vertical}select{padding-right:8px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:40px;padding:0 16px;border-radius:999px;border:1px solid #9AA19C;background:#fff;color:var(--ink);cursor:pointer;font-size:14px}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.chip.urgent[aria-pressed=true]{background:var(--bad);border-color:var(--bad)}.person-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.person{min-height:64px;padding:9px 12px;border-radius:10px;border:2px solid #D3D7D1;background:#fff;color:var(--ink);display:flex;flex-direction:column;align-items:flex-start;gap:2px;cursor:pointer;text-align:left}.person[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.person .p-top{display:flex;width:100%;align-items:center;justify-content:space-between;gap:6px}.person .p-name{font-weight:700}.person .p-role{padding:0 7px;border-radius:4px;background:#fff;color:var(--accent-dark);font-size:12px;font-weight:700}.person .p-load{font-size:12px;color:var(--ink-soft)}.person .p-load.bad{color:var(--bad)}.person[aria-pressed=true] .p-load{color:#fff}.mode-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.mode{min-height:60px;padding:10px 14px;border-radius:10px;border:2px solid #D3D7D1;background:#fff;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:2px}.mode[aria-pressed=true]{border-color:var(--accent)}.mode b{font-size:15px}.mode span{font-size:13px;color:var(--ink-soft)}.panel-soft{padding:16px;border-radius:10px;background:#f5f6f3;display:flex;flex-direction:column;gap:14px}.switch{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:0;border:0;background:transparent;cursor:pointer;text-align:left;width:100%}.switch .track{width:46px;height:26px;flex:none;border-radius:13px;background:#b9bfba;position:relative;transition:background .15s}.switch .track:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .15s}.switch[aria-checked=true] .track{background:var(--accent)}.switch[aria-checked=true] .track:after{left:23px}.err{color:var(--bad);font-size:14px}.notice{padding:10px 14px;border-radius:10px;font-size:14px}.notice.good{background:var(--done-bg);color:var(--done-ink)}.notice.bad{background:var(--bad-bg);color:var(--bad-ink)}.notice.warn{background:var(--warn-bg);color:var(--warn-ink)}.notice.info{background:#eef2f7;color:#2b3a4f}.task-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.task-card.overdue{border-color:#e8b9a6;box-shadow:inset 4px 0 0 var(--bad)}.task-card.submitted{opacity:.78}.task-card .t-title{font-weight:700;font-size:16px;background:none;border:0;padding:0;text-align:left;cursor:pointer;color:var(--ink)}.task-card .t-title:hover{text-decoration:underline}.task-card .t-meta{font-size:13px;color:var(--ink-soft)}.task-card .t-extra{font-size:13px;color:var(--ink-2)}.task-card .t-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.task-card .t-actions .spacer{margin-left:auto}.section-title{display:flex;align-items:baseline;gap:8px;font-size:18px}.section-title .num{font-size:15px;font-weight:500;color:var(--ink-soft)}.section-title.bad{color:var(--bad)}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:14px}table.data th{text-align:left;font-weight:500;color:var(--ink-soft);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}table.data td{padding:10px;border-bottom:1px solid var(--line-soft);vertical-align:middle}table.data tr.click{cursor:pointer}table.data tr.click:hover td{background:#f7f8f6}.list-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;padding:10px 0;border-top:1px solid var(--line-soft)}.list-row:first-child{border-top:0}.list-row .title-btn{background:none;border:0;padding:0;font-weight:600;text-align:left;cursor:pointer;color:var(--ink);font-size:14px}.list-row .title-btn:hover{text-decoration:underline}.bar{height:10px;border-radius:5px;background:var(--line-soft);overflow:hidden}.bar>i{display:block;height:100%;border-radius:5px;background:var(--accent)}.bar>i.low{background:#c2410c}.bar>i.mid{background:#9a9f9b}.name-link{background:none;border:0;padding:0;font:inherit;font-weight:600;color:var(--ink);text-align:left;cursor:pointer}.name-link:hover{color:var(--accent);text-decoration:underline}.trend{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.trend-col{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 0;border-radius:8px;background:none;border:1px solid transparent;font:inherit;color:inherit;cursor:pointer}.trend-col:hover{border-color:var(--accent-line)}.trend-col.cur{background:var(--accent-soft);border-color:var(--accent-line)}.kpis.four{grid-template-columns:repeat(4,minmax(0,1fr))}.kpis.two{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width: 760px){.kpis.four{grid-template-columns:repeat(2,minmax(0,1fr))}}.trend-bar{width:22px;height:70px;border-radius:5px;background:var(--line-soft);display:flex;align-items:flex-end;overflow:hidden}.trend-bar>i{display:block;width:100%;background:var(--accent)}.trend-bar>i.low{background:#c2410c}.trend-bar>i.mid{background:#9a9f9b}.person-row{display:grid;grid-template-columns:96px minmax(0,1fr) 104px;align-items:center;gap:12px;padding:4px 0}.person-row .nm{display:flex;flex-direction:column;line-height:1.25}.person-row .nm b{font-weight:600;font-size:14px}.person-row .nm span{font-size:12px;color:var(--ink-soft)}button.person-row.link{background:none;border:0;border-radius:8px;margin:0 -6px;padding:4px 6px;width:calc(100% + 12px);font:inherit;color:inherit;text-align:left;cursor:pointer}button.person-row.link:hover{background:#7f7f7f14}button.person-row.link:hover .nm b{text-decoration:underline}.stuck-box{border:1px solid #EBD9B8;background:#fbf6ec;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}.routine-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.routine-tile{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;border:1px solid #D3E4DF;background:#f1f6f4;text-align:left;cursor:pointer}.routine-tile.no{border-color:#f0d2c4;background:#fcf1ec}.routine-tile .rt-title{font-weight:600;font-size:14px}.routine-tile .rt-note{font-size:13px;color:var(--ink-soft)}.check-btn{width:44px;height:44px;flex:none;border-radius:10px;border:2px solid #9AA19C;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.check-btn.on{background:var(--accent);border-color:var(--accent)}.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.filters .field{width:180px}.filters .field.wide{flex:1 1 220px;width:auto}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#141a1873;z-index:100;display:flex;justify-content:flex-end}.overlay.center{justify-content:center;align-items:flex-start;padding:32px 16px}.drawer{width:min(720px,100%);height:100%;background:var(--card);overflow-y:auto;display:flex;flex-direction:column;box-shadow:-8px 0 30px #0000001f}.dialog{width:min(720px,100%);max-height:calc(100vh - 64px);overflow-y:auto;background:var(--card);border-radius:14px;border:1px solid #D3D7D1;display:flex;flex-direction:column}.dialog.sm{width:min(460px,100%)}.d-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 22px 12px;border-bottom:1px solid var(--line-soft);position:sticky;top:0;background:var(--card);z-index:2}.d-head h2{font-size:20px}.d-body{padding:18px 22px 24px;display:flex;flex-direction:column;gap:18px}.d-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--line-soft);position:sticky;bottom:0;background:var(--card)}.info-grid{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px 14px;font-size:14px}.info-grid dt{color:var(--ink-soft)}.info-grid dd{margin:0}.timeline{display:flex;flex-direction:column;gap:12px}.ev{display:flex;gap:10px}.ev .ev-body{flex:1;min-width:0}.ev .ev-line{font-size:13px;color:var(--ink-soft)}.ev .bubble{margin-top:4px;padding:8px 12px;background:#f3f5f2;border-radius:10px;white-space:pre-wrap;word-break:break-word;font-size:14px}.ev.system .ev-line{font-size:13px}.files{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.file{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;display:flex;flex-direction:column}.file .thumb{height:90px;background:#f1f3f0;display:flex;align-items:center;justify-content:center;cursor:pointer;border:0;padding:0;width:100%}.file .thumb img{width:100%;height:100%;object-fit:cover}.file .f-name{font-size:12px;padding:6px 8px;word-break:break-all;display:flex;flex-direction:column;gap:2px}.steps-list{display:flex;flex-direction:column;gap:8px}.step-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}.step-no{width:28px;height:28px;border-radius:50%;background:#e3e7e2;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:13px;font-weight:600}.step-no.done{background:var(--accent);color:#fff}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000000d9;display:flex;align-items:center;justify-content:center;padding:20px;cursor:zoom-out}.lightbox img{max-width:100%;max-height:100%}.notif-wrap{position:relative}.notif-panel{position:absolute;right:0;top:50px;width:min(380px,calc(100vw - 24px));max-height:70vh;overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px #00000024;z-index:60}.notif-panel .nh{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line-soft);position:sticky;top:0;background:#fff}.notif-item{display:block;width:100%;text-align:left;border:0;background:#fff;padding:10px 14px;border-bottom:1px solid var(--line-soft);cursor:pointer;font-size:14px}.notif-item:hover{background:#f7f8f6}.notif-item.unread{background:#f2f8f6}.notif-item .when{font-size:12px;color:var(--ink-soft)}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--login-bg, linear-gradient(160deg, #E6F0EC, #F3F4F1 55%, #ECEFF5))}.login-card{width:min(400px,100%);background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px;display:flex;flex-direction:column;gap:14px;box-shadow:0 10px 40px #0f322d14}.login-card.wide{width:min(600px,100%)}.login-card h1{font-size:21px}.login-logo{display:block;max-width:180px;max-height:64px;object-fit:contain}.steps{display:flex;gap:6px}.steps span{flex:1;text-align:center;font-size:12px;font-weight:700;padding:6px 4px;border-radius:999px;background:#eef0ec;color:var(--ink-soft)}.steps span.on{background:var(--accent);color:#fff}.steps span.done{background:var(--done-bg);color:var(--done-ink)}.tabs-mini{display:flex;gap:6px}.tabs-mini button{flex:1;min-height:40px;border-radius:8px;border:1px solid #C9CEC8;background:#fff;cursor:pointer;font-weight:600}.tabs-mini button.on{background:var(--accent);border-color:var(--accent);color:#fff}.key-input{font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase}.lang-switch{display:inline-flex;border:1px solid #C9CEC8;border-radius:8px;overflow:hidden}.lang-switch button{min-height:36px;padding:0 10px;border:0;background:#fff;cursor:pointer;font-size:13px}.lang-switch button[aria-pressed=true]{background:var(--accent);color:#fff;font-weight:700}.color-row{display:flex;gap:10px;align-items:center}.color-row input[type=color]{width:48px;height:40px;padding:2px;border:1px solid #9AA19C;border-radius:8px;background:#fff}.locked-note{font-size:14px;color:var(--ink-2);background:#f1f3f0;border-radius:8px;padding:10px 12px}@media (max-width: 760px){.topbar{padding:8px 12px}.user-chip .who{display:none}.sidenav{max-width:none;flex-direction:row;overflow-x:auto;padding:8px 10px;gap:4px;border-bottom:1px solid var(--line);background:#f8f9f7}.sidenav a{white-space:nowrap;min-height:40px;padding:0 12px}.sidenav .sep,.sidenav .foot{display:none}.main{padding:16px 14px 60px;gap:16px}.card{padding:14px}.grid-2{grid-template-columns:1fr}.person-row{grid-template-columns:78px minmax(0,1fr) 92px;gap:8px}.d-head,.d-body,.d-foot{padding-left:14px;padding-right:14px}.overlay.center{padding:0}.dialog{border-radius:0;min-height:100%;max-height:100vh;max-height:100dvh}.info-grid{grid-template-columns:90px minmax(0,1fr)}.brand-sub{display:none}.topbar{flex-wrap:nowrap;gap:8px}.brand{flex:1 1 auto;gap:8px}.brand-badge,.brand-logo{width:36px;height:36px;font-size:13px}.brand-name{font-size:15px}.top-actions{flex-wrap:nowrap;gap:6px;flex:none}.user-chip{padding-left:0;border-left:0;gap:0}.user-chip .avatar{display:none}.lang-switch button{padding:0 8px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi{padding:12px 14px}.kpi .value{font-size:28px}}@media (max-width: 480px){.new-task-btn{padding-left:12px;padding-right:12px}.new-task-btn .label{display:none}}.seg{display:inline-flex;gap:4px;padding:4px;background:var(--card);border:1px solid var(--line);border-radius:10px;align-self:flex-start;flex-wrap:wrap}.seg button{min-height:36px;padding:0 16px;border:0;border-radius:7px;background:none;font:inherit;font-weight:600;color:var(--ink-soft);cursor:pointer}.seg button.on{background:var(--accent);color:#fff}.score-badge{display:inline-flex;align-items:center;gap:8px}.score-badge b{font-size:1.05em;font-variant-numeric:tabular-nums}.grade{display:inline-block;min-width:24px;text-align:center;padding:1px 6px;border-radius:6px;font-size:13px;font-weight:700;color:#fff}.grade.gA{background:var(--accent)}.grade.gB{background:#4b8b7f}.grade.gC{background:#9a5b00}.grade.gD{background:#b23a12}.kpi .value .score-badge b{font-size:inherit}.method{background:var(--accent-soft);border-radius:10px;padding:12px 16px}.method ul{margin:0;padding-left:18px;font-size:13px;line-height:1.6}.spark{display:flex;align-items:flex-end;gap:3px;height:28px;width:96px}.spark i{flex:1;background:var(--accent);border-radius:2px 2px 0 0}.spark i.mid{background:#9a9f9b}.spark i.low{background:#c2410c}.spark i.none{background:var(--line-soft)}.kpi-card{gap:14px;max-width:980px}.kc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;border-bottom:2px solid var(--accent);padding-bottom:12px}.kc-score{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.kc-score .score-badge b{font-size:40px;line-height:1}.kc-score .grade{font-size:20px;padding:3px 10px}.kc-person{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0}.kc-person dt{font-size:12px;color:var(--ink-soft)}.kc-person dd{margin:0;font-weight:600}.kc-h{font-size:15px;margin:8px 0 0;padding-top:8px;border-top:1px solid var(--line-soft)}.kc-total td{font-weight:700;border-top:2px solid var(--line)}.kc-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.kc-num{border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}.kc-num b{font-size:20px;font-variant-numeric:tabular-nums}.kc-trend{display:grid;grid-template-columns:repeat(auto-fit,minmax(56px,1fr));gap:8px;max-width:720px}.kc-tcol{display:flex;flex-direction:column;align-items:center;gap:3px}.kc-box{border:1px solid var(--line);border-radius:8px;min-height:90px}.kc-sign{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:18px}.kc-sign>div{display:flex;flex-direction:column;gap:2px}.kc-sign .line{border-bottom:1px solid var(--ink);height:36px}@media (max-width: 760px){.kc-person{grid-template-columns:repeat(2,minmax(0,1fr))}.kc-sign{grid-template-columns:1fr}}@media print{.topbar,.sidenav,.no-print,.notice.warn+.no-print{display:none!important}body,.main{background:#fff!important}.main{padding:0!important}.kpi-card{border:0;padding:0;max-width:none}.kpi-card .name-link{color:inherit;text-decoration:none}table.data{min-width:0!important}.kc-h,.kc-trend,.kc-sign{break-inside:avoid}}
