@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=IBM+Plex+Mono:wght@400;600&display=swap";:root{color:#132826;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff6e5;font-family:Space Grotesk,Segoe UI,sans-serif;font-weight:400;line-height:1.4}*{box-sizing:border-box}body{background:radial-gradient(circle at 15% 18%,#e9b0584d,#0000 36%),radial-gradient(circle at 86% 82%,#3fbeaf47,#0000 40%),linear-gradient(#fff9ec,#f8f2e8);min-height:100vh;margin:0}#root{min-height:100vh}h1,h2,button{font-family:Space Grotesk,Segoe UI,sans-serif}code,pre{font-family:IBM Plex Mono,Consolas,monospace}*{box-sizing:border-box;margin:0;padding:0}.login-selection-page{background:linear-gradient(135deg,#f8fafc 0%,#e0e7ff 50%,#dbeafe 100%);flex-direction:column;min-height:100dvh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;display:flex;position:relative;overflow:hidden}.hero-header{background:linear-gradient(90deg,#fef3c7 0%,#dbeafe 50%,#a0f3d8 100%);padding:clamp(.75rem,1.8vh,1.5rem) clamp(.75rem,2vw,2rem);box-shadow:0 4px 12px #0000000d}.hero-content{justify-content:space-between;align-items:center;gap:clamp(.75rem,2vw,1.75rem);max-width:1400px;margin:0 auto;display:flex}.hero-text{flex:1}.hero-kicker{letter-spacing:1.5px;color:#06c;margin-bottom:.5rem;font-size:.8rem;font-weight:700}.hero-text h1{color:#1a1a1a;letter-spacing:-.5px;margin-bottom:.35rem;font-size:clamp(1.35rem,2.8vw,2.15rem);font-weight:700}.hero-subtitle{color:#475569;font-size:clamp(.82rem,1.8vw,.95rem);font-weight:500}.hero-logo{background:#fff;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;min-width:130px;height:80px;padding:.45rem;display:flex;box-shadow:0 4px 16px #0066cc26}.logo-image{width:auto;max-width:120px;height:100%;display:block}.selection-content{flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;max-width:1200px;margin:0 auto;padding:clamp(.4rem,1.5vh,1rem) .75rem;display:flex}.selection-intro{text-align:center;margin-bottom:2rem}.selection-intro h1{background:linear-gradient(135deg,#06c 0%,#0052a3 100%);-webkit-text-fill-color:transparent;letter-spacing:-.5px;-webkit-background-clip:text;background-clip:text;margin-bottom:.5rem;font-size:2rem;font-weight:700}.selection-intro p{color:#475569;opacity:.9;font-size:1rem;font-weight:500}.selection-intro{display:none}.login-cards-grid{grid-template-columns:repeat(3,1fr);gap:clamp(.6rem,1.5vw,1.15rem);width:100%;max-width:1100px;display:grid}.login-card{background:#fff;border:1px solid #0000000d;border-radius:16px;flex-direction:column;justify-content:space-between;min-height:clamp(180px,30vh,245px);padding:clamp(.9rem,1.8vh,1.25rem);transition:all .4s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 4px 16px #00000014,0 2px 8px #0000000a}.login-card:before{content:"";background:linear-gradient(90deg, var(--card-color-start), var(--card-color-end));height:4px;position:absolute;top:0;left:0;right:0}.login-card:after{content:"";background:linear-gradient(135deg, rgba(var(--card-rgb-start), .02) 0%, rgba(var(--card-rgb-end), .01) 100%);pointer-events:none;position:absolute;inset:0}.login-card.master-admin{--card-color-start:#06c;--card-color-end:#0052a3;--card-rgb-start:0, 102, 204;--card-rgb-end:0, 82, 163}.login-card.admin{--card-color-start:#6366f1;--card-color-end:#4f46e5;--card-rgb-start:99, 102, 241;--card-rgb-end:79, 70, 229}.login-card.employee{--card-color-start:#10b981;--card-color-end:#059669;--card-rgb-start:16, 185, 129;--card-rgb-end:5, 150, 105}.login-card:hover{border-color:#06c3;transform:translateY(-6px);box-shadow:0 12px 32px #0066cc26,0 4px 12px #0000001a}.card-icon{filter:drop-shadow(0 2px 4px #0000001a);margin-bottom:.4rem;font-size:clamp(1.55rem,2.8vw,2rem);display:inline-block}.login-card h2{color:#0f172a;letter-spacing:-.3px;margin-bottom:.35rem;font-size:clamp(.95rem,2vw,1.1rem);font-weight:600}.login-card p{color:#64748b;flex-grow:1;margin-bottom:.8rem;font-size:clamp(.72rem,1.2vw,.82rem);line-height:1.35}.card-button{cursor:pointer;letter-spacing:.5px;text-transform:uppercase;border:none;border-radius:10px;width:100%;padding:.6rem .85rem;font-size:.74rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 4px 12px #00000026}.card-button:before{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);width:100%;height:100%;transition:left .6s;position:absolute;top:0;left:-100%}.card-button:hover:before{left:100%}.login-card.master-admin .card-button{color:#fff;background:linear-gradient(135deg,#06c 0%,#0052a3 100%)}.login-card.master-admin .card-button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0066cc59,0 4px 12px #0003}.login-card.admin .card-button{color:#fff;background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%)}.login-card.admin .card-button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #6366f159,0 4px 12px #0003}.login-card.employee .card-button{color:#fff;background:linear-gradient(135deg,#10b981 0%,#059669 100%)}.login-card.employee .card-button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #10b98159,0 4px 12px #0003}.card-button:active{transform:translateY(0)}.selection-footer{text-align:center;color:#64748b;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#fff6 0%,#f0f4f84d 100%);border-top:1px solid #0066cc1a;padding:clamp(.45rem,1.3vh,.8rem);font-size:.72rem}@media (height<=860px){.hero-kicker{margin-bottom:.2rem}.hero-subtitle{display:none}.login-card{min-height:170px}.login-card:hover{transform:translateY(-2px)}}@media (height<=720px){.hero-header{padding-top:.45rem;padding-bottom:.45rem}.hero-logo{min-width:105px;height:64px}.logo-image{max-width:95px}.selection-footer{display:none}.login-card{min-height:155px;padding:.75rem}.login-card p{margin-bottom:.6rem}}@media (width<=1024px){.hero-header{padding:1.5rem 2rem}.hero-content{gap:2rem}.hero-text h1{font-size:1.8rem}.hero-subtitle{font-size:.9rem}.hero-logo{min-width:180px;height:120px}.logo-image{max-width:160px}.selection-content{padding:2.5rem 1rem 2rem}.selection-intro h1{font-size:1.6rem}.selection-intro p{font-size:.95rem}.login-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;max-width:860px}.login-card:nth-child(3){grid-column:1/-1;justify-self:center;width:100%;max-width:420px}.login-card{min-height:280px;padding:1.5rem}.card-icon{font-size:2.2rem}.login-card h2{font-size:1.1rem}.login-card p{font-size:.8rem}.login-card:hover{transform:translateY(-4px)}}@media (width>=901px) and (width<=1100px){.login-cards-grid{max-width:980px}.login-card{min-height:210px}}@media (width<=767px){.login-selection-page{min-height:100dvh}.hero-header{padding:.7rem}.hero-content{text-align:center;flex-direction:column;gap:.65rem}.hero-text h1{font-size:1.5rem}.hero-subtitle{font-size:.75rem}.hero-logo{min-width:110px;height:72px;margin:0 auto}.logo-image{max-width:96px}.selection-content{padding:.45rem .6rem}.selection-intro{margin-bottom:1.5rem}.selection-intro h1{font-size:1.4rem}.selection-intro p{font-size:.9rem}.login-cards-grid{grid-template-columns:1fr;gap:.55rem}.login-card:nth-child(3){grid-column:auto;justify-self:stretch;max-width:none}.login-card{min-height:128px;padding:.72rem}.card-icon{font-size:1.35rem}.login-card h2{font-size:.9rem}.login-card p{margin-bottom:.45rem;font-size:.68rem;line-height:1.28}.card-button{padding:.5rem .7rem;font-size:.66rem}.selection-footer{padding:.4rem;font-size:.65rem}.login-card:hover{transform:translateY(-3px)}}@media (width<=479px){.hero-header{padding:1rem .75rem}.hero-content{flex-direction:column;gap:1rem}.hero-kicker{font-size:.7rem}.hero-text h1{margin-bottom:.3rem;font-size:1.25rem}.hero-subtitle{font-size:.8rem}.hero-logo{min-width:140px;height:100px}.logo-image{max-width:120px}.selection-content{padding:1.75rem .5rem 1.25rem}.selection-intro h1{margin-bottom:.3rem;font-size:1.25rem}.selection-intro p{font-size:.8rem}.login-cards-grid{gap:.75rem}.login-card{min-height:240px;padding:1rem}.card-icon{margin-bottom:.5rem;font-size:1.75rem}.login-card h2{margin-bottom:.35rem;font-size:.95rem}.login-card p{margin-bottom:.75rem;font-size:.7rem;line-height:1.4}.card-button{padding:.6rem .9rem;font-size:.7rem}.selection-footer{padding:.75rem;font-size:.7rem}}@media (width>=1440px){.hero-header{padding:2.5rem 3rem}.hero-content{gap:4rem}.hero-text h1{font-size:2.75rem}.hero-subtitle{font-size:1.05rem}.hero-logo{min-width:240px;height:160px}.logo-image{max-width:220px}.selection-content{padding:3.5rem 2rem 2rem}.selection-intro h1{font-size:2.25rem}.selection-intro p{font-size:1.05rem}.login-cards-grid{gap:2rem;max-width:1200px}.login-card{min-height:320px;padding:2rem}.card-icon{font-size:3rem}.login-card h2{font-size:1.3rem}.login-card p{font-size:.95rem}.login-card:hover{transform:translateY(-8px)}}.change-password-page{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);place-content:center;min-height:100vh;padding:1rem;display:grid}.change-password-container{width:100%;max-width:450px}.change-password-card{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 4px 20px #00000026}.change-password-card h1{color:#1a1a1a;margin:0 0 .5rem;font-size:1.75rem}.change-password-card .subtitle{color:#666;margin:0 0 2rem;font-size:.95rem}.form-group{flex-direction:column;margin-bottom:1.5rem;display:flex}.label-text{color:#1a1a1a;margin-bottom:.5rem;font-size:.95rem;font-weight:600}.form-group input{border:1px solid #ddd;border-radius:4px;padding:.75rem;font-family:inherit;font-size:1rem;transition:border-color .2s}.form-group input:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{cursor:not-allowed;background-color:#f5f5f5}.btn-save{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:4px;width:100%;padding:.75rem;font-size:1rem;font-weight:600;transition:transform .2s,box-shadow .2s}.btn-save:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.error-message{color:#d32f2f;background-color:#ffebee;border:1px solid #ef5350;border-radius:4px;padding:1rem}@media (width<=1024px){.change-password-page{padding:.75rem}.change-password-container{max-width:520px}.change-password-card{border-radius:12px;padding:1.5rem}}@media (width<=768px){.change-password-page{place-content:center;min-height:100dvh;padding:.6rem}.change-password-container{max-width:none}.change-password-card{border-radius:10px;padding:1rem}.change-password-card h1{font-size:1.3rem}.change-password-card .subtitle{margin-bottom:1rem;font-size:.9rem}.form-group{margin-bottom:.9rem}.form-group input,.btn-save{font-size:16px}.btn-save{min-height:44px}}.app-shell{flex-direction:column;gap:20px;width:min(1200px,94vw);margin:32px auto;display:flex}.app-shell.auth-shell{gap:0;width:100%;min-height:100dvh;margin:0}.global-logo-badge{bottom:calc(8px + var(--safe-bottom,0px));z-index:1200;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);pointer-events:none;background:#ffffffe0;border:1px solid #94a3b859;border-radius:12px;justify-content:center;align-items:center;padding:4px 6px;display:inline-flex;position:fixed;right:10px;box-shadow:0 8px 18px #0f172a1f}.global-logo-image{width:clamp(60px,9.5vw,92px);height:auto;display:block}.hero{background:linear-gradient(135deg,#ffd892 0%,#fff6df 38%,#b9e7e1 100%);border:1px solid #ebd8b0;border-radius:22px;padding:30px;animation:.5s ease-out rise-in;position:relative;box-shadow:0 14px 30px #0c28261f}.kicker{text-transform:uppercase;letter-spacing:.12em;color:#38526a;margin:0;font-size:12px;font-weight:700}.subtitle{max-width:72ch}.api-text{color:#38526a;margin:10px 0 0;font-size:14px}.hero-meta{flex-wrap:wrap;align-items:center;gap:12px;font-size:14px;display:flex;position:absolute;top:16px;right:16px}.chip{border-radius:999px;padding:6px 12px;font-weight:700}.chip.live{color:#1f6a35;background:#d8f7dc}.chip.idle{color:#8e2f1f;background:#ffe2da}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.auth-layout{place-items:center;display:grid}.auth-card{width:min(560px,100%)}.btn-link{color:#2f9a8d;cursor:pointer;background:0 0;border:none;margin:0 auto;padding:0;font-size:.85rem;text-decoration:underline;display:block}.btn-link:hover{color:#22766c}.forgot-password-link{text-align:center;margin-top:.75rem}.forgot-done{text-align:center;padding:.5rem 0}.forgot-done p{margin-bottom:1rem;font-size:.9rem;line-height:1.5}.auth-tabs{justify-content:flex-start;margin-bottom:14px;display:flex}.dashboard-nav{flex-wrap:wrap;gap:10px;display:flex}.tab{background:#eadfca;border-radius:12px;justify-content:center;align-items:center;padding:8px 14px;font-weight:700;display:inline-flex}.tab.active{background:linear-gradient(120deg,#62d0c4,#f2db9f)}.account-menu{display:inline-flex;position:relative}.account-menu-trigger{cursor:pointer;border:none;gap:8px}.account-menu-hamburger{flex-direction:column;gap:3px;display:inline-flex}.account-menu-hamburger span{background:#5f4a3d;border-radius:2px;width:16px;height:2px}.account-menu-backdrop{z-index:40;cursor:default;background:0 0;border:0;padding:0;position:fixed;inset:0}.account-menu-dropdown{z-index:41;background:#fffbf4;border:1px solid #dbc8bd;border-radius:12px;flex-direction:column;gap:2px;min-width:180px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 12px 28px #00000029}.account-menu-item{text-align:left;color:#5f4a3d;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:9px 12px;font-size:14px;font-weight:600}.account-menu-item:hover{background:#f4ede3}.account-menu-item.active{color:#1e4d44;background:linear-gradient(120deg,#62d0c459,#f2db9f73)}.auth-switch{color:#5f4a3d;margin:2px 0 0;font-size:13px}.inline-toggle{color:#0f6e63;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700;text-decoration:underline}.inline-toggle:hover{color:#0a5149;box-shadow:none;transform:none}.card{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffbf4db;border:1px solid #ecd8cb;border-radius:18px;padding:18px;animation:.55s ease-out rise-in}.card.wide{grid-column:1/-1}h2{margin:0 0 12px;font-size:22px}form{gap:12px;display:grid}label{gap:6px;font-size:14px;font-weight:600;display:grid}input,select,button{font:inherit}input,select{background:#fffef9;border:1px solid #d4bfb1;border-radius:12px;padding:10px 12px}input:focus,select:focus{border-color:#2f9a8d;outline:2px solid #2f9a8d}button{color:#0f2a26;cursor:pointer;background:linear-gradient(120deg,#62d0c4,#f2db9f);border:0;border-radius:12px;padding:10px 14px;font-weight:700;transition:transform .18s,box-shadow .18s}button:hover:enabled{transform:translateY(-1px);box-shadow:0 9px 18px #144e4a33}@media (width<=768px){.global-logo-badge{top:auto;right:calc(8px + var(--safe-right,0px));bottom:calc(8px + var(--safe-bottom,0px));border-radius:10px;padding:5px 7px}.global-logo-image{width:clamp(62px,20vw,90px)}}button:disabled{cursor:not-allowed;opacity:.6}.ghost{background:#efe7dc}.ghost.danger{color:#dc2626;background:#fef2f2}.ghost.danger:hover{background:#fee2e2}.small{border-radius:9px;padding:7px 10px;font-size:13px}.btn-save.table-action-btn,.btn-danger.table-action-btn{text-align:center;border-radius:6px;width:60px;padding:3px 8px;font-size:11px}.link-btn{text-align:left;background:#efefe9;width:100%}.hint{color:#6b4a33;margin:0;font-size:13px}.preview-form{gap:12px;margin-top:14px;display:grid}.preview-form h3{margin:4px 0 0;font-size:16px}.preview-form td input{min-width:140px}.modal-backdrop{z-index:50;background:#0d1b1875;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{background:#fff8ef;border:1px solid #dcc8b9;border-radius:16px;width:min(1000px,95vw);max-height:86vh;padding:16px;overflow:auto;box-shadow:0 18px 34px #0c282633}.preview-modal{width:min(1100px,96vw);padding:20px 24px}.preview-header{align-items:center;gap:12px;margin-bottom:10px;display:flex}.preview-header h3{flex:1;margin:0;font-size:18px}.preview-count{color:#38526a;background:#eaefee;border-radius:8px;padding:4px 10px;font-size:13px;font-weight:600}.preview-table .col-row{text-align:center;width:48px}.preview-table .col-empid{min-width:120px}.preview-table .col-name{min-width:150px}.preview-table .col-email{min-width:180px}.preview-table .col-role{min-width:130px}.preview-table .col-status{min-width:140px}.preview-table input,.preview-table select{border-radius:8px;width:100%;padding:7px 9px;font-size:13px}.preview-table tbody tr{transition:background .12s}.preview-table tbody tr.row-error{background:#fff2f0}.preview-table tbody tr.row-ok:hover{background:#f2faf9}.badge{white-space:nowrap;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:600;display:inline-block}.badge-ok{color:#1f6a35;background:#d8f7dc}.badge-error{color:#8e2f1f;white-space:normal;background:#ffe2da}.preview-actions{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.row-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.pagination-row{justify-content:flex-end;align-items:center;gap:10px;margin-top:10px;font-size:13px;display:flex}.table-wrap{border:1px solid #dbc8bd;border-radius:12px;overflow:auto}table{border-collapse:collapse;width:100%;min-width:780px}th,td{text-align:left;border-bottom:1px solid #ecd8cb;padding:10px;font-size:14px}.sticky-first-col-table th:first-child,.sticky-first-col-table td:first-child{background:#fffbf4;position:sticky;left:0}.sticky-first-col-table thead th:first-child{z-index:1}.da-employee-logs-table{min-width:860px}.da-employee-logs-table th,.da-employee-logs-table td{white-space:nowrap;padding:8px}.da-employee-logs-table th:first-child,.da-employee-logs-table td:first-child{text-overflow:ellipsis;width:170px;max-width:170px;overflow:hidden}.da-employee-logs-table td input[type=number]{width:72px;min-width:72px;padding:6px 8px}.da-employee-logs-table td:last-child input{width:140px;min-width:140px}th{text-transform:uppercase;letter-spacing:.07em;color:#38526a;background:#f8ecda;font-size:12px}.status-bar{background:#eef8f7;border:1px solid #ccd9d7;border-radius:14px;padding:12px 16px}.global-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-right:120px;display:flex}.footer-brand{letter-spacing:.03em;color:#1e4d44;font-weight:800}.footer-status{color:#38526a}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=940px){.app-shell{margin:16px auto}.hero-meta{margin-top:12px;position:static}.grid{grid-template-columns:1fr}.row-actions{flex-wrap:wrap}.pagination-row{flex-wrap:wrap;justify-content:space-between}}.action-cell{white-space:nowrap;gap:6px;display:flex}.btn-danger{color:#fff;cursor:pointer;background:#d9534f;border:none;border-radius:8px;padding:4px 10px;font-size:12px}.btn-danger:hover{background:#c9302c}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.btn-save{color:#fff;cursor:pointer;background:#5cb85c;border:none;border-radius:8px;padding:4px 10px;font-size:12px}.btn-save:hover{background:#449d44}.btn-save:disabled{opacity:.6;cursor:not-allowed}.row-editing td{background:#fdf8f0}.row-approval-pending td{background:#fff9db;border-left:3px solid #f08c00}.row-editing input,.row-editing select{border:1px solid #ccc;border-radius:6px;width:100%;padding:4px 6px;font-size:13px}.export-filters{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:10px;display:flex}.export-filters label{flex-direction:column;gap:4px;font-size:13px;display:flex}.btn-export{color:#fff;cursor:pointer;white-space:nowrap;background:#355944;border:none;border-radius:8px;padding:6px 14px;font-size:13px}.btn-export:hover{background:#2a4636}.btn-export:disabled{opacity:.5;cursor:not-allowed}.quadrant-grid{grid-column:1/-1;grid-template-rows:auto auto;grid-template-columns:1fr 1fr;gap:16px;display:grid}.quadrant-card{background:#fffaf4;border:1px solid #dbc8bd;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;min-height:120px;padding:24px;display:flex}.quadrant-card h3{text-transform:uppercase;letter-spacing:.06em;color:#38526a;margin:0 0 12px;font-size:14px}.quadrant-card .stat-number{color:#38526a;font-size:48px;font-weight:700;line-height:1}.quadrant-chart{justify-content:flex-start;min-height:260px}.quadrant-chart .bar-chart{flex:1;justify-content:center;width:100%}.quadrant-client-list{width:100%;margin:0;padding:0;list-style:none}.quadrant-client-list li{border-bottom:1px solid #ecd8cb;justify-content:space-between;padding:6px 0;font-size:13px;display:flex}.quadrant-client-list li:last-child{border-bottom:none}.qcl-name{color:#38526a;font-weight:600}.qcl-email{color:#7a6e63}.qcl-more{color:#7a6e63;justify-content:center;font-style:italic}@media (width<=700px){.quadrant-grid{grid-template-columns:1fr}}.bar-chart{align-items:flex-end;gap:24px;min-height:260px;padding:16px 0;display:flex}.bar-group{flex-direction:column;flex:1;align-items:center;gap:6px;max-width:120px;display:flex}.bar-count{color:#2a3f35;font-size:14px;font-weight:700}.bar{background:linear-gradient(#62d0c4 0%,#2f9a8d 100%);border-radius:6px 6px 0 0;width:48px;transition:height .4s}.project-create-form{background:#f6f1e4;border:1px solid #d7c9aa;border-radius:8px;margin-bottom:18px;padding:16px 20px}.project-create-form h3{margin:0 0 12px;font-size:16px}.project-org-label{background:#f6f1e4;border:1px solid #d7c9aa;border-radius:6px;align-items:center;gap:10px;margin-bottom:12px;padding:7px 12px;display:flex}.project-org-name{color:#2a3f35;font-size:14px;font-weight:600}.form-row{gap:16px;display:flex}.form-row>label{flex:1}.status-pill{text-transform:capitalize;border-radius:12px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.status-active{color:#155724;background:#d4edda}.status-hold{color:#856404;background:#fff3cd}.status-done{color:#1f5c52;background:#d3ece7}.status-pending{color:#856404;background:#fff3cd}.status-progress{color:#2a5b44;background:#d6ead8}.status-rejected{color:#721c24;background:#f8d7da}.muted{color:#999;font-size:13px}.bt-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px;display:flex}.bt-search-input{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7' stroke='%239ca3af' stroke-width='2'/%3E%3Cpath d='M16.5 16.5 21 21' stroke='%239ca3af' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") 10px no-repeat;border:1.5px solid #d1d5db;border-radius:8px;flex:200px;min-width:150px;padding:8px 14px 8px 34px;font-size:14px;transition:border-color .15s}.bt-search-input:focus{border-color:#2f9a8d;outline:none;box-shadow:0 0 0 3px #2f9a8d1f}.bt-select{cursor:pointer;background:#fff;border:1.5px solid #d1d5db;border-radius:8px;padding:8px 12px;font-size:14px;transition:border-color .15s}.bt-select:focus{border-color:#2f9a8d;outline:none;box-shadow:0 0 0 3px #2f9a8d1f}.budget-cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}@media (width<=640px){.budget-cards{grid-template-columns:1fr;gap:12px}}.budget-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;flex-direction:column;padding:0;transition:box-shadow .2s,transform .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 8px #0000000f}.budget-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001c}.budget-card-stripe{background:#cbd5e1;flex-shrink:0;height:4px}.budget-card-stripe.status-active{background:linear-gradient(90deg,#7eddbf,#2a5b44)}.budget-card-stripe.status-progress{background:linear-gradient(90deg,#62d0c4,#2f9a8d)}.budget-card-stripe.status-done{background:linear-gradient(90deg,#355944,#2a3f35)}.budget-card-stripe.status-hold{background:linear-gradient(90deg,#f2db9f,#d9a441)}.budget-card-stripe.status-pending{background:linear-gradient(90deg,#d7c9aa,#a89a7a)}.budget-card-stripe.status-rejected{background:linear-gradient(90deg,#e2645a,#c94a3f)}.budget-card>.budget-card-header,.budget-card>.budget-hero,.budget-card>.budget-card-divider,.budget-card>.progress-section,.budget-card>.budget-meta-row,.budget-card>.budget-desc,.budget-card>.checkpoint-display,.budget-card>.card-edit-body{padding-left:20px;padding-right:20px}.budget-card-header{justify-content:space-between;align-items:flex-start;gap:8px;padding-top:16px;padding-bottom:4px;display:flex}.budget-card-title-group{flex-direction:column;gap:4px;min-width:0;display:flex}.budget-card-name{color:#111827;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:15px;font-weight:700;line-height:1.3;overflow:hidden}.budget-card-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.budget-hero{flex-direction:column;padding-top:14px;padding-bottom:4px;display:flex}.budget-hero-label{text-transform:uppercase;letter-spacing:.06em;color:#9ca3af;font-size:11px;font-weight:600}.budget-hero-value{color:#111827;letter-spacing:-.5px;font-size:26px;font-weight:800;line-height:1.15}.budget-card-divider{background:#f3f4f6;height:1px;margin:10px 0}.budget-timeline-row{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.budget-label{text-transform:uppercase;letter-spacing:.05em;color:#6b7280;font-size:12px;font-weight:600}.budget-value-sm{color:#374151;font-size:13px;font-weight:500}.budget-detail{justify-content:space-between;margin:6px 0;font-size:14px;display:flex}.budget-value{color:#222}.progress-section{flex-direction:column;gap:14px;padding-top:4px;padding-bottom:4px;display:flex}.progress-row{flex-direction:column;gap:6px;display:flex}.progress-row-labels{justify-content:space-between;align-items:center;gap:12px;display:flex}.progress-legend{align-items:center;gap:5px;display:flex}.progress-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.progress-legend-dot--timeline{background:#2f9a8d}.progress-legend-dot--work{background:#16a34a}.progress-row-title{text-transform:uppercase;letter-spacing:.06em;color:#9ca3af;font-size:11px;font-weight:700}.progress-row-pct{font-size:13px;font-weight:700}.timeline-pct-text{color:#2f9a8d}.work-pct-text{color:#16a34a}.progress-row-sub{color:#9ca3af;font-size:11px;font-weight:500}.progress-track{background:#f1f5f9;border-radius:99px;height:10px;position:relative;overflow:visible}.progress-track--combined{cursor:pointer;height:14px;transition:filter .15s}.progress-track--combined:hover{filter:brightness(.95)}.progress-track--active{outline-offset:2px;outline:2px solid #2f9a8d}.progress-track-wrapper{position:relative}.track-popover{color:#f1f5f9;z-index:200;background:#1e293b;border-radius:10px;min-width:200px;max-width:280px;padding:12px 14px 10px;animation:.15s popover-in;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000047}@keyframes popover-in{0%{opacity:0;transform:translate(-50%)translateY(-4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.track-popover-close{color:#94a3b8;cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;line-height:1;position:absolute;top:8px;right:10px}.track-popover-close:hover{color:#f1f5f9}.track-popover-checkpoints{border-top:1px solid #334155;border-bottom:1px solid #334155;margin:4px 0;padding:4px 0}.track-popover-row{align-items:flex-start;gap:8px;padding:5px 0;display:flex}.track-popover-icon{text-align:center;flex-shrink:0;width:14px;margin-top:2px;font-size:11px}.track-popover-row--start .track-popover-icon{color:#2f9a8d}.track-popover-row--end .track-popover-icon{color:#94a3b8}.track-popover-row--done .track-popover-icon{color:#4ade80}.track-popover-row--overdue .track-popover-icon{color:#f87171}.track-popover-row--warn .track-popover-icon{color:#fb923c}.track-popover-label{color:#cbd5e1;font-size:11px;font-weight:600;line-height:1.3}.track-popover-row--done .track-popover-label{color:#86efac}.track-popover-row--overdue .track-popover-label{color:#fca5a5}.track-popover-row--warn .track-popover-label{color:#fdba74}.track-popover-date{color:#f1f5f9;font-size:12px;font-weight:700;line-height:1.3}.progress-fill{border-radius:99px;min-width:0;height:100%;transition:width .5s cubic-bezier(.4,0,.2,1);position:relative}.progress-fill--timeline{background:linear-gradient(90deg,#bfe4dd,#2f9a8d)}.progress-fill--work{background:linear-gradient(90deg,#4ade80,#16a34a)}.progress-fill--overlay{opacity:.85;border-radius:99px;height:100%;position:absolute;top:0;left:0}.progress-dates{color:#9ca3af;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2px 8px;margin-top:2px;font-size:10px;display:flex}.progress-dates>span:last-child{margin-left:auto}.work-bar-container{margin-bottom:14px}.work-bar{background:linear-gradient(90deg,#16a34a,#4ade80)!important}.work-pct-value{color:#16a34a;font-weight:700}.timeline-bar-container{background:#f1f5f9;border-radius:99px;height:10px;margin:4px 0 24px;position:relative;overflow:visible}.timeline-bar{background:linear-gradient(90deg,#2f9a8d,#7eddbf);border-radius:99px;min-width:4px;height:100%;transition:width .4s}.timeline-pct-label{color:#6b7280;font-size:11px;font-weight:700;position:absolute;top:-18px;right:0}.budget-meta-row{gap:12px;padding-top:2px;padding-bottom:10px;display:flex}.budget-meta-item{color:#6b7280;font-size:13px;font-weight:500}.timeline-checkpoint-marker{cursor:default;z-index:1;flex-direction:column;align-items:center;display:flex;position:absolute;top:-5px;transform:translate(-50%)}.timeline-checkpoint-tick{background:#f59e0b;border-radius:2px;width:3px;height:18px}.timeline-checkpoint-marker.past .timeline-checkpoint-tick{background:#2a5b44}.timeline-checkpoint-label{white-space:nowrap;color:#78350f;pointer-events:none;text-overflow:ellipsis;background:#fffbeb;border:1px solid #fcd34d;border-radius:4px;max-width:160px;padding:2px 6px;font-size:10px;display:none;position:absolute;top:20px;overflow:hidden;box-shadow:0 1px 4px #0000001a}.timeline-checkpoint-marker.past .timeline-checkpoint-label{color:#2a3f35;background:#eaf3ef;border-color:#a9cfc2}.timeline-checkpoint-marker:hover .timeline-checkpoint-label{display:block}.budget-desc{color:#666;margin:8px 0 0;font-size:13px}.budget-card--editing{border:2px solid #2f9a8d}.card-edit-body{flex-direction:column;gap:12px;margin-top:8px;padding-top:4px;padding-bottom:20px;display:flex}.card-edit-label{color:#374151;flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.card-edit-label input,.card-edit-label textarea{box-sizing:border-box;resize:vertical;border:1px solid #d1d5db;border-radius:6px;width:100%;padding:6px 8px;font-size:13px}.checkpoint-section{flex-direction:column;gap:6px;display:flex}.checkpoint-header{justify-content:space-between;align-items:center;display:flex}.checkpoint-empty{color:#9ca3af;margin:0;font-size:12px}.checkpoint-list{flex-direction:column;gap:6px;max-height:220px;display:flex;overflow-y:auto}.checkpoint-row{grid-template-columns:140px 1fr auto 32px;align-items:center;gap:6px;display:grid}.cp-done-check{color:#374151;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;font-size:12px;font-weight:600;display:flex}.cp-done-check input[type=checkbox]{accent-color:#16a34a;cursor:pointer;width:15px;height:15px;margin:0}.checkpoint-row input[type=date],.checkpoint-row input[type=text]{box-sizing:border-box;border:1px solid #d1d5db;border-radius:6px;width:100%;padding:5px 8px;font-size:13px}.checkpoint-row .btn-danger{padding:4px 6px;font-size:12px}.checkpoint-display{border-top:1px solid #f3f4f6;margin-top:10px;padding:12px 20px 14px}.checkpoint-display-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.cp-percent-badge{color:#2a5b44;background:#eaf3ef;border-radius:20px;padding:2px 8px;font-size:12px;font-weight:700}.cp-progress-bar-container{background:#e9ecef;border-radius:99px;height:6px;margin-bottom:10px;overflow:hidden}.cp-progress-bar{background:linear-gradient(90deg,#7eddbf,#2a5b44);border-radius:99px;min-width:0;height:100%;transition:width .4s}.checkpoint-item{opacity:1;align-items:center;gap:8px;padding:4px 0;font-size:13px;transition:opacity .15s;display:flex}.checkpoint-item--done{opacity:.7}.checkpoint-dot{background:#d1d5db;border:2px solid #9ca3af;border-radius:50%;flex-shrink:0;width:8px;height:8px}.checkpoint-dot--done{background:#2a5b44;border-color:#2a5b44}.checkpoint-item-date{color:#6b7280;flex-shrink:0;min-width:90px}.checkpoint-item-label{color:#111827;flex:1}.cp-done-badge{color:#16a34a;background:#dcfce7;border-radius:20px;flex-shrink:0;padding:1px 6px;font-size:11px;font-weight:800}.assign-checkboxes{flex-direction:column;gap:6px;max-height:250px;margin-top:8px;display:flex;overflow-y:auto}.checkbox-label{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.checkbox-label input[type=checkbox]{width:auto;margin:0}.timesheet-form{background:#f6f1e4;border:1px solid #d7c9aa;border-radius:8px;padding:16px 20px}.work-steps-list{flex-direction:column;gap:16px;display:flex}.work-step-card{background:#f6f1e4;border:1px solid #d7c9aa;border-radius:8px;padding:16px 20px}.work-step-header h4{color:#1a2233;margin:0 0 4px}.work-step-assigned{margin-top:10px}.assigned-list{flex-wrap:wrap;gap:6px;margin:6px 0 0;padding:0;list-style:none;display:flex}.assigned-list li{background:#f6f1e4;border-radius:4px;align-items:center;gap:6px;padding:3px 10px;font-size:13px;display:inline-flex}.assign-step-form{border-top:1px solid #ece3d0;margin-top:10px;padding-top:10px}.desc-editor{flex-direction:column;gap:0;display:flex}.desc-toolbar{background:#f6f1e4;border:1px solid #d4bfb1;border-bottom:none;border-radius:6px 6px 0 0;gap:4px;padding:4px 6px;display:flex}.desc-toolbar button{cursor:pointer;color:#4a453c;background:#fff;border:1px solid #d4bfb1;border-radius:4px;padding:2px 10px;font-size:12px;line-height:1.4}.desc-toolbar button:hover{background:#f6f1e4}.desc-textarea{resize:vertical;box-sizing:border-box;border:1px solid #d4bfb1;border-radius:0 0 6px 6px;width:100%;min-height:80px;padding:8px 10px;font-family:inherit;font-size:14px;line-height:1.5}.desc-textarea:focus{border-color:#2f9a8d;outline:none;box-shadow:0 0 0 2px #2f9a8d26}.formatted-desc{color:#3a4a5c;white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.5}.photo-gallery{flex-wrap:wrap;gap:10px;margin-top:10px;display:flex}.photo-thumb{border:1px solid var(--border,#ccd6e0);background:#f8f9fa;border-radius:6px;width:120px;position:relative;overflow:hidden}.photo-thumb img{object-fit:cover;cursor:pointer;width:100%;height:90px;display:block}.photo-thumb .photo-caption{color:#555;white-space:nowrap;text-overflow:ellipsis;padding:3px 6px;font-size:11px;display:block;overflow:hidden}.photo-delete-btn{color:#fff;cursor:pointer;opacity:0;background:#0000008c;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;line-height:1;transition:opacity .15s;display:flex;position:absolute;top:2px;right:2px}.photo-thumb:hover .photo-delete-btn{opacity:1}.photo-selected{outline-offset:-3px;border-radius:6px;outline:3px solid #2f9a8d}.photo-selected img{opacity:.7}.photo-checkbox{cursor:pointer;accent-color:#2f9a8d;width:16px;height:16px;position:absolute;top:4px;left:4px}.photo-gallery-sm{gap:6px}.photo-gallery-sm .photo-thumb{width:60px}.photo-gallery-sm .photo-thumb img{height:45px}.photo-thumb-xs{border:1px solid #dee2e6;border-radius:4px;width:48px;height:48px;transition:transform .15s;overflow:hidden}.photo-thumb-xs:hover{z-index:1;border-color:#2f9a8d;transform:scale(1.08)}.ts-grid-wrap{border:1px solid #dee2e6;border-radius:6px;max-width:100%;overflow-x:auto}.ts-grid{border-collapse:collapse;white-space:nowrap;width:max-content;min-width:100%;font-size:12px}.ts-grid th,.ts-grid td{text-align:center;border:1px solid #e9ecef;padding:4px 5px}.ts-grid thead th{z-index:1;background:#f1f3f5;font-weight:600;position:sticky;top:0}.ts-grid .ts-grid-name{text-align:left;z-index:2;text-overflow:ellipsis;background:#fff;min-width:130px;max-width:180px;font-weight:500;position:sticky;left:0;overflow:hidden}.ts-grid thead .ts-grid-name{z-index:3;background:#f1f3f5}.ts-grid .ts-grid-day{text-align:center;padding:4px 3px;line-height:1.2}.ts-grid .ts-grid-day span:first-child{text-transform:uppercase;letter-spacing:.3px;font-size:11px;display:block}.ts-grid .ts-grid-day span:last-child{color:#555;font-size:11px;font-weight:400;display:block}.ts-grid .ts-grid-total{background:#f8f9fa;min-width:50px;font-weight:700}.ts-grid .ts-grid-cell{padding:2px}.ts-grid-input{text-align:center;background:#fff;border:1px solid #ced4da;border-radius:3px;width:46px;padding:3px 2px;font-size:12px}.ts-grid-input:focus{border-color:#2f9a8d;outline:none;box-shadow:0 0 0 2px #2f9a8d26}.ts-grid-input-edited{background:#fff9db;border-color:#f59f00}.ts-grid-input::placeholder{color:#ccc}.ts-cell-approved{color:#2b8a3e;background:#d3f9d8;font-weight:600}.ts-cell-pending{color:#e67700;background:#fff3bf;font-weight:600}.ts-cell-rejected{color:#c92a2a;background:#ffe3e3;font-weight:600}.ts-cell-empty{color:#ccc}.ts-grid-locked{color:#2b8a3e;cursor:not-allowed;-webkit-user-select:none;user-select:none;align-items:center;gap:3px;font-size:12px;font-weight:600;display:inline-flex}.ts-filter-row{margin-top:8px}.ts-summary-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:8px 0;display:flex}.ts-summary-row .filter-summary{margin:0}.ts-submitted-group{background:linear-gradient(#fffdf7 0%,#f6f1e4 100%);border:1px solid #e0d5bd;border-radius:12px;margin-top:16px;overflow:hidden;box-shadow:0 6px 16px #2a3f350f}.ts-group-header{background:#f8f9fa;border-bottom:1px solid #e9ecef;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;display:flex}.ts-group-title{color:#1e293b;flex-wrap:wrap;align-items:baseline;gap:4px;margin:0;font-size:14px;font-weight:600;display:flex}.ts-group-step{color:#2f9a8d;font-weight:500}.ts-group-emp{color:#1e293b;font-weight:700}.ts-group-sep{color:#94a3b8;margin:0 2px;font-weight:400}.ts-group-date-range{color:#888;margin-left:6px;font-size:12px;font-weight:400}.ts-group-totals{color:#555;white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:flex}.ts-pill-sm{margin-left:2px;padding:2px 6px!important;font-size:11px!important}.ts-submitted-group .ts-grid-wrap{border:none;border-bottom:1px solid #e9ecef;border-radius:0;margin-top:0}.ts-project-subgroup{border-top:1px solid #e9ecef}.ts-project-subgroup:first-of-type{border-top:none}.ts-project-subgroup-header{color:#2f9a8d;background:#fffdf7;justify-content:space-between;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;display:flex}.ts-photo-gallery{border-bottom:1px solid #e9ecef;padding:8px 14px}.ts-period-bar{background:#f1f5f9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.ts-period-bar-info{color:#334155;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.ts-period-bar-sub{color:#64748b}.ts-period-bar-actions{flex-shrink:0;gap:8px;display:flex}.ts-section-divider{border:none;border-top:1px solid #dee2e6;margin:24px 0}.timesheet-form h3{margin:0 0 12px;font-size:16px}.client-tag{color:#2a5b44;letter-spacing:.03em;vertical-align:middle;background:#eaf3ef;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.deadline-badge{letter-spacing:.03em;border-radius:20px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;animation:1.8s ease-in-out infinite pulse-badge;display:inline-flex}.deadline-badge--overdue{color:#dc2626;background:#fef2f2;border:1px solid #fca5a5}.deadline-badge--overdue:before{content:"⚠ "}.deadline-badge--warn{color:#ea580c;background:#fff7ed;border:1px solid #fdba74}.deadline-badge--warn:before{content:"⏰ "}@keyframes pulse-badge{0%,to{opacity:1}50%{opacity:.65}}.deadline-date--overdue{color:#dc2626;font-weight:700}.deadline-date--warn{color:#ea580c;font-weight:700}.budget-card--overdue{box-shadow:0 2px 12px #dc262624,0 1px 4px #0000000f}.budget-card--overdue .budget-card-stripe{background:#dc2626!important}.budget-card--near-deadline{box-shadow:0 2px 12px #ea580c24,0 1px 4px #0000000f}.budget-card-header h3{margin:4px 0 0}.filter-row{flex-wrap:wrap;gap:16px;display:flex}.filter-row>label{flex:1;min-width:160px}.filter-summary{color:#555;font-size:14px}.bar-label{color:#7a6e63;text-align:center;white-space:nowrap;font-size:12px}.login-mode-toggle{background:#eadfca;border-radius:14px;justify-content:center;gap:4px;width:min(340px,100%);margin-bottom:16px;margin-left:auto;margin-right:auto;padding:4px;display:flex}.mode-btn{color:#5f4a3d;cursor:pointer;background:0 0;border:none;border-radius:11px;flex:1;padding:10px 18px;font-size:14px;font-weight:700;transition:all .2s}.mode-btn.active{color:#1a3a2f;background:linear-gradient(120deg,#62d0c4,#f2db9f);box-shadow:0 2px 8px #00000014}.mode-btn:hover:not(.active){background:#fff6}.user-auth-card{border-left:4px solid #62d0c4}.role-chip{color:#0c5460;text-transform:capitalize;background:#d1ecf1}.profile-grid{flex-direction:column;gap:12px;display:flex}.profile-row{border-bottom:1px solid #ecd8cb;align-items:baseline;gap:16px;padding:10px 0;display:flex}.profile-label{color:#5f4a3d;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;min-width:100px;font-size:13px;font-weight:700}.profile-value{color:#1a1a1a;font-size:15px}.role-badge{text-transform:capitalize;background:linear-gradient(120deg,#62d0c4,#b4e3dc);border-radius:8px;padding:3px 12px;font-size:13px;font-weight:700;display:inline-block}.banner-warning{color:#856404;background:#fff3cd;border:1px solid #ffc107;border-left:4px solid #e0a800}.form-error{color:#c62828;margin:4px 0 8px;font-size:13px;font-weight:600}.field-error{color:#dc2626;background:#fef2f2;border-left:3px solid #dc2626;border-radius:0 4px 4px 0;margin-top:4px;padding:3px 8px;font-size:12px;font-weight:600;display:block}.camera-overlay{z-index:1000;overscroll-behavior:contain;background:#000000b3;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.camera-modal{-webkit-overflow-scrolling:touch;background:#fff;border-radius:12px;width:94vw;max-width:520px;max-height:calc(100dvh - 32px);padding:16px;overflow-y:auto;box-shadow:0 8px 32px #0000004d}.camera-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.camera-video{object-fit:cover;background:#000;border-radius:8px;width:100%;max-height:60vh}.camera-actions{justify-content:center;align-items:center;gap:12px;margin-top:12px;display:flex}.camera-shutter{color:#fff;cursor:pointer;background:#2b8a3e;border:none;border-radius:8px;padding:8px 20px;font-size:15px;font-weight:600}.camera-shutter:hover{background:#237032}.camera-error{text-align:center;color:#c62828;padding:24px;font-size:14px}.lightbox-overlay{z-index:1100;cursor:zoom-out;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-img{cursor:default;border-radius:6px;max-width:92vw;max-height:90vh;box-shadow:0 4px 24px #00000080}.lightbox-close{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:24px;display:flex;position:absolute;top:16px;right:24px}.lightbox-close:hover{background:#ffffff4d}.photo-zoom-btn{color:#fff;cursor:pointer;background:#00000080;border:none;border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;display:flex;position:absolute;top:2px;left:2px}.dr-photos-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:4px;display:grid}.dr-photo-item{flex-direction:column;gap:4px;display:flex}.dr-photo-thumb{aspect-ratio:4/3;object-fit:cover;cursor:pointer;border:1px solid #e0e0e0;border-radius:6px;width:100%;transition:opacity .15s}.dr-photo-thumb:hover{opacity:.85}.dr-photo-meta{flex-direction:column;gap:2px;display:flex}.dr-photo-step{color:#555;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.issue-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:10px;transition:box-shadow .15s;overflow:hidden}.issue-card:hover{box-shadow:0 2px 8px #00000014}.issue-card.issue-status-open{border-left:4px solid #ef5350}.issue-card.issue-status-in_progress{border-left:4px solid #ffa726}.issue-card.issue-status-resolved{border-left:4px solid #66bb6a}.issue-card-header{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.issue-card-left{flex-wrap:wrap;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.issue-title{color:#222;flex:1;min-width:120px;font-size:14px}.issue-card-meta{color:#888;white-space:nowrap;font-size:12px}.issue-priority-badge{white-space:nowrap;border-radius:12px;padding:2px 8px;font-size:11px;font-weight:700}.issue-priority-low{color:#388e3c;background:#e8f5e9}.issue-priority-normal{color:#7b6b57;background:#f6f1e4}.issue-priority-high{color:#e65100;background:#fff3e0}.issue-priority-urgent{color:#b71c1c;background:#ffebee}.issue-card-body{border-top:1px solid #f0f0f0;padding:0 16px 14px}.issue-form-card{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:16px}.issue-resolve-form{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;margin-top:10px;padding:14px}.issue-resolution{color:#2e7d32;background:#f1f8f1;border:1px solid #c8e6c9;border-radius:6px;margin-top:10px;padding:10px 14px;font-size:13px}.issue-in-progress-note{color:#795548;background:#fff8e1;border:1px solid #ffe082;border-radius:6px;margin:6px 0 0;padding:8px 12px;font-size:13px}.photo-thumb{position:relative}.photo-thumb:hover .photo-zoom-btn{opacity:1}.notif-bar{z-index:500;background:#1e293b;padding:0 16px;position:sticky;top:0;box-shadow:0 2px 8px #00000040}.notif-bar-inner{flex-direction:column;gap:0;max-width:1200px;margin:0 auto;display:flex}.notif-item{color:#f1f5f9;border-bottom:1px solid #ffffff14;align-items:flex-start;gap:10px;padding:10px 0;display:flex}.notif-item:last-of-type{border-bottom:none}.notif-type-timesheet_approved .notif-title{color:#86efac}.notif-type-work_step_changed .notif-title{color:#7eddbf}.notif-icon{flex-shrink:0;margin-top:1px;font-size:16px}.notif-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.notif-title{font-size:13px;font-weight:700;line-height:1.3}.notif-msg{color:#94a3b8;font-size:12px;line-height:1.4}.notif-dismiss{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:0 4px;font-size:14px;line-height:1}.notif-dismiss:hover{color:#f1f5f9;background:#ffffff1a}.notif-dismiss-all-row{justify-content:flex-end;padding:6px 0 8px;display:flex}.notif-dismiss-all{color:#94a3b8;cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:6px;padding:3px 10px;font-size:12px}.notif-dismiss-all:hover{color:#f1f5f9;border-color:#fff6}.offline-sync-bar{border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding:9px 14px;font-size:13px;display:flex}.offline-sync-bar--offline{color:#92400e;background:#fff7ed;border:1px solid #fed7aa}.offline-sync-bar--online{color:#14532d;background:#f0fdf4;border:1px solid #bbf7d0}.offline-sync-icon{flex-shrink:0;font-size:16px}.offline-sync-msg{flex:1;min-width:0}.dr-page{--dr-field-gap:12px;--dr-label-col:minmax(220px, 280px);--dr-control-height:42px;--dr-control-radius:10px;background:radial-gradient(circle at 12% 0,#f4ba5e38,#0000 30%),radial-gradient(circle at 92% 100%,#34a49a2e,#0000 35%),linear-gradient(#fffffff2 0%,#f8fbffeb 100%);border-color:#d7dde8;position:relative;overflow:hidden}.dr-page:after{content:"";opacity:.9;background:linear-gradient(90deg,#f59e0b 0%,#f97316 40%,#0ea5a0 100%);height:4px;position:absolute;top:0;left:0;right:0}.dr-page h2{z-index:1;letter-spacing:.01em;color:#2a3f35;margin-bottom:10px;font-size:clamp(1.45rem,1.25rem + .8vw,1.95rem);position:relative}.dr-page h3{color:#355944;letter-spacing:.01em}.dr-subtitle{text-transform:uppercase;letter-spacing:.08em;color:#7b6b57;margin-top:16px;margin-bottom:8px;font-size:13px}.dr-preview-meta,.dr-window-note{color:#6a725f;margin-bottom:8px;font-size:13px}.dr-window-note{margin-top:8px}.dr-week-group{margin-top:12px}.dr-week-header{color:#4a453c;background:linear-gradient(90deg,#fdfaf3 0%,#f6f1e4 100%);border:1px solid #e0d5bd;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;margin:0 0 8px;padding:8px 10px;font-size:13px;display:flex}.dr-week-header span{color:#7b6b57;font-weight:600}.ts-project-toggle{text-align:left;cursor:pointer;background:linear-gradient(90deg,#f7f4ec 0%,#eef7f4 100%);border:1px solid #e2e8f0;border-radius:10px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;width:100%;margin:0;padding:10px 12px;display:grid}.ts-project-toggle:hover{background:linear-gradient(90deg,#f2ede1 0%,#e7f2ef 100%)}.ts-project-toggle-icon{color:#5d6b85;font-size:13px}.ts-step-toggle{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;width:100%;margin:0;padding:0;display:grid}.ts-step-toggle-icon{color:#64748b;font-size:12px}.ts-step-card{border:1px solid #dbe3ef}.ts-step-card[data-tone="0"]{background:#f7faff;border-color:#d8e6f8}.ts-step-card[data-tone="1"]{background:#f8fff8;border-color:#d9eedb}.ts-step-card[data-tone="2"]{background:#fffaf4;border-color:#f2e2cd}.ts-step-card[data-tone="3"]{background:#faf7ff;border-color:#e5daf8}.dr-empty{color:#74839a;margin:0;font-size:13px}.dr-form-card{background:linear-gradient(#fff 0%,#fdfaf3 100%);border:1px solid #e0d5bd;border-radius:14px;margin-top:14px;padding:18px;box-shadow:0 10px 24px #2a3f350f}.dr-form-card h3,.dr-form-card h4{color:#2a3f35;margin-top:0}.dr-page .dr-form-card>label{grid-template-columns:var(--dr-label-col) minmax(0, 1fr);align-items:start;gap:6px 14px;display:grid}.dr-page .dr-form-card>label+label{margin-top:var(--dr-field-gap)!important}.dr-page .dr-form-card>label>textarea,.dr-page .dr-form-card>label>input,.dr-page .dr-form-card>label>select{grid-column:2}.dr-page .dr-form-row label{flex-direction:column;align-items:stretch;gap:6px;display:flex}.dr-page .dr-form-card{position:relative;overflow:hidden}.dr-page .dr-form-card:before{content:"";background:linear-gradient(90deg,#f8b84f 0%,#3ec0b1 100%);height:3px;position:absolute;top:0;left:0;right:0}.dr-form-row{gap:var(--dr-field-gap) 12px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;display:grid}.dr-form-row label{color:#4a453c;flex-direction:column;gap:6px;width:100%;min-width:0;font-size:12px;font-weight:700;display:flex}.dr-form-row label>input,.dr-form-row label>select,.dr-form-row label>textarea{width:100%}.dr-form-row>div{min-height:var(--dr-control-height);align-items:flex-end;display:flex}.dr-form-card input,.dr-form-card select,.dr-form-card textarea,.dr-review-form input,.dr-review-form select,.dr-review-form textarea{width:100%;min-height:var(--dr-control-height);border-radius:var(--dr-control-radius);color:#2a3f35;background:#fffef9;border:1px solid #d4bfb1;padding:10px 12px}.dr-form-card textarea,.dr-review-form textarea{resize:vertical;min-height:96px;line-height:1.45}.dr-form-card input:focus,.dr-form-card select:focus,.dr-form-card textarea:focus,.dr-review-form input:focus,.dr-review-form select:focus,.dr-review-form textarea:focus{border-color:#2f9a8d;outline:2px solid #2f9a8d;box-shadow:0 0 0 3px #2f9a8d26}.dr-table{border-collapse:collapse;width:100%;min-width:760px;font-size:13px}.dr-table th,.dr-table td{text-align:left;border-bottom:1px solid #ece3d0;padding:8px 10px}.dr-table th{color:#2a3f35;text-transform:uppercase;letter-spacing:.05em;z-index:1;background:linear-gradient(#fdfaf3 0%,#f6f1e4 100%);font-size:12px;font-weight:700;position:sticky;top:0}.dr-table tbody tr:nth-child(2n) td{background:#fdfbf5}.dr-total-row td{background:#f6f1e4;border-top:2px solid #d7c9aa}.dr-step-chips{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.dr-step-chip{color:#4a453c;background:#f6f1e4;border:1px solid #d7c9aa;border-radius:20px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.dr-step-chip em{opacity:.8;font-style:normal;font-weight:400}.dr-code{color:#7b6b57;font-size:11px;font-weight:600}.dr-report-card{background:#fff;border:1px solid #e0d5bd;border-radius:12px;margin-top:12px;transition:transform .18s,box-shadow .18s;overflow:hidden;box-shadow:0 8px 18px #2a3f350f}.dr-page .dr-report-card:hover{transform:translateY(-1px);box-shadow:0 14px 28px #2a3f3517}.dr-report-header{cursor:pointer;background:linear-gradient(#fdfaf3 0%,#f6f1e4 100%);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:13px 16px;display:flex}.dr-report-header:hover{background:linear-gradient(#faf5e9 0%,#f0e9d5 100%)}.dr-report-meta{flex-wrap:wrap;align-items:center;gap:10px;font-size:14px;display:flex}.dr-report-project{color:#2a3f35;font-size:13px;font-weight:700}.dr-report-foreman{color:#7b6b57;font-size:12px}.dr-report-body{background:#fff;border-top:1px solid #ece3d0;padding:16px}.dr-report-notes{color:#334155;background:#fffbeb;border:1px solid #fde68a;border-left:4px solid #f59e0b;border-radius:8px;margin:0 0 12px;padding:10px 12px;font-size:13px}.dr-review-notes{border:1px solid #0000;border-radius:8px;margin:12px 0 0;padding:10px 12px;font-size:13px}.dr-approved{color:#166534;background:#f0fdf4;border-color:#bbf7d0 #bbf7d0 #bbf7d0 #22c55e;border-left-style:solid;border-left-width:4px}.dr-rejected{color:#991b1b;background:#fef2f2;border-color:#fecaca #fecaca #fecaca #ef4444;border-left-style:solid;border-left-width:4px}.dr-review-form{background:#fdfaf3;border:1px solid #e0d5bd;border-radius:12px;margin-top:14px;padding:14px}.btn-sm-primary{color:#0f2a26;cursor:pointer;background:linear-gradient(120deg,#62d0c4,#f2db9f);border:none;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600;box-shadow:0 4px 10px #2f9a8d40}.btn-sm-primary:hover{background:linear-gradient(120deg,#4fc0b3,#edd287)}.dr-page .ghost.small{color:#4a453c;background:#f6f1e4;border:1px solid #d7c9aa}.dr-page .ghost.small:hover{background:#f0e9d5}@media (width<=900px){.dr-page{--dr-label-col:1fr;--dr-control-height:40px;--dr-field-gap:10px;border-radius:14px}.dr-page h2{font-size:1.35rem}.dr-form-card{padding:14px}.dr-form-row{grid-template-columns:1fr;gap:8px}.dr-page .dr-form-card>label{grid-template-columns:1fr;row-gap:6px}.dr-page .dr-form-card>label>textarea,.dr-page .dr-form-card>label>input,.dr-page .dr-form-card>label>select{grid-column:1}.dr-report-header,.dr-report-body{padding:12px}}@media (width<=640px){.dr-page{--dr-control-height:38px;--dr-field-gap:9px}.dr-table{min-width:680px}.dr-step-chip{padding:5px 8px;font-size:11px}.btn-sm-primary{width:100%}}.ts-stat{text-align:center;background:#fdfaf3;border:1px solid #e0d5bd;border-radius:8px;flex-direction:column;align-items:center;min-width:90px;padding:10px 18px;display:flex}.ts-stat-val{color:#1e293b;font-size:22px;font-weight:700;line-height:1.2}.ts-stat-lbl{color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-top:2px;font-size:11px}:root{--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px)}@media (width<=900px){input,select,textarea,button{min-height:44px;font-size:16px}button.ghost,button.ghost.small,button.small,.btn-sm-primary,.btn-danger,.btn-save,.btn-export{min-height:40px;font-size:14px}.app-shell{gap:12px;width:100%;margin:0}.grid{grid-template-columns:1fr;gap:12px}.card{border-radius:12px;padding:14px}}@media (width<=640px){.grid{padding-bottom:calc(70px + var(--safe-bottom))}}.admin-hamburger-btn{display:none}.admin-hamburger-line{pointer-events:none;background:#38526a;border-radius:2px;width:22px;height:2.5px}.admin-grid{grid-template-columns:1fr}@media (width<=1100px){.admin-hamburger-btn{top:calc(58px + var(--safe-top));z-index:330;cursor:pointer;background:#fffbf4f2;border:1.5px solid #dbc8bd;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;padding:0;display:flex;position:fixed;right:16px;box-shadow:0 2px 10px #00000024}.admin-dashboard-nav{display:none!important}.admin-grid>.card:has(.admin-dashboard-nav){display:none}.admin-menu-backdrop{z-index:318;cursor:pointer;background:#0c131861;border:0;border-radius:0;padding:0;position:fixed;inset:0}.admin-mobile-menu-drawer{z-index:320;background:#fffbf4;border-right:1px solid #dbc8bd;border-radius:0 16px 16px 0;flex-direction:column;width:min(300px,82vw);animation:.22s ease-out admin-drawer-in;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;box-shadow:8px 0 28px #0000002e}@keyframes admin-drawer-in{0%{opacity:.6;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}.admin-drawer-title{text-transform:uppercase;letter-spacing:.1em;color:#9a7e6e;border-bottom:1px solid #ecd8cb;margin:0;padding:20px 16px 12px;font-size:11px;font-weight:700}.admin-mobile-menu-item{text-align:left;color:#38526a;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #f0e3d8;border-radius:0;justify-content:flex-start;min-height:48px;padding:14px 18px;font-size:15px;font-weight:600;transition:background .15s}.admin-mobile-menu-item:hover{background:#f4ede3}.admin-mobile-menu-item:last-child{border-bottom:0}.admin-mobile-menu-item.active{color:#1e4d44;background:linear-gradient(120deg,#62d0c459,#f2db9f73);font-weight:700}}@media (width>=1101px){.admin-hamburger-btn,.admin-mobile-menu-drawer,.admin-menu-backdrop{display:none!important}}.user-hamburger-btn{display:none}.user-hamburger-line{pointer-events:none;background:#38526a;border-radius:2px;width:22px;height:2.5px}.user-hamburger-label{display:none}@media (width<=1100px){.user-hamburger-btn{top:calc(58px + var(--safe-top));z-index:330;cursor:pointer;background:#fffbf4f2;border:1.5px solid #dbc8bd;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;padding:0;display:flex;position:fixed;right:16px;box-shadow:0 2px 10px #00000024}.user-dashboard-nav{display:none!important}.user-nav-card{display:none}.user-menu-backdrop{z-index:318;cursor:pointer;background:#0c131861;border:0;border-radius:0;padding:0;position:fixed;inset:0}.user-mobile-menu-drawer{z-index:320;width:min(300px,82vw);padding-top:calc(58px + var(--safe-top));background:#fffbf4;border-right:1px solid #dbc8bd;border-radius:0 16px 16px 0;flex-direction:column;animation:.22s ease-out user-drawer-in;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;box-shadow:8px 0 28px #0000002e}@keyframes user-drawer-in{0%{opacity:.6;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}.user-mobile-menu-item{text-align:left;color:#1e6b3a;cursor:pointer;background:#d7f2d5;border:0;border-radius:999px;justify-content:flex-start;min-height:44px;margin:6px 12px;padding:12px 18px;font-size:15px;font-weight:700;transition:background .15s}.user-mobile-menu-item:first-child{margin-top:16px}.user-mobile-menu-item:hover{background:#c5ecc2}.user-mobile-menu-item.active{color:#144d29;background:#b3e6af}.user-grid{padding-top:calc(54px + var(--safe-top))}}@media (width>=1101px){.user-hamburger-btn,.user-mobile-menu-drawer,.user-menu-backdrop,.user-nav-card-hidden{display:none!important}.user-hamburger-btn-active-view{z-index:330;cursor:pointer;background:#fffbf4f2;border:1.5px solid #dbc8bd;border-radius:12px;flex-direction:row;justify-content:center;align-items:center;gap:8px;width:auto;height:44px;padding:0 16px;position:fixed;top:16px;left:16px;box-shadow:0 2px 10px #00000024;display:flex!important}.user-hamburger-btn-active-view .user-hamburger-lines{margin:top 20px;flex-direction:column;gap:5px;display:flex}.user-hamburger-btn-active-view .user-hamburger-label{color:#38526a;font-size:14px;font-weight:700;display:inline-block}.user-menu-backdrop-active-view{z-index:318;cursor:pointer;background:#0c131861;border:0;border-radius:0;padding:0;position:fixed;inset:0;display:block!important}.user-mobile-menu-drawer-active-view{z-index:320;background:#fffbf4;border-right:1px solid #dbc8bd;border-radius:0 16px 16px 0;flex-direction:column;width:min(300px,82vw);padding-top:76px;animation:.22s ease-out user-drawer-in;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;box-shadow:8px 0 28px #0000002e;display:flex!important}}.foreman-tablet-quicknav{display:none}@media (width>=601px) and (width<=1100px){.foreman-tablet-quicknav{grid-template-columns:1fr 1fr;gap:10px;padding:8px;display:grid!important}.foreman-qnav-btn{text-align:center;color:#38526a;cursor:pointer;background:#eadfca;border:none;border-radius:12px;justify-content:center;align-items:center;min-height:56px;padding:14px 10px;font-size:14px;font-weight:700;transition:background .15s;display:flex}.foreman-qnav-btn:hover{background:#dbc8bd}.foreman-qnav-btn.active{color:#1e4d44;background:linear-gradient(120deg,#62d0c4,#f2db9f)}.foreman-qnav-btn:disabled{opacity:.5;cursor:not-allowed}}@media (width>=1101px){.foreman-tablet-quicknav{display:none!important}}@media (width<=900px){.hero{border-radius:14px;padding:16px}.hero-meta{flex-wrap:wrap;justify-content:flex-start;margin-top:12px;position:static}}.hamburger-btn{cursor:pointer;z-index:301;background:0 0;border:none;flex-direction:column;gap:5px;padding:8px 12px;display:none}.hamburger-line{background:#38526a;border-radius:2px;width:24px;height:3px;transition:all .3s}@media (width<=640px){.hamburger-btn{display:flex}.section-nav-card{z-index:300;-webkit-backdrop-filter:blur(10px);padding:0;padding-bottom:var(--safe-bottom);background:#fffbf4f7;border-top:1px solid #dbc8bd;border-radius:0;align-items:center;min-height:50px;margin:0;padding:8px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #0000001f}.dashboard-nav{display:none}.mobile-menu-drawer{z-index:299;background:#fffbf4fa;border-top:1px solid #dbc8bd;flex-direction:column;max-height:60vh;animation:.2s ease-out slideUp;display:flex;position:fixed;bottom:50px;left:0;right:0;overflow-y:auto;box-shadow:0 -4px 16px #00000026}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.mobile-menu-item{text-align:left;color:#38526a;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #ecd8cb;align-items:center;min-height:44px;padding:14px 16px;font-size:14px;font-weight:600;transition:background .2s;display:flex}.mobile-menu-item:hover{background:#f8f2eb}.mobile-menu-item.active{background:linear-gradient(120deg,#62d0c4,#f2db9f);font-weight:700}.mobile-menu-item:disabled{opacity:.5;cursor:not-allowed}}@media (width>=641px){.hamburger-btn,.mobile-menu-drawer{display:none!important}.section-nav-card{box-shadow:none;background:#fffbf4db;border:none;border-radius:18px;margin:0;padding:12px 18px;position:relative;bottom:auto;left:auto;right:auto}}@media (width>=641px) and (width<=900px){.dashboard-nav{scrollbar-width:none;flex-wrap:nowrap;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.dashboard-nav::-webkit-scrollbar{display:none}.tab{white-space:nowrap;flex:none}}@media (width>=901px){.dashboard-nav{flex-wrap:wrap;gap:10px;display:flex}.tab{background:#eadfca;border-radius:12px;justify-content:center;align-items:center;padding:8px 14px;font-weight:700;display:inline-flex}.tab.active{background:linear-gradient(120deg,#62d0c4,#f2db9f)}}@media (width<=640px){.form-row,.dr-form-row{flex-direction:column;gap:10px}}@media (width<=900px){.table-wrap{-webkit-overflow-scrolling:touch}table{min-width:600px}th,td{padding:8px;font-size:13px}}@media (width<=640px){.dr-photos-grid{gap:8px;grid-template-columns:repeat(2,1fr)!important}.photo-grid{grid-template-columns:repeat(2,1fr);gap:8px}.work-step-card{padding:12px}.ws-header{flex-wrap:wrap;gap:8px}.quadrant-grid{grid-template-columns:1fr;gap:12px}.quadrant-card{min-height:80px;padding:16px}.quadrant-card .stat-number{font-size:36px}.ts-stat-val{font-size:18px}}@media (width<=900px){.fm-ts-grid-wrap,.ts-grid-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.fm-ts-grid,.ts-grid{min-width:900px}}@media (width<=640px){.fm-ts-grid,.ts-grid{min-width:600px;font-size:12px}th,td{padding:6px 4px}.ts-grid-name,.ts-grid-day,.ts-grid-total,.ts-grid-cell{font-size:11px}.ts-grid-input{width:100%;min-width:35px;padding:2px 4px;font-size:11px}.budget-card{padding:14px}.budget-progress{height:10px}.issue-card-header{flex-direction:column;align-items:flex-start;gap:8px}.issue-card-header>div:last-child{align-self:flex-end}.notif-bar{top:0}.notif-item{padding:8px 0}.notif-title{font-size:12px}.auth-card{min-height:100dvh;padding:24px 16px;padding-top:calc(24px + var(--safe-top));border-radius:0;margin:0}.row-actions{flex-wrap:wrap;gap:6px}.action-cell{flex-wrap:wrap}.pagination-row{flex-wrap:wrap;gap:8px}.bt-toolbar{flex-direction:column;gap:8px}.bt-search-input,.bt-select{flex:auto;width:100%;min-width:100%}}@media (width>=641px) and (width<=900px){.budget-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media (width<=640px){.app-shell{gap:12px;width:min(100%,100vw);margin:16px 8px}.card{border-radius:12px;padding:12px}.card.wide{grid-column:1/-1}h2{margin:0 0 8px;font-size:18px}.modal-card{border-radius:12px 12px 0 0;width:100%;max-height:90vh}.preview-modal{width:100%}.hero{border-radius:12px;padding:16px 12px}.hero-meta{gap:6px;margin-top:8px;position:static}.budget-card-actions{flex-direction:column;width:100%}.budget-card-actions button{width:100%;padding:8px 12px}table thead,table tbody{font-size:12px}th,td{padding:6px 4px}.profile-grid{gap:8px}.profile-row{flex-direction:column;gap:2px;padding:8px 0}.profile-label{min-width:auto;font-size:12px}.profile-value{font-size:14px}.export-filters{flex-direction:column}.lightbox-close{width:44px;height:44px;font-size:20px}}.auth-gateway-page{min-height:100dvh;padding:12px}.master-admin-portal-page,.user-portal-page{width:100%}@media (width<=1024px){.auth-gateway-page{align-content:start;gap:10px;padding:10px}.auth-gateway-page .auth-card{width:min(680px,100%);margin:0 auto}.master-admin-portal-page .card,.user-portal-page .card{padding:12px}}@media (width<=768px){.auth-gateway-page{gap:8px;padding:8px}.auth-gateway-page .login-mode-toggle{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;display:grid}.auth-gateway-page .mode-btn{min-height:42px;font-size:14px}.auth-gateway-page .auth-card{width:100%}.master-admin-portal-page,.user-portal-page{gap:10px}.master-admin-portal-page .card,.user-portal-page .card{border-radius:12px;padding:10px}.app-shell{overflow-x:clip}.hero{width:100%}}@media (width<=1100px){.app-shell{gap:14px;width:min(100%,98vw);margin:12px auto}.card{border-radius:14px;padding:14px}.dashboard-nav,.user-dashboard-nav,.admin-dashboard-nav{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.dashboard-nav .tab,.user-dashboard-nav .tab,.admin-dashboard-nav .tab{white-space:nowrap;flex:none;min-height:40px}.table-wrap{-webkit-overflow-scrolling:touch;overflow:auto}.status-bar{padding:10px 12px;font-size:13px}.global-footer{padding-right:calc(94px + var(--safe-right))}}@media (width<=768px){input,select,textarea,button{font-size:16px}button,.tab,.tab-btn,.ghost,.btn-save,.btn-danger,.btn-export{min-height:42px}.form-row{flex-direction:column;gap:10px}.row-actions{align-items:stretch}.row-actions>*{width:100%}.modal-backdrop{padding:8px}.modal-card{width:100%;max-height:92dvh}}.dashboard-intro{color:#6b5244;margin:0 0 18px;font-size:15px}.dashboard-intro span{color:#8a7060}.foreman-home-wrap{gap:14px;display:grid}.role-home-wrap .foreman-home-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.role-home-header h2{margin-bottom:4px}.role-home-status-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.role-home-status-board h3{color:#38526a;margin:0 0 12px;font-size:16px}.role-home-status-row{gap:6px;margin-bottom:10px;display:grid}.role-home-status-row>div:first-child{color:#38526a;justify-content:space-between;align-items:center;font-size:13px;display:flex}.role-home-status-row strong{color:#1e4d44}.role-home-links{gap:8px;margin-top:4px;display:grid}.role-home-links .foreman-home-open-btn{width:100%}@media (width<=1100px){.role-home-wrap .foreman-home-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.role-home-status-board{grid-template-columns:1fr}}@media (width<=700px){.role-home-wrap .foreman-home-kpis{grid-template-columns:1fr}}.foreman-home-topstrip{background:#fffef9;border:1px solid #ecd8cb;border-radius:12px;grid-template-columns:minmax(200px,1.35fr) minmax(170px,.9fr) minmax(200px,1.1fr) minmax(120px,.7fr);min-height:108px;display:grid;overflow:hidden}.foreman-home-topstrip>div{border-right:1px solid #f0e3d8;align-content:center;padding:12px 14px;display:grid}.foreman-home-topstrip>div:last-child{border-right:none}.foreman-home-brand-block{align-items:center;gap:12px;display:flex}.foreman-home-brand-logo{object-fit:contain;width:102px;height:auto}.foreman-home-brand-text{gap:2px;display:grid}.foreman-home-brand-text strong{color:#38526a;overflow-wrap:anywhere;font-size:24px;line-height:1.05}.foreman-home-brand-text span{color:#6b4a33;text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:700}.foreman-home-topstat-block{align-content:center;gap:8px;display:grid}.foreman-home-topstat-row{color:#38526a;justify-content:space-between;align-items:baseline;gap:10px;font-size:14px;display:flex}.foreman-home-topstat-row-action{width:100%;color:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;margin:-6px -8px;padding:6px 8px}.foreman-home-topstat-row-action:hover{box-shadow:none;background:#f4ede3;border-color:#dbc8bd;transform:none}.foreman-home-topstat-row strong{color:#0f6e63;font-size:20px}.foreman-home-payperiod-block{align-content:center;gap:6px;display:grid}.foreman-home-payperiod-block-action{text-align:left;width:100%;color:inherit;background:0 0;border:1px solid #0000;border-radius:8px;margin:-8px;padding:8px}.foreman-home-payperiod-block-action:hover{box-shadow:none;background:#f4ede3;border-color:#dbc8bd;transform:none}.foreman-home-payperiod-block span{color:#38526a;font-size:13px;font-weight:700}.foreman-home-payperiod-block strong{color:#0f6e63;font-size:17px;font-weight:700}.foreman-home-profile-block{text-align:right;place-content:center;gap:2px;display:grid}.foreman-home-profile-block strong{color:#38526a;font-size:22px;line-height:1}.foreman-home-profile-block span{color:#6b4a33;font-size:13px;font-weight:700}.foreman-home-header h2{color:#38526a;margin:0;font-size:clamp(24px,2.6vw,36px);font-weight:800}.foreman-home-header-main{padding:2px 2px 0}.foreman-home-header p{color:#6b4a33;margin:4px 0 0;font-weight:600}.foreman-home-kpis{grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:10px;display:grid}.foreman-home-kpi-card{background:#fffef9;border:1px solid #ecd8cb;border-radius:12px;align-items:flex-start;gap:10px;min-height:112px;padding:12px;display:flex}.foreman-home-kpi-card-action{text-align:left;width:100%;color:inherit;background:#fffef9;border:1px solid #ecd8cb;padding:12px}.foreman-home-kpi-card-action:hover{background:#f4ede3;border-color:#dbc8bd;transform:translateY(-1px);box-shadow:0 8px 18px #38526a1f}.foreman-home-kpi-icon{letter-spacing:.04em;color:#38526a;background:#efe7dc;border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;font-size:13px;font-weight:800;display:inline-flex}.foreman-home-kpi-label{color:#38526a;text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:700}.foreman-home-kpi-value{color:#1e4d44;margin-top:2px;font-size:30px;font-weight:800;line-height:1.05}.foreman-home-kpi-meta{color:#6b4a33;margin-top:2px;font-size:12px}.foreman-home-weather-card{gap:2px;display:grid}.foreman-home-weather-main{color:#1e4d44;font-size:32px;font-weight:800;line-height:1}.foreman-home-worktable-wrap{background:#fffef9;border:1px solid #ecd8cb;border-radius:12px;padding:12px}.foreman-home-section-head{align-items:center;margin-bottom:10px}.foreman-home-section-head h3{color:#38526a;margin:0}.foreman-home-worktable{min-width:980px}.foreman-home-workcards{display:none}.foreman-home-worktable thead th{color:#fff;background:#38526a;border:none;font-size:12px}.foreman-home-worktable td{vertical-align:middle;font-size:13px}.foreman-home-group-row td{color:#38526a;background:#f4ede3;font-weight:700}.foreman-home-group-toggle{color:#38526a;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin:0;padding:0;font-weight:800;display:inline-flex}.foreman-home-group-meta{color:#64748b;margin-left:8px;font-size:12px;font-weight:600}.foreman-home-card-toggle{cursor:pointer;color:inherit;font:inherit;background:0 0;border:none;align-items:center;gap:6px;margin:0;padding:0;display:inline-flex}.foreman-home-progress-cell{gap:4px;display:grid}.foreman-home-progress-cell>span{color:#38526a;font-size:12px;font-weight:700}.foreman-home-progress-track{background:#ede8e2;border-radius:999px;width:100%;height:7px;overflow:hidden}.foreman-home-progress-fill{background:linear-gradient(90deg,#62d0c4,#2aa899);border-radius:999px;height:100%}.foreman-home-status{border-radius:999px;justify-content:center;align-items:center;min-width:92px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.foreman-home-status.is-progress{color:#166534;background:#dcfce7}.foreman-home-status.is-pending{color:#374151;background:#e5e7eb}.foreman-home-status.is-complete{color:#1f5c52;background:#d3ece7}.foreman-home-open-btn{color:#0f2a26;background:linear-gradient(120deg,#62d0c4,#f2db9f);border:none;border-radius:8px;min-height:40px;padding:7px 12px;font-size:12px;font-weight:700}.foreman-home-open-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px #144e4a33}.foreman-home-tip{color:#5f4a3d;background:#fff6df;border:1px solid #ecd8cb;border-radius:10px;padding:10px 12px;font-size:13px}@media (width<=1366px){.foreman-home-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.foreman-home-weather-card{grid-column:span 2}}@media (width<=1240px){.foreman-home-topstrip{grid-template-columns:1fr 1fr}.foreman-home-topstrip>div:nth-child(2){border-right:none}.foreman-home-topstrip>div{border-bottom:1px solid #e6edf8}.foreman-home-topstrip>div:nth-last-child(-n+2){border-bottom:none}}@media (width<=1100px){.foreman-home-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.foreman-home-weather-card{grid-column:auto}}@media (width<=900px){.foreman-home-wrap{gap:10px}.foreman-home-header h2{font-size:clamp(24px,5.4vw,32px)}.foreman-home-header p{font-size:14px}.foreman-home-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.foreman-home-weather-card{grid-column:1/-1}.foreman-home-worktable{display:none}.foreman-home-workcards{gap:12px;display:grid}.foreman-home-workcards-empty{color:#475569;margin:0;font-size:14px}.foreman-home-project-card{background:#fdfaf3;border:1px solid #e0d5bd;border-radius:12px;gap:8px;padding:10px;display:grid}.foreman-home-project-card-head{color:#2a3f35;justify-content:space-between;align-items:baseline;gap:8px;font-size:13px;display:flex}.foreman-home-project-card-head span{color:#2f9a8d;font-size:12px;font-weight:700}.foreman-home-project-card-location{color:#7b6b57;margin:0;font-size:12px}.foreman-home-project-card-steps{gap:8px;display:grid}.foreman-home-step-card{background:#fff;border:1px solid #dce6f3;border-radius:10px;gap:8px;padding:9px;display:grid}.foreman-home-step-card-top{color:#0f2455;justify-content:space-between;align-items:baseline;gap:8px;font-size:13px;display:flex}.foreman-home-step-card-top span{color:#475569;font-size:12px}.foreman-home-step-card-progress{gap:4px;display:grid}.foreman-home-step-card-progress>span{color:#123874;font-size:12px;font-weight:700}.foreman-home-step-card-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}}@media (hover:none) and (pointer:coarse){.foreman-home-kpi-card,.foreman-home-project-card,.foreman-home-step-card{border-radius:14px}.foreman-home-open-btn{min-height:44px;font-size:14px}.foreman-home-status{min-height:32px;font-size:13px}}@media (width>=600px) and (width<=1280px) and (hover:none) and (pointer:coarse){.foreman-home-topstrip{grid-template-columns:1fr 1fr}.foreman-home-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.foreman-home-weather-card{grid-column:1/-1}}@media (width<=480px) and (hover:none) and (pointer:coarse){.foreman-home-topstrip>div{padding:10px 11px}.foreman-home-brand-logo{width:72px}.foreman-home-brand-text strong{font-size:18px}.foreman-home-kpi-card{gap:8px;padding:10px}.foreman-home-kpi-icon{width:34px;height:34px;font-size:17px}.foreman-home-kpi-value,.foreman-home-weather-main{font-size:22px}.foreman-home-worktable-wrap,.foreman-home-step-card{padding:8px}}@media (height<=500px) and (orientation:landscape) and (hover:none) and (pointer:coarse){.foreman-home-topstrip>div{padding:8px 10px}.foreman-home-brand-logo{width:64px}.foreman-home-brand-text strong{font-size:16px}.foreman-home-header h2{font-size:22px}.foreman-home-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.foreman-home-kpi-card{padding:8px}.foreman-home-kpi-value,.foreman-home-weather-main{font-size:20px}.foreman-home-workcards{gap:8px}}@media (width<=640px){.foreman-home-topstrip{grid-template-columns:1fr}.foreman-home-topstrip>div{border-bottom:1px solid #e6edf8;border-right:none}.foreman-home-topstrip>div:last-child{border-bottom:none}.foreman-home-brand-text strong{font-size:20px}.foreman-home-brand-logo{width:84px}.foreman-home-profile-block{text-align:left;place-content:start}.foreman-home-kpis{grid-template-columns:1fr}.foreman-home-kpi-value,.foreman-home-weather-main{font-size:24px}.foreman-home-header h2{font-size:28px}.foreman-home-header p{font-size:14px}.foreman-home-step-card-actions{flex-direction:column;align-items:stretch}.foreman-home-open-btn{width:100%}}@media (width<=380px) and (hover:none) and (pointer:coarse){.foreman-home-wrap{gap:8px}.foreman-home-topstrip>div{padding:9px 10px}.foreman-home-brand-block{gap:8px}.foreman-home-brand-logo{width:68px}.foreman-home-brand-text strong{font-size:17px}.foreman-home-header h2{font-size:24px}.foreman-home-header p{font-size:13px}.foreman-home-kpi-card{padding:9px}.foreman-home-kpi-value,.foreman-home-weather-main{font-size:20px}.foreman-home-tip{padding:8px 10px;font-size:12px}}@media (width>=381px) and (width<=450px) and (hover:none) and (pointer:coarse){.foreman-home-kpi-card{padding:10px}.foreman-home-kpi-icon{width:36px;height:36px;font-size:18px}.foreman-home-kpi-value,.foreman-home-weather-main{font-size:22px}.foreman-home-step-card{padding:9px}}@media (width>=760px) and (width<=920px) and (hover:none) and (pointer:coarse){.foreman-home-topstrip{grid-template-columns:1.2fr 1fr}.foreman-home-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.foreman-home-weather-card{grid-column:1/-1}.foreman-home-kpi-card{min-height:94px}.foreman-home-workcards,.foreman-home-step-card-actions{gap:10px}.foreman-home-open-btn{min-width:130px}}.foreman-portal-page{gap:16px}.app-shell.foreman-shell{gap:18px;width:min(1400px,98vw)}.app-shell.foreman-shell .hero{background:linear-gradient(112deg,#f1dd8f 0%,#a7dacf 100%);border-color:#d2d9c8;border-radius:28px;padding:26px 34px;box-shadow:0 12px 28px #2e423b1f}.app-shell.foreman-shell .kicker{letter-spacing:.08em;font-size:14px}.app-shell.foreman-shell .hero h1{color:#0f2f35;margin:4px 0 2px;font-size:clamp(42px,3.2vw,56px)}.app-shell.foreman-shell .subtitle{color:#26424b;margin:8px 0 0;font-size:18px}.app-shell.foreman-shell .hero-meta{gap:10px;top:16px;right:16px}.app-shell.foreman-shell .chip{border-radius:14px;min-height:34px;padding:6px 14px;font-size:14px}.app-shell.foreman-shell .role-chip{color:#1f4b61;background:#dce6ea}.app-shell.foreman-shell .hero .ghost.small{color:#24343f;background:#e6dfcf;border-radius:14px;min-height:34px;padding:6px 14px}.foreman-portal-page .card.wide{background:#f7f3e9;border-color:#e1d4c4;border-radius:20px;box-shadow:0 10px 28px #5c4f3814}.foreman-portal-page .user-nav-card{padding:14px 18px}.foreman-sidebar-head{color:#20322f;align-items:baseline;gap:2px;margin-bottom:10px;display:inline-flex}.foreman-sidebar-head strong{letter-spacing:.02em;font-size:30px;line-height:1}.foreman-sidebar-head span{color:#3c4a4b;letter-spacing:.03em;font-size:30px}.foreman-portal-page .user-dashboard-nav{gap:12px}.foreman-portal-page .user-dashboard-nav .tab{color:#1a3331;background:#d6cfb6;border:1px solid #0000;border-radius:16px;min-height:46px;padding:10px 18px;font-size:16px;font-weight:800}.foreman-portal-page .user-dashboard-nav .tab.active{background:linear-gradient(120deg,#7eddbf,#bddf9a);box-shadow:0 10px 20px #47856233}.foreman-portal-page .user-dashboard-nav .tab:hover{box-shadow:none;background:#cec7af;transform:none}.foreman-portal-page .card.wide h2{color:#1a3130;margin-bottom:10px;font-size:34px}.foreman-portal-page .dashboard-intro{color:#6f5f4e;font-size:18px}.foreman-portal-page .dashboard-intro strong{color:#564738}.app-shell.user-shell{width:min(1320px,96vw)}.app-shell.user-shell .hero{background:linear-gradient(112deg,#f1dd8f 0%,#a7dacf 100%);border-color:#d2d9c8;border-radius:10px;padding:16px 18px;box-shadow:0 10px 24px #2e423b1f}.app-shell.user-shell .hero h1{color:#0f2f35;font-size:clamp(28px,2.6vw,36px)}.app-shell.user-shell .subtitle{color:#26424b;margin-top:6px}.blue-dashboard-shell{background:#f7f1e3;border-color:#d8ccb4;padding:0;overflow:hidden}.blue-dashboard-topbar{background:#f8f3e7;border-bottom:1px solid #dccdaf;grid-template-columns:1.5fr 1fr .8fr;align-items:center;gap:10px;padding:14px 16px;display:grid}.blue-dashboard-brand{align-items:center;gap:14px;display:flex}.blue-dashboard-logo{width:74px;height:auto}.blue-dashboard-logo.company-header-image{object-fit:contain;background:#fff9ee;border:1px solid #d7c9aa;border-radius:8px;width:clamp(190px,24vw,340px);max-height:76px;padding:6px 10px}.blue-dashboard-label{text-transform:uppercase;letter-spacing:.08em;color:#7b6b57;margin-bottom:2px;font-size:10px;display:block}.blue-dashboard-brand strong{color:#20322f;font-size:18px;display:block}.blue-dashboard-brand span{color:#6f5f4e;text-transform:uppercase;letter-spacing:.06em;font-size:12px}.blue-dashboard-datetime{color:#2f4f3b;justify-items:end;display:grid}.blue-dashboard-datetime span{font-size:12px}.blue-dashboard-datetime strong{font-size:24px}.blue-dashboard-weather{color:#2d6a52;justify-items:end;display:grid}.blue-dashboard-weather strong{font-size:24px}.blue-dashboard-weather span{font-size:12px}.blue-dashboard-main{background:linear-gradient(145deg,#efe5cb 0%,#cde1c7 100%);padding:16px}.blue-dashboard-welcome{color:#1a3130;margin-bottom:14px}.blue-dashboard-welcome h2{color:#1a3130;margin:0;font-size:34px}.blue-dashboard-welcome p{color:#5e6d5a;margin:6px 0 0;font-size:15px}.blue-dashboard-actions{gap:8px;display:grid}.blue-action-tile{text-align:left;color:#243b34;background:linear-gradient(120deg,#f6f1e4,#ebdfc7);border:1px solid #d7c9aa;border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:100%;padding:14px;display:grid}.blue-action-icon{color:#2a5b44;letter-spacing:.02em;background:#d6ead8;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;font-weight:800;display:inline-flex}.blue-action-copy strong{color:#2a3f35;font-size:20px;display:block}.blue-action-copy span{color:#6a725f;margin-top:2px;font-size:14px;display:block}.blue-action-arrow{color:#738569;font-size:26px}.blue-action-tile:hover{box-shadow:none;background:linear-gradient(120deg,#efe6d3,#e2d5bb);border-color:#cdbf9e;transform:none}.blue-dashboard-footer{color:#3b4a3c;border-top:1px solid #d8c8a8;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;padding-top:10px;display:grid}.blue-dashboard-footer strong{font-size:13px;display:block}.blue-dashboard-footer span{color:#6a725f;font-size:12px;display:block}.blue-dashboard-powered{color:#355944;place-self:center end;font-weight:800}@media (width<=1100px){.app-shell.foreman-shell{width:min(100%,98vw)}.app-shell.foreman-shell .kicker{font-size:14px}.app-shell.foreman-shell .hero h1{font-size:34px}.app-shell.foreman-shell .subtitle{font-size:16px}.foreman-sidebar-head{font-size:.8em}.foreman-portal-page .user-dashboard-nav{gap:8px}.foreman-portal-page .user-dashboard-nav .tab{border-radius:12px;min-height:40px;padding:8px 14px;font-size:18px}.foreman-portal-page .card.wide h2{font-size:28px}.foreman-portal-page .dashboard-intro{font-size:16px}.blue-dashboard-topbar{grid-template-columns:1fr;justify-items:start}.blue-dashboard-brand{flex-wrap:wrap;width:100%}.blue-dashboard-logo.company-header-image{width:min(100%,360px);max-height:84px}.blue-dashboard-datetime,.blue-dashboard-weather{justify-items:start}.blue-dashboard-welcome h2{font-size:28px}.blue-action-copy strong{font-size:18px}.blue-action-copy span{font-size:14px}.blue-action-arrow{font-size:22px}.blue-dashboard-footer{grid-template-columns:1fr}.blue-dashboard-powered{justify-self:start}}.legacy-project-form{display:none}.np-desktop-form{display:block}@media (width<=1500px){.np-sections{grid-template-columns:repeat(2,minmax(0,1fr))}.np-section.span-3{grid-column:1/-1}}.np-page{background:#f7f1e3;border-radius:14px;padding:16px}.np-titlebar{color:#fff;background:#2a3f35;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:14px 20px;display:flex}.np-titlebar-left{flex-direction:column;gap:4px;display:flex}.np-back-link{color:#cdbf9e;cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:13px}.np-back-link:hover{color:#fff}.np-titlebar h2{color:#fff;margin:0;font-size:24px}.np-titlebar p{color:#d8ccb4;margin:2px 0 0;font-size:13px}.np-titlebar-actions{gap:10px;display:flex}.np-btn{color:#fff;cursor:pointer;background:#355944;border:1px solid #4a6154;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:600}.np-btn.primary{color:#0f2a26;background:linear-gradient(120deg,#62d0c4,#f2db9f);border-color:#0000}.np-btn.ghost{background:0 0}.np-btn:disabled{opacity:.6;cursor:not-allowed}.np-info-banner{color:#355944;background:#f6f1e4;border:1px solid #d7c9aa;border-radius:10px;grid-column:1/-1;padding:10px 14px;font-size:13px}.np-body{display:block}.np-sections{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.np-fieldset-passthrough{border:0;min-width:0;margin:0;padding:0;display:contents}.np-fieldset-passthrough:disabled{opacity:1}.np-section{background:#fffef9;border:1px solid #d8ccb4;border-radius:12px;min-width:0;padding:14px}.np-section.span-2{grid-column:span 2}.np-section.span-3{grid-column:span 3}.np-section.span-4{grid-column:1/-1}.np-row-6-7{grid-column:1/-1;grid-template-columns:260px minmax(0,1fr);align-items:start;gap:14px;display:grid}.np-section-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.np-section-num{color:#fff;background:#2a3f35;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:inline-flex}.np-section-head h3{color:#2a3f35;margin:0;font-size:15px}.np-field{color:#4a453c;flex-direction:column;gap:4px;margin-bottom:10px;font-size:12px;font-weight:600;display:flex}.np-field input,.np-field select,.np-field textarea{color:#2a3f35;box-sizing:border-box;background:#fffef9;border:1px solid #d4bfb1;border-radius:7px;width:100%;padding:8px 10px;font-family:inherit;font-size:13px;font-weight:400}.np-field input:focus,.np-field select:focus,.np-field textarea:focus{border-color:#2f9a8d;outline:2px solid #2f9a8d}.np-field-row{grid-template-columns:1fr 1fr;gap:10px;min-width:0;display:grid}.np-field-row .np-field{min-width:0}.np-field-with-action{align-items:flex-end;gap:8px;display:flex}.np-field-with-action .np-field{flex:1;margin-bottom:0}.np-address-field{position:relative}.np-address-suggestions{z-index:20;background:#fffef9;border:1px solid #d4bfb1;border-radius:8px;max-height:220px;margin:2px 0 0;padding:4px;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 8px 20px #2a3f3524}.np-address-suggestions li+li{border-top:1px solid #f0e9d8}.np-address-suggestions button{text-align:left;color:#2a3f35;cursor:pointer;background:0 0;border:none;border-radius:5px;width:100%;padding:7px 8px;font-size:12px;font-weight:400;display:block}.np-address-suggestions button:hover{color:#2f9a8d;background:#f6f1e4}.np-add-btn{color:#0f2a26;cursor:pointer;white-space:nowrap;background:linear-gradient(120deg,#62d0c4,#f2db9f);border:none;border-radius:7px;padding:8px 12px;font-size:12px;font-weight:700}.np-checkbox-row{color:#4a453c;align-items:center;gap:8px;margin-top:6px;font-size:12px;display:flex}.np-dropzones{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.np-dropzone{text-align:center;cursor:pointer;background:#f6f1e4;border:2px dashed #d7c9aa;border-radius:10px;min-width:0;max-width:100%;padding:16px}.np-dropzone.drag-active{background:#eaf3ef;border-color:#2f9a8d}.np-dropzones.compact{gap:6px}.np-dropzone.compact{padding:8px 4px}.np-dropzone.compact .np-dropzone-label{margin-bottom:0;font-size:10px}.np-dropzone.compact .np-dropzone-hint{display:none}.np-dropzone-label{color:#2a3f35;margin-bottom:4px;font-size:12px;font-weight:700;display:block}.np-dropzone-hint{color:#7b6b57;font-size:11px}.np-file-grid{text-align:left;scrollbar-width:thin;flex-wrap:nowrap;gap:8px;margin-top:10px;padding-bottom:8px;display:flex;overflow-x:auto}.np-file-grid::-webkit-scrollbar{height:8px}.np-file-grid::-webkit-scrollbar-thumb{background:#d7c9aa;border-radius:4px}.np-file-grid::-webkit-scrollbar-track{background:0 0}.np-file-tile{cursor:pointer;background:#fffef9;border:1px solid #d7c9aa;border-radius:8px;flex-direction:column;flex:0 0 76px;align-items:center;gap:4px;width:76px;padding:4px;display:flex;position:relative;overflow:hidden}.np-file-tile-remove{color:#fff;z-index:2;cursor:pointer;background:#141414a6;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;min-height:0;padding:0;font-size:10px;line-height:1;display:flex;position:absolute;top:2px;right:2px}.np-file-tile-remove:hover{background:#c0392b}.np-file-tile.pending{opacity:.75;border-style:dashed}.np-file-tile.np-file-add{background:0 0;border-style:dashed;border-color:#2f9a8d}.np-file-tile.np-file-add .np-file-tile-ext{color:#2f9a8d;background:0 0;font-size:22px}.np-file-tile.np-file-add .np-file-tile-name{color:#2f9a8d;font-weight:700}.np-file-tile img{object-fit:cover;cursor:zoom-in;border-radius:5px;width:100%;height:60px}.np-file-tile-ext{color:#7b6b57;cursor:default;background:#eee4d0;border-radius:5px;justify-content:center;align-items:center;width:100%;height:60px;font-size:11px;font-weight:700;display:flex}.np-file-tile-name{color:#4a453c;text-align:center;word-break:break-all;font-size:10px;line-height:1.2}.np-preview-backdrop{z-index:1100;cursor:zoom-out;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.np-preview-modal{cursor:default;background:#fffef9;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;width:min(840px,88vw);height:min(840px,88vw);padding:16px;display:flex;position:relative;box-shadow:0 8px 32px #00000059}.np-preview-imgwrap{justify-content:center;align-items:center;width:100%;height:calc(100% - 56px);display:flex;overflow:hidden}.np-preview-modal img{object-fit:contain;border-radius:6px;max-width:100%;max-height:100%;transition:transform .15s}.np-preview-pdf{border:0;border-radius:6px;width:100%;height:100%}.np-preview-zoom-controls{align-items:center;gap:10px;margin-top:8px;display:flex}.np-preview-zoom-controls button{border-radius:50%;width:26px;height:26px;min-height:0;padding:0;font-weight:700;line-height:1}.np-preview-zoom-controls span{color:#4a453c;text-align:center;min-width:38px;font-size:12px}.np-preview-name{color:#4a453c;text-align:center;word-break:break-all;margin-top:6px;font-size:12px}.np-preview-close{color:#2a3f35;cursor:pointer;background:#00000014;border:none;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:16px;display:flex;position:absolute;top:10px;right:10px}.np-preview-close:hover{background:#00000029}.np-steps-table-wrap{overflow-x:auto}.np-steps-table{border-collapse:collapse;width:100%;font-size:12px}.np-steps-table th,.np-steps-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #ece3d0;padding:8px 6px}.np-steps-table th{white-space:normal;vertical-align:bottom;line-height:1.2}.np-steps-table input,.np-steps-table select{border:1px solid #d4bfb1;border-radius:6px;width:100%;padding:5px 6px;font-size:12px}.np-steps-table th:nth-child(3),.np-steps-table td:nth-child(3){width:80px;max-width:80px}.np-steps-table th:nth-child(8),.np-steps-table td:nth-child(8),.np-steps-table th:nth-child(9),.np-steps-table td:nth-child(9){width:100px;max-width:100px}.np-steps-table th:nth-child(10),.np-steps-table td:nth-child(10){width:56px;max-width:56px}.np-howitworks-trigger{color:#d8ccb4;cursor:pointer;background:0 0;border:1px solid #4a6154;border-radius:8px;padding:10px 14px;font-size:13px;font-weight:600}.np-howitworks-trigger:hover{color:#fff;border-color:#7b9a86}.np-howitworks-modal.modal-card{background:#2a3f35;border:1px solid #4a6154;width:min(480px,92vw);max-height:none}.np-howitworks-modal-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.np-howitworks-modal-head h3{color:#fff;margin:0;font-size:17px}.np-howitworks-close{color:#cdbf9e;cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:20px;line-height:1}.np-howitworks-close:hover{color:#fff}.np-sidebar{color:#d8ccb4;background:#2a3f35;border-radius:12px;padding:16px}.np-sidebar h3{color:#fff;margin:0 0 12px;font-size:15px}.np-sidebar-step{gap:10px;margin-bottom:14px;display:flex}.np-sidebar-num{color:#fff;background:#2f9a8d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:inline-flex}.np-sidebar-step strong{color:#fff;font-size:13px;display:block}.np-sidebar-step span{color:#cdbf9e;margin-top:2px;font-size:12px;display:block}.np-sidebar-note{color:#d8ccb4;background:#355944;border-radius:8px;margin-top:6px;padding:10px 12px;font-size:11px}.np-submit-row{grid-column:1/-1;justify-content:flex-end;display:flex}.dar-weather-box{background:#f0f8f5;border:1px solid #cfe3dc;border-radius:10px;margin-top:10px;padding:10px 12px}.dar-weather-label{text-transform:uppercase;letter-spacing:.05em;color:#2f9a8d;margin-bottom:4px;font-size:11px;font-weight:700;display:block}.dar-weather-grid{color:#334155;flex-wrap:wrap;gap:14px;font-size:13px;display:flex}.da-checkbox-inline{align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.desc-editor.disabled .desc-textarea{color:#94a3b8;background:#f1f5f9}.desc-char-counter{color:#94a3b8;text-align:right;margin-top:2px;font-size:11px}.dar-validation-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 16px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.dar-validation-list li.ok{color:#1e6b3a}.dar-validation-list li.warn{color:#b45309}.dar-validation-list li.na{color:#94a3b8}.da-packing-slip-list{color:#475569;margin:8px 0 0;padding-left:18px;font-size:12px}.dar-report{flex-direction:column;gap:14px;display:flex}.dar-report-header{border-bottom:2px solid #22397d;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;padding-bottom:10px;display:flex}.dar-report-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-size:11px;font-weight:700;display:block}.dar-report-number{color:#22397d;font-size:18px;display:block}.dar-report-meta{color:#475569;text-align:right;flex-direction:column;gap:4px;font-size:12px;display:flex}.dar-step-banner{background:#eef2ff;border:1px solid #c7d2fe;border-radius:10px;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:10px 14px;display:flex}.dar-step-banner-main p{color:#475569;margin:4px 0 0;font-size:13px}.dar-step-banner-facts{color:#334155;text-align:right;flex-direction:column;gap:3px;font-size:12px;display:flex}.dar-numbered-section h3{align-items:center;gap:8px;margin:0 0 8px;font-size:14px;display:flex}.dar-num{color:#fff;background:#22397d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:flex}.dar-info-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 16px;font-size:13px;display:grid}.dar-info-grid>div{flex-direction:column;gap:2px;display:flex}.dar-label{text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;font-size:11px;font-weight:700}.dar-two-col,.dar-three-col{gap:14px;display:grid}.dar-two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.dar-three-col{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=800px){.dar-two-col,.dar-three-col{grid-template-columns:1fr}}.dar-bullets{color:#334155;margin:0;padding-left:18px;font-size:13px}.dar-bullets li{margin-bottom:4px}.dar-empty{color:#94a3b8;margin:0;font-size:13px}.dar-empty-inline{color:#475569;margin:0;font-size:13px}.dar-ok-inline{color:#1e6b3a;margin:0;font-size:13px;font-weight:600}.dar-review-banner{border-radius:10px;padding:10px 14px;font-size:13px}.dar-review-banner strong{display:block}.dar-review-banner p{margin:4px 0 0}.dar-review-banner.approved{color:#1e6b3a;background:#eafaf1;border:1px solid #b7e4c7}.dar-review-banner.rejected,.dar-review-banner.changes_requested{color:#9c2a2a;background:#fdecec;border:1px solid #f3b7b7}.dar-review-controls{border-top:1px dashed #d8ccb4;margin-top:12px;padding-top:10px}.dar-review-controls textarea{resize:vertical;width:100%}.np-footer-note{color:#355944;background:#f6f1e4;border:1px solid #d7c9aa;border-radius:10px;grid-column:1/-1;padding:10px 14px;font-size:12px}
