.ops-plan{--ops-purple:#7c3aed}.ops-plan-head{align-items:center}.ops-plan-actions,.ops-form-actions{display:flex;align-items:center;gap:10px}.ops-month-picker{height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-weight:700;color:#172554}.btn.primary{color:#fff;border-color:#2563eb;background:#2563eb}.btn.small{padding:6px 10px;font-size:11px}.ops-plan-tabs{display:flex;gap:4px;padding:4px;margin-bottom:18px;width:max-content;border:1px solid var(--line);border-radius:9px;background:#fff}.ops-plan-tabs button{padding:8px 15px;border:0;border-radius:6px;color:var(--ink-3);background:transparent;cursor:pointer;font-weight:700}.ops-plan-tabs button.on{color:#fff;background:#172554}.ops-battle-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.ops-battle-kpi{position:relative;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}.ops-battle-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#2563eb}.ops-battle-kpi.green:before{background:#10b981}.ops-battle-kpi.red:before{background:#ef4444}.ops-battle-kpi.amber:before{background:#f59e0b}.ops-battle-kpi span,.ops-battle-kpi small{display:block;color:var(--ink-3);font-size:11px}.ops-battle-kpi strong{display:block;margin:4px 0 2px;font-size:25px;color:#0f172a}.ops-battle-legend{display:flex;align-items:center;gap:16px;margin-bottom:10px;color:var(--ink-3);font-size:11px}.ops-battle-legend span{display:flex;align-items:center;gap:5px}.ops-battle-legend i{width:8px;height:8px;border-radius:50%}.ops-battle-legend i.green{background:#10b981}.ops-battle-legend i.yellow{background:#f59e0b}.ops-battle-legend i.red{background:#ef4444}.ops-battle-legend b{margin-left:auto;color:#475569}.ops-battle-wrap{overflow:auto}.ops-battle-table{width:100%;min-width:1750px;border-collapse:separate;border-spacing:0;font-size:11px}.ops-battle-table th{position:sticky;top:0;z-index:1;padding:10px;background:#eef2ff;color:#334155;text-align:left;border-bottom:1px solid #c7d2fe}.ops-battle-table td{padding:11px 10px;border-bottom:1px solid var(--line-soft);vertical-align:top;background:#fff}.ops-battle-table tr{cursor:pointer}.ops-battle-table tr:hover td{background:#f8fbff}.ops-battle-table tr.has-red td:first-child{box-shadow:inset 3px 0 #ef4444}.ops-battle-table td:first-child{width:130px}.ops-battle-table td.goal{width:205px}.ops-battle-table td.goal b{font-size:12px;line-height:1.5}.ops-battle-table td:nth-child(3){width:135px}.ops-battle-table td strong.good{color:#047857}.ops-battle-table td strong.watch{color:#b45309}.ops-battle-table td strong.bad{color:#dc2626}.ops-battle-table td b,.ops-battle-table td small,.ops-battle-table td em{display:block}.ops-battle-table td small{margin-top:4px;color:#64748b;line-height:1.4}.ops-battle-table td em{margin-top:4px;color:#94a3b8;font-style:normal}.ops-battle-table .week-cell{width:165px}.battle-dot{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:20px;margin-bottom:7px;border-radius:99px;color:#fff;font-size:10px;font-weight:900;background:#94a3b8}.battle-dot.green{background:#10b981}.battle-dot.yellow{background:#f59e0b}.battle-dot.red{background:#ef4444}.ops-battle-table .week-cell b{line-height:1.35}.ops-battle-table .root{width:230px}.ops-battle-table .root b{line-height:1.45;color:#7f1d1d}.ops-battle-table .root span{display:block;margin-top:7px;padding:5px 7px;border-radius:6px;background:#fff7ed;color:#9a3412}.ops-battle-table .action{width:210px;line-height:1.5;color:#1e3a8a}.ops-battle-table .action button{display:block;margin-top:8px;padding:0;border:0;background:transparent;color:#2563eb;font-weight:800;cursor:pointer}.ops-issue-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px}.ops-issue-title{margin-bottom:10px}.ops-issue-title h2{margin:0;font-size:17px}.ops-issue-title span{color:var(--ink-3);font-size:11px}.ops-issue-card,.ops-decision-card{margin-bottom:10px;padding:15px}.ops-issue-card header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.ops-issue-card header em{margin-left:auto;color:var(--ink-3);font-size:11px;font-style:normal}.ops-issue-card>div{margin:9px 0}.ops-issue-card label{display:block;color:#64748b;font-size:10px;font-weight:800}.ops-issue-card strong,.ops-issue-card p{display:block;margin:4px 0 0;line-height:1.5;font-size:12px}.ops-decision-card>span{color:#2563eb;font-size:11px;font-weight:800}.ops-decision-card h3{margin:8px 0;font-size:14px}.ops-decision-card p,.ops-decision-card small{display:block;margin:5px 0;color:#64748b;line-height:1.45}.ops-decision-card button{margin-top:10px}.inline-values{display:grid;grid-template-columns:1fr auto 1fr 70px;gap:6px;align-items:center}.ops-form-grid>.battle-week-form.wide{grid-column:span 2}.battle-week-form{display:grid;grid-template-columns:52px minmax(220px,1fr) minmax(220px,1fr) 90px 100px;gap:8px;align-items:end;padding:12px;border:1px solid var(--line-soft);border-radius:9px;background:#f8fafc}.battle-week-form h4{align-self:center;margin:0;color:#1d4ed8}.battle-week-form label{display:flex;min-width:0;flex-direction:column;gap:5px}.battle-week-form label span{color:#64748b;font-size:10px;font-weight:800}.battle-week-form input,.battle-week-form select{min-width:0;width:100%;height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit}.ops-plan-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.ops-kpi{border-top:3px solid #2563eb}.ops-kpi.green{border-top-color:#10b981}.ops-kpi.red{border-top-color:#ef4444}.ops-kpi.amber{border-top-color:#f59e0b}.ops-kpi.purple{border-top-color:#7c3aed}.ops-plan-overview-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.8fr);gap:14px;margin-bottom:20px}.ops-chart-box{height:300px;padding:12px 16px 8px 6px}.ops-muted{margin-top:3px;color:var(--ink-3);font-size:11px}.ops-attention{display:flex;flex-direction:column;padding:8px 18px}.ops-attention button{display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:center;padding:12px 0;border:0;border-bottom:1px solid var(--line-soft);background:transparent;text-align:left;cursor:pointer}.ops-attention button:last-child{border-bottom:0}.ops-attention b,.ops-attention small{display:block}.ops-attention small{margin-top:4px;color:var(--ink-3)}.ops-attention em{font-style:normal;font-weight:800;color:#2563eb}.risk-dot{width:8px;height:8px;border-radius:50%;background:#f59e0b}.risk-dot.red{background:#ef4444}.ops-empty{padding:42px 0;text-align:center;color:var(--ink-3)}.ops-ai-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px}.ops-ai-cards article,.ops-ai-detail{border:1px solid var(--line);border-radius:10px;padding:14px;background:linear-gradient(180deg,#fff,#f8fbff)}.ops-ai-cards header,.ops-ai-detail header{display:flex;justify-content:space-between;gap:8px;color:var(--ink-3);font-size:11px}.ops-ai-cards header b{color:#2563eb}.ops-ai-cards h3,.ops-ai-detail h3{margin:12px 0 5px;font-size:15px}.ops-ai-cards p,.ops-ai-detail p{min-height:34px;margin:0;color:var(--ink-3);font-size:12px;line-height:1.45}.ops-progress,.ops-cell-progress{height:6px;margin:13px 0 7px;border-radius:99px;overflow:hidden;background:#e5e7eb}.ops-progress i,.ops-cell-progress i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#2563eb,#06b6d4)}.ops-ai-cards footer{display:flex;justify-content:space-between;font-size:11px}.ops-ai-cards small{display:block;margin-top:9px;color:var(--ink-3);line-height:1.4}.ops-toolbar{display:flex;gap:9px;align-items:center;margin-bottom:12px}.ops-toolbar select,.ops-toolbar input{height:36px;padding:0 11px;border:1px solid var(--line);border-radius:8px;background:#fff}.ops-toolbar input{min-width:300px}.ops-toolbar span{margin-left:auto;color:var(--ink-3);font-size:12px}.ops-table-wrap{overflow:auto}.ops-table{width:100%;min-width:1250px;border-collapse:collapse;font-size:12px}.ops-table th{padding:11px 12px;background:#f8fafc;color:#475569;text-align:left;white-space:nowrap}.ops-table td{padding:12px;border-top:1px solid var(--line-soft);vertical-align:top}.ops-table td b,.ops-table td small{display:block}.ops-table td small{margin-top:4px;color:var(--ink-3)}.ops-table .ops-next{min-width:190px;line-height:1.45}.ops-pending{color:#b45309;background:#fffbeb;padding:3px 7px;border-radius:99px}.ops-overdue{color:#dc2626;font-weight:700}.ops-cell-progress{width:86px;margin:3px 0}.link-btn{padding:0 5px;border:0;background:transparent;color:#2563eb;cursor:pointer}.link-btn.danger{color:#dc2626}.ops-status{display:inline-flex;padding:3px 8px;border-radius:99px;background:#f1f5f9;color:#475569;font-size:11px;font-weight:700;white-space:nowrap}.s-已完成,.s-全面生产,.s-低{color:#047857;background:#ecfdf5}.s-进行中,.s-测试环境,.s-小范围生产{color:#1d4ed8;background:#eff6ff}.s-已逾期,.s-已延期,.s-高{color:#b91c1c;background:#fef2f2}.s-中{color:#b45309;background:#fffbeb}.s-达成,.s-达标{color:#047857;background:#ecfdf5}.s-关注{color:#b45309;background:#fffbeb}.s-偏差,.s-未达标{color:#b91c1c;background:#fef2f2}.ops-tracking-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.ops-tracking-head h2{margin:0;font-size:18px}.ops-tracking-head p{margin:5px 0 0;color:var(--ink-3);font-size:12px}.ops-tracking-filter{display:flex;align-items:center;gap:8px}.ops-tracking-filter select{height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff}.ops-week-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.ops-week-list{display:flex;flex-direction:column;gap:12px}.ops-week-card{padding:16px}.ops-week-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.ops-week-card>header b,.ops-week-card>header span{display:block}.ops-week-card>header b{font-size:14px}.ops-week-card>header span{margin-top:5px;color:var(--ink-3);font-size:11px}.ops-week-progress{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:15px 0}.ops-week-progress>div>span,.ops-week-progress>div>strong{font-size:11px}.ops-week-progress>div>strong{float:right;color:#2563eb}.ops-progress i.warn,.ops-cell-progress i.warn{background:linear-gradient(90deg,#f59e0b,#ef4444)}.ops-week-columns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.ops-week-columns section{padding:10px;border-radius:8px;background:#f8fafc}.ops-week-columns section.next{grid-column:span 4;background:#eff6ff}.ops-week-columns label{display:block;margin-bottom:5px;color:#64748b;font-size:10px;font-weight:800}.ops-week-columns p{margin:0;font-size:12px;line-height:1.5}.ops-week-card>footer{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:10px;color:var(--ink-3);font-size:10px}.ops-metric-table{min-width:1550px}.ops-metric-table td{vertical-align:middle}.ops-up{color:#047857;font-weight:700}.ops-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.ops-section-head b,.ops-section-head span{display:block}.ops-section-head b{font-size:16px}.ops-section-head span{margin-top:4px;color:var(--ink-3);font-size:12px}.ops-ai-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.ops-ai-detail{padding:18px}.ops-ai-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:14px}.ops-ai-meta span{padding:8px;border-radius:7px;background:#f1f5f9;color:var(--ink-3);font-size:10px}.ops-ai-meta b{display:block;margin-top:3px;color:var(--ink);font-size:11px}.ops-ai-detail dl{display:grid;grid-template-columns:70px 1fr;gap:8px;margin:14px 0;font-size:11px;line-height:1.45}.ops-ai-detail dt{color:var(--ink-3)}.ops-ai-detail dd{margin:0}.ops-people{max-width:760px}.ops-people-note{margin-bottom:12px;padding:10px 12px;border-radius:8px;background:#eff6ff;color:#1d4ed8;font-size:12px}.ops-people textarea{width:100%;min-height:260px;padding:12px;border:1px solid var(--line);border-radius:9px;resize:vertical;line-height:1.7}.ops-form-actions{margin-top:12px}.ops-form-actions span{color:var(--ink-3);font-size:12px}.ops-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:28px}.ops-modal{width:min(900px,94vw);max-height:92vh;display:flex;flex-direction:column;border-radius:14px;background:#fff;box-shadow:0 26px 80px #0f172a4d}.ops-modal>header,.ops-modal>footer{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}.ops-modal>header h2{margin:0;font-size:18px}.ops-modal>header button{margin-left:auto;border:0;background:transparent;font-size:26px;cursor:pointer}.ops-modal>footer{justify-content:flex-end;gap:9px;border-top:1px solid var(--line);border-bottom:0}.ops-modal-body{padding:18px 20px;overflow:auto}.ops-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.ops-form-grid label{display:flex;flex-direction:column;gap:6px}.ops-form-grid label.wide{grid-column:span 2}.ops-form-grid label>span{font-size:11px;font-weight:800;color:#475569}.ops-form-grid input,.ops-form-grid select,.ops-form-grid textarea{width:100%;min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit}.ops-form-grid textarea{min-height:64px;resize:vertical}.ops-form-grid input[type=range]{padding:0}.ops-form-grid em{font-size:11px;color:#2563eb;font-style:normal;font-weight:800}.ops-battle-table{min-width:1000px;table-layout:fixed;font-size:10.5px}.ops-battle-table th{padding:9px 7px}.ops-battle-table td{padding:10px 7px;overflow:hidden}.ops-battle-table th:nth-child(1){width:105px}.ops-battle-table th:nth-child(2){width:150px}.ops-battle-table th:nth-child(3){width:90px}.ops-battle-table th:nth-child(n+4):nth-child(-n+7){width:100px}.ops-battle-table th:nth-child(8),.ops-battle-table th:nth-child(9){width:145px}.ops-battle-table .week-cell small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ops-battle-table .root b{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.ops-battle-table .root span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ops-battle-table .goal b{font-size:11px}.battle-dot{min-width:38px;height:18px;font-size:9px}@media (max-width:1180px){.ops-plan-kpis{grid-template-columns:repeat(3,1fr)}.ops-ai-cards,.ops-ai-board{grid-template-columns:repeat(2,1fr)}}@media (max-width:760px){.ops-plan-head,.ops-plan-overview-grid,.ops-tracking-head{display:block}.ops-plan-actions,.ops-tracking-filter{margin-top:12px;flex-wrap:wrap}.ops-plan-kpis,.ops-week-kpis,.ops-battle-kpis,.ops-ai-cards,.ops-ai-board,.ops-issue-layout{grid-template-columns:1fr}.ops-plan-tabs{width:100%;overflow:auto}.ops-toolbar{flex-wrap:wrap}.ops-toolbar input{min-width:100%}.ops-form-grid,.ops-week-progress,.ops-week-columns{grid-template-columns:1fr}.ops-form-grid label.wide,.ops-form-grid>.battle-week-form.wide,.ops-week-columns section.next{grid-column:auto}.battle-week-form{grid-template-columns:1fr}}.battle-week-extra{margin-top:8px;padding-top:8px;border-top:1px solid var(--line-soft)}.ops-battle-modal{width:min(1020px,96vw)}.ops-battle-modal>.ops-modal-body{padding:0 24px 18px}.ops-battle-modal>header{padding:18px 24px;border-bottom:0}.ops-battle-modal>header h2{line-height:1.4;overflow:visible}.ops-battle-modal>footer{padding:12px 24px;background:#fafbfc;border-radius:0 0 14px 14px}.battle-form{display:flex;flex-direction:column;gap:20px;font-size:13px}.battle-form label{min-width:0}.battle-form label>span{font-size:12px;font-weight:600;color:#475569}.battle-form input,.battle-form select,.battle-form textarea{border-color:#dce2ea;border-radius:6px;font-size:13px;box-shadow:none}.battle-form input:focus,.battle-form select:focus,.battle-form textarea:focus{outline:2px solid #bfdbfe;outline-offset:1px;border-color:#3b82f6}.battle-basics{display:grid;gap:14px}.battle-goal-line{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:16px}.battle-metric-line{display:grid;grid-template-columns:minmax(0,1fr) 130px 130px 110px;gap:12px}.battle-section-heading{display:flex;align-items:center;gap:12px;margin-bottom:12px}.battle-section-heading h3{margin:0;color:#0f172a;font-size:14px}.battle-section-heading>span{color:#94a3b8;font-size:12px}.battle-week-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:0;overflow:hidden;border:1px solid #dce2ea;border-radius:8px;background:#f8fafc}.battle-week-tabs button{box-sizing:border-box;display:flex;width:100%;min-width:0;height:52px;align-items:center;justify-content:center;gap:8px;padding:0 8px;background:transparent;border:0;border-right:1px solid #dce2ea;border-bottom:3px solid transparent;color:#64748b;cursor:pointer;border-radius:0;font:inherit}.battle-week-tabs button:last-child{border-right:0}.battle-week-tabs button[aria-selected=true]{color:#1d4ed8;background:#eff6ff;border-bottom-color:#2563eb}.battle-week-tabs button:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}.battle-week-tabs small{font-size:10px;color:#94a3b8}.battle-week-panel{padding-top:14px}.battle-week-tools{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px}.battle-week-controls{display:flex;gap:12px}.battle-week-controls label{width:145px}.battle-week-controls input,.battle-week-controls select{min-height:34px;padding:6px 9px}.battle-add-entry{height:34px;color:#2563eb;border-color:#bfdbfe;background:#fff}.battle-entry-list{display:grid;gap:10px}.battle-entry-row{display:grid;grid-template-columns:24px minmax(0,1fr) minmax(0,1fr) 34px;align-items:center;gap:12px;padding:12px;background:#f8fafc;border:1px solid #edf0f4;border-radius:8px}.battle-entry-number{color:#94a3b8;font-size:12px;font-variant-numeric:tabular-nums}.battle-entry-row textarea{min-height:64px;line-height:1.5;resize:vertical;background:#fff}.battle-entry-row>.link-btn{padding:0;align-self:center;font-size:12px}.battle-notes{border-top:1px solid #e8edf3;padding-top:14px}.battle-notes summary{cursor:pointer;color:#475569;font-weight:600;font-size:12px}.battle-notes summary span{margin-left:8px;color:#94a3b8;font-weight:400}.battle-notes-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}@media (max-width:760px){.ops-battle-modal>.ops-modal-body{padding:0 16px 16px}.ops-battle-modal>header,.ops-battle-modal>footer{padding:14px 16px}.battle-goal-line{grid-template-columns:minmax(0,1fr)}.battle-metric-line{grid-template-columns:repeat(3,minmax(0,1fr))}.battle-metric-line>label:first-child{grid-column:1/-1}.battle-week-tabs button{flex-wrap:wrap;gap:4px;padding:0 4px}.battle-week-tabs button span{font-size:11px}.battle-week-tabs small{display:none}.battle-section-heading>span{display:none}.battle-week-tools{align-items:flex-end;flex-wrap:wrap}.battle-week-controls{flex:1}.battle-week-controls label{width:auto;flex:1}.battle-entry-row{grid-template-columns:20px minmax(0,1fr) 30px;gap:8px}.battle-entry-row>label{grid-column:2}.battle-entry-row>.battle-entry-number{grid-column:1;grid-row:1}.battle-entry-row>.link-btn{grid-column:3;grid-row:1}.battle-notes-fields{grid-template-columns:minmax(0,1fr)}.battle-notes summary span{display:block;margin:6px 0 0 14px}}.ops-migration{padding:12px 16px;margin:12px 0}.ops-migration summary{cursor:pointer;font-weight:600}.ops-migration-table{max-height:280px;overflow:auto;margin:12px 0}.ops-submissions{margin:16px 0;color:#334155}.ops-submissions>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:10px}.ops-submissions article{display:grid;gap:7px;padding:14px;border:1px solid #dce2ea;border-radius:8px;background:#fff}.ops-submissions article span{font-size:12px;color:#64748b}.ops-submissions article b{font-size:12px}.ops-submissions .pending{color:#92400e}.ops-submissions .submitted{color:#15803d}.ops-battle-table tr.ops-readonly-row{cursor:default}.ops-table td>small{white-space:nowrap;word-break:keep-all}.ops-table td:not(.ops-next){word-break:keep-all}.ops-table td:last-child{white-space:nowrap}.hq-settings{scroll-margin-top:24px}.hq-settings fieldset{border:0;padding:0;min-width:0}.hq-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:16px 0}.hq-toolbar input{max-width:280px}.hq-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,1fr);gap:24px;margin-top:16px}.hq-list{max-height:590px;overflow:auto;border:1px solid #dce3ef;border-radius:12px}.hq-list>button{display:block;width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid #e8edf4;padding:14px;cursor:pointer}.hq-list>button.selected{background:#eaf1ff;box-shadow:inset 3px 0 #2764e7}.hq-list strong,.hq-list span{display:block}.hq-list span{font-size:12px;color:#64748b;margin-top:5px;line-height:1.6}.hq-editor{padding:18px;background:#f7f9fc;border-radius:12px}.hq-editor label{display:block;margin:12px 0;font-size:13px}.hq-editor input:not([type=checkbox]),.hq-editor select{display:block;width:100%;padding:9px;margin-top:7px;border:1px solid #cdd6e3;border-radius:6px;background:#fff}.hq-editor .hq-checkbox{display:flex;gap:8px;align-items:center}.hq-error{color:#ae2637;background:#fff0f2;padding:12px;border-radius:8px}.hq-notice{color:#126843;background:#eaf8ef;padding:12px;border-radius:8px}.hq-settings details{padding:12px;background:#f7f9fc;border-radius:8px}.hq-settings input[type=file]{display:block;max-width:240px;margin-top:5px}@media (max-width:900px){.hq-layout{grid-template-columns:1fr}.hq-list{max-height:300px}}.hq-people-layout{grid-template-columns:minmax(0,1fr)}.hq-people-table{width:100%;min-width:740px;border-collapse:collapse}.hq-people-table th{position:sticky;top:0;background:#f1f5fb;z-index:1;text-align:left;white-space:nowrap}.hq-people-table th,.hq-people-table td{padding:12px 14px;border-bottom:1px solid #e8edf4;vertical-align:top}.hq-people-table tr.selected{background:#eaf1ff}.hq-person-name{border:0;padding:0;background:transparent;color:#1d4ed8;font:inherit;font-weight:600;white-space:nowrap;cursor:pointer}.hq-person-name:focus-visible{outline:2px solid #2764e7;outline-offset:4px}.weekly-planner{margin-bottom:16px;overflow:hidden}.weekly-state-line{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:14px;color:#475569;font-size:12px}.weekly-state-line>span{color:#64748b}.weekly-controls{padding:14px;margin:14px 0 10px;border:1px solid #e2e8f0;border-radius:10px}.weekly-controls p{margin:8px 0 12px;color:#64748b;font-size:12px;line-height:1.7}.weekly-total-toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700}.weekly-global-note{display:flex;align-items:center;gap:12px;font-size:12px}.weekly-global-note input{flex:1;min-width:160px}.weekly-notice{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;margin-bottom:12px;border:1px solid #fde68a;background:#fffbeb;border-radius:8px;font-size:12px}.weekly-legend{display:flex;gap:16px;font-size:11px;color:#475569}.weekly-legend span:before{content:"";display:inline-block;width:10px;height:10px;margin-right:5px;border:1px solid #cbd5e1;background:#eff6ff}.weekly-legend span:nth-child(2):before{background:#fffbeb}.weekly-legend span:nth-child(3):before{background:#f1f5f9}.weekly-planner .weekly-baseline{background:#eff6ff}.weekly-planner .weekly-adjustment{background:#fffbeb}.weekly-planner .weekly-result{color:#334155;background:#f8fafc;font-variant-numeric:tabular-nums}.weekly-planner input:disabled{opacity:1;color:#64748b;cursor:default}.weekly-planner button:disabled{cursor:not-allowed;opacity:.55}.weekly-table th small,.weekly-planner-summary small{display:block;margin-top:4px;font-size:10px;color:#64748b;font-weight:400}.weekly-table th[scope=row]{text-align:left;padding-left:10px;border-top:1px solid #edf2f7}.weekly-save-actions{display:flex;gap:8px;flex-shrink:0}.weekly-validation,.weekly-history{margin-top:16px;font-size:12px}.weekly-validation summary,.weekly-history summary{cursor:pointer;padding:10px 0;font-weight:700}.weekly-validation ul{max-height:180px;overflow:auto;line-height:1.8;padding-left:20px}.weekly-history-table{min-width:680px}.weekly-history-table td:nth-child(4){max-width:320px;white-space:normal;overflow-wrap:anywhere}.weekly-planner-hd{align-items:flex-start;gap:18px}.weekly-planner-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.weekly-planner-actions label{display:flex;flex-direction:column;gap:4px;color:var(--ink-3);font-size:11px;font-weight:700}.weekly-planner-actions .compact{width:100px}.weekly-planner-body{padding:16px 18px 18px}.weekly-planner-summary{display:grid;grid-template-columns:1.25fr 1.2fr .8fr .9fr;gap:10px}.weekly-planner-summary>div{min-height:72px;padding:12px;border:1px solid #dbeafe;border-radius:10px;background:linear-gradient(135deg,#f8fbff,#eff6ff)}.weekly-planner-summary span{display:block;color:var(--ink-3);font-size:11px;font-weight:700}.weekly-planner-summary b{display:block;margin-top:6px;color:#0f3b7a;font-size:14px}.weekly-planner-section{margin-top:18px}.weekly-section-title{display:flex;align-items:baseline;gap:10px;margin:0 0 9px}.weekly-section-title b{color:var(--ink);font-size:13px}.weekly-section-title span{color:var(--ink-3);font-size:12px}.weekly-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}.weekly-table{width:100%;min-width:1080px;border-collapse:collapse;font-size:12px}.weekly-table th{padding:9px 7px;background:#f8fafc;color:#475569;white-space:nowrap;font-weight:800;text-align:center}.weekly-table td{padding:6px;border-top:1px solid #edf2f7;text-align:center;white-space:nowrap}.weekly-table td:first-child{text-align:left;padding-left:10px}.weekly-table td small{display:block;margin-top:2px;color:var(--ink-4);font-size:10px}.weekly-table input{width:72px;height:30px;border:1px solid #cbd5e1;border-radius:6px;padding:0 7px;text-align:right;color:var(--ink);background:#fffef0;font:inherit}.weekly-table input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1c;background:#fff}.weekly-table .note-input{width:112px;text-align:left}.weekly-table tfoot td{background:#f8fafc;font-weight:800}.weekly-warning{color:#b45309;font-weight:700}.weekly-success{color:#047857;font-weight:700}.weekly-day-tabs{display:flex;gap:6px;margin-bottom:10px;overflow-x:auto}.weekly-day-tabs button{min-width:76px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;color:#475569;background:#fff;cursor:pointer;font:inherit;font-weight:700}.weekly-day-tabs button.on{color:#fff;border-color:#2563eb;background:#2563eb}.weekly-day-tabs small{display:block;margin-top:1px;opacity:.75;font-size:10px}.weekly-planner-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;min-height:34px;font-size:12px}.weekly-excel-import{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin-top:18px;padding:16px;border:1px solid #dbeafe;border-radius:10px;background:#f8fbff}.weekly-excel-import>div:first-child{flex:1 1 340px}.weekly-excel-import b{font-size:13px;color:#0f3b7a}.weekly-excel-import p,.weekly-excel-preview p{margin:7px 0 0;font-size:12px;line-height:1.7;color:#475569;overflow-wrap:anywhere}.weekly-excel-import small{flex-basis:100%;font-size:11px;color:#64748b}.weekly-excel-actions{display:flex;flex-wrap:wrap;gap:8px}.weekly-excel-file{display:none}.weekly-excel-preview{margin-top:12px;padding:16px;border:1px solid #93c5fd;border-radius:10px;background:#fff}.weekly-excel-preview .weekly-section-title{flex-wrap:wrap}.weekly-excel-preview .weekly-section-title span{overflow-wrap:anywhere;min-width:0}.weekly-excel-preview .weekly-planner-summary{margin-top:12px}.weekly-import-detail{margin-top:12px;border:1px solid #dbeafe;border-radius:10px;background:#f8fbff}.weekly-import-detail summary{cursor:pointer;padding:10px 12px;color:#0f3b7a;font-size:12px;font-weight:800}.weekly-import-detail-scroll{max-height:420px;overflow:auto;border-top:1px solid #dbeafe}.weekly-import-detail-scroll .weekly-table{min-width:720px;margin:0}.weekly-excel-preview .weekly-excel-preserved{padding:10px 12px;background:#fffbeb;border-radius:8px}.weekly-excel-confirm{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:14px}.weekly-excel-confirm>span{flex:1 1 300px;font-size:12px;line-height:1.7;color:#475569}.weekly-actual-import{margin-top:16px;padding-top:12px;border-top:1px solid #e2e8f0}.weekly-actual-import summary{cursor:pointer;padding:8px 0;font-size:12px;font-weight:700}.weekly-inline-actual-import{flex:1 1 100%;margin-top:4px;padding-top:12px;border-top:1px solid #dbeafe}.weekly-manual-entry{display:none}.weekly-inline-actual-import details{margin:0}.weekly-inline-actual-import summary{cursor:pointer;padding:4px 0 8px;font-size:12px;font-weight:800;color:#0f3b7a}@media (max-width: 600px){.weekly-planner-foot{align-items:stretch;flex-direction:column}.weekly-save-actions,.weekly-excel-actions{flex-wrap:wrap}.weekly-excel-import,.weekly-excel-preview{padding:12px}.weekly-excel-preview .weekly-planner-summary{grid-template-columns:1fr}}@media (max-width: 900px){.weekly-planner-hd{flex-direction:column}.weekly-planner-actions{margin-left:0}.weekly-planner-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.weekly-section-title{flex-direction:column;gap:2px}}.factory-web.content{--ink:#193a34;--accent:#17685d;--line:#dce9e4;--soft:#f1f7f4;color:var(--ink);max-width:1440px;margin:0 auto}.factory-web h1,.factory-web h2,.factory-web h3{margin:0 0 .65em;line-height:1.2}.factory-web h2{font-size:22px}.factory-web h3{font-size:17px}.factory-web p{margin:.6em 0}.factory-hero{background:#123e38;color:#fff;border-radius:18px;padding:clamp(20px,4vw,40px);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.factory-hero h1{font-size:clamp(28px,4vw,44px);margin:.25em 0}.factory-hero a,.factory-hero p{color:#cce7dd}.factory-web button,.factory-web input,.factory-web select{font:inherit;min-height:40px;border-radius:8px;border:1px solid var(--line);padding:8px 12px;background:#fff;color:var(--ink)}.factory-web button{cursor:pointer}.factory-web button:disabled{cursor:default;opacity:.55}.factory-web .factory-primary,.factory-segment button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.factory-segment,.factory-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.factory-toolbar h2{margin:0 auto 0 0}.factory-tabs{margin:16px 0}.factory-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:clamp(14px,2vw,24px);margin:12px 0}.factory-filters,.factory-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:12px;align-items:end}.factory-fields{margin-bottom:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.factory-web label{display:grid;gap:6px;font-size:13px;font-weight:600}.factory-web input,.factory-web select{min-width:0}.factory-kpis{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(100%,165px),1fr))}.factory-kpis div{border:1px solid var(--line);background:var(--soft);padding:16px;border-radius:12px}.factory-kpis span,.factory-kpis strong{display:block}.factory-kpis strong{margin-top:5px;font-size:clamp(17px,1.65vw,23px);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.factory-muted{color:#50665e}.factory-bar{display:flex;min-height:18px;border-radius:8px;overflow:hidden;background:#edf3f0}.factory-bar span{display:block;height:18px}.factory-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:10px;margin:12px 0 20px}.factory-legend div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:5px 8px;border:1px solid var(--line);padding:8px;border-radius:8px}.factory-legend strong{grid-row:2;grid-column:2}.factory-dot{width:10px;height:10px;border-radius:50%}.factory-split{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:8px}.factory-table-wrap{overflow-x:auto;margin-top:12px}.factory-web table{width:100%;border-collapse:collapse;text-align:left}.factory-web th,.factory-web td{padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}.factory-web th{background:var(--soft);font-size:13px}.factory-web td small{display:block;margin-top:4px;color:#50665e}.factory-web .factory-link{padding:0;border:0;min-height:24px;color:var(--accent);text-decoration:underline;background:transparent}.factory-selected{background:#e4f4ee}.factory-error{background:#fff0e8;padding:10px 12px;border-radius:8px}.factory-negative,.factory-error{color:#982f20}.factory-revenue-bar{position:relative}.factory-revenue-bar i{position:absolute;height:100%;width:2px;background:#fff;border-left:2px solid #982f20}@media (max-width:760px){.app:has(.factory-web){grid-template-columns:minmax(0,1fr)}.app:has(.factory-web) .side{display:none}.app:has(.factory-web) .topbar{padding:0 12px}.factory-web.content{padding:14px 12px 30px}}.factory-web textarea{box-sizing:border-box;width:100%;padding:12px;border:1px solid var(--line);border-radius:8px;font:inherit;resize:vertical}.factory-device-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;max-height:280px;overflow:auto}.factory-device-choices label{display:flex;align-items:center;gap:8px}.factory-device-choices input{min-height:20px}.factory-device-trace{overflow-wrap:anywhere}.factory-web.content{max-width:none;padding:16px 20px 24px}.factory-hero{padding:16px 20px;border-radius:10px;gap:12px}.factory-hero h1{font-size:26px;margin:4px 0}.factory-hero p{margin:0;font-size:13px}.factory-hero a{font-size:12px}.factory-tabs{margin:12px 0;padding-bottom:10px;border-bottom:1px solid var(--line)}.factory-panel{padding:16px;margin:10px 0;border-radius:10px;min-width:0}.factory-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px;align-items:start}.factory-fields label:has(textarea){grid-column:1/-1}.factory-fields label:has(.factory-photo){grid-column:1/-1}.factory-fields input,.factory-fields select{width:100%;box-sizing:border-box;height:40px}.factory-fields textarea{min-height:140px}.factory-detail-grid,.factory-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}.factory-detail-grid>.factory-panel,.factory-dashboard-grid>.factory-panel{margin:0;height:100%;box-sizing:border-box}.factory-detail-grid>.factory-panel:last-child{grid-column:1/-1}.factory-kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:12px}.factory-kpis div{padding:12px 14px}.factory-kpis strong{font-size:22px}.factory-web td{vertical-align:top;font-variant-numeric:tabular-nums}.factory-web th,.factory-web td{padding:10px 12px}.factory-web td details{padding:3px 0}.factory-web td small{white-space:normal;max-width:300px;overflow-wrap:anywhere}.factory-photo{display:flex;gap:16px;align-items:center}.factory-photo img,.factory-part-thumb{width:72px;height:72px;object-fit:contain;border:1px solid var(--line);border-radius:6px}.factory-part-thumb{display:block;margin-top:8px}@media (max-width:1100px){.factory-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.factory-detail-grid,.factory-dashboard-grid{grid-template-columns:1fr}.factory-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:600px){.factory-fields{grid-template-columns:1fr}.factory-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.factory-photo{flex-wrap:wrap}}.factory-date-panel .factory-filters{margin:12px 0}.factory-date-panel>.factory-toolbar{justify-content:space-between}.factory-workflow-states{margin:12px 0}.factory-workflow-states span{padding:8px 16px;background:#e7efeb;border-radius:8px;color:#49645e}.factory-workflow-states .current{background:#17685d;color:#fff;font-weight:700}.factory-actual .factory-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:12px}.factory-actual .record{padding:12px 0;border-bottom:1px solid #dce9e4}@media (max-width:700px){.factory-actual .factory-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.factory-web.content{container-type:inline-size;box-sizing:border-box;width:100%}.factory-web *,.factory-web *:before,.factory-web *:after{box-sizing:border-box}.factory-web button,.factory-web input,.factory-web select,.factory-web textarea{margin:0;line-height:22px}.factory-web button{min-height:40px;padding:8px 14px}.factory-web input:not([type=checkbox]):not([type=hidden]),.factory-web select{height:40px;padding:8px 12px}.factory-web input[type=checkbox]{width:16px;height:16px;min-height:16px;flex:0 0 16px;padding:0;accent-color:var(--accent)}.factory-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.factory-tabs button{height:100%}.factory-panel{margin:12px 0}.factory-web label{min-width:0;line-height:20px}.factory-fields{align-items:stretch}.factory-fields>label,.factory-filters>label{grid-template-rows:1fr auto}.factory-fields>label>span,.factory-filters>label>span{display:block;overflow-wrap:anywhere}.factory-fields textarea{min-height:96px}.factory-fields>.factory-confirm{grid-column:1/-1;display:flex;flex-direction:row-reverse;justify-content:flex-end;align-items:center;min-height:40px;gap:10px}.factory-form-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,320px);margin:16px 0 0 auto}.factory-form-actions button{width:100%}.factory-device-choices{grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));margin:12px 0}.factory-device-choices label{min-height:40px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;overflow-wrap:anywhere}.factory-photo{flex-wrap:wrap}.factory-photo input[type=file]{flex:1;min-width:200px}.factory-kpis>div{display:grid;grid-template-rows:1fr auto;gap:8px;min-width:0}.factory-kpis span{font-size:13px;line-height:20px}.factory-kpis strong{margin:0;line-height:1.3}.factory-dashboard-grid{align-items:stretch}.factory-dashboard-grid>.factory-panel{height:100%}.factory-detail-grid>.factory-panel{height:auto}.factory-legend{align-items:stretch}.factory-legend>div{grid-template-columns:10px minmax(0,1fr) auto;grid-template-rows:1fr auto;padding:10px}.factory-legend .factory-component-name{grid-column:2/-1;font-size:13px;line-height:20px}.factory-legend strong{grid-row:2;grid-column:2;font-variant-numeric:tabular-nums}.factory-legend>div>span:last-child{grid-row:2;grid-column:3;text-align:right;font-size:12px;font-variant-numeric:tabular-nums}.factory-web th,.factory-web td{text-align:left;vertical-align:middle}.factory-web .factory-number{text-align:right}.factory-date-panel .factory-filters{grid-template-columns:repeat(3,minmax(0,1fr)) 100px;align-items:end}.factory-date-panel .factory-segment,.factory-workflow-states{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.factory-workflow-states span{display:flex;align-items:center;justify-content:center;padding:10px;min-height:40px;text-align:center}.factory-workflow-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));align-items:stretch}.factory-workflow-actions button{width:100%;height:100%}@container (max-width:1000px){.factory-dashboard-grid,.factory-detail-grid{grid-template-columns:1fr}}@container (max-width:820px){.factory-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.factory-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@container (max-width:540px){.factory-fields{grid-template-columns:minmax(0,1fr)}.factory-kpis,.factory-actual .factory-kpis,.factory-date-panel .factory-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.factory-date-panel .factory-filters>button{width:100%}.factory-tabs{gap:4px}.factory-tabs button,.factory-workflow-states span{padding:8px 4px;font-size:12px}.factory-workflow-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.factory-workflow-actions button:last-child:nth-child(odd){grid-column:1/-1}.factory-form-actions{width:100%}}.factory-hero{padding:16px}.factory-kpis>div{padding:16px}.supply-flow{padding:20px;min-width:0}.supply-flow-head,.supply-flow-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.supply-flow h2,.supply-flow h3{margin:0 0 8px}.supply-flow p{color:#52677f;line-height:1.7}.supply-flow-list{display:grid;gap:16px;margin-top:18px}.supply-flow-card{border:1px solid #dce5ee;background:#fff;border-radius:12px;padding:20px}.supply-flow-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.supply-flow-card dt{font-size:12px;color:#61748b}.supply-flow-card dd{margin:4px 0;white-space:pre-wrap;overflow-wrap:anywhere}.supply-flow-card summary{cursor:pointer;padding:12px 0}.supply-flow-card li{margin:8px 0;color:#52677f}.supply-flow-error{color:#b91c1c!important;background:#fff1f2;padding:12px;border-radius:8px}.supply-flow-modal{width:min(760px,94vw);max-height:90vh;overflow:auto}.supply-flow-modal label{display:grid;gap:8px;margin:16px 0}.supply-flow-modal input,.supply-flow-modal select,.supply-flow-modal textarea{padding:10px;border:1px solid #cbd5e1;border-radius:6px;max-width:100%}.supply-flow-modal input[type=checkbox]{width:22px;height:22px}.supply-flow-agreement{padding:16px;background:#f1f5f9;border-radius:8px}.supply-flow-agreement pre{white-space:pre-wrap;font:inherit;line-height:1.8;max-height:300px;overflow:auto}@media (max-width:700px){.supply-flow{padding:12px}.supply-flow-head,.supply-flow-card header{flex-direction:column}.supply-flow-card dl{grid-template-columns:1fr}.supply-flow-card{padding:14px}}.equipment-production{container-type:inline-size;min-width:0;margin:16px 0;padding:16px;border:1px solid #dce9e4;border-radius:12px;background:#fff}.equipment-production header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:14px}.equipment-production h3,.equipment-production h4{margin:0;color:#193a34}.equipment-production h3{font-size:16px;line-height:1.4}.equipment-production header p{margin:4px 0 0;color:#50665e;font-size:12px;line-height:1.5}.equipment-production-count{padding:4px 8px;border-radius:6px;background:#e8f4ee;color:#26594c;font-size:12px;font-weight:700}.equipment-production-devices{display:grid;gap:8px}.equipment-production-device{min-width:0;border:1px solid #dce9e4;border-radius:9px;background:#fff}.equipment-production-device[open]{border-color:#a9ccc0}.equipment-production-device>summary{display:grid;grid-template-columns:34px minmax(0,1fr) 10px;align-items:center;gap:10px;min-height:60px;padding:10px 12px;border-radius:8px;background:#f4f9f6;cursor:pointer;list-style:none}.equipment-production-device>summary::-webkit-details-marker{display:none}.equipment-production-device>summary:hover{background:#ebf5ef}.equipment-production-device>summary:focus-visible{outline:2px solid #17685d;outline-offset:2px}.equipment-production-device[open]>summary{border-radius:8px 8px 0 0;background:#edf6f2}.equipment-production-index{display:grid;place-items:center;width:34px;height:34px;border-radius:7px;background:#dceee6;color:#26594c;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.equipment-production-summary{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:6px 12px;min-width:0}@container (max-width: 380px){.equipment-production-summary{grid-template-columns:minmax(0,1fr)}}.equipment-production-identity{display:grid;gap:2px;min-width:0;overflow-wrap:anywhere}.equipment-production-identity b{color:#193a34;font-size:14px;line-height:1.4}.equipment-production-identity small{color:#50665e;font-size:11px}.equipment-production-stats{display:flex;flex-wrap:wrap;gap:5px;font-size:11px;color:#34594e}.equipment-production-stats span{padding:3px 6px;border:1px solid #dce9e4;border-radius:5px;background:#fff;white-space:nowrap}.equipment-production-chevron{width:7px;height:7px;border-right:2px solid #427568;border-bottom:2px solid #427568;transform:rotate(45deg)}.equipment-production-device[open] .equipment-production-chevron{transform:rotate(225deg)}.equipment-production-body{padding:12px;border-top:1px solid #dce9e4}.equipment-production-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:10px}.equipment-production-grid>section{min-width:0;border:1px solid #dce9e4;border-radius:7px;overflow:hidden}.equipment-production h4{padding:8px 10px;background:#f4f9f6;font-size:13px}.equipment-production ul{margin:0;padding:0 10px;list-style:none}.equipment-production li{padding:10px 0;overflow-wrap:anywhere}.equipment-production li+li{border-top:1px solid #e8efec}.equipment-production-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:3px 8px}.equipment-production-heading b{min-width:0;font-size:13px}.equipment-production time{flex:0 0 auto;font-variant-numeric:tabular-nums}.equipment-production time,.equipment-production-meta,.equipment-production li small{color:#50665e;font-size:12px}.equipment-production li small,.equipment-production-meta{display:block;margin-top:4px;line-height:1.5}.equipment-production li p{margin:6px 0 0;line-height:1.5}.equipment-production .equipment-production-empty{margin:0;padding:10px;color:#50665e;font-size:12px}.equipment-production img{display:block;width:64px;height:64px;margin-top:8px;border:1px solid #dce9e4;border-radius:6px;object-fit:contain}.user-analytics-page{display:grid;gap:16px}.analytics-head,.analytics-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.analytics-head h1{margin:0;font-size:24px}.analytics-head p,.analytics-panel-head p{margin:5px 0 0;color:#64748b;font-size:12px}.analytics-period{display:flex;padding:3px;border-radius:9px;background:#eef2f7}.analytics-period button{padding:7px 12px;border:0;border-radius:6px;background:transparent;color:#64748b;font:inherit;font-weight:800;cursor:pointer}.analytics-period button.on{color:#1d4ed8;background:#fff;box-shadow:0 1px 3px #0f172a1f}.analytics-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.analytics-kpis>div,.analytics-panel{border:1px solid #e2e8f0;border-radius:12px;background:#fff;box-shadow:0 2px 8px #0f172a08}.analytics-kpis>div{min-height:112px;padding:15px;border-top:3px solid #60a5fa}.analytics-kpis>div:nth-child(2){border-top-color:#818cf8}.analytics-kpis>div:nth-child(3){border-top-color:#34d399}.analytics-kpis>div:nth-child(4){border-top-color:#fbbf24}.analytics-kpis>div:nth-child(5){border-top-color:#f472b6}.analytics-kpis span,.analytics-kpis small{display:block;color:#64748b;font-size:11px;font-weight:700}.analytics-kpis b{display:block;margin:5px 0 2px;color:#10213e;font-size:26px}.analytics-panel{padding:18px}.analytics-panel-head>span{color:#94a3b8;font-size:11px}.analytics-panel h2{margin:0;color:#10213e;font-size:16px}.analytics-trend{display:flex;height:184px;gap:8px;align-items:flex-end;margin-top:20px;padding:0 4px;border-bottom:1px solid #e2e8f0}.analytics-day{display:grid;flex:1 1 0;min-width:36px;justify-items:center;gap:3px;color:#64748b;font-size:10px}.analytics-day>b{color:#1e3a5f;font-size:11px}.analytics-day>small{color:#94a3b8;font-size:9px}.analytics-bars{display:flex;align-items:flex-end;gap:3px;width:100%;height:128px}.analytics-bars i{display:block;flex:1;min-height:2px;border-radius:4px 4px 0 0}.analytics-bars .view,.analytics-legend .view{background:#2563eb}.analytics-bars .click,.analytics-legend .click{background:#f59e0b}.analytics-legend{display:flex;gap:16px;margin-top:10px;color:#64748b;font-size:11px}.analytics-legend i{display:inline-block;width:8px;height:8px;margin-right:4px;border-radius:50%}.analytics-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}.analytics-grid .analytics-panel{min-width:0}.analytics-panel table{margin-top:16px}.analytics-panel td small{display:block;margin-top:2px;color:#94a3b8;font-size:10px}.analytics-recent{margin-top:14px}.analytics-recent>div{display:grid;grid-template-columns:76px minmax(180px,1fr) minmax(120px,1fr) 160px;gap:12px;align-items:center;padding:10px 2px;border-top:1px solid #eef2f7;font-size:12px}.analytics-recent em{color:#64748b;font-style:normal}.analytics-recent time{color:#94a3b8;font-size:11px;text-align:right}.analytics-event{display:inline-flex;justify-content:center;padding:3px 6px;border-radius:4px;color:#2563eb;background:#eff6ff;font-size:10px;font-weight:800}.analytics-event.page_leave{color:#047857;background:#ecfdf5}.analytics-event.click{color:#b45309;background:#fffbeb}.analytics-error{padding:16px;border:1px solid #fecaca;border-radius:10px;color:#b91c1c;background:#fef2f2}@media (max-width:1100px){.analytics-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-grid{grid-template-columns:1fr}}@media (max-width:720px){.analytics-head{flex-direction:column}.analytics-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-recent>div{grid-template-columns:70px 1fr}.analytics-recent em,.analytics-recent time{grid-column:2;text-align:left}}:root{--bg: #f7f8fa;--ink: #0f172a;--ink-3: #64748b;--ink-4: #94a3b8;--line: #e5e7eb;--line-soft: #eef0f3;--card: #ffffff;--side: #0f172a;--side-2: #1e293b;--side-text: #cbd5e1;--side-text-dim: #64748b;--blue: #2563eb;--green: #059669;--amber: #d97706;--red: #dc2626;--purple: #7c3aed}.survey-card{margin-top:28px;border:1px solid #cbd5e1;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 14px 40px #0f172a14}.survey-card>header{padding:22px 24px;display:flex;justify-content:space-between;gap:20px;color:#fff;background:linear-gradient(135deg,#0f766e,#0f4c81)}.survey-card>header span{font-size:12px;opacity:.8}.survey-card>header h3{margin:4px 0;font-size:22px}.survey-card>header p{margin:0;color:#ffffffc7}.survey-card>header strong{align-self:flex-start;white-space:nowrap;padding:6px 10px;border-radius:999px;background:#ffffff24;font-size:12px}.survey-section,.survey-acceptance{padding:22px 24px;border-bottom:1px solid var(--line-soft)}.survey-section h4{margin:0 0 12px;font-size:16px}.survey-section h4 em{margin-left:8px;font-size:12px;color:#0f766e;font-style:normal}.survey-score-row{min-height:58px;display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:center;gap:18px;border-top:1px dashed #e2e8f0}.survey-score-row:first-of-type{border-top:0}.survey-score-row>div:first-child{display:flex;flex-direction:column;gap:3px}.survey-score-row span,.survey-nps>span{color:var(--ink-3);font-size:12px}.survey-stars{display:flex;gap:5px}.survey-stars button,.survey-nps button,.survey-choice button{border:1px solid #cbd5e1;background:#fff;color:#64748b;border-radius:8px;cursor:pointer}.survey-stars button{width:43px;height:34px;font-weight:800}.survey-stars button small{margin-left:2px;color:#f59e0b}.survey-stars button.on,.survey-nps button.on,.survey-choice button.on{border-color:#0f766e;color:#fff;background:#0f766e}.survey-acceptance{background:#f8fafc}.survey-acceptance>p{margin:5px 0 12px;color:var(--ink-3)}.survey-choice{display:flex;gap:10px;margin-bottom:14px}.survey-choice button{padding:9px 18px;font-weight:800}.survey-choice button.danger.on{border-color:#dc2626;background:#dc2626}.survey-checks{display:grid;gap:8px}.survey-checks label,.survey-contact,.survey-issues label{display:flex;align-items:center;gap:7px}.survey-danger{margin-top:12px;padding:10px 12px;border-radius:8px;color:#991b1b;background:#fee2e2;font-weight:800}.survey-nps{display:flex;flex-direction:column;gap:6px}.survey-nps>div{display:grid;grid-template-columns:repeat(11,1fr);gap:5px}.survey-nps button{min-width:0;height:34px;font-weight:800}.survey-issues{margin:20px 0 16px;display:flex;flex-wrap:wrap;gap:9px 16px}.survey-issues>b{width:100%}.survey-text{display:flex;flex-direction:column;gap:7px;font-weight:700}.survey-text textarea{min-height:90px;resize:vertical;padding:11px;border:1px solid #cbd5e1;border-radius:9px;font:inherit}.survey-contact{margin-top:14px}.survey-section select{margin-top:8px;padding:7px 10px;border:1px solid #cbd5e1;border-radius:8px}.survey-card>footer{padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f8fafc}.survey-card>footer b{color:#0f766e;font-size:20px}.survey-message{margin:0;padding:0 24px 18px;color:#0f766e;font-weight:800;background:#f8fafc}.survey-submitted{margin-top:24px;padding:18px;display:flex;flex-direction:column;gap:4px;border:1px solid #99f6e4;border-radius:12px;color:#115e59;background:#f0fdfa}.survey-submitted span{color:#475569}@media (max-width:720px){.survey-score-row{grid-template-columns:1fr;padding:12px 0;gap:8px}.survey-stars button{flex:1;width:auto}.survey-nps>div{grid-template-columns:repeat(6,1fr)}.survey-card>header,.survey-section,.survey-acceptance,.survey-card>footer{padding-left:16px;padding-right:16px}}.satisfaction-admin{display:grid;gap:16px}.satisfaction-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.satisfaction-kpis>div{position:relative}.satisfaction-kpis em{margin-left:4px;color:var(--ink-3);font-style:normal}.survey-alert-row{background:#fff7f7}.survey-alert-row:hover{background:#fee2e2!important}@media (max-width:1100px){.satisfaction-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}.survey-meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.survey-meta-grid label,.survey-device-grid label{display:flex;flex-direction:column;gap:6px;font-weight:700}.survey-meta-grid input,.survey-meta-grid select,.survey-device-grid input,.survey-device-grid select,.survey-share-modal input{min-height:38px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;font:inherit;background:#fff}.survey-device-issues{margin:18px 0}.survey-device-issues-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.survey-device-issues-hd>div{display:flex;flex-direction:column;gap:4px}.survey-device-issues-hd span,.survey-photo-row>span{font-size:12px;color:var(--ink-3)}.survey-device-card{margin-top:12px;padding:14px;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc}.survey-device-grid{display:grid;grid-template-columns:1.2fr 1fr 1.4fr auto;gap:10px;align-items:end}.survey-device-card .survey-text{margin-top:12px}.survey-photo-row{margin-top:10px;display:flex;align-items:center;flex-wrap:wrap;gap:9px}.survey-photo-row>label{position:relative;overflow:hidden}.survey-photo-row input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.survey-photo{position:relative;width:64px;height:64px}.survey-photo img{width:100%;height:100%;object-fit:cover;border-radius:8px}.survey-photo button{position:absolute;right:-5px;top:-5px;width:20px;height:20px;padding:0;border:0;border-radius:50%;color:#fff;background:#dc2626;cursor:pointer}.survey-share-modal{width:min(460px,calc(100vw - 28px))}.survey-share-modal .modal-bd{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.survey-share-modal img{width:280px;height:280px}.survey-share-modal label{width:100%;display:flex;flex-direction:column;gap:6px;text-align:left}.survey-share-modal input{width:100%;box-sizing:border-box}.survey-share-modal small{color:#92400e}.survey-admin-device{min-width:230px;margin-bottom:7px}.survey-admin-device span{display:flex;gap:8px}.survey-admin-device a{color:#0f766e;text-decoration:underline}@media (max-width:720px){.survey-meta-grid,.survey-device-grid{grid-template-columns:1fr}.survey-device-issues-hd{align-items:stretch;flex-direction:column}.survey-share-modal img{width:220px;height:220px}}.survey-filter-bar{display:flex;align-items:flex-end;justify-content:flex-end;flex-wrap:wrap;gap:8px}.survey-filter-bar label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--ink-3)}.survey-filter-bar input{height:34px;box-sizing:border-box;padding:6px 8px;border:1px solid #cbd5e1;border-radius:7px;font:inherit;color:var(--ink-1);background:#fff}.survey-filter-bar .more{align-self:center;margin-left:4px}.survey-public-main{width:min(1080px,calc(100% - 28px));margin:0 auto;padding:24px 0 40px;flex:1}.survey-public-main .survey-card{margin-top:0}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg);color:var(--ink);font-family:-apple-system,PingFang SC,SF Pro Text,Segoe UI,sans-serif;font-size:13px;line-height:1.5}a{color:inherit;text-decoration:none}.login-wrap{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#03101f}.login-card{position:relative;z-index:4;width:380px;background:#fffffff0;border-radius:18px;padding:36px 32px;box-shadow:0 30px 90px #00000061;border:1px solid rgba(255,255,255,.72);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.login-ocean-ad{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;background:radial-gradient(circle at 72% 10%,rgba(125,211,252,.34),transparent 22%),linear-gradient(180deg,#062442,#06466d 37%,#063550 58%,#03101f)}.login-ocean-ad:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,transparent 0 28%,rgba(255,255,255,.14) 30%,transparent 42% 100%),linear-gradient(75deg,transparent 0 36%,rgba(186,230,253,.1) 38%,transparent 52% 100%);mix-blend-mode:screen;animation:oceanLight 9s ease-in-out infinite alternate}.login-ocean-ad:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 52%,transparent 0 24%,rgba(3,7,18,.18) 63%,rgba(3,7,18,.56) 100%)}.login-ocean-poster{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.06) contrast(1.04)}.login-ocean-poster{opacity:.72;transform:scale(1.02)}.ocean-sun{position:absolute;right:12%;top:12%;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.62),rgba(96,165,250,.22) 42%,transparent 70%);animation:sunPulse 5s ease-in-out infinite}.ocean-light{position:absolute;top:-18%;width:260px;height:92%;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.2),transparent);filter:blur(5px);transform-origin:top;opacity:.42}.ocean-light-a{left:19%;transform:rotate(18deg)}.ocean-light-b{right:21%;transform:rotate(-16deg);animation:oceanLight 8s ease-in-out infinite alternate-reverse}.ocean-wave{position:absolute;left:-10%;right:-10%;height:160px;border-radius:50%;background:#7dd3fc2e;filter:blur(18px)}.wave-a{bottom:17%;animation:waveFloat 7s ease-in-out infinite}.wave-b{bottom:5%;background:#22d3ee1f;animation:waveFloat 9s ease-in-out infinite reverse}.ocean-ad-copy{position:absolute;z-index:3;left:7%;bottom:8%;display:flex;flex-direction:column;color:#fff;text-shadow:0 10px 30px rgba(0,0,0,.42)}.ocean-ad-copy span{color:#7dd3fc;font-size:12px;font-weight:900;letter-spacing:2px}.ocean-ad-copy strong{margin-top:10px;font-size:clamp(24px,3vw,44px);font-weight:900;letter-spacing:-1px}.ocean-ad-copy em{margin-top:8px;color:#e0f2fedb;font-style:normal;font-size:14px;font-weight:700;letter-spacing:1px}@keyframes oceanLight{0%{transform:translate(-18px) skew(-4deg);opacity:.26}to{transform:translate(24px) skew(4deg);opacity:.5}}@keyframes waveFloat{0%,to{transform:translate(-18px) translateY(0)}50%{transform:translate(24px) translateY(-12px)}}@keyframes sunPulse{0%,to{transform:scale(.95);opacity:.7}50%{transform:scale(1.08);opacity:1}}.login-logo{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:800;letter-spacing:1px}.login-logo .dot{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#2563eb,#7c3aed);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900}.login-sub{color:var(--ink-3);font-size:12px;margin-top:10px;margin-bottom:26px;display:flex;flex-direction:column;gap:3px;line-height:1.35}.login-sub span{white-space:nowrap}.login-sub strong{color:var(--ink);font-size:13px;font-weight:700;letter-spacing:0}.login-field{margin-bottom:16px}.login-field label{display:block;font-size:12px;font-weight:600;color:var(--ink-3);margin-bottom:6px}.login-field input{width:100%;height:42px;padding:0 14px;font-size:14px;border:1px solid var(--line);border-radius:8px;outline:none;background:#fbfcfe}.login-field input:focus{border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px #2563eb1f}.login-brand-hint{margin:-6px 0 16px;font-size:12px;color:var(--green);font-weight:600;display:flex;align-items:center;gap:6px}.login-btn{width:100%;height:44px;border:none;border-radius:8px;cursor:pointer;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;font-size:15px;font-weight:700;letter-spacing:1px;margin-top:6px}.login-btn:disabled{opacity:.55;cursor:not-allowed}.login-err{margin-top:14px;font-size:12px;color:var(--red);text-align:center}.func-dept-banner{margin:0 24px 12px;padding:10px 14px;border-radius:10px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;font-size:13px;line-height:1.5}.login-foot{margin-top:22px;text-align:center;font-size:11px;color:var(--ink-4);letter-spacing:1px}.qr-box{width:210px;height:210px;margin:4px auto 12px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;justify-content:center;background:#fff}.qr-box img{width:190px;height:190px;object-fit:contain;display:block}.qr-hint{text-align:center;color:var(--ink-3);font-size:12px;margin-bottom:14px}.login-actions{display:flex;align-items:center;justify-content:center;gap:10px}.app{display:grid;grid-template-columns:240px 1fr;height:100vh}.side{background:linear-gradient(170deg,#071a3d,#0b2f63 58%,#031225);color:var(--side-text);padding:18px 0 24px;display:flex;flex-direction:column;overflow-y:auto;position:relative}.side:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:linear-gradient(120deg,rgba(255,255,255,.07) 0%,transparent 24%),radial-gradient(100% 55% at 50% -5%,rgba(96,165,250,.2),transparent 60%)}.side:after{content:"";position:absolute;left:0;top:0;bottom:0;width:1.5px;z-index:2;pointer-events:none;background:linear-gradient(180deg,#93c5fd00,#93c5fd94,#93c5fd00)}.side>*{position:relative;z-index:1}.side-brand{padding:0 20px 18px;border-bottom:1px solid #1e293b;margin-bottom:12px}.side-brand .b-logo{font-size:16px;font-weight:800;color:#fff;letter-spacing:1px;display:flex;align-items:center;gap:8px}.side-brand .b-logo .dot{width:22px;height:22px;border-radius:6px;background:linear-gradient(135deg,#2563eb,#7c3aed);display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:900}.side-brand .b-tenant{margin-top:10px;font-size:11px;color:var(--side-text-dim);display:flex;align-items:center;gap:6px}.side-brand .b-tenant .code{background:#1e293b;color:#93c5fd;padding:2px 7px;border-radius:4px;font-weight:700;font-size:10px}.side-group{margin-top:14px}.side-group-label{padding:0 22px 6px;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--side-text-dim);font-weight:700;display:flex;align-items:center;justify-content:space-between}.side-group-label .tag{background:#1e293b;color:var(--side-text-dim);padding:1px 6px;border-radius:3px;font-size:9px}.side-group-label .tag.live{color:#93c5fd;background:#172554}.side-item{display:flex;align-items:center;gap:11px;padding:8px 22px;font-size:13px;color:var(--side-text);cursor:pointer;border-left:2px solid transparent}.side-item:hover{background:#3b82f624;color:#fff}.side-item.active{background:linear-gradient(90deg,rgba(37,99,235,.24),transparent);color:#dbeafe;border-left-color:#60a5fa;font-weight:600}.side-item .ico{font-size:14px;width:16px;text-align:center}.side-item .badge{margin-left:auto;background:var(--red);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;min-width:18px;text-align:center}.side-item .count{margin-left:auto;font-size:11px;color:var(--side-text-dim)}.side-item.locked{color:var(--side-text-dim);cursor:default}.side-item.locked:hover{background:transparent}.side-item.locked .ico{opacity:.5}.side-foot{margin-top:auto;padding:16px 20px 0;border-top:1px solid #1e293b;font-size:11px;color:var(--side-text-dim)}.side-foot .uptime{display:flex;align-items:center;gap:6px}.side-foot .uptime .dot{width:6px;height:6px;border-radius:50%;background:#10b981;box-shadow:0 0 6px #10b981}.main{min-width:0;overflow-y:auto;display:flex;flex-direction:column}.topbar{height:56px;padding:0 24px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:10}.crumb{font-size:12px;color:var(--ink-3);font-weight:500}.crumb b{color:var(--ink);font-weight:700}.top-actions{margin-left:auto;display:flex;align-items:center;gap:14px}.top-actions .user{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 10px 4px 4px;border-radius:999px;border:1px solid var(--line)}.top-actions .user .av{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--purple));color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}.top-actions .user .av-img{object-fit:cover;display:block;border:1px solid #dbeafe}.settings-avatar-btn{position:relative;width:72px;height:72px;padding:0;border:none;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--purple));cursor:pointer;overflow:visible}.settings-avatar-btn:disabled{opacity:.7;cursor:wait}.settings-avatar-img{width:72px;height:72px;border-radius:50%;object-fit:cover;display:block;border:2px solid #dbeafe}.settings-avatar-ph{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;font-weight:700}.settings-avatar-tag{position:absolute;right:-2px;bottom:-2px;min-width:28px;height:20px;padding:0 6px;border-radius:10px;background:#0a0a0a;color:#fff;font-size:10px;font-weight:700;line-height:20px;border:2px solid #fff}.settings-admin{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px #0f172a0a;overflow:hidden}.settings-admin-hd{background:linear-gradient(135deg,#f8fbff,#fff)}.settings-save-hint{margin:14px 18px 0;padding:10px 12px;border-radius:9px;background:#ecfdf5;color:var(--green);font-size:12px;font-weight:700}.settings-section{padding:18px;border-top:1px solid var(--line-soft)}.settings-section-title{margin-bottom:12px;color:#0f172a;font-size:14px;font-weight:900;letter-spacing:.5px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.settings-module-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:linear-gradient(180deg,#fff,#fbfdff)}.settings-module-card.off{opacity:.68;background:#f8fafc}.settings-module-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.settings-module-title{font-size:15px;font-weight:900;color:#0f172a}.settings-module-desc{margin-top:4px;color:var(--ink-3);font-size:12px;line-height:1.45}.settings-module-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.settings-module-meta label span{display:block;margin-bottom:5px;font-size:11px;color:var(--ink-3);font-weight:800}.settings-module-meta input{width:100%;height:32px;border:1px solid var(--line);border-radius:8px;padding:0 9px;font-size:12px;background:#fff}.settings-module-meta input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}.settings-module-foot{display:flex;align-items:center;justify-content:space-between;margin-top:14px}.switch{position:relative;display:inline-block;width:42px;height:24px;flex:0 0 auto}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer;border-radius:999px;background:#cbd5e1;transition:.18s}.switch span:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f172a2e;transition:.18s}.switch input:checked+span{background:var(--blue)}.switch input:checked+span:before{transform:translate(18px)}.settings-readonly{margin-top:18px}.position-code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.position-code-group{border:1px solid var(--line-soft);border-radius:10px;overflow:hidden}.position-code-group-title{padding:10px 12px;background:#f8fafc;font-size:12px;font-weight:800;color:#334155}.position-code-table{width:100%;border-collapse:collapse;font-size:12px}.position-code-table th,.position-code-table td{padding:8px 10px;border-top:1px solid var(--line-soft)}.skill-map-list{display:flex;flex-direction:column;gap:12px}.skill-map-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff}.skill-map-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.skill-map-code{font-size:16px;font-weight:900;color:var(--blue)}.skill-map-name{margin-top:2px;font-size:12px;color:var(--ink-3)}.skill-map-title{min-width:220px}.skill-map-title span{display:block;margin-bottom:5px;font-size:11px;color:var(--ink-3);font-weight:800}.skill-map-title input{width:100%;height:32px;border:1px solid var(--line);border-radius:8px;padding:0 9px;font-size:12px}.skill-map-actions{display:flex;gap:8px;margin-top:12px}.skill-map-actions .btn.on{background:#eff6ff;color:var(--blue);border-color:#bfdbfe}.skill-code-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.skill-code-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;font-size:11px;cursor:pointer;background:#f8fafc}.skill-code-chip.on{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.skill-code-chip input{margin:0}.experience-grid{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(360px,1.05fr);gap:16px;align-items:stretch}.experience-preview{min-height:300px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#03101f}.experience-preview video{width:100%;height:100%;min-height:300px;display:block;object-fit:cover}.experience-preview.ocean{box-shadow:inset 0 0 80px #03071259}.experience-ocean-demo{position:relative;height:100%;min-height:300px;padding:28px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;color:#fff;background:radial-gradient(circle at 72% 18%,rgba(186,230,253,.55),transparent 18%),radial-gradient(circle at 36% 55%,rgba(34,211,238,.22),transparent 25%),linear-gradient(180deg,#075985,#064e7a 44%,#082f49 70%,#020617)}.experience-ocean-demo:before{content:"";position:absolute;border-radius:50%;pointer-events:none}.experience-ocean-demo:before{left:-18%;right:-18%;bottom:14%;height:130px;background:#7dd3fc29;filter:blur(16px);animation:waveFloat 8s ease-in-out infinite}.experience-ocean-demo i{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,transparent 0 34%,rgba(255,255,255,.12) 36%,transparent 50%);animation:oceanLight 8s ease-in-out infinite alternate}.experience-ocean-demo b{position:relative;z-index:1;max-width:420px;font-size:26px;line-height:1.12;letter-spacing:-.6px}.experience-ocean-demo span{position:relative;z-index:1;margin-top:10px;color:#e0f2fee0;font-size:13px;font-weight:800}.experience-form,.map-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.experience-form label,.material-card,.map-settings-grid label{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--line-soft);border-radius:12px;background:#fbfdff}.experience-form label span,.material-card span,.map-settings-grid label span{color:var(--ink-3);font-size:11px;font-weight:900}.experience-form input,.material-card input,.map-settings-grid input,.map-settings-grid select,.map-settings-grid textarea{width:100%;min-height:34px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:#fff;color:var(--ink);font-size:12px}.map-settings-grid textarea{height:96px;padding:10px;resize:vertical;line-height:1.45}.experience-form input:focus,.material-card input:focus,.map-settings-grid input:focus,.map-settings-grid select:focus,.map-settings-grid textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}.experience-form .file-line{grid-column:span 2}.experience-form .file-line em{color:var(--ink-4);font-size:11px;font-style:normal}.material-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.material-card img,.material-card video{width:100%;height:110px;object-fit:cover;border-radius:10px;border:1px solid var(--line-soft);background:#f8fafc}.map-settings-grid .wide{grid-column:span 2}.settings-note{margin-top:12px;padding:10px 12px;border-radius:10px;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:700}.schedule-table .pos-cell{min-width:168px}.schedule-table .pos-hint{display:block;margin-top:4px;font-size:10px;color:var(--ink-3)}.top-actions .user .nm{font-size:12px;font-weight:600}.top-actions .user .rl{font-size:10px;color:var(--ink-3);letter-spacing:1px}.logout-btn{font-size:12px;color:var(--ink-3);background:#f1f5f9;border:none;padding:6px 12px;border-radius:6px;cursor:pointer}.logout-btn:hover{background:#e2e8f0}.content{width:100%;min-width:0;max-width:none;padding:24px 28px 40px}.page-hd{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px}.page-hd h1{font-size:22px;font-weight:800;margin:0;letter-spacing:-.2px}.page-hd .sub{font-size:12px;color:var(--ink-3);margin-top:4px}.period{display:flex;gap:4px;padding:4px;background:#fff;border:1px solid var(--line);border-radius:6px}.period .p{padding:4px 10px;font-size:12px;color:var(--ink-3);border-radius:4px;cursor:pointer}.period .p.on{background:var(--ink);color:#fff;font-weight:600}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.kpis.compact .kpi{padding:12px 16px}.kpis.compact .kpi .val{font-size:24px;margin-top:6px}.kpi{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px;box-shadow:0 1px 2px #0f172a08}.kpi .top{display:flex;align-items:center;justify-content:space-between}.kpi .lbl{font-size:11px;font-weight:600;color:var(--ink-3);letter-spacing:1px;text-transform:uppercase}.kpi .ic{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:14px}.kpi .val{font-size:28px;font-weight:800;letter-spacing:-.5px;margin-top:10px}.kpi .val.empty{color:#d4d4d4}.kpi .delta{font-size:11px;font-weight:600;margin-top:2px}.kpi .delta.up{color:var(--green)}.kpi .delta.down{color:var(--red)}.kpi .delta.flat{color:var(--ink-3)}.kpi.k-blue .ic{background:#eff6ff;color:var(--blue)}.kpi.k-green .ic{background:#ecfdf5;color:var(--green)}.kpi.k-amber .ic{background:#fffbeb;color:var(--amber)}.kpi.k-red .ic{background:#fef2f2;color:var(--red)}.overview-module-section{margin:0 0 22px;padding:20px;border:1px solid #dbeafe;border-radius:14px;background:linear-gradient(135deg,#f8fbff,#fff 58%,#f0f9ff)}.overview-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px}.overview-section-head h2{margin:2px 0 4px;font-size:18px;letter-spacing:-.2px}.overview-section-head p{margin:0;color:var(--ink-3);font-size:12px}.overview-kicker{color:var(--blue);font-size:10px;font-weight:800;letter-spacing:1.4px}.overview-live-dot{flex:none;display:inline-flex;align-items:center;gap:6px;color:#15803d;font-size:11px;font-weight:700}.overview-live-dot:before{content:"";width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px #22c55e1f}.overview-module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.overview-module-card{min-width:0;min-height:210px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;padding:16px;color:var(--ink);text-decoration:none;background:#fff;box-shadow:0 6px 18px #0f172a0b;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.overview-module-card:hover{transform:translateY(-2px);border-color:#93c5fd;box-shadow:0 12px 24px #2563eb1f}.overview-module-card.productivity{background:linear-gradient(145deg,#fff 48%,#ecfdf5)}.overview-module-card.supply{background:linear-gradient(145deg,#fff 48%,#fff7ed)}.overview-module-top{display:flex;align-items:center;gap:8px;color:var(--ink-2);font-size:12px;font-weight:800}.overview-module-top b{margin-left:auto;color:var(--blue);font-size:11px}.overview-module-icon{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#eff6ff;color:var(--blue);font-size:14px}.overview-module-card.productivity .overview-module-icon{background:#ecfdf5;color:#059669}.overview-module-card.supply .overview-module-icon{background:#fff7ed;color:#d97706}.overview-module-title{margin:18px 0 8px;font-size:14px;font-weight:800}.overview-module-metric{display:flex;align-items:baseline;gap:8px}.overview-module-metric strong{color:#0f172a;font-size:28px;letter-spacing:-1px}.overview-module-metric span,.overview-module-card small{color:var(--ink-3);font-size:11px}.overview-module-pairs{display:flex;gap:8px;margin-top:10px;color:var(--ink-2);font-size:11px;font-weight:700}.overview-module-pairs span{padding:4px 7px;border-radius:5px;background:#ffffffbd;border:1px solid var(--line-soft)}.overview-progress{height:6px;margin:auto 0 8px;overflow:hidden;border-radius:999px;background:#d1fae5}.overview-progress i{display:block;height:100%;border-radius:inherit;background:#10b981}.overview-supply-bars{display:flex;flex-direction:column;gap:5px;margin:auto 0 9px}.overview-supply-bars i{display:block;height:6px;border-radius:999px;background:#f59e0b}.overview-supply-bars i+i{background:#fb923c}.bar{height:4px;background:var(--line-soft);border-radius:2px;overflow:hidden;margin-top:12px}.bar>i{display:block;height:100%;background:var(--blue);border-radius:2px}.bar.green>i{background:var(--green)}.bar.amber>i{background:var(--amber)}.grid-2{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px;margin-bottom:22px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:22px}.chart-grid{display:grid;grid-template-columns:.85fr 1.15fr 1.2fr;gap:14px;margin-bottom:22px}.chart-card{background:linear-gradient(180deg,#fff,#fbfdff);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px #0f172a0a;padding:14px 14px 10px;min-width:0}.chart-card-pie{background:radial-gradient(circle at top right,rgba(37,99,235,.08),transparent 36%),#fff}.chart-title{font-size:14px;font-weight:800;color:#0f172a}.chart-sub{margin-top:3px;color:var(--ink-3);font-size:11px}.chart-box{height:236px;margin-top:8px}.chart-box .recharts-default-legend{font-size:11px}.chart-box .recharts-cartesian-axis-tick-value{font-size:10px;fill:#64748b}.panel{background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 1px 2px #0f172a08}.panel-hd{padding:14px 18px;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between}.panel-hd .ttl{font-size:14px;font-weight:700}.panel-hd .more{font-size:11px;color:var(--ink-3);cursor:pointer}.panel-bd{padding:18px}.alert{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-soft)}.alert:last-child{border-bottom:0}.alert .ic{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}.alert .ic.red{background:#fef2f2;color:var(--red)}.alert .ic.amber{background:#fffbeb;color:var(--amber)}.alert .ic.blue{background:#eff6ff;color:var(--blue)}.alert .ttl{font-size:13px;font-weight:600}.alert .sub{font-size:11px;color:var(--ink-3);margin-top:1px}.alert .when{margin-left:auto;font-size:11px;color:var(--ink-4);white-space:nowrap}table{width:100%;border-collapse:collapse;font-size:12px}thead th{text-align:left;font-size:10px;font-weight:700;color:var(--ink-3);letter-spacing:1px;text-transform:uppercase;padding:0 12px 10px;border-bottom:1px solid var(--line);white-space:nowrap;word-break:keep-all}tbody td{padding:10px 12px;border-bottom:1px solid var(--line-soft)}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafbfc}.num{font-variant-numeric:tabular-nums;font-weight:600}.trend.up{color:var(--green);font-size:11px}.trend.down{color:var(--red);font-size:11px}.pill{display:inline-flex;align-items:center;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:700;white-space:nowrap;word-break:keep-all}.pill.green{background:#ecfdf5;color:var(--green)}.pill.amber{background:#fffbeb;color:var(--amber)}.pill.red{background:#fef2f2;color:var(--red)}.pill.gray{background:#f1f5f9;color:var(--ink-3)}.muted{color:var(--ink-3);font-size:11px}.center-box{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 0;color:var(--ink-3);gap:10px}.spinner{width:28px;height:28px;border:3px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.placeholder{padding:80px 0;text-align:center}.placeholder h2{font-size:20px;font-weight:800}.placeholder p{color:var(--ink-3);margin-top:8px}.pill.blue{background:#eff6ff;color:var(--blue)}.page-hd .sub{color:var(--ink-3);font-size:12px;margin-top:4px}.seg{display:inline-flex;gap:2px;background:#eef0f3;padding:3px;border-radius:8px;margin-bottom:14px}.seg.sm{transform:scale(1)}.seg-item{border:0;background:transparent;padding:6px 14px;font-size:12px;font-weight:600;color:var(--ink-3);border-radius:6px;cursor:pointer}.seg-item:hover{color:var(--ink)}.seg-item.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px #0f172a14}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.toolbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.toolbar-actions>*,.page-actions>*,.modal-ft>*{flex:0 0 auto}.search-input{height:34px;min-width:220px;padding:0 12px;border:1px solid var(--line);border-radius:8px;font-size:13px;background:#fff}.search-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1f}.smart-search{position:relative;display:inline-flex;min-width:220px}.smart-search>input{width:100%}.smart-search-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:40;max-height:280px;overflow:auto;padding:6px;border:1px solid #dbeafe;border-radius:12px;background:#fff;box-shadow:0 18px 45px #0f172a29}.smart-search-menu button{display:flex;flex-direction:column;align-items:flex-start;width:100%;gap:3px;padding:9px 10px;border:0;border-radius:9px;background:transparent;color:#0f172a;font:inherit;text-align:left;cursor:pointer}.smart-search-menu button:hover{background:#eff6ff}.smart-search-menu b{font-size:13px;font-weight:900}.smart-search-menu span{color:#64748b;font-size:11px;font-weight:800}.panel-bd.no-pad{padding:0}.panel-bd.no-pad table thead th{padding:12px 16px 10px}.panel-bd.no-pad table tbody td{padding:12px 16px}.center-box.err{color:var(--red)}.btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:7px 14px;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;word-break:keep-all}.btn:hover{background:#f7f8fa}.btn.sm{padding:5px 11px;font-size:12px;margin-left:6px}.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-primary:disabled{opacity:.5;cursor:default}.btn-ghost{background:#fff;color:var(--ink-3)}.member-lifecycle-page{padding-top:22px}.member-life-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.member-life-head h1{margin:0;color:#0f1f3d;font-size:24px;letter-spacing:-.6px}.member-life-head p{margin:5px 0 0;color:#64748b;font-size:13px}.member-life-actions{display:flex;align-items:center;gap:10px}.member-life-actions .btn{min-height:38px}.member-life-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:26px}.member-life-card{position:relative;min-height:162px;padding:20px 18px 15px 76px;overflow:hidden;text-align:left;border:1px solid #e6eaf1;border-radius:12px;background:#fff;color:#0f1f3d;cursor:pointer;box-shadow:0 3px 10px #0f172a06;transition:border-color .16s,box-shadow .16s,transform .16s}.member-life-card:hover{transform:translateY(-1px);border-color:#9dbcfb;box-shadow:0 8px 22px #2563eb1a}.member-life-card.selected{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1a}.member-life-card .life-icon{position:absolute;top:21px;left:18px;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;font-weight:900;font-size:15px}.member-life-card.hiring .life-icon{color:#059669;background:#d1fae5}.member-life-card.active .life-icon{color:#2563eb;background:#dbeafe}.member-life-card.development .life-icon{color:#d97706;background:#ffedd5}.member-life-card.exit .life-icon{color:#dc2626;background:#fee2e2}.member-life-card .life-card-title{display:block;padding-top:3px;font-size:16px;font-weight:800}.member-life-card>b{position:absolute;top:22px;right:20px;font-size:28px;line-height:1}.member-life-card>span:not(.life-icon):not(.life-card-title){display:block;margin-top:3px;color:#94a3b8;font-size:11px;font-weight:700}.member-life-card i{display:block;margin-top:12px;color:#64748b;font-size:11px;font-style:normal;white-space:nowrap}.member-life-card i+i{margin-top:7px}.member-life-card.hiring i{color:#059669}.member-life-card.active i{color:#2563eb}.member-life-card.development i{color:#d97706}.member-life-card.exit i{color:#dc2626}.member-maintenance-tip{display:flex;align-items:center;gap:7px;margin:-10px 0 16px;padding:10px 14px;border:1px solid #bfdbfe;border-radius:9px;color:#1e40af;background:#eff6ff;font-size:12px}.member-maintenance-tip a{margin-left:auto;color:#2563eb;font-weight:800}.member-workspace{display:grid;grid-template-columns:minmax(0,1fr) 382px;align-items:start;gap:16px}.member-roster,.member-detail,.member-hr-overview{overflow:hidden;border:1px solid #e6eaf1;border-radius:12px;background:#fff;box-shadow:0 3px 10px #0f172a06}.member-roster-head{display:block;padding:17px 18px 14px;border-bottom:1px solid #edf0f5}.member-roster-head h2,.member-overview-head h2{margin:0;font-size:17px;color:#122344}.member-roster-head h2 span{color:#64748b;font-size:13px}.member-filter-row{display:flex;align-items:center;gap:8px;margin-top:12px}.member-filter-row select{height:34px;min-width:112px;padding:0 24px 0 9px;border:1px solid #e2e8f0;border-radius:7px;color:#475569;background:#fff;font:inherit}.member-filter-row .smart-search{min-width:220px}.member-roster-table{min-height:412px;overflow:auto}.member-roster-table table{table-layout:fixed;min-width:700px}.member-roster-table thead th{padding:13px 14px;background:#fbfcfe}.member-roster-table tbody td{padding:14px;color:#475569}.member-roster-table tbody td:nth-child(2),.member-roster-table tbody td:nth-child(3){color:#1e293b}.member-roster-table tbody tr{cursor:pointer}.member-roster-table tbody tr.selected{background:#eef5ff;box-shadow:inset 3px 0 #2563eb}.member-roster-table tbody tr.selected:hover{background:#e8f1ff}.member-roster-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-top:1px solid #edf0f5;color:#64748b;font-size:12px}.member-roster-foot .btn.sm{margin-left:8px}.member-detail{position:sticky;top:72px;min-height:540px}.member-detail-profile{display:flex;align-items:flex-start;gap:11px;padding:20px 18px 15px}.member-avatar{display:grid;flex:0 0 auto;place-items:center;width:52px;height:52px;border-radius:50%;color:#fff;background:linear-gradient(135deg,#60a5fa,#2563eb);font-size:20px;font-weight:900}.member-name-row{display:flex;align-items:center;gap:8px}.member-name-row h2{margin:0;color:#10213e;font-size:17px}.member-detail-profile p{margin:3px 0 0;color:#64748b;font-size:11px}.member-detail-profile .modal-x{margin-left:auto}.member-detail-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #e7edf6}.member-detail-tabs button{padding:11px 5px 10px;border:0;border-bottom:2px solid transparent;color:#64748b;background:#fff;font:inherit;font-size:12px;font-weight:800;cursor:pointer}.member-detail-tabs button.on{border-bottom-color:#2563eb;color:#2563eb}.member-detail-body{padding:17px 18px 20px}.member-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 10px;margin:0}.member-info-grid div{min-width:0}.member-info-grid dt{color:#94a3b8;font-size:11px}.member-info-grid dd{overflow:hidden;margin:4px 0 0;color:#253858;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.member-detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.member-detail-actions .btn{margin:0}.member-detail-empty{display:grid;min-height:540px;place-items:center;padding:30px;color:#94a3b8;text-align:center}.member-cost-card{padding:14px;border:1px solid #dbeafe;border-radius:10px;background:linear-gradient(135deg,#f8fbff,#fff)}.member-cost-card span{color:#64748b;font-size:12px;font-weight:800}.member-cost-card b{display:block;margin-top:4px;color:#132a52;font-size:27px}.member-cost-card p{margin:5px 0 0;color:#64748b;font-size:11px}.member-cost-items{display:grid;gap:7px;margin-top:14px}.member-cost-items span{display:flex;justify-content:space-between;padding:8px 10px;border-radius:7px;color:#64748b;background:#f8fafc;font-size:12px}.member-cost-items b{color:#253858}.member-access-state{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px;padding:10px 11px;border-radius:8px;color:#047857;background:#ecfdf5;font-size:12px}.member-access-note{margin:18px 0 13px;color:#64748b;font-size:12px;line-height:1.7}.member-hr-overview{margin-top:16px;padding:17px 18px}.member-overview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.member-overview-head p{margin:3px 0 0;color:#94a3b8;font-size:11px}.member-overview-head a{color:#2563eb;font-size:12px;font-weight:800}.member-overview-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:15px}.member-overview-cards>div{min-height:84px;padding:13px 15px;border-left:3px solid #bfdbfe;border-radius:8px;background:#f8fbff}.member-overview-cards>div:nth-child(2){border-left-color:#fdba74;background:#fffaf4}.member-overview-cards>div:nth-child(3){border-left-color:#fda4af;background:#fff8f8}.member-overview-cards span,.member-overview-cards small{display:block;color:#64748b;font-size:11px;font-weight:700}.member-overview-cards b{display:block;margin:3px 0;color:#132a52;font-size:22px}@media (max-width:1280px){.member-life-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.member-workspace{grid-template-columns:minmax(0,1fr) 340px}.member-filter-row{flex-wrap:wrap;justify-content:flex-end}.member-filter-row .smart-search{min-width:180px}}@media (max-width:980px){.member-life-head{align-items:flex-start;flex-direction:column}.member-life-actions,.member-filter-row{justify-content:flex-start}.member-workspace{grid-template-columns:1fr}.member-detail{position:static}.member-detail-empty{min-height:180px}.member-overview-cards{grid-template-columns:1fr}}@media (max-width:640px){.member-life-cards{grid-template-columns:1fr}.member-life-actions{flex-wrap:wrap}.member-life-actions .btn{flex:1 1 auto;text-align:center}.member-filter-row,.member-filter-row .smart-search{width:100%}.member-filter-row select{flex:1}.member-maintenance-tip{align-items:flex-start;flex-wrap:wrap}.member-maintenance-tip a{margin-left:0;width:100%}}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:50}.modal{width:460px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);overflow:auto;background:#fff;border-radius:14px;box-shadow:0 24px 60px #0f172a40}.assign-modal{width:620px}.modal-hd{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line-soft);font-size:15px}.modal-x{border:0;background:transparent;font-size:16px;color:var(--ink-3);cursor:pointer}.modal-bd{padding:18px 20px}.modal-ft{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--line-soft)}.fld{display:block;margin-bottom:16px}.fld-lbl{display:block;font-size:12px;font-weight:600;color:var(--ink-3);margin-bottom:6px}.fld-lbl,.form-grid label>span,.toolbar label>span,.seg-item,.period .p{white-space:nowrap;word-break:keep-all}.panel.no-pad{min-width:0;max-width:100%;overflow-x:auto;cursor:grab}.panel.no-pad>table{min-width:760px}.data-stack{display:grid;min-width:max-content;gap:3px;text-align:left}.data-stack.center{justify-items:center;text-align:center}.data-stack>b,.data-stack>strong,.data-stack>span,.data-stack>small,.data-stack>em{display:block;margin:0;white-space:nowrap;word-break:keep-all}.data-stack>small,.data-stack>em{color:var(--ink-3);font-size:10px;font-style:normal;font-weight:500}.table-actions{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;white-space:nowrap}.table-actions .btn,.table-actions .link-btn{margin-left:0}.atomic-value{white-space:nowrap;word-break:keep-all}.narrative-cell{min-width:180px;white-space:normal;overflow-wrap:anywhere;line-height:1.55}.fld-input{width:100%;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;background:#fff}.fld-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1f}.chk-list{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:8px}.chk{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;cursor:pointer}.chk:hover{background:#f7f8fa}.chk.on{background:#eff6ff;color:var(--blue);font-weight:600}.chk.inline{height:36px;margin:20px 0 16px;border:1px solid var(--line)}.placeholder .tag{display:inline-block;margin-top:16px;background:#eff6ff;color:var(--blue);padding:4px 12px;border-radius:999px;font-size:12px;font-weight:700}.org-layout{display:grid;grid-template-columns:minmax(520px,1.25fr) minmax(360px,.75fr);gap:14px;align-items:start}.org-tree-panel{overflow:hidden}.org-tree{display:grid;gap:12px}.org-unit{border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,#fff,#fbfdff);padding:14px}.org-unit-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.org-unit-name{font-size:15px;font-weight:900;color:#0f172a}.org-unit-desc{margin-top:3px;color:var(--ink-3);font-size:12px}.org-unit-count{flex:0 0 auto;padding:3px 8px;border-radius:999px;background:#eef6ff;color:var(--blue);font-size:11px;font-weight:900}.org-lead{margin-top:10px;padding:8px 10px;border-radius:8px;background:#f8fafc;color:#334155;font-size:12px;font-weight:800}.org-child-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.org-child-row span{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:11px;font-weight:800}.org-member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:12px}.org-member{min-height:54px;padding:9px 10px;border:1px solid var(--line-soft);border-radius:8px;background:#fff}.org-member b{display:block;color:#0f172a;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.org-member span{display:block;margin-top:3px;color:var(--ink-4);font-size:11px}.org-member.linked{border-color:#bbf7d0;background:#f0fdf4}.org-member.linked span{color:var(--green);font-weight:800}@media (max-width: 1180px){.org-layout{grid-template-columns:1fr}}.page-actions{display:flex;gap:10px;align-items:center}.sheet-tab{height:38px;padding:0 18px;border:0;border-radius:10px;background:transparent;color:var(--ink-3);font-weight:900;cursor:pointer}.sheet-tab.on{background:linear-gradient(135deg,var(--blue),#1d4ed8);color:#fff;box-shadow:0 8px 18px #2563eb42}.file-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center}.file-btn input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.file-btn input:disabled{cursor:not-allowed}.import-panel{margin-bottom:14px}.import-error{margin-top:8px;padding:8px 10px;background:#fef2f2;color:var(--red);border-radius:7px;font-size:12px}.import-preview-table{max-height:300px;overflow:auto;margin:12px 0;border:1px solid var(--line);border-radius:8px}.import-preview-table table thead th{padding-top:10px;background:#fbfcfe;position:sticky;top:0}.school-modal{width:760px}.panel-bd.no-pad>table:has(.school-row){width:max-content;min-width:100%;table-layout:auto}.panel-bd.no-pad>table:has(.school-row) th,.panel-bd.no-pad>table:has(.school-row) td{vertical-align:middle;white-space:nowrap;word-break:keep-all}.panel-bd.no-pad>table:has(.school-row) th{padding:13px 14px}.panel-bd.no-pad>table:has(.school-row) td{padding:15px 14px}.panel-bd.no-pad>table:has(.school-row) .school-name-cell{width:360px;min-width:360px;white-space:normal}.school-name-cell>b{display:block;font-size:14px;line-height:1.45}.school-name-cell .muted{margin-top:3px;line-height:1.45}.school-building-toggle{margin-top:8px;padding:5px 9px;border:1px solid #bfdbfe;border-radius:7px;background:#eff6ff;color:var(--blue);font:inherit;font-size:11px;font-weight:900;cursor:pointer}.school-building-toggle:hover,.school-building-toggle.on{border-color:var(--blue);background:var(--blue);color:#fff}.school-row.expanded{background:#f8fbff}.school-point-row:hover{background:transparent}.panel-bd.no-pad>table:has(.school-row) .school-point-row>td{padding:0;white-space:normal;background:#f1f5f9}.school-point-archive{padding:18px;border-top:1px solid #dbeafe}.school-point-archive-hd{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.school-point-archive-hd>div{display:grid;gap:3px}.school-point-archive-hd b{color:#0f172a;font-size:15px}.school-point-archive-hd span{color:var(--ink-3);font-size:12px;font-weight:700}.school-building-grid{display:grid;grid-template-columns:repeat(2,minmax(360px,1fr));gap:12px}.school-building-card{min-width:0;overflow:hidden;border:1px solid #dbe3ee;border-radius:12px;background:#fff;box-shadow:0 5px 14px #0f172a0a}.school-building-card>header{display:flex;align-items:center;gap:10px;padding:11px 12px;border-bottom:1px solid var(--line-soft);background:#f8fafc}.school-building-card>header>span{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:9px;background:#dbeafe;color:var(--blue);font-weight:900;font-variant-numeric:tabular-nums}.school-building-card>header>div{display:grid;gap:1px;min-width:0}.school-building-card>header b{overflow:hidden;color:#0f172a;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.school-building-card>header small{color:var(--ink-3);font-size:11px}.school-building-points{display:grid}.school-building-point{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border-top:1px dashed #e2e8f0}.school-building-point:first-child{border-top:0}.school-building-point-main{display:grid;gap:3px;min-width:0}.school-building-point-main b{color:#1e293b}.school-building-point-main span{overflow:hidden;color:#334155;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.school-building-point-main small{color:var(--ink-3);font-size:11px;line-height:1.4}.school-point-qr-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}.school-point-qr-actions .btn{margin:0}.school-point-limit,.school-point-empty{padding:16px;border:1px dashed #cbd5e1;border-radius:10px;color:var(--ink-3);text-align:center;background:#fff}.school-point-limit{margin-top:12px}.school-qr-modal{width:min(500px,calc(100vw - 28px))}.school-qr-modal .modal-bd{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.school-qr-modal img{width:min(320px,75vw);height:min(320px,75vw);object-fit:contain;border:12px solid #fff;border-radius:14px;box-shadow:0 8px 28px #0f172a1f}.school-qr-modal code{max-width:100%;overflow-wrap:anywhere;color:#475569;font-size:12px}.school-qr-modal small{color:var(--ink-3)}@media (max-width: 1100px){.school-building-grid{grid-template-columns:1fr}}.assign-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:0 0 14px;padding:4px;background:#f1f5f9;border-radius:12px}.assign-tab{border:0;border-radius:10px;padding:10px 12px;background:transparent;color:var(--ink-3);font-size:13px;font-weight:900;cursor:pointer}.assign-tab.on{background:#fff;color:var(--blue);box-shadow:0 8px 20px #0f172a14}.career-archive{border:1px solid #dbeafe;background:linear-gradient(180deg,#f8fbff,#fff);border-radius:12px;padding:12px;margin-bottom:16px}.career-archive-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.career-section{margin-top:10px}.career-chip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.career-chip{border:1px solid var(--line-soft);border-radius:10px;background:#fff;padding:8px;display:grid;gap:2px}.career-chip b{color:var(--blue);font-size:14px}.career-chip span{font-size:12px;font-weight:700;color:var(--ink)}.career-chip small,.career-log small{color:var(--ink-3);font-size:10px;line-height:1.4}.career-log-list{display:grid;gap:7px;max-height:180px;overflow:auto}.career-log{border-left:3px solid var(--blue);background:#f8fafc;border-radius:8px;padding:7px 9px;display:grid;gap:2px}.career-log span{color:var(--blue);font-size:10px;font-weight:800}.career-log b{font-size:12px;color:var(--ink)}.skill-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.skill-check{display:grid;grid-template-columns:auto 36px 1fr;align-items:center;gap:6px;border:1px solid var(--line-soft);border-radius:10px;padding:8px;background:#fff;cursor:pointer}.skill-check.on{border-color:var(--blue);background:#eff6ff}.skill-check b{color:var(--ink);font-size:12px}.skill-check span{color:var(--ink-3);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skill-pill-list{display:inline-flex;flex-wrap:wrap;gap:4px;max-width:130px}.skill-note-cell{min-width:160px;max-width:260px;color:#475569;font-size:12px;font-weight:700;line-height:1.45;white-space:normal}.panel-bd.no-pad>table:has(.skill-pill-list){width:max-content;min-width:100%;table-layout:auto}.panel-bd.no-pad>table:has(.skill-pill-list) th,.panel-bd.no-pad>table:has(.skill-pill-list) td{vertical-align:middle;white-space:nowrap;word-break:keep-all}.panel-bd.no-pad>table:has(.skill-pill-list) th{padding:14px 12px}.panel-bd.no-pad>table:has(.skill-pill-list) td{padding:15px 12px}.panel-bd.no-pad>table:has(.skill-pill-list) .skill-pill-list{display:flex;flex-wrap:nowrap;max-width:none;min-width:max-content;align-items:center}.panel-bd.no-pad>table:has(.skill-pill-list) .skill-note-cell{width:220px;min-width:220px;max-width:280px;white-space:normal;overflow-wrap:anywhere;word-break:normal}.panel-bd.no-pad>table:has(.skill-pill-list) th:last-child,.panel-bd.no-pad>table:has(.skill-pill-list) td:last-child{min-width:360px;white-space:nowrap}.panel-bd.no-pad>table:has(.skill-pill-list) td:last-child .btn{margin-top:3px;margin-bottom:3px}.skill-note-pane .skill-note-textarea{min-height:176px;padding:12px 14px;line-height:1.7;resize:vertical;text-align:left}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 12px}.form-grid .wide{grid-column:span 2}.drawer-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:48;background:#0f172a47;display:flex;justify-content:flex-end}.drawer{width:min(880px,calc(100vw - 36px));height:100%;background:#fff;box-shadow:-20px 0 60px #0f172a2e;display:flex;flex-direction:column}.drawer-bd{padding:18px 20px 28px;overflow:auto}.staff-add{display:grid;grid-template-columns:.9fr 1fr 1.2fr 1fr .9fr auto auto;gap:8px;margin-bottom:14px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe}.import-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;padding:10px 12px;border-radius:8px;background:#eff6ff;color:var(--blue);font-size:12px;font-weight:600}.import-note .err{color:var(--red)}.month-input{width:150px}.school-select{min-width:220px}.month-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}.week-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:8px;cursor:pointer;color:var(--ink)}.week-card:hover{border-color:#bfdbfe;background:#f8fbff}.week-card.on{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1f}.week-card span{color:var(--ink-3);font-size:11px}.schedule-table th,.schedule-table td{white-space:nowrap}.board-scroll{overflow:auto;max-height:calc(100vh - 230px);border-radius:0 0 10px 10px}.ops-board{overflow:hidden}.month-board{min-width:0;max-width:100%}.month-board-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px 18px}.month-board-navigation{display:flex;align-items:center;gap:6px;color:var(--ink-3);font-size:11px;font-weight:600;white-space:nowrap}.month-board-navigation button{width:28px;height:28px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font-size:20px;line-height:1;cursor:pointer}.month-board-navigation button:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}.month-board-navigation button:disabled{opacity:.4;cursor:default}.month-board-scroll{width:100%;min-width:0;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#94a3b8 #e2e8f0}.month-board-scroll::-webkit-scrollbar{height:12px}.month-board-scroll::-webkit-scrollbar-track{background:#e2e8f0}.month-board-scroll::-webkit-scrollbar-thumb{background:#94a3b8;border:2px solid #e2e8f0;border-radius:8px}.wide-board{width:max-content;min-width:100%;table-layout:auto;border-collapse:collapse}.wide-board th{white-space:nowrap;background:#f8fafc;position:sticky;top:0;z-index:2;color:#334155;padding:8px 10px}.wide-board td{min-width:56px;vertical-align:top;white-space:nowrap;padding:8px 10px}.wide-board .date-cell{font-weight:800;color:#0f172a}.board-cell{font-size:12px;line-height:1.35;min-width:52px;max-width:72px;white-space:normal;padding:8px 6px!important;text-align:center}.board-cell .pos-dots{display:flex;flex-wrap:wrap;gap:3px;justify-content:center;margin-bottom:4px;min-height:8px}.board-cell .pos-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.board-cell .cell-hours{display:block;color:#475569;font-variant-numeric:tabular-nums;font-size:11px}.pos-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:10px}.pos-legend-item{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--ink-3);font-weight:600}.pos-legend-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0}.chart-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.chart-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.scope-select{min-width:148px;height:32px;font-size:12px}.scope-hint{font-size:12px;white-space:nowrap}.metric-amber{color:var(--amber);font-weight:800}.cell-good{background:#ecfdf5;color:var(--green)}.cell-warn{background:#fffbeb;color:var(--amber)}.metric-green{color:var(--green);font-weight:800}.metric-red{color:var(--red);font-weight:800}.metric-blue{color:var(--blue);font-weight:800}.board-legend{display:flex;align-items:center;gap:10px;color:var(--ink-3);font-size:11px;font-weight:700}.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:-6px}.legend-dot.blue{background:var(--blue)}.legend-dot.green{background:var(--green)}.legend-dot.amber{background:var(--amber)}.legend-dot.red{background:var(--red)}.color-key-panel{margin-top:14px}.color-key-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px 28px}.key-group-t{font-size:12px;font-weight:700;color:var(--ink-2);margin-bottom:10px}.key-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-3);padding:4px 0}.key-sw{width:14px;height:14px;border-radius:4px;flex-shrink:0;box-shadow:inset 0 0 0 1px #0000000f}.today-legend{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}.tl-item{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--ink-3);font-weight:600}.tl-sw{width:11px;height:11px;border-radius:3px;flex-shrink:0}.finance-board th{text-align:center;border-right:1px solid var(--line-soft)}.finance-board td{text-align:center}.finance-board.matrix-board{min-width:1680px}.finance-board.matrix-board th{min-width:56px;padding-left:8px;padding-right:8px}.finance-board.matrix-board td{min-width:56px;padding:10px 8px}.subject-cell{width:92px;min-width:92px!important;text-align:center!important;background:#eef6ff!important;color:var(--blue);font-weight:900;border-right:1px solid #dbeafe;position:sticky;left:0;z-index:1}.metric-cell{width:72px;min-width:72px!important;text-align:center!important;background:#f8fafc;color:#334155;font-weight:800;position:sticky;left:92px;z-index:1}.matrix-row td{border-bottom-color:#e8edf4}.matrix-revenue td:not(.subject-cell):not(.metric-cell){background:#f8fbff}.matrix-orders td:not(.subject-cell):not(.metric-cell){background:#f8fffc}.matrix-unit td:not(.subject-cell):not(.metric-cell){background:#fffdf5}.matrix-device td:not(.subject-cell):not(.metric-cell){background:#fff8f8}.subject-revenue,.metric-revenue{background:#eff6ff!important;color:var(--blue)!important}.subject-orders,.metric-orders{background:#ecfdf5!important;color:var(--green)!important}.subject-unit,.metric-unit{background:#fffbeb!important;color:var(--amber)!important}.subject-device,.metric-device{background:#fef2f2!important;color:var(--red)!important}.matrix-row:hover td:not(.subject-cell):not(.metric-cell){background:#f1f5f9}.matrix-board thead .subject-cell,.matrix-board thead .metric-cell{z-index:3}.cost-board th,.cost-board td,.finance-board th,.finance-board td,.report-grid th,.report-grid td,.import-preview-table th,.import-preview-table td{text-align:center}.report-grid{align-items:start}.cost-note{display:flex;flex-direction:column;gap:8px;color:var(--ink-3)}.cost-note b{color:var(--ink);font-size:14px}.report-sheet-tabs{margin:-6px 0 18px}.worktime-report-header .toolbar-actions{align-items:flex-end}.worktime-report-header .toolbar-actions>.btn{height:36px}.point-analysis{min-width:0}.point-analysis .kpi small{display:block;margin-top:4px;color:var(--ink-3);font-size:11px}.point-analysis-kpis .val{overflow-wrap:anywhere}.point-analysis-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:-8px 0 22px;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:var(--line)}.point-analysis-strip>div{min-width:0;padding:13px 16px;background:#fff}.point-analysis-strip span,.point-analysis-strip b,.point-analysis-strip small{display:block}.point-analysis-strip span{color:var(--ink-3);font-size:11px;font-weight:700}.point-analysis-strip b{margin:5px 0 2px;color:var(--ink);font-size:20px}.point-analysis-strip small{color:var(--ink-3);font-size:10px}.point-analysis-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:22px}.point-analysis-tables{grid-template-columns:minmax(0,1fr);align-items:start}.point-analysis-tables .panel{min-width:0;overflow:hidden}.point-analysis-tables .panel-bd,.point-school-panel .panel-bd{max-width:100%;overflow-x:auto}.point-analysis-tables table{min-width:850px}.point-school-panel table{min-width:650px}.point-detail-panel{margin-top:22px}.point-detail-panel .panel-bd{max-width:100%;overflow-x:auto}.point-detail-panel table{min-width:1180px}.point-frequency-panel{margin-top:22px}.point-frequency-panel .panel-bd{max-width:100%;overflow-x:auto}.point-frequency-panel table{min-width:1050px}.point-frequency-list{display:flex;flex-wrap:wrap;gap:6px;min-width:300px}.point-frequency-list>span{display:grid;grid-template-columns:auto auto;gap:1px 6px;min-width:118px;padding:6px 8px;border:1px solid #dbeafe;border-radius:6px;background:#eff6ff}.point-frequency-list b{color:#1d4ed8;font-size:11px}.point-frequency-list i{color:var(--ink);font-size:11px;font-style:normal;font-weight:800;text-align:right}.point-frequency-list small{grid-column:1 / -1;color:var(--ink-3);font-size:9px;white-space:nowrap}.point-frequency-list em{color:var(--ink-3);font-size:10px;font-style:normal}.point-execution-card{grid-column:1 / -1}.point-execution-card .chart-box{height:auto;min-height:126px}.point-execution-compare{display:grid;grid-template-columns:180px minmax(220px,1fr) minmax(360px,520px);gap:24px;align-items:center;padding:14px 22px 18px}.point-execution-rate{display:flex;align-items:baseline;justify-content:space-between}.point-execution-rate strong{color:#0f172a;font-size:34px}.point-execution-rate span{color:var(--ink-3);font-size:11px;font-weight:700}.point-execution-bar{height:14px;margin:0;overflow:hidden;border-radius:4px;background:#fbbf24}.point-execution-bar i{display:block;height:100%;border-radius:inherit;background:#10b981}.point-execution-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.point-execution-stats>div{display:grid;grid-template-columns:auto 1fr;gap:2px 7px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:6px;background:#fff}.point-execution-stats i{width:8px;height:8px;border-radius:50%}.point-execution-stats i.green{background:#10b981}.point-execution-stats i.amber{background:#f59e0b}.point-execution-stats i.blue{background:#2563eb}.point-execution-stats span{color:var(--ink-3);font-size:9px}.point-execution-stats b{grid-column:2;font-size:17px}.point-analysis-note{display:grid;gap:5px;margin-top:14px;padding:14px 16px;border-left:3px solid var(--blue);background:#f8fafc;color:var(--ink-3);font-size:11px;line-height:1.55}.point-analysis-note b{color:var(--ink);font-size:12px}.shared-worktime-page{min-height:100vh;background:#f4f7fb}.shared-worktime-header{height:58px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 max(20px,calc((100vw - 1440px)/2));border-bottom:1px solid #dbe4ee;background:#fff}.shared-worktime-brand,.shared-worktime-user{display:flex;align-items:center;gap:10px}.shared-worktime-brand>span{display:grid;width:28px;height:28px;place-items:center;border-radius:7px;background:#2457e6;color:#fff;font-size:13px;font-weight:900}.shared-worktime-brand b,.shared-worktime-brand small{display:block}.shared-worktime-brand b{color:#0f172a;font-size:14px}.shared-worktime-brand small{margin-top:1px;color:#64748b;font-size:10px}.shared-worktime-user{color:#475569;font-size:12px}.shared-worktime-user button{border:0;background:transparent;color:#64748b;cursor:pointer}.shared-worktime-content{width:min(1440px,100%);margin:0 auto;padding:24px 28px 40px}.point-analysis-date-controls{display:flex;align-items:flex-end;gap:8px}.point-analysis-date-controls label{display:grid;gap:4px;color:#64748b;font-size:9px;font-weight:700}.point-analysis-date-controls label span{padding-left:2px}.point-analysis-date-controls input{width:146px}.point-analysis-date-controls>i{padding-bottom:9px;color:#64748b;font-size:11px;font-style:normal}.worktime-preview-page{min-height:100vh;background:#f4f7fb;color:#0f172a}.worktime-preview-header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2));border-bottom:1px solid #dbe4ee;background:#fffffff0}.worktime-preview-header>span{color:#64748b;font-size:12px;font-weight:700}.worktime-preview-hero{width:min(1180px,calc(100% - 48px));min-height:calc(100vh - 176px);margin:0 auto;display:grid;grid-template-columns:minmax(0,.82fr) minmax(520px,1.18fr);align-items:center;gap:60px;padding:54px 0 42px}.worktime-preview-copy{max-width:510px}.worktime-preview-kicker{color:#2457e6;font-size:13px;font-weight:800}.worktime-preview-copy h1{margin:16px 0 18px;font-size:clamp(34px,4.2vw,58px);line-height:1.08;letter-spacing:0}.worktime-preview-copy>p{margin:0;color:#52637a;font-size:16px;line-height:1.75}.worktime-preview-actions{display:flex;align-items:center;gap:16px;margin-top:30px}.worktime-preview-actions .btn{height:44px;padding:0 24px}.worktime-preview-actions small{max-width:235px;color:#7b8aa0;font-size:11px;line-height:1.55}.worktime-preview-visual{min-width:0;padding:22px;border:1px solid rgba(203,213,225,.92);border-radius:8px;background:#ffffffc7;box-shadow:0 24px 60px #0f172a1f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.preview-visual-head{display:flex;justify-content:space-between;align-items:center;color:#64748b;font-size:11px}.preview-visual-head b{color:#0f172a;font-size:12px}.preview-kpi-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.preview-kpi-row>div{min-width:0;padding:14px;border:1px solid #e2e8f0;border-radius:7px;background:#f8fafcdb}.preview-kpi-row small,.preview-kpi-row strong{display:block}.preview-kpi-row small{color:#64748b;font-size:10px}.preview-kpi-row strong{margin:6px 0 10px;overflow:hidden;color:#162033;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.preview-chip{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:9px;font-style:normal;font-weight:800}.preview-chip.blue{background:#e8efff;color:#2457e6}.preview-chip.green{background:#dcf8ef;color:#087f68}.preview-chip.amber{background:#fff2d7;color:#9a5c00}.preview-chart-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(150px,.7fr);gap:12px}.preview-line-chart,.preview-bars{min-height:190px;padding:14px;border:1px solid #e2e8f0;border-radius:7px;background:#fff}.preview-chart-title{margin-bottom:8px;color:#334155;font-size:11px;font-weight:800}.preview-line-chart svg{width:100%;height:145px;overflow:visible}.preview-grid-line{fill:none;stroke:#e2e8f0;stroke-dasharray:4 5;stroke-width:1}.preview-line{fill:none;stroke-linecap:round;stroke-width:5}.preview-line.blue{stroke:#2e68e9}.preview-line.green{stroke:#12b886}.preview-bars{display:flex;align-items:flex-end;justify-content:space-around;gap:10px;position:relative;padding-top:44px}.preview-bars .preview-chart-title{position:absolute;top:14px;left:14px}.preview-bar-set{height:118px;display:flex;align-items:flex-end;gap:4px}.preview-bar-set span,.preview-bar-set i{width:19px;border-radius:4px 4px 0 0}.preview-bar-set span{background:#2e68e9}.preview-bar-set i{background:#12b886}.preview-foot{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.preview-foot span{padding:9px 10px;border-radius:6px;background:#f1f5f9;color:#52637a;font-size:10px;text-align:center}.worktime-preview-band{width:min(1180px,calc(100% - 48px));margin:0 auto 32px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #dbe4ee;border-radius:8px;background:#fff}.worktime-preview-band>div{padding:18px 22px;border-right:1px solid #e2e8f0}.worktime-preview-band>div:last-child{border-right:0}.worktime-preview-band b,.worktime-preview-band span{display:block}.worktime-preview-band b{font-size:12px}.worktime-preview-band span{margin-top:5px;color:#64748b;font-size:10px;line-height:1.5}.cell-input{width:100%;height:30px;border:1px solid var(--line);border-radius:6px;padding:0 8px;background:#fff;font-size:12px}.cell-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}.cell-input.pos{min-width:86px}.cell-input.staff{min-width:130px}.cell-input.hour{width:64px;text-align:center;font-variant-numeric:tabular-nums}.forecast-filter-bar{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr)) auto auto;gap:10px;align-items:center;margin:-8px 0 18px;padding:12px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(135deg,#fff,#f8fbff)}.forecast-sheet-tabs{display:inline-flex;align-items:center;gap:6px;margin:-4px 0 16px;padding:5px;border:1px solid var(--line);border-radius:14px;background:#f8fafc;box-shadow:inset 0 1px #fffc}.forecast-sheet-tabs button{height:34px;padding:0 16px;border:0;border-radius:10px;background:transparent;color:#64748b;font-size:13px;font-weight:900;cursor:pointer}.forecast-sheet-tabs button:hover{color:#2563eb;background:#eef6ff}.forecast-sheet-tabs button.on{color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 8px 18px #2563eb2e}.school-search-input{min-width:320px}.forecast-aggregation-note{display:flex;align-items:center;gap:12px;margin:-8px 0 18px;padding:10px 14px;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff;color:#475569;font-size:12px}.forecast-aggregation-note b{flex:0 0 auto;color:#1d4ed8}.forecast-scope-summary{display:grid;grid-template-columns:1.2fr repeat(4,minmax(150px,1fr));gap:12px;margin-bottom:14px}.forecast-scope-summary>div{display:flex;flex-direction:column;justify-content:center;min-height:96px;padding:14px 16px;border:1px solid #dbe5f1;border-radius:12px;background:linear-gradient(145deg,#fff,#f8fbff)}.forecast-scope-summary span{color:#64748b;font-size:11px;font-weight:800}.forecast-scope-summary b{margin-top:7px;color:#0f172a;font-size:18px;line-height:1.2}.forecast-scope-summary em{margin-top:6px;color:#94a3b8;font-size:10px;font-style:normal}.forecast-hour-card{margin-bottom:22px;background:radial-gradient(circle at top right,rgba(16,185,129,.08),transparent 28%),#fff}.chart-box-wide{height:430px}.hourly-forecast-panel{margin-bottom:22px;overflow:hidden;border-color:#bfdbfe}.hourly-forecast-panel .panel-hd{align-items:flex-start;gap:16px;background:radial-gradient(circle at top right,rgba(37,99,235,.13),transparent 28%),linear-gradient(135deg,#f8fbff,#fff)}.hourly-forecast-body{display:flex;flex-direction:column;gap:18px}.hourly-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.hourly-legend span{padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}.hourly-legend .morning{background:#e0f2fe;color:#0369a1}.hourly-legend .noon{background:#fef3c7;color:#b45309}.hourly-legend .evening{background:#ede9fe;color:#6d28d9}.hourly-legend .other{background:#f1f5f9;color:#64748b}.hourly-detail-grid{display:grid;grid-template-columns:minmax(660px,1.65fr) minmax(280px,.85fr);gap:16px;align-items:start}.hourly-table-wrap{overflow:auto;border:1px solid #dbe5f1;border-radius:12px}.hourly-table{width:100%;min-width:690px;border-collapse:collapse;font-size:12px}.hourly-table th{padding:10px 8px;background:#f8fafc;color:#64748b;font-weight:800;white-space:nowrap;text-align:center}.hourly-table td{padding:9px 8px;border-top:1px solid #eef2f7;text-align:center;font-variant-numeric:tabular-nums}.hourly-table .hourly-morning td{background:#e0f2fe59}.hourly-table .hourly-noon td{background:#fef3c752}.hourly-table .hourly-evening td{background:#ede9fe52}.hourly-table .hourly-other td{color:#94a3b8;background:#fafcff}.hour-status{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.hour-status.stable{color:#047857;background:#d1fae5}.hour-status.good{color:#1d4ed8;background:#dbeafe}.hour-status.warn{color:#b45309;background:#fef3c7}.hour-status.quiet{color:#64748b;background:#e2e8f0}.hourly-insight-card{display:flex;flex-direction:column;gap:10px;min-height:100%;padding:16px;border:1px solid #dbe5f1;border-radius:12px;background:linear-gradient(145deg,#fbfdff,#f8fafc)}.hourly-insights{display:grid;gap:9px}.hourly-insight{display:grid;gap:4px;padding:11px;border-radius:10px;font-size:12px;line-height:1.55}.hourly-insight b{color:#0f172a}.hourly-insight span{color:#64748b}.hourly-insight.warn{background:#fff7ed;border:1px solid #fed7aa}.hourly-insight.good{background:#ecfdf5;border:1px solid #a7f3d0}.hourly-insight.info{background:#eff6ff;border:1px solid #bfdbfe}.hourly-rule-note{margin-top:auto;padding-top:10px;border-top:1px dashed #cbd5e1;color:#64748b;font-size:11px;line-height:1.55}.hourly-import-toolbar{margin:0;padding:14px;border:1px solid #dbeafe;border-radius:12px;background:#f8fbff}.hourly-import-preview{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px 14px;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff;font-size:12px}.inline-actual-import{width:100%}.inline-actual-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin-bottom:8px;color:#0f3b7a}.inline-actual-heading span{color:#64748b;font-size:11px}.building-engine{margin-bottom:22px;overflow:hidden;border-color:#bfdbfe}.building-engine .panel-hd{background:radial-gradient(circle at 92% 8%,rgba(37,99,235,.12),transparent 26%),linear-gradient(135deg,#f8fbff,#fff 68%)}.building-engine-body{display:flex;flex-direction:column;gap:16px}.scenario-tags,.scenario-inline{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.scenario-tags span,.scenario-inline span{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:3px 9px;border-radius:999px;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;font-size:11px;font-weight:900;white-space:nowrap}.scenario-inline{margin:-2px 0 12px}.building-archive-strip{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:12px;padding:12px;border:1px solid #bfdbfe;border-radius:14px;background:linear-gradient(135deg,#eff6ff,#fff 72%)}.building-archive-strip div{display:flex;flex-direction:column;gap:4px;min-width:0}.building-archive-strip b{color:#1e3a8a;font-size:12px;font-weight:900}.building-archive-strip span{color:#334155;font-size:12px;font-weight:700;overflow-wrap:anywhere}.building-mode-hint{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.building-mode-hint span{display:block;padding:10px 12px;border:1px solid #dbeafe;border-radius:12px;background:#fff;color:#475569;font-size:12px;font-weight:800}.building-mode-hint b{color:#1d4ed8}.building-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.building-kpi{padding:16px;border:1px solid var(--line-soft);border-radius:14px;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 8px 18px #0f172a0a}.building-kpi.opportunity{background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff}.building-kpi span,.building-kpi em{display:block;color:var(--ink-3);font-size:11px;font-weight:800}.building-kpi.opportunity span,.building-kpi.opportunity em{color:#ffffffc7}.building-kpi b{display:block;margin:8px 0 6px;color:#0f172a;font-size:24px;line-height:1}.building-kpi.opportunity b{color:#fff;font-size:28px}.building-kpi i{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;margin-left:4px;border-radius:999px;background:#e2e8f0;color:#334155;font-style:normal;font-size:10px;font-weight:900}.building-kpi.opportunity i{background:#ffffff3d;color:#fff}.building-formula-panel{border:1px solid #dbeafe;border-radius:14px;background:#f8fbff;overflow:hidden}.building-formula-panel summary{cursor:pointer;padding:12px 14px;color:#1e3a8a;font-size:13px;font-weight:900}.formula-grid{display:grid;grid-template-columns:1fr;gap:8px;padding:0 14px 14px}.formula-row{display:grid;grid-template-columns:150px minmax(0,1.4fr) minmax(180px,.8fr);gap:10px;align-items:start;padding:10px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;font-size:12px;line-height:1.55}.formula-row b{color:#0f172a}.formula-row span{color:#334155}.formula-row em{color:#64748b;font-style:normal}.building-logic-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:14px}.building-param-card,.building-breakdown-card{padding:14px;border:1px solid var(--line-soft);border-radius:14px;background:#fff}.section-title{margin-bottom:12px;color:#0f172a;font-size:14px;font-weight:900}.section-title-sub{margin-top:16px}.school-budget-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px}.school-budget-grid div{padding:12px;border:1px solid #dbeafe;border-radius:12px;background:linear-gradient(180deg,#eff6ff,#fff)}.school-budget-grid span{display:block;color:#64748b;font-size:11px;font-weight:900}.school-budget-grid b{display:block;margin-top:6px;color:#0f172a;font-size:18px;line-height:1}.building-param-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.building-param-grid label{display:flex;flex-direction:column;gap:6px}.building-param-grid label span{color:var(--ink-3);font-size:11px;font-weight:900}.percent-field{position:relative;display:flex;align-items:center}.percent-field input{width:100%;padding-right:28px}.percent-field em{position:absolute;right:10px;color:#64748b;font-style:normal;font-size:12px;font-weight:900;pointer-events:none}.cell-percent{width:86px;margin:0 auto}.cell-percent input{text-align:center}.building-entry-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #dbeafe;border-radius:14px;background:linear-gradient(135deg,#fff,#eff6ff)}.building-entry-title b{display:block;color:#0f172a;font-size:14px;font-weight:900}.building-entry-title span{display:block;margin-top:3px;color:#64748b;font-size:12px;font-weight:800}.building-entry-title em{flex:none;padding:6px 10px;border-radius:999px;background:#e0f2fe;color:#0369a1;font-style:normal;font-size:11px;font-weight:900}.opportunity-row{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.opportunity-row div{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}.opportunity-row span{color:var(--ink-3);font-weight:900}.opportunity-row i{display:block;height:10px;overflow:hidden;border-radius:999px;background:#eef2f7}.opportunity-row em{display:block;height:100%;border-radius:inherit}.building-rule-note{margin-top:14px;padding:12px;border-radius:12px;background:#f8fafc;color:var(--ink-3);font-size:12px;line-height:1.7}.building-rule-note b{display:block;margin-bottom:4px;color:#0f172a}.building-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff}.building-input-table,.building-result-table{min-width:1120px}.building-input-table th,.building-input-table td,.building-result-table th,.building-result-table td{text-align:center;vertical-align:middle}.building-input-table th,.building-result-table th{position:sticky;top:0;z-index:1;background:#f8fbff;color:#334155;font-size:11px;font-weight:900}.building-input-table td:first-child,.building-input-table th:first-child,.building-result-table td:nth-child(2),.building-result-table th:nth-child(2){text-align:left;min-width:150px}.table-sub{display:block;margin-top:4px;color:var(--ink-3);font-size:10px;font-weight:800}.reason-pill,.priority-pill{display:inline-flex;align-items:center;justify-content:center;min-width:70px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:900}.reason-pill{background:#eff6ff;color:#2563eb}.priority-pill.high{background:#fef2f2;color:#dc2626}.priority-pill.mid{background:#fffbeb;color:#d97706}.priority-pill.low{background:#ecfdf5;color:#059669}.advice-cell{min-width:240px;max-width:320px;color:#334155;line-height:1.55;text-align:left!important}.building-workorder-card{display:grid;grid-template-columns:minmax(220px,.34fr) minmax(0,.66fr);gap:14px;align-items:start;padding:14px;border:1px solid #bfdbfe;border-radius:14px;background:linear-gradient(135deg,#f8fbff,#fff)}.strategy-workorder-text{width:100%;min-height:150px;resize:vertical;border:1px solid var(--line);border-radius:12px;padding:12px;color:#0f172a;background:#fff;line-height:1.65;font-size:12px}.cert-layout{display:grid;grid-template-columns:minmax(0,1.75fr) 360px;gap:14px;margin-bottom:22px}.cert-map-panel{overflow:hidden}.tencent-skill-map-wrap{position:relative;height:620px;margin:0 14px 14px;overflow:hidden;border:1px solid #dbeafe;border-radius:22px;background:linear-gradient(180deg,#eff6ff,#dbeafe);box-shadow:inset 0 1px #ffffffe6}.tencent-skill-map{width:100%;height:100%;min-height:620px}.tencent-map-state{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;display:inline-flex;align-items:center;justify-content:center;max-width:calc(100% - 48px);padding:10px 14px;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:#ffffffeb;color:#1d4ed8;font-size:12px;font-weight:900;box-shadow:0 16px 38px #0f172a24;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.tencent-map-state.error{border-radius:14px;color:#dc2626;border-color:#ef44443d;text-align:center;line-height:1.7}.china-map{height:560px;padding:12px;background:radial-gradient(circle at 76% 22%,rgba(37,99,235,.14),transparent 24%),radial-gradient(circle at 26% 72%,rgba(16,185,129,.12),transparent 28%),linear-gradient(180deg,#f8fbff,#eef6ff)}.china-map svg{width:100%;height:100%;display:block}.map-sea{fill:url(#mapSea)}.china-shape{fill:#dbeafe61;stroke:#60a5fa73;stroke-width:.8}.province-area{fill:#f8fafceb;stroke:#60a5fa8f;stroke-width:.28;cursor:pointer;transition:fill .15s ease,stroke .15s ease,stroke-width .15s ease,filter .15s ease}.province-area.none{fill:#f1f5f9f2}.province-area.base{fill:#10b98157}.province-area.core{fill:#2563eb5c}.province-area.lead{fill:#f59e0b6b}.province-area.expert{fill:#7c3aed61}.province-area.master{fill:#ef44446b}.province-area:hover,.province-area.active{stroke:#1d4ed8;stroke-width:.75;filter:drop-shadow(0 6px 12px rgba(37,99,235,.16))}.china-river{fill:none;stroke:#3b82f647;stroke-width:.65;stroke-linecap:round}.province-point{cursor:pointer;outline:none}.province-point .province-halo{fill:#94a3b829}.province-point .province-dot{fill:#cbd5e1;stroke:#fff;stroke-width:.55}.province-point.base .province-dot,.province-point.base .province-halo{fill:#10b981}.province-point.core .province-dot,.province-point.core .province-halo{fill:#2563eb}.province-point.lead .province-dot,.province-point.lead .province-halo{fill:#f59e0b}.province-point.expert .province-dot,.province-point.expert .province-halo{fill:#7c3aed}.province-point.master .province-dot,.province-point.master .province-halo{fill:#ef4444}.province-point.active .province-dot{stroke:#0f172a;stroke-width:1.2}.province-point.active .province-halo{opacity:.36}.province-label{fill:#334155;font-size:2.3px;font-weight:800;paint-order:stroke;stroke:#fffffff5;stroke-width:1.35;stroke-linejoin:round;pointer-events:none}.map-pin{cursor:pointer;outline:none}.map-pin .pin-halo{opacity:.22}.map-pin .pin-dot{stroke:#fff;stroke-width:.9}.map-pin .pin-label{fill:#0f172a;font-size:3px;font-weight:900;paint-order:stroke;stroke:#fffffff2;stroke-width:1.8;stroke-linejoin:round}.map-pin .pin-count{fill:#fff;font-size:3px;font-weight:900;pointer-events:none}.map-pin.none .pin-dot,.map-pin.none .pin-halo{fill:#94a3b8}.map-pin.base .pin-dot,.map-pin.base .pin-halo{fill:#10b981}.map-pin.core .pin-dot,.map-pin.core .pin-halo{fill:#2563eb}.map-pin.lead .pin-dot,.map-pin.lead .pin-halo{fill:#f59e0b}.map-pin.expert .pin-dot,.map-pin.expert .pin-halo{fill:#7c3aed}.map-pin.master .pin-dot,.map-pin.master .pin-halo{fill:#ef4444}.map-pin:hover .pin-dot,.map-pin.active .pin-dot{stroke:#0f172a;stroke-width:1.25}.map-pin.active .pin-halo{opacity:.36}.cert-side .panel-bd{display:flex;flex-direction:column;gap:16px}.region-card{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line-soft);border-radius:12px;background:linear-gradient(135deg,#fff,#f8fbff)}.region-marker{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:19px;font-weight:900;box-shadow:0 10px 24px #0f172a1f}.region-marker.none{background:#94a3b8}.region-marker.base{background:#10b981}.region-marker.core{background:#2563eb}.region-marker.lead{background:#f59e0b}.region-marker.expert{background:#7c3aed}.region-marker.master{background:#ef4444}.region-title{font-size:18px;font-weight:900;color:#0f172a}.region-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.region-metrics div{padding:12px 10px;border:1px solid var(--line-soft);border-radius:10px;background:#fbfdff;text-align:center}.region-metrics b{display:block;font-size:22px;line-height:1;color:#0f172a}.region-metrics span{display:block;margin-top:6px;color:var(--ink-3);font-size:11px;font-weight:700}.talent-stack{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--line-soft);border-radius:12px;background:#fff}.stack-row{display:grid;grid-template-columns:70px 1fr 28px;align-items:center;gap:10px;font-size:11px;color:var(--ink-3);font-weight:700}.stack-row i{height:7px;border-radius:999px;background:#eef2f7;overflow:hidden}.stack-row em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#7c3aed)}.stack-row b{color:#0f172a;text-align:right}.skill-cloud{display:flex;flex-wrap:wrap;gap:8px}.skill-cloud span,.skill-tag{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:999px;background:#eff6ff;color:var(--blue);font-size:11px;font-weight:800;margin:2px 4px 2px 0}.tier-chip{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:900;white-space:nowrap}.tier-chip.none{background:#f1f5f9;color:#64748b}.tier-chip.base{background:#ecfdf5;color:#059669}.tier-chip.core{background:#eff6ff;color:#2563eb}.tier-chip.lead{background:#fffbeb;color:#d97706}.tier-chip.expert{background:#f5f3ff;color:#7c3aed}.tier-chip.master{background:#fef2f2;color:#dc2626}.cert-project-table th,.cert-project-table td{text-align:center;vertical-align:middle}.cert-project-table td:nth-child(2),.cert-project-table th:nth-child(2){text-align:left;min-width:240px}.cert-project-table td:last-child,.cert-project-table th:last-child{text-align:left;min-width:220px}.sheet-tabs{margin-bottom:16px}.schedule-sheets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;margin-bottom:16px;padding:0;background:transparent;border-radius:0;align-items:stretch}.schedule-sheets .seg-item{width:100%;height:40px;padding:0 12px;border:1px solid #2563eb;background:#fff;color:#2563eb;border-radius:10px;font-size:13px;font-weight:800;line-height:1;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;box-shadow:0 1px #2563eb0f}.schedule-sheets .seg-item:hover{background:#eff6ff;color:#1d4ed8}.schedule-sheets .seg-item.on{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border-color:transparent;box-shadow:0 8px 18px #2563eb42}.today-confirm-sheet{width:100%;display:flex;flex-direction:column;gap:16px}.today-toolbar{margin-bottom:0}.today-toolbar .toolbar-actions{width:100%;display:grid;grid-template-columns:minmax(150px,.55fr) minmax(180px,.7fr) minmax(260px,1.4fr) auto auto auto;align-items:center;gap:10px}.today-confirm-sheet .kpis.compact{grid-template-columns:repeat(4,minmax(180px,1fr));margin-bottom:0}.today-confirm-sheet .report-grid{grid-template-columns:minmax(0,1.35fr) minmax(420px,.85fr);margin-bottom:0}.today-analysis-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:14px;align-items:start}.today-hint{font-size:12px;margin-top:-8px}.slot-band-wrap{display:flex;flex-direction:column;gap:12px;overflow-x:auto}.slot-band-row{display:flex;flex-direction:column;gap:6px}.slot-band-label{display:flex;align-items:center;gap:8px;font-size:12px}.slot-band-grid{display:grid;grid-template-columns:repeat(34,1fr);gap:2px;min-width:680px}.slot-band-cell{height:10px;border-radius:2px;background:#eef2f7}.slot-band-cell.on{min-height:10px}.slot-timeline{display:flex;flex-direction:column;gap:8px}.slot-timeline-item{display:grid;grid-template-columns:56px 1fr 48px;align-items:center;gap:8px;font-size:11px}.slot-timeline-label{color:var(--ink-3);font-weight:700}.slot-timeline-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;background:#eef2f7}.slot-timeline-bar .confirmed{background:#22c55e}.slot-timeline-bar .pending{background:#f59e0b}.slot-timeline-val{text-align:right;font-weight:700;color:var(--ink-2)}.suggestion-box{font-size:13px;line-height:1.6}.suggestion-box ul{margin:6px 0 0 18px;padding:0}@media (max-width: 980px){.app{grid-template-columns:200px 1fr}.kpis{grid-template-columns:repeat(2,1fr)}.overview-module-grid{grid-template-columns:1fr}.today-toolbar .toolbar-actions{grid-template-columns:1fr 1fr}.today-confirm-sheet .report-grid,.today-analysis-grid{grid-template-columns:1fr}.today-confirm-sheet .kpis.compact,.form-grid,.staff-add,.month-strip,.schedule-sheets{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid{grid-template-columns:1fr}.point-analysis-charts,.point-analysis-tables{grid-template-columns:minmax(0,1fr)}.point-execution-compare{grid-template-columns:150px minmax(0,1fr)}.point-execution-stats{grid-column:1 / -1}.building-kpis,.building-logic-grid,.school-budget-grid,.building-workorder-card{grid-template-columns:1fr}.building-param-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.formula-row,.cert-layout{grid-template-columns:1fr}.china-map{height:420px}.forecast-filter-bar,.forecast-scope-summary{grid-template-columns:1fr 1fr}.hourly-detail-grid{grid-template-columns:1fr}.hourly-forecast-panel .panel-hd{flex-direction:column}.hourly-legend{justify-content:flex-start}.forecast-aggregation-note{align-items:flex-start;flex-direction:column;gap:4px}.settings-grid,.settings-module-meta{grid-template-columns:1fr}}@media (max-width: 760px){.app:has(.report-sheet-tabs){grid-template-columns:1fr}.app:has(.report-sheet-tabs) .side{display:none}.app:has(.report-sheet-tabs) .topbar{height:50px;padding:0 12px}.app:has(.report-sheet-tabs) .top-actions .user{border:0;padding-right:0}.app:has(.report-sheet-tabs) .top-actions .user>div:last-child{display:none}.app:has(.report-sheet-tabs) .content{padding:16px 12px 32px}.app:has(.report-sheet-tabs) .page-hd{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:14px}.app:has(.report-sheet-tabs) .page-hd .toolbar-actions{width:100%;justify-content:space-between}.app:has(.report-sheet-tabs) .month-input{flex:1 1 150px;min-width:0}.report-sheet-tabs{display:flex;width:100%}.report-sheet-tabs .seg-item{flex:1}.point-analysis-kpis{grid-template-columns:1fr}.point-analysis-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.point-analysis-charts{grid-template-columns:1fr}.point-analysis-charts .chart-box{height:230px}.point-analysis-charts .point-execution-card .chart-box{height:auto}.point-execution-compare{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:10px 12px 14px}.point-execution-bar{margin:12px 0 16px}.point-execution-stats{width:100%}.point-analysis-tables{grid-template-columns:minmax(0,1fr)}.point-school-panel .panel-hd{align-items:flex-start;flex-direction:column;gap:5px}.shared-worktime-header{height:52px;padding:0 12px}.shared-worktime-user>span{display:none}.shared-worktime-content{padding:16px 12px 32px}.shared-worktime-content .page-hd{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:14px}.shared-worktime-content .page-hd .toolbar-actions{width:100%}.shared-worktime-content .month-input{min-width:0;flex:1}.shared-worktime-content .point-analysis-date-controls{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.shared-worktime-content .point-analysis-date-controls .btn{grid-column:1 / -1}.point-analysis-date-controls input{width:100%;min-width:0}.worktime-preview-header{height:56px;padding:0 14px}.worktime-preview-hero{width:min(100% - 28px,680px);min-height:auto;grid-template-columns:minmax(0,1fr);gap:30px;padding:34px 0 26px}.worktime-preview-copy{max-width:none}.worktime-preview-copy h1{margin-top:12px;font-size:34px}.worktime-preview-actions{align-items:flex-start;flex-direction:column;gap:10px;margin-top:24px}.worktime-preview-actions .btn{width:100%}.worktime-preview-visual{padding:14px}.preview-kpi-row{grid-template-columns:1fr}.preview-chart-grid{grid-template-columns:minmax(0,1fr)}.preview-bars{min-height:170px}.worktime-preview-band{width:min(100% - 28px,680px);grid-template-columns:1fr;margin-bottom:24px}.worktime-preview-band>div{border-right:0;border-bottom:1px solid #e2e8f0}.worktime-preview-band>div:last-child{border-bottom:0}}.legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.legend-item{display:flex;align-items:flex-start;gap:10px}.legend-label{font-size:13px;font-weight:600;color:var(--ink)}.legend-desc{font-size:12px;color:var(--ink-3);margin-top:1px}.dept-badge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;font-size:12px;font-weight:800;color:#fff;margin-right:8px}.badge-j{background:var(--blue)}.badge-f{background:var(--green)}@media (max-width: 720px){.legend-grid{grid-template-columns:1fr}}.form-grid{display:grid;gap:12px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:800;color:var(--muted)}.form-grid label span{font-size:12px}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;color:var(--text);font-weight:800}.form-grid textarea{min-height:84px;resize:vertical}.form-grid .wide{grid-column:1 / -1}.no-pad{padding:0;overflow:hidden}.panel-bd.no-pad{overflow-x:auto}.panel-bd.no-pad.board-scroll{overflow:auto}:is(.board-scroll,.panel-bd.no-pad,.hourly-table-wrap,.building-table-wrap,.weekly-table-wrap,.weekly-day-tabs,.slot-band-wrap,.ops-table-wrap,.supply-table-scroll,.growth-preview-scroll,.import-preview-table){min-width:0;max-width:100%;overflow-x:auto;cursor:grab}:is(.board-scroll,.panel-bd.no-pad,.hourly-table-wrap,.building-table-wrap,.weekly-table-wrap,.weekly-day-tabs,.slot-band-wrap,.ops-table-wrap,.supply-table-scroll,.growth-preview-scroll,.import-preview-table).is-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.form-grid{gap:16px}.form-grid.two{grid-template-columns:repeat(2,minmax(220px,1fr))}.form-grid label{text-align:center}.form-grid label span{text-align:center;font-size:13px;color:#475569}.form-grid input,.form-grid select,.form-grid textarea{min-height:46px;text-align:center;font-size:15px;border-radius:14px}.form-grid textarea{min-height:112px;text-align:left;line-height:1.6}@media (max-width: 900px){.form-grid.two{grid-template-columns:1fr}}.forecast-view-switch{display:inline-flex;padding:4px;border:1px solid #dbe4f0;border-radius:10px;background:#f4f7fb}.forecast-view-switch button{border:0;border-radius:7px;padding:8px 14px;color:#64748b;background:transparent;cursor:pointer;font-weight:700}.forecast-view-switch button.on{color:#fff;background:#2563eb;box-shadow:0 6px 15px #2563eb33}.forecast-growth-panel{display:grid;gap:18px}.growth-import-card{overflow:visible}.growth-import-button{min-width:150px;justify-content:center}.growth-template-tags{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:0 20px 16px}.growth-template-tags span{padding:6px 10px;border-radius:999px;color:#1d4ed8;background:#eff6ff;font-size:12px;font-weight:700}.growth-template-tags em{margin-left:auto;color:#64748b;font-style:normal;font-size:12px}.growth-message{margin:0 20px 8px;padding:9px 12px;border-radius:8px;color:#1e40af;background:#eff6ff;font-size:13px}.growth-import-preview{margin:16px 20px 20px;border:1px solid #dbe4f0;border-radius:12px;overflow:hidden}.growth-preview-head{display:flex;align-items:center;gap:14px;padding:12px 14px;background:#f8fafc}.growth-preview-head span{color:#64748b}.growth-preview-head .btn{margin-left:auto}.growth-preview-scroll{max-height:370px;overflow:auto}.growth-preview-scroll table{width:100%;border-collapse:collapse}.growth-preview-scroll th,.growth-preview-scroll td{padding:10px 12px;text-align:center;border-top:1px solid #edf2f7}.growth-preview-scroll th{color:#64748b;background:#fff;position:sticky;top:0}.growth-preview-scroll .fld-input{min-width:270px}.growth-summary-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.growth-line-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.growth-line-card{padding:17px;border:1px solid #dbe4f0;border-radius:14px;background:#fff;box-shadow:0 8px 24px #0f172a0a}.growth-line-title,.growth-line-foot,.growth-week-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.growth-line-title span,.growth-line-foot span{color:#64748b;font-size:12px}.growth-line-values{display:grid;grid-template-columns:1fr auto 1fr auto;gap:7px;align-items:baseline;margin:16px 0 10px}.growth-line-values strong{font-size:19px;color:#0f172a}.growth-line-values span{color:#94a3b8;font-size:11px}.growth-line-bars{position:relative;height:13px;border-radius:999px;background:#edf2f7;overflow:hidden}.growth-line-bars i{position:absolute;left:0;height:6px;border-radius:999px}.growth-line-bars i.actual{top:0;background:#10b981}.growth-line-bars i.target{bottom:0;background:#2563eb}.growth-line-foot{margin-top:9px}.growth-strategy-table small{display:block;margin-top:5px;color:#64748b;line-height:1.5}.growth-strategy-table td{text-align:center;vertical-align:middle}.growth-strategy-table td:last-child{min-width:250px;text-align:left;line-height:1.55}.growth-priority{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.growth-priority.high{color:#b91c1c;background:#fee2e2}.growth-priority.medium{color:#b45309;background:#fef3c7}.growth-priority.low{color:#047857;background:#d1fae5}.growth-week-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.growth-week-card{padding:18px}.growth-week-head span{color:#2563eb;font-weight:800}.growth-week-gap{margin:12px 0;padding:10px 12px;border-radius:9px;background:#eff6ff;color:#475569}.growth-week-gap strong{float:right;color:#1d4ed8}.growth-week-card ol{margin:0;padding-left:22px;color:#475569}.growth-week-card li{margin:8px 0;line-height:1.5}.growth-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#10b981}.growth-dot.high{background:#ef4444}.growth-dot.medium{background:#f59e0b}@media (max-width: 1180px){.growth-line-grid,.growth-summary-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.growth-line-grid,.growth-summary-cards,.growth-week-grid{grid-template-columns:1fr}.growth-preview-scroll .fld-input{min-width:190px}}.supply-chain-page{max-width:none}.supply-chain-page.is-catalog-home{padding-bottom:20px}.supply-command-hero{display:grid;grid-template-columns:minmax(300px,1.35fr) minmax(360px,1fr) auto;gap:24px;align-items:center;margin-bottom:16px;padding:24px 26px;border:1px solid #193e72;border-radius:20px;overflow:hidden;background:radial-gradient(circle at 72% -80%,rgba(56,189,248,.42),transparent 42%),radial-gradient(circle at 4% 115%,rgba(37,99,235,.42),transparent 40%),linear-gradient(116deg,#071b38,#0c3970 58%,#115a9b);box-shadow:0 20px 44px #0f3b7833}.supply-command-title{min-width:0;color:#fff}.supply-eyebrow{display:block;color:#7dd3fc;font-size:10px;font-weight:900;letter-spacing:1.6px}.supply-command-title h1{margin:8px 0 6px;color:#fff;font-size:28px;letter-spacing:.5px}.supply-command-title p{max-width:540px;margin:0;color:#dbeafe;font-size:12px;font-weight:600;line-height:1.7}.supply-command-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.supply-command-status>div{min-width:0;padding:10px 12px;border:1px solid rgba(191,219,254,.26);border-radius:12px;background:#ffffff14}.supply-command-status span,.supply-command-status b,.supply-command-status em{display:block}.supply-command-status span{color:#bfdbfe;font-size:10px;font-weight:800}.supply-command-status b{margin:4px 0 2px;overflow:hidden;color:#fff;font-size:23px;line-height:1;text-overflow:ellipsis}.supply-command-status em{color:#dbeafe;font-size:10px;font-style:normal;white-space:nowrap}.supply-command-actions{display:grid;gap:8px;min-width:100px}.supply-command-actions .btn{min-width:106px;border-color:#ffffff57;background:#ffffff1c;color:#fff;text-align:center;text-decoration:none}.supply-command-actions .btn:hover{border-color:#fff;background:#fff3}.supply-command-actions .btn-primary{border-color:#fff;background:#fff;color:#12508e}.supply-command-actions .btn-primary:hover{background:#e0f2fe}.supply-module-nav{display:grid;grid-template-columns:1.35fr 1.1fr .85fr .85fr;gap:12px;margin-bottom:10px}.supply-module-card{min-width:0;padding:14px;border:1px solid #dbe4f0;border-radius:16px;background:#fff;box-shadow:0 10px 24px #0f172a0b}.supply-module-card>header{display:flex;align-items:center;gap:9px;margin-bottom:11px}.supply-module-mark{display:grid;width:30px;height:30px;flex:0 0 auto;place-items:center;border-radius:9px;color:#fff;background:#2563eb;font-size:10px;font-weight:900;letter-spacing:.5px}.supply-module-card header b,.supply-module-card header small{display:block}.supply-module-card header b{color:#0f172a;font-size:14px}.supply-module-card header small{margin-top:2px;overflow:hidden;color:#64748b;font-size:10px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.supply-module-card.factory .supply-module-mark{background:#0f766e}.supply-module-card.logistics .supply-module-mark{background:#d97706}.supply-module-card.service .supply-module-mark{background:#7c3aed}.supply-module-links{display:grid;gap:7px}.supply-module-links button,.supply-module-links .supply-module-entry{display:grid;grid-template-columns:24px minmax(0,1fr) 12px;gap:7px;align-items:center;width:100%;padding:8px;border:1px solid transparent;border-radius:10px;background:#f8fafc;color:#334155;text-align:left;cursor:pointer}.supply-module-links button:hover,.supply-module-links .supply-module-entry:hover{border-color:#bfdbfe;background:#f0f7ff}.supply-module-links .supply-module-entry{text-decoration:none}.supply-module-links button.on{border-color:#60a5fa;background:linear-gradient(90deg,#eff6ff,#f8fbff);box-shadow:inset 3px 0 #2563eb}.supply-module-links i{display:grid;width:24px;height:24px;place-items:center;border-radius:7px;color:#2563eb;background:#dbeafe;font-style:normal;font-size:13px;font-weight:900}.supply-module-card.factory .supply-module-links i{color:#0f766e;background:#ccfbf1}.supply-module-card.logistics .supply-module-links i{color:#b45309;background:#fef3c7}.supply-module-card.service .supply-module-links i{color:#6d28d9;background:#ede9fe}.supply-module-links span{min-width:0}.supply-module-links span b,.supply-module-links span em{display:block}.supply-module-links span b{overflow:hidden;color:#1e293b;font-size:11px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.supply-module-links span em{margin-top:1px;overflow:hidden;color:#94a3b8;font-size:10px;font-style:normal;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.supply-module-links strong{color:#94a3b8;font-size:18px;font-weight:400}.supply-active-context{display:flex;align-items:center;gap:8px;min-height:35px;margin-bottom:14px;padding:0 13px;border:1px solid #dbeafe;border-radius:10px;background:#f8fbff}.supply-active-context span{color:#64748b;font-size:11px;font-weight:800}.supply-active-context b{color:#1d4ed8;font-size:12px}.supply-active-context em{margin-left:auto;color:#64748b;font-size:11px;font-style:normal;font-weight:600}.haikui-catalog-stage{min-height:calc(100vh - 210px)}@media (max-width: 1360px){.supply-command-hero{grid-template-columns:1.2fr 1fr}.supply-command-actions{grid-column:1 / -1;display:flex;justify-content:flex-start}.supply-module-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.supply-command-hero,.supply-module-nav{grid-template-columns:1fr}.supply-command-status{grid-template-columns:repeat(3,minmax(0,1fr))}.supply-command-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.supply-command-actions .btn{min-width:0;padding:0 6px}.supply-active-context{align-items:flex-start;flex-wrap:wrap;padding:9px 12px}.supply-active-context em{width:100%;margin-left:0}}.supply-alert{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:11px 14px;border:1px solid #fecaca;border-radius:10px;background:#fef2f2;color:#b91c1c;font-size:12px;font-weight:700}.supply-alert button{border:0;background:transparent;color:inherit;font-size:20px;cursor:pointer}.supply-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:14px}.supply-kpi{min-width:0;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 8px 24px #0f172a0a}.supply-kpi span,.supply-kpi em{display:block;color:var(--ink-3);font-size:11px;font-style:normal}.supply-kpi strong{display:block;margin:7px 0 4px;overflow:hidden;color:#0f172a;font-size:23px;text-overflow:ellipsis}.supply-kpi.blue{border-top:3px solid #2563eb}.supply-kpi.cyan{border-top:3px solid #06b6d4}.supply-kpi.amber{border-top:3px solid #f59e0b}.supply-kpi.green{border-top:3px solid #10b981}.supply-kpi.purple{border-top:3px solid #8b5cf6}.supply-kpi.navy{border-top:3px solid #0f3b78}.supply-visual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}.supply-chart-card{min-width:0}.supply-chart{height:230px;padding:8px 16px 12px}.supply-tabs{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:14px}.supply-tabs-6{grid-template-columns:repeat(6,minmax(0,1fr))}.supply-tabs .seg-item{height:auto;min-height:54px;padding:9px 12px}.supply-tabs .seg-item b,.supply-tabs .seg-item span{display:block}.supply-tabs .seg-item span{margin-top:3px;color:var(--ink-4);font-size:10px;font-weight:600}.supply-panel-head{flex-wrap:wrap;gap:12px}.supply-panel-head>div:first-child{min-width:180px}.supply-panel-sub{display:block;margin-top:3px;color:var(--ink-3);font-size:11px;font-weight:500}.supply-panel-head .toolbar-actions{flex:1;justify-content:flex-end;flex-wrap:wrap}.supply-panel-head .smart-search{min-width:280px}.fld-input.compact{width:auto;min-width:128px;height:34px}.supply-table-scroll{width:100%;overflow:auto}.supply-table{width:100%;min-width:860px;border-collapse:collapse;font-size:12px}.supply-table th{position:sticky;top:0;z-index:1;padding:10px 12px;background:#f8fafc;color:#475569;text-align:center;white-space:nowrap}.supply-table td{padding:11px 12px;border-top:1px solid var(--line-soft);color:#1e293b;text-align:center;vertical-align:middle}.supply-table td small{display:block;margin-top:4px;color:var(--ink-4);font-size:10px;font-weight:500}.supply-table td>b,.supply-table td>small{white-space:nowrap;word-break:keep-all}.supply-table .narrative-cell{text-align:left}.supply-table td.num{font-variant-numeric:tabular-nums;font-weight:800}.supply-status-select{height:30px;padding:0 8px;border:1px solid #dbe4f0;border-radius:8px;background:#f8fafc;color:#334155;font-size:11px;font-weight:700}.supply-status-select.blue{color:#1d4ed8;background:#eff6ff}.supply-status-select.green{color:#047857;background:#ecfdf5}.supply-status-select.amber{color:#b45309;background:#fffbeb}.supply-status-select.red{color:#b91c1c;background:#fef2f2}.supply-empty{height:120px;color:var(--ink-4)!important;text-align:center!important}.supply-warehouse-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:14px;align-items:start}.supply-week-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.supply-week-kpis div{padding:14px;border:1px solid var(--line-soft);border-radius:12px;background:#f8fafc;text-align:center}.supply-week-kpis span,.supply-week-kpis b{display:block}.supply-week-kpis span{color:var(--ink-3);font-size:11px}.supply-week-kpis b{margin-top:6px;color:#0f172a;font-size:20px}.supply-week-kpis b.ok{color:#047857}.supply-week-kpis b.pending{color:#b45309}.supply-order-detail{margin-top:14px;border-color:#bfdbfe}.supply-detail-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,.8fr) minmax(300px,1.4fr);gap:20px}.supply-detail-grid h3{margin:0 0 10px;color:#0f172a;font-size:13px}.supply-detail-grid p{margin:7px 0;color:#475569;font-size:12px;line-height:1.5}.supply-detail-grid>.supply-timeline>div{position:relative;display:flex;gap:10px;padding:0 0 14px 17px;border-left:2px solid #dbeafe}.supply-detail-grid>.supply-timeline>div:last-child{border-left-color:transparent}.supply-detail-grid>.supply-timeline i{position:absolute;left:-6px;top:2px;width:10px;height:10px;border:2px solid #fff;border-radius:50%;background:#2563eb;box-shadow:0 0 0 1px #93c5fd}.supply-detail-grid>.supply-timeline span,.supply-detail-grid>.supply-timeline b,.supply-detail-grid>.supply-timeline em{display:block}.supply-detail-grid>.supply-timeline b{color:#0f172a;font-size:12px}.supply-detail-grid>.supply-timeline em{margin-top:3px;color:var(--ink-4);font-size:10px;font-style:normal;line-height:1.45}.supply-form-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--line-soft)}.supply-form-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;color:#0f172a;font-size:13px;font-weight:900}.compact-modal{width:560px}.supply-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.supply-toolbar>.fld-input:first-child{flex:1 1 280px}.supply-toolbar .fld-input{width:auto;min-width:140px}.supply-toolbar.inner{margin:0;padding:12px 16px;border-bottom:1px solid var(--line-soft)}.supply-week-label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--ink-3)}.supply-stock{padding:5px 11px;border-radius:999px;background:#f1f5f9;font-size:12px;color:var(--ink-3);font-weight:700}.supply-stock b{margin-left:5px;color:#0f172a}.supply-split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.85fr);gap:16px;align-items:start}.supply-split>.panel{overflow:hidden}.supply-split table tr.on{background:#f5f9ff}.supply-detail{position:sticky;top:72px;max-height:calc(100vh - 96px);overflow:auto}.supply-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.supply-facts div{display:flex;flex-direction:column;gap:3px}.supply-facts span{font-size:11px;color:var(--ink-3);font-weight:700}.supply-facts b{font-size:13px;color:#0f172a;font-weight:700;word-break:break-all}.supply-detail-actions{justify-content:flex-start;margin-top:16px}.supply-detail-actions .btn.sm{margin-left:0}.supply-sub-title{margin:20px 0 10px;font-size:13px;font-weight:900;color:#0f172a;display:flex;align-items:baseline;gap:8px}.supply-mini-table{width:100%;border-collapse:collapse;font-size:12px}.supply-mini-table th{text-align:left;padding:8px 10px;background:#f8fafc;color:#334155;font-weight:700}.supply-mini-table td{padding:8px 10px;border-top:1px solid var(--line-soft);vertical-align:top}.supply-timeline{list-style:none;margin:0;padding:0 0 0 4px}.supply-timeline li{position:relative;display:flex;gap:10px;padding:0 0 16px 14px;border-left:2px solid var(--line-soft)}.supply-timeline li:last-child{border-left-color:transparent;padding-bottom:0}.supply-timeline .dot{position:absolute;left:-7px;top:3px;width:11px;height:11px;border-radius:50%;background:#cbd5e1;border:2px solid #fff}.supply-timeline .dot.green{background:var(--green)}.supply-timeline .dot.blue{background:var(--blue)}.supply-timeline .dot.amber{background:var(--amber)}.supply-timeline .dot.red{background:var(--red)}.supply-timeline b{display:block;font-size:12px;color:#0f172a}.supply-timeline p{margin:3px 0;font-size:12px;color:var(--ink-3)}.supply-timeline em{font-style:normal;font-size:11px;color:var(--ink-4)}.supply-modal{width:720px}.supply-item-row{display:grid;grid-template-columns:1.4fr 1.1fr .7fr .6fr .8fr auto;gap:8px;margin-bottom:8px}.supply-item-row input{height:34px;padding:0 9px;border:1px solid var(--line);border-radius:8px;font-size:12px;min-width:0}.supply-item-row input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}.supply-item-row .btn.sm{margin-left:0}.fld-input.mini{width:96px;height:30px;font-size:12px}.supply-map-page{display:grid;gap:14px}.supply-map-success{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border:1px solid #a7f3d0;border-radius:10px;background:#ecfdf5;color:#047857;font-size:12px;font-weight:700}.supply-map-success button{border:0;background:transparent;color:inherit;font-size:18px;cursor:pointer}.supply-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid #dbeafe;border-radius:14px;background:linear-gradient(110deg,#eff6ff,#fff)}.supply-map-toolbar h2{margin:0;color:#0f172a;font-size:17px}.supply-map-toolbar p{margin:5px 0 0;color:#64748b;font-size:11px}.supply-map-toolbar .toolbar-actions{flex-wrap:wrap;justify-content:flex-end}.supply-map-toolbar label.btn{cursor:pointer}.supply-map-toolbar .disabled{cursor:wait;opacity:.6}.supply-map-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.supply-map-kpis div{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:center}.supply-map-kpis span,.supply-map-kpis b{display:block}.supply-map-kpis span{color:#64748b;font-size:11px}.supply-map-kpis b{margin-top:5px;color:#0f3b78;font-size:22px}.supply-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:stretch}.supply-map-card,.supply-vehicle-panel{min-width:0;overflow:hidden}.supply-map-legend{display:flex;gap:14px;color:#64748b;font-size:11px}.supply-map-legend span{display:flex;align-items:center;gap:6px}.supply-map-legend i{width:9px;height:9px;border-radius:50%}.supply-map-legend i.school{background:#2563eb}.supply-map-legend i.vehicle{background:#f59e0b}.supply-tencent-map-wrap{position:relative;min-height:570px;background:#eaf3ff}.supply-tencent-map{width:100%;height:570px}.supply-map-empty-tip{position:absolute;left:50%;bottom:20px;transform:translate(-50%);padding:8px 12px;border-radius:999px;background:#0f172acc;color:#fff;font-size:11px}.supply-map-info{min-width:240px;padding:4px 2px;color:#0f172a}.supply-map-info b,.supply-map-info span,.supply-map-info em{display:block}.supply-map-info b{margin-bottom:6px;font-size:13px}.supply-map-info span{color:#475569;font-size:11px;line-height:1.5}.supply-map-info em{margin-top:5px;color:#64748b;font-size:10px;font-style:normal}.supply-vehicle-panel{display:flex;flex-direction:column}.supply-vehicle-list{max-height:570px;overflow:auto}.supply-vehicle-list article{padding:13px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.supply-vehicle-list article+article{margin-top:10px}.supply-vehicle-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.supply-vehicle-head b,.supply-vehicle-head span{display:block}.supply-vehicle-head b{color:#0f172a;font-size:14px}.supply-vehicle-head span{margin-top:2px;color:#64748b;font-size:10px}.supply-vehicle-head em{padding:4px 8px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:10px;font-style:normal;font-weight:800}.supply-vehicle-head em.online{background:#dcfce7;color:#047857}.supply-vehicle-list p{margin:7px 0 0;color:#475569;font-size:11px;line-height:1.4}.supply-vehicle-list small{display:block;margin-top:7px;color:#94a3b8;font-size:10px}.supply-vehicle-order{margin-top:8px;padding:7px 9px;border-radius:8px;background:#eff6ff;color:#1d4ed8;font-size:10px;font-weight:700}.supply-vehicle-list .toolbar-actions{justify-content:flex-start;margin-top:10px}.supply-location-api code{display:inline-block;padding:7px 10px;border-radius:7px;background:#0f172a;color:#bfdbfe;font-size:12px}.supply-location-api pre{margin:12px 0;padding:14px;overflow:auto;border-radius:10px;background:#0b1220;color:#dbeafe;font-size:11px;line-height:1.55}.supply-location-api p{margin:0;color:#64748b;font-size:11px}.supply-device-code{color:#0f766e!important;font-weight:800!important}.supply-device-code b{color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.supply-driver-steps{margin:0 0 12px;padding-left:18px;color:#334155;font-size:12px;font-weight:700;line-height:1.7}.supply-driver-steps b{color:#0f766e}@media (max-width: 1180px){.supply-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.supply-warehouse-layout,.supply-detail-grid,.supply-split{grid-template-columns:1fr}.supply-detail{position:static;max-height:none}.supply-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.supply-map-layout{grid-template-columns:1fr}.supply-map-toolbar{align-items:flex-start;flex-direction:column}.supply-map-toolbar .toolbar-actions{justify-content:flex-start}.supply-map-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.supply-kpis,.supply-visual-grid,.supply-week-kpis{grid-template-columns:1fr}.supply-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.supply-panel-head .smart-search{min-width:100%}.supply-item-row{grid-template-columns:1fr 1fr}.supply-modal,.compact-modal{width:calc(100vw - 24px)}.supply-map-kpis{grid-template-columns:1fr 1fr}.supply-tencent-map-wrap,.supply-tencent-map{min-height:460px;height:460px}}.track-page{min-height:100%;display:flex;flex-direction:column;background:linear-gradient(180deg,#0f172a 0 220px,var(--bg) 220px)}.track-hd{padding:32px 24px 26px;color:#fff;text-align:center}.track-brand{display:inline-flex;align-items:center;gap:10px;font-size:20px;font-weight:900;letter-spacing:1px}.track-brand .dot{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,#2563eb,#7c3aed);display:flex;align-items:center;justify-content:center;font-size:13px}.track-sub{margin-top:10px;font-size:12px;color:#94a3b8}.track-main{flex:1;width:min(880px,calc(100vw - 32px));margin:0 auto 40px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 50px #0f172a1f;padding:22px}.track-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:6px;background:#f1f5f9;border-radius:12px}.track-tabs button{height:38px;border:0;border-radius:9px;background:transparent;color:var(--ink-3);font-size:13px;font-weight:800;cursor:pointer}.track-tabs button.on{background:#fff;color:var(--blue);box-shadow:0 2px 8px #0f172a14}.track-tenant{display:block;margin:18px 0 0;font-size:12px;font-weight:700;color:var(--ink-3)}.track-tenant input{display:block;width:100%;height:38px;margin-top:6px;padding:0 11px;border:1px solid var(--line);border-radius:9px;font-size:13px}.track-err{margin-top:14px;padding:10px 12px;border-radius:9px;background:#fef2f2;color:var(--red);font-size:12px;font-weight:700}.track-form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;margin-top:16px}.track-form label,.track-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:var(--ink-3)}.track-form input,.track-grid input,.track-grid select,.track-grid textarea{height:38px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:13px}.track-grid textarea{height:76px;padding:9px 11px;resize:vertical;font-family:inherit}.track-form input:focus,.track-grid input:focus,.track-grid select:focus,.track-grid textarea:focus,.track-tenant input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}.track-result{margin-top:22px;padding-top:20px;border-top:1px solid var(--line-soft)}.track-result-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.track-result-hd b{font-size:17px}.track-result-hd p{margin:4px 0 0;font-size:12px;color:var(--ink-3)}.track-steps{list-style:none;display:flex;margin:20px 0;padding:0;overflow-x:auto}.track-steps li{flex:1;min-width:82px;text-align:center;position:relative;color:var(--ink-4);font-size:11px;font-weight:700}.track-steps li:before{content:"";position:absolute;top:6px;left:0;right:50%;height:2px;background:var(--line)}.track-steps li:after{content:"";position:absolute;top:6px;left:50%;right:0;height:2px;background:var(--line)}.track-steps li:first-child:before,.track-steps li:last-child:after{display:none}.track-steps li i{position:relative;z-index:1;display:block;width:14px;height:14px;margin:0 auto 8px;border-radius:50%;background:#fff;border:2px solid var(--line)}.track-steps li.done{color:var(--blue)}.track-steps li.done i{background:var(--blue);border-color:var(--blue)}.track-steps li.done:before,.track-steps li.done:after{background:#bfdbfe}.track-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 16px;border-radius:12px;background:#f8fafc}.track-facts div{display:flex;flex-direction:column;gap:3px}.track-facts span{font-size:11px;color:var(--ink-3);font-weight:700}.track-facts b{font-size:13px;color:#0f172a}.track-live-location{margin:16px 0;padding:14px 16px;border:1px solid #99f6e4;border-radius:12px;background:#f0fdfa}.track-live-location h4{margin:0 0 8px}.track-live-location p{margin:0 0 4px;font-size:13px;color:#0f172a;font-weight:700}.track-live-location em{display:block;margin:6px 0 10px;font-style:normal;font-size:11px;color:#64748b;font-weight:700}.track-result h4,.track-order-form h4{margin:22px 0 10px;font-size:13px;font-weight:900}.track-table{width:100%;border-collapse:collapse;font-size:12px}.track-table th{text-align:left;padding:9px 10px;background:#f8fafc;color:#334155;font-weight:700}.track-table td{padding:9px 10px;border-top:1px solid var(--line-soft)}.track-timeline{list-style:none;margin:0;padding:0}.track-timeline li{padding:10px 0;border-top:1px solid var(--line-soft)}.track-timeline b{font-size:12px}.track-timeline p{margin:3px 0;font-size:12px;color:var(--ink-3)}.track-timeline em{font-style:normal;font-size:11px;color:var(--ink-4)}.track-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.track-grid .wide{grid-column:span 2}.track-item-row{display:grid;grid-template-columns:1.4fr 1.1fr .7fr .6fr auto;gap:8px;margin-bottom:8px}.track-item-row input{height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;font-size:12px;min-width:0}.track-item-row .btn.sm{margin-left:0}.track-order-actions{display:flex;justify-content:space-between;gap:10px;margin-top:18px}.track-done{margin-top:26px;text-align:center}.track-done h3{margin:0 0 8px;font-size:18px;color:var(--green)}.track-done p{margin:0 0 18px;font-size:12px;color:var(--ink-3)}.track-code{display:flex;align-items:center;justify-content:space-between;max-width:380px;margin:0 auto 10px;padding:12px 16px;border-radius:10px;background:#f8fafc}.track-code span{font-size:12px;color:var(--ink-3);font-weight:700}.track-code b{font-size:15px;letter-spacing:1px}.track-done-actions{display:flex;justify-content:center;gap:10px;margin-top:20px}.track-foot{padding:0 0 28px;text-align:center;font-size:11px;color:var(--ink-4);letter-spacing:1px}@media (max-width: 760px){.track-form,.track-grid,.track-facts{grid-template-columns:1fr}.track-grid .wide{grid-column:span 1}.track-item-row{grid-template-columns:1fr 1fr}}.school-multi-select{position:relative;min-width:320px;display:flex;flex-direction:column;gap:8px}.school-multi-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:38px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;cursor:pointer}.school-multi-trigger.open,.school-multi-trigger:hover{border-color:#93c5fd;box-shadow:0 0 0 3px #2563eb14}.school-multi-summary{display:flex;flex-direction:column;gap:2px;min-width:0}.school-multi-summary b{color:#0f172a;font-size:13px;font-weight:800}.school-multi-summary em{color:#64748b;font-size:11px;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.school-multi-caret{color:#94a3b8;font-size:12px}.school-multi-chips{display:flex;flex-wrap:wrap;gap:6px}.school-multi-chip,.school-multi-clear{height:26px;padding:0 10px;border:1px solid #dbeafe;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:11px;font-weight:700;cursor:pointer}.school-multi-clear{border-color:#e2e8f0;background:#f8fafc;color:#64748b}.school-multi-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:40;display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 18px 40px #0f172a1f}.school-multi-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#94a3b8;font-size:11px}.school-multi-actions button{border:0;background:transparent;color:#1d4ed8;font-size:11px;font-weight:800;cursor:pointer}.school-multi-list{max-height:280px;overflow:auto;display:grid;gap:4px}.school-multi-option{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer}.school-multi-option:hover,.school-multi-option.on{background:#f8fbff}.school-multi-option b{display:block;color:#0f172a;font-size:12px}.school-multi-option em{display:block;margin-top:2px;color:#64748b;font-size:11px;font-style:normal}.school-multi-empty{padding:18px 8px;color:#94a3b8;text-align:center;font-size:12px}.equipment-page{max-width:none}.equipment-page.embedded{padding:0;height:100%}.equipment-embed-panel{overflow:hidden}.equipment-embed-hd{margin-bottom:0}.equipment-toolbar-actions{margin-left:auto}.equipment-home-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:12px;align-items:stretch;min-height:calc(100vh - 260px)}.equipment-home-layout.browse{grid-template-columns:1fr;min-height:0}.equipment-home-layout.browse .equipment-mall-grid{grid-template-columns:repeat(auto-fill,minmax(240px,410px));align-content:start;align-items:start;max-height:none;overflow:visible;flex:none}.equipment-home-layout.browse.detail-open .equipment-detail{width:100%}.equipment-mall{min-width:0;display:flex;flex-direction:column}.equipment-mall-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:10px;padding:10px 12px 14px;overflow:auto;flex:1;max-height:calc(100vh - 300px)}.equipment-mall-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden;cursor:pointer;text-align:left}.equipment-home-layout.browse .equipment-mall-card{align-self:start;height:fit-content}.equipment-mall-card.on,.equipment-mall-card.picked{border-color:#93c5fd;box-shadow:0 8px 18px #2563eb14}.equipment-pick{position:absolute;left:8px;top:8px;z-index:2;display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:999px;background:#0f172ab8;color:#fff;font-size:10px;font-weight:800;cursor:pointer}.equipment-pick input{margin:0}.equipment-mall-cover{position:relative;height:120px;background:#e2e8f0}.equipment-mall-cover img{width:100%;height:100%;object-fit:cover;display:block}.equipment-mall-body{display:grid;gap:4px;padding:8px 10px 10px}.equipment-mall-body b{font-size:13px;line-height:1.3;color:#0f172a}.equipment-mall-body em{font-style:normal;font-size:11px;font-weight:700;color:#64748b}.equipment-detail-compact{display:grid;gap:10px;padding:0 14px 10px}.equipment-detail-cover{border-radius:12px;overflow:hidden;background:#e2e8f0;min-height:140px}.equipment-detail-cover img{width:100%;height:160px;object-fit:cover;display:block}.equipment-batch-report-modal{width:min(920px,96vw);max-height:88vh}.equipment-batch-report-list{display:grid;gap:12px;max-height:58vh;overflow:auto}.equipment-batch-report-card{border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px;background:#f8fafc}.equipment-batch-report-card header{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.equipment-batch-report-card header b{display:block;font-size:14px}.equipment-batch-report-card header span{display:block;margin-top:3px;color:#64748b;font-size:11px;font-weight:700}.equipment-batch-report-card header strong{color:#dc2626;font-size:16px;white-space:nowrap}.equipment-batch-report-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.equipment-batch-report-cols h4{margin:0 0 6px;font-size:12px;color:#0f766e}.equipment-batch-report-cols ul{margin:0;padding-left:16px;color:#334155;font-size:12px;line-height:1.55}.equipment-batch-report-cols em{font-style:normal;margin-right:6px;font-weight:900}.equipment-batch-report-cols em.ok{color:#047857}.equipment-batch-report-cols em.warn{color:#b45309}.equipment-batch-report-cols em.fail{color:#b91c1c}@media (max-width: 1100px){.equipment-home-layout{grid-template-columns:1fr}.equipment-mall-grid{max-height:none}.equipment-batch-report-cols{grid-template-columns:1fr}}.equipment-order-hint{margin-bottom:14px;padding:10px 12px;border:1px solid #dbeafe;border-radius:10px;background:#eff6ff;color:#1e3a8a;font-size:12px;line-height:1.5}.equipment-order-hint b{color:#1d4ed8}.equipment-offline-tip{margin-bottom:12px;padding:10px 12px;border:1px solid #fde68a;border-radius:10px;background:#fffbeb;color:#92400e;font-size:12px;font-weight:700}.equipment-toolbar{display:grid;gap:10px;margin-bottom:14px}.equipment-toolbar>.fld-input{width:100%}.equipment-filter-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.equipment-filter-row .fld-input{width:100%;min-width:0}.equipment-toolbar-footer{display:flex;align-items:center;gap:10px}.equipment-detail-back{display:block;margin:0 0 6px;padding:0;border:0;background:transparent;color:#2563eb;font-size:12px;font-weight:800;cursor:pointer}@media (max-width: 720px){.equipment-filter-row{grid-template-columns:1fr}.equipment-toolbar-footer{align-items:flex-start;flex-direction:column}.equipment-toolbar-actions{margin-left:0}}.equipment-layout{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.45fr);gap:12px;align-items:start}.equipment-cards{display:grid;gap:6px;max-height:calc(100vh - 220px);overflow:auto;padding:8px 10px 12px}.equipment-card{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;width:100%;padding:6px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;cursor:pointer}.equipment-card.on,.equipment-card:hover{border-color:#93c5fd;box-shadow:0 6px 14px #2563eb12}.equipment-thumb{position:relative;height:64px;border-radius:8px;overflow:hidden;background:#e2e8f0}.equipment-thumb img{width:100%;height:100%;object-fit:cover;display:block}.equipment-thumb-ph{display:grid;place-items:center;height:100%;color:#64748b;font-size:10px;font-weight:800;background:linear-gradient(135deg,#dbeafe,#f8fafc)}.equipment-badge{position:absolute;left:4px;top:4px;padding:1px 5px;border-radius:999px;color:#fff;font-size:9px;font-weight:800}.equipment-badge.green{background:#059669}.equipment-badge.amber{background:#d97706}.equipment-badge.blue{background:#2563eb}.equipment-badge.gray{background:#64748b}.equipment-card-body{min-width:0;display:grid;gap:2px}.equipment-card-tags{display:flex;flex-wrap:wrap;gap:3px}.equipment-card-tags span{padding:0 5px;border-radius:4px;background:#eff6ff;color:#1d4ed8;font-size:9px;font-weight:800;line-height:16px}.equipment-card-body b{color:#0f172a;font-size:12px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.equipment-card-body em{color:#64748b;font-size:10px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.equipment-card-meta{display:flex;justify-content:space-between;align-items:baseline;gap:6px}.equipment-card-meta span{color:#64748b;font-size:10px;font-weight:700}.equipment-card-meta strong{color:#dc2626;font-size:13px}.equipment-cost-tags{display:flex;flex-wrap:wrap;gap:4px}.equipment-cost-tags i{font-style:normal;padding:0 5px;border:1px solid #fecaca;border-radius:999px;color:#b91c1c;font-size:9px;font-weight:800;background:#fff7f7;line-height:16px}.equipment-card-order{display:inline-flex;align-items:center;justify-content:center;width:auto;height:22px;padding:0 10px;border:0;border-radius:6px;background:#0f172a;color:#fff;font-size:10px;font-weight:800;cursor:pointer;flex:0 0 auto;white-space:nowrap}.equipment-tier-badge{position:absolute;right:4px;top:4px;padding:1px 5px;border-radius:999px;font-size:9px;font-weight:800}.equipment-tier-badge.tier-a,.equipment-card-tags .tier-a,.equipment-tags .tier-a,.equipment-grade.tier-a{background:#ecfdf5;color:#047857}.equipment-tier-badge.tier-b,.equipment-card-tags .tier-b,.equipment-tags .tier-b,.equipment-grade.tier-b{background:#fff7ed;color:#c2410c}.equipment-qty-row{display:inline-flex;align-items:center;gap:3px;margin-top:3px;width:auto;max-width:100%;justify-self:start}.equipment-qty-row>button:not(.equipment-card-order){width:22px;height:22px;border:1px solid #dbe4f0;border-radius:6px;background:#fff;color:#0f172a;font-size:12px;font-weight:800;cursor:pointer;flex:0 0 auto}.equipment-qty-row input{width:36px;height:22px;border:1px solid #dbe4f0;border-radius:6px;text-align:center;font-size:11px;font-weight:800;flex:0 0 auto}.equipment-batch-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px;padding:12px 14px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff}.equipment-batch-bar b{display:block;color:#0f172a;font-size:13px}.equipment-batch-bar span{display:block;margin-top:3px;color:#475569;font-size:11px;max-width:640px}.equipment-batch-bar em{font-style:normal;color:#dc2626;font-size:14px;font-weight:900}.equipment-factory-price{display:flex;gap:8px;margin-top:10px}.equipment-factory-price input{flex:1;height:34px;padding:0 10px;border:1px solid #dbe4f0;border-radius:8px;font-weight:700}.equipment-card{cursor:pointer}.equipment-empty{padding:48px 16px;color:#94a3b8;text-align:center;font-size:13px}.equipment-detail-hd{align-items:flex-start}.equipment-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:16px;padding:0 16px 16px}.equipment-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:220px}.equipment-gallery img{width:100%;height:160px;object-fit:cover;border-radius:12px;background:#e2e8f0}.equipment-gallery-empty{display:grid;place-items:center;grid-column:1 / -1;border:1px dashed #cbd5e1;border-radius:12px;color:#94a3b8;font-size:12px;background:#f8fafc}.equipment-hero-side{display:grid;gap:12px}.equipment-grade{display:grid;place-items:center;padding:18px;border-radius:14px;background:linear-gradient(135deg,#eff6ff,#fff);border:1px solid #dbeafe}.equipment-grade strong{color:#1d4ed8;font-size:28px}.equipment-grade span{margin-top:4px;color:#64748b;font-size:11px;font-weight:700}.equipment-price-box{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.equipment-price-box>div:first-child{display:flex;justify-content:space-between;align-items:baseline}.equipment-price-box span{color:#64748b;font-size:12px;font-weight:700}.equipment-price-box b{color:#dc2626;font-size:24px}.equipment-cost-row{display:flex;justify-content:space-between;gap:8px;margin-top:10px}.equipment-cost-row b{color:#b91c1c;font-size:13px}.equipment-cost-total{margin-top:10px;padding-top:10px;border-top:1px dashed #e2e8f0;color:#475569;font-size:12px}.equipment-cost-total em{color:#dc2626;font-style:normal;font-weight:900}.equipment-guarantee{padding:14px;border-radius:14px;background:#eff6ff;border:1px solid #bfdbfe}.equipment-guarantee-hd{display:flex;justify-content:space-between;gap:8px;align-items:center}.equipment-guarantee-hd b{color:#0f172a;font-size:13px}.equipment-guarantee-hd em{color:#dc2626;font-style:normal;font-size:12px;font-weight:900}.equipment-guarantee p{margin:8px 0;color:#334155;font-size:12px;font-weight:700}.equipment-guarantee ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}.equipment-guarantee li{color:#64748b;font-size:12px}.equipment-guarantee li.done{color:#047857;font-weight:700}.equipment-tags{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 14px}.equipment-tags span,.equipment-tags .pill{padding:4px 9px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:11px;font-weight:800}.equipment-tags .pill.green{background:#ecfdf5;color:#047857}.equipment-tags .pill.amber{background:#fffbeb;color:#b45309}.equipment-tags .pill.blue{background:#eff6ff;color:#1d4ed8}.equipment-spec-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 16px 16px}.equipment-spec-grid div{padding:12px;border:1px solid var(--line-soft);border-radius:12px;background:#f8fafc;text-align:center}.equipment-spec-grid b{display:block;color:#0f172a;font-size:14px}.equipment-spec-grid span{display:block;margin-top:4px;color:#64748b;font-size:11px}.equipment-report{margin:0 16px 18px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.equipment-report-hd{display:flex;justify-content:space-between;gap:8px;align-items:baseline;margin-bottom:10px}.equipment-report-hd h3{margin:0;font-size:14px}.equipment-report-hd span{color:#b91c1c;font-size:12px;font-weight:800}.equipment-report-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line-soft)}.equipment-report-row b{display:block;color:#0f172a;font-size:13px}.equipment-report-row em{display:block;margin-top:3px;color:#64748b;font-size:11px;font-style:normal}.equipment-inspect{font-size:12px;font-weight:800}.equipment-inspect.ok{color:#047857}.equipment-inspect.warn{color:#b45309}.equipment-inspect.fail{color:#b91c1c}.equipment-remark{margin:10px 0 0;color:#475569;font-size:12px;line-height:1.5}.equipment-modal{width:min(860px,96vw);max-height:90vh;overflow:auto}.equipment-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.equipment-form label{display:flex;flex-direction:column;gap:6px}.equipment-form label span{color:#64748b;font-size:11px;font-weight:800}.equipment-form input,.equipment-form select{height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px}.equipment-form .wide{grid-column:1 / -1}.equipment-form-block{padding:12px;border:1px solid var(--line-soft);border-radius:12px;background:#f8fafc}.equipment-form-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.equipment-form-images{display:flex;flex-wrap:wrap;gap:10px}.equipment-form-images em{color:#94a3b8;font-size:12px;font-style:normal}.equipment-form-image{width:110px;display:grid;gap:4px}.equipment-form-image img{width:110px;height:82px;object-fit:cover;border-radius:8px;background:#e2e8f0}.equipment-form-image button{height:26px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:11px;cursor:pointer}.equipment-form-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.equipment-form-tags button{height:28px;padding:0 10px;border:1px solid #dbeafe;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:11px;cursor:pointer}.equipment-form-tags input{flex:1;min-width:120px;height:32px;padding:0 10px;border:1px solid var(--line);border-radius:8px}.equipment-form-line{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-bottom:8px;align-items:center}.equipment-form-line:has(select){grid-template-columns:1.1fr .8fr 1.2fr auto}.equipment-check{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#475569;white-space:nowrap}@media (max-width: 1100px){.equipment-layout,.equipment-hero,.equipment-spec-grid,.equipment-form{grid-template-columns:1fr}}.equipment-home-layout.browse.detail-open .equipment-detail{max-width:1120px;margin:0 auto}.equipment-detail{min-width:0;align-self:start}.equipment-detail .equipment-detail-compact{grid-template-columns:minmax(0,380px) minmax(0,1fr);align-items:start;gap:28px;padding:20px}.product-media{min-width:0}.product-media-stage{width:100%;aspect-ratio:1;background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;display:grid;place-items:center}.product-media-stage img,.product-media-stage video{display:block;width:100%;height:100%;min-height:0;object-fit:contain}.product-media-stage video{background:#111827}.product-media-empty{display:grid;gap:12px;justify-items:center;color:#94a3b8;font-size:13px;padding:20px}.product-media-caption{display:flex;justify-content:space-between;color:#64748b;font-size:12px;margin:10px 0}.product-media-thumbs{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px}.product-media-thumbs button{flex:0 0 58px;height:58px;padding:3px;border:1px solid #dbe2ea;border-radius:5px;background:#fff;cursor:pointer}.product-media-thumbs button.on{border:2px solid #dc2626}.product-media-thumbs button:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.product-media-thumbs img{width:100%;height:100%;object-fit:contain}.product-media-thumbs span{display:grid;color:#334155;font-size:20px}.product-media-thumbs small{font-size:10px}.equipment-product-info{min-width:0;display:grid;gap:12px}.equipment-product-info h2{margin:0;font-size:20px;line-height:1.5;overflow-wrap:anywhere}.equipment-product-info p{margin:0}.equipment-product-info .equipment-grade{display:flex;justify-content:flex-start;gap:12px;padding:8px 12px;border-radius:4px}.equipment-product-info .equipment-grade strong{font-size:15px}.equipment-product-info .equipment-grade span{margin:0;font-size:12px}.equipment-product-info .equipment-price-box{background:#fff5f5;border:0;border-radius:4px}.equipment-product-info .equipment-price-box>div:first-child{justify-content:flex-start;gap:20px}.equipment-product-info .equipment-price-box b{font-size:28px}.equipment-product-info .equipment-cost-row b{font-size:13px}.equipment-product-specs{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;font-size:12px}.equipment-product-specs>div{display:flex;gap:10px;min-width:0}.equipment-product-specs dt{color:#64748b;flex-shrink:0}.equipment-product-specs dd{margin:0;overflow-wrap:anywhere}.equipment-logistics-info{display:grid;gap:10px;padding:14px;border:1px solid #dbeafe;border-radius:8px;background:#f8fbff}.equipment-logistics-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.equipment-logistics-title b{color:#0f172a;font-size:14px}.equipment-logistics-title span{color:#2563eb;font-size:11px}.equipment-logistics-info dl{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin:0}.equipment-logistics-info dl>div{display:flex;min-width:0;gap:8px;font-size:12px;line-height:1.5}.equipment-logistics-info dt{flex:0 0 auto;color:#64748b}.equipment-logistics-info dd{min-width:0;margin:0;color:#334155;font-weight:600;overflow-wrap:anywhere}.equipment-logistics-info p{margin:0;padding-top:8px;border-top:1px solid #dbeafe;color:#64748b;font-size:11px;line-height:1.6}.equipment-product-tags{display:flex;flex-wrap:wrap;gap:6px}.equipment-product-tags span{padding:4px 8px;color:#0f766e;background:#f0fdfa;font-size:12px}.equipment-purchase{display:flex;align-items:center;flex-wrap:wrap;gap:14px;border-top:1px solid #e5e7eb;padding-top:16px}.equipment-purchase label{display:flex;align-items:center;gap:10px;font-size:12px;color:#64748b}.equipment-purchase input{width:72px;height:38px;padding:6px;border:1px solid #dbe2ea;border-radius:4px}.equipment-purchase .btn-primary{background:#dc2626;border-color:#dc2626;min-width:140px}.equipment-detail>.equipment-guarantee,.equipment-detail>.equipment-report{margin:0 20px 20px}.equipment-form-image video{width:110px;height:82px;object-fit:contain;background:#111827;border-radius:8px}.equipment-form-image img{object-fit:contain}.equipment-home-layout.management .equipment-detail-compact{grid-template-columns:1fr;gap:16px}.equipment-home-layout.management .product-media{width:100%;max-width:340px;margin:0 auto}@media (max-width: 760px){.equipment-detail .equipment-detail-compact{grid-template-columns:1fr;padding:14px;gap:18px}.product-media{width:100%;max-width:380px;margin:0 auto}.equipment-product-info h2{font-size:18px}.equipment-product-specs,.equipment-logistics-info dl{grid-template-columns:1fr}.equipment-logistics-title{align-items:flex-start;flex-direction:column;gap:4px}}.supply-chain-page .supply-command-hero{padding:18px 20px;border-radius:12px;gap:16px}.supply-chain-page .supply-command-title h1{font-size:28px;margin:6px 0}.supply-chain-page .supply-command-title p{font-size:12px;line-height:1.6}.supply-chain-page .supply-command-status>div{padding:12px;min-height:0}.supply-chain-page .supply-module-nav{grid-template-columns:1fr;gap:8px}.supply-chain-page .supply-module-card{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:16px;padding:12px 16px;border-radius:10px;box-shadow:none}.supply-chain-page .supply-module-card>header{margin:0}.supply-chain-page .supply-module-card header small{white-space:normal;line-height:1.5}.supply-chain-page .supply-module-links{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.supply-chain-page .supply-module-links button,.supply-chain-page .supply-module-links .supply-module-entry{box-sizing:border-box;min-height:46px}@media (max-width:850px){.supply-chain-page .supply-module-card{grid-template-columns:1fr;gap:8px}.supply-chain-page .supply-module-links{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:500px){.supply-chain-page .supply-module-links{grid-template-columns:1fr}}
