:root{--bg:#f4f7f7;--ink:#182f32;--secondary:#6b7c7e;--blue:#2471c8;--green:#16856a;--line:#e0e8e7;--nav:#123d36;--panel:#fff;--shadow:0 4px 20px #163e3610;--radius:16px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:14px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}a{color:#166c5b;text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.icon{flex-shrink:0;vertical-align:middle}h1,h2,h3{line-height:1.22}h1{font-size:clamp(25px,2.3vw,34px);margin:5px 0 0;font-weight:750;letter-spacing:-.045em}h2{font-size:17px;margin:0 0 17px;letter-spacing:-.02em}h3{font-size:15px;margin:22px 0 12px}p{margin:8px 0 16px}.muted,.file-note{color:var(--secondary)}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link:focus{position:fixed;top:5px;left:5px;padding:14px;background:#fff;z-index:100}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;flex-shrink:0;background:transparent;color:inherit;border:1px solid transparent;border-radius:10px}.icon-button:hover{background:#eef4f2;border-color:var(--line)}:focus-visible{outline:3px solid #51a9cf;outline-offset:3px}.logo{display:inline-flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;flex-shrink:0}.logo:hover{text-decoration:none}.brand-mark{width:38px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:11px;background:#e1f2eb;color:#166c54}.brand-mark .icon{width:25px;height:25px}.brand-copy{display:flex;flex-direction:column;line-height:1.2}.brand-copy b{font-size:24px;letter-spacing:-1px}.brand-copy small{font-size:10px;letter-spacing:.05em;color:var(--secondary);margin-top:3px}.brand-dot{color:#2ca379}.top{height:80px;background:#fff;border-bottom:1px solid var(--line);padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;top:0;z-index:40}.top-brand,.topright{display:flex;align-items:center;gap:18px;min-width:0}.top-context{color:#80918f;font-size:11px;letter-spacing:.1em;text-transform:uppercase}.topright form{margin:0}.user-summary{display:flex;align-items:center;gap:10px;color:var(--ink)}.user-summary:hover{text-decoration:none}.user-summary>span:last-child{display:flex;flex-direction:column}.user-summary b{font-size:12px;max-width:170px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-summary small{font-size:10px;color:var(--secondary)}.user-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:#3b7967;background:#edf5f1}.logout-button{border-color:var(--line);color:var(--secondary)}.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:calc(100dvh - 80px)}.shell.no-navigation{grid-template-columns:1fr}.sidebar{background:var(--nav);color:#d3e2dd;padding:24px 16px;position:sticky;top:80px;height:calc(100dvh - 80px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#467167 transparent}.sidebar-heading{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.13em;color:#8db7a9;margin:0 10px 16px}.nav-search input{width:100%;background:#ffffff0b;border:1px solid #ffffff18;border-radius:8px;color:#fff;padding:10px 12px;font-size:12px}.nav-search input::placeholder{color:#a0bdb4}.nav-group{margin-top:23px}.nav-group h2{font-size:9px;letter-spacing:.11em;color:#84ab9f;margin:0 10px 8px;font-weight:600}.nav-group a{display:flex;align-items:center;gap:11px;min-height:40px;padding:9px 11px;color:#d6e6df;border-radius:8px;font-size:12px;margin:2px 0;position:relative}.nav-group a .icon{width:17px;height:17px;color:#9abcaf}.nav-group a:hover{background:#ffffff0c;color:#fff;text-decoration:none}.nav-group a.selected{background:#ffffff15;color:#fff;font-weight:650}.nav-group a.selected:before{content:"";height:18px;width:3px;border-radius:3px;background:#6bdbb1;position:absolute;left:-5px}.nav-group a.selected .icon{color:#7be1b9}.sidebar-footer{display:flex;gap:9px;align-items:center;font-size:10px;color:#8fb0a4;border-top:1px solid #ffffff15;padding:20px 9px 0;margin-top:26px}.sidebar-footer .icon{width:15px}.nav-no-results{font-size:12px;padding:12px;color:#cedcd5}.menu-toggle,.nav-close,.nav-backdrop,.mobile-nav{display:none}.content{min-width:0;max-width:1600px;width:100%;margin:0 auto;padding:30px 34px 24px}.content.wide{max-width:1800px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{font-size:9px;letter-spacing:.13em;font-weight:650;color:#78918a}.today{display:flex;align-items:center;gap:7px;color:#728582;font-size:11px;white-space:nowrap}.today .icon{width:15px}.content-footer{border-top:1px solid var(--line);margin-top:38px;padding-top:18px;font-size:11px;font-weight:700;color:#94a39e;display:flex;gap:10px}.content-footer span{font-weight:400}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin:20px 0;box-shadow:var(--shadow);min-width:0}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.panel-title h2{margin:0}.panel-title a{font-size:12px;font-weight:600}.panel-title small{font-size:11px;color:var(--secondary)}.btn{border:1px solid #dce6e2;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:9px;cursor:pointer;font-weight:650;font-size:12px;padding:11px 16px;min-height:42px;background:#fff;color:#294f44;white-space:nowrap;text-decoration:none;transition:background .15s,box-shadow .15s}.btn:hover{background:#f1f6f3;text-decoration:none;box-shadow:0 3px 8px #173c3610}.btn .icon{width:17px;height:17px}.btn.primary{background:#17745b;color:#fff;border-color:#17745b}.btn.primary:hover{background:#125e49}.btn.subtle{background:#edf3f0;border-color:transparent}.btn.danger{background:#b43c4b;color:#fff;border-color:#b43c4b}.btn.sm{padding:6px 10px;font-size:11px;min-height:32px}.btn.blue-btn{background:#2675d2;color:#fff;border-color:#2675d2;width:100%}.btn.green-btn{background:#23896c;color:#fff;border-color:#23896c;width:100%}.field{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:12px;font-weight:600}.field input,.field select,.field textarea,input[type=file],.inline input:not([type=hidden]){font:inherit;font-weight:400;background:#fff;border:1px solid #cddbd6;border-radius:8px;color:var(--ink);padding:11px 12px;width:100%;min-height:44px}.field input:hover,.field select:hover,.field textarea:hover{border-color:#90b4a5}.field textarea{min-height:85px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #5cbca0;outline-offset:1px;border-color:transparent}.field small{font-size:11px;font-weight:400;color:var(--secondary)}.fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:20px}.fields.two{grid-template-columns:repeat(2,minmax(0,1fr))}.notice{padding:14px 17px;border-radius:10px;margin:16px 0;background:#eaf5ee;border:1px solid #c2e3ce;color:#2c6345;font-size:12px}.notice.error{background:#fff0f0;border-color:#efcbcb;color:#9b3946}.notice.warn{background:#fff8e8;border-color:#eadbb6;color:#816626}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;min-height:126px;box-shadow:var(--shadow);min-width:0}.kpi span{font-size:11px;color:var(--secondary);font-weight:550}.kpi strong{font-size:clamp(22px,2.1vw,30px);letter-spacing:-.045em;display:block;margin-top:16px;line-height:1.2;font-variant-numeric:tabular-nums;color:#183e35}.metric-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.metric-icon{display:flex;align-items:center;justify-content:center;background:#f0f6f3;width:32px;height:32px;border-radius:8px;flex-shrink:0}.metric-icon .icon{width:17px;height:17px;color:#608d7e}.kpi.green{background:#eaf7f0;border-color:#cbe8d8}.kpi.green strong{color:#16704e}.kpi.red strong{color:#b43c4b}.section-label{margin:26px 0 14px;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:#637d72;display:flex;justify-content:space-between;align-items:center}.section-label span{font-size:10px;letter-spacing:0;text-transform:none;color:#889c93}.dashboard-hero{background:linear-gradient(110deg,#164d3f,#216a54);color:#fff;border-radius:17px;padding:25px 27px;display:flex;align-items:center;justify-content:space-between;gap:24px;overflow:hidden;position:relative}.dashboard-hero:after{content:"";width:270px;height:270px;border:1px solid #ffffff10;border-radius:50%;position:absolute;right:150px;top:-160px;box-shadow:0 0 0 35px #ffffff04,0 0 0 70px #ffffff03;pointer-events:none}.dashboard-hero h2{font-size:23px;margin:6px 0 8px;letter-spacing:-.03em}.dashboard-hero p{color:#bcded0;font-size:12px;margin:0}.hero-label{font-size:9px;letter-spacing:.12em;color:#8ed4b7}.dashboard-hero .btn{background:#fff;color:#1d5944;border:0;position:relative;z-index:1}.quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 24px}.quick-action{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px;color:var(--ink);min-width:0}.quick-action:hover{background:#f9fcfa;border-color:#a3c4b5;text-decoration:none}.quick-action>span:nth-child(2){flex:1;min-width:0}.quick-action b{font-size:12px;display:block}.quick-action small{font-size:10px;color:var(--secondary);display:block;margin-top:2px}.quick-action>.icon{width:15px;color:#8da399}.action-icon{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;background:#f0f6f2;color:#50816d;flex-shrink:0}.action-icon .icon{width:18px;height:18px}.month-filter{display:flex;align-items:center;gap:10px;margin:0}.month-filter label{font-size:11px;color:var(--secondary)}.month-filter input{background:#fff;border:1px solid var(--line);border-radius:8px;padding:9px;color:var(--ink);font:inherit}.dashboard-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:24px 0 17px}.dashboard-toolbar h2{margin:0;font-size:17px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.detail-grid>.panel{margin:20px 0 0}.overview-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:20px}.overview-grid>.panel{margin-top:20px;margin-bottom:0}.finance-list{margin:0}.finance-list>div{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid #edf1ef;align-items:baseline}.finance-list dt{color:var(--secondary);font-size:12px}.finance-list dd{margin:0;font-size:13px;font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums}.finance-list .total{margin:8px -12px -8px;padding:15px 12px;background:#eaf7ee;border-radius:10px;border:0;color:#176344}.finance-list .total dt{color:inherit;font-weight:600}.finance-list .total dd{font-size:20px}.finance-list .total.negative{background:#fff0f0;color:#a73545}.chart{height:215px;display:flex;gap:12px;padding:24px 0 0;align-items:stretch}.chart-column{flex:1;display:flex;align-items:center;flex-direction:column;justify-content:flex-end;min-width:0;gap:9px}.chart-column .bar-space{height:150px;width:100%;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to top,transparent 0,transparent 49px,#f0f4f1 50px)}.chart-column .bar{width:60%;min-width:14px;max-width:44px;min-height:2px;border-radius:5px 5px 0 0;background:#8fcbb4}.chart-column:last-child .bar{background:#237c5e}.chart-column small{font-size:9px;color:var(--secondary)}.chart-column b{font-size:10px;font-weight:600}.chart-caption{font-size:10px;color:var(--secondary);margin:17px 0 0}.chart-bars{height:160px;display:flex;align-items:flex-end;gap:8px}.chart-bars div{flex:1;background:#6bbd9a;border-radius:5px 5px 0 0}.disclosure{background:#fff;border:1px solid var(--line);border-radius:12px;margin:20px 0;padding:0 20px}.disclosure>summary{cursor:pointer;font-size:13px;font-weight:650;padding:17px 0;color:#36594c}.disclosure[open]>summary{border-bottom:1px solid var(--line);margin-bottom:18px}.disclosure .cards{margin-bottom:20px}.disclosure-note{color:var(--secondary);font-size:11px;font-weight:400;margin-left:10px}.table-wrap{min-width:0}.table-scroll{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:10px;scrollbar-width:thin;scrollbar-color:#bad0c5 #f4f8f6}.table-hint{font-size:10px;color:#6f8a7c;padding:0 0 8px;text-align:right}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:12px;background:#fff}th{text-align:left;font-size:10px;font-weight:650;color:#6d8177;background:#f6f9f7}th,td{padding:13px 15px;border-bottom:1px solid #edf1ef;vertical-align:middle}td{font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcfb}td a{font-size:11px;font-weight:600}.empty{text-align:center;color:#84978d;padding:36px}.inline{display:inline-flex;align-items:center;gap:8px;margin:0 3px 0 0}.action-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.action-bar h2{margin:0}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip,.tag{font-size:10px;font-weight:650;background:#edf2ef;border-radius:6px;padding:5px 9px;color:#5c776a;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.tag.approved,.tag.final{color:#22734f;background:#e5f4eb}.tag.rejected{color:#ac4050;background:#fcebef}.tag.submitted{color:#8b6827;background:#fbf1dc}.tag.draft{color:#4c728c;background:#eaf2f8}.tag.historical{color:#63658d;background:#eeeef7}.danger-text{color:#b4384b}.form-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:18px}.entry-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:24px;align-items:start}.entry-layout>.panel{margin-top:0}.entry-tips{border:1px solid var(--line);border-radius:14px;background:#eaf3ed;padding:20px;position:sticky;top:104px}.entry-tips h2{font-size:14px;margin-top:12px}.entry-tips p,.entry-tips li{font-size:11px;color:#5b7b69;line-height:1.7}.entry-tips ol{padding-left:18px;margin:0}.entry-tips li{margin:10px 0}.form-section{padding-bottom:22px;margin-bottom:24px;border-bottom:1px solid var(--line)}.form-section:last-of-type{margin-bottom:0}.form-section-heading{display:flex;align-items:center;gap:12px;margin:0 0 22px}.form-section-heading>span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#eaf4ee;color:#3b8063;font-size:11px;font-weight:750;flex-shrink:0}.form-section-heading h2{font-size:15px;margin:0}.form-section-heading p{font-size:11px;color:var(--secondary);margin:3px 0 0}.entry-extra{margin:8px 0 24px;padding:0;border:0;border-bottom:1px solid var(--line);border-radius:0}.entry-extra summary{font-size:12px}.upload-zone{background:#f7faf8;border:1px dashed #a9c9b7;border-radius:12px;padding:20px}.upload-zone>span{font-size:13px}.upload-zone input{border:0;background:transparent;padding-left:0}.upload-zone small{font-size:10px;color:var(--secondary)}.job-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.job-card{border:1px solid var(--line);border-radius:12px;padding:20px;background:#fff}.job-card h3{font-size:16px;margin:12px 0 3px}.job-card p{font-size:11px;color:var(--secondary)}.job-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:#507363;padding:13px 0;border-top:1px solid var(--line)}.job-meta .icon{width:17px}.job-card .btn{margin-top:8px}.worker-hero{margin-bottom:20px}.status-overview{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.status-overview a{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:11px;color:#587362}.status-overview b{margin-left:6px;color:var(--ink)}.catalog-form>summary{display:flex;align-items:center;gap:9px;list-style:none}.catalog-form>summary:after{content:"+";margin-left:auto;font-size:19px;color:#168166}.catalog-form[open]>summary:after{content:"−"}.catalog-form form{padding-bottom:22px}.catalog-form .btn{margin-right:8px}.requirements{padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.requirements li{display:flex;justify-content:space-between;gap:10px;background:#f3f7f4;padding:9px 12px;border-radius:7px}.requirements li.pass strong{color:#19764e}.requirements li.fail strong{color:#b43c4b}.pager{display:flex;gap:5px;margin:18px 0 0}.pager a{padding:6px 11px;border:1px solid var(--line);border-radius:7px;color:#4f7663}.pager a.active{background:#e8f4ec;border-color:#a9cdb8;color:#246b48}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.tabs a{padding:9px 13px;background:#fff;border:1px solid var(--line);border-radius:8px;font-size:12px}.checkline{display:flex;gap:8px;align-items:center}.checkline input{width:auto;min-height:initial}.file-note{display:block;font-size:11px;margin:7px 0}.install{background:#f0f6f2;padding:35px 15px}.installer{width:min(840px,100%);margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:20px;padding:34px;box-shadow:var(--shadow)}.installer h2{border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.installer h1{margin-bottom:20px}
/* Two separate role forms, preserving the established blue and green identity. */
.landing{min-height:100dvh;color:#e7f2ec;background:radial-gradient(ellipse at 80% 30%,#205c4b 0,transparent 55%),linear-gradient(130deg,#0a2426,#103b32 60%,#0c2826);position:relative}.landing:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(#ffffff05 1px,transparent 1px);background-size:80px 80px;opacity:.3}.landing-head{height:92px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff10;position:relative}.landing .logo{color:#fff}.landing .brand-mark{background:#ffffff10;color:#7bc8a3}.landing .brand-copy small{color:#92b9aa}.landing-head>span{font-size:11px;color:#8eb5a4;display:flex;align-items:center;gap:7px}.landing-head>span .icon{width:16px}.tles-login{position:relative;max-width:1010px;min-height:calc(100dvh - 155px);margin:auto;padding:52px 24px 60px;display:flex;flex-direction:column;justify-content:center}.tles-login-heading{text-align:center;margin-bottom:36px}.tles-login-heading .eyebrow{color:#7abb9b;letter-spacing:.17em;font-size:10px}.tles-login-heading h1{font-size:clamp(30px,4vw,44px);margin:13px 0 12px;color:#fff;letter-spacing:-.045em}.tles-login-heading p{font-size:13px;color:#aec8bb;margin:0}.login-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.login-card{background:#fdfefd;border:1px solid #ffffff40;border-radius:19px;padding:30px 32px 24px;box-shadow:0 22px 60px #001e1730;min-width:0;color:#1f343b;text-align:left;margin:0;position:relative}.login-card.green{background:#f9fdfa}.login-card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.login-symbol{width:46px;height:46px;display:grid;place-items:center;background:#edf3fc;color:#3475bc;border-radius:12px}.login-symbol .icon{width:24px;height:24px}.green .login-symbol{background:#e4f4ea;color:#2c8962}.role-label{font-size:9px;font-weight:650;letter-spacing:.09em;color:#668399;padding-top:4px}.green .role-label{color:#66947a}.login-card h2{font-size:23px;margin:0 0 8px;letter-spacing:-.035em}.login-card>p{font-size:12px;color:#7a8c8b;margin:0 0 25px;min-height:38px}.login-card .field{margin:16px 0;font-size:11px;color:#47605b}.login-card .field input{background:#f6f9f8;border-color:#dae5e0;min-height:46px}.login-card .field input::placeholder{color:#98a8a0}.login-card .btn{min-height:46px;margin-top:6px;font-size:12px}.login-footer{display:flex;align-items:center;gap:7px;color:#95a69d;font-size:10px;margin-top:22px;padding-top:17px;border-top:1px solid #e6ece7}.login-footer .icon{width:14px;height:14px}.landing-foot{position:relative;display:flex;justify-content:space-between;gap:16px;padding:22px 6vw;border-top:1px solid #ffffff10;font-size:10px;color:#86ab9a}.landing-foot b{color:#bcd6c9}.password-field{position:relative}.password-field input{padding-right:50px}.password-toggle{position:absolute;right:8px;bottom:5px;height:36px;background:transparent;border:0;color:#678576;font-size:10px;padding:0 7px}
@media(min-width:1500px){.content{padding-left:42px;padding-right:42px}.cards .kpi strong{font-size:32px}}
@media(max-width:1200px){.shell{grid-template-columns:220px minmax(0,1fr)}.content{padding:26px 24px}.top-context{display:none}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid{grid-template-columns:1fr 1fr}.entry-layout{grid-template-columns:1fr}.entry-tips{position:static}.entry-tips ol{display:flex;gap:28px;padding-left:16px}.entry-tips li{flex:1}.entry-tips>p{display:none}.quick-action small{font-size:9px}.fields{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-actions{gap:8px}.quick-action{padding:12px;gap:8px}.quick-action>.icon{display:none}}
@media(max-width:900px){.top{height:68px;padding:0 18px;gap:12px}.shell{display:block;min-height:calc(100dvh - 68px)}.sidebar{position:static;height:auto;padding:20px}.sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.js .sidebar{position:fixed;left:0;top:68px;bottom:0;width:min(325px,88vw);height:auto;z-index:70;transform:translateX(-105%);transition:transform .18s ease;visibility:hidden}.js .sidebar nav{display:block}.js .menu-toggle,.nav-close{display:inline-flex}.nav-open .sidebar{transform:translateX(0);visibility:visible}.nav-open .nav-backdrop{display:block;position:fixed;inset:68px 0 0;border:0;background:#092c276b;z-index:60}.nav-open{overflow:hidden}.nav-close{width:30px;height:30px;color:#a9cebd}.nav-close:hover{background:#ffffff10}.nav-close .icon{width:18px}.js .mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;left:0;right:0;z-index:45;background:#ffffffed;backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:7px 8px max(9px,env(safe-area-inset-bottom));min-height:66px}.mobile-nav>a,.mobile-nav>button{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;background:none;border:0;color:#8a9b92;font-size:9px;padding:5px;border-radius:8px}.mobile-nav [aria-current],.mobile-nav>button[aria-expanded=true]{background:#e9f5ed;color:#237454}.mobile-nav .icon{width:19px;height:19px}.content{padding:24px 22px 90px}.content-footer{margin-top:28px}.sidebar-heading{margin-bottom:13px}.top-brand{gap:10px}.brand-mark{width:34px;height:39px}.brand-copy b{font-size:22px}.user-summary b{max-width:130px}.topright{gap:12px}.page-heading{margin-bottom:22px}.overview-grid{grid-template-columns:1.15fr 1fr}.fields{gap:18px}.entry-tips{display:none}.detail-grid{gap:16px}.dashboard-hero{padding:23px}.dashboard-hero h2{font-size:22px}}
@media(max-width:620px){body{font-size:13px}.top{height:64px;padding:0 12px}.top .brand-mark{width:28px;height:34px;border-radius:8px}.top .brand-mark .icon{width:21px}.top .brand-copy b{font-size:19px}.top .brand-copy small{font-size:8px;margin-top:2px}.top .logo{gap:7px}.topright{gap:3px}.top-brand{gap:3px}.top .icon-button{width:36px;height:36px}.user-summary>span:last-child{display:none}.user-avatar{width:31px;height:31px}.logout-button{border:0}.shell{min-height:calc(100dvh - 64px)}.js .sidebar{top:64px}.nav-open .nav-backdrop{top:64px}.content{padding:22px 16px 88px}.eyebrow{font-size:8px}.page-heading{gap:10px;margin-bottom:19px}.page-heading h1{font-size:26px}.today{display:none}.dashboard-hero{padding:22px;align-items:flex-start;flex-direction:column;gap:17px;border-radius:14px}.dashboard-hero h2{font-size:22px;max-width:260px}.dashboard-hero p{font-size:11px;line-height:1.65}.dashboard-hero .btn{font-size:11px;min-height:40px}.quick-actions{grid-template-columns:1fr;gap:9px;margin-top:13px;margin-bottom:22px}.quick-action{padding:12px 14px;gap:12px}.quick-action b{font-size:12px}.quick-action small{font-size:10px}.quick-action>.icon{display:block}.cards{gap:10px}.kpi{padding:14px;min-height:118px;border-radius:12px}.kpi strong{font-size:23px;margin-top:17px;word-break:normal;overflow-wrap:anywhere}.kpi span{font-size:10px}.metric-icon{width:25px;height:25px}.metric-icon .icon{width:14px;height:14px}.metric-top{align-items:flex-start;gap:4px}.dashboard-toolbar{margin-top:22px;gap:12px}.dashboard-toolbar h2{font-size:16px}.month-filter{gap:6px;flex-wrap:wrap}.month-filter label{font-size:10px}.month-filter input{max-width:160px;min-height:40px;font-size:12px}.month-filter .btn{padding:9px 12px;min-height:40px}.overview-grid,.detail-grid{grid-template-columns:1fr;gap:0}.panel{padding:19px 16px;margin:16px 0;border-radius:13px}.panel-title h2{font-size:15px}.panel-title a{font-size:10px}.notice{font-size:11px;padding:12px 14px}.section-label{font-size:10px}.section-label span{font-size:9px}.finance-list dt{font-size:11px}.finance-list dd{font-size:12px}.finance-list .total dd{font-size:19px}.chart{gap:6px;height:200px}.chart-column small{font-size:8px}.chart-column b{font-size:9px}.disclosure{padding:0 16px}.disclosure-note{display:block;margin-left:0;font-size:10px;font-weight:400;margin-top:4px}.disclosure .cards{grid-template-columns:1fr 1fr}.disclosure .kpi{padding:11px;min-height:95px}.disclosure .kpi strong{font-size:19px}.fields,.fields.two{grid-template-columns:1fr;gap:17px}.field{font-size:12px}.field input,.field select,.field textarea{font-size:16px;padding:12px;min-height:47px}.field textarea{min-height:90px}.entry-layout{gap:0}.entry-layout>.panel{padding:22px 18px}.form-section-heading{gap:11px;margin-bottom:21px}.form-section-heading h2{font-size:14px}.form-section-heading p{font-size:10px}.form-section{margin-bottom:23px}.form-actions .btn{white-space:normal;flex:1;min-height:46px}.form-actions .btn.primary{flex-basis:100%;order:-1}.upload-zone{padding:15px}.upload-zone input{font-size:11px}.job-cards{grid-template-columns:1fr;gap:12px}.job-card{padding:18px}.status-overview{gap:7px}.status-overview a{padding:8px 10px;font-size:10px}.worker-hero .btn{width:100%;min-height:45px}.action-bar{align-items:flex-start}.action-bar .chips{gap:6px}.action-bar .btn{white-space:normal;font-size:11px;padding:9px 12px}.table-hint{font-size:9px;text-align:left}.table-scroll{border-radius:8px}th,td{padding:12px}.requirements{grid-template-columns:1fr}.installer{padding:24px 18px}.inline{flex-wrap:wrap}.small-field{max-width:160px}.landing-head{height:78px;padding:0 22px}.landing-head>span{font-size:0}.landing-head>span .icon{width:20px;height:20px}.landing .brand-copy b{font-size:23px}.landing .brand-copy small{font-size:9px}.tles-login{padding:32px 18px 38px;min-height:calc(100dvh - 140px)}.tles-login-heading{margin-bottom:27px}.tles-login-heading h1{font-size:31px;margin:10px 0}.tles-login-heading p{font-size:11px}.tles-login-heading .eyebrow{font-size:8px}.login-options{grid-template-columns:1fr;gap:20px}.login-card{padding:25px 23px 20px;border-radius:16px}.login-card h2{font-size:22px}.login-card>p{min-height:0;margin-bottom:22px;font-size:11px}.login-card .field input{font-size:16px}.login-card .btn{font-size:12px;white-space:normal}.login-card-head{margin-bottom:18px}.login-footer{margin-top:20px;font-size:9px}.landing-foot{padding:20px 22px;flex-direction:column;gap:5px;font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{.top,.sidebar,.mobile-nav,.content-footer,.btn,.nav-backdrop{display:none!important}.shell{display:block}.content{padding:0}.panel,.kpi{box-shadow:none;break-inside:avoid}body{background:#fff}.table-scroll{overflow:visible}}
[hidden]{display:none!important}

[id^="report-"]{scroll-margin-top:100px}
