html{scroll-behavior:smooth}#root{min-height:100vh}:root{color:#17202a;font-synthesis:none;text-rendering:geometricprecision;background:#f5f7f9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(#14b8a60e,#0000 340px),#f5f7f9;min-width:1180px;margin:0}button,input{font:inherit}button{cursor:pointer}.app{grid-template-columns:268px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{overscroll-behavior:contain;scrollbar-gutter:stable;background:#fbfcfd;border-right:1px solid #dce3e8;height:100dvh;padding:22px 18px;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:12px;padding:4px 6px 24px;display:flex}.brand-mark{background:#fff;border:1px solid #0f766e38;border-radius:10px;place-items:center;width:38px;height:38px;display:grid;overflow:hidden}.brand-mark img{object-fit:contain;width:100%;height:100%;padding:3px}.brand strong{color:#17202a;font-size:17px;display:block}.brand span{color:#6b7785;font-size:12px}.nav section{margin:14px 0 20px}.nav p{color:#8a96a3;margin:0 0 8px 10px;font-size:12px;font-weight:700}.nav a{color:#485565;border-radius:8px;grid-template-columns:22px 1fr 18px;align-items:center;gap:10px;min-height:42px;margin:3px 0;padding:0 10px;text-decoration:none;display:grid}.nav a:hover,.nav a.active{color:#0f766e;background:#e7f5f3}.main{min-width:0;padding:24px 28px 40px}.topbar{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.topbar span{color:#778391;font-size:13px}.topbar h1{color:#14212d;letter-spacing:0;margin:5px 0 0;font-size:28px;line-height:1.15}.top-actions,.filters{align-items:center;gap:10px;display:flex}.user-chip{color:#485565;background:#fbfcfd;border:1px solid #d6dde4;border-radius:999px;padding:8px 12px;font-size:13px}.ghost-button,.primary-button,.filters button,.filters label{color:#344052;background:#fbfcfd;border:1px solid #d6dde4;border-radius:8px;align-items:center;gap:8px;min-height:38px;padding:0 14px;display:inline-flex}.notify-button{position:relative}.notify-button i{color:#f7fffd;background:#0f766e;border:2px solid #fbfcfd;border-radius:999px;place-items:center;min-width:18px;height:18px;font-size:11px;font-style:normal;font-weight:800;display:grid;position:absolute;top:-6px;right:-6px}.edit-panel{background:#fbfcfd;border:1px solid #dfe6eb;border-radius:8px;margin-bottom:16px;padding:18px;box-shadow:0 12px 30px #14202d0e}.registry-form-modal{width:min(760px,100vw - 40px);max-height:calc(100vh - 48px);margin:0;overflow-y:auto}.people-list,.credential-list,.credential-editors{gap:12px;display:grid}.person-card{background:#f7fafb;border:2px solid #9fb8be;border-radius:10px;overflow:hidden;box-shadow:0 8px 20px #23474e17}.credential-editor{background:#f7fafb;border:1px solid #c7d7dc;border-radius:10px;overflow:hidden;box-shadow:0 5px 16px #23474e0e}.person-card>header,.credential-editor-head,.credential-editor-title{justify-content:space-between;align-items:center;gap:16px;display:flex}.person-card>header{background:#edf5f4;border-bottom:1px solid #cfdde1;padding:14px 16px}.person-card-actions{align-items:center;gap:8px;display:flex}.person-card-actions .danger-ghost{color:#dc2626;cursor:pointer;background:0 0;border:1px solid #dc262652;border-radius:8px;align-items:center;gap:5px;padding:6px 10px;font-size:13px;transition:background .15s;display:inline-flex}.person-card-actions .danger-ghost:hover{background:#dc262614}.person-card>header>div,.credential-row>div,.credential-editor-head>div{gap:4px;display:grid}.person-card span,.credential-row span,.credential-editor-head span{color:#667383;font-size:12px}.credential-list{gap:0}.credential-row{background:#fbfcfd;border:1px solid #bfd1d6;grid-template-columns:minmax(160px,1.2fr) minmax(120px,.7fr) minmax(180px,1fr) 38px;align-items:center;gap:14px;padding:12px 16px;display:grid}.credential-row:nth-child(2n){background:#f4f8f9}.credential-row:last-child{border-bottom:0}.attachment-actions,.existing-files,.pending-files{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pending-files{color:#667383;margin-top:12px;font-size:12px}.pending-file{color:#285d58;background:#e9f3f2;border-radius:7px;align-items:center;gap:6px;padding:5px 8px;display:inline-flex}.pending-file button{color:#8f3f39;background:0 0;border:0;min-width:0;padding:0}.existing-file-item{background:#fbfcfd;border:1px solid #cddade;border-radius:7px;align-items:stretch;display:inline-flex;overflow:hidden}.existing-file-item>button{border:0;border-radius:0}.existing-file-item .remove-file-button{color:#a23f39;background:#fff7f6;border-left:1px solid #d9e2e5;min-width:30px;padding:0 7px}.registry-pending-files{margin-top:5px}.icon-danger{color:#c2413a}.person-qualification-modal{max-height:calc(100vh - 40px)}.person-qualification-body{overflow-y:auto}.person-fields{border-bottom:1px solid #e4eaee;padding-bottom:18px}.credential-editor-head{margin:18px 0 10px}.credential-editor-head h4{margin:0}.credential-editor{padding:14px}.credential-editor-title{margin-bottom:12px}.existing-files{margin-top:12px}@media (width<=860px){.credential-row{grid-template-columns:1fr}.person-card>header{flex-direction:column;align-items:flex-start}}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;display:grid}.form-grid label,.form-grid .form-wide{gap:7px;display:grid}.form-grid label span{color:#5b6878;font-size:13px;font-weight:700}.form-grid input,.form-grid select{color:#17202a;background:#f7f9fa;border:1px solid #d6dde4;border-radius:8px;outline:0;height:38px;padding:0 10px}.form-grid input:focus,.form-grid select:focus{border-color:#0f766e;box-shadow:0 0 0 3px #0f766e1f}.field-quick-add{color:#0f766e;background:0 0;border:0;justify-self:start;min-height:0;padding:0;font-size:12px;font-weight:700}.field-quick-add:hover{text-decoration:underline}.modal-overlay--nested{z-index:80}.quick-add-modal{width:min(460px,100vw - 40px)}.quick-add-modal .modal-field{gap:8px;display:grid}.quick-add-modal .modal-field input{background:#f7f9fa;border:1px solid #d6dde4;border-radius:8px;height:42px;padding:0 12px}.check-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:38px;display:grid}.form-grid .field-label{color:#5b6878;font-size:13px;font-weight:700}.plan-resource-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:152px;padding-right:4px;overflow-y:auto}.resource-empty{color:#7b8794;grid-column:1/-1;align-items:center;min-height:38px;font-size:13px;display:flex}.resource-kind{color:#0f6b64;background:#e5f0ef;border-radius:6px;margin-right:7px;padding:2px 6px;font-size:11px;font-weight:700;display:inline-flex}.resource-kind--source{color:#8a5b18;background:#f5ead8}.resource-help{color:#7b8794;font-size:12px}.plan-check-card{background:#f2f8f7;border:1px solid #0f766e2e;border-radius:10px;gap:8px;margin-top:16px;padding:14px 16px;display:grid}.plan-check-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:2px;display:flex}.plan-check-head span{color:#667383;font-size:12px}.plan-check-row{color:#485565;align-items:center;gap:8px;min-height:28px;font-size:13px;display:flex}.plan-check-row.passed svg{color:#0f766e}.plan-check-row.blocked{color:#9f3a34}.plan-check-row.blocked svg{color:#c2413a}@media (width<=980px){.plan-resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.plan-resource-grid{grid-template-columns:1fr}.plan-check-head{flex-direction:column;align-items:flex-start;gap:4px}}.form-grid .check-option{background:#f7f9fa;border:1px solid #d6dde4;border-radius:8px;align-items:center;gap:8px;min-height:38px;padding:0 10px;display:flex}.form-grid .check-option input{flex:none;width:16px;height:16px;padding:0}.form-grid .check-option span{color:#17202a;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.form-wide{grid-column:span 2}.form-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.primary-button{color:#ecfeff;background:#0f766e;border-color:#0f766e;align-items:center;gap:8px;font-weight:700;display:inline-flex}.filters{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.range-tabs,.command-ranges{background:#f7faf9;border:1px solid #dfe7ee;border-radius:8px;align-items:center;gap:4px;padding:3px;display:inline-flex}.range-tabs button,.command-ranges button{color:#607086;background:0 0;border:0;border-radius:6px;min-height:32px;padding:0 10px;font-weight:700}.range-tabs button.active{color:#0f766e;background:#fbfcf9;box-shadow:0 1px 3px #0f4c4c14}.filters label{align-items:center;gap:10px;min-width:320px;display:flex;position:relative}.filters label:has(input[type=date]){min-width:210px}.filters label span{color:#7a8694;font-size:13px}.filters input,.filters select{color:#17202a;width:100%;font:inherit;background:0 0;border:0;outline:0}.filters select{appearance:none;cursor:pointer;padding-right:24px}.filters label:has(select):after{content:"";pointer-events:none;border-bottom:1.5px solid #667386;border-right:1.5px solid #667386;width:8px;height:8px;position:absolute;top:50%;right:14px;transform:translateY(-62%)rotate(45deg)}.filters label:focus-within{border-color:#0f766e;box-shadow:0 0 0 3px #0f766e1c}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}.metric-card,.panel{background:#fbfcfd;border:1px solid #dfe6eb;border-radius:8px;box-shadow:0 12px 30px #14202d0e}.metric-card{justify-content:space-between;min-height:128px;padding:20px;display:flex}.metric-card span,.metric-card small{color:#6b7785;display:block}.metric-card strong{color:#111827;margin:10px 0 8px;font-size:32px;line-height:1;display:block}.metric-card svg{border-radius:8px;width:44px;height:44px;padding:9px}.metric-card.teal svg{color:#0f766e;background:#d9f3f0}.metric-card.amber svg{color:#b45309;background:#fff0cf}.metric-card.green svg{color:#15803d;background:#dcfce7}.metric-card.red svg{color:#b91c1c;background:#fee2e2}.metric-value{transition:color .2s}.metric-card .metric-value--teal,.score-summary .metric-value--teal{color:#0f766e}.metric-card .metric-value--green,.score-summary .metric-value--green{color:#15803d}.metric-card .metric-value--amber,.score-summary .metric-value--amber{color:#b45309}.metric-card .metric-value--red,.score-summary .metric-value--red{color:#b91c1c}.metric-card .metric-value--muted,.score-summary .metric-value--muted{color:#94a3b8}.rank-list .metric-value--teal{color:#0f766e}.rank-list .metric-value--green{color:#15803d}.rank-list .metric-value--amber{color:#b45309}.rank-list .metric-value--red{color:#b91c1c}.rank-list .metric-value--muted{color:#94a3b8}.workspace-grid{grid-template-columns:1.6fr 1fr 1fr;gap:14px;display:grid}.panel{min-height:320px;padding:18px}.panel-wide{grid-column:span 2}.rank-panel{grid-column:1}.trend-panel{grid-column:2}.risk-panel{grid-column:3}.quick-panel{grid-column:3;min-height:320px}.score-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}.score-summary article{background:#ffffffdb;border:1px solid #e1e8ee;border-radius:8px;grid-template-columns:auto 1fr;align-items:center;gap:6px 12px;padding:16px;display:grid;box-shadow:0 18px 48px -42px #0f172a6b}.score-summary svg{color:#0f766e;background:#d9f3f0;border-radius:8px;grid-row:span 3;width:42px;height:42px;padding:9px}.score-summary span{color:#667789;font-size:13px}.score-summary strong{color:#111827;font-size:28px;line-height:1}.score-summary small{color:#778391}.operator-layout{grid-template-columns:minmax(240px,.9fr) minmax(0,2.1fr);gap:14px;display:grid}.operation-table{overflow-x:auto}.operation-row{grid-template-columns:70px 130px 100px 70px 70px 80px minmax(150px,1fr) 110px;min-width:920px}.operation-row small{color:#667789}.operator-detail-button{white-space:nowrap;justify-self:start;min-height:34px}.operator-record-panel{margin-top:14px}.operator-record-row{grid-template-columns:110px 100px minmax(220px,1.4fr) 90px 90px minmax(180px,1fr);min-width:900px}.operator-record-score{color:#0f766e;font-variant-numeric:tabular-nums}.panel-heading{justify-content:space-between;align-items:start;margin-bottom:16px;display:flex}.panel-heading h2{color:#17202a;margin:0;font-size:18px}.panel-heading span{color:#778391;margin-top:4px;font-size:13px;display:block}.panel-heading button{color:#0f766e;background:0 0;border:1px solid #0000;border-radius:8px;min-height:36px;padding:0 10px;font-weight:700}.table{border:1px solid #e5ebf0;border-radius:8px;overflow:hidden}.table-row{color:#4b5563;border-top:1px solid #edf1f4;grid-template-columns:150px minmax(180px,1.35fr) 90px 90px minmax(170px,1fr) 90px 120px;align-items:center;gap:10px;min-width:900px;min-height:54px;padding:0 14px;font-size:14px;display:grid}.table-row span,.table-row strong,.work-plan-row span,.work-plan-row strong,.registry-row span,.registry-row strong{overflow-wrap:anywhere;min-width:0}.work-plan-row{color:#4b5563;border-top:1px solid #edf1f4;grid-template-columns:132px minmax(100px,1fr) 92px minmax(150px,1.35fr) 66px 210px;align-items:center;gap:8px;min-width:880px;min-height:76px;padding:6px 10px;font-size:14px;display:grid}.work-plan-row>span:nth-child(4){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.work-plan-row .row-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.work-plan-row .row-actions button{min-width:0;min-height:30px;padding:0 5px;font-size:13px}.work-plan-row strong{color:#17202a}.work-plan-row em{color:#0f766e;background:#e7f5f3;border-radius:999px;justify-self:start;padding:4px 9px;font-size:12px;font-style:normal;font-weight:700}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row-actions button{color:#344052;background:#fbfcfd;border:1px solid #d6dde4;border-radius:7px;min-width:58px;min-height:38px;padding:0 10px}.registry-table{border:1px solid #e5ebf0;border-radius:8px;overflow-x:auto}.registry-row{color:#4b5563;border-top:1px solid #edf1f4;align-items:center;gap:10px;min-width:860px;min-height:52px;padding:0 14px;font-size:14px;display:grid}.registry-head{color:#697586;background:#f1f5f7;border-top:0;min-height:42px;font-size:12px;font-weight:700}.submission-row{grid-template-columns:130px 140px 90px 100px 80px 80px minmax(200px,1fr) 220px}.submission-row .cell-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.submission-plan-cell,.dashboard-plan-info,.dashboard-plan-state{flex-direction:column;align-items:flex-start;gap:4px;min-width:0;display:flex}.submission-plan-cell small,.dashboard-plan-info small{color:#778391;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;line-height:1.35;display:block;overflow:hidden}.dashboard-plan-row{grid-template-columns:116px minmax(100px,1fr) minmax(150px,1.35fr) 76px minmax(112px,.9fr) minmax(84px,.65fr);gap:8px;min-width:0;padding-inline:12px}.dashboard-plan-state em{margin-top:1px}.version-row{grid-template-columns:1fr 160px;min-width:0}.version-table{overflow-x:hidden}.version-table .version-link{white-space:nowrap;justify-self:start}.warning-row{grid-template-columns:90px 130px 180px 1fr 110px 100px}.snapshot-cell{color:#6b7785;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.modal-overlay{z-index:1000;background:#0f17208c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-card{background:#fbfcf9;border-radius:12px;flex-direction:column;width:min(560px,100%);max-height:88vh;display:flex;overflow:hidden;box-shadow:0 24px 60px #0f17202e}.modal-head{border-bottom:1px solid #e5ebf0;justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-head h3{color:#17202a;margin:0;font-size:16px}.modal-close{color:#6b7785;background:0 0;border:none;border-radius:8px;place-items:center;width:32px;height:32px;display:grid}.modal-close:hover{color:#17202a;background:#f1f5f7}.modal-body{flex-direction:column;gap:16px;padding:20px 22px;display:flex;overflow-y:auto}.modal-foot{background:#fbfcfd;border-top:1px solid #e5ebf0;justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.confirm-dialog{width:min(460px,100%)}.confirm-dialog-title{align-items:center;gap:10px;display:flex}.confirm-dialog-icon{color:#a73229;background:#a7322914;border-radius:9px;place-items:center;width:34px;height:34px;display:grid}.confirm-dialog-description,.confirm-dialog-warning{color:#344052;margin:0;line-height:1.65}.confirm-dialog-warning{color:#a73229;font-size:13px;font-weight:700}.confirm-delete-button{min-width:96px;padding:0 16px}.score-row{background:linear-gradient(135deg,#14b8a614,#14b8a605);border:1px solid #14b8a62e;border-radius:10px;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.score-row span{color:#4b5563;font-size:13px}.deductions-box{background:#fbfcfd;border:1px solid #e5ebf0;border-radius:10px;padding:12px 14px}.deductions-box p{color:#6b7785;margin:0 0 8px;font-size:12px;font-weight:700}.deductions-box ul{color:#4b5563;margin:0;padding-left:18px;font-size:13px;line-height:1.7}.muted-text{color:#9aa6b2;font-size:13px}.modal-field{flex-direction:column;gap:6px;display:flex}.modal-field span{color:#6b7785;font-size:12px;font-weight:700}.modal-field input,.modal-field textarea{width:100%;font:inherit;color:#17202a;resize:vertical;border:1px solid #d6dde4;border-radius:8px;padding:10px 12px}.modal-field input:focus,.modal-field textarea:focus{border-color:#0f766e;outline:none}.meeting-row{grid-template-columns:110px 1fr 2fr 90px 250px}.maintenance-row{grid-template-columns:90px 100px 1fr 2fr 90px 250px}.maintenance-check-editor{gap:8px;display:grid}.maintenance-check-input{gap:8px;display:flex}.maintenance-check-input input{flex:1}.maintenance-check-list{flex-wrap:wrap;align-items:center;gap:8px;min-height:32px;display:flex}.maintenance-check-list>span{color:#24685f;background:#eaf5f3;border:1px solid #0f766e29;border-radius:999px;align-items:center;gap:6px;padding:5px 7px 5px 10px;font-size:13px;display:inline-flex}.maintenance-check-list>span button{width:22px;height:22px;color:inherit;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.maintenance-check-list small{color:#728091}.score-rule-panel{min-height:0}.score-rule-panel+.score-rule-panel{margin-top:14px}.business-requirements{gap:12px;display:grid}.maintenance-type-add{gap:8px;max-width:720px;display:flex}.maintenance-type-add input{color:#1f2937;box-sizing:border-box;background:#fbfcf9;border:1px solid #d6dde4;border-radius:6px;flex:1;min-width:0;min-height:34px;padding:4px 8px;font-size:13px}.business-requirement-group{display:block}.business-requirement-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.business-requirement-table{overflow-x:auto}.business-req-row{grid-template-columns:minmax(220px,1.5fr) 88px 88px 76px minmax(180px,1fr) 68px;min-width:820px}.business-req-row input,.business-req-row select{min-width:0}.locked-item{color:#728091;text-align:center;font-size:12px}.task-material-picker{gap:9px;display:grid}.task-material-picker-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.task-material-picker-head small{color:#728091}.task-material-options{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px;display:grid}.task-material-options>label{cursor:pointer;background:#f8fbfc;border:1px solid #1f536f1a;border-radius:12px;grid-template-columns:auto 1fr;align-items:center;gap:3px 9px;min-height:58px;padding:10px 12px;display:grid}.task-material-options>label.selected{background:#eaf5f3;border-color:#0f766e6b}.task-material-options input{width:17px;height:17px}.task-material-options small{color:#687b87;grid-column:2;font-size:12px}@media (width<=760px){.maintenance-type-add,.business-requirement-head,.task-material-picker-head{flex-direction:column;align-items:stretch}.task-material-options{grid-template-columns:1fr}}.report-row{grid-template-columns:110px 100px minmax(180px,1fr) minmax(220px,2fr) 90px 220px}.plan-reference{flex-direction:column;gap:3px;min-width:0;display:flex}.plan-reference strong,.plan-reference small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.plan-reference small{color:#697586;font-size:12px}.export-row{grid-template-columns:140px 100px 160px 190px}.oplog-row{grid-template-columns:150px 120px 90px 1fr 2fr 110px 54px}.danger-button{color:#a73229;background:#a732290f;border:1px solid #a7322929;min-width:36px;min-height:36px;padding:0}.row-actions .row-delete-button{color:#a73229;white-space:nowrap;background:#a732290f;border-color:#a7322933;justify-content:center;align-items:center;gap:5px;min-width:66px;min-height:36px;padding:0 10px;line-height:1;display:inline-flex}@media (hover:hover){.row-actions .row-delete-button:hover{background:#a732291f}}.row-actions .row-delete-button:focus-visible{outline-offset:2px;outline:2px solid #a73229}.row-actions .row-delete-button:active{background:#a732292e;transform:translateY(1px)}.row-actions .row-delete-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.todo-row{grid-template-columns:120px 190px minmax(220px,1fr) 80px 150px 90px}.registry-row em{color:#0f766e;background:#e7f5f3;border-radius:999px;justify-self:start;padding:4px 9px;font-size:12px;font-style:normal;font-weight:700}.module-panel{justify-content:space-between;align-items:center;min-height:220px;display:flex}.module-panel h2{color:#17202a;margin:0 0 10px}.module-panel p,.module-panel span{color:#728091}.table-head{color:#697586;background:#f1f5f7;border-top:0;min-height:42px;font-size:12px;font-weight:700}.table-row strong{color:#17202a}.table-empty{color:#728091;padding:26px 14px}.table-empty.danger{color:#b91c1c}.operation-feedback{color:#0f665f;background:#0f766e12;border:1px solid #0f766e2e;border-radius:8px;margin:0 0 12px;padding:10px 12px;font-size:13px;font-weight:600}.operation-feedback.danger{color:#a31818;background:#b91c1c0f;border-color:#b91c1c2e}.table-row em,.compact-list em{color:#0f766e;background:#e7f5f3;border-radius:999px;justify-self:start;padding:4px 9px;font-size:12px;font-style:normal;font-weight:700}.progress{background:#e8edf1;border-radius:999px;height:8px;overflow:hidden}.progress i{border-radius:inherit;background:#14b8a6;height:100%;display:block}.compact-list{gap:10px;display:grid}.compact-list div{border:1px solid #e7edf2;border-radius:8px;grid-template-columns:1fr auto;gap:4px 12px;padding:12px;display:grid}.compact-list span,.alert-list strong{color:#17202a;font-weight:700}.compact-list small,.alert-list span{color:#728091}.compact-list em{grid-area:1/2/3;align-self:center}.compact-list em.danger{color:#b91c1c;background:#fee2e2}.alert-list{gap:10px;display:grid}.alert-list>div{border:1px solid #e7edf2;border-radius:8px;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:12px;display:grid}.alert-list>div>div{min-width:0}.alert-list>div>div strong,.alert-list>div>div span{overflow-wrap:anywhere}.alert-list b{color:#b45309;background:#fff0cf;border-radius:7px;place-items:center;width:28px;height:28px;font-size:13px;display:grid}.alert-list span,.alert-list small{font-size:12px;display:block}.rank-list{gap:10px;display:grid}.rank-list div{border:1px solid #e7edf2;border-radius:8px;grid-template-columns:30px 1fr auto auto;align-items:center;gap:10px;min-height:48px;padding:10px 12px;display:grid}.rank-list b{color:#0369a1;background:#e0f2fe;border-radius:7px;place-items:center;width:26px;height:26px;font-size:13px;display:grid}.rank-list span{color:#17202a;overflow-wrap:anywhere;min-width:0;font-weight:700}.rank-list strong{color:#0f766e}.rank-list small{color:#728091}.score-rank>div{grid-template-columns:30px minmax(0,1fr) auto;grid-template-areas:"rank name name""rank score count";gap:4px 8px}.score-rank b{grid-area:rank}.score-rank span{grid-area:name}.score-rank strong{white-space:nowrap;grid-area:score}.score-rank small{white-space:nowrap;grid-area:count}.todo-list,.timeline-list{gap:10px;display:grid}.todo-list>div{border:1px solid #e7edf2;border-radius:8px;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:12px;display:grid}.todo-list b{color:#0369a1;background:#e0f2fe;border-radius:7px;place-items:center;width:28px;height:28px;font-size:13px;display:grid}.todo-list b.warn{color:#b45309;background:#fff0cf}.todo-list b.danger{color:#b91c1c;background:#fee2e2}.todo-list strong,.timeline-list strong{color:#17202a;display:block}.todo-list span,.timeline-list span{color:#728091;font-size:12px;display:block}.todo-list em{color:#0f766e;background:#eef7f5;border-radius:999px;padding:5px 10px;font-size:12px;font-style:normal;font-weight:800}.timeline-list>div{grid-template-columns:18px 1fr auto;align-items:start;gap:10px;min-height:50px;display:grid}.timeline-list i{background:#14b8a6;border-radius:50%;width:9px;height:9px;margin-top:6px;box-shadow:0 0 0 5px #14b8a61f}.timeline-list small{color:#8a95a3;font-size:12px}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.quick-grid button{color:#17202a;background:#fbfdfc;border:1px solid #e3ebf1;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:76px;font-weight:800;display:flex}.quick-grid svg{color:#0f766e}.command{color:#d9ecf7}.command-page{background:#03111f;min-height:100vh;padding:14px;overflow:auto}.command-page.fullscreen-mode{z-index:999;background:#03111f;padding:0;position:fixed;inset:0}.command.standalone{background:radial-gradient(80% 50% at 50% 0,#0088ff38,#0000 85%),radial-gradient(circle at 50% 52%,#00d0ff0f,#0000 70%),linear-gradient(#06162d 0% 100%);border:1px solid #00d0ff2e;border-radius:16px;flex-direction:column;min-height:calc(100vh - 28px);max-height:none;display:flex;position:relative;overflow:visible;box-shadow:inset 0 0 70px #00d0ff0d,0 24px 70px #00000057}.command-page.fullscreen-mode .command.standalone{border-radius:0;min-height:100vh;max-height:none}.command.standalone:before{content:"";pointer-events:none;opacity:.8;mix-blend-mode:screen;background-image:linear-gradient(#00d0ff14 1px,#0000 1px),linear-gradient(90deg,#00d0ff14 1px,#0000 1px);background-position:50%;background-size:40px 40px;position:absolute;inset:0}.command-header{z-index:2;flex-shrink:0;grid-template-columns:minmax(260px,1fr) auto minmax(260px,1fr);align-items:center;gap:12px;height:82px;padding:10px 24px 6px;display:grid;position:relative;overflow:hidden}.command-header:before,.command-header:after{content:"";pointer-events:none;position:absolute}.command-header:before{background:radial-gradient(50% 72% at 50% 100%,#00e5ff2b,#0000 70%),linear-gradient(90deg,#0000 0 27%,#00d0ffd1 36%,#e6fcfff2 50%,#00d0ffd1 64%,#0000 73%);animation:3s ease-in-out infinite headerGlow;inset:0;-webkit-mask:linear-gradient(#0000 0 58px,#000000fc 58px 62px,#0000 62px);mask:linear-gradient(#0000 0 58px,#000000fc 58px 62px,#0000 62px)}.command-header:after{background:#00d0ff;width:160px;height:4px;animation:2s ease-in-out infinite headerPulseLine;top:0;left:50%;transform:translate(-50%);box-shadow:0 0 18px #00d0ffc7}.command-title-block{z-index:3;text-align:center;pointer-events:none;grid-area:1/2;justify-self:center;position:relative}.command-header-left,.command-actions{z-index:3;align-items:center;gap:10px;min-width:0;display:flex;position:relative}.command-header-left{grid-area:1/1;justify-self:start}.command-actions{grid-area:1/3;justify-self:end}.command-actions time{color:#f1fbff;letter-spacing:.5px;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:14px;font-weight:700}.command-title-block span{color:#8beaff;letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:900;display:block}.command-title-block h1{color:#f1fbff;letter-spacing:3px;text-shadow:0 0 20px #00d0ffcc,0 0 35px #0088ff61;margin:2px 0 0;font-size:30px;font-weight:900;line-height:.95}.command-title-block small{display:none}.back-link{z-index:3;color:#a6c9dc;align-items:center;gap:7px;min-height:38px;margin:0;font-size:13px;text-decoration:none;display:inline-flex;position:relative}.back-link:hover{color:#e0f2fe}.command-header button{z-index:3;color:#e0f2fe;cursor:pointer;background:#0e749047;border:1px solid #7dd3fc6b;border-radius:8px;padding:10px 14px;position:relative}.command-ranges{z-index:3;background:#081a36b8;border:1px solid #00d0ff47;border-radius:8px;display:flex;position:relative;overflow:hidden}.command-ranges button{color:#9fb8d0;background:0 0;border:0;border-left:1px solid #00d0ff38;border-radius:0;min-width:58px;padding:8px 14px}.command-ranges button:first-child{border-left:0}.command-ranges button.active{color:#041225;background:#00d0ff;box-shadow:0 0 18px #00d0ff99}.command-grid{z-index:1;flex:1 1 0;grid-template-rows:repeat(4,minmax(220px,1fr));grid-template-columns:minmax(285px,1fr) minmax(440px,1.18fr) minmax(285px,1fr);gap:14px;min-height:946px;padding:10px 16px 14px;display:grid;position:relative}.command-card{clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,22px 100%,0 calc(100% - 22px));background:linear-gradient(135deg,#0c2446d6,#040f22f2);border:1px solid #00d0ff38;border-radius:0;min-height:0;padding:14px;position:relative;overflow:hidden;box-shadow:inset 0 0 30px #0088ff1a}.command-card:before,.command-card:after{content:"";pointer-events:none;z-index:1;position:absolute}.command-card:before{filter:drop-shadow(0 0 8px #00d0ffbf);border-top:1px solid #00d0ffd1;border-right:1px solid #00d0ffd1;width:35%;height:40%;top:0;right:0}.command-card:after{border-bottom:1px solid #00d0ff80;border-left:1px solid #00d0ff80;width:35%;height:40%;bottom:0;left:0}.command-card h3{z-index:2;color:#eff8ff;margin:0 0 12px;font-size:16px;position:relative}.kpis{grid-area:1/1;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.kpis div{z-index:2;background:#0284c714;border:1px solid #7dd3fc1f;border-radius:8px;min-width:0;padding:4px 8px;position:relative}.kpis svg{color:#22d3ee}.kpis span{color:#8aa5b9;margin-top:4px;font-size:11px;display:block}.kpis strong{color:#eff8ff;margin-top:2px;font-size:20px;line-height:1;display:block}.kpis strong small{color:#8aa5b9;margin-left:3px;font-size:13px}.kpis em{color:#8aa5b9;margin-top:3px;font-size:11px;font-style:normal;display:block}.map-card{grid-area:span 2/span 2}.map-toolbar{z-index:2;color:#eff8ff;justify-content:space-between;margin-bottom:12px;display:flex;position:relative}.map-toolbar small{color:#8aa5b9}.map-surface,.monitor-board,.command-visual{background:linear-gradient(#7dd3fc0f 1px,#0000 1px) 0 0/42px 42px,linear-gradient(90deg,#7dd3fc0f 1px,#0000 1px) 0 0/42px 42px,radial-gradient(circle at 44% 42%,#14b8a642,#0000 15%),#071421;border:1px solid #7dd3fc24;border-radius:4px;height:100%;position:relative;overflow:hidden}.monitor-board{background:linear-gradient(#7dd3fc0d 1px,#0000 1px) 0 0/44px 44px,linear-gradient(90deg,#7dd3fc0d 1px,#0000 1px) 0 0/44px 44px,radial-gradient(circle at 62% 35%,#22d3ee2e,#0000 18%),#071421;align-content:start;gap:9px;padding:12px;display:grid}.monitor-board>div{background:#081b2ab8;border:1px solid #7dd3fc1f;border-radius:8px;grid-template-columns:1.15fr .8fr auto auto;align-items:center;gap:10px;min-height:48px;padding:10px 12px 14px;display:grid;position:relative;overflow:hidden}.command-visual-card{flex-direction:column;grid-area:1/2/span 3;display:flex}.command-visual-card .command-visual{flex:1 1 0;min-height:0}.command-risk-card{flex-direction:column;grid-area:2/1;display:flex}.command-type-card,.command-trend-card,.command-broadcast,.operator-performance-card{flex-direction:column;display:flex}.command-type-card{grid-area:3/1}.command-chart{z-index:2;flex:auto;width:100%;min-height:0;position:relative}.pie-legend{flex-wrap:wrap;justify-content:center;gap:10px 18px;padding:6px 4px 2px;display:flex}.pie-legend span{color:#94a3b8;align-items:center;gap:6px;font-size:12px;display:inline-flex}.pie-legend i{border-radius:50%;flex-shrink:0;width:9px;height:9px;display:inline-block}.command-trend-card{grid-area:4/1}.command-monitor-card{flex-direction:column;grid-area:1/3/span 3;display:flex}.command-monitor-card .monitor-board{flex:1 1 0;min-height:0}.command-broadcast{grid-area:4/2}.operator-performance-card{grid-area:4/3}.monitor-board strong{color:#e0f2fe;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.monitor-board span,.monitor-board small{color:#8aa5b9;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.monitor-board em{color:#67e8f9;background:#22d3ee1f;border-radius:999px;padding:4px 9px;font-size:12px;font-style:normal;font-weight:800}.monitor-board em.warn{color:#fbbf24;background:#f59e0b24}.monitor-board em.danger{color:#fca5a5;background:#f8717124}.monitor-board i{background:linear-gradient(90deg,#22d3ee,#34d399);border-radius:999px;height:3px;position:absolute;bottom:7px;left:12px}.command-visual{background:radial-gradient(circle at 50% 8%,#22d3ee29,#0000 20%),radial-gradient(circle at 50% 52%,#14b8a63d,#0000 28%),linear-gradient(#7dd3fc0d 1px,#0000 1px) 0 0/44px 44px,linear-gradient(90deg,#7dd3fc0d 1px,#0000 1px) 0 0/44px 44px,#071421;place-items:center;display:grid}.tech-grid-glow{opacity:.75;background:linear-gradient(90deg,#0000,#22d3ee1f,#0000),radial-gradient(circle,#0088ff0d 0%,#0000 72%);animation:5.5s linear infinite techScanEffect;position:absolute;inset:0}.command-visual:before,.command-visual:after{content:"";border:1px dashed #22d3ee52;border-radius:50%;width:360px;height:140px;position:absolute;transform:rotateX(68deg)}.command-visual:before{top:28px}.command-visual:after{bottom:18px}.command-visual img{z-index:1;object-fit:contain;filter:drop-shadow(0 28px 40px #0000005c);width:min(560px,88%);max-height:440px;animation:6s ease-in-out infinite machineFloat;position:relative}.visual-stat{z-index:2;background:radial-gradient(circle,#00d0ff1a 0%,#00d0ff05 58%,#0000 72%);border:1px solid #00d0ff2e;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:122px;height:122px;animation:4s ease-in-out infinite hudFloat;display:flex;position:absolute;box-shadow:inset 0 0 24px #00d0ff14,0 0 28px #00d0ff14}.visual-stat strong{color:#e0f2fe;text-shadow:0 0 12px #00d0ffad;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:28px;line-height:1;display:block}.visual-stat span{color:#8aa5b9;text-align:center;letter-spacing:1px;margin-top:6px;padding:0 12px;font-size:13px}.visual-stat.danger{background:radial-gradient(circle,#fb71851a 0%,#fb718505 58%,#0000 72%);border-color:#fb718538;box-shadow:inset 0 0 24px #fb718514,0 0 28px #fb718514}.visual-stat.danger strong{text-shadow:0 0 12px #fb7185ad}.hud-ring-spin,.hud-ring-arc{pointer-events:none;border-radius:50%;position:absolute}.hud-ring-spin{opacity:.65;border:1px dashed #00d0ff57;animation:10s linear infinite orbitSpin;inset:-7px}.hud-ring-arc{filter:drop-shadow(0 0 5px #00d0ff);border:3px solid #0000;border-left:6px solid #00d0ff;border-right:0 #0000;inset:-2px}.hud-ring-arc.reverse{border:3px solid #0000;border-left:0 #0000;border-right:6px solid #00d0ff}.visual-stat.danger .hud-ring-spin{border-color:#fb718557}.visual-stat.danger .hud-ring-arc{filter:drop-shadow(0 0 5px #fb7185);border-left-color:#fb7185}.visual-stat-a{top:12%;left:7%}.visual-stat-b{animation-delay:-1.2s;top:16%;right:7%}.visual-stat-c{animation-delay:-2.1s;bottom:15%;left:9%}.visual-stat-d{animation-delay:-3s;bottom:13%;right:8%}.visual-foot{z-index:2;color:#8aa5b9;gap:10px;font-size:12px;display:flex;position:absolute;bottom:18px;right:18px}.visual-foot b{color:#67e8f9}@keyframes hudFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes headerPulseLine{0%,to{opacity:.35}50%{opacity:1}}@keyframes headerGlow{0%,to{filter:drop-shadow(0 0 8px #00e5ff66)}50%{filter:drop-shadow(0 0 16px #00e5ffcc)}}@keyframes machineFloat{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-10px)scale(1.01)}}@keyframes orbitSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes techScanEffect{0%{transform:translate(-120%)}to{transform:translate(160%)}}@media (prefers-reduced-motion:reduce){.tech-grid-glow,.command-visual img,.visual-stat,.hud-ring-spin{animation:none}}.map-empty{color:#8aa5b9;place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.pin{background:#22c55e;border-radius:50%;width:14px;height:14px;position:absolute;box-shadow:0 0 0 6px #22c55e24}.pin-1{background:#f59e0b;box-shadow:0 0 0 6px #f59e0b29}.pin-2{background:#ef4444;box-shadow:0 0 0 6px #ef44442e}.command-alerts{z-index:2;overscroll-behavior:contain;scrollbar-gutter:stable;flex:auto;gap:10px;min-height:0;padding-right:7px;display:grid;position:relative;overflow-y:auto}.command-alerts div{border-bottom:1px solid #7dd3fc1a;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;padding-bottom:10px;display:grid}.command-alerts svg{color:#f59e0b}.command-alerts span{color:#d9ecf7}.command-alerts small{color:#7890a8;margin-top:3px;font-size:11px;display:block}.command-alerts em{color:#fbbf24;font-style:normal}.command-alerts:focus-visible,.broadcast-list:focus-visible,.command-rank-list:focus-visible{outline-offset:3px;outline:2px solid #22d3eeb8}.command-alerts::-webkit-scrollbar{width:6px}.broadcast-list::-webkit-scrollbar{width:6px}.command-rank-list::-webkit-scrollbar{width:6px}.command-alerts::-webkit-scrollbar-track{background:#7dd3fc0f}.broadcast-list::-webkit-scrollbar-track{background:#7dd3fc0f}.command-rank-list::-webkit-scrollbar-track{background:#7dd3fc0f}.command-alerts::-webkit-scrollbar-thumb{background:#22d3ee75;border-radius:999px}.broadcast-list::-webkit-scrollbar-thumb{background:#22d3ee75;border-radius:999px}.command-rank-list::-webkit-scrollbar-thumb{background:#22d3ee75;border-radius:999px}.command-broadcast{min-height:0}.broadcast-list{overscroll-behavior:contain;scrollbar-gutter:stable;flex:auto;gap:6px;min-height:0;padding-right:7px;display:grid;overflow-y:auto}.broadcast-list div,.command-rank-list div{border-bottom:1px solid #7dd3fc1a;align-items:center;gap:8px;padding:5px 0 7px;display:grid}.broadcast-list div{grid-template-columns:20px 70px 1fr auto}.broadcast-list svg{color:#22d3ee}.broadcast-list span,.broadcast-list small,.command-rank-list small{color:#8aa5b9;font-size:12px}.broadcast-list strong,.command-rank-list span{color:#d9ecf7}.command-rank-list{overscroll-behavior:contain;scrollbar-gutter:stable;flex:auto;gap:10px;min-height:0;padding-right:7px;display:grid;overflow-y:auto}.command-rank-list div{grid-template-columns:34px 1fr auto auto}.command-rank-list b{color:#22d3ee;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.command-rank-list strong{color:#fbbf24}.operator-performance-card{min-height:0}.command-footer{z-index:2;color:#5c7798;letter-spacing:.5px;background:linear-gradient(#0000,#00e5ff0d);border-top:1px solid #00d0ff59;flex-shrink:0;justify-content:space-between;align-items:center;height:22px;padding:0 16px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;display:flex;position:relative}@media (width<=900px){body{min-width:0}.app{grid-template-columns:1fr}.sidebar{scrollbar-gutter:auto;height:auto;position:static;overflow-y:visible}.metric-grid,.workspace-grid,.score-summary,.operator-layout{grid-template-columns:1fr}.command-header{grid-template-columns:minmax(0,1fr) minmax(0,1fr);row-gap:10px;height:auto;min-height:126px;padding-top:14px}.command-title-block{grid-area:1/1/auto/-1}.command-header-left{grid-area:2/1}.command-actions{grid-area:2/2}.command-grid{flex:none;grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;min-height:0}.command-card{grid-area:auto/1}.kpis{min-height:228px}.command-risk-card,.command-type-card,.command-trend-card,.command-broadcast,.operator-performance-card{min-height:300px}.command-visual-card{min-height:560px}.command-monitor-card{min-height:420px}.panel-wide,.map-card,.quick-panel,.kpis{grid-area:auto}}@media (width<=600px){.command-page{padding:0}.command.standalone{border:0;border-radius:0;min-height:100vh}.command-header{grid-template-columns:minmax(0,1fr);min-height:188px;padding-inline:14px}.command-title-block,.command-header-left,.command-actions{grid-column:1}.command-title-block{grid-row:1}.command-header-left{flex-wrap:wrap;grid-row:2}.command-actions{grid-row:3;justify-content:space-between;width:100%}.command-title-block h1{letter-spacing:1px;font-size:22px}.command-grid{gap:10px;padding:8px 10px 12px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));min-height:340px}.command-visual-card{min-height:480px}.visual-stat{width:96px;height:96px}.visual-stat strong{font-size:22px}.monitor-board>div{grid-template-columns:minmax(0,1fr) auto}.monitor-board>div>strong{grid-area:1/1}.monitor-board>div>span,.monitor-board>div>small{grid-column:1/-1}.monitor-board>div>em{grid-area:1/2}.broadcast-list div{grid-template-columns:20px 58px minmax(0,1fr)}.broadcast-list div small{grid-column:2/-1}}.modal-card--wide{width:calc(100vw - 40px);max-width:1120px}.detail-summary{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:14px;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 20px;margin-bottom:18px;padding:16px 18px;display:grid}.detail-summary>div{flex-direction:column;gap:4px;min-width:0;display:flex}.detail-summary span{color:var(--text-muted);letter-spacing:.02em;font-size:12px}.detail-summary strong{color:var(--text-main);word-break:break-word;font-size:14px;font-weight:600;line-height:1.35}.detail-summary em{width:fit-content;color:var(--text-main);border:1px solid var(--border-subtle);background:#ffffff0a;border-radius:999px;justify-content:flex-start;align-items:center;padding:4px 10px;font-size:13px;font-style:normal;display:inline-flex}.detail-summary em.warning{color:var(--amber,#e9b452);background:#e9b4521f;border-color:#e9b45247}.detail-summary em.danger{color:var(--red,#da6359);background:#da63591a;border-color:#da635940}.user-avatar-cell{align-items:center;gap:10px;display:flex}.user-avatar-cell img,.user-avatar-cell>span{object-fit:cover;color:#225a78;background:#e3eff4;border-radius:50%;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.avatar-upload-button{color:#315e7b;cursor:pointer;white-space:nowrap;background:#f6fafb;border:1px solid #1f536f29;border-radius:8px;padding:7px 10px;font-size:12px;position:relative}.avatar-upload-button input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.submitter-identity{align-items:center;gap:12px;margin-top:8px;display:flex}.submitter-identity img,.submitter-avatar-fallback{object-fit:cover;color:#225a78;background:#e3eff4;border-radius:50%;place-items:center;width:48px;height:48px;font-size:18px;font-weight:800;display:grid}.submitter-identity-copy{flex-direction:column;gap:3px;display:flex}.submitter-identity-copy strong{color:#263d4c}.submitter-identity-copy small{color:#71818d}.review-subhead{color:var(--text-main);margin-top:8px;padding:2px 0 10px 2px;font-size:13px;font-weight:600}.material-review{flex-direction:column;gap:18px;margin-bottom:6px;display:flex}.temporary-detail-copy{color:var(--text-main);padding:16px 18px;line-height:1.65}.temporary-detail-copy p{margin:0}.temporary-detail-copy p+p{margin-top:8px}.temporary-device-list{flex-wrap:wrap;gap:8px;padding:16px 18px;display:flex}.temporary-material-description{color:var(--text-muted);padding:10px 18px 0;font-size:12px}.asset-timeline-modal .modal-body{background:#eef3f39e}.asset-timeline{gap:0;max-width:960px;margin:0 auto;display:grid;position:relative}.asset-timeline:before{content:"";background:#176f6833;width:1px;position:absolute;top:12px;bottom:12px;left:10px}.asset-timeline-item{grid-template-columns:22px minmax(0,1fr);gap:14px;padding-bottom:16px;display:grid;position:relative}.asset-timeline-marker{z-index:1;padding-top:22px;position:relative}.asset-timeline-marker span{border:3px solid var(--surface);background:var(--accent);border-radius:50%;width:11px;height:11px;margin-left:5px;display:block;box-shadow:0 0 0 1px #176f683d}.asset-timeline-marker--project span{background:#71828a}.asset-timeline-marker--maintenance span{background:#c07a25}.asset-timeline-marker--safety_meeting span{background:#38758b}.asset-timeline-card{border:1px solid var(--border-subtle);background:var(--surface);border-radius:15px;min-width:0;padding:16px 18px;box-shadow:0 1px 3px #193a3d0b}.asset-timeline-card-head{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.asset-timeline-card-head h4{color:var(--text-main);margin:4px 0 0;font-size:15px}.asset-timeline-card-head time{color:var(--text-muted);font-variant-numeric:tabular-nums;flex:none;font-size:12px}.asset-timeline-type{color:var(--accent);font-size:11px;font-weight:700}.asset-timeline-meta{color:var(--text-muted);flex-wrap:wrap;gap:8px 16px;margin-top:11px;font-size:12px;display:flex}.asset-timeline-meta span{align-items:center;gap:5px;display:inline-flex}.asset-timeline-card-foot{border-top:1px solid var(--border-subtle);color:var(--text-muted);justify-content:space-between;align-items:center;gap:16px;margin-top:13px;padding-top:11px;font-size:12px;display:flex}.asset-timeline-card-foot>span{align-items:center;gap:5px;display:inline-flex}.asset-timeline-detail-button{color:var(--accent);cursor:pointer;background:0 0;border:0;align-items:center;gap:3px;font-weight:700;display:inline-flex}.asset-timeline-detail-button:hover{text-decoration:underline}.asset-detail-overlay{z-index:1300;padding:28px}.asset-detail-modal{width:min(760px,100vw - 40px);max-height:min(820px,100vh - 56px)}.asset-detail-body{gap:18px;display:grid;overflow-y:auto}.asset-detail-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.asset-detail-meta>span{border:1px solid var(--border-subtle);background:var(--surface-muted);border-radius:10px;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:2px 8px;padding:11px 12px;display:grid}.asset-detail-meta svg{color:var(--accent);grid-row:1/span 2}.asset-detail-meta small{color:var(--text-muted);font-size:11px}.asset-detail-meta strong{overflow-wrap:anywhere;min-width:0;font-size:13px}.asset-detail-section{padding-top:2px}.asset-detail-section h4{color:var(--text-main);margin:0 0 9px;font-size:14px}.asset-detail-section h4 small{color:var(--text-muted);margin-left:5px;font-weight:400}.asset-detail-section p{color:var(--text-main);overflow-wrap:anywhere;margin:0;line-height:1.65}.asset-detail-empty{border:1px dashed var(--border-subtle);color:var(--text-muted);text-align:center;border-radius:10px;padding:24px}.asset-timeline-photos{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:9px;margin-top:13px;display:grid}.asset-timeline-photos img{aspect-ratio:4/3;object-fit:cover;cursor:zoom-in;border-radius:10px;width:100%;display:block}@media (width<=720px){.asset-timeline-card-head{flex-direction:column;align-items:flex-start;gap:5px}.asset-detail-meta{grid-template-columns:minmax(0,1fr)}.asset-timeline-photos{grid-template-columns:repeat(2,minmax(0,1fr))}}.temporary-work-row{grid-template-columns:minmax(190px,1.25fr) minmax(160px,1.05fr) minmax(190px,1.15fr) minmax(140px,.9fr) minmax(105px,.7fr) minmax(210px,1.15fr);column-gap:18px}.temporary-work-cell{flex-direction:column;align-items:flex-start;gap:5px;min-width:0;display:flex}.temporary-work-cell strong,.temporary-work-cell small{max-width:100%;display:block}.temporary-work-cell small{color:var(--text-muted);line-height:1.35}.temporary-work-location{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.temporary-work-row .row-actions{flex-wrap:nowrap;justify-content:flex-start}.temporary-work-row .row-actions button{justify-content:center;min-width:60px}.temporary-review-panel{background:#f7fafb;border:1px solid #1f536f29;border-radius:14px;margin-top:22px;padding:20px}.temporary-review-heading,.temporary-review-actions,.temporary-review-actions>div{justify-content:space-between;align-items:center;gap:14px;display:flex}.temporary-review-heading h3{margin:0}.temporary-review-heading p,.temporary-review-actions p{color:var(--text-muted);margin:4px 0 0;font-size:12px}.temporary-review-heading>span{color:#9a6514;background:#e9b45224;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:700}.temporary-review-results{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px;display:grid}.temporary-review-results button{border:1px solid var(--border-subtle);min-height:42px;color:var(--text-main);background:#eef3f5;border-radius:9px}.temporary-review-results button.active{color:#f5fbfb;background:#1f6f78;border-color:#1f6f78;box-shadow:0 7px 16px #1f6f7829}.temporary-review-validation{color:#a33f36;background:#b2494012;border:1px solid #b2494038;border-radius:8px;margin-top:14px;padding:10px 12px;font-size:12px}.temporary-review-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:16px;display:grid}.temporary-review-fields label,.temporary-review-comment{flex-direction:column;gap:8px;display:flex}.temporary-review-fields label>span,.temporary-review-comment>span{color:var(--text-main);font-size:13px;font-weight:600}.temporary-review-fields span small{color:var(--text-muted);font-weight:400}.temporary-review-fields input,.temporary-review-fields select,.temporary-review-comment textarea{box-sizing:border-box;border:1px solid var(--border-subtle);width:100%;color:var(--text-main);background:#fbfcfd;border-radius:9px}.temporary-review-fields input,.temporary-review-fields select{height:42px;padding:0 12px}.temporary-review-comment{margin-top:16px}.temporary-review-comment span em{color:#b24940;font-size:11px;font-style:normal}.temporary-review-comment textarea{resize:vertical;min-height:108px;padding:12px;line-height:1.55}.temporary-review-fields label.has-error input,.temporary-review-fields label.has-error select,.temporary-review-comment.has-error textarea{border-color:#b24940;box-shadow:0 0 0 3px #b249401a}.temporary-review-field-error{color:#a33f36;font-size:12px;font-style:normal}.modal-field.has-error input,.modal-field.has-error textarea{border-color:#b24940;box-shadow:0 0 0 3px #b249401a}.modal-field .temporary-review-field-error{margin-top:4px;display:block}.has-error>input,.has-error>select,.has-error>textarea,.has-error .score-field-stack>input{box-shadow:0 0 0 3px #b249401a;border-color:#b24940!important}.form-wide.has-error>.check-grid,.form-wide.has-error>.task-material-options,.task-material-picker.has-error{border-color:#b24940;box-shadow:0 0 0 3px #b2494014}.field-error-message{color:#a33f36;margin-top:5px;font-size:12px;font-style:normal;font-weight:500;display:block}.registry-field-help{color:#64736f;margin-top:5px;font-size:12px;font-weight:400;line-height:1.45;display:block}.score-field-stack{flex-direction:column;gap:3px;min-width:0;display:flex}.score-field-stack>input{box-sizing:border-box;width:100%;min-width:0}.toast-viewport{z-index:140;pointer-events:none;flex-direction:column;gap:8px;width:min(420px,100vw - 32px);display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%)}.popconfirm-root{display:inline-flex;position:relative}.popconfirm-card{z-index:160;box-sizing:border-box;color:#294858;background:#fbfdfd;border:1px solid #1f536f24;border-radius:11px;flex-direction:column;gap:9px;width:280px;padding:12px;animation:.16s ease-out both popconfirm-in;display:flex;position:fixed;box-shadow:0 16px 38px #14303c33}.popconfirm-card--top{transform:translateY(-100%)}.popconfirm-card:after{content:"";border:6px solid #0000;position:absolute;right:18px}.popconfirm-card--top:after{border-top-color:#fbfdfd;top:100%}.popconfirm-card--bottom:after{border-bottom-color:#fbfdfd;bottom:100%}.popconfirm-copy{align-items:center;gap:7px;display:flex}.popconfirm-copy>svg{color:#b24940}.popconfirm-card small{color:#6c7e87;line-height:1.45}.popconfirm-actions{justify-content:flex-end;gap:7px;display:flex}.popconfirm-actions button{min-height:32px;padding:0 10px}@keyframes popconfirm-in{0%{opacity:0;transform:translateY(4px)scale(.98)}to{opacity:1;transform:none}}.app-toast{color:#294858;pointer-events:auto;background:#f9fcfc;border:1px solid #1f536f21;border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;animation:.2s ease-out both toast-in;display:grid;box-shadow:0 14px 34px #14303c29}.app-toast.success>svg{color:#16825d}.app-toast.error>svg{color:#b24940}.app-toast.info>svg{color:#1f6f78}.app-toast button{color:#6c7e87;background:0 0;border:0;border-radius:7px;place-items:center;width:26px;height:26px;display:grid}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:none}}.shake-error{animation:.36s ease-in-out temporary-review-shake}@keyframes temporary-review-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}50%{transform:translate(6px)}75%{transform:translate(-3px)}}@media (prefers-reduced-motion:reduce){.shake-error,.app-toast{animation:none}}.temporary-review-actions{border-top:1px solid var(--border-subtle);margin-top:16px;padding-top:16px}.temporary-review-actions p{margin:0}.temporary-review-actions button{justify-content:center;min-width:104px}.material-block{border:1px solid var(--border-subtle);background:var(--surface-2);border-radius:14px;overflow:hidden}.material-block-head{border-bottom:1px dashed var(--border-subtle);background:#ffffff05;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;display:flex}.material-block-head strong{color:var(--text-main);margin-right:8px;font-size:15px;font-weight:600}.material-block-code{color:var(--text-muted);background:#7f7f7f14;border-radius:6px;padding:2px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.material-block-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;display:flex}.material-block-meta span{font-variant-numeric:tabular-nums}.material-block-meta .tag{border:1px solid var(--border-subtle);color:var(--text-muted);background:#ffffff0d;border-radius:999px;align-items:center;padding:3px 9px;font-size:11px;font-style:normal;display:inline-flex}.material-block-meta .tag.required{color:var(--teal,#20998f);background:#20998f1f;border-color:#20998f4d;font-weight:600}.material-block-meta .tag.warn{color:var(--amber,#e9b452);background:#e9b4521a;border-color:#e9b45247}.material-files-empty{text-align:center;color:var(--text-muted);border-top:none;padding:26px;font-size:13px}.material-files{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:14px;padding:16px 18px;display:grid}.file-thumb{background:var(--surface-1);border:1px solid var(--border-subtle);cursor:zoom-in;border-radius:12px;flex-direction:column;margin:0;transition:transform .14s,box-shadow .14s,border-color .14s;display:flex;overflow:hidden}.file-thumb:hover{border-color:#20998f6b;transform:translateY(-1px);box-shadow:0 8px 22px #0000002e}.file-thumb-img{aspect-ratio:4/3;cursor:pointer;background:#0b0d11;border:0;justify-content:center;align-items:center;width:100%;padding:0;display:flex;overflow:hidden}.file-thumb-img img{object-fit:cover;width:100%;height:100%;display:block}.file-thumb-placeholder{width:100%;height:100%;color:var(--text-muted);letter-spacing:.06em;background:linear-gradient(135deg,#7f7f7f0f,#7f7f7f05);justify-content:center;align-items:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;display:flex}.file-thumb figcaption{flex-direction:column;gap:6px;padding:10px 12px 12px;display:flex}.file-thumb-name{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:12px;font-weight:600;overflow:hidden}.file-thumb-info{color:var(--text-muted);flex-wrap:wrap;gap:6px 10px;margin:0;padding:0;font-size:11px;list-style:none;display:flex}.file-thumb-info li:before{content:""}.file-watermark,.file-gps{word-break:break-word;border-radius:7px;margin:0;padding:5px 7px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.45}.file-watermark{color:var(--teal,#20998f);background:#20998f14;border:1px dashed #20998f47}.file-gps{color:var(--amber,#e9b452);background:#e9b45214;border:1px dashed #e9b45242}.preview-modal .modal-body{grid-template-columns:1fr 260px;align-items:start;gap:18px;padding:14px 22px 22px;display:grid}.preview-main{border:1px solid var(--border-subtle);background:#07090d;border-radius:12px;justify-content:center;align-items:center;min-height:320px;max-height:60vh;display:flex;overflow:hidden}.preview-main img{object-fit:contain;width:100%;height:auto;max-height:60vh;display:block}.preview-placeholder{letter-spacing:0;color:var(--text-muted);flex-direction:column;gap:14px;font-family:inherit;font-size:13px}.preview-meta{color:var(--text-main);background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:12px;flex-direction:column;gap:10px;padding:14px 16px;font-size:12px;display:flex}.preview-meta p{word-break:break-word;margin:0;line-height:1.5}.preview-meta strong{width:72px;color:var(--text-muted);margin-right:4px;font-weight:500;display:inline-block}@media (width<=860px){.detail-summary{grid-template-columns:repeat(2,1fr)}.preview-modal .modal-body{grid-template-columns:1fr}}.login-screen{background:radial-gradient(520px 300px at 52% 16%,#14b8a61f,#0000 62%),#eef2ef;place-items:center;min-height:100vh;padding:28px;display:grid}.login-panel{background:#fbfcf9;border:1px solid #122d2614;border-radius:14px;grid-template-columns:1fr 420px;width:min(980px,100%);display:grid;overflow:hidden;box-shadow:0 34px 80px -56px #083f3f73}.login-brand{color:#edfdf9;background:linear-gradient(135deg,#075f5d,#083f3f);padding:44px}.login-mark{background:#fbfdfb;border:2px solid #edfdf99e;border-radius:22px;place-items:center;width:116px;height:116px;display:grid;overflow:hidden;box-shadow:0 18px 38px #01232347,0 0 0 7px #edfdf914}.login-mark img{object-fit:contain;width:100%;height:100%;padding:6px}.login-brand h1{color:#edfdf9;margin:36px 0 10px;font-size:34px;line-height:1.08}.login-brand p{color:#edfdf9bd;margin:0}.login-brand:after{color:#edfdf9b8;letter-spacing:.08em;margin-top:10px;font-size:14px;display:block}.login-form{align-content:center;gap:18px;padding:44px;display:grid}.login-form label{gap:8px;display:grid}.login-form label span{color:#485565;font-size:13px;font-weight:700}.login-form input{color:#17202a;background:#f5f7f5;border:1px solid #d6dde4;border-radius:8px;outline:0;height:42px;padding:0 12px}.login-form input:focus{border-color:#0f766e;box-shadow:0 0 0 3px #0f766e1f}.login-error{color:#b91c1c;background:#fff1f2;border:1px solid #fecaca;border-radius:8px;padding:10px 12px;font-size:13px}.login-submit{color:#ecfeff;background:#0f766e;border:0;border-radius:8px;height:44px;font-weight:800}.login-submit:disabled{opacity:.65;cursor:not-allowed}.metric-cards{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:18px;display:grid}.metric-card{background:#fbfcfd;border:1px solid #e5ebf0;border-radius:10px;padding:14px 16px}.metric-card:not(:has(svg)){flex-direction:column;gap:4px}.metric-card span{color:#728091;font-size:12px;font-weight:700}.metric-card strong{color:#0f766e;font-size:26px;line-height:1}.metric-card small{color:#94a3b8;font-size:12px}.registry-row em.danger{color:#b91c1c;background:#fee2e2}.registry-row em.warning{color:#b45309;background:#fff0cf}.registry-row em.muted{color:#778391;background:#f1f5f7}.filters input[type=search],.filters input[type=month]{min-width:180px}.filters a{color:#0f766e;font-weight:700;text-decoration:none}.filters a:hover{text-decoration:underline}.submission-version-row{grid-template-columns:100px 120px 1fr 150px 100px}.version-link{color:#0f766e;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.version-link:hover{text-decoration:underline}.auto-score-btn{color:#0f766e;cursor:pointer;background:0 0;border:1px solid #0f766e;border-radius:7px;min-height:36px;padding:0 12px;font-weight:700}.auto-score-btn:hover{background:#f0fdfa}.score-breakdown{color:#115e59;background:#f0fdfa;border-radius:8px;margin-top:10px;padding:10px 14px;font-size:13px}.score-breakdown li{padding:3px 0}.modal-card--requirements{width:min(1280px,100vw - 32px)}.material-requirements{border:1px solid var(--border-subtle,#dfe7ec);border-radius:12px;flex-direction:column;display:flex;overflow-x:auto}.req-row{border-bottom:1px solid #eef2f5;grid-template-columns:minmax(220px,1.5fr) 64px 76px 76px 88px 76px minmax(180px,1fr) 68px;align-items:center;gap:8px;min-width:980px;padding:8px 10px;display:grid}.req-row:last-child{border-bottom:none}.req-row.req-head{background:var(--surface-2,#f2f7f6);color:#697586;min-height:34px;font-size:12px;font-weight:700}.req-row input,.req-row select{color:#1f2937;box-sizing:border-box;background:#fbfcf9;border:1px solid #d6dde4;border-radius:6px;width:100%;min-height:30px;padding:2px 6px;font-size:13px}.req-row input:focus,.req-row select:focus{border-color:#0f766e;outline:none;box-shadow:0 0 0 3px #0f766e1f}.req-row .col-flag,.req-row .col-num input{text-align:center}.col-op{justify-content:center;display:flex}.row-op-danger{color:#dc2626;cursor:pointer;white-space:nowrap;background:#fff5f5;border:1px solid #fecaca;border-radius:6px;justify-content:center;align-items:center;width:56px;height:30px;padding:0 10px;line-height:1;display:inline-flex}.row-op-danger:hover{background:#fee2e2}.material-footer{justify-content:space-between;align-items:center;padding:8px 2px;display:flex}.material-footer-actions{align-items:center;gap:12px;display:flex}.section-save-button{min-width:108px}.business-requirement-table .business-req-row{grid-template-columns:minmax(220px,1.5fr) 88px 88px 76px minmax(180px,1fr) 76px;min-width:820px}.business-requirement-head .row-op-danger{flex:none;width:auto;min-width:72px}.record-detail-content{border:1px solid var(--border-subtle,#dfe7ec);background:var(--surface-2,#f5f8f7);color:var(--text-main,#17202a);border-radius:12px;padding:16px 18px}.record-detail-content>span{color:var(--text-muted,#637381);margin-bottom:8px;font-size:12px;font-weight:700;display:block}.record-detail-content p{white-space:pre-wrap;margin:0;line-height:1.7}.alert-list .alert-link{cursor:pointer}.alert-list .alert-link:hover{background:#0f766e0b;border-color:#0f766e73}.alert-list .alert-link:focus-visible{outline-offset:2px;outline:3px solid #0f766e38}.danger-text{color:#dc2626;font-size:13px;font-weight:600}.row-actions .row-op-danger{width:36px;height:36px}.detail-photos{flex-wrap:wrap;gap:10px;display:flex}.detail-photo{object-fit:cover;border:1px solid var(--border-subtle,#dfe7ec);cursor:zoom-in;border-radius:8px;width:96px;height:96px}.record-detail-content .detail-photos{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:14px;padding-top:10px;display:grid}.record-detail-content .detail-photo{aspect-ratio:4/3;object-fit:cover;border:1px solid var(--border-subtle,#dfe7ec);background:#0b0d11;border-radius:10px;width:100%;height:auto;transition:transform .16s,border-color .16s,box-shadow .16s}.record-detail-content .detail-photo:hover{border-color:#20998f6b;transform:translateY(-1px);box-shadow:0 8px 22px #0000002e}.temporary-review-panel:has(.temporary-review-validation) .temporary-review-comment textarea{border-color:var(--danger,#c94b4b);box-shadow:0 0 0 3px #c94b4b1a}@media (prefers-reduced-motion:reduce){.record-detail-content .detail-photo{transition:none;animation:none}}.hint-text{color:#8a6d1d;background:#fdf3e0;border-radius:6px;padding:4px 8px}.pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 4px 4px;display:flex}.page-info{color:var(--text-muted,#637381);font-size:12.5px}.page-actions{align-items:center;gap:6px;display:flex}.page-btn{color:#0f766e;cursor:pointer;background:0 0;border:1px solid #0f766e47;border-radius:8px;align-items:center;gap:4px;min-width:32px;height:30px;padding:0 10px;font-size:13px;transition:background .15s;display:inline-flex}.page-btn:hover:not(:disabled){background:#0f766e14}.page-btn:disabled{opacity:.4;cursor:not-allowed}.project-calendar-overview{grid-template-columns:minmax(190px,1fr)!important}.project-calendar-overview article{color:#314d5b;text-align:left;background:#f8fbfc;border:1px solid #1f536f17;border-radius:14px;padding:14px}.project-calendar-overview article.active{border-color:#1f536f;box-shadow:0 8px 24px #1f536f17}.matrix-type-icons{justify-content:center;align-items:center;gap:2px;margin-top:2px;display:flex}.matrix-legend .matrix-type-icons:before{content:none}.matrix-type-legend{justify-content:flex-end;align-items:center;gap:10px;display:flex!important}.matrix-type-legend em{white-space:nowrap;align-items:center;gap:3px;font-style:normal;display:inline-flex}@media (width<=760px){.project-calendar-overview{grid-template-columns:1fr!important}.matrix-type-legend{justify-content:flex-start}}.calendar-matrix-toolbar{justify-content:space-between;align-items:end;gap:16px;margin-bottom:16px;display:flex}.calendar-matrix-toolbar label{color:#667786;flex-direction:column;gap:7px;font-size:13px;display:flex}.calendar-matrix-toolbar select,.matrix-month-control input{color:#243e4e;background:#f8fbfc;border:1px solid #1f536f24;border-radius:10px;height:40px;padding:0 12px}.matrix-month-control{align-items:center;gap:7px;display:flex}.matrix-month-control button{color:#345b6d;background:#f8fbfc;border:1px solid #1f536f1f;border-radius:10px;place-items:center;width:40px;height:40px;display:grid}.project-calendar-overview{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:16px;display:grid}.project-calendar-overview button{text-align:left;color:#314d5b;background:#f8fbfc;border:1px solid #1f536f17;border-radius:14px;padding:14px}.project-calendar-overview button.active{border-color:#1f536f;box-shadow:0 8px 24px #1f536f17}.project-calendar-overview span,.project-calendar-overview strong,.project-calendar-overview small{display:block}.project-calendar-overview strong{margin-top:8px;font-size:22px}.project-calendar-overview small{color:#76868e;margin-top:5px}.calendar-matrix-panel{overflow:hidden}.matrix-scroll{border:1px solid #1f536f14;border-radius:12px;max-width:100%;overflow:auto}.calendar-matrix-grid{min-width:max-content;display:grid}.matrix-user-head,.matrix-day-head,.matrix-user,.matrix-cell{box-sizing:border-box;border-bottom:1px solid #1f536f12;border-right:1px solid #1f536f12;min-height:50px}.matrix-user-head,.matrix-user{z-index:2;background:#f8fbfc;position:sticky;left:0}.matrix-user-head{z-index:4;color:#294858;padding:16px;font-weight:700}.matrix-day-head{color:#506a76;background:#f0f5f6;border-top:0;border-left:0;padding:7px 3px;font-weight:700}.matrix-day-head small{margin-top:2px;font-size:10px;font-weight:500;display:block}.matrix-user{align-items:center;gap:10px;padding:8px 12px;display:flex}.matrix-avatar{color:#1f536f;background:#dce9ec;border-radius:50%;place-items:center;width:30px;height:30px;font-size:12px;display:grid}.matrix-user strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.matrix-cell{color:#38525f;background:#f8fbfc;border-top:0;border-left:0;flex-direction:column;justify-content:center;align-items:center;padding:4px;display:flex}.matrix-cell:disabled{cursor:default}.matrix-cell.empty{background:#f6f8f8}.matrix-cell strong{font-size:14px}.matrix-cell small{margin-top:2px;font-size:9px}.matrix-cell.todo{background:#e8f1f6}.matrix-cell.pending{background:#fff2d9}.matrix-cell.approved{background:#e7f3ec}.matrix-cell.rejected{background:#fae8e6}.matrix-cell.overdue{color:#8c2520;background:#f4d9d6}.matrix-legend{color:#687b85;flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;font-size:12px;display:flex}.matrix-legend span:before{content:"";border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.matrix-legend .overdue:before{background:#8f1d18}.matrix-legend .rejected:before{background:#d65a52}.matrix-legend .pending:before{background:#d79a2f}.matrix-legend .todo:before{background:#4c83a3}.matrix-legend .approved:before{background:#4e9a72}.matrix-legend small{margin-left:auto}.calendar-detail-overlay{z-index:80;background:#12263159;justify-content:flex-end;animation:.2s ease-out both calendar-overlay-in;display:flex;position:fixed;inset:0}.calendar-detail-drawer{background:#f5f9fa;width:min(440px,92vw);height:100%;padding:24px;animation:.24s cubic-bezier(.22,.8,.3,1) both calendar-drawer-in;overflow:auto;box-shadow:-24px 0 70px #132f3c2e}.calendar-detail-head{justify-content:space-between;align-items:start;display:flex}.calendar-detail-head>div{grid-template-columns:auto auto;align-items:center;gap:7px;display:grid}.calendar-detail-head h2{margin:0}.calendar-detail-head span{color:#72838c;grid-column:1/-1}.calendar-detail-head button{background:0 0;border:0}.calendar-detail-list{flex-direction:column;gap:12px;margin-top:22px;display:flex}.calendar-detail-item{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;background:#fafdfe;border:1px solid #1f536f17;border-radius:14px;padding:16px;transition:transform .16s,border-color .16s;box-shadow:inset 4px 0 #4c83a3}.calendar-detail-item:hover:not(:disabled){border-color:#1f536f38;transform:translateY(-1px)}.calendar-detail-item:focus-visible{outline-offset:2px;outline:3px solid #1f6f7838}.calendar-detail-item:disabled{cursor:default;opacity:.82}.calendar-detail-item.pending{box-shadow:inset 4px 0 #d79a2f}.calendar-detail-item.approved{box-shadow:inset 4px 0 #4e9a72}.calendar-detail-item.rejected{box-shadow:inset 4px 0 #d65a52}.calendar-detail-item.overdue{box-shadow:inset 4px 0 #8f1d18}.calendar-detail-item>div{justify-content:space-between;display:flex}.calendar-detail-item em,.calendar-detail-item b{color:#53707d;font-size:12px;font-style:normal}.calendar-detail-item h3{margin:12px 0 7px;font-size:15px}.calendar-detail-item p{color:#6c7e87;margin:5px 0;font-size:13px}.calendar-detail-item blockquote{color:#8e3c36;background:#faecea;border-radius:8px;margin:10px 0 0;padding:10px;font-size:12px}.project-calendar-overview article.active{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 12px;min-height:0;padding:10px 14px;display:grid}.project-calendar-overview article.active span{font-size:12px}.project-calendar-overview article.active strong{grid-area:1/2/3;margin:0;font-size:20px}.project-calendar-overview article.active small{margin:0}@keyframes calendar-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes calendar-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@media (width<=760px){.calendar-matrix-toolbar{flex-direction:column;align-items:stretch}.project-calendar-overview{grid-template-columns:1fr 1fr}.matrix-legend small{width:100%;margin-left:0}}@media (prefers-reduced-motion:reduce){.calendar-detail-overlay,.calendar-detail-drawer{animation:none}.calendar-detail-item{transition:none}}
