.dashboard-page .page-heading p{font-size:12px;margin-top:7px}.dashboard-page .project-status{align-items:center}.dashboard-page .project-status>.text-button{margin-left:auto}.dashboard-page .kpi p{line-height:1.65;min-height:38px}.dashboard-page .card-heading h3{font-size:15px}.dashboard-page .dashboard-columns{grid-template-columns:1fr 1.15fr .95fr;align-items:start}.dashboard-page .compact small{display:block;font-size:11px;font-weight:400}.dashboard-page .financial-detail>div{align-items:flex-start;flex-wrap:wrap}.dashboard-page .financial-detail b{font-variant-numeric:tabular-nums}.dashboard-page .assessment-lead strong{font-size:31px}.dashboard-page .assessment-lead>div+div{padding-left:18px}.dashboard-page .assessment-lead{padding:13px 0 18px}.dashboard-page .payment-node>div>small{display:block;font-size:11px;margin-top:6px}.dashboard-page .payment-node{padding-bottom:24px}.dashboard-page .safety-plan-summary{margin-bottom:10px}.dashboard-page .empty{padding:24px 12px}.dashboard-page .risk-row{align-items:center}.dashboard-page .risk-row b{white-space:nowrap;font-size:12px}.dashboard-page .score-calculator>div.score-input{display:grid;grid-template-columns:1fr 75px;align-items:center;gap:14px;margin:0 0 14px}.score-input input[type=number]{width:75px;padding:7px 9px}.dashboard-page .score-calculator{margin-top:18px}.dashboard-page .score-calculator>small{line-height:1.7;display:block}.dashboard-page .rule-hint{margin-top:18px}.dashboard-page .rule-hint button{font-weight:600}.dashboard-notes{background:#fffbf1;border:1px solid #f1e1bd;border-radius:7px;color:#896731;padding:11px 15px;margin:0 0 18px;font-size:12px;line-height:1.8}.dashboard-notes summary{cursor:pointer;font-weight:600}.dashboard-notes ul{margin:8px 0 0;padding-left:18px}.period-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.period-picker button{border:1px solid #dce5ed;background:#f8fafc;color:#60768a;padding:8px 3px;border-radius:6px;min-height:53px;font-weight:600}.period-picker button small{display:block;color:inherit;font-weight:400;font-size:11px;margin-top:3px}.period-picker button.active{background:#e8f5f2;border-color:#9ecfc5;color:#11796c}.period-picker button:focus-visible{outline:2px solid #12877f;outline-offset:2px}.period-caption{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 0 3px;font-size:12px}.period-caption strong{font-weight:500;line-height:1.65}.basis-explanation{border-left:3px solid #1b9488;background:#eff8f6;padding:12px 13px;border-radius:4px}.basis-explanation strong{font-size:13px;color:#217e71}.basis-explanation p{font-size:12px;line-height:1.8;margin:7px 0 4px;color:#4d6f6b}.basis-explanation small{font-size:11px;line-height:1.75;display:block;color:#647e7b}.compliance-risk{margin-top:15px;padding:13px;background:#fff8ec;border:1px solid #f3e2c5;border-radius:6px}.compliance-risk strong{font-size:13px;line-height:1.7;color:#916327}.compliance-risk p{font-size:12px;color:#996427;margin:5px 0}.compliance-risk small{font-size:11px}.contract-standards>div{margin-bottom:15px}.contract-standards strong{display:inline-block;font-size:13px;margin-right:9px}.contract-standards p{font-size:12px;line-height:1.8;color:#718496;margin:7px 0}.source-trace{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:25px}.source-trace>div{background:#f3f7fa;padding:16px;border-radius:6px}.source-trace strong{font-size:13px}.source-trace p{font-size:12px;color:#73899a;margin:10px 0 0}.plain-fieldset{padding:0;margin:0;border:0;min-width:0}.parameter-version,.parameter-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.parameter-version{font-size:12px;color:#738396;margin-bottom:16px}.parameter-tabs{margin-bottom:22px;overflow:auto}.parameter-tabs button{white-space:nowrap}.parameter-heading h3{margin:0}.parameter-heading{margin:12px 0}.parameter-section{margin-bottom:24px}.parameter-row{border:1px solid #e1e8ef;border-radius:7px;background:#f8fafc;padding:15px 15px 10px;margin:12px 0}.parameter-row .field{margin-bottom:12px}.parameter-row .danger{color:#b3433e;margin:0 0 6px auto;display:flex}.parameter-row input[readonly]{color:#7a8b9a;background:#edf1f5}.year-picker{display:flex;gap:12px;align-items:center}.year-picker>.field{flex:1}.modal:focus{outline:none}.parameter-tabs~.notice{margin-bottom:20px}.dashboard-page .card-bottom{line-height:1.7}.dashboard-page .card-bottom>span{min-width:0}.dashboard-page .dashboard-source{gap:16px}.dashboard-page .dashboard-source>span{line-height:1.6}@media(max-width:1400px){.dashboard-page .dashboard-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-page .dashboard-columns>.column:last-child{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.dashboard-page .kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-page .kpi p{min-height:0}.dashboard-page .project-banner h2{font-size:21px}.dashboard-page .project-banner{gap:20px}.dashboard-page .contract-clock{width:220px}}@media(max-width:950px){.dashboard-page .dashboard-columns{grid-template-columns:minmax(0,1fr)}.dashboard-page .dashboard-columns>.column:last-child{display:flex;grid-column:auto}.dashboard-page .contract-clock{width:100%}.dashboard-page .project-status>.text-button{margin-left:0}.source-trace{grid-template-columns:1fr}.dashboard-page .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.dashboard-page .page-heading .toolbar{gap:6px}.dashboard-page .project-banner h2{font-size:19px}.dashboard-page .kpi strong{font-size:25px}.dashboard-page .project-banner p span{display:block;margin:6px 0 0}.dashboard-page .period-caption{flex-wrap:wrap}.dashboard-page .assessment-lead strong{font-size:28px}.dashboard-page .financial-detail b{font-size:11px}.dashboard-page .risk-row{flex-wrap:wrap}.parameter-row .form-grid{grid-template-columns:1fr}.parameter-version{align-items:flex-start;flex-direction:column;gap:5px}.parameter-heading .button{font-size:12px}.dashboard-page .project-status{line-height:1.8}.dashboard-page .card-bottom{flex-wrap:wrap}.parameter-tabs button{font-size:12px;padding:9px 10px}.dashboard-page .score-calculator>div>strong{font-size:22px}}.confirmation-panel{position:sticky;top:0;z-index:3;padding:16px;margin:0 0 18px;border:1px solid #e7c995;border-radius:7px;background:#fff8e9;box-shadow:0 4px 16px #24395212}.confirmation-panel strong{font-size:14px;line-height:1.7;color:#805b22}.confirmation-panel>div{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}@media(max-width:700px){.modal .form-grid{grid-template-columns:minmax(0,1fr)}.modal .field,.modal input,.modal textarea,.modal select{min-width:0}}.requirements-caption{font-size:12px;color:#526b80;line-height:1.8;margin:0 0 12px}.requirements-caption>span{display:block;color:#926229;font-weight:600}.requirement-list>button{display:flex;gap:9px;align-items:center;width:100%;border:0;border-top:1px solid #edf1f5;background:#fff;padding:12px 0;text-align:left;color:#334e65}.requirement-list>button:hover{background:#f5faf9}.requirement-list>button:focus-visible{outline:2px solid #12877f;outline-offset:2px}.requirement-list>button>span:first-child{flex:1;font-size:13px;font-weight:600}.requirement-list small{display:block;font-size:11px;color:#758597;font-weight:400;margin-top:5px}.requirement-review{display:grid;grid-template-columns:160px minmax(0,1fr);gap:16px;background:#eff7f5;border-radius:7px;padding:16px;margin:0 0 28px}.requirement-review .field{margin-bottom:0}.history-entry{padding:18px 0;border-bottom:1px solid #e0e8ed;line-height:1.8}.history-entry>div{display:flex;justify-content:space-between;gap:12px}.history-entry span,.history-entry small{font-size:12px;color:#6c8091}.history-entry p{font-size:13px;margin:8px 0}.history-entry details{font-size:12px;margin-top:10px}.history-entry summary{cursor:pointer;color:#087f78}.app-footer{gap:16px;flex-wrap:wrap}.app-footer>span{flex-shrink:0}@media(max-width:700px){.requirement-review{grid-template-columns:1fr}.history-entry>div{flex-direction:column;gap:4px}}.contract-requirements .requirement-list{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.contract-requirements .requirement-list>button{border:1px solid #e5ecef;border-radius:7px;padding:12px 10px;gap:6px}.contract-requirements .requirement-list>button>span:first-child{min-width:0}.contract-requirements .requirements-caption>span{display:inline;margin-left:16px}.contract-requirements{margin-bottom:20px}@media(max-width:1400px){.contract-requirements .requirement-list{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:950px){.contract-requirements .requirement-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.contract-requirements .requirement-list{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-requirements .requirements-caption>span{display:block;margin-left:0}}.folder-picker{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0}.folder-picker span,.folder-source{overflow-wrap:anywhere}.folder-hint{font-size:12px;color:var(--muted);line-height:1.8}.folder-filters,.folder-fields{display:flex;gap:14px;flex-wrap:wrap}.folder-filters .field,.folder-fields .field{flex:1;min-width:160px}.folder-groups{max-height:46vh;overflow:auto;margin:15px 0;padding-right:6px}.folder-group{padding:16px;border:1px solid var(--line);border-radius:8px;margin-bottom:12px;background:#f8fbfc}.folder-source{display:block;color:#73869a;margin:8px 0;font-size:12px}.folder-group summary{cursor:pointer;color:#187d77;font-size:13px}.folder-files{display:grid;gap:8px;margin-top:12px}.folder-files span{overflow-wrap:anywhere;min-width:0}.folder-result{color:#147e73;font-size:13px;margin-bottom:0}.folder-group .amber-text{font-size:13px}.folder-fields input,.folder-fields select{min-width:0;width:100%}@media(max-width:600px){.folder-fields .field,.folder-filters .field{flex-basis:100%;min-width:0}.folder-groups{max-height:42vh}.folder-group{padding:12px}.folder-picker .button{width:100%}}:root{font-family:Inter,Microsoft YaHei,PingFang SC,Arial,sans-serif;color:#26364a;background:#f1f4f8;font-synthesis:none;text-rendering:optimizeLegibility;font-size:14px;--navy:#102d49;--teal:#12877f;--border:#e3e9f0;--muted:#7b8a9d;--red:#c54142;--amber:#b87820}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}input,select,textarea{border:1px solid #d5dee8;border-radius:7px;padding:10px 12px;background:#fff;color:#273b50;min-width:0;max-width:100%}textarea{width:100%;resize:vertical;line-height:1.7}input:focus,select:focus,textarea:focus{outline:2px solid #87c8c2;outline-offset:1px}input[type=checkbox]{width:17px;height:17px;accent-color:var(--teal);flex:none}input[type=range]{padding:0;width:100%;accent-color:var(--teal)}a{color:var(--teal)}h1,h2,h3,h4,p{margin-top:0}h1{font-size:26px;letter-spacing:-.5px;margin-bottom:7px}h2{font-size:21px}h3{font-size:16px}p{line-height:1.75}small{font-size:12px;color:var(--muted);line-height:1.5}strong,b{font-weight:600}svg{flex-shrink:0}hr{border:0;border-top:1px solid var(--border);margin:24px 0}.app-shell{display:flex;min-height:100vh}.app-shell>aside{width:216px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:31px 17px 0;z-index:30}.brand{display:flex;gap:10px;align-items:center;padding:0 12px 38px;color:var(--navy)}.brand>svg{color:var(--teal)}.brand strong{display:block;font-size:22px;letter-spacing:2px}.brand span{display:block;color:#8a98a9;font-size:12px;margin-top:5px}.nav-label{font-size:12px;color:#8a97a5;padding:0 15px 12px}nav{display:flex;flex-direction:column;gap:7px}nav button{display:flex;align-items:center;gap:12px;text-align:left;border:0;background:none;color:#667589;padding:13px;border-radius:7px;white-space:nowrap}nav button.active{background:#eaf4f3;color:#087b73;font-weight:600}nav button.active svg:last-child{margin-left:auto}nav button:hover{background:#f2f7f8}.sidebar-note{margin-top:auto;padding:25px 12px;font-size:12px;color:#64798d;line-height:2}.mini-dot{display:inline-block;width:6px;height:6px;background:var(--teal);border-radius:50%;margin-right:7px}.profile{display:flex;gap:9px;align-items:center;border-top:1px solid var(--border);padding:20px 1px}.avatar{width:34px;height:34px;display:grid;place-items:center;background:#edf2fa;color:#46638c;border-radius:50%;font-size:12px}.profile strong,.profile small{display:block}.profile button{margin-left:auto;border:0;color:#7d8b9b;background:none}.workspace{margin-left:216px;width:calc(100% - 216px);min-width:0;display:flex;flex-direction:column}.topbar{height:65px;display:flex;justify-content:space-between;align-items:center;background:#fff;border-bottom:1px solid var(--border);padding:0 32px}.topbar>div{display:flex;align-items:center;gap:12px;color:#8190a0}.topbar strong{font-weight:500;color:#34485e}.topbar-date{font-size:12px}.icon-button{border:0;background:none;color:#73869a;display:grid;place-items:center;padding:7px}.mobile-menu{display:none}.page-content{padding:27px 30px 36px;flex:1;min-width:0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:23px}.page-heading p{margin:0;color:var(--muted);font-size:14px}.eyebrow{display:block;font-size:12px;letter-spacing:2px;color:#8493a5;font-weight:600;margin-bottom:9px}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--teal);border:1px solid var(--teal);border-radius:7px;padding:10px 14px;color:#fff;font-size:14px;line-height:1.35;white-space:nowrap;transition:background .15s}.button:hover:not(:disabled){background:#08786f}.button.secondary{background:#fff;border-color:#d9e1e9;color:#4d6278}.button.secondary:hover:not(:disabled){background:#f4f7fa}.text-button{display:inline-flex;gap:4px;align-items:center;border:0;background:none;color:var(--teal);font-size:12px;white-space:nowrap;padding:0}.badge{display:inline-flex;align-items:center;border-radius:4px;padding:4px 7px;font-size:12px;line-height:1.3;background:#f0f3f7;color:#7c8b9e;white-space:nowrap}.badge.green{background:#e9f6ee;color:#31875d}.badge.amber{background:#fff3de;color:#b67a25}.badge.red{background:#fcecec;color:#c64648}.badge.blue{background:#ecf2fd;color:#4a73ae}.card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px;min-width:0;overflow:hidden}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:17px}.card-heading h3{margin:0;display:flex;align-items:center;gap:8px;font-size:15px;color:#293d51}.card-heading h3>svg{color:var(--teal)}.card-heading>small{font-size:12px}.column{display:flex;flex-direction:column;gap:17px;min-width:0}.project-banner{background:var(--navy);border-radius:10px;padding:25px 26px;display:flex;justify-content:space-between;gap:25px;color:#fff}.project-banner .badge{background:#274761;color:#b6d2e4;font-size:12px;margin-bottom:13px}.project-banner h2{font-size:23px;margin-bottom:11px;letter-spacing:.5px}.project-banner p{color:#99b5cb;font-size:12px;margin:0}.project-banner p span{margin-left:23px}.contract-clock{width:265px;flex-shrink:0;text-align:right}.contract-clock>span{font-size:12px;color:#a9c0d2}.contract-clock>strong{display:block;font-size:30px;line-height:1.3;margin-top:9px}.contract-clock strong small{color:#aac5d5;margin-left:8px}.contract-clock>small{color:#9db7cb;font-size:12px}.progress{height:4px;background:#31516a;border-radius:3px;margin:11px 0 7px;overflow:hidden}.progress i{display:block;height:100%;background:#68bdb3}.project-status{display:flex;gap:27px;padding:15px 3px 19px;font-size:12px;color:#526779;flex-wrap:wrap}.project-status>span{display:flex;align-items:center;gap:7px}.project-status small{margin-left:3px;font-size:12px}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;flex:none}.status-dot.amber{background:#d99b40}.status-dot.blue{background:#628cbd}.status-dot.teal{background:#169585}.status-dot.red{background:#d45d59}.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px;margin-bottom:20px}.kpi{background:#fff;border:1px solid var(--border);border-top:3px solid #a9bacd;border-radius:8px;padding:16px 15px 13px}.kpi.teal{border-top-color:#35a391}.kpi.amber{border-top-color:#daa454}.kpi>span{display:block;color:#7c8ba0;font-size:12px;min-height:17px}.kpi>div{display:flex;align-items:baseline;gap:6px;white-space:nowrap;margin:13px 0 11px}.kpi strong{font-size:26px;letter-spacing:-.8px;line-height:1}.kpi>div small{font-size:12px}.kpi p{font-size:12px;line-height:1.6;color:#8d9baa;margin:0}.dashboard-columns{display:grid;grid-template-columns:1fr 1.12fr .95fr;gap:17px;align-items:start}.right{text-align:right!important}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:13px}th{font-size:12px;font-weight:600;background:#f7f9fb;color:#75879b;padding:12px 13px;border-bottom:1px solid var(--border);line-height:1.6}td{padding:13px;border-bottom:1px solid #edf1f5;line-height:1.6;color:#40556d}td.wrap{white-space:normal;min-width:170px;max-width:450px}td small{display:block}tbody tr:last-child td{border-bottom:0}.table-scroll{overflow:auto;max-width:100%}.compact{font-size:12px}.compact th{padding:10px 5px;font-size:12px;background:none;border-top:1px solid var(--border)}.compact td{padding:13px 5px}.financial-detail{padding:14px 0 4px;border-top:1px solid var(--border)}.financial-detail>div{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:12px;color:#78899b}.financial-detail b{color:#3e5569}.financial-detail>small{display:block;font-size:12px;line-height:1.75}.card-bottom{border-top:1px solid var(--border);margin-top:14px;padding-top:13px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:#8291a1}.card-bottom b{font-size:12px;color:#a47736}.payment-timeline{display:flex;flex-direction:column;gap:0}.payment-node{position:relative;display:flex;gap:10px;align-items:flex-start;padding-bottom:20px;min-width:0}.payment-node:not(:last-child):before{content:"";width:1px;background:#e3e9f1;position:absolute;top:22px;bottom:0;left:11px}.timeline-number{width:23px;height:23px;border-radius:50%;background:#f0f3f7;display:grid;place-items:center;font-size:12px;color:#8296aa;flex:none}.payment-node.done .timeline-number{background:#e6f3ef;color:var(--teal)}.payment-node>div{flex:1}.payment-node strong{font-size:13px}.payment-node strong small{margin-left:8px}.payment-node p{font-size:12px;color:#8a99aa;margin:4px 0}.payment-node>div>span{font-size:12px;color:#576d82}.payment-node>.badge{font-size:12px}.cash-alert{background:#fff8eb;border:1px solid #f5e7cd;border-radius:6px;padding:12px;display:flex;gap:8px;color:#ba822e}.cash-alert strong{font-size:12px}.cash-alert p{font-size:12px;color:#b18a52;margin:5px 0 0;line-height:1.7}.risk-row{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding:11px 0;border-bottom:1px solid #edf1f5}.risk-row span{color:#7a8999}.risk-row b{color:#a7733d;font-weight:500}.footnote{font-size:12px;margin:12px 0 0}.assessment-card{border-top:3px solid #1d9288}.assessment-lead{display:grid;grid-template-columns:1fr 1fr;padding:9px 0 17px}.assessment-lead>div+div{border-left:1px solid var(--border);padding-left:24px}.assessment-lead span{display:block;font-size:12px;color:#8090a1}.assessment-lead strong{display:block;font-size:38px;margin-top:7px;line-height:1.25;letter-spacing:-1px}.assessment-lead strong small{font-size:12px;margin-left:5px;font-weight:400}.rule-hint{font-size:12px;color:#9a814f;background:#fcf7ea;line-height:1.7;padding:9px 10px;border-radius:5px}.rule-hint button{border:0;background:none;color:#9a814f;font-size:12px;text-decoration:underline;padding-left:6px}.score-calculator{margin-top:21px}.score-calculator label{display:flex;justify-content:space-between;font-size:12px;color:#77899c;margin-bottom:12px}.score-calculator label b{color:var(--teal)}.score-calculator>div{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin:14px 0 9px}.score-calculator>div>strong{font-size:23px;color:#365367}.score-calculator small{font-size:12px}.quarter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:20px}.quarter-grid>div{padding:9px 5px;border:1px solid #e7edf3;border-radius:5px;text-align:center;background:#fafbfd}.quarter-grid span{display:block;font-size:12px;color:#8a9db0}.quarter-grid b{display:block;font-size:12px;margin-top:6px;color:#8291a0;font-weight:500}.quarter-grid .current{background:#eaf5f3;border-color:#cde5e0}.quarter-grid .current span,.quarter-grid .current b{color:var(--teal)}.task-list>div{display:flex;align-items:center;gap:9px;margin-bottom:15px}.task-list>div>div{flex:1}.task-list strong,.document-list strong,.todo-list strong{font-size:12px;font-weight:500;line-height:1.7}.task-list small,.document-list small,.todo-list small{display:block;font-size:12px;margin-top:4px}.task-check{height:15px;width:15px;border:1px solid #cbd7e1;border-radius:3px;flex:none;color:var(--teal);font-size:12px}.task-check.done{background:#e9f7f0;border-color:#c1e5d6}.document-list>div{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #edf1f5}.safety-main{display:flex;align-items:center;justify-content:center;gap:22px;padding:2px 0 14px}.safety-ring{width:103px;height:103px;padding:8px;border-radius:50%;background:conic-gradient(#269b88 var(--rate),#eef3f7 0);flex:none}.safety-ring>span{display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:50%;background:#fff;height:100%}.safety-ring b{font-size:24px}.safety-ring small{font-size:12px}.safety-main>div>p{font-size:12px;margin-bottom:10px;color:#8190a0}.safety-main b{margin-left:5px;color:#334c5e}.safety-main .text-button{font-size:12px}.sync-time{font-size:12px;display:block;padding-bottom:10px}.inline-warning{font-size:12px;color:#bd8532;background:#fff8ea;border-radius:4px;padding:8px;margin-bottom:8px}.personnel-line{display:flex;align-items:center;gap:8px;padding:14px 0 6px;font-size:12px}.personnel-line>svg{color:#8b9daf}.personnel-line>span{color:#7f90a2}.personnel-line>b{margin-left:auto}.permit-item{display:grid;grid-template-columns:auto 1fr;gap:7px;margin-bottom:12px}.permit-item strong{font-size:12px}.permit-item small{grid-column:2;font-size:12px}.small-pad{padding:12px 0;font-size:12px;line-height:1.8}.small-tabs{display:flex;gap:12px;margin-bottom:15px}.small-tabs button{border:0;background:none;color:#96a2af;font-size:12px;padding:2px 0}.small-tabs button.active{color:var(--teal)}.todo-list>div{display:flex;gap:9px;margin-bottom:15px}.todo-list .status-dot{margin-top:8px}.todo-list span{display:block;font-size:12px;color:#9ba7b4;margin-top:4px}.dashboard-source{display:flex;justify-content:space-between;gap:20px;color:#97a5b4;font-size:12px;margin-top:22px;line-height:1.8}.teal-text{color:var(--teal)!important}.red-text{color:var(--red)!important}.amber-text{color:var(--amber)!important}.muted{color:var(--muted)}.empty{padding:30px 10px;text-align:center;color:#a5b3c1;font-size:13px}.empty>svg{color:#b1c0cb}.empty p{margin:10px 0 8px}.empty .text-button{margin-top:5px}.notice{display:flex;align-items:flex-start;gap:9px;background:#edf5fc;border:1px solid #dbe8f5;color:#52779a;padding:13px 15px;border-radius:7px;font-size:13px;line-height:1.8;margin-bottom:17px}.notice>svg{margin-top:4px}.notice.warning{background:#fff8e9;border-color:#efdfbd;color:#a57627}.notice ul{margin:9px 0 0;padding-left:19px;max-height:200px;overflow:auto}.filter-strip{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 21px}.tabs{display:flex;align-items:center;gap:5px;background:#e8edf2;padding:4px;border-radius:8px;max-width:100%;overflow:auto}.tabs button{border:0;border-radius:5px;padding:10px 17px;background:none;white-space:nowrap;color:#76899c;font-size:13px}.tabs button.active{background:#fff;color:var(--teal);box-shadow:0 1px 4px #233a4412;font-weight:600}.tabs.standalone{width:max-content;margin-bottom:24px}.filter-strip .field{display:flex;flex-direction:row;align-items:center;gap:12px;margin:0;white-space:nowrap}.filter-strip .field>label{font-size:12px}.month-control{background:#fff;max-width:160px;padding:9px}.ledger-stats{display:flex;gap:30px;align-items:center;margin-bottom:20px;color:#71869b;flex-wrap:wrap}.ledger-stats>span{display:flex;align-items:center;gap:7px;font-size:12px}.ledger-stats strong{font-size:24px;color:#284b61}.ledger-stats>.badge{margin-left:auto}.dispatch-table{font-size:12px;white-space:nowrap;min-width:1050px}.dispatch-table th,.dispatch-table td{text-align:center;border:1px solid #dfe6ed;padding:9px 8px}.dispatch-table thead th{background:#f2f6f9;color:#4e657a;font-size:12px}.dispatch-table .reason-cell{white-space:normal;min-width:110px;max-width:170px}.dispatch-table tbody tr:nth-child(2n){background:#fafcfd}.dispatch-table tbody tr.row-warning{background:#fff9eb}.dispatch-table tfoot td{font-weight:600;background:#f1f7f7}.row-actions{display:flex;gap:8px;justify-content:center}.row-actions button{border:0;background:none;color:#8a9aab;padding:4px}.row-actions button:hover{color:var(--teal)}.table-foot{display:flex;justify-content:space-between;gap:15px;margin-top:15px;color:#97a4b2;font-size:12px}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.field>label{font-size:13px;font-weight:500;color:#657a8e}.field small{font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.form-grid.three{grid-template-columns:repeat(3,1fr)}.modal-overlay{position:fixed;inset:0;background:#0e243e66;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}.modal{background:#fff;border-radius:12px;width:520px;max-width:100%;max-height:92vh;overflow:auto;padding:25px;box-shadow:0 25px 90px #051d3b30}.modal.wide{width:900px}.modal>header,.photo-preview>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px}.modal h2{margin:0;font-size:20px}.modal h3{margin-top:20px}.modal-footer{border-top:1px solid var(--border);padding-top:20px;margin-top:10px;display:flex;align-items:center;justify-content:flex-end;gap:10px}.modal-toolbar{display:flex;align-items:center;justify-content:space-between;margin:0 0 20px}.modal-toolbar>span{font-size:12px;color:#8998a9}.modal-table{max-height:58vh}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%);max-width:90vw;z-index:300;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #c7e6dc;border-radius:8px;box-shadow:0 8px 30px #11294220;padding:15px 20px;color:#237962;font-size:14px}.toast.error{color:#c04043;border-color:#efc6c8}.toast button{border:0;background:none;font-size:22px;color:#99a6b2}.app-footer{display:flex;justify-content:space-between;color:#9caab8;padding:17px 30px;border-top:1px solid #e1e8ef;font-size:12px}.workflow-strip{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--border);border-radius:9px;padding:22px;margin-bottom:25px;gap:20px}.workflow-strip>div{display:flex;align-items:center;gap:10px;min-width:0}.workflow-strip>div>span{width:29px;height:29px;border-radius:50%;background:#f0f3f6;color:#94a2b0;display:grid;place-items:center;font-size:13px;flex:none}.workflow-strip .active>span{background:#e4f2ef;color:var(--teal)}.workflow-strip strong{font-size:13px;display:block}.workflow-strip small{font-size:12px;display:block;margin-top:5px}.workflow-strip svg{margin-left:auto;color:#bac7d2}.source-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}.source-number{font-size:36px;color:#38566d;margin:14px 0}.source-number small{font-size:12px;margin-left:10px}.source-cards .card>p{color:#8393a3;font-size:12px;min-height:45px;margin-bottom:18px}.category-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:17px}.category-chips>span{background:#f2f6f8;border-radius:4px;padding:6px 10px;font-size:12px;color:#778b9d}.category-chips b{margin-left:9px;color:#376e7c}.events-table{max-height:620px}.report-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:25px}.report-outline{position:sticky;top:20px;max-height:85vh;overflow:auto;background:transparent;padding:8px 0}.report-outline h3{font-size:13px;color:#8a9bab;letter-spacing:1px}.report-outline a{display:block;text-decoration:none;color:#74889c;font-size:12px;padding:8px 12px;border-left:2px solid #d9e2e9}.report-outline a:hover{color:var(--teal);background:#eaf4f2;border-left-color:var(--teal)}.report-editor{background:#fff;padding:26px;border-radius:9px;border:1px solid var(--border)}.report-editor-heading{display:flex;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.report-editor-heading h2{font-size:20px;margin-bottom:8px}.report-editor-heading span{font-size:12px;color:#97a4b3}.paragraph-editor{margin:26px 0;scroll-margin-top:20px}.paragraph-editor label{display:block;font-size:15px;font-weight:600;margin-bottom:10px;color:#344f64}.paragraph-editor textarea{background:#fafcfd;border-color:#e5ebf0;font-size:14px;line-height:1.9}.review-box{border-top:2px solid #d3e9e5;margin-top:32px;padding-top:22px}.review-box p{font-size:12px;color:#8797a7}.check-line{display:flex;align-items:center;gap:9px;font-size:13px;color:#61788d;line-height:1.8;margin:14px 0}.photo-preview{width:1100px;max-width:95vw;max-height:90vh;overflow:auto;background:#fff;border-radius:10px;padding:20px}.photo-preview>div{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.photo-preview img{width:100%;height:230px;object-fit:contain;background:#f0f2f4}.photo-preview header button{border:0;background:none;color:var(--teal)}.roster-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px}.roster-legend{display:flex;flex-wrap:wrap;gap:20px;margin:5px 0 23px}.roster-legend span{display:flex;gap:7px;align-items:center;font-size:12px;color:#8192a3}.roster-legend i,.roster-stats i{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:5px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid #e5ebf1;border-top:1px solid #e5ebf1}.weekday{text-align:center;padding:13px 3px;font-size:12px;color:#8c9dab;background:#f7fafc;border-right:1px solid #e5ebf1;border-bottom:1px solid #e5ebf1}.calendar-day,.calendar-blank{min-height:99px;background:#fff;border:0;border-right:1px solid #e5ebf1;border-bottom:1px solid #e5ebf1;padding:12px 8px;text-align:left;min-width:0}.calendar-day:hover{background:#f5faf9}.calendar-blank{background:#fcfdfe}.calendar-day>span{display:flex;font-size:16px;align-items:center;justify-content:space-between;color:#577082}.calendar-day>span>small{font-size:12px;white-space:nowrap;overflow:hidden}.calendar-day.rest>span{color:#c05b5e}.calendar-day>small{display:block;margin-top:14px;font-size:12px}.assignment{font-size:12px;border-left:2px solid;padding-left:6px;line-height:1.5;margin-top:17px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.roster-layout .card>p{font-size:12px}.roster-layout textarea{margin-bottom:15px}.roster-stats>div{display:flex;justify-content:space-between;margin-bottom:15px;font-size:13px;color:#72889b}.roster-stats b{color:#3b586e}.roster-stats small{font-size:12px;margin-left:6px}.chat-reply{background:#edf7f5;border-radius:6px;padding:13px;margin-top:18px;font-size:13px;line-height:1.8;color:#387d71}.people-list{display:flex;gap:10px;flex-wrap:wrap}.people-list button{border:1px solid #e3e9ef;border-radius:6px;background:#f9fbfc;display:flex;align-items:center;gap:12px;padding:9px 13px;color:#3c6079}.holiday-list{margin:14px 0 25px}.holiday-list>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf1f5;font-size:13px}.settings-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:25px;max-width:1100px}.setting-note h4{font-size:14px;margin-top:22px;margin-bottom:8px}.setting-note p{color:#8798a8;font-size:13px}.settings-layout .card>p{font-size:13px}.permission-tags{white-space:normal;min-width:180px;max-width:300px}.permission-tags .badge{margin:3px;font-size:12px}.checkbox-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 15px}.loading-screen{min-height:100vh;display:flex;justify-content:center;align-items:center;gap:15px;color:#66899a}.loading-panel{padding:70px;text-align:center;color:#8296a9}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:1650px){:root{font-size:15px}.page-content{padding:30px 36px}.kpi strong{font-size:30px}.dashboard-columns{gap:20px}.card{padding:21px}.card-heading h3{font-size:16px}.kpi>span{font-size:13px}.kpi p{font-size:12px}.compact{font-size:13px}.financial-detail>div{font-size:13px}.risk-row,.task-list strong,.document-list strong,.todo-list strong{font-size:13px}.source-cards .card>p{font-size:13px}}@media(max-width:1250px){.app-shell>aside{width:190px;padding-left:12px;padding-right:12px}.workspace{margin-left:190px;width:calc(100% - 190px)}.page-content{padding:24px 20px}.kpi-grid{grid-template-columns:repeat(3,1fr)}.dashboard-columns{grid-template-columns:1fr 1fr}.dashboard-columns>.column:last-child{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.project-banner h2{font-size:19px}.contract-clock{width:200px}.project-banner p span{display:block;margin-left:0}.roster-layout{grid-template-columns:minmax(0,1fr)}.roster-layout>.column{display:grid;grid-template-columns:1fr 1fr}.workflow-strip{gap:12px;padding:17px}.workflow-strip small{font-size:12px}.source-cards{gap:15px}.source-number{font-size:30px}.source-number small{font-size:12px}.page-heading{align-items:flex-start}.page-heading .toolbar{justify-content:flex-end}.report-layout{grid-template-columns:150px minmax(0,1fr)}}@media(max-width:950px){.app-shell>aside{width:176px}.workspace{margin-left:176px;width:calc(100% - 176px)}.brand{padding-left:6px}.brand strong{font-size:19px}nav button{font-size:12px;padding:12px 10px;gap:8px}.dashboard-columns{grid-template-columns:1fr}.dashboard-columns>.column:last-child{grid-column:auto;display:flex}.project-banner{flex-direction:column}.contract-clock{width:100%;text-align:left;display:grid;grid-template-columns:1fr auto;align-items:center}.contract-clock>span{grid-row:1}.contract-clock>strong{grid-row:1/3;grid-column:2}.contract-clock .progress{max-width:250px}.project-status{gap:12px}.source-cards{grid-template-columns:1fr}.source-cards .card>p{min-height:0}.workflow-strip{grid-template-columns:1fr 1fr}.report-layout{grid-template-columns:1fr}.report-outline{display:none}.settings-layout{grid-template-columns:1fr}.filter-strip{flex-wrap:wrap}.topbar{padding:0 20px}.page-heading{flex-direction:column}.page-heading .toolbar{justify-content:flex-start}.source-number{font-size:36px}.form-grid.three{grid-template-columns:1fr 1fr}.calendar-day,.calendar-blank{padding:10px 6px;min-height:95px}.assignment{font-size:12px}.checkbox-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.app-shell>aside{transform:translate(-100%);width:216px;box-shadow:0 0 30px #18375322;transition:transform .2s}.app-shell>aside.open{transform:translate(0)}.workspace{margin-left:0;width:100%}.mobile-menu{display:grid}.topbar{height:57px;padding:0 15px}.topbar-date{display:none}.page-content{padding:23px 15px}.page-heading{margin-bottom:20px}.page-heading h1{font-size:25px}.page-heading .toolbar{gap:7px}.button{padding:9px 11px;font-size:12px}.kpi-grid{grid-template-columns:1fr 1fr;gap:11px}.kpi{padding:16px 12px}.kpi strong{font-size:26px}.kpi p{font-size:12px}.project-banner{padding:21px}.project-banner h2{font-size:20px;line-height:1.65}.contract-clock{display:block}.contract-clock .progress{max-width:none}.project-status>span{font-size:12px}.project-status small{font-size:12px}.dashboard-columns{gap:17px}.dashboard-source{flex-direction:column;gap:8px}.app-footer{padding:17px 15px;flex-wrap:wrap;gap:5px}.tabs button{padding:9px 12px;font-size:12px}.ledger-stats{gap:15px}.ledger-stats strong{font-size:22px}.ledger-stats>.badge{margin-left:0}.card{padding:15px}.card-heading{align-items:flex-start}.card-heading h3{font-size:14px}.card-heading>small{display:none}.filter-strip .field{margin-left:auto}.filter-strip>small{font-size:12px}.modal-overlay{padding:12px}.modal{padding:20px;max-height:95vh}.form-grid,.form-grid.three{grid-template-columns:1fr 1fr;gap:0 12px}.modal-toolbar{gap:10px}.modal-toolbar>span{font-size:12px}.workflow-strip{gap:18px 8px;padding:15px}.workflow-strip strong,.workflow-strip small{font-size:12px}.workflow-strip svg{display:none}.workflow-strip>div{gap:7px}.report-editor{padding:18px}.report-editor-heading h2{font-size:18px}.report-editor-heading .toolbar{margin-top:8px}.roster-layout>.column{display:flex}.calendar-day,.calendar-blank{min-height:84px;padding:9px 5px}.calendar-day>span{font-size:14px}.weekday{font-size:12px;padding:12px 2px}.assignment{margin-top:12px;font-size:12px;padding-left:4px}.roster-legend{gap:12px}.roster-layout .card-heading{flex-wrap:wrap}.calendar-day>span>small{font-size:12px}.photo-preview>div{grid-template-columns:1fr 1fr}.photo-preview img{height:170px}.notice,.table-foot{font-size:12px}.topbar strong{font-size:13px}.project-banner .badge{font-size:12px}}.report-tables textarea{min-width:100px;font-size:12px;padding:8px}.report-tables td{padding:6px}.report-tables textarea[readonly]{background:#f4f7f9;color:#75889c}.project-banner>div:first-child{flex:1;min-width:0}.project-banner h2{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.6;overflow-wrap:anywhere}.contract-clock{flex-shrink:0}.project-status>span{flex-wrap:wrap}.project-status .text-button{font-size:12px;margin-left:4px}.compact td[rowspan]{vertical-align:middle;border-left:1px solid #eef2f5}.fixed-accrual{margin-top:6px}.financial-detail>small{display:block;margin:8px 0 13px;line-height:1.7}.safety-plan-summary{display:grid;grid-template-columns:1fr 1fr;background:#f2f8f7;border-radius:7px;margin-bottom:20px;padding:18px;gap:18px}.safety-plan-summary>div{display:flex;flex-direction:column;gap:8px}.safety-plan-summary b{font-size:29px;color:#218b82}.safety-plan-summary span{font-size:12px;color:#78909e}.safety-plan-list>div{padding:15px 0;border-bottom:1px solid #edf1f4;display:flex;flex-direction:column;gap:9px}.safety-plan-list>div>div{display:flex;justify-content:space-between;gap:8px}.safety-plan-list strong{font-size:14px;line-height:1.7}.safety-plan-list small{font-size:12px;color:#8798a8}@media(max-width:1250px)and (min-width:951px){.dashboard-columns>.column:last-child{grid-template-columns:repeat(2,minmax(0,1fr))}}.dispatch-scroll{max-height:65vh;max-height:65dvh;min-height:90px;overflow:auto;scroll-padding-top:90px;border:1px solid #dfe6ed;border-radius:5px}.dispatch-table{border-collapse:separate;border-spacing:0}.dispatch-table thead{position:sticky;top:0;z-index:3;box-shadow:0 2px 3px #12314a14}.dispatch-table th,.dispatch-table td{border-width:0 1px 1px 0}.dispatch-table th:last-child,.dispatch-table td:last-child{border-right:0}.dispatch-scroll:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.dispatch-add-bar{display:flex;align-items:center;gap:15px;padding:16px 0 0;color:#718397;font-size:12px}.dispatch-add-bar .button{flex:none}.dispatch-calculation-hint{margin:0 0 18px;line-height:1.8;color:#536f80;font-size:12px}.dispatch-table .dispatch-edit-row td{background:#f1faf8;vertical-align:top;padding:12px 8px}.dispatch-edit-row input,.dispatch-edit-row select,.dispatch-edit-row textarea{display:block;box-sizing:border-box;width:100%;min-width:85px;padding:8px;font-size:12px;background:#fff}.dispatch-edit-row input[type=time]{min-width:115px}.dispatch-edit-row input[type=date]{min-width:145px}.dispatch-edit-row input[readonly]{background:#e5f2ef;border-color:#cbe5dd;color:#137769}.dispatch-edit-row .dispatch-date-cell{min-width:165px}.dispatch-edit-row .dispatch-date-cell input+input{margin-top:7px}.dispatch-edit-row select{min-width:176px;margin-bottom:8px}.dispatch-edit-row small{display:block;font-size:11px;color:#648478;line-height:1.6;margin-top:5px}.dispatch-edit-row .reason-cell{min-width:150px}.dispatch-save-cell{min-width:115px;white-space:normal}.dispatch-save-cell form{display:flex;flex-direction:column;gap:7px}.dispatch-save-cell .button{justify-content:center;padding:8px 10px;font-size:12px}.dispatch-row-error{display:block;color:#b83b3b;line-height:1.6;margin-top:8px;font-size:12px}.dispatch-table.has-editors{min-width:1380px}@media(max-width:700px){.dispatch-add-bar{align-items:flex-start}.dispatch-scroll{max-height:60dvh}.dispatch-card .card-heading{align-items:flex-start;gap:8px}.dispatch-card .card-heading small{max-width:100px;text-align:right}}.calendar-holiday-legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:0 0 16px;font-size:12px;color:#738596}.calendar-holiday-legend>span{display:flex;align-items:center;gap:6px}.calendar-holiday-legend>small{margin-left:auto;font-size:12px}.calendar-mark{display:inline-flex;align-items:center;justify-content:center;flex:none;width:21px;height:21px;border-radius:4px;font-size:12px;font-weight:600;line-height:1}.calendar-mark.holiday{color:#b4434d;background:#fde7e9}.calendar-mark.makeup{color:#336fb0;background:#e6f0fc}.calendar-day.holiday{background:#fff7f7}.calendar-day.holiday:hover{background:#ffefef}.calendar-day.makeup{background:#f7faff}.calendar-day.makeup>.calendar-date-row{color:#346fa8}.calendar-day .calendar-holiday-name{display:block;font-size:12px;line-height:1.5;min-height:18px;white-space:normal;overflow-wrap:anywhere;margin:6px 0 0;color:#b4434d}.calendar-day.makeup .calendar-holiday-name{color:#346fa8}.calendar-day .assignment{margin-top:8px}.calendar-day .calendar-unassigned{font-size:12px;color:#97a5b4;margin-top:8px;line-height:1.5}.calendar-source{flex-wrap:wrap}.calendar-source a{color:#438884;text-decoration:none;font-size:12px}@media(max-width:700px){.calendar-mark{width:16px;height:17px;font-size:10px}.calendar-date-row{gap:2px}.calendar-holiday-legend{gap:10px}.calendar-holiday-legend>small{margin-left:0;width:100%}.calendar-day .calendar-holiday-name{font-size:11px;min-height:33px}.calendar-day,.calendar-blank{padding:9px 4px}}.pest-filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:18px}.pest-filters .field{margin:0;min-width:150px}.pest-filters .check-line{padding-bottom:11px}.pest-contract{display:grid;gap:12px;min-width:240px;padding-bottom:10px}.pest-export{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line,#e2e8f0);margin-top:20px;padding-top:16px}.pest-records{margin-top:20px}.pest-line{display:block;color:var(--muted,#7f91a6);margin-top:6px}.pest-thumbs{display:flex;gap:4px;margin-bottom:4px}.pest-thumbs img{width:48px;height:38px;object-fit:cover;border-radius:4px}.pest-actions{display:flex;gap:10px;flex-wrap:wrap;min-width:120px}.pest-footnote{font-size:12px;color:var(--muted,#7f91a6);margin:18px 0 0}.pest-fieldset{margin:0;padding:0;border:0;min-width:0}.pest-photo-heading{display:flex;align-items:center;justify-content:space-between;margin-top:22px}.pest-file{position:absolute;opacity:0;width:1px;height:1px}.pest-photo-heading label:focus-within{outline:2px solid #128980;outline-offset:3px}.pest-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:15px 0 24px}.pest-photo{position:relative;border:1px solid #e2e8f0;border-radius:8px;padding:6px;background:#f8fafc}.pest-image-button{padding:0;width:100%;border:0;background:transparent}.pest-photo img{width:100%;aspect-ratio:4/3;object-fit:contain;display:block}.pest-photo>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:7px 0}.pest-photo-number{font-size:11px;color:#0c817b}.pest-photo>div{display:flex;justify-content:space-between}.pest-preview{position:fixed;inset:0;z-index:1100;background:#08182aed;display:flex;align-items:center;justify-content:center;padding:65px 25px 25px}.pest-preview img{max-width:100%;max-height:100%;object-fit:contain}.pest-preview>button{position:absolute;right:25px;top:20px}.pest-review{margin:16px 0}.pest-source{font-size:12px;color:#6a7f93;line-height:1.8;background:#f6f9fc;padding:12px}.danger-text{color:#bd4655!important}.pest-filters input[type=month]{min-width:140px}@media(max-width:900px){.pest-export{align-items:flex-start;flex-direction:column}.pest-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.pest-filters .field{flex:1 1 160px}}.weekly-period{display:flex;gap:25px;align-items:center;flex-wrap:wrap;margin-bottom:22px;padding:17px 22px;background:#fff;border:1px solid var(--border);border-radius:9px}.weekly-period .field{margin:0}.weekly-period>.toolbar{align-items:flex-end}.weekly-period strong{display:block;font-size:17px;color:var(--navy)}.weekly-period small{display:block;margin-top:9px;color:var(--muted)}.weekly-period .button{min-height:40px}.weekly-sync{display:block;margin-top:12px;color:var(--muted)}.weekly-notes{margin-top:20px}.weekly-draft-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:20px 0}.weekly-draft-head h2{margin:0 0 9px}.weekly-draft-head p{color:var(--muted);margin:0}.weekly-warnings{background:#fff8e9;border:1px solid #f2deb5;border-radius:8px;padding:16px 20px;margin:20px 0;color:#9a6b20;font-size:13px}.weekly-warnings summary{cursor:pointer;font-weight:600}.weekly-warnings p{margin:9px 0}.weekly-editor{display:grid;gap:20px;margin-bottom:20px}.weekly-entry{padding:6px 0 22px;border-bottom:1px solid var(--border);margin-bottom:15px}.weekly-entry:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.weekly-entry-label{display:flex;justify-content:space-between;align-items:center;color:#55758d;margin-bottom:6px}.weekly-photos{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.weekly-photos>div{width:180px;border:1px solid var(--border);padding:5px;border-radius:6px;background:#f8fafc}.weekly-photo-button{display:block;padding:0;background:transparent;border:0;width:100%}.weekly-photos img{width:100%;height:125px;object-fit:contain;display:block}.weekly-photos .toolbar{justify-content:space-between;margin-top:4px}.weekly-editor textarea{background:#fbfcfe}.weekly-period input[type=date]{min-width:155px}@media(max-width:700px){.weekly-draft-head{flex-wrap:wrap}.weekly-period{padding:15px;gap:16px}.weekly-period strong{font-size:14px}.weekly-photos>div{width:calc(50% - 6px)}.weekly-photos img{height:110px}.weekly-period>.toolbar{flex-wrap:nowrap}}@media(max-width:700px){.weekly-period>.toolbar{flex-wrap:wrap;width:100%}.weekly-period .field{flex:1;min-width:140px}.weekly-period select{width:100%}}.cleaning-filter{display:flex;flex-wrap:wrap;gap:18px}.cleaning-filter .field{min-width:190px;max-width:260px;flex:1}.cleaning-stations{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:10px 0 20px}.cleaning-stations strong{font-size:13px}.cleaning-hint{margin:14px 0 0;font-size:12px;line-height:1.7}.cleaning-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}.cleaning-stats>div{background:#fff;border:1px solid var(--line,#e1e8ef);border-radius:9px;padding:18px 22px}.cleaning-stats small{display:block;color:#77879a}.cleaning-stats strong{display:block;font-size:28px;margin-top:8px}.cleaning-stats strong span{font-size:14px;font-weight:400;color:#8091a3}.cleaning-thumbs{display:flex;gap:5px;align-items:center}.cleaning-thumbs img{width:55px;height:42px;object-fit:cover;border-radius:4px}.cleaning-weather-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:9px;max-height:280px;overflow:auto;color:#587087;font-size:12px}.cleaning-template-content,.cleaning-recognition{padding:16px;background:#f2f8f7;border:1px solid #daeae6;border-radius:8px;margin:10px 0 18px;font-size:13px;line-height:1.9}.cleaning-template-content small{color:#7b8d9b}.cleaning-recognition{background:#f5f8fe;border-color:#dce5f4}.cleaning-recognition .button{margin-top:12px}.cleaning-upload-input{position:absolute;width:1px;height:1px;opacity:0}.cleaning-upload-input:focus-visible{position:static;opacity:1;width:auto;height:auto}.cleaning-preview{max-width:100%;max-height:75vh;display:block;margin:auto}.cleaning-weather-reference{margin-top:15px;font-size:13px;color:#667b90}@media(max-width:700px){.cleaning-filter .field{min-width:130px;max-width:none}.cleaning-stats{gap:8px}.cleaning-stats>div{padding:13px 10px}.cleaning-stats strong{font-size:23px}.cleaning-weather-list{grid-template-columns:1fr}.cleaning-stations{gap:12px}.pest-photo-header{flex-wrap:wrap}.cleaning-stats small{font-size:11px}}.cleaning-work-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;margin:15px 0}.cleaning-work-options .check-line{align-items:flex-start;line-height:1.6}.cleaning-work-options input{flex-shrink:0;margin-top:3px}.cleaning-work-options small{white-space:nowrap}.cleaning-template-content details{overflow-wrap:anywhere;margin-top:10px}.cleaning-template-content details p{font-size:12px;margin:6px 0}@media(max-width:650px){.cleaning-work-options{grid-template-columns:1fr}.cleaning-template-content .pest-photo-heading{flex-wrap:wrap}}.signin-page{--signin-ink: #092746;--signin-muted: #58728e;--signin-accent: #007d9d;position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:100vh;min-height:100svh;color:#fff;background:#38647b;font-family:Microsoft YaHei,PingFang SC,Arial,sans-serif}.signin-photo,.signin-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}.signin-photo{object-fit:cover;object-position:center}.signin-shade{background:#05304e3b}.signin-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:38px 3.8vw 0}.signin-brand{display:flex;align-items:center;gap:20px;text-shadow:0 2px 10px #153e5766}.signin-brand>svg{color:#78e4f5}.signin-brand strong{display:block;font-size:23px;line-height:1.45;font-weight:600;letter-spacing:3px}.signin-brand span{display:block;margin-top:3px;font-size:10px;letter-spacing:2.7px}.signin-help-link{border:0;background:transparent;color:#fff;font-size:15px;letter-spacing:1px;padding:12px 0 12px 16px;text-shadow:0 1px 5px #153e57}.signin-content{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 454px;gap:48px;align-items:start;padding:36px 5.25vw 40px 5.5vw}.signin-intro{padding-top:5px;text-shadow:0 2px 16px #173d5655}.signin-eyebrow{font-family:Arial,sans-serif;font-size:13px;font-weight:500;letter-spacing:4px;line-height:1.8;margin-bottom:12px}.signin-intro h1{font-size:clamp(42px,3.85vw,66px);font-weight:700;line-height:1.18;letter-spacing:6px;margin:0 0 16px}.signin-tagline{font-size:23px;letter-spacing:2px;font-weight:500;margin:0;line-height:1.65}.signin-card{width:100%;margin-top:40px;padding:42px 48px 36px;color:var(--signin-ink);background:#fffffffa;border:1px solid #ffffffcc;border-radius:25px;box-shadow:0 18px 60px #07374f33}.signin-card h2{font-size:36px;line-height:1.4;letter-spacing:1px;font-weight:700;margin:0 0 5px}.signin-description{color:var(--signin-muted);font-size:18px;line-height:1.6;margin:0 0 28px;white-space:nowrap}.signin-field{margin-bottom:22px}.signin-field>label{display:block;font-size:17px;font-weight:600;line-height:1.5;margin-bottom:9px}.signin-input{display:flex;align-items:center;height:60px;border:1px solid #c7d7e7;border-radius:8px;background:#fff;overflow:hidden;color:#617e9d;transition:border-color .15s,box-shadow .15s}.signin-input>svg{margin-left:19px}.signin-input:focus-within{border-color:var(--signin-accent);box-shadow:0 0 0 3px #007d9d1a}.signin-input input{width:100%;height:100%;border:0;outline:none;box-shadow:none;background:transparent;padding:12px 16px;font-size:17px;color:var(--signin-ink);border-radius:0}.signin-input input:focus{outline:none}.signin-input input::placeholder{color:#8199b1;opacity:1}.signin-password-toggle{display:grid;place-items:center;width:48px;height:100%;flex:none;border:0;background:transparent;color:#7595b4;padding:0}.signin-password-toggle:hover{color:var(--signin-accent);background:#f1f8fb}.signin-password-field{margin-bottom:16px}.signin-field>small{display:block;margin-top:7px;color:var(--signin-muted)}.signin-options{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:28px;margin-bottom:18px}.signin-remember{display:inline-flex;align-items:center;gap:9px;font-size:15px;color:#4e6883;cursor:pointer;min-height:28px}.signin-remember input{width:19px;height:19px;margin:0;accent-color:var(--signin-accent)}.signin-text-button{border:0;background:transparent;padding:5px 0;color:var(--signin-accent);font-size:15px;font-weight:600;line-height:1.7}.signin-text-button:hover{color:#005c77;text-decoration:underline;text-underline-offset:4px}.signin-submit{display:flex;align-items:center;justify-content:center;gap:24px;width:100%;min-height:60px;padding:14px 16px;border:1px solid var(--signin-accent);border-radius:8px;background:var(--signin-accent);color:#fff;font-size:20px;font-weight:600;line-height:1.5;letter-spacing:2px;transition:background .15s,box-shadow .15s}.signin-submit:hover:not(:disabled){background:#006e8b;box-shadow:0 5px 15px #007d9d26}.signin-page button:focus-visible,.signin-remember input:focus-visible{outline:3px solid #63d7ec;outline-offset:4px}.signin-card-footer{margin-top:30px;text-align:center}.signin-divider{display:flex;align-items:center;gap:15px;margin-bottom:10px;font-size:14px;line-height:1.6;color:var(--signin-muted);white-space:nowrap}.signin-divider:before,.signin-divider:after{content:"";height:1px;flex:1;background:#c7d7e3}.signin-footer{display:flex;justify-content:space-between;gap:16px;padding:22px 3.8vw 30px;font-size:14px;font-weight:500;letter-spacing:1px;text-shadow:0 1px 5px #123045}.signin-error{display:flex;align-items:flex-start;gap:7px;color:#a63735;background:#fff0ee;border-radius:6px;padding:10px 12px;margin-bottom:16px;font-size:13px;line-height:1.6}.signin-error>svg{margin-top:2px}.signin-error button{border:0;background:none;color:inherit;text-decoration:underline;margin-left:auto;white-space:nowrap}.signin-card.is-setup{margin-top:0}.signin-card.is-setup h2{font-size:27px}.signin-card.is-setup .signin-description{font-size:15px}.signin-help-dialog{--signin-accent: #007d9d;--signin-ink: #092746;color:var(--signin-ink);width:min(460px,calc(100% - 36px));padding:28px;border:0;border-radius:16px;box-shadow:0 24px 100px #09274644}.signin-help-dialog::backdrop{background:#102c4966;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.signin-help-dialog>header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.signin-help-dialog h2{margin:0;font-size:24px}.signin-help-dialog header button{display:grid;place-items:center;padding:8px;border:0;background:transparent;color:#58728e}.signin-help-dialog p{font-size:15px;color:#536b82;line-height:1.9;margin-bottom:20px}.signin-help-dialog .signin-submit{font-size:16px;min-height:46px;margin-top:24px}@media(min-height:900px)and (min-width:1101px){.signin-content{padding-top:42px}.signin-card{margin-top:28px;padding-top:43px;padding-bottom:28px}.signin-description{margin-bottom:28px}.signin-field{margin-bottom:25px}.signin-password-field{margin-bottom:16px}.signin-card-footer{margin-top:32px}}@media(max-width:1100px){.signin-header{padding:28px 4vw 0}.signin-brand{gap:12px}.signin-brand>svg{width:46px}.signin-brand strong{font-size:19px;letter-spacing:1px}.signin-brand span{font-size:9px;letter-spacing:2px}.signin-content{grid-template-columns:minmax(0,1fr) 390px;padding:40px 4vw 55px;gap:25px}.signin-eyebrow{font-size:10px;letter-spacing:2px}.signin-intro h1{font-size:44px;letter-spacing:2px}.signin-tagline{font-size:18px;letter-spacing:1px}.signin-card{padding:32px;margin-top:20px;border-radius:22px}.signin-card h2{font-size:32px}.signin-description{font-size:16px}}@media(min-width:761px)and (max-height:850px){.signin-header{padding-top:24px}.signin-brand>svg{width:50px;height:50px}.signin-content{padding-top:24px;padding-bottom:22px}.signin-intro h1{font-size:clamp(42px,4.1vw,56px)}.signin-card{margin-top:18px;padding-top:30px;padding-bottom:26px}.signin-card h2{font-size:32px}.signin-description{font-size:16px;margin-bottom:22px}.signin-field{margin-bottom:18px}.signin-field>label{font-size:16px;margin-bottom:8px}.signin-input{height:52px}.signin-password-field{margin-bottom:13px}.signin-options{margin-bottom:16px}.signin-submit{min-height:52px}.signin-card-footer{margin-top:24px}.signin-footer{padding-top:16px;padding-bottom:20px}}@media(max-width:760px){.signin-photo{object-position:43% center}.signin-header{padding:22px 24px 0}.signin-brand{gap:10px}.signin-brand>svg{width:38px;height:38px}.signin-brand strong{font-size:16px;letter-spacing:.5px}.signin-brand span{font-size:8px;letter-spacing:1.5px}.signin-help-link{font-size:12px;white-space:nowrap;letter-spacing:0;padding-left:0}.signin-content{display:flex;flex-direction:column;align-items:center;gap:26px;padding:34px 24px 26px}.signin-intro{width:min(100%,430px);padding:0}.signin-eyebrow{font-size:10px;letter-spacing:2px;margin-bottom:10px}.signin-intro h1{font-size:37px;line-height:1.2;letter-spacing:3px;margin-bottom:10px}.signin-tagline{font-size:16px;line-height:1.65}.signin-card{width:min(100%,430px);margin-top:0;padding:28px;border-radius:20px}.signin-card h2{font-size:29px;letter-spacing:0}.signin-description{font-size:14px;margin-bottom:24px;white-space:normal}.signin-field{margin-bottom:19px}.signin-field>label{font-size:15px;margin-bottom:8px}.signin-input{height:52px}.signin-input>svg{width:20px;margin-left:14px}.signin-input input{font-size:16px;padding:10px 12px}.signin-password-field{margin-bottom:13px}.signin-options{margin-bottom:18px}.signin-remember,.signin-text-button{font-size:13px}.signin-submit{min-height:52px;font-size:18px}.signin-card-footer{margin-top:24px}.signin-divider{font-size:12px;gap:10px;margin-bottom:8px}.signin-footer{padding:10px 24px 24px;font-size:11px;letter-spacing:0;flex-wrap:wrap;gap:8px}.signin-card.is-setup h2{font-size:24px}}@media(max-width:360px){.signin-header{padding-right:18px;padding-left:18px;gap:10px}.signin-brand strong{font-size:14px}.signin-content{padding-right:18px;padding-left:18px}.signin-card{padding:24px}}@media(prefers-reduced-motion:reduce){.signin-page *,.signin-page *:before,.signin-page *:after{animation:none!important;transition:none!important}}
