:root{color-scheme:dark;font-family:Microsoft YaHei,Segoe UI,sans-serif;--bg-deep: rgba(2, 22, 14, .78);--bg-panel: rgba(9, 43, 29, .76);--bg-panel-strong: rgba(8, 39, 26, .9);--line: rgba(115, 238, 156, .26);--line-strong: rgba(115, 238, 156, .56);--text: #f4fff7;--muted: rgba(224, 247, 232, .66);--green: #65f59a;--green-soft: rgba(101, 245, 154, .12);--cyan: #4bdce6;--blue: #69aefc;--yellow: #f5ce69;--red: #ff6b78;--gray: #91a89a;--shadow: 0 14px 38px rgba(0, 16, 10, .2)}*{box-sizing:border-box;letter-spacing:0}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden;background:transparent}body{color:var(--text)}button,input,select,textarea{color:inherit;font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:1px solid var(--cyan);outline-offset:1px}.app-shell{position:relative;display:grid;grid-template-rows:70px 44px minmax(0,1fr);width:100vw;height:100vh;min-width:820px;min-height:520px;padding:9px;overflow:hidden;background:linear-gradient(90deg,rgba(101,245,154,.035) 1px,transparent 1px),linear-gradient(rgba(101,245,154,.035) 1px,transparent 1px);background-size:36px 36px}.app-shell:before{position:fixed;inset:0;z-index:-1;background:radial-gradient(circle at 50% 0,rgba(66,178,112,.08),transparent 42%);content:"";pointer-events:none}.top-loading{position:fixed;top:0;right:0;left:0;z-index:100;height:2px;overflow:hidden}.top-loading i{display:block;width:32%;height:100%;background:linear-gradient(90deg,transparent,var(--cyan),var(--green),transparent);animation:topLoading 1.1s ease-in-out infinite}.app-header{position:relative;display:grid;grid-template-columns:minmax(340px,1fr) auto auto;align-items:center;gap:14px;min-width:0;padding:9px 14px;border:1px solid var(--line-strong);background:linear-gradient(110deg,rgba(101,245,154,.13),transparent 43%),#052317d6;box-shadow:inset 0 0 26px #65f59a0d,var(--shadow);clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,16px 100%,0 calc(100% - 16px))}.app-header:after{position:absolute;right:12px;bottom:0;width:30%;height:2px;background:linear-gradient(90deg,transparent,var(--cyan),var(--green));content:"";animation:headerPulse 2.8s ease-in-out infinite}.brand-block{display:flex;align-items:center;min-width:0}.brand-symbol{display:grid;flex:0 0 auto;place-items:center;width:36px;height:36px;margin-right:9px;border:1px solid rgba(101,245,154,.55);background:#65f59a1c;color:var(--green);clip-path:polygon(0 0,78% 0,100% 22%,100% 100%,22% 100%,0 78%)}.brand-block>div{min-width:0}.brand-block p,.view-heading p,.panel-title p{margin:0;color:var(--green);font-size:11px;font-weight:800}.brand-block h1{margin:2px 0 0;font-size:25px;line-height:1;white-space:nowrap;text-shadow:0 0 18px rgba(101,245,154,.34)}.brand-block em{max-width:180px;margin-left:11px;overflow:hidden;color:var(--muted);font-size:13px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.header-status{display:grid;grid-template-columns:auto auto;gap:3px 8px;align-items:center}.connection-pill{display:inline-flex;align-items:center;gap:5px;min-height:22px;padding:0 8px;border:1px solid rgba(101,245,154,.34);border-radius:12px;color:var(--green);font-size:11px;white-space:nowrap}.connection-pill svg{filter:drop-shadow(0 0 4px currentColor);animation:signalPulse 1.7s ease-in-out infinite}.connection-pill.is-warning{border-color:#f5ce6973;color:var(--yellow)}.connection-pill.is-sample{border-color:#69aefc73;color:var(--blue)}.system-meta{grid-column:1 / -1;color:var(--muted);font-size:10px}.header-error{color:var(--red)}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:0}.header-actions button,.date-picker{min-height:31px;border:1px solid rgba(101,245,154,.32);border-radius:4px;background:#031f14a3}.header-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px}.header-actions button:hover:not(:disabled){border-color:var(--green);background:#65f59a1c}.header-actions .icon-button{width:31px;padding:0;color:var(--green)}.date-picker{display:flex;align-items:center;gap:6px;padding:0 8px;color:var(--green)}.date-picker input{width:112px;border:0;outline:0;background:transparent;color-scheme:dark;font-size:12px}.refresh-button{color:var(--green);font-size:12px}.quiet-button{font-size:12px}.is-spinning{animation:spin .8s linear infinite}.app-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding-top:5px}.app-tabs button{position:relative;display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;border:1px solid rgba(101,245,154,.2);border-radius:3px 3px 0 0;background:#052317a3;color:var(--muted)}.app-tabs button:after{position:absolute;right:50%;bottom:-1px;left:50%;height:2px;background:var(--green);content:"";transition:right .18s ease,left .18s ease}.app-tabs button:hover,.app-tabs button.is-active{border-color:#65f59a8c;background:linear-gradient(180deg,#65f59a21,#052317c7);color:var(--text)}.app-tabs button.is-active:after{right:6%;left:6%}.app-tabs svg,.tab-index{color:var(--green)}.tab-index{font-size:10px}.app-tabs b{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.app-tabs em{min-width:18px;padding:1px 5px;border:1px solid rgba(75,220,230,.34);border-radius:9px;color:var(--cyan);font-size:10px;font-style:normal}.app-content{min-width:0;min-height:0;overflow:hidden;border:1px solid rgba(101,245,154,.28);border-top:0;background:#02160e57}.view{width:100%;height:100%;padding:8px;overflow:auto;animation:viewIn .24s ease both}.panel{position:relative;min-width:0;min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:5px;background:linear-gradient(135deg,rgba(101,245,154,.055),transparent 55%),var(--bg-panel);box-shadow:inset 0 0 22px #65f59a09}.panel:after{position:absolute;top:-30%;bottom:-30%;left:-30%;width:22%;background:linear-gradient(90deg,transparent,rgba(203,255,220,.045),transparent);content:"";pointer-events:none;transform:skew(-15deg);animation:panelScan 8s linear infinite}.panel>*{position:relative;z-index:1}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:46px;padding:8px 10px;border-bottom:1px solid rgba(101,245,154,.14)}.panel-title{display:flex;align-items:center;min-width:0;gap:7px}.panel-icon{display:grid;flex:0 0 auto;place-items:center;width:27px;height:27px;border:1px solid rgba(101,245,154,.32);background:#65f59a14;color:var(--green)}.panel-title>div{min-width:0}.panel-title h2{margin:2px 0 0;overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.panel-meta{color:var(--green);font-size:11px;white-space:nowrap}.panel-body{min-height:0;padding:8px}.panel-meta-group{display:flex;align-items:center;gap:6px}.panel-meta-group b{color:var(--green);font-size:11px}.resource-state{display:inline-flex;align-items:center;gap:3px;font-size:10px}.resource-state.is-live{color:var(--green)}.resource-state.is-stale{color:var(--yellow)}.resource-state.is-error{color:var(--red)}.empty-state,.detail-placeholder{display:grid;place-content:center;justify-items:center;min-height:100px;height:100%;color:var(--muted);text-align:center}.empty-state svg,.detail-placeholder svg{margin-bottom:6px;color:#65f59a75}.empty-state strong,.detail-placeholder strong{color:#f4fff7c7;font-size:13px}.empty-state span,.detail-placeholder span{margin-top:4px;font-size:11px}.status-badge{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:0 8px;border:1px solid rgba(145,168,154,.4);border-radius:3px;color:var(--gray);font-size:10px;white-space:nowrap}.status-badge.status-active,.status-badge.status-resolved{border-color:#69aefc7a;color:var(--blue)}.status-badge.status-delayed,.status-badge.status-open{border-color:#ff6b7880;color:var(--red)}.status-badge.status-completed,.status-badge.status-closed{border-color:#65f59a75;color:var(--green)}.status-badge.status-rectifying{border-color:#f5ce6980;color:var(--yellow)}.metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-bottom:6px}.metric-card{position:relative;min-width:0;min-height:76px;padding:10px 12px;overflow:hidden;border:1px solid var(--line);border-radius:4px;background:linear-gradient(110deg,#65f59a1a,#062518b3)}.metric-card:after{position:absolute;right:-18px;bottom:-25px;width:60px;height:60px;border:9px solid rgba(101,245,154,.045);border-radius:50%;content:""}.metric-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px}.metric-top svg{color:var(--green)}.metric-card strong{display:block;margin-top:4px;overflow:hidden;font-size:27px;line-height:1;text-overflow:ellipsis;white-space:nowrap}.metric-card strong small{margin-left:3px;font-size:12px;font-weight:500}.metric-card em{display:block;margin-top:4px;overflow:hidden;color:var(--green);font-size:10px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.metric-card.tone-cyan .metric-top svg,.metric-card.tone-cyan em{color:var(--cyan)}.metric-card.tone-blue .metric-top svg,.metric-card.tone-blue em{color:var(--blue)}.metric-card.tone-yellow .metric-top svg,.metric-card.tone-yellow em,.metric-card.tone-yellow strong{color:var(--yellow)}.metric-card.tone-red .metric-top svg,.metric-card.tone-red em,.metric-card.tone-red strong{color:var(--red)}.overview-grid{display:grid;grid-template-columns:1.2fr .9fr .78fr .78fr;grid-auto-rows:minmax(205px,auto);gap:6px}.project-progress{display:grid;grid-template-columns:105px minmax(0,1fr);gap:12px;align-items:center}.progress-orbit{display:grid;place-items:center;width:96px;height:96px;border-radius:50%;background:conic-gradient(var(--green) var(--progress),rgba(101,245,154,.1) 0);box-shadow:0 0 18px #65f59a1f}.progress-orbit>div{display:grid;place-content:center;width:72px;height:72px;border:1px solid rgba(101,245,154,.22);border-radius:50%;background:#031c12f5;text-align:center}.progress-orbit strong{font-size:22px}.progress-orbit span{margin-top:3px;color:var(--muted);font-size:10px}.project-facts{display:grid;gap:6px}.project-facts div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:5px;border-bottom:1px dashed rgba(101,245,154,.16)}.project-facts span,.timeline-labels{color:var(--muted);font-size:10px}.project-facts b{font-size:12px}.timeline-track{height:6px;margin-top:8px;overflow:hidden;border:1px solid rgba(101,245,154,.2);background:#65f59a0f}.timeline-track i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--green));box-shadow:0 0 8px #65f59a73;transition:width .45s ease}.timeline-labels{display:flex;justify-content:space-between;margin-top:4px}.weather-hero{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:77px}.weather-hero>svg{color:var(--cyan);filter:drop-shadow(0 0 8px rgba(75,220,230,.36));animation:weatherFloat 2.8s ease-in-out infinite}.weather-hero strong,.weather-hero span,.weather-hero b,.weather-hero small{display:block}.weather-hero strong{font-size:20px}.weather-hero span{margin-top:4px;color:var(--muted);font-size:11px}.weather-hero>b{color:var(--cyan);font-size:20px;text-align:right}.weather-hero small{margin-top:3px;color:var(--muted);font-size:10px;font-weight:400}.weather-advice{padding:7px 8px;border-left:2px solid var(--green);background:#65f59a0f;color:#f4fff7d1;font-size:11px}.weather-advice.is-warning{border-left-color:var(--yellow);background:#f5ce6912;color:var(--yellow)}.schedule-chart-panel .panel-body,.hazard-chart-panel .panel-body{padding:7px 10px 9px}.donut-summary{display:grid;grid-template-columns:138px minmax(0,1fr);gap:10px;align-items:center;min-height:142px}.donut-visual{position:relative;width:138px;height:138px}.donut-chart{width:100%;height:100%}.donut-center{position:absolute;inset:0;display:grid;place-content:center;pointer-events:none;text-align:center}.donut-center strong{font-size:26px;line-height:1;text-shadow:0 0 14px rgba(101,245,154,.28)}.donut-center span{margin-top:5px;color:var(--muted);font-size:11px}.donut-legend{display:grid;min-width:0}.donut-legend button{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:7px;align-items:center;min-width:0;min-height:31px;padding:0 3px;border:0;border-bottom:1px solid rgba(101,245,154,.11);background:transparent;color:var(--muted);text-align:left}.donut-legend button:hover{background:#65f59a0f;color:var(--text)}.donut-legend i{width:8px;height:8px;border-radius:2px;box-shadow:0 0 7px currentColor}.donut-legend span{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.donut-legend b{color:var(--text);font-size:14px}.active-panel,.delayed-panel{grid-column:span 2}.text-action{border:0;background:transparent;color:var(--green);font-size:11px}.text-action.is-danger{color:var(--red)}.task-list{display:grid;align-content:start;gap:4px;max-height:150px;overflow:auto}.task-item{display:grid;grid-template-columns:4px minmax(0,1fr) auto;gap:5px 8px;align-items:center;min-width:0;min-height:46px;padding:6px 8px;border:1px solid rgba(101,245,154,.13);border-radius:3px;background:#e2ffeb06;text-align:left;transition:border-color .16s ease,background .16s ease,transform .16s ease}.task-item:hover{border-color:#65f59a85;background:#65f59a0f;transform:translate(2px)}.task-indicator{align-self:stretch;width:3px;border-radius:2px;background:var(--gray)}.task-indicator.is-active{background:var(--blue);box-shadow:0 0 7px #69aefc7a}.task-indicator.is-delayed{background:var(--red);box-shadow:0 0 7px #ff6b787a}.task-content{min-width:0}.task-content b,.task-content small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-content b{font-size:11px}.task-content b i{margin-right:5px;padding:1px 3px;background:#ff6b781f;color:var(--red);font-size:9px;font-style:normal}.task-content small{margin-top:3px;color:var(--muted);font-size:10px}.task-status,.delay-days{font-size:10px;white-space:nowrap}.task-status{color:var(--green)}.delay-days{color:var(--red)}.work-panel{grid-column:1 / -1}.work-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.work-split>section{min-width:0}.work-split>section>header{display:flex;justify-content:space-between;margin-bottom:5px;color:var(--muted);font-size:11px}.work-split>section>header b{color:var(--green)}.work-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;max-height:118px;overflow:auto}.work-item{display:grid;grid-template-columns:auto minmax(0,1fr) 16px;gap:7px;align-items:center;min-width:0;min-height:52px;padding:7px;border:1px solid rgba(101,245,154,.15);border-radius:3px;background:#e2ffeb06;text-align:left}.work-item:hover{border-color:#4bdce67a;background:#4bdce60e}.work-type{padding:3px 4px;border:1px solid rgba(101,245,154,.34);color:var(--green);font-size:9px}.work-type.is-plan{border-color:#4bdce666;color:var(--cyan)}.work-item b,.work-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.work-item b{font-size:11px}.work-item small{margin-top:3px;color:var(--muted);font-size:10px}.work-item>svg{color:var(--cyan)}.view-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:62px;margin-bottom:6px;padding:6px 10px;border:1px solid var(--line);background:#062619b3}.view-heading>div:first-child{min-width:0}.view-heading h1{display:inline;margin:0;font-size:20px}.view-heading>div:first-child>span{margin-left:8px;color:var(--muted);font-size:11px}.view-filters{display:flex;align-items:center;justify-content:flex-end;gap:6px}.search-field,.select-field,.toggle-field{display:flex;align-items:center;min-height:31px;border:1px solid rgba(101,245,154,.28);border-radius:4px;background:#031d13ad;color:var(--muted)}.search-field{gap:6px;padding:0 8px}.search-field input{width:190px;border:0;outline:0;background:transparent;font-size:11px}.select-field{gap:5px;padding-left:8px;font-size:10px}.select-field select{min-width:112px;height:29px;padding:0 7px;border:0;outline:0;background:#082c1df5;font-size:11px}.toggle-field{gap:6px;padding:0 8px;font-size:11px}.toggle-field input{accent-color:var(--green)}.master-detail-layout{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(480px,1.28fr);gap:6px;height:calc(100% - 60px);min-height:0}.master-panel,.detail-panel{height:100%}.master-panel .panel-body,.detail-panel .panel-body{height:calc(100% - 46px);min-height:0}.master-list{display:grid;align-content:start;gap:4px;height:100%;overflow:auto}.master-row{display:grid;grid-template-columns:4px minmax(0,1fr);gap:7px;min-width:0;padding:10px;border:1px solid rgba(101,245,154,.13);border-radius:3px;background:#e6ffed06;text-align:left;transition:border-color .16s ease,background .16s ease,transform .16s ease}.master-row:hover,.master-row.is-selected{border-color:#65f59a8a;background:#65f59a13;transform:translate(2px)}.row-mark{align-self:stretch;width:3px;border-radius:2px;background:var(--green)}.row-mark.type-safety{background:var(--red)}.row-mark.type-quality{background:var(--yellow)}.row-mark.type-construction{background:var(--cyan)}.master-row-content{min-width:0}.master-row-content b,.master-row-content small,.master-row-content em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.master-row-content b{font-size:12px}.master-row-content b i{float:right;padding:1px 4px;border:1px solid rgba(75,220,230,.28);color:var(--cyan);font-size:9px;font-style:normal}.master-row-content small{margin-top:4px;color:#f4fff7ba;font-size:11px}.master-row-content em{margin-top:4px;color:var(--muted);font-size:10px;font-style:normal}.log-detail,.hazard-detail{height:100%;overflow:auto}.detail-titlebar{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding-bottom:8px;border-bottom:1px solid rgba(101,245,154,.16)}.detail-titlebar span{color:var(--green);font-size:10px}.detail-titlebar h2{margin:3px 0 0;font-size:17px}.detail-facts,.hazard-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:7px}.detail-facts>div,.hazard-facts>div{display:grid;grid-template-columns:16px minmax(0,1fr);gap:2px 5px;align-items:center;min-width:0;padding:7px;border:1px solid rgba(101,245,154,.14);background:#e4ffeb06}.detail-facts svg,.hazard-facts svg{grid-row:1 / 3;color:var(--green)}.detail-facts span,.hazard-facts span{color:var(--muted);font-size:9px}.detail-facts b,.hazard-facts b{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.detail-block{margin-top:6px;padding:8px;border:1px solid rgba(101,245,154,.14);background:#e4ffeb05}.detail-block>header{display:flex;align-items:center;gap:5px;margin-bottom:6px;color:var(--green);font-size:11px}.detail-block p{margin:0;color:#f4fff7d1;font-size:11px;line-height:1.65;white-space:pre-wrap}.raw-record{border-left:2px solid var(--cyan)}.extract-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.extract-metrics article{padding:6px 8px;border-left:2px solid var(--cyan);background:#4bdce60b}.extract-metrics strong,.extract-metrics span{display:block}.extract-metrics strong{font-size:20px}.extract-metrics span{color:var(--muted);font-size:10px}.extracted-list p{display:grid;grid-template-columns:30px minmax(0,1fr);gap:7px;padding:4px 0;border-bottom:1px dashed rgba(101,245,154,.12)}.extracted-list p i{color:var(--cyan);font-size:10px;font-style:normal}.schedule-metric-grid,.safety-metric-grid{display:grid;gap:6px;margin-bottom:6px}.schedule-metric-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.safety-metric-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.schedule-metric,.safety-metric{position:relative;min-width:0;min-height:62px;padding:9px 11px;overflow:hidden;border:1px solid var(--line);border-radius:4px;background:#072a1ca8;text-align:left}.schedule-metric:hover,.safety-metric:hover,.safety-metric.is-active{border-color:#65f59a94;background:#65f59a14}.schedule-metric span,.safety-metric span{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px}.schedule-metric strong,.safety-metric strong{display:block;margin-top:4px;font-size:22px}.schedule-metric i{position:absolute;right:0;bottom:0;left:0;height:2px;background:var(--green)}.schedule-metric.is-active i{background:var(--blue)}.schedule-metric.is-delayed i,.safety-metric.is-open strong,.safety-metric.is-overdue strong{background:var(--red);color:var(--red)}.schedule-metric.is-completed i,.safety-metric.is-closed strong{background:var(--green);color:var(--green)}.schedule-metric.is-pending i{background:var(--gray)}.safety-metric.is-rectifying strong{color:var(--yellow)}.safety-metric.is-resolved strong{color:var(--blue)}.schedule-table-panel{height:calc(100% - 118px)}.schedule-table-panel .panel-body{height:calc(100% - 46px);padding:0}.data-table-wrap{position:relative;height:100%;overflow:auto}.data-table{width:100%;min-width:1030px;border-collapse:separate;border-spacing:0;table-layout:fixed}.data-table thead{position:sticky;top:0;z-index:3}.data-table th{height:40px;padding:0 10px;border-bottom:1px solid rgba(101,245,154,.28);background:#0a3322fa;color:var(--muted);font-size:11px;font-weight:600;text-align:left}.data-table td{height:50px;padding:6px 10px;overflow:hidden;border-bottom:1px solid rgba(101,245,154,.09);color:#f4fff7e0;font-size:11px;text-overflow:ellipsis}.data-table tbody tr{background:#e6ffed04;cursor:pointer;transition:background .15s ease}.data-table tbody tr:nth-child(2n){background:#65f59a06}.data-table tbody tr:hover{background:#65f59a16}.data-table tbody tr.is-critical{box-shadow:inset 2px 0 var(--red)}.schedule-task-cell{display:flex;align-items:center;min-width:0}.tree-toggle{display:grid;flex:0 0 auto;place-items:center;width:20px;height:20px;margin-right:3px;border:0;background:transparent;color:var(--green)}.tree-leaf{display:grid;flex:0 0 auto;place-items:center;width:20px;margin-right:3px;color:#65f59a57}.schedule-task-cell>span:last-child{min-width:0}.schedule-task-cell b,.schedule-task-cell small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-task-cell b{font-size:11px}.schedule-task-cell b i{display:inline-flex;align-items:center;gap:2px;margin-right:5px;padding:1px 3px;background:#ff6b781a;color:var(--red);font-size:9px;font-style:normal}.schedule-task-cell small{margin-top:3px;color:var(--muted);font-size:9px}.period-cell{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:10px}.period-cell i{flex:1;height:1px;background:#65f59a33}.table-progress{display:grid;grid-template-columns:minmax(50px,1fr) 30px;gap:6px;align-items:center}.table-progress>span{height:5px;overflow:hidden;background:#65f59a17}.table-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--green))}.table-progress b{font-size:10px;text-align:right}.delay-value{color:var(--red)}.muted-value{color:#e0f7e857}.gantt-cell{position:relative;height:9px;background:#65f59a0e}.gantt-cell span{position:absolute;top:2px;height:5px;background:var(--gray);box-shadow:0 0 6px #91a89a4d}.gantt-cell.is-active span{background:var(--blue);box-shadow:0 0 6px #69aefc66}.gantt-cell.is-delayed span{background:var(--red);box-shadow:0 0 6px #ff6b7866}.gantt-cell.is-completed span{background:var(--green)}.schedule-footnote{display:flex;align-items:center;gap:6px;min-height:32px;margin-top:5px;padding:0 8px;border:1px solid rgba(245,206,105,.24);background:#f5ce690b;color:var(--yellow);font-size:10px}.safety-layout{height:calc(100% - 116px)}.hazard-row{grid-template-columns:35px minmax(0,1fr) auto;align-items:center}.hazard-level{display:grid;place-items:center;min-height:28px;border:1px solid rgba(245,206,105,.35);color:var(--yellow);font-size:10px}.hazard-level.level-high{border-color:#ff6b7880;color:var(--red)}.hazard-identifiers{display:flex;gap:14px;margin-top:6px;padding:6px 8px;border-left:2px solid var(--cyan);background:#4bdce60a;color:var(--muted);font-size:9px}.verify-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:7px;padding-top:7px;border-top:1px solid rgba(101,245,154,.16)}.verify-form label{display:grid;gap:3px;min-width:0}.verify-form label>span{color:var(--muted);font-size:10px}.verify-form input,.verify-form select,.verify-form textarea{min-width:0;min-height:31px;padding:6px 8px;border:1px solid rgba(101,245,154,.25);border-radius:3px;outline:0;background:#031c12b3;font-size:11px}.verify-form textarea{min-height:56px;resize:vertical}.verify-form .is-wide{grid-column:1 / -1}.form-actions{display:flex;justify-content:flex-end;gap:6px}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:31px;padding:0 10px;border:1px solid rgba(101,245,154,.45);border-radius:3px;background:#65f59a14;font-size:11px}.primary-button{background:#65f59a2b;color:var(--green)}.primary-button:disabled{cursor:wait;opacity:.55}.inline-notice{display:flex;align-items:center;gap:6px;min-height:31px;margin-bottom:6px;padding:0 8px;border:1px solid rgba(105,174,252,.25);background:#69aefc0b;color:var(--blue);font-size:10px}.inline-notice.is-warning{border-color:#f5ce6942;background:#f5ce690b;color:var(--yellow)}.quality-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:6px}.quality-summary-grid article{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;min-width:0;min-height:62px;padding:9px 11px;border:1px solid var(--line);border-radius:4px;background:#072a1ca8}.quality-summary-grid svg{color:var(--green)}.quality-summary-grid span{color:var(--muted);font-size:11px}.quality-summary-grid strong{font-size:22px}.quality-summary-grid .is-passed svg,.quality-summary-grid .is-passed strong{color:var(--green)}.quality-summary-grid .is-failed svg,.quality-summary-grid .is-failed strong{color:var(--red)}.quality-list-panel{min-height:calc(100% - 150px)}.quality-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.quality-card{min-width:0;padding:11px;border:1px solid rgba(101,245,154,.17);border-radius:3px;background:#e4ffeb05;text-align:left;transition:border-color .16s ease,background .16s ease,transform .16s ease}.quality-card:hover{border-color:#65f59a85;background:#65f59a0e;transform:translateY(-1px)}.quality-card.is-failed{border-left:2px solid var(--red)}.quality-card.is-passed{border-left:2px solid var(--green)}.quality-card>header{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:7px;align-items:center;min-width:0;padding-bottom:7px;border-bottom:1px solid rgba(101,245,154,.12)}.quality-icon{display:grid;place-items:center;width:27px;height:27px;background:#65f59a12;color:var(--green)}.quality-card.is-failed .quality-icon{background:#ff6b7812;color:var(--red)}.quality-card header div{min-width:0}.quality-card header small,.quality-card header h3{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quality-card header small{color:var(--muted);font-size:9px}.quality-card header h3{margin:3px 0 0;font-size:13px}.quality-card dl{display:grid;gap:5px;margin:7px 0 0}.quality-card dl div{display:grid;grid-template-columns:55px minmax(0,1fr);gap:6px;font-size:10px}.quality-card dt{color:var(--muted)}.quality-card dd{margin:0;overflow-wrap:anywhere}.toast{position:fixed;right:20px;bottom:18px;z-index:100;display:flex;align-items:center;gap:6px;max-width:380px;padding:9px 12px;border:1px solid var(--green);border-radius:4px;background:#031c12f5;box-shadow:0 12px 28px #000f0959;color:var(--text);font-size:11px;animation:toastIn .2s ease both}.toast.is-error{border-color:var(--red)}.toast.is-warning{border-color:var(--yellow)}.toast.is-success{border-color:var(--green)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:#65f59a06}::-webkit-scrollbar-thumb{border-radius:3px;background:#65f59a52}@keyframes topLoading{0%{transform:translate(-120%)}to{transform:translate(420%)}}@keyframes headerPulse{0%,to{opacity:.35;transform:translate(-12px)}50%{opacity:1;transform:translate(0)}}@keyframes signalPulse{0%,to{opacity:.45;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@keyframes viewIn{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes panelScan{0%{transform:translate(-200%) skew(-15deg)}to{transform:translate(800%) skew(-15deg)}}@keyframes weatherFloat{0%,to{transform:translateY(2px)}50%{transform:translateY(-2px)}}@keyframes toastIn{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1180px){.app-header{grid-template-columns:minmax(300px,1fr) auto}.header-status{display:none}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.donut-summary{grid-template-columns:150px minmax(0,1fr)}.donut-visual{width:150px;height:150px}.active-panel,.delayed-panel{grid-column:span 1}.work-panel{grid-column:1 / -1}.quality-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-height:680px){.app-shell{grid-template-rows:60px 40px minmax(0,1fr);padding:6px}.app-header{padding-top:6px;padding-bottom:6px}.brand-symbol{width:31px;height:31px}.brand-block h1{font-size:19px}.metric-card{min-height:68px}.metric-card strong{font-size:23px}.overview-grid{grid-auto-rows:minmax(190px,auto)}.donut-summary{grid-template-columns:122px minmax(0,1fr);min-height:126px}.donut-visual{width:122px;height:122px}.donut-chart{height:100%}.donut-center strong{font-size:23px}.donut-legend button{min-height:28px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
