@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-cyrillic-ext-400-normal-BwJdxs7r.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-ext-400-normal-Cd63HKDh.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-cyrillic-400-normal-DjhbW-4D.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-400-normal-7kQcAFpS.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-greek-ext-400-normal-CpIwTHMM.woff2)format("woff2"),url(/assets/source-sans-3-greek-ext-400-normal-BI1kUwmR.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-greek-400-normal-DZReXJla.woff2)format("woff2"),url(/assets/source-sans-3-greek-400-normal-DJm9Ud5h.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-vietnamese-400-normal-CwtaIDr2.woff2)format("woff2"),url(/assets/source-sans-3-vietnamese-400-normal-dYp9C364.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-latin-ext-400-normal-UNsKFIBq.woff2)format("woff2"),url(/assets/source-sans-3-latin-ext-400-normal-BGPHfnm_.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-latin-400-normal-DQi5PRDE.woff2)format("woff2"),url(/assets/source-sans-3-latin-400-normal-AFMiCETP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-cyrillic-ext-600-normal-6AhwUnSr.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-ext-600-normal-uAL1a5gb.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-cyrillic-600-normal-BnFu5nHC.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-600-normal-y-RO8wOd.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-greek-ext-600-normal-DynePNDL.woff2)format("woff2"),url(/assets/source-sans-3-greek-ext-600-normal-D7vJ4nVX.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-greek-600-normal-BSO157bq.woff2)format("woff2"),url(/assets/source-sans-3-greek-600-normal-BNF9LBpG.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-vietnamese-600-normal-B2sTNYey.woff2)format("woff2"),url(/assets/source-sans-3-vietnamese-600-normal-DpSexF-T.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-latin-ext-600-normal-AEyhgUpm.woff2)format("woff2"),url(/assets/source-sans-3-latin-ext-600-normal-Wy7HIzqC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-latin-600-normal-DeckBYAU.woff2)format("woff2"),url(/assets/source-sans-3-latin-600-normal-BvDVuF-j.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-cyrillic-ext-700-normal-BhUSqjb8.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-ext-700-normal-B6RPsSdD.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-cyrillic-700-normal-CIuudVLB.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-700-normal-DYE6gq6k.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-greek-ext-700-normal-Dd6uIcuy.woff2)format("woff2"),url(/assets/source-sans-3-greek-ext-700-normal-C6ITAlBU.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-greek-700-normal-C8Tp2qRF.woff2)format("woff2"),url(/assets/source-sans-3-greek-700-normal-BWdBblwd.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-vietnamese-700-normal-Bgamivog.woff2)format("woff2"),url(/assets/source-sans-3-vietnamese-700-normal-BHxM10oo.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-latin-ext-700-normal-6Xi0A2be.woff2)format("woff2"),url(/assets/source-sans-3-latin-ext-700-normal-ChH_v7nA.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-latin-700-normal-CkzU-mV9.woff2)format("woff2"),url(/assets/source-sans-3-latin-700-normal-BBbVrHF_.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--text:#263740;--text-h:#142d35;--bg:#f2f6f5;--surface:#fff;--surface-alt:#f1f6f5;--border:#d9e5e2;--accent:#147d73;--accent-strong:#0e645c;--accent-soft:#e5f3f0;--accent-warm:#d79a24;--sans:"Source Sans 3", "Segoe UI", sans-serif;font:16px/1.5 var(--sans);color:var(--text);background:radial-gradient(circle at 90% 0%, #e6f1ed 0%, #f7f9f8 44%, var(--bg) 100%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg);min-height:100vh;margin:0}#root{min-height:100vh}:root{--ds-bg:#f5f7fb;--ds-surface:#fff;--ds-surface-alt:#eef2f8;--ds-navy:#0d1b2a;--ds-navy-soft:#16263c;--ds-charcoal:#1b2430;--ds-text:#1c2430;--ds-muted:#586779;--ds-steel:#8ea0b6;--ds-line:#0d1b2a1f;--ds-accent:#f2a900;--ds-accent-deep:#d98a00;--ds-success:#1f7a5b;--ds-shadow:0 16px 38px #0d1b2a14;--ds-radius:18px;--ds-radius-sm:12px;--ds-container:1180px}.landing-root{min-height:100vh;color:var(--ds-text);background:radial-gradient(circle at 0 0,#f2a90014,#0000 32%),linear-gradient(#f5f7fb 0%,#edf2f8 100%);font-family:Inter,Segoe UI,system-ui,sans-serif;line-height:1.6}.landing-root *{box-sizing:border-box}.landing-container{width:min(var(--ds-container), calc(100% - 2rem));margin:0 auto}.site-header{z-index:1000;-webkit-backdrop-filter:blur(16px);background:#ffffffe0;border-bottom:1px solid #0d1b2a14;position:sticky;top:0;box-shadow:0 4px 20px #0d1b2a08}.nav-wrap{justify-content:space-between;align-items:center;gap:1rem;min-height:80px;display:flex}.brand{align-items:center;gap:.85rem;text-decoration:none;display:inline-flex}.brand-mark{object-fit:contain;flex:0 0 58px;width:58px;height:44px;display:block}.brand-text{flex-direction:column;line-height:1.1;display:flex}.brand-text strong{color:var(--ds-navy);letter-spacing:.04em;font-size:1rem}.brand-text small{color:var(--ds-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.65rem;font-weight:600}.main-nav{align-items:center;gap:1.6rem;font-weight:600;display:flex}.mobile-nav-toggle{display:none}.main-nav a{color:var(--ds-charcoal);font-size:.94rem;text-decoration:none;transition:color .2s;position:relative}.main-nav a:hover{color:var(--ds-accent-deep)}.main-nav a:focus-visible,.mobile-nav-toggle:focus-visible{outline:3px solid var(--ds-accent);outline-offset:3px}.header-actions{align-items:center;gap:.75rem;display:flex}.landing-btn{letter-spacing:.01em;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;min-height:44px;padding:.65rem 1.15rem;font-size:.92rem;font-weight:700;line-height:1.2;text-decoration:none;transition:background-color .18s,border-color .18s,box-shadow .18s,color .18s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--ds-accent), var(--ds-accent-deep));color:#101820;box-shadow:0 8px 22px #f2a90047}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 28px #f2a90061}.btn-whatsapp{color:#fff;background:#1fa355;box-shadow:0 8px 20px #1fa35540}.btn-whatsapp:hover{background:#1a8f4a;transform:translateY(-2px);box-shadow:0 12px 26px #1fa35559}.btn-admin-login{color:#f2a900;background:linear-gradient(135deg,#0d1b2a 0%,#1a2a40 100%);border:1px solid #f2a90080;padding:.72rem 1.25rem;font-size:.88rem;position:relative;overflow:hidden;box-shadow:0 4px 14px #0d1b2a33,inset 0 1px #ffffff1a}.btn-admin-login:before{content:"";background:linear-gradient(90deg,#0000,#f2a90026,#0000);width:100%;height:100%;transition:left .6s;position:absolute;top:0;left:-100%}.btn-admin-login:hover:before{left:100%}.btn-admin-login:hover{color:#ffd666;background:linear-gradient(135deg,#16263c 0%,#223754 100%);border-color:#f2a900;transform:translateY(-2px);box-shadow:0 8px 24px #f2a90052}.btn-admin-badge{color:#ffd666;letter-spacing:.05em;text-transform:uppercase;background:#f2a90026;border-radius:999px;padding:.15rem .45rem;font-size:.7rem;font-weight:800}.hero-section{padding:4.5rem 0 3.5rem}.hero-grid{grid-template-columns:1.15fr .85fr;align-items:center;gap:2.5rem;display:grid}.hero-copy .eyebrow{color:var(--ds-navy);background:#0d1b2a0f;border-radius:999px;margin-bottom:1rem;padding:.4rem .85rem;font-size:.85rem;font-weight:700;display:inline-block}.hero-copy h1{color:var(--ds-navy);letter-spacing:-.03em;margin:0 0 1.2rem;font-size:clamp(2.2rem,3.8vw,3.3rem);font-weight:800;line-height:1.15}.hero-copy h1 span{color:var(--ds-accent-deep)}.hero-copy p{color:var(--ds-muted);margin:0 0 1.8rem;font-size:1.05rem;line-height:1.6}.hero-chips{flex-wrap:wrap;gap:.6rem;margin-bottom:2rem;display:flex}.hero-chip{border:1px solid var(--ds-line);color:var(--ds-charcoal);background:#fff;border-radius:999px;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.85rem;font-weight:600;display:inline-flex;box-shadow:0 2px 8px #0d1b2a0a}.hero-cta{flex-wrap:wrap;gap:.85rem;display:flex}.hero-image-wrap{border:4px solid #fff;border-radius:20px;position:relative;overflow:hidden;box-shadow:0 20px 50px #0d1b2a29}.hero-image-wrap img{object-fit:cover;width:100%;height:420px;display:block}.hero-overlay-badge{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;background:#0d1b2ae0;border:1px solid #ffffff26;border-radius:12px;justify-content:space-between;align-items:center;padding:.9rem 1.2rem;display:flex;position:absolute;bottom:1.2rem;left:1.2rem;right:1.2rem}.hero-overlay-badge strong{color:var(--ds-accent);font-size:.95rem}.hero-overlay-badge span{color:#cbd5e1;font-size:.8rem}.landing-section{padding:4.5rem 0}.section-head{text-align:center;max-width:680px;margin:0 auto 3rem}.section-head .eyebrow{color:var(--ds-accent-deep);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem;font-size:.82rem;font-weight:700;display:inline-block}.section-head h2{color:var(--ds-navy);letter-spacing:-.02em;margin:0 0 .8rem;font-size:clamp(1.8rem,3vw,2.5rem);font-weight:800}.section-head p{color:var(--ds-muted);margin:0;font-size:1rem}.service-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.service-card{border-radius:var(--ds-radius);border:1px solid var(--ds-line);background:#fff;flex-direction:column;padding:2rem;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;box-shadow:0 10px 30px #0d1b2a0d}.service-card:hover{border-color:#f2a90080;transform:translateY(-6px);box-shadow:0 20px 40px #0d1b2a1a}.service-icon{margin-bottom:1.2rem;font-size:2.2rem}.service-card h3{color:var(--ds-navy);margin:0 0 .6rem;font-size:1.25rem;font-weight:700}.service-card p{color:var(--ds-muted);flex-grow:1;margin:0 0 1.2rem;font-size:.92rem;line-height:1.55}.service-card a{color:var(--ds-accent-deep);align-items:center;gap:.3rem;font-size:.88rem;font-weight:700;text-decoration:none;display:inline-flex}.why-us-grid{grid-template-columns:repeat(4,1fr);gap:1.2rem;display:grid}.stat-card{border-radius:var(--ds-radius);text-align:center;border:1px solid var(--ds-line);background:#fff;padding:1.8rem;box-shadow:0 8px 24px #0d1b2a0a}.stat-num{color:var(--ds-navy);margin-bottom:.4rem;font-size:2.4rem;font-weight:900;line-height:1}.stat-label{color:var(--ds-muted);font-size:.9rem;font-weight:600}.gallery-grid{grid-template-columns:repeat(4,1fr);gap:1rem;display:grid}.gallery-item{border-radius:var(--ds-radius-sm);height:200px;position:relative;overflow:hidden;box-shadow:0 6px 18px #0d1b2a14}.gallery-item img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.gallery-item:hover img{transform:scale(1.08)}.gallery-item-title{color:#fff;background:linear-gradient(#0000 0%,#0d1b2ae6 100%);padding:1rem .8rem .5rem;font-size:.8rem;font-weight:600;position:absolute;bottom:0;left:0;right:0}.quotation-wrap{border:1px solid var(--ds-line);background:#fff;border-radius:24px;max-width:860px;margin:0 auto;padding:3rem;box-shadow:0 20px 50px #0d1b2a14}.form-grid{grid-template-columns:repeat(2,1fr);gap:1.2rem;display:grid}.form-group-full{grid-column:1/-1}.form-field{flex-direction:column;gap:.35rem;display:flex}.form-field label{color:var(--ds-navy);font-size:.85rem;font-weight:700}.form-field input,.form-field select,.form-field textarea{color:var(--ds-text);background:#fafbfc;border:1px solid #0d1b2a29;border-radius:10px;padding:.75rem 1rem;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--ds-accent-deep);background:#fff;outline:none;box-shadow:0 0 0 3px #f2a90033}.services-checkbox-grid{grid-template-columns:repeat(2,1fr);gap:.5rem;margin-top:.4rem;display:grid}.checkbox-label{color:var(--ds-charcoal);cursor:pointer;align-items:center;gap:.5rem;font-size:.88rem;font-weight:500;display:flex}body.quote-modal-open{overflow:hidden}.quote-modal-backdrop{z-index:11000;-webkit-backdrop-filter:blur(5px);background:#0d1b2abd;justify-content:center;align-items:center;padding:1rem;animation:.2s ease-out modalFadeIn;display:flex;position:fixed;inset:0}.quote-modal-box{background:linear-gradient(#f7f9fc 0%,#eef3f9 100%);border:1px solid #ffffffb8;border-radius:24px;flex-direction:column;width:min(100%,980px);max-height:min(92dvh,900px);animation:.24s cubic-bezier(.16,1,.3,1) modalSlideUp;display:flex;position:relative;overflow:hidden;box-shadow:0 30px 90px #00000052}.quote-modal-content{overscroll-behavior:contain;scrollbar-gutter:stable;padding:2rem;overflow-y:auto}.quote-modal-close{z-index:2;width:42px;height:42px;color:var(--ds-navy);cursor:pointer;background:#fff;border:1px solid #0d1b2a1a;border-radius:50%;place-items:center;font-size:1.6rem;line-height:1;transition:transform .2s,background .2s;display:grid;position:absolute;top:1rem;right:1rem;box-shadow:0 4px 14px #0d1b2a1f}.quote-modal-close:hover{background:var(--ds-accent);transform:rotate(90deg)}.quote-modal-heading{padding:0 3.4rem 1.3rem 0}.quote-modal-heading .eyebrow{color:var(--ds-accent-deep);letter-spacing:.13em;text-transform:uppercase;margin-bottom:.65rem;font-size:.75rem;font-weight:800;display:inline-block}.quote-modal-heading h2{color:var(--ds-navy);letter-spacing:-.04em;margin:0 0 .65rem;font-size:clamp(1.65rem,3vw,2.3rem);line-height:1.15}.quote-modal-heading p{max-width:760px;color:var(--ds-muted);margin:0}.quote-form{gap:.9rem;display:grid}.quote-form-section{background:#ffffffeb;border:1px solid #0d1b2a14;border-radius:17px;padding:1.2rem;box-shadow:0 5px 18px #0d1b2a09}.quote-form-section h3{color:var(--ds-navy);align-items:center;gap:.65rem;margin:0 0 1rem;font-size:1.08rem;display:flex}.quote-form-section h3 span{color:#815300;background:#f2a9002b;border-radius:50%;flex:0 0 30px;place-items:center;width:30px;height:30px;font-size:.8rem;font-weight:800;display:grid}.quote-fields-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.quote-fields-single{grid-template-columns:1fr}.quote-field{flex-direction:column;gap:.4rem;min-width:0;display:flex}.quote-field label{color:var(--ds-navy);font-size:.88rem;font-weight:700}.quote-field input,.quote-field select,.quote-field textarea{width:100%;min-height:46px;color:var(--ds-text);font:inherit;background:#fff;border:1px solid #0d1b2a26;border-radius:10px;padding:.72rem .85rem;font-size:.92rem;transition:border-color .2s,box-shadow .2s}.quote-field textarea{resize:vertical;min-height:105px}.quote-field input:focus,.quote-field select:focus,.quote-field textarea:focus{border-color:var(--ds-accent-deep);outline:none;box-shadow:0 0 0 3px #f2a9002e}.quote-field small,.quote-form-hint{color:var(--ds-muted);margin:0;font-size:.8rem;line-height:1.45}.quote-required{color:#a64b0b;letter-spacing:.04em;text-transform:uppercase;margin-left:.25rem;font-size:.68rem}.quote-form-hint{margin:-.5rem 0 .8rem}.quote-services-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.quote-services-select{width:100%;min-height:150px;color:var(--ds-text);font:inherit;background:#fff;border:1px solid #0d1b2a26;border-radius:10px;padding:.55rem;font-size:.9rem}.quote-services-select:focus{border-color:var(--ds-accent-deep);outline:none;box-shadow:0 0 0 3px #f2a9002e}.quote-service-option{min-height:46px;color:var(--ds-text);cursor:pointer;background:#fff;border:1px solid #0d1b2a1c;border-radius:10px;align-items:center;gap:.6rem;padding:.6rem .7rem;font-size:.85rem;font-weight:600;line-height:1.35;transition:border-color .18s,background .18s,box-shadow .18s;display:flex}.quote-service-option:has(input:checked){background:#f2a9001a;border-color:#d98a00bf;box-shadow:0 0 0 2px #f2a9001a}.quote-service-option:focus-within{outline-offset:1px;outline:3px solid #f2a90040}.quote-service-option input{width:18px;height:18px;accent-color:var(--ds-accent-deep);flex:0 0 18px}.quote-field input[type=file]{border-style:dashed;min-height:auto;padding:.6rem}.quote-file-list{overflow-wrap:anywhere}.quote-form-actions{justify-content:flex-end;padding-top:.2rem;display:flex}.quote-form-actions .landing-btn{min-width:250px;min-height:48px}.quote-form-actions .landing-btn:disabled{cursor:wait;opacity:.7;transform:none}.quote-feedback{border-radius:11px;margin-bottom:1rem;padding:.85rem 1rem;font-weight:600}.quote-feedback-success{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.quote-feedback-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.landing-footer{background:var(--ds-navy);color:#fff;padding:3.5rem 0 2rem}.footer-grid{grid-template-columns:1.5fr repeat(3,1fr);gap:2.5rem;margin-bottom:2.5rem;display:grid}.footer-col h4{color:var(--ds-accent);margin:0 0 1rem;font-size:1rem;font-weight:700}.footer-col p{color:#94a3b8;font-size:.88rem;line-height:1.6}.footer-col a{color:#cbd5e1;margin-bottom:.5rem;font-size:.88rem;text-decoration:none;transition:color .2s;display:block}.footer-col a:hover{color:var(--ds-accent)}.footer-bottom{text-align:center;color:#64748b;border-top:1px solid #ffffff1a;padding-top:1.5rem;font-size:.82rem}.admin-modal-backdrop{-webkit-backdrop-filter:blur(10px);z-index:9999;background:#0d1b2ab8;justify-content:center;align-items:center;padding:1.5rem;animation:.25s cubic-bezier(.16,1,.3,1) modalFadeIn;display:flex;position:fixed;inset:0}.admin-modal-box{background:#fff;border-radius:24px;width:100%;max-width:440px;animation:.3s cubic-bezier(.16,1,.3,1) modalSlideUp;overflow:hidden;box-shadow:0 28px 70px #0d1b2a59,0 0 0 1px #f2a90040}.admin-modal-header{color:#fff;text-align:center;background:linear-gradient(135deg,#0d1b2a 0%,#16263c 100%);padding:2rem 2rem 1.6rem;position:relative}.admin-modal-icon-badge{color:#f2a900;background:#f2a9001f;border:1px solid #f2a90059;border-radius:16px;place-items:center;width:56px;height:56px;margin-bottom:1rem;display:inline-grid}.admin-modal-title{color:#fff;letter-spacing:-.01em;margin:0 0 .3rem;font-size:1.35rem;font-weight:800}.admin-modal-subtitle{color:#94a3b8;margin:0;font-size:.82rem;font-weight:500}.admin-modal-close-btn{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;place-items:center;width:32px;height:32px;font-size:1.2rem;transition:background .2s;display:grid;position:absolute;top:1.2rem;right:1.2rem}.admin-modal-close-btn:hover{background:#fff3}.admin-modal-body{padding:2rem}.admin-google-btn{color:#1f2937;width:100%;font:inherit;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:12px;justify-content:center;align-items:center;gap:.75rem;padding:.85rem 1rem;font-weight:700;transition:background .2s,box-shadow .2s;display:flex}.admin-google-btn:hover:not(:disabled){background:#f8fafc;box-shadow:0 4px 12px #0d1b2a1a}.admin-google-btn:disabled{cursor:wait;opacity:.7}.admin-login-divider{color:#64748b;text-align:center;align-items:center;gap:.75rem;margin:1.2rem 0;font-size:.78rem;display:flex}.admin-login-divider:before,.admin-login-divider:after{content:"";background:#e2e8f0;flex:1;height:1px}.admin-credential-hint{color:#475569;background:#f8fafc;border:1px dashed #0d1b2a33;border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:.75rem 1rem;font-size:.82rem;display:flex}.admin-credential-hint strong{color:var(--ds-navy)}.admin-error-box{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-bottom:1.2rem;padding:.75rem 1rem;font-size:.85rem;font-weight:600}.admin-submit-btn{color:#f2a900;cursor:pointer;background:linear-gradient(135deg,#0d1b2a 0%,#1a2a40 100%);border:1px solid #f2a900;border-radius:12px;width:100%;margin-top:1rem;padding:.95rem;font-size:1rem;font-weight:700;transition:all .25s;box-shadow:0 6px 20px #0d1b2a40}.admin-submit-btn:hover{color:#ffd666;background:linear-gradient(135deg,#16263c 0%,#243956 100%);transform:translateY(-2px);box-shadow:0 10px 26px #f2a90059}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=991px){.nav-wrap{flex-wrap:wrap;gap:.65rem 1rem;padding:.65rem 0}.brand{flex:auto;min-width:0}.main-nav{flex-wrap:wrap;flex:1 0 100%;order:3;justify-content:center;gap:.5rem clamp(.8rem,3vw,1.5rem);padding:.45rem 0 .15rem}.hero-grid{grid-template-columns:1fr}.service-grid,.why-us-grid,.gallery-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr}}@media (width<=768px){.service-grid,.why-us-grid,.form-grid{grid-template-columns:1fr}.quote-modal-backdrop{align-items:flex-end;padding:0}.quote-modal-box{border-radius:20px 20px 0 0;width:100%;max-height:94dvh}.quote-modal-close{width:38px;height:38px;top:.8rem;right:.8rem}.quote-modal-heading{padding-right:2.5rem}.quote-modal-heading h2{font-size:1.6rem}.quote-form-section{padding:1rem}.quote-fields-grid,.quote-services-grid{grid-template-columns:1fr}.quote-form-actions .landing-btn{width:100%;min-width:0}.footer-grid{grid-template-columns:1fr}.landing-root{width:100%;overflow-x:clip}.landing-container{width:min(var(--ds-container), calc(100% - 1.25rem))}.nav-wrap{flex-wrap:wrap;gap:.6rem;min-height:68px;padding:.55rem 0}.brand{flex:auto;gap:.6rem;min-width:0}.brand-text{min-width:0}.brand-text strong,.brand-text small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mobile-nav-toggle{border:1px solid var(--ds-line);width:44px;height:44px;color:var(--ds-navy);cursor:pointer;background:#fff;border-radius:12px;flex:0 0 44px;place-content:center;gap:5px;padding:0;display:inline-grid}.mobile-nav-toggle span{background:currentColor;border-radius:2px;width:18px;height:2px;display:block}.main-nav{border:1px solid var(--ds-line);background:#fff;border-radius:14px;flex-direction:column;flex:1 0 100%;order:3;align-items:stretch;gap:.2rem;padding:.45rem;display:none}.main-nav.is-open{display:flex}.main-nav a{border-radius:9px;align-items:center;min-height:44px;padding:.6rem .75rem;display:flex}.main-nav a:hover{background:var(--ds-surface-alt)}.header-actions{flex:1 0 100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}.header-actions .landing-btn{white-space:nowrap;min-width:0;min-height:44px;padding:.6rem .65rem;font-size:.78rem}.header-actions .btn-admin-login{grid-column:1/-1}.hero-section{padding:2.8rem 0 2.2rem}.hero-copy h1{overflow-wrap:anywhere;font-size:clamp(2rem,8vw,2.8rem)}.hero-copy p{font-size:.98rem}.hero-image-wrap img{height:clamp(220px,62vw,360px)}.hero-overlay-badge{gap:.5rem;padding:.7rem .75rem;bottom:.65rem;left:.65rem;right:.65rem}.hero-overlay-badge strong{font-size:.82rem}.hero-overlay-badge span{text-align:right;font-size:.72rem}.landing-section{padding:3rem 0}.section-head{margin-bottom:1.8rem}.service-grid,.why-us-grid,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.service-card,.stat-card{min-width:0;padding:1rem}.service-card h3{overflow-wrap:anywhere;font-size:1.05rem}.service-card p,.stat-label{font-size:.82rem}.stat-num{font-size:1.8rem}.gallery-item{height:clamp(135px,38vw,210px)}.quotation-wrap{border-radius:16px;width:100%;padding:1.25rem}.form-field input,.form-field select,.form-field textarea,.quote-field input,.quote-field select,.quote-field textarea{box-sizing:border-box;min-width:0;font-size:16px}.quote-modal-backdrop,.admin-modal-backdrop{align-items:flex-end;padding:0}.quote-modal-box,.admin-modal-box{border-radius:20px 20px 0 0;width:100%;max-width:none;max-height:94dvh}.quote-modal-content{padding:1.1rem 1rem calc(1rem + env(safe-area-inset-bottom))}.admin-modal-header{padding:1.5rem 1.25rem 1.2rem}.admin-modal-body{max-height:58dvh;padding:1.25rem;overflow-y:auto}.admin-credential-hint{overflow-wrap:anywhere;flex-direction:column;align-items:flex-start;gap:.4rem}.landing-footer{padding:2.5rem 0 calc(2rem + env(safe-area-inset-bottom))}}@media (width<=420px){.landing-container{width:calc(100% - 1rem)}.brand-mark{flex-basis:50px;width:50px}.brand-text strong{font-size:.82rem}.brand-text small{letter-spacing:.04em;font-size:.55rem}.hero-chips{gap:.4rem}.hero-chip{max-width:100%;padding:.4rem .65rem;font-size:.75rem}.service-grid,.why-us-grid,.gallery-grid{grid-template-columns:minmax(0,1fr)}.gallery-item{height:210px}.quote-form-section{padding:.85rem}.quote-service-option{align-items:flex-start;font-size:.8rem}}.employee-page{grid-template-columns:minmax(0,1fr);gap:22px;min-width:0;display:grid}.employee-page>*{min-width:0}.employee-page .page-heading{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.employee-page .page-heading h2{color:#17365d;margin:0}.employee-page .page-heading p{color:#64748b;margin:6px 0 0}.employee-page .eyebrow{color:#1d4ed8;letter-spacing:.09em;text-transform:uppercase;margin:0 0 4px;font-size:.74rem;font-weight:800}.employee-toolbar{background:#f8fbff;border:1px solid #dbeafe;border-radius:14px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.employee-toolbar label{color:#475569;align-items:center;gap:10px;font-size:.84rem;font-weight:700;display:flex}.employee-toolbar input[type=month],.employee-toolbar input[type=date]{background:#fff;border:1px solid #cbd5e1;border-radius:8px;min-width:160px;padding:8px 10px}.employee-toolbar-actions{gap:9px;display:flex}.employee-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;display:grid}.employee-card{background:#fff;border:1px solid #dbe3ec;border-radius:16px;transition:transform .18s,box-shadow .18s;overflow:hidden;box-shadow:0 8px 24px #1f29370f}.employee-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px #1f29371a}.employee-photo-wrap{aspect-ratio:1.35;background:linear-gradient(145deg,#dbeafe,#e0e7ff);position:relative}.employee-photo{cursor:pointer;background:0 0;border:0;place-items:center;width:100%;height:100%;padding:0;display:grid;position:absolute;inset:0}.employee-photo:disabled{cursor:wait}.employee-photo img{object-fit:cover;width:100%;height:100%}.employee-photo>span:first-child{color:#fff;background:#17365d;border-radius:50%;place-items:center;width:72px;height:72px;font-size:2rem;font-weight:800;display:grid}.employee-photo-hint{color:#fff;opacity:0;white-space:nowrap;background:#0f172ab8;border-radius:999px;padding:5px 8px;font-size:.68rem;font-weight:700;transition:opacity .18s,transform .18s;position:absolute;bottom:10px;left:50%;transform:translate(-50%,6px)}.employee-photo:hover .employee-photo-hint,.employee-photo:focus-visible .employee-photo-hint{opacity:1;transform:translate(-50%)}.employee-card-actions{gap:5px;display:flex;position:absolute;top:9px;right:9px}.employee-card-actions button{color:#17365d;cursor:pointer;background:#ffffffeb;border:0;border-radius:9px;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.employee-card-copy{padding:14px}.employee-card-copy h3{color:#1e293b;margin:0;font-size:1rem}.employee-card-copy p{color:#64748b;margin:4px 0 10px;font-size:.78rem}.attendance-badge{color:#475569;text-transform:uppercase;background:#f1f5f9;border-radius:999px;padding:5px 8px;font-size:.67rem;font-weight:800;display:inline-flex}.attendance-badge.present,.attendance-badge.generated{color:#166534;background:#dcfce7}.attendance-badge.absent{color:#991b1b;background:#fee2e2}.attendance-badge.leave{color:#92400e;background:#fef3c7}.attendance-badge.received{color:#1d4ed8;background:#dbeafe}.employee-section{background:#fff;border:1px solid #dbe3ec;border-radius:16px;padding:18px}.section-heading{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-heading h3{color:#17365d;margin:0}.section-heading p{color:#64748b;margin:4px 0 0;font-size:.8rem}.holiday-employee-select{color:#475569;align-items:center;gap:8px;font-size:.76rem;font-weight:800;display:flex}.holiday-employee-select select{background:#fff;border:1px solid #cbd5e1;border-radius:8px;min-width:160px;padding:7px 9px}.attendance-calendar{grid-template-columns:repeat(7,minmax(70px,1fr));gap:6px;display:grid}.attendance-calendar-scroll{min-width:0}.calendar-action-short{display:none}.calendar-weekday{color:#64748b;text-align:center;text-transform:uppercase;padding:8px;font-size:.72rem;font-weight:800}.calendar-day{color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;flex-direction:column;align-items:flex-start;gap:3px;min-height:76px;padding:8px;font-size:.78rem;display:flex}.calendar-day--empty{visibility:hidden}.calendar-day-date{font-weight:700}.calendar-day-actions{flex-wrap:wrap;gap:4px;margin-top:auto;display:flex}.calendar-day-actions button{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:5px;padding:3px 5px;font-size:.62rem}.calendar-day-actions button:disabled{cursor:not-allowed;opacity:.55}.calendar-day:disabled{cursor:not-allowed;opacity:.58}.calendar-day>span{font-weight:800;display:block}.calendar-day small{color:#64748b;margin-top:5px;font-size:.66rem;display:block}.calendar-day--present,.calendar-day--absent{background:#dcfce7;border-color:#86efac}.calendar-day--leave,.calendar-day--overtime{color:#92400e;background:#fef3c7;border-color:#fcd34d}.calendar-day--overtime small{color:#92400e}.calendar-day--holiday{color:#991b1b;background:#fee2e2;border-color:#dc2626}.calendar-day--holiday small{color:#991b1b}.salary-list{gap:10px;display:grid}.salary-row{background:#f8fafc;border-radius:12px;grid-template-columns:minmax(220px,1fr) minmax(160px,.7fr) auto;align-items:center;gap:18px;padding:13px 15px;display:grid}.salary-row>div{gap:3px;display:grid}.salary-row strong{color:#1e293b}.salary-row span{color:#64748b;font-size:.75rem}.salary-amount{text-align:right}.salary-actions{gap:7px;display:flex}.employee-modal,.employee-clock-modal{box-sizing:border-box;background:#fff;width:min(720px,94vw);max-height:min(92vh,900px);padding:22px;overflow-y:auto}.employee-modal *,.employee-modal :before,.employee-modal :after{box-sizing:border-box}.employee-clock-modal{width:min(420px,94vw)}.employee-modal .modal-header,.employee-clock-modal .modal-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.employee-modal .modal-header h2,.employee-clock-modal .modal-header h2{color:#17365d;margin:0}.employee-modal .modal-close,.employee-clock-modal .modal-close{color:#475569;cursor:pointer;background:#eef2f7;border:0;border-radius:8px;place-items:center;width:34px;height:34px;font-size:1.35rem;display:grid}.employee-modal .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:16px;display:grid}.employee-modal .form-grid>*{min-width:0}.employee-modal label,.employee-clock-modal label{color:#334155;gap:6px;min-width:0;font-size:.78rem;font-weight:700;display:grid}.employee-modal input,.employee-clock-modal input{background:#fff;border:1px solid #cbd5e1;border-radius:8px;width:100%;min-width:0;max-width:100%;padding:9px 10px}.employee-modal input[readonly]{color:#475569;background:#f8fafc}.employee-modal input[type=checkbox]{justify-self:start;width:auto}.form-grid--full{grid-column:1/-1;min-width:0}.employee-code-hint{color:#64748b;margin:-10px 0 0;font-size:.78rem}.employee-photo-preview{background:#f8fafc;border-radius:10px;align-items:center;gap:12px;padding:10px;display:flex}.employee-photo-preview img{object-fit:cover;border-radius:10px;width:64px;height:64px}.employee-photo-preview span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.employee-supporting-documents{gap:8px;margin:0;padding:0;list-style:none;display:grid}.employee-supporting-documents li{background:#f8fafc;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:8px 10px;display:flex}.employee-supporting-documents a,.employee-supporting-documents li>span{overflow-wrap:anywhere}.employee-modal .modal-actions,.employee-clock-modal .modal-actions{justify-content:flex-end;gap:9px;margin-top:20px;display:flex}.employee-clock-modal label{background:#f8fbff;border-radius:12px;padding:16px}.employee-clock-modal input[type=time]{font-size:1.35rem}@media (width<=760px){.employee-page .page-heading,.employee-toolbar{flex-direction:column;align-items:stretch}.employee-page .page-heading .btn{width:100%;min-height:46px}.employee-toolbar label{flex-direction:column;align-items:stretch;gap:6px}.employee-toolbar input[type=month],.employee-toolbar input[type=date]{width:100%;min-width:0;min-height:44px}.employee-toolbar-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.employee-toolbar-actions .btn{min-height:44px;padding-inline:8px}.employee-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.employee-card{border-radius:13px;min-width:0}.employee-photo-wrap{aspect-ratio:1}.employee-photo-hint{opacity:1;text-overflow:ellipsis;max-width:calc(100% - 12px);padding:5px 7px;font-size:.62rem;bottom:7px;overflow:hidden;transform:translate(-50%)}.employee-card-actions{gap:4px;top:7px;right:7px}.employee-card-actions button{width:44px;height:44px}.employee-card-copy{padding:10px}.employee-card-copy h3{overflow-wrap:anywhere;font-size:.9rem}.employee-card-copy p{line-height:1.4}.attendance-badge{line-height:1.35}.employee-section{padding:14px 12px}.section-heading{flex-direction:column;align-items:stretch;gap:12px}.holiday-employee-select{flex-direction:column;align-items:stretch;gap:6px}.holiday-employee-select select{width:100%;min-height:44px}.attendance-calendar-scroll{width:100%;max-width:100%;overflow-x:hidden}.attendance-calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;min-width:0}.calendar-day{align-items:stretch;gap:2px;min-width:0;min-height:94px;padding:4px 2px;font-size:.66rem}.calendar-day--empty{border:0;min-height:0;padding:0}.calendar-weekday{padding:5px 0;font-size:.62rem}.calendar-day-info{text-align:center;width:100%;min-width:0}.calendar-day-date{font-size:.8rem}.calendar-day-info>small{overflow-wrap:anywhere;margin-top:2px;font-size:.52rem}.calendar-day-actions{grid-template-columns:minmax(0,1fr);gap:2px;width:100%;margin-top:auto;display:grid}.calendar-day-actions button{overflow-wrap:anywhere;min-width:0;min-height:24px;padding:2px 0;font-size:.52rem;line-height:1.1}.calendar-action-full{display:none}.calendar-action-short{display:block}.salary-row{grid-template-columns:minmax(0,1fr);gap:12px;padding:13px}.salary-amount{text-align:left}.salary-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.salary-actions .btn{min-height:44px;padding-inline:8px}.employee-modal .form-grid{grid-template-columns:1fr}.employee-modal,.employee-clock-modal{width:100%;max-height:94dvh;padding:18px 14px calc(18px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}.form-grid--full{grid-column:auto}.employee-modal .modal-header,.employee-clock-modal .modal-header{z-index:1;background:#fff;margin:-18px -14px 16px;padding:16px 14px 12px;position:sticky;top:-18px}.employee-modal .modal-actions,.employee-clock-modal .modal-actions{padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:#fff;margin:18px -14px -18px;position:sticky;bottom:-18px}.employee-modal .modal-actions .btn,.employee-clock-modal .modal-actions .btn{flex:1;min-height:44px}}@media (width<=380px){.employee-grid{gap:8px}.employee-card-copy{padding:8px}.employee-card-copy h3{font-size:.84rem}.employee-card-actions button{width:44px;height:44px}.employee-toolbar-actions{grid-template-columns:1fr}}.app-shell{background:#eef2ff;min-height:100vh;display:flex}.sidebar{color:#f8fafc;background:linear-gradient(#1f2937 0%,#111827 100%);flex-direction:column;gap:24px;width:220px;min-width:220px;padding:24px 18px;display:flex}.sidebar.collapsed{width:72px;min-width:72px;padding:24px 12px}.sidebar-brand{align-items:center;gap:12px;display:flex}.sidebar-logo{object-fit:contain;width:36px;height:36px}.sidebar-title{font-size:1rem;font-weight:700}.sidebar-toggle{color:#f8fafc;cursor:pointer;background:#ffffff1f;border:none;border-radius:10px;width:36px;height:36px;font-weight:700}.sidebar-nav{flex-direction:column;gap:10px;display:flex}.nav-item{color:#e5e7eb;cursor:pointer;background:#ffffff0d;border:none;border-radius:14px;align-items:center;gap:12px;width:100%;padding:14px 16px;font-weight:500;transition:background .2s;display:flex}.nav-item.active{color:#fff;background:#ffffff1f}.nav-icon{justify-content:center;align-items:center;width:28px;height:28px;display:flex}.sidebar.collapsed .nav-item{justify-content:center}.sidebar.collapsed .nav-item .nav-label{display:none}.main-shell{flex:1;min-width:0;padding:24px 28px}.hero{margin-bottom:14px}.hero__content,.hero__panel,.card,.panel{border:1px solid var(--border);background:#fff;border-radius:18px;box-shadow:0 8px 24px #0f172a0b}.hero__content{background:linear-gradient(135deg,#fff 0%,#f7f8ff 100%);justify-content:center;align-items:center;padding:16px 20px;display:flex;position:relative}.hero-logo{object-fit:contain;flex:0 0 54px;width:54px;height:40px;position:static}h1{text-align:center;margin:0;font-size:1.6rem}.btn{text-align:center;white-space:normal;cursor:pointer;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:9px 14px;font-size:.88rem;font-weight:600;line-height:1.2;transition:background-color .16s,border-color .16s,box-shadow .16s,transform .16s;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:focus-visible,.nav-item:focus-visible,.sidebar-toggle:focus-visible,.tabs button:focus-visible,.filter-icon-btn:focus-visible{outline-offset:2px;outline:3px solid #5b66ff4d}.btn:disabled{opacity:.58;cursor:not-allowed}.btn--primary{color:#fff;background:#5149d8;box-shadow:0 2px 5px #5149d82e}.btn--primary:hover:not(:disabled){background:#4338ca;box-shadow:0 4px 10px #5149d838}.btn--ghost{color:#334155;background:#fff;border-color:#dbe3ed}.hero__content--compact{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.dashboard-header{justify-content:space-between;min-width:0}.dashboard-brand{align-items:center;gap:14px;min-width:0;display:flex}.dashboard-brand h1{text-align:left;min-width:0;font-size:clamp(1.15rem,2.2vw,1.6rem);line-height:1.2}.dashboard-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.dashboard-header-actions .btn--ghost{color:#b42318;background:#fff5f5;border-color:#fecaca}.dashboard-header-actions .btn--ghost:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5}.kpis{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:20px;display:grid}.card{padding:18px;transition:box-shadow .16s,transform .16s}.card:hover{transform:translateY(-2px);box-shadow:0 12px 28px #0f172a13}.card p{margin-bottom:8px;font-size:.95rem}.card h3{margin:0 0 6px;font-size:1.8rem}.kpi-card{width:100%;color:inherit;text-align:left;cursor:pointer}.kpi-card:focus-visible{outline-offset:2px;outline:3px solid #2563eb4d}.card small{opacity:.85}.panel{text-align:left;padding:22px;box-shadow:0 10px 30px #0f172a0e}.panel h2{margin-top:0;margin-bottom:12px}.status{background:#94a3b81f;border-radius:10px;margin:0;padding:10px 12px}.status--ok{color:#059669;background:#10b98129}.status--error{color:#dc2626;background:#ef44441f}.jobs-panel{margin-top:14px}.jobs-subtitle{margin:0 0 14px}.jobs-feedback{margin-bottom:12px}.create-job-form{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:10px;margin-bottom:14px;display:grid}.create-job-form label{color:var(--text-h);gap:6px;font-size:.82rem;display:grid}.create-job-form input{border:1px solid var(--border);font:inherit;color:inherit;background:#ffffffb3;border-radius:10px;padding:10px 11px}.filters-row{grid-template-columns:1.2fr .7fr .5fr;gap:10px;margin-bottom:14px;display:grid}.filter-input,.filter-select{border:1px solid var(--border);font:inherit;color:inherit;background:#ffffffb3;border-radius:10px;padding:10px 11px}.jobs-table-wrap{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.jobs-table{border-collapse:collapse;width:100%;font-size:.92rem}.enquiries-table{min-width:940px}.enquiries-table th,.enquiries-table td{white-space:nowrap}.enquiries-table td:nth-child(8){white-space:normal;overflow-wrap:anywhere;min-width:170px;max-width:260px}.enquiries-table td.enquiry-actions-cell{white-space:nowrap;min-width:94px;display:table-cell}.enquiry-row-actions{justify-content:flex-start;align-items:center;gap:6px;display:flex}.jobs-table th,.jobs-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:12px 10px}.jobs-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-h);padding:12px 10px;font-size:.8rem;position:relative}.enquiry-details-row>td{background:#f7f9fc;padding:0}.enquiry-details-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 20px;margin:0;padding:18px;display:grid}.enquiry-details-grid>div{min-width:0}.enquiry-details-grid dt{color:#374151;text-transform:uppercase;margin-bottom:4px;font-size:.76rem;font-weight:700}.enquiry-details-grid dd{overflow-wrap:anywhere;white-space:pre-wrap;margin:0}.enquiry-details-grid dd a{color:#2563eb;text-decoration:underline;display:block}.quotation-settings-summary{color:#64748b;margin:5px 0 0;font-size:.86rem}.quotation-header-actions{flex-wrap:wrap;gap:10px;display:flex}.attachment-upload>input[type=file]{width:100%;margin-top:6px;display:block}.attachment-upload>small{color:#64748b;margin-top:6px;display:block}.attachment-preview-list{flex-wrap:wrap;gap:10px;margin:12px 0 0;padding:0;list-style:none;display:flex}.attachment-preview-list li{background:#f8fafc;border:1px solid #dbe3ed;border-radius:8px;grid-template-columns:64px minmax(80px,1fr) auto;align-items:center;gap:8px;width:min(100%,360px);padding:8px;display:grid}.attachment-preview-list img{object-fit:cover;border-radius:5px;width:64px;height:52px}.attachment-preview-list a{color:#1d4ed8;font-size:.8rem;font-weight:700}.attachment-preview-list span{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow-y:auto}.saved-attachment-links{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.saved-attachment-links a{color:#1d4ed8;overflow-wrap:anywhere}.attachment-viewer-button{position:relative}.attachment-viewer-button>span{color:#fff;background:#2563eb;border:2px solid #fff;border-radius:999px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:.65rem;font-weight:700;line-height:1;display:grid;position:absolute;top:-5px;right:-5px}.attachment-viewer-overlay{z-index:1200}.attachment-viewer-modal{max-width:520px}.attachment-viewer-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.attachment-viewer-list li{background:#f8fafc;border:1px solid #dbe3ed;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.attachment-viewer-list li span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attachment-viewer-list a{color:#1d4ed8;flex:none;font-weight:700}.bill-gst-toggle{grid-column:1/-1;align-items:center;gap:10px!important;display:flex!important}.bill-gst-toggle input{accent-color:#1e3a5f;width:18px;min-height:18px!important}.bill-total-summary{background:#f8fafc;border:1px solid #dbe3ed;border-radius:10px;width:100%;margin:8px 0 0;padding:14px 16px}.bill-total-summary p{color:#334155;justify-content:space-between;gap:16px;margin:7px 0;display:flex}.bill-total-summary strong{text-align:right}.bill-total-summary .bill-grand-total{color:#0f172a;border-top:1px solid #cbd5e1;margin-top:10px;padding-top:10px;font-size:1.05rem}.bill-total-summary .bill-total-words{text-align:left;margin:0 0 10px;display:block}.bill-total-summary .bill-total-words strong{text-align:left;margin-top:3px;display:block}.bill-terms-input{box-sizing:border-box;color:#172033;width:100%;min-height:150px;font:inherit;resize:vertical;border:1px solid #cbd5e1;border-radius:9px;padding:12px;line-height:1.5}.bill-view-terms{margin-top:6px;line-height:1.55}.bill-view-terms h3{color:#172033;letter-spacing:.04em;margin:0 0 5px;font-size:.82rem;font-weight:800}.bill-view-terms h3:not(:first-child){margin-top:10px}.bill-view-signatory{color:#172033;text-align:right;border-top:1px solid #e2e8f0;justify-items:end;gap:3px;margin-top:6px;padding-top:5px;font-size:.82rem;display:grid}.bill-terms-preview{white-space:pre-line}.quotation-modal-overlay{z-index:1200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172aad;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.quotation-modal-content{overscroll-behavior:contain;background:#f1f5f9;border:1px solid #e2e8f0e6;border-radius:20px;width:min(100%,1120px);min-width:0;max-height:min(94vh,980px);padding:28px;overflow-y:auto;box-shadow:0 28px 80px #0000005c}.quotation-modal-content .modal-header{z-index:4;background:#f1f5f9;border-bottom:1px solid #e2e8f0;align-items:flex-start;gap:14px;margin:-28px -28px 14px;padding:22px 28px 14px;position:sticky;top:-28px}.quotation-modal-content .modal-header h2{color:#0f172a}.quotation-eyebrow{color:#b77900;letter-spacing:.12em;text-transform:uppercase;margin:0 0 4px;font-size:.74rem;font-weight:800}.quotation-modal-error{margin-bottom:14px}.quotation-editor{gap:18px;display:grid}.quotation-editor-section{background:#fff;border:1px solid #dbe3ed;border-radius:16px;min-width:0;padding:20px;box-shadow:0 3px 12px #0f172a09}.quotation-editor-section h3{color:#172033;letter-spacing:-.01em;margin:0 0 16px;font-size:1.05rem}.quotation-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.quotation-editor-grid label{color:#334155;align-content:start;gap:7px;min-width:0;font-size:.85rem;font-weight:700;display:grid}.quotation-editor-grid label:has(textarea){grid-column:span 2}.quotation-editor-grid input,.quotation-editor-grid textarea,.quotation-editor-grid select,.quotation-service-picker select,.quotation-inline-input{box-sizing:border-box;color:#0f172a;width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:9px;padding:10px 12px;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.quotation-editor-grid input,.quotation-editor-grid select{min-height:42px}.quotation-editor-grid textarea{resize:vertical;min-height:82px}.quotation-editor-grid input:focus,.quotation-editor-grid textarea:focus,.quotation-editor-grid select:focus,.quotation-service-picker select:focus,.quotation-inline-input:focus{border-color:#d98a00;outline:3px solid #f59e0b33}.quotation-service-picker{align-items:center;gap:12px;margin-bottom:16px;display:flex}.quotation-service-picker select{flex:1;min-width:0}.quotation-lines-wrap{overscroll-behavior-inline:contain;border:1px solid #e2e8f0;border-radius:9px;width:100%;max-width:100%;overflow-x:auto}.quotation-inline-input{box-sizing:border-box;min-width:108px}.quotation-rate-input{text-align:right;width:150px}.quotation-output-format{color:#334155;gap:6px;max-width:320px;font-size:.85rem;font-weight:700;display:grid}.quotation-output-format select{color:#0f172a;font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:9px 10px}.quotation-rate-note{color:#64748b;margin-top:4px;font-size:.72rem;display:block}.quotation-lines-wrap .jobs-table th{white-space:nowrap}.quotation-lines-wrap .jobs-table td{vertical-align:middle}.quotation-financial-year{color:#475569;margin:0;font-size:.87rem;font-weight:700}.quotation-modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:8px;display:flex}.quotation-document-header{background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px 22px;padding:14px;display:flex}.quotation-document-header strong{color:#0f172a;text-align:center;flex:1 0 100%;font-size:1.1rem}.quotation-document-header span{text-align:center;flex:1 0 100%}.quotation-preview-subject{color:#172033;margin:12px 2px;font-size:1rem;font-weight:800}.quotation-preview-panels{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.quotation-preview-panel{background:#fff;border:1px solid #cbd5e1;border-radius:10px;min-width:0;padding:14px}.quotation-preview-panel h3{color:#334155;letter-spacing:.04em;border-bottom:1px solid #e2e8f0;margin:0 0 9px;padding-bottom:7px;font-size:.78rem}.quotation-preview-panel p{color:#172033;overflow-wrap:anywhere;margin:5px 0;font-size:.84rem}.quotation-customer-details{background:#fff;border:1px solid #e2e8f0;border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0;padding:14px;display:grid}.quotation-customer-details dt{color:#64748b;text-transform:uppercase;margin-bottom:3px;font-size:.73rem;font-weight:800}.quotation-customer-details dd{overflow-wrap:anywhere;color:#172033;margin:0}.quotation-customer-details>div{min-width:0}.quotation-lines-wrap .jobs-table{min-width:760px}.quotation-lines-wrap .jobs-table td:nth-child(3){white-space:pre-wrap}@media (width<=760px){.enquiry-details-grid{grid-template-columns:1fr}.quotation-modal-overlay{align-items:flex-end;padding:0}.quotation-modal-content{border-radius:18px 18px 0 0;width:100%;max-height:96dvh;padding:18px 16px 24px}.quotation-modal-content .modal-header{margin:-18px -16px 14px;padding:16px 16px 12px;top:-18px}.quotation-editor-grid,.quotation-customer-details,.quotation-preview-panels{grid-template-columns:1fr}.quotation-editor-grid label:has(textarea){grid-column:auto}.quotation-editor-section{padding:16px}.quotation-service-picker{flex-direction:column;align-items:stretch}.quotation-modal-actions{flex-direction:column}.quotation-modal-actions .btn{width:100%}}.filter-header{align-items:center;gap:8px;display:flex;position:relative}.filter-header span{text-transform:uppercase;letter-spacing:.04em;flex:1;font-size:.8rem;font-weight:600}.filter-icon-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px 6px;font-size:.9rem;transition:background .2s;display:flex}.filter-icon-btn:hover{background:#7a85ff1f}.filter-dropdown{z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff;border:1px solid #e5e7eb;border-radius:12px;min-width:220px;max-width:300px;margin-top:4px;padding:12px;position:absolute;top:100%;left:0;box-shadow:0 8px 24px #0000001f,0 0 0 1px #ffffff0d}.filter-search-input{border:1px solid #d1d5db;border-radius:8px;width:100%;margin-bottom:10px;padding:10px 12px;font-family:inherit;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.filter-search-input:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f61a}.filter-search-input::placeholder{color:#9ca3af}.filter-date-options{flex-direction:column;gap:8px;display:flex}.filter-date-input{color:#1f2937;width:100%;min-width:190px;font:inherit;border:1px solid #d1d5db;border-radius:8px;padding:9px 10px}.filter-options{flex-direction:column;gap:4px;max-height:250px;display:flex;overflow-y:auto}.filter-option{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;font-size:.9rem;transition:background .2s,color .2s;display:flex}.filter-option:hover{background:#3b82f614}.filter-option.selected{color:#1e40af;background:#3b82f61f}.filter-no-results{color:#6b7280;text-align:center;padding:12px;font-size:.85rem}.filter-option input[type=checkbox]{cursor:pointer;accent-color:#3b82f6;margin:0}.filter-option span{flex:1}.filter-actions{border-top:1px solid #e5e7eb;gap:8px;margin-top:12px;padding-top:10px;display:flex}.filter-actions .btn{border-radius:6px;flex:1;padding:8px 12px;font-size:.85rem}.panel-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.panel-controls{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.page-size-row{align-items:center;gap:12px;display:flex}.actions-cell{white-space:nowrap;min-width:0}.jobs-table td.actions-cell{display:table-cell}.actions-cell .btn+.btn{margin-left:6px}.btn--small{min-height:34px;padding:7px 10px;font-size:.8rem}.btn--icon{border-radius:9px;place-items:center;width:36px;min-width:36px;min-height:36px;padding:0;display:inline-grid}.btn--icon svg{display:block}.assessment-edit-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:17px;height:17px}.tag{border-radius:999px;padding:4px 9px;font-size:.78rem;font-weight:700;display:inline-flex}.tag--recieved{color:#b45309;background:#f59e0b29}.tag--assesment{color:#0e7490;background:#06b6d429}.tag--repair-in-progress{color:#1d4ed8;background:#3b82f629}.tag--repaired{color:#0f766e;background:#14b8a629}.tag--delivered{color:#047857;background:#10b98129}.tag--billed{color:#6d28d9;background:#8b5cf629}.tag--scrap{color:#991b1b;background:#fee2e2}.pagination-row{justify-content:space-between;align-items:center;gap:10px;margin-top:14px;display:flex}.pagination-actions{gap:8px;display:flex}@media (width<=980px){.main-shell{min-width:0}.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.filters-row{grid-template-columns:1fr}.create-job-form{grid-template-columns:repeat(2,minmax(0,1fr))}.create-job-form>button{grid-column:1/-1}.transformer-row{grid-template-columns:repeat(3,minmax(0,1fr))}.transformer-row>button{grid-column:1/-1;justify-self:end}}@media (width<=620px){.create-job-form{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}h1{font-size:1.8rem}.pagination-row{flex-direction:column;align-items:flex-start}}.tabs{flex-wrap:wrap;gap:8px;display:flex}.tabs button{color:#475569;cursor:pointer;background:#f1f5f9;border:1px solid #0000;border-radius:9px;min-height:40px;padding:8px 14px;font-weight:600;transition:background-color .16s,color .16s,box-shadow .16s}.tabs button:hover{background:#e8eef5}.tabs button.active{color:#fff;background:#5149d8;box-shadow:0 2px 6px #5149d838}.panel-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:16px;width:90%;max-width:800px;max-height:90vh;padding:24px;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a}.tnote-count-link{color:#1d4ed8;cursor:pointer;font:inherit;background:#eaf1ff;border:0;border-radius:999px;padding:4px 9px;font-weight:750;transition:background .18s,color .18s,transform .18s}.tnote-count-link:hover{color:#1e40af;background:#dbeafe;transform:translateY(-1px)}.tnote-count-link:focus-visible{outline-offset:2px;outline:3px solid #2563eb40}.tnote-details-overlay{z-index:1100}.assessment-overlay{z-index:1150}.assessment-modal{box-sizing:border-box;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;width:min(960px,94vw);max-width:960px;max-height:92vh;padding:24px;overflow:hidden auto}.assessment-modal *,.assessment-modal :before,.assessment-modal :after{box-sizing:border-box}.assessment-modal>.modal-header{align-items:flex-start;gap:16px}.assessment-modal>.modal-header>div{min-width:0}.assessment-modal .modal-close{flex:0 0 32px}.assessment-reference{background:#eff6ff;border:1px solid #dbeafe;border-radius:14px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:20px;padding:14px;display:grid}.assessment-reference>div{gap:2px;min-width:0;display:grid}.assessment-reference span{color:#64748b;text-transform:uppercase;font-size:.72rem;font-weight:700}.assessment-reference strong{overflow-wrap:anywhere;color:#0f172a;font-size:.9rem}.assessment-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0;display:grid}.assessment-form>*{min-width:0}.assessment-readonly-fieldset{border:0;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0;margin:0;padding:0;display:grid}.assessment-form-intro,.assessment-error,.assessment-actions,.assessment-group{grid-column:1/-1}.assessment-form-intro h3{color:#0f172a;margin:0}.assessment-form-intro p{color:#64748b;margin:4px 0 0;font-size:.86rem}.assessment-field{color:#334155;align-content:start;gap:6px;min-width:0;font-size:.82rem;font-weight:700;display:grid}.assessment-field input,.assessment-field select,.assessment-field textarea{color:#0f172a;width:100%;min-width:0;min-height:42px;font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:9px;padding:9px 11px;font-weight:400}.assessment-field input:focus,.assessment-field select:focus,.assessment-field textarea:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb1f}.assessment-group{background:#f8fafc;border:1px solid #dbe4ee;border-radius:13px;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;min-width:0;margin:0;padding:16px;display:grid}.assessment-group>.assessment-field{min-width:0}.assessment-group legend{color:#1e3a5f;padding:0 7px;font-size:.95rem;font-weight:750}.assessment-group--paired{grid-template-columns:repeat(2,minmax(0,1fr))}.assessment-field--wide{grid-column:1/-1}.assessment-actions{justify-content:flex-end;margin-top:0}.transformer-edit-overlay{z-index:1200}.tnote-details-modal{-webkit-overflow-scrolling:touch;background:#f8fafc;border:1px solid #94a3b83d;width:min(1120px,94vw);max-width:1120px;padding:0;overflow-y:auto}.tnote-details-modal>.modal-header{background:#fff;border-bottom:1px solid #e2e8f0;margin:0;padding:24px 28px}.tnote-details-modal>.modal-header h2{color:#0f172a;font-size:1.45rem}.tnote-details-eyebrow{color:#64748b;letter-spacing:.09em;text-transform:uppercase;margin:0 0 5px;font-size:.72rem;font-weight:750}.tnote-details-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px 28px;display:grid}.tnote-details-summary>div{background:#fff;border:1px solid #e2e8f0;border-radius:12px;gap:7px;min-width:0;padding:14px 16px;display:grid}.tnote-details-summary span{color:#64748b;text-transform:uppercase;font-size:.75rem;font-weight:700}.tnote-details-summary strong{overflow-wrap:anywhere;color:#0f172a;font-size:.95rem}.tnote-details-modal>.status{margin:0 28px 14px}.tnote-transformer-section{padding:0 28px 20px}.tnote-transformer-section>h3{color:#0f172a;margin:2px 0 12px}.tnote-transformer-section-heading{justify-content:space-between;align-items:center;gap:12px;margin:2px 0 12px;display:flex}.tnote-transformer-section-heading h3{color:#0f172a;margin:0}.tnote-transformer-intake-note{color:#64748b;margin:5px 0 0;font-size:.8rem}.tnote-attachment-actions{align-items:center;gap:8px;display:flex}.tnote-intake-panel{background:linear-gradient(140deg,#f8fbff,#fff);border:1px solid #dbeafe;border-radius:14px;margin:0 0 18px;padding:16px}.tnote-intake-modes{gap:8px;margin-bottom:14px;display:flex}.tnote-rgp-lookup>p,.tnote-rgp-results>p,.tnote-rgp-no-match>p,.tnote-rgp-manual-note{color:#475569;margin:0 0 12px;font-size:.86rem}.tnote-rgp-search-form{grid-template-columns:minmax(130px,.7fr) minmax(180px,1fr) auto;align-items:end;gap:12px;display:grid}.tnote-rgp-search-form>label{color:#334155;gap:6px;font-size:.8rem;font-weight:700;display:grid}.tnote-rgp-search-form input,.tnote-rgp-search-form select{color:#0f172a;min-height:40px;font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;font-weight:400}.tnote-rgp-results,.tnote-rgp-no-match{margin-top:16px}.tnote-rgp-result{color:#334155;border-top:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:.84rem;display:flex}.tnote-rgp-status{justify-items:start;gap:5px;margin-top:6px;display:grid}.tag--rgp{color:#6b21a8;background:#f3e8ff}.tnote-rgp-visit-stage{color:#64748b;font-size:.76rem}.tnote-add-transformer-form{background:#fff;border:1px solid #dbeafe;border-radius:14px;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 18px;padding:18px;display:grid}.tnote-add-transformer-form>label{color:#334155;gap:6px;min-width:0;font-size:.8rem;font-weight:700;display:grid}.tnote-add-transformer-form input,.tnote-add-transformer-form select{color:#0f172a;width:100%;min-width:0;min-height:40px;font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;font-weight:400}.tnote-add-transformer-form input:focus,.tnote-add-transformer-form select:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb1f}.tnote-add-transformer-error{grid-column:1/-1;margin:0}.tnote-add-transformer-actions{grid-column:1/-1;justify-content:flex-end;gap:8px;display:flex}.tnote-transformers-table{min-width:900px}.tnote-transformer-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.tnote-status-control{gap:8px;min-width:180px;display:grid}.tnote-current-status{justify-items:start;gap:4px;display:grid}.tnote-current-status>span:first-child{color:#64748b;letter-spacing:.04em;text-transform:uppercase;font-size:.68rem;font-weight:750}.tnote-status-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.tnote-status-button{text-align:left;white-space:normal;align-content:center;justify-items:start;gap:2px;min-height:42px;padding:6px 8px;display:grid}.tnote-status-button>span{color:#64748b;font-size:.68rem;font-weight:700}.tnote-status-button>strong{overflow-wrap:anywhere;color:inherit;font-size:.76rem;line-height:1.2}.tnote-empty-state{color:#64748b;text-align:center;padding:28px!important}.tnote-transformer-detail{background:linear-gradient(135deg,#eff6ff,#fff 70%);border:1px solid #bfdbfe;border-radius:14px;margin:18px 28px 0;padding:18px}.tnote-transformer-detail-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.tnote-transformer-detail-header h3{color:#0f172a;margin:0}.tnote-transformer-detail dl{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;display:grid}.tnote-transformer-detail dl>div{background:#fffc;border-radius:9px;min-width:0;padding:10px 12px}.tnote-transformer-detail dt{color:#64748b;margin-bottom:4px;font-size:.72rem;font-weight:700}.tnote-transformer-detail dd{overflow-wrap:anywhere;color:#0f172a;margin:0;font-weight:650}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h2{margin:0}.modal-close{cursor:pointer;color:#666;background:0 0;border:none;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:24px;display:flex}.modal-close:hover{color:#000}.form-group{margin-bottom:16px}.form-group label{color:var(--text-h);margin-bottom:8px;font-weight:500;display:block}.form-group input:not([type=checkbox]):not([type=radio]):not([type=file]),.form-group select,.form-group textarea{box-sizing:border-box;border:1px solid var(--border);width:100%;min-width:0;color:var(--text-h);background:#fff;border-radius:8px;padding:10px 12px;font-family:inherit;font-size:1rem}.form-group textarea{resize:vertical;min-height:88px}.form-group input:focus-visible,.form-group select:focus-visible,.form-group textarea:focus-visible{outline-offset:2px;outline:2px solid #3b82f6}.transformers-list{border:1px solid var(--border);background:#ffffff80;border-radius:10px;margin-bottom:20px;padding:16px}.transformer-row{grid-template-columns:repeat(6,minmax(0,1fr)) auto;align-items:end;gap:8px;margin-bottom:12px;display:grid}.transformer-row:last-child{margin-bottom:0}.transformer-row input,.transformer-row select{box-sizing:border-box;border:1px solid var(--border);width:100%;min-width:0;min-height:42px;color:var(--text-h);background:#fff;border-radius:6px;padding:8px 10px;font-family:inherit;font-size:.9rem}.transformer-row input:focus-visible,.transformer-row select:focus-visible{outline-offset:2px;outline:2px solid #3b82f6}.transformer-row input::placeholder{color:#999}.modal-actions{flex-direction:column;gap:12px;display:flex}.modal-actions>div{justify-content:flex-end;gap:8px;display:flex}.modal-actions button{min-height:40px}.btn--danger{color:#b42318;background:#fff5f5;border:1px solid #fecaca}.btn--danger:hover{background:#fee2e2;border-color:#fca5a5}@media (width<=640px){.transformer-row{grid-template-columns:1fr}.modal-content{width:95%;padding:16px}.hero__content--compact{flex-direction:column;align-items:flex-start}.tabs{flex-direction:column}.tabs button{width:100%}.panel-header{flex-direction:column;align-items:flex-start;gap:12px}.panel-header button{width:100%}}.enquiry-form{border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff9;border-radius:12px;margin-bottom:24px;padding:24px}.form-section{margin-bottom:20px}.form-section h3{color:var(--text-h);margin:0 0 12px;font-size:1.1rem;font-weight:600}.form-row{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin-bottom:12px;display:grid}.form-input{border:1px solid var(--border);background:#fff;border-radius:8px;padding:12px 14px;font-family:inherit;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.form-input:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f61a}.form-input::placeholder{color:#9ca3af}.form-textarea{resize:vertical;font-family:inherit;line-height:1.4}.form-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:12px;margin-top:20px;padding-top:20px;display:flex}.form-actions button{cursor:pointer;border-radius:8px;padding:10px 24px;font-weight:500;transition:all .2s}.tag--new{color:#1e40af;background:#3b82f629}.tag--pending{color:#92400e;background:#fb923c29}.tag--in_progress{color:#581c87;background:#a855f729}.tag--completed{color:#15803d;background:#22c55e29}.tag--cancelled{color:#374151;background:#6b728029}@media (width<=640px){.enquiry-form{padding:16px}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions button{width:100%}}@media (width<=760px){.app-shell{box-sizing:border-box;width:100%;min-width:0;display:block;overflow-x:clip}.app-shell *,.app-shell :before,.app-shell :after{box-sizing:border-box}#root{min-width:0}.sidebar,.sidebar.collapsed{z-index:900;border-radius:0;gap:10px;width:100%;min-width:0;padding:10px 12px 8px;display:flex;position:sticky;top:0;box-shadow:0 5px 18px #0f172a33}.sidebar-brand{flex:none;gap:8px}.sidebar-title{text-overflow:ellipsis;white-space:nowrap;max-width:132px;font-size:.85rem;overflow:hidden}.sidebar-logo{width:30px;height:30px}.sidebar-toggle{width:32px;height:32px}.sidebar-nav{overscroll-behavior-inline:contain;scrollbar-width:thin;flex-direction:row;flex:auto;gap:7px;min-width:0;padding:1px 0 4px;overflow-x:auto}.sidebar-nav::-webkit-scrollbar{display:none}.nav-item,.sidebar.collapsed .nav-item{white-space:nowrap;border-radius:11px;flex:none;justify-content:center;gap:6px;width:auto;min-height:40px;padding:7px 10px;font-size:.78rem}.nav-icon{width:21px;height:21px}.nav-icon svg{width:18px;height:18px}.sidebar.collapsed .nav-item .nav-label{display:inline}.main-shell{width:100%;min-width:0;padding:14px 12px 24px}.hero{margin-bottom:12px}.hero__content,.hero__content--compact{padding:14px;flex-direction:column!important;align-items:stretch!important;gap:12px!important}.dashboard-brand{width:100%}.dashboard-brand h1{font-size:clamp(1.05rem,4.8vw,1.35rem)}.dashboard-header-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.dashboard-header-actions .btn{width:100%;min-width:0;padding-left:8px;padding-right:8px;font-size:.8rem}.hero__content>div:first-child{min-width:0;gap:10px!important}.hero-logo{flex:0 0 46px;width:46px;height:34px}.hero h1{text-align:left;overflow-wrap:anywhere;min-width:0;font-size:clamp(1rem,4.6vw,1.35rem);line-height:1.2}.hero__content>div:last-child{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:8px!important;display:grid!important}.hero__content>div:last-child .btn{white-space:nowrap;justify-content:center;min-width:0;padding:9px 8px!important;font-size:.78rem!important}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:12px}.card{border-radius:14px;min-width:0;padding:13px}.card p{overflow-wrap:anywhere;font-size:.8rem}.card h3{font-size:1.4rem}.panel{border-radius:15px;min-width:0;padding:15px 12px}.jobs-panel{margin-top:12px}.panel-header{align-items:stretch;gap:10px}.panel-header>div{overflow-wrap:anywhere;min-width:0}.panel-header h2,.panel h2{font-size:1.15rem}.panel-header button{width:100%}.panel-controls,.page-size-row{align-items:stretch;gap:8px;width:100%}.panel-controls>*,.page-size-row>*{min-width:0}.filters-row,.create-job-form{grid-template-columns:minmax(0,1fr);gap:9px}.filter-input,.filter-select,.create-job-form input,.form-input,.form-group input,.form-group select,.form-group textarea,.transformer-row input,.transformer-row select,.quotation-editor-grid input,.quotation-editor-grid select,.quotation-editor-grid textarea,.quotation-service-picker select,.quotation-inline-input,.quotation-output-format select{box-sizing:border-box;width:100%;max-width:100%;min-height:42px;font-size:16px}.form-group textarea{min-height:96px}.app-shell button,.landing-root button,.landing-root .landing-btn{min-height:44px}.jobs-table-wrap{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.jobs-table{min-width:680px;font-size:.82rem}.enquiries-table{min-width:940px}.jobs-table th,.jobs-table td{padding:9px 8px}.actions-cell{min-width:0}.actions-cell .btn{min-height:36px}.enquiries-table td.enquiry-actions-cell{min-width:94px}.btn--icon{width:44px;min-width:44px}.enquiry-row-actions{gap:5px}.enquiry-details-grid{grid-template-columns:minmax(0,1fr);gap:11px;padding:13px}.pagination-row{align-items:stretch}.pagination-actions{width:100%}.pagination-actions .btn{flex:1;min-height:40px}.modal-overlay{align-items:flex-end;padding:0}.modal-content{width:100%;max-width:none;max-height:94dvh;padding:18px 14px calc(18px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}.tnote-details-modal{border-radius:18px 18px 0 0;padding:0}.assessment-modal{width:100%;max-width:none;max-height:94dvh;padding:18px 14px calc(18px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}.assessment-reference{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.assessment-form{grid-template-columns:minmax(0,1fr);gap:13px}.assessment-group{grid-template-columns:minmax(0,1fr);padding:13px}.assessment-group--paired{grid-template-columns:repeat(2,minmax(0,1fr))}.tnote-details-modal>.modal-header{padding:18px 16px}.tnote-details-summary{grid-template-columns:1fr;padding:14px 16px}.tnote-transformer-section{padding:0 16px 20px}.tnote-transformer-section-heading{align-items:flex-start}.tnote-add-transformer-form{grid-template-columns:minmax(0,1fr);padding:14px}.tnote-rgp-search-form{grid-template-columns:minmax(0,1fr)}.tnote-rgp-result{flex-direction:column;align-items:flex-start}.tnote-add-transformer-error,.tnote-add-transformer-actions{grid-column:1}.tnote-add-transformer-actions{flex-direction:column}.tnote-transformer-detail{margin:16px 16px 0;padding:14px}.tnote-transformer-detail dl{grid-template-columns:repeat(2,minmax(0,1fr))}.tnote-details-modal>.status{margin:0 16px 14px}.modal-header{gap:10px}.transformers-list{padding:11px}.transformer-row{grid-template-columns:minmax(0,1fr);gap:8px}.modal-actions>div{flex-direction:column}.modal-actions button{width:100%;min-height:42px}.form-actions{flex-direction:column}.form-actions button{width:100%;min-height:42px}.quotation-modal-overlay{align-items:flex-end;padding:0}.quotation-modal-content{width:100%;max-width:100%;max-height:96dvh;padding:18px 14px calc(22px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}.quotation-modal-content .modal-header{margin:-18px -14px 14px;padding:15px 14px 12px;top:-18px}.quotation-editor-section{padding:14px}.quotation-editor-grid,.quotation-customer-details,.quotation-preview-panels{grid-template-columns:minmax(0,1fr)}.quotation-editor-grid label:has(textarea){grid-column:auto}.quotation-lines-wrap .jobs-table{min-width:700px}}@media (width<=420px){.sidebar,.sidebar.collapsed{padding:8px 10px 6px;display:block}.sidebar-brand{margin-bottom:7px}.sidebar-nav{width:100%}.sidebar-title{max-width:none}.main-shell{padding-left:9px;padding-right:9px}.kpis{gap:7px}.card{padding:11px}.quotation-modal-content{padding-left:11px;padding-right:11px}.quotation-modal-content .modal-header{margin-left:-11px;margin-right:-11px;padding-left:11px;padding-right:11px}}.auth-loading{color:#1f2937;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:100vh;font-weight:600;display:flex}.page-loading-spinner{border:4px solid #dbe5ef;border-top-color:#1769aa;border-radius:50%;width:42px;height:42px;animation:.8s linear infinite page-loading-spin}@keyframes page-loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.page-loading-spinner{animation-duration:1.8s}}.app-shell{background:var(--bg)}.sidebar{background:linear-gradient(#183b40 0%,#102c32 100%)}.sidebar-toggle{border-radius:8px}.nav-item{border-radius:8px;transition:background-color .18s,color .18s,transform .18s}.nav-item:hover{background:#ffffff1a}.nav-item.active{box-shadow:inset 3px 0 var(--accent-warm);background:#5cbeae2b}.main-shell{padding:26px 30px}.hero__content,.hero__panel,.card,.panel{border-color:var(--border);border-radius:8px;box-shadow:0 3px 12px #142d350b}.hero__content{background:linear-gradient(120deg,#fff 0%,#f3f8f6 100%)}.btn{border-radius:8px;transition:background-color .16s,border-color .16s,box-shadow .16s,transform .16s}.btn--primary,.tabs button.active{background:var(--accent);box-shadow:0 2px 5px #147d7329}.btn--primary:hover:not(:disabled),.tabs button.active:hover{background:var(--accent-strong);box-shadow:0 4px 10px #147d7333}.btn--secondary{color:#29434a;background:#edf4f2;border-color:#d3e2de}.btn--secondary:hover:not(:disabled){background:#e1eeea;border-color:#bfd6d0}.btn--ghost:hover:not(:disabled){color:var(--accent-strong);background:var(--accent-soft);border-color:#c9e2dc}.btn--icon,.tabs button,.jobs-table-wrap{border-radius:8px}.jobs-table th{background:var(--surface-alt);color:#40585e}.jobs-table tbody tr:hover>td{background:#f6faf8}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0e23287a}.modal-content{border:1px solid #d9e5e2e6;border-radius:12px;box-shadow:0 24px 64px #0a202538}.main-shell input:not([type=checkbox]):not([type=radio]):not([type=file]),.main-shell select,.main-shell textarea{border-color:var(--border);background-color:#fff;border-radius:8px;transition:border-color .16s,box-shadow .16s}.main-shell input:not([type=checkbox]):not([type=radio]):not([type=file]):focus,.main-shell select:focus,.main-shell textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #147d7321}.attachment-viewer-list li{border-color:var(--border);background:#f7faf9}.attachment-viewer-details{gap:2px;min-width:0;display:grid}.attachment-viewer-details small{color:#64777a;font-size:.78rem}.attachment-viewer-actions{flex:none;align-items:center;gap:8px;display:flex}.attachment-viewer-actions a{color:inherit;text-decoration:none}.attachment-viewer-error{margin-bottom:12px}.attachment-viewer-empty{color:var(--text);margin:16px 0 0}@media (width<=760px){.main-shell{padding:18px 16px}}.global-loading-overlay{z-index:20000;overscroll-behavior:none;touch-action:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a61;place-items:center;width:100%;height:100%;min-height:100dvh;display:grid;position:fixed;inset:0;overflow:hidden}.global-loading-overlay__content{color:#fff;font:600 .95rem/1.4 var(--sans,sans-serif);text-align:center;text-shadow:0 1px 3px #0f172a73;flex-direction:column;align-items:center;gap:14px;padding:20px;display:flex}.global-loading-overlay__content:focus{outline:none}.global-loading-overlay__spinner{border:4px solid #ffffff94;border-top-color:var(--accent,#5b66ff);border-radius:50%;width:46px;height:46px;animation:.8s linear infinite global-loading-spin}@keyframes global-loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.global-loading-overlay__spinner{animation-duration:1.8s}}
