:root{--blue:#1769e8;--blue-dark:#0f56c7;--ink:#172033;--muted:#667085;--line:#dde2ea;--bg:#f7f8fa;--white:#fff;--success:#159a68}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}a{text-decoration:none}button,.new{background:var(--blue);color:#fff;border:1px solid var(--blue);border-radius:7px;padding:11px 17px;min-height:44px;font-weight:650;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}button:hover,.new:hover{background:var(--blue-dark)}.setup{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:36px;width:min(440px,100%);box-shadow:0 10px 35px #17203310}.logo{width:42px;height:42px;display:grid;place-items:center;background:var(--blue);color:#fff;border-radius:8px;font-size:24px;font-weight:800}.auth-card h1{margin:24px 0 8px;font-size:28px}.auth-card p{color:var(--muted)}.auth-card form{display:grid;gap:12px;margin-top:26px}.auth-card label,.quote-form label{font-size:12px;font-weight:650}.auth-card input,.quote-form input{width:100%;height:46px;padding:0 13px;border:1px solid var(--line);border-radius:7px;margin-top:7px;background:#fff;color:var(--ink);outline:0}.auth-card input:focus,.quote-form input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1769e812}.error,.success{padding:12px;border:1px solid;border-radius:7px;margin:14px 0}.error{background:#fff7f5;color:#b43b2d;border-color:#ffd6cf}.success{background:#f0fbf6;color:#087451;border-color:#c9efdd}.app{display:flex;min-height:100vh}aside:not(.app-sidebar){position:fixed;width:230px;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:25px 16px;display:flex;flex-direction:column}.brand:not(.sidebar-brand){font-size:20px;font-weight:800;color:var(--ink);padding:0 8px}.brand:not(.sidebar-brand) b{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--blue);color:#fff;margin-right:9px}.brand:not(.sidebar-brand) span{color:var(--blue)}nav:not(.sidebar-nav):not(.mobile-nav){display:grid;gap:4px;margin-top:35px}nav:not(.sidebar-nav):not(.mobile-nav) a{color:#586474;padding:11px 12px;border:1px solid transparent;border-radius:7px;font-weight:600}nav:not(.sidebar-nav):not(.mobile-nav) a.active,nav:not(.sidebar-nav):not(.mobile-nav) a:hover{color:var(--blue);background:#f4f7ff;border-color:#dce7fc}.account:not(.sidebar-footer){margin-top:auto;border-top:1px solid var(--line);padding:18px 10px 0;display:grid;color:var(--ink);font-size:13px}.account:not(.sidebar-footer) small{color:var(--muted);margin:4px 0 13px}.account:not(.sidebar-footer) a{color:var(--blue);font-size:11px}.content{margin-left:230px;width:calc(100% - 230px)}header{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:flex-end;align-items:center;gap:18px;padding:0 34px}.lang-switch{display:flex;border:1px solid var(--line);border-radius:7px;padding:3px;background:#fafbfc}.lang-switch a{padding:6px 9px;color:var(--muted);font-size:11px;font-weight:700;border-radius:5px}.lang-switch a.on{background:#fff;color:var(--blue);box-shadow:0 1px 3px #17203318}.content main{padding:12px 40px;max-width:1240px;margin:auto}.heading{margin-bottom:28px}.heading p{font-size:10px;color:var(--blue);letter-spacing:1.2px;font-weight:800;margin:0 0 9px}.heading h1{font-size:28px;margin:0 0 8px;letter-spacing:-.5px}.heading>span,.heading div>span{color:var(--muted);font-size:13px}.dashboard-heading{display:flex;justify-content:space-between;align-items:flex-end}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stats article,.card{background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:none}.stats article{padding:21px;display:grid;gap:8px}.stats span{color:#7a8492;font-size:10px;font-weight:750;letter-spacing:.5px}.stats small{color:var(--muted);font-size:11px}.stats b{font-size:25px}.table{margin-top:18px}.table-title{display:flex;align-items:center;justify-content:space-between;padding:20px 22px}.table-title h2{font-size:16px;margin:0}.table-title a{color:var(--blue);font-size:12px;font-weight:700}.row{display:grid;grid-template-columns:42px 1fr 130px 100px;align-items:center;border-top:1px solid var(--line);padding:14px 21px}.avatar{width:34px;height:34px;border-radius:8px;background:#eef4ff;color:var(--blue);display:grid;place-items:center;font-size:11px;font-weight:800}.row div{display:grid;gap:4px}.row div b{font-size:12px}.row small{font-size:10px;color:var(--muted)}.status{font-style:normal;font-size:10px;background:#edf9f3;color:#087451;border:1px solid #d2efdf;padding:6px 8px;border-radius:12px;text-align:center}.empty{padding:55px;text-align:center;color:var(--muted)}.quote-form{padding:28px;max-width:880px}.quote-form h2{margin:0 0 24px;font-size:18px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.deposit{background:#f5f8ff;border:1px solid #dae6fc;padding:14px;border-radius:7px;font-size:12px;margin:24px 0;color:#42526a}.quote-form>button{width:100%}.settings-card{padding:28px;max-width:760px}.settings-card p{color:var(--muted)}.language-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}.language-options a{border:1px solid var(--line);border-radius:8px;padding:18px;color:var(--ink);display:grid;gap:5px}.language-options a.selected{border-color:var(--blue);background:#f5f8ff}.language-options small{color:var(--muted)}
@media(max-width:700px){aside:not(.app-sidebar){position:static;width:100%;height:61px;padding:12px 15px;flex-direction:row;align-items:center;border-right:0;border-bottom:1px solid var(--line)}.app{display:block}.brand:not(.sidebar-brand){flex:1;padding:0}.brand:not(.sidebar-brand) b{width:34px;height:34px}aside:not(.app-sidebar) nav,.account:not(.sidebar-footer){display:none}.content{margin:0;width:100%}header{height:56px;padding:0 15px}.content main{padding:12px 15px 85px}.dashboard-heading{align-items:flex-start}.dashboard-heading>.new{display:none}.heading h1{font-size:23px}.stats{grid-template-columns:1fr;gap:10px}.fields{grid-template-columns:1fr}.row{grid-template-columns:38px 1fr auto;padding:13px}.row>strong{display:none}.language-options{grid-template-columns:1fr}.quote-form{padding:20px 16px}.new{min-height:40px;padding:9px 13px}}

/* Sidebar identity and navigation are part of the first, blocking stylesheet. */
.app>aside.app-sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:230px;min-height:100vh;background:#fff;border-right:1px solid var(--line);padding:25px 16px;display:flex;flex-direction:column;align-items:stretch;gap:0}
.app>aside .sidebar-brand{position:relative;display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:12px;width:100%;margin:0 0 18px;padding:14px 12px 12px!important;overflow:hidden;border:1px solid #cfddf2;border-top:3px solid var(--company-color,#1769e8);border-radius:17px;background:linear-gradient(145deg,#fff 0%,#f4f8ff 62%,#edf5ff 100%);box-shadow:0 12px 28px rgba(15,49,96,.1);isolation:isolate}
.app>aside .sidebar-brand::before{position:absolute;z-index:-1;top:-55px;right:-45px;width:120px;height:120px;border-radius:50%;background:color-mix(in srgb,var(--company-color,#1769e8) 13%,transparent);content:""}
.app>aside .brand-logo-premium{display:grid;width:52px;height:52px;place-items:center;overflow:hidden;border:1px solid #e5edf8;border-radius:14px;background:#fff;box-shadow:0 7px 18px rgba(13,78,189,.16)}
.app>aside .brand-logo-premium img{display:block;width:100%;height:100%;object-fit:contain}
.app>aside .brand-logo-premium b{display:grid!important;width:100%;height:100%;place-items:center;margin:0!important;border-radius:0!important;background:linear-gradient(145deg,var(--company-color,#1769e8),#0b4fbb)!important;color:#fff;font-size:24px!important;font-weight:850}
.app>aside .brand-copy-premium{display:flex;min-width:0;max-width:100%;flex-direction:column;justify-content:center;overflow:hidden}
.app>aside .brand-copy-premium strong{display:block;max-width:100%;overflow:hidden;color:#10213c;font-size:14px;font-weight:850;line-height:1.2;text-overflow:ellipsis}
.app>aside .brand-copy-premium strong em{color:#1769e8;font-style:normal}
.app>aside .brand-slogan{grid-column:1/3;margin:2px 0 0;padding-top:10px;border-top:1px solid #dbe6f4;color:#1769e8;font-size:9px;font-weight:800;letter-spacing:.35px}
.app>aside nav.sidebar-nav{display:grid;width:100%;min-height:0;flex:1;align-content:start;gap:5px;margin:18px 0 0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.app>aside nav.sidebar-nav>a{--menu-color:#64748b;position:relative;z-index:0;display:flex;min-height:46px;align-items:center;gap:10px;padding:8px 10px;border:1px solid transparent;border-radius:10px;color:#4b5a70;font-size:13px;font-weight:680;line-height:1.25;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease}
.app>aside nav.sidebar-nav>a[data-menu="overview"],.app>aside nav.sidebar-nav>a[data-menu="reports"],.app>aside .mobile-nav>a[data-menu="reports"]{--menu-color:#2563eb}
.app>aside nav.sidebar-nav>a[data-menu="customers"],.app>.mobile-nav>a[data-menu="customers"]{--menu-color:#c026d3}
.app>aside nav.sidebar-nav>a[data-menu="activity"]{--menu-color:#0891b2}
.app>aside nav.sidebar-nav>a[data-menu="catalog"]{--menu-color:#ea580c}
.app>aside nav.sidebar-nav>a[data-menu="estimates"],.app>.mobile-nav>a[data-menu="estimates"]{--menu-color:#1d4ed8}
.app>aside nav.sidebar-nav>a[data-menu="schedule"],.app>.mobile-nav>a[data-menu="schedule"]{--menu-color:#7c3aed}
.app>aside nav.sidebar-nav>a[data-menu="task-status"],.app>.mobile-nav>a[data-menu="task-status"]{--menu-color:#0f766e}.app>.mobile-nav>a[data-menu="more"]{--menu-color:#e11d48}
.app>aside nav.sidebar-nav>a[data-menu="settings"]{--menu-color:#475569}
.app>aside nav.sidebar-nav>a>svg,.app>aside nav.sidebar-nav>a>i{display:grid;width:30px;height:30px;flex:none;place-items:center;padding:6px;border:1px solid color-mix(in srgb,var(--menu-color) 18%,white);border-radius:9px;background:linear-gradient(145deg,color-mix(in srgb,var(--menu-color) 12%,white),color-mix(in srgb,var(--menu-color) 6%,white));color:var(--menu-color);stroke-width:2;transition:background .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease}
.app>aside nav.sidebar-nav>a.active{border-color:color-mix(in srgb,var(--menu-color) 20%,white);background:color-mix(in srgb,var(--menu-color) 5%,white);color:var(--menu-color)}
.app>aside nav.sidebar-nav>a.active>svg,.app>aside nav.sidebar-nav>a.active>i{border-color:color-mix(in srgb,var(--menu-color) 25%,white);background:color-mix(in srgb,var(--menu-color) 15%,white);color:var(--menu-color);box-shadow:0 2px 6px color-mix(in srgb,var(--menu-color) 11%,transparent)}

.app>aside .sidebar-footer{display:block;flex:none;margin-top:12px;padding:12px 0 0;border-top:1px solid #dce3ed}
.app>aside .sidebar-footer>a{display:flex;min-height:42px;align-items:center;gap:10px;padding:8px 11px;border:1px solid transparent;border-radius:10px;color:#c62828;font-size:12px;font-weight:700;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}
.app>aside .sidebar-footer>a>svg{width:21px;height:21px;color:#c62828;stroke-width:1.9}
.app>aside .sidebar-footer>a:hover,.app>aside .sidebar-footer>a:focus-visible{border-color:#fecaca;background:#fff1f2;color:#b91c1c}
.app>aside .sidebar-footer>a:hover>svg,.app>aside .sidebar-footer>a:focus-visible>svg{color:#b91c1c}
.app>.mobile-nav>a[data-menu="reports"]{--menu-color:#2563eb}
.app>.mobile-nav>a[data-menu="customers"]{--menu-color:#c026d3}
.app>.mobile-nav>a[data-menu="estimates"]{--menu-color:#2563eb}
.app>.mobile-nav>a[data-menu="schedule"]{--menu-color:#7c3aed}
.app>.mobile-nav>a[data-menu="task-status"]{--menu-color:#0f766e}.app>.mobile-nav>a[data-menu="more"]{--menu-color:#e11d48}
.app>.mobile-nav>a[data-menu]>svg{color:var(--menu-color,#64748b)}
@media(hover:hover) and (pointer:fine){.app>aside nav.sidebar-nav>a:hover,.app>aside nav.sidebar-nav>a:focus-visible{z-index:2;transform:scale(1.025);border-color:#d9e8ff;background:#f3f8ff;box-shadow:0 5px 16px rgba(59,130,246,.16);color:#1d4ed8}.app>aside nav.sidebar-nav>a:hover>svg,.app>aside nav.sidebar-nav>a:hover>i{transform:scale(1.06);box-shadow:0 3px 9px rgba(59,130,246,.18)}.app>aside .sidebar-footer>a:hover{transform:scale(1.02)}}
@media(max-width:700px){.app>aside.app-sidebar{position:sticky;inset:auto;top:0;z-index:28;width:100%;height:60px;min-height:60px;justify-content:center;padding:8px 14px;background:rgba(255,255,255,.97);box-shadow:0 4px 16px rgba(15,23,42,.06);backdrop-filter:blur(14px)}.app>aside .sidebar-brand{display:flex;min-width:0;flex:1;gap:10px;margin:0;padding:0!important;overflow:visible;border:0;background:transparent;box-shadow:none}.app>aside .brand-logo-premium{width:40px;height:40px;flex:none;border-radius:11px}.app>aside .brand-copy-premium{min-width:0;flex:1}.app>aside .brand-copy-premium strong{font-size:14px;white-space:nowrap;text-overflow:ellipsis}.app>aside .brand-slogan{display:none}.app>aside .sidebar-brand::before{display:none}.app>aside nav.sidebar-nav,.app>aside .sidebar-footer{display:none!important}}
@media(prefers-reduced-motion:reduce){.app>aside nav.sidebar-nav>a,.app>aside nav.sidebar-nav>a>svg,.app>aside nav.sidebar-nav>a>i,.app>aside .sidebar-footer>a{transition:none}}
.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(360px,.9fr) minmax(520px,1.1fr);background:#fff}.login-brand{background:linear-gradient(145deg,#0f3fa4,#1769e8 68%,#4d8ef2);color:#fff;display:grid;place-items:center;padding:60px}.login-brand-inner{max-width:470px}.brand.light{color:#fff;font-size:23px;padding:0}.brand.light b{background:#fff;color:var(--blue)}.brand.light span{color:#bcd5ff}.login-brand p{font-size:10px;letter-spacing:2px;font-weight:800;color:#bcd5ff;margin:75px 0 15px}.login-brand h2{font-size:38px;line-height:1.12;letter-spacing:-1.2px;margin:0 0 34px}.login-brand ul{list-style:none;padding:0;margin:0;display:grid;gap:16px}.login-brand li{font-size:14px;color:#e8f0ff}.login-brand li i{display:inline-grid;place-items:center;width:23px;height:23px;background:#ffffff20;border:1px solid #ffffff45;border-radius:50%;font-style:normal;margin-right:9px}.login-brand-inner>small{display:block;margin-top:90px;color:#bcd5ff}.login-panel{display:grid;place-items:center;padding:40px}.auth-card.clean{border:0;box-shadow:none;width:min(460px,100%);padding:20px}.mobile-brand{display:none}.eyebrow{font-size:10px;letter-spacing:1.5px;color:var(--blue);font-weight:800}.auth-card.clean h1{font-size:31px;letter-spacing:-.7px;margin:12px 0 8px}.auth-card.clean>p{line-height:1.5;margin-bottom:28px}.auth-card.clean label>span{display:flex;justify-content:space-between}.auth-card.clean label a{color:var(--blue);font-size:11px}.auth-card.clean button{margin-top:8px}.setup-note{display:grid;gap:5px;background:#f5f8ff;border:1px solid #dce7fc;border-radius:7px;padding:13px;margin-top:22px;font-size:11px}.setup-note span{color:var(--muted);line-height:1.45}
@media(max-width:800px){.login-page{display:block}.login-brand{display:none}.login-panel{min-height:100vh;padding:24px}.mobile-brand{display:flex;align-items:center;gap:10px;margin-bottom:48px;font-size:19px}.mobile-brand .logo{width:36px;height:36px;font-size:20px}.auth-card.clean{padding:0}.auth-card.clean h1{font-size:27px}}
.module-head{display:flex;justify-content:space-between;align-items:flex-end}.drawer-form{display:none;padding:25px;margin-bottom:18px}.drawer-form.open{display:block}.drawer-form h2{margin:0 0 22px}.drawer-form select,.drawer-form textarea{width:100%;border:1px solid var(--line);border-radius:7px;background:#fff;padding:12px;margin-top:7px}.drawer-form textarea{min-height:85px;resize:vertical}.drawer-form>.check{display:flex;align-items:center;gap:8px;padding-top:24px}.drawer-form>.check input{width:18px;height:18px;margin:0}.drawer-form>button{margin-top:20px;min-width:170px}.data-list{overflow:hidden}.data-list article{display:grid;grid-template-columns:44px 1fr auto;align-items:center;padding:15px 20px;border-bottom:1px solid var(--line)}.data-list article:last-child{border:0}.data-list article>div{display:grid;gap:4px}.data-list article small{color:var(--muted)}.data-list article em{font-style:normal;font-size:10px;border:1px solid var(--line);border-radius:12px;padding:5px 9px}.service-icon{width:34px;height:34px;display:grid;place-items:center;background:#eef4ff;color:var(--blue);border-radius:7px}.data-list article>strong{font-size:13px}
@media(max-width:700px){.module-head{align-items:flex-start;gap:10px}.module-head .heading{flex:1}.module-head>button{font-size:0;width:44px;padding:0}.module-head>button:first-letter{font-size:22px}.drawer-form{padding:18px 15px}.data-list article{padding:13px}.login-brand-inner>small{margin-top:40px}}
.drawer-form input,.edit-estimate input{width:100%;height:46px;padding:0 13px;border:1px solid var(--line);border-radius:7px;margin-top:7px;background:#fff;outline:0}.drawer-form input:focus,.edit-estimate input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1769e812}.toolbar{display:flex;gap:10px;margin:0 0 15px}.toolbar input,.toolbar select,.action-panel select{height:42px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0 12px}.toolbar input{flex:1}.estimate-list{overflow:hidden}.estimate-record{display:grid;grid-template-columns:minmax(230px,1fr) 130px 100px 90px;align-items:center;padding:15px 20px;border-bottom:1px solid var(--line)}.estimate-record:last-child{border:0}.estimate-record>div:first-child{display:flex;align-items:center;gap:11px}.estimate-record>div:first-child>div{display:grid;gap:4px}.estimate-record small{color:var(--muted)}.outline{background:#fff!important;color:var(--blue)!important;border:1px solid var(--line)!important;border-radius:7px;padding:9px 12px;text-align:center;font-weight:700}.detail-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.detail-head>a{color:var(--blue);font-weight:650}.detail-head>div{display:flex;gap:10px;align-items:center}.detail-grid{display:grid;grid-template-columns:minmax(500px,1fr) 270px;gap:18px}.edit-estimate{padding:27px}.edit-estimate h1{margin:0 0 25px;font-size:23px}.estimate-total{display:grid;grid-template-columns:1fr auto;gap:4px;border-top:1px solid var(--line);margin:25px 0;padding-top:18px}.estimate-total b{font-size:24px}.estimate-total small{grid-column:1/3;text-align:right;color:var(--muted)}.edit-estimate>button{width:100%}.action-panel{position:static!important;inset:auto!important;width:auto!important;background:#fff!important;color:var(--ink)!important;padding:22px!important;display:block!important;height:max-content!important}.action-panel h3{margin:0 0 20px}.action-panel form{display:grid;gap:10px;margin-top:12px}.action-panel label{display:grid;gap:7px;font-size:12px;font-weight:700}.action-panel button{width:100%}.danger{background:#fff!important;color:#cf3d3d!important;border:1px solid #efbcbc!important}.danger:hover{background:#fff5f5!important}
@media(max-width:700px){.toolbar{display:grid}.estimate-record{grid-template-columns:1fr auto;gap:10px}.estimate-record>strong{display:none}.estimate-record>.status{grid-column:2}.estimate-record>.outline{grid-column:1/3}.detail-grid{grid-template-columns:1fr}.edit-estimate{padding:18px 15px}}
.dashboard-heading>.new{display:none!important}body .mobile-nav{display:none!important}nav:not(.sidebar-nav):not(.mobile-nav) a{display:flex;align-items:center;gap:10px}nav:not(.sidebar-nav):not(.mobile-nav) a svg,header .new svg{width:17px;height:17px;stroke-width:1.8;flex:none}header .new{gap:7px}
@media(max-width:700px){body .mobile-nav{position:fixed;z-index:35;display:flex!important;gap:2px;left:0;right:0;bottom:0;height:calc(76px + env(safe-area-inset-bottom));padding:5px 6px env(safe-area-inset-bottom);border-top:1px solid #e4eaf2;background:rgba(255,255,255,.98);box-shadow:0 -8px 24px rgba(15,23,42,.09);backdrop-filter:blur(14px);align-items:center;justify-content:space-between}.mobile-nav>a{position:relative;display:grid;grid-template-rows:24px auto;align-content:center;justify-items:center;gap:4px;flex:1 1 0;width:auto;min-width:0;height:62px;padding:5px 1px;border:0;border-radius:11px;background:transparent;color:var(--menu-color,#64748b);overflow:visible}.mobile-nav>a>svg{width:22px;height:22px;color:inherit;stroke-width:2}.mobile-nav>a>span{display:block;max-width:100%;color:inherit;text-align:center;white-space:normal;overflow-wrap:normal;word-break:normal;font-size:8px;font-weight:700;line-height:1.08}.mobile-nav>a.active{background:color-mix(in srgb,var(--menu-color,#1769e8) 9%,white);color:var(--menu-color,#1769e8)}.mobile-nav .mobile-create{display:grid;grid-template-rows:1fr;align-self:center;justify-self:center;flex:0 0 44px;width:44px;height:44px;min-width:0;min-height:44px;padding:0;border:4px solid #fff;border-radius:50%;background:var(--blue);color:#fff;box-shadow:0 5px 14px rgba(23,105,232,.3);transform:translateY(-9px)}.mobile-nav .mobile-create>svg{width:23px;height:23px;color:#fff}.content main{padding-bottom:calc(102px + env(safe-area-inset-bottom))}}
.nav-label{font-size:8px;letter-spacing:1.4px;color:#98a2b3;font-weight:800;padding:14px 12px 4px}.owner-badge{display:flex;align-items:center;gap:7px;margin-right:auto;color:var(--blue);font-size:11px;font-weight:750;background:#f4f7ff;border:1px solid #dce7fc;padding:7px 10px;border-radius:7px}.owner-badge svg{width:15px}.owner-title{display:flex;justify-content:space-between;align-items:flex-start}.live-indicator{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--success);font-weight:700;background:#effaf5;border:1px solid #d3efe1;border-radius:14px;padding:7px 10px}.live-indicator i{width:7px;height:7px;background:var(--success);border-radius:50%;box-shadow:0 0 0 4px #159a6818}.owner-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.owner-stats article{display:flex;gap:13px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:18px}.owner-stats article>span{width:38px;height:38px;border-radius:8px;background:#f0f5ff;color:var(--blue);display:grid;place-items:center}.owner-stats svg{width:19px}.owner-stats article>div{display:grid;gap:3px}.owner-stats small{font-size:9px;letter-spacing:.7px;color:var(--muted);font-weight:800}.owner-stats b{font-size:22px}.owner-stats em{font-style:normal;color:var(--muted);font-size:9px}.owner-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:16px}.plan-card,.usage-card{padding:20px}.section-title{display:flex;justify-content:space-between;align-items:center}.section-title h2{font-size:15px;margin:0 0 4px}.section-title p{font-size:10px;color:var(--muted);margin:0}.section-title>svg{width:19px;color:var(--blue)}.plan-row{display:grid;grid-template-columns:10px 1fr auto auto;gap:9px;align-items:center;padding:13px 0;border-top:1px solid var(--line);margin-top:12px}.plan-mark{width:8px;height:8px;border-radius:50%;background:var(--blue)}.plan-row div{display:grid;gap:3px}.plan-row small,.plan-row em{font-size:9px;color:var(--muted);font-style:normal}.usage-numbers{display:grid;grid-template-columns:repeat(3,1fr);margin-top:25px}.usage-numbers div{display:grid;gap:5px;text-align:center;border-right:1px solid var(--line)}.usage-numbers div:last-child{border:0}.usage-numbers b{font-size:26px}.usage-numbers span{font-size:9px;color:var(--muted)}.accounts-table{margin-top:16px;overflow:hidden}.accounts-table>.section-title{padding:20px}.table-search{position:relative}.table-search svg{position:absolute;width:15px;left:11px;top:10px;color:#98a2b3}.table-search input{height:36px;border:1px solid var(--line);border-radius:7px;padding:0 12px 0 33px;min-width:250px}.account-head,.account-row{display:grid;grid-template-columns:1.5fr 1.3fr .75fr .7fr .55fr;gap:12px;align-items:center}.account-head{background:#fafbfc;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 20px;font-size:8px;color:#7c8798;font-weight:800;letter-spacing:.6px}.account-row{padding:13px 20px;border-bottom:1px solid var(--line)}.account-row:last-child{border:0}.account-row>div:first-child{display:flex;align-items:center;gap:10px}.account-row>div>div,.account-row>div:not(:first-child){display:grid;gap:4px}.account-row b{font-size:11px}.account-row small{font-size:9px;color:var(--muted)}.company-avatar{width:32px;height:32px;border-radius:8px;background:#edf3ff;color:var(--blue);display:grid;place-items:center;font-weight:800}.plan-pill,.sub-status{justify-self:start;font-size:9px;font-weight:750;border-radius:12px;padding:5px 8px}.plan-pill{background:#edf3ff;color:var(--blue)}.sub-status{background:#fff5df;color:#9b6a05}.sub-status.active{background:#eaf8f1;color:#087451}.sub-status.cancelled,.sub-status.past_due{background:#fff0ed;color:#b43b2d}
@media(max-width:1000px){.owner-stats{grid-template-columns:repeat(2,1fr)}.owner-grid{grid-template-columns:1fr}.account-head{display:none}.account-row{grid-template-columns:1fr auto auto}.account-row>div:nth-child(2){grid-column:1}.account-row>div:nth-child(4){display:none}}
@media(max-width:700px){.owner-title{display:block}.live-indicator{display:none}.owner-stats{grid-template-columns:1fr 1fr;gap:9px}.owner-stats article{padding:13px;gap:9px}.owner-stats article>span{width:32px;height:32px}.owner-stats b{font-size:18px}.usage-numbers b{font-size:20px}.accounts-table>.section-title{display:grid;gap:14px}.table-search input{min-width:0;width:100%}.account-row{grid-template-columns:1fr auto}.account-row>div:nth-child(2),.account-row>div:nth-child(4){display:none}.account-row>div:nth-child(3){justify-self:end}.account-row>.sub-status{grid-column:2}}
/* Axon Services v10 */
.brand:not(.sidebar-brand){font-size:0!important}.brand:not(.sidebar-brand) b{font-size:0!important}.brand:not(.sidebar-brand) b:after{content:'A';font-size:20px}.brand:not(.sidebar-brand):after{content:'Axon Services';font-size:19px;color:var(--ink);font-weight:800}.brand.light:not(.sidebar-brand):after{color:#fff}.content>header{display:none!important}.content main{padding-top:12px}.module-head button svg{width:17px;margin-right:7px}.service-icon svg{width:18px}.pdf-button{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--blue);color:#fff;border-radius:7px;min-height:44px;font-weight:700;margin-bottom:18px}.pdf-button svg{width:17px}.drawer-form select,.settings-form select,.agenda-list select,.report-head select{width:100%;height:46px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0 12px}.calendar-card{padding:20px;margin-top:16px}.calendar-toolbar{display:flex;justify-content:center;align-items:center;gap:25px;margin-bottom:18px}.calendar-toolbar h2{font-size:18px;margin:0;min-width:170px;text-align:center}.calendar-toolbar a{width:36px;height:36px;border:1px solid var(--line);border-radius:7px;display:grid;place-items:center;color:var(--ink);font-size:22px}.weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays span{text-align:center;font-size:9px;color:var(--muted);font-weight:800;padding:8px}.day{min-height:100px;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:8px;overflow:hidden}.day:nth-child(7n){border-right:0}.day>b{font-size:11px}.day.today>b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--blue);color:#fff}.event{display:block;margin-top:6px;background:#edf3ff;color:var(--blue);border-left:3px solid var(--blue);padding:4px 5px;border-radius:4px;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event.completed{background:#eaf8f1;color:#087451;border-color:#159a68}.event.cancelled{background:#fff0ed;color:#b43b2d;border-color:#d64545}.agenda-list{margin-top:16px;padding:20px}.agenda-list>.section-title{margin-bottom:10px}.agenda-list article{display:grid;grid-template-columns:45px 1fr 145px;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.date-box{width:42px;height:45px;border:1px solid var(--line);border-radius:7px;display:grid;place-items:center;padding:3px}.date-box b{font-size:16px}.date-box span{font-size:8px;color:var(--muted);text-transform:uppercase}.agenda-list article>div:nth-child(2){display:grid;gap:4px}.agenda-list small{color:var(--muted);font-size:10px}.report-head{display:flex;justify-content:space-between;align-items:flex-start}.report-head form{width:150px}.report-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.report-stats article{background:#fff;border:1px solid var(--line);border-radius:9px;padding:19px;display:grid;gap:7px}.report-stats small{font-size:9px;color:var(--muted);font-weight:800;letter-spacing:.5px}.report-stats b{font-size:23px}.report-stats span{font-size:9px;color:var(--muted)}.report-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:15px;margin-top:16px}.report-grid>section{padding:20px}.bar-list{margin-top:20px;display:grid;gap:15px}.bar-list p{display:flex;justify-content:space-between;margin:0 0 6px;font-size:10px}.bar-list i{display:block;height:7px;background:#eef1f5;border-radius:5px;overflow:hidden}.bar-list em{display:block;height:100%;background:var(--blue);border-radius:5px}.operations-list{margin-top:15px}.operations-list>div{display:flex;justify-content:space-between;padding:14px 0;border-top:1px solid var(--line)}.operations-list span{display:flex;gap:9px;align-items:center;color:var(--muted);font-size:11px}.operations-list svg{width:17px}.settings-form{display:grid;gap:15px;max-width:960px}.logo-settings{padding:20px;display:flex;align-items:center;gap:17px}.logo-settings>div{width:72px;height:72px;border:1px dashed #b8c2d0;border-radius:10px;display:grid;place-items:center;background:#f8fafc;overflow:hidden}.logo-settings img{width:100%;height:100%;object-fit:contain}.logo-settings>div span{font-size:26px;font-weight:800;color:var(--blue)}.logo-settings label{display:grid;gap:5px}.logo-settings small{color:var(--muted)}.logo-settings input{margin-top:7px}.settings-section{padding:24px}.settings-section h2{font-size:17px;margin:0 0 22px}.settings-section input{width:100%;height:46px;border:1px solid var(--line);border-radius:7px;padding:0 12px;margin-top:7px}.settings-section .wide{grid-column:1/3}.settings-form>button{justify-self:start;min-width:190px}.more-grid{display:grid;gap:10px;max-width:650px}.more-grid>a{display:grid;grid-template-columns:42px 1fr 22px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:9px;padding:14px;color:var(--ink)}.more-grid>a>svg:first-child{width:20px;color:var(--blue)}.more-grid>a>svg:last-child{width:17px;color:#98a2b3}.more-grid div{display:grid;gap:4px}.more-grid span{font-size:10px;color:var(--muted)}.print-actions{display:flex;gap:10px;justify-content:flex-end;margin-bottom:18px}.print-actions a{border:1px solid var(--line);padding:11px 17px;border-radius:7px;color:var(--ink)}.pdf-sheet{background:#fff;max-width:850px;margin:auto;padding:48px;border:1px solid var(--line);box-shadow:0 10px 30px #17203310}.pdf-sheet>header{display:flex!important;position:static!important;height:auto!important;border:0!important;padding:0 0 25px!important;justify-content:flex-start!important}.pdf-sheet>header img,.pdf-logo{width:60px;height:60px;object-fit:contain;border-radius:9px;margin-right:15px}.pdf-logo{background:var(--blue);color:#fff;display:grid;place-items:center;font-size:27px;font-weight:800}.pdf-sheet>header>div h1{margin:0 0 6px;font-size:20px}.pdf-sheet>header p{margin:3px 0;color:var(--muted);font-size:10px}.pdf-sheet>header>section{margin-left:auto;text-align:right;display:grid;gap:5px}.pdf-sheet>header>section span{font-size:9px;color:var(--muted);letter-spacing:1px}.pdf-sheet>header>section b{font-size:19px}.pdf-meta{display:flex;justify-content:space-between;border-top:3px solid var(--blue);padding:25px 0}.pdf-meta section{display:grid;gap:6px}.pdf-meta small{font-size:8px;color:var(--muted);font-weight:800}.pdf-meta p{font-size:10px;color:var(--muted);line-height:1.5}.pdf-sheet table{width:100%;border-collapse:collapse}.pdf-sheet th{background:#f6f8fa;text-align:left;padding:10px;font-size:8px;color:var(--muted)}.pdf-sheet td{padding:14px 10px;border-bottom:1px solid var(--line);font-size:11px}.pdf-totals{width:300px;margin:25px 0 25px auto}.pdf-totals p{display:flex;justify-content:space-between;font-size:11px}.pdf-totals .grand{border-top:2px solid var(--ink);padding-top:12px;font-size:16px}.pdf-sheet footer{border-top:1px solid var(--line);padding-top:18px;text-align:center;color:var(--muted);font-size:9px}
@media(max-width:900px){.report-stats{grid-template-columns:1fr 1fr}.report-grid{grid-template-columns:1fr}}
@media(max-width:700px){.content main{padding-top:12px}.calendar-card{padding:12px}.day{min-height:62px;padding:5px}.event{font-size:0;width:7px;height:7px;border:0;border-radius:50%;padding:0}.agenda-list{padding:15px}.agenda-list article{grid-template-columns:45px 1fr}.agenda-list article form{grid-column:2}.report-head{display:block}.report-head form{width:100%;margin-bottom:14px}.report-stats{grid-template-columns:1fr 1fr;gap:9px}.report-stats article{padding:13px}.report-stats b{font-size:18px}.settings-section{padding:18px 15px}.settings-section .fields{grid-template-columns:1fr}.settings-section .wide{grid-column:auto}.pdf-sheet{padding:24px 18px;border:0}.print-actions{padding:0 12px}.logo-settings{align-items:flex-start}}
@media print{.app>aside,.mobile-nav,.print-actions{display:none!important}.content{margin:0!important;width:100%!important}.content main{padding:0!important}.pdf-sheet{border:0;box-shadow:none;max-width:none;padding:0}.pdf-sheet>header{display:flex!important}body{background:#fff}}
.estimates-head{align-items:flex-start}.estimates-head>.new{display:flex!important;gap:7px;margin-top:5px}.estimates-head>.new svg{width:17px}.estimate-filters{display:grid;grid-template-columns:minmax(260px,1fr) 155px 155px 185px;align-items:end}.estimate-filters .search-box{position:relative}.estimate-filters .search-box svg{position:absolute;left:13px;top:13px;width:17px;color:#98a2b3}.estimate-filters .search-box input{width:100%;padding-left:40px}.estimate-filters label{display:grid;gap:5px}.estimate-filters label span{font-size:9px;font-weight:750;color:var(--muted)}.estimate-filters input,.estimate-filters select{height:52px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0 12px}.estimate-record{grid-template-columns:minmax(230px,1fr) 120px 90px 190px}.row-actions{display:flex;gap:8px;justify-content:flex-end}.row-actions a{min-height:38px;display:flex;align-items:center;justify-content:center;gap:6px}.pdf-row{border:1px solid #cbdcfb;background:#f4f7ff;color:var(--blue);border-radius:7px;padding:8px 11px;font-size:11px;font-weight:700}.pdf-row svg{width:15px}.row-actions .outline{min-width:78px}
@media(max-width:900px){.estimate-filters{grid-template-columns:1fr 1fr}.search-box{grid-column:1/3}.estimate-record{grid-template-columns:1fr auto auto}.estimate-record>.row-actions{grid-column:1/4}}
@media(max-width:700px){.estimates-head>.new{width:44px;height:44px;padding:0;font-size:0}.estimates-head>.new svg{width:21px}.estimate-filters{grid-template-columns:1fr 1fr}.estimate-filters select{grid-column:1/3}.estimate-record{grid-template-columns:1fr auto}.estimate-record>.status{grid-column:2}.estimate-record>.row-actions{grid-column:1/3}.row-actions a{flex:1}}
/* Professional polish v13 */
.drawer-form .check{display:flex!important;align-items:center;gap:10px;padding-top:24px}.drawer-form .check input{width:20px!important;height:20px!important;margin:0!important;accent-color:var(--blue);box-shadow:none!important}.settings-form{max-width:1050px}.settings-form:before{content:'';display:block;height:4px;background:linear-gradient(90deg,var(--blue),#67a0f5);border-radius:8px 8px 0 0;margin-bottom:-19px;z-index:1}.logo-settings{padding:26px;background:linear-gradient(135deg,#fff,#f6f9ff);border-color:#cfdcf2}.logo-settings>div{width:92px;height:92px;background:#fff;border:1px solid #cbd7e8;box-shadow:0 4px 12px #1720330c}.logo-settings label b{font-size:15px}.logo-settings input[type=file]{border:1px solid var(--line);background:#fff;border-radius:7px;padding:9px;max-width:380px}.settings-section{position:relative}.settings-section h2{display:flex;align-items:center;gap:10px}.settings-section h2:before{content:'';width:4px;height:20px;background:var(--blue);border-radius:3px}.settings-section label{font-size:11px;font-weight:700;color:#344054}.settings-section input,.settings-section select{transition:border .2s,box-shadow .2s}.settings-section input:focus,.settings-section select:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px #1769e812}.settings-form>button{min-height:48px;padding:0 24px;box-shadow:0 5px 12px #1769e825}.calendar-card{box-shadow:0 6px 20px #17203308}.calendar-toolbar{background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:10px}.weekdays{background:#fbfcfd;border-radius:7px 7px 0 0}.day{transition:background .15s}.day:hover{background:#f8faff}.agenda-list article{transition:background .15s;padding-left:8px;padding-right:8px;border-radius:7px}.agenda-list article:hover{background:#f8faff}.agenda-list select{height:38px;font-size:11px}.report-stats article{position:relative;overflow:hidden;box-shadow:0 4px 15px #17203307}.report-stats article:after{content:'';position:absolute;left:0;bottom:0;width:100%;height:3px;background:linear-gradient(90deg,var(--blue),#8bb7fa)}.report-stats article b{letter-spacing:-.5px}.report-grid>section{box-shadow:0 4px 16px #17203307}.bar-list em{background:linear-gradient(90deg,var(--blue),#6ca4f7)}.operations-list>div{padding:16px 4px}.operations-list>div b{font-size:17px}.heading>span{line-height:1.5}.success{display:flex;align-items:center;gap:8px;box-shadow:0 3px 12px #159a6810}
/* Flat sidebar identity: logo and business name without the former card frame. */
.app>aside .sidebar-brand{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;width:100%;margin:0 0 18px;padding:5px 4px 16px!important;overflow:visible;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;isolation:auto}
.app>aside .sidebar-brand::before{display:none!important;content:none!important}
.app>aside .brand-logo-premium{display:grid;width:46px;height:46px;place-items:center;overflow:hidden;border:0!important;border-radius:13px;background:#f0f5fc;box-shadow:none!important}
.app>aside .brand-logo-premium img{display:block;width:100%;height:100%;object-fit:contain}
.app>aside .brand-logo-premium b{display:grid!important;width:100%;height:100%;place-items:center;margin:0!important;border-radius:12px!important;background:linear-gradient(145deg,var(--company-color,#1769e8),#0b4fbb)!important;color:#fff;font-size:22px!important;font-weight:850}
.app>aside .brand-copy-premium{display:flex;min-width:0;max-width:100%;flex-direction:column;justify-content:center;gap:4px;overflow:hidden}
.app>aside .brand-copy-premium strong{display:block;max-width:100%;overflow:hidden;color:#17243a;font-size:15px;font-weight:850;line-height:1.2;text-overflow:ellipsis}
.app>aside .brand-copy-premium strong em{color:var(--company-color,#1769e8);font-style:normal}
.app>aside .brand-slogan{grid-column:2;margin:0;padding:0;border:0;color:#738198;font-size:9px;font-weight:700;letter-spacing:.55px;line-height:1.3}
@media(max-width:700px){.app>aside .sidebar-brand{display:flex;min-width:0;flex:1;gap:10px;margin:0;padding:0!important;overflow:hidden;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}.app>aside .brand-logo-premium{width:40px;height:40px;flex:none;border-radius:11px}.app>aside .brand-copy-premium{min-width:0;flex:1}.app>aside .brand-copy-premium strong{font-size:14px;white-space:nowrap;text-overflow:ellipsis}.app>aside .brand-slogan{display:none}.app>aside .sidebar-brand::before{display:none!important}}

/* One-line business identity with a fine divider instead of a framed card. */
.app>aside .sidebar-brand{grid-template-columns:50px minmax(0,1fr);column-gap:10px;row-gap:0;padding:5px 4px 10px!important;margin-bottom:18px}
.app>aside .sidebar-brand::after{display:none}
.app>aside .brand-logo-premium{width:48px;height:48px;border-radius:12px}
.app>aside .brand-copy-premium strong{white-space:nowrap;font-size:13px;letter-spacing:-.35px}
.app>aside .brand-slogan{grid-column:1/-1;margin:7px 8px 0;padding:8px 0 0;border-top:2px solid #1769e8;text-align:center;font-size:9px}
@media(max-width:700px){.app>aside.app-sidebar{height:88px;min-height:88px;padding:8px 14px}.app>aside .sidebar-brand{display:grid;grid-template-columns:48px minmax(0,1fr);gap:0 10px;width:100%;flex:none;padding:0!important;margin:0!important;overflow:visible}.app>aside .brand-logo-premium{width:46px;height:46px}.app>aside .brand-copy-premium strong{font-size:14px;letter-spacing:-.25px}.app>aside .brand-slogan{display:block;margin:5px 8px 0;padding:6px 0 0;border-top:2px solid #1769e8;font-size:9px}.app>aside .sidebar-brand::after{display:none}}

@media(max-width:700px){.logo-settings label{min-width:0;flex:1}.logo-settings input[type=file]{box-sizing:border-box;width:100%;max-width:100%;font-size:10px}}

/* Compact business settings: preserve the logo treatment while keeping the save action in view. */
.settings-form{gap:10px}
.settings-form:before{height:3px;margin-bottom:-13px}
.settings-form>.logo-settings{grid-template-columns:100px minmax(0,1fr);gap:10px;min-height:0;padding:12px 18px;border-radius:12px}
.settings-form>.logo-settings>.logo-preview{width:100px;height:100px;padding:4px;border-radius:16px}
.settings-form>.logo-settings>.logo-settings-main{grid-template-columns:minmax(0,1fr) minmax(210px,.72fr);gap:12px;justify-items:stretch;align-items:center}
.settings-form .logo-settings-copy .logo-eyebrow{margin-bottom:3px;font-size:8px}
.settings-form .logo-settings-copy h2{font-size:15px}
.settings-form .logo-settings-copy p{margin-top:3px;font-size:10px;line-height:1.35}
.settings-form .logo-settings .logo-upload{gap:4px;padding:7px 9px;border-radius:10px}
.settings-form .logo-settings .logo-upload input[type=file]{height:34px;padding:3px;font-size:9px}
.settings-form .logo-settings .logo-upload input[type=file]::file-selector-button{margin-right:6px;padding:6px 8px;font-size:9px}
.settings-form .logo-settings .logo-upload small{font-size:8px}
.settings-form .logo-settings:after{right:18px;bottom:-60px;width:105px;height:105px}
.settings-form .logo-settings>.logo-decoration{right:20px;bottom:2px;font-size:32px}
.settings-form>.settings-section{padding:16px 20px}
.settings-form>.settings-section h2{margin-bottom:13px;font-size:15px}
.settings-form>.settings-section h2:before{height:17px}
.settings-form>.settings-section .fields{gap:12px 18px}
.settings-form>.settings-section label{font-size:10px}
.settings-form>.settings-section input,.settings-form>.settings-section select{height:39px;margin-top:4px;padding:0 10px;font-size:12px}
.settings-form>.settings-section .settings-location-language{gap:18px}
.settings-form>button{min-height:42px;padding:0 20px}
@media(max-width:700px){
 .settings-form{gap:9px}
 .settings-form>.logo-settings{grid-template-columns:72px minmax(0,1fr);gap:8px;padding:10px 12px}
 .settings-form>.logo-settings>.logo-preview{width:72px;height:72px;padding:4px;border-radius:13px}
 .settings-form>.logo-settings>.logo-settings-main{grid-template-columns:minmax(0,1fr);gap:7px;justify-items:stretch;align-items:center}
 .settings-form .logo-settings-copy h2{font-size:13px}
 .settings-form .logo-settings-copy p{font-size:9px}
 .settings-form .logo-settings .logo-upload{grid-template-columns:minmax(0,1fr);align-items:start;padding:5px 7px}
 .settings-form .logo-settings .logo-upload input[type=file]{height:31px;font-size:8px}
 .settings-form .logo-settings .logo-upload small{white-space:nowrap;font-size:7px}
 .settings-form>.settings-section{padding:13px 14px}
 .settings-form>.settings-section h2{margin-bottom:10px;font-size:14px}
 .settings-form>.settings-section .fields{gap:9px 10px}
 .settings-form>.settings-section label{font-size:9px}
 .settings-form>.settings-section input,.settings-form>.settings-section select{height:36px;padding:0 7px;font-size:11px}
 .settings-form>.settings-section .settings-location-language{gap:10px}
 .settings-form>.settings-section .settings-location-language>label{font-size:9px}
 .settings-form>.settings-section .settings-location-language input,.settings-form>.settings-section .settings-location-language select{height:36px;padding:0 7px;font-size:10px}
}

/* Branded, responsive business-logo panel and paired address/language fields. */
.logo-settings{position:relative;display:grid;grid-template-columns:104px minmax(0,1fr);align-items:center;gap:22px;padding:24px 28px;overflow:hidden;border-color:#cbdaf0;background:radial-gradient(circle at 98% 5%,rgba(73,141,255,.15),transparent 30%),linear-gradient(120deg,#fff 0%,#f7faff 100%);box-shadow:0 8px 24px rgba(31,72,130,.07)}
.logo-settings:after{content:'';position:absolute;right:26px;bottom:-40px;width:130px;height:130px;border:1px solid rgba(23,105,232,.12);border-radius:50%;box-shadow:0 0 0 18px rgba(23,105,232,.025),0 0 0 36px rgba(23,105,232,.02);pointer-events:none}
.logo-preview{position:relative;z-index:1;display:grid;width:104px;height:104px;place-items:center;padding:10px;border:1px solid #d9e4f3;border-radius:20px;background:#fff;box-shadow:0 8px 20px rgba(30,64,110,.1)}
.logo-settings>.logo-preview{width:104px;height:104px;background:#fff;border:1px solid #d9e4f3;border-radius:20px;box-shadow:0 8px 20px rgba(30,64,110,.1)}
.logo-settings>.logo-settings-main{width:auto;height:auto;min-width:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.logo-settings>.logo-decoration{position:absolute;right:28px;bottom:10px;z-index:0;color:#1769e8;font-size:42px;font-weight:900;letter-spacing:-5px;opacity:.055;pointer-events:none}
.logo-preview img{width:100%;height:100%;object-fit:contain;border-radius:12px}
.logo-settings-main{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(245px,.8fr);align-items:center;gap:26px;min-width:0}
.logo-settings-copy{min-width:0}.logo-settings-main .logo-eyebrow{display:inline-flex;margin-bottom:6px;color:#1769e8;font-size:9px;font-weight:850;letter-spacing:.1em;white-space:nowrap}.logo-settings-copy h2{margin:0;color:#172033;font-size:17px;font-weight:800;letter-spacing:-.25px}.logo-settings-copy p{margin:6px 0 0;color:#66758b;font-size:11px;line-height:1.5}
.logo-settings .logo-upload{display:grid;min-width:0;gap:7px;padding:12px;border:1px dashed #b8cbea;border-radius:13px;background:rgba(255,255,255,.82)}
.logo-settings-main .logo-upload>span{display:flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:0 12px;border:1px solid #c8daf5;border-radius:9px;background:#f4f8ff;color:#1769e8;font-size:11px;font-weight:750}
.logo-upload>span svg{width:15px;height:15px}.logo-settings .logo-upload small{color:#718096;font-size:9px;text-align:center}
.logo-settings .logo-upload input[type=file]{box-sizing:border-box;width:100%;max-width:100%;min-width:0;margin:0;padding:5px;border:1px solid #e0e7f0;border-radius:8px;background:#fff;font-size:10px}
.logo-settings .logo-upload input[type=file]::file-selector-button{margin-right:8px;padding:7px 10px;border:0;border-radius:6px;background:#1769e8;color:#fff;font-size:10px;font-weight:700;cursor:pointer}
.settings-location-language{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;min-width:0}
.settings-location-language>label{display:grid;min-width:0;gap:0}
.settings-section .settings-location-language select{width:100%;height:46px;margin-top:7px;padding:0 12px;border:1px solid var(--line);border-radius:7px;background:#fff}
@media(max-width:700px){.logo-settings{grid-template-columns:72px minmax(0,1fr);gap:14px;padding:16px}.logo-settings>.logo-preview{width:72px;height:72px;padding:7px;border-radius:15px}.logo-settings>.logo-settings-main{grid-template-columns:minmax(0,1fr);gap:10px}.logo-settings-copy h2{font-size:14px}.logo-settings-copy p{font-size:10px}.logo-settings .logo-upload{padding:9px}.logo-settings .logo-upload input[type=file]{font-size:9px}.logo-settings:after{right:-65px;bottom:-74px}.logo-settings>.logo-decoration{right:8px;bottom:4px;font-size:30px}.settings-location-language{gap:10px}.settings-location-language>label{font-size:10px}.settings-section .settings-location-language input,.settings-section .settings-location-language select{height:42px;padding:0 8px;font-size:11px}}

/* Estimate list: keep the status control and its actions in separate grid tracks. */
.estimate-record {
  grid-template-columns:minmax(0,1fr) minmax(430px,450px) !important;
  column-gap:18px;
  min-height:0 !important;
  padding:8px 16px !important;
}
.estimate-record.estimate-filter-hidden {display:none !important}
.estimate-record > .estimate-row-main {
  grid-column:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(155px,190px);
  align-items:center;
  gap:12px;
  min-width:0;
}
.estimate-row-main > div:first-child {display:flex;align-items:center;gap:11px;min-width:0}
.estimate-row-main > div:first-child > div {display:grid;gap:4px;min-width:0}
.estimate-row-amount {display:grid;gap:3px;justify-items:end;align-content:center;min-width:0;text-align:right}
.estimate-row-amount small {font-size:10px;line-height:1.2;color:#65748b}
.estimate-row-amount strong {justify-self:end;white-space:nowrap}
.estimate-record > .estimate-row-controls {
  grid-column:2;
  display:grid;
  grid-template-columns:minmax(132px,145px) minmax(0,1fr);
  align-items:center;
  gap:8px;
  width:100%;
  min-width:0;
  padding-right:16px;
  box-sizing:border-box;
}
.estimate-row-controls .status-picker {width:100%;min-width:0;position:relative;justify-self:stretch;z-index:2}
.estimate-row-controls .status-trigger {width:100% !important;min-width:0 !important;max-width:100% !important;box-sizing:border-box}
.estimate-row-controls .row-actions {
  display:grid !important;
  grid-template-columns:minmax(68px,1fr) 42px 42px 42px;
  align-items:center;
  justify-content:stretch;
  gap:8px;
  width:100%;
  min-width:0;
}
.estimate-row-controls .pdf-row {justify-content:center;white-space:nowrap;min-width:0}
.estimate-row-controls .whatsapp-row {width:42px;min-width:42px;height:42px;min-height:42px;padding:0}

.estimate-summary {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:12px;
  margin:0 0 18px;
}
.estimate-summary-card {
  appearance:none;
  display:grid;
  align-content:start;
  gap:5px;
  min-width:0;
  min-height:104px;
  padding:11px 14px;
  border:1px solid #dbe4f0 !important;
  border-radius:13px !important;
  background:#fff !important;
  color:#172033 !important;
  text-align:left;
  cursor:pointer;
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
}
.estimate-summary-card:hover {transform:translateY(-1px);box-shadow:0 8px 20px #1720330c}
.estimate-summary-card.is-active {border-color:#86b4ff !important;box-shadow:0 0 0 2px #1769e812}
.estimate-summary-card>span {font-size:10px;font-weight:800;letter-spacing:.045em;color:#65748b}
.estimate-summary-card>b {font-size:25px;line-height:1.1;color:#1769e8}
.estimate-summary-card>small {font-size:11px;line-height:1.35;color:#667085}
.estimate-summary-card.sent {background:#f3f7ff !important;border-color:#d3e2ff !important}
.estimate-summary-card.sent>b {color:#1769e8}
/* Accepted uses stronger green; paid uses a lighter green for a clear distinction. */
.estimate-summary-card.accepted {background:#e7f8ee !important;border-color:#9adbb4 !important}
.estimate-summary-card.accepted>b {color:#087443}
.estimate-summary-card.paid {background:#f2fbf5 !important;border-color:#d4eddd !important}
.estimate-summary-card.paid>b {color:#438c62}
.estimate-summary-card.expired {background:#fff8ed !important;border-color:#f5dfb5 !important}
.estimate-summary-card.expired>b {color:#a15c00}
.estimate-summary-card.cancelled {background:#fff2f2 !important;border-color:#ffd1d1 !important}
.estimate-summary-card.cancelled>b {color:#c62828}

/* Keep the row control, menu and status colors consistent across the list. */
.estimate-row-controls .status-trigger[data-status="accepted"] {background:#e7f8ee !important;border-color:#8bd3a9 !important;color:#087443 !important}
.estimate-row-controls .status-trigger[data-status="accepted"]::before,
.estimate-row-controls .status-option[data-status="accepted"]::before {background:#087443 !important}
.estimate-row-controls .status-option[data-status="accepted"] {color:#087443 !important}
.estimate-row-controls .status-trigger[data-status="paid"] {background:#f2fbf5 !important;border-color:#cce8d5 !important;color:#438c62 !important}
.estimate-row-controls .status-trigger[data-status="paid"]::before,
.estimate-row-controls .status-option[data-status="paid"]::before {background:#66ae7f !important}
.estimate-row-controls .status-option[data-status="paid"] {color:#438c62 !important}

.delete-estimate-row {
  display:inline-grid !important;
  width:42px;
  min-width:42px !important;
  height:42px;
  min-height:42px !important;
  padding:0 !important;
  place-items:center;
  border:1px solid #f3c5c5 !important;
  border-radius:10px !important;
  background:#fff7f7 !important;
  color:#cf3030 !important;
  transition:transform .16s ease,background .16s ease,box-shadow .16s ease;
}
.delete-estimate-row:hover {transform:translateY(-1px);background:#ffeded !important;box-shadow:0 7px 18px rgba(207,48,48,.13)}
.delete-estimate-row svg {width:18px;height:18px}
.estimate-delete-confirm p {white-space:pre-line;line-height:1.55}
.estimate-delete-confirm .danger {background:#cf3030 !important;color:#fff !important;border-color:#cf3030 !important}
.estimate-delete-confirm .danger:hover {background:#b92222 !important}

@media(max-width:1100px) {
  .estimate-summary {grid-template-columns:repeat(3,minmax(0,1fr))}
  .estimate-record {grid-template-columns:minmax(0,1fr) !important;row-gap:10px}
  .estimate-record > .estimate-row-main {grid-column:1;grid-template-columns:minmax(0,1fr) minmax(155px,190px)}
  .estimate-record > .estimate-row-controls {grid-column:1;grid-template-columns:minmax(132px,150px) minmax(0,1fr);padding-right:0}
}
@media(max-width:700px) {
  .estimate-summary {grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}
  .estimate-summary-card {min-height:96px;padding:10px}
  .estimate-summary-card>span {font-size:9px}
  .estimate-summary-card>b {font-size:22px}
  .estimate-summary-card>small {font-size:10px}
  .estimate-record {grid-template-columns:minmax(0,1fr) !important;gap:10px !important}
  .estimate-record > .estimate-row-main {grid-template-columns:minmax(0,1fr) minmax(120px,auto);gap:8px}
  .estimate-row-amount small {font-size:9px}
  .estimate-row-amount strong {font-size:14px}
  .estimate-record > .estimate-row-controls {grid-column:1;grid-template-columns:minmax(0,1fr);gap:9px}
  .estimate-row-controls .row-actions {grid-template-columns:minmax(0,1fr) 42px 42px 42px;gap:7px}
  .estimate-row-controls .status-trigger {min-height:42px !important}
}

.catalog-head{gap:18px}.catalog-add-actions{display:flex;gap:9px;flex-wrap:wrap}.catalog-add-actions button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.catalog-add-actions svg{width:17px;height:17px}.catalog-add-actions .outline{background:#fff!important;color:#1769e8!important;border:1px solid #cbdaf5!important}.catalog-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}.catalog-overview article{display:flex;align-items:center;gap:12px;min-width:0;padding:15px 17px;background:#fff;border:1px solid #dde2ea;border-radius:10px}.catalog-overview article>svg{width:36px;height:36px;flex:0 0 36px;padding:8px;border-radius:9px;background:#eef4ff;color:#1769e8}.catalog-overview article div{display:grid;gap:4px;min-width:0}.catalog-overview small{font-size:8px;font-weight:800;letter-spacing:.35px;color:#667085}.catalog-overview b{font-size:19px}.catalog-overview .catalog-low-stock>svg{background:#fff5e8;color:#bb4d0a}.catalog-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.catalog-search{position:relative;display:flex;align-items:center;flex:1;min-width:180px}.catalog-search>svg{position:absolute;left:13px;width:17px;color:#98a2b3}.catalog-search input{width:100%;height:44px;padding:0 14px 0 40px;border:1px solid #dde2ea;border-radius:8px;background:#fff}.catalog-type-filter{display:flex;gap:4px;padding:4px;background:#edf1f7;border-radius:9px}.catalog-type-filter button{display:flex;align-items:center;gap:7px;min-height:34px;padding:0 11px;border:0;border-radius:6px;background:transparent;color:#526176;font-size:11px;font-weight:700;white-space:nowrap}.catalog-type-filter button.active{background:#fff;color:#1769e8;box-shadow:0 1px 4px #17203318}.catalog-type-filter button span{font-size:10px;color:#77859a}.catalog-list{overflow:hidden}.catalog-list-head,.catalog-row{display:grid;grid-template-columns:minmax(220px,1.6fr) minmax(90px,.55fr) minmax(115px,.7fr) minmax(100px,.55fr) 126px;align-items:center;gap:14px;padding:12px 18px}.catalog-list-head{background:#f7f9fc;color:#69778c;font-size:9px;font-weight:800;letter-spacing:.45px;text-transform:uppercase}.catalog-row{min-height:68px;border-top:1px solid #e8edf3}.catalog-row[hidden]{display:none}.catalog-item-name{display:flex;align-items:center;gap:11px;min-width:0}.catalog-item-name>svg{width:34px;height:34px;flex:0 0 34px;padding:8px;border-radius:8px;background:#eef4ff;color:#1769e8}.catalog-item-name>span{display:grid;gap:4px;min-width:0}.catalog-item-name b{overflow:hidden;text-overflow:ellipsis}.catalog-item-name small{font-size:10px;color:#748197;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-kind{display:inline-flex;padding:5px 8px;border-radius:20px;font-size:9px;font-style:normal;font-weight:750;white-space:nowrap}.service-kind{background:#eef4ff;color:#1769e8}.product-kind{background:#edf8f2;color:#087451}.catalog-stock{font-size:11px;font-weight:700}.catalog-stock small{display:block;margin-top:3px;color:#b54708;font-size:9px}.catalog-stock.is-low{color:#b54708}.catalog-stock-muted{color:#98a2b3}.catalog-row>strong{white-space:nowrap;font-size:12px}.catalog-row .record-actions{gap:5px}.catalog-no-results{padding:28px;text-align:center;color:#667085}.catalog-empty{display:grid;justify-items:center;gap:10px;padding:42px 24px;text-align:center}.catalog-empty>svg{width:42px;height:42px;padding:10px;border-radius:12px;background:#eef4ff;color:#1769e8}.catalog-empty>b{font-size:17px}.catalog-empty>span{max-width:530px;color:#667085;line-height:1.55}.catalog-empty>div{display:flex;gap:8px;margin-top:7px}.catalog-inventory-note{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:10px;margin-top:13px;padding:12px 15px;border:1px solid #dce7f4;border-radius:9px;background:#f8fbff;color:#53647c;font-size:10px}.catalog-inventory-note>svg{width:17px;color:#1769e8}.catalog-inventory-note p{margin:0;line-height:1.5}.catalog-inventory-note b{white-space:nowrap;color:#344054}
@media(max-width:900px){.catalog-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-list-head,.catalog-row{grid-template-columns:minmax(160px,1.4fr) minmax(78px,.55fr) minmax(100px,.7fr) minmax(90px,.55fr) 126px;gap:9px;padding-right:12px;padding-left:12px}}
@media(max-width:700px){.catalog-head{display:flex;align-items:stretch;flex-direction:column}.catalog-head .heading{min-width:0}.catalog-add-actions{display:grid;width:100%;grid-template-columns:1fr 1fr}.catalog-add-actions button{min-height:42px;padding:8px;font-size:11px}.catalog-overview{gap:8px}.catalog-overview article{padding:11px 9px;gap:8px}.catalog-overview article>svg{width:31px;height:31px;flex-basis:31px;padding:7px}.catalog-overview small{font-size:7px}.catalog-overview b{font-size:16px}.catalog-toolbar{display:grid;grid-template-columns:1fr;gap:9px}.catalog-search{width:100%}.catalog-type-filter{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.catalog-type-filter button{justify-content:center;padding:0 5px;font-size:10px}.catalog-list-head{display:none}.catalog-row{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:13px 12px}.catalog-item-name{grid-column:1;grid-row:1}.catalog-row>span:nth-child(2){grid-column:2;grid-row:1;justify-self:end}.catalog-stock,.catalog-stock-muted{grid-column:1;grid-row:2;padding-left:45px}.catalog-row>strong{grid-column:2;grid-row:2;justify-self:end}.catalog-row>.record-actions{grid-column:1/-1;grid-row:3;justify-content:flex-end}.catalog-inventory-note{grid-template-columns:18px 1fr;padding:11px;font-size:9px}.catalog-inventory-note b{grid-column:2;white-space:normal}.catalog-empty{padding:30px 16px}.catalog-empty>div{width:100%;flex-wrap:wrap;justify-content:center}}
.catalog-add-actions .catalog-departments-trigger{background:#f7faff!important;color:#1856bd!important;border-color:#c8d8f3!important}.catalog-add-actions .catalog-departments-trigger span{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#e8f0ff;color:#1769e8;font-size:10px}.catalog-toolbar-filters{display:flex;align-items:end;gap:10px}.catalog-department-filter{display:grid;gap:4px;min-width:190px}.catalog-department-filter>span{font-size:9px;font-weight:750;color:#667085}.catalog-department-filter select{height:44px;width:100%;padding:0 32px 0 12px;border:1px solid #d5deea;border-radius:9px;background:#fff;color:#243247;font:inherit;font-size:12px}.catalog-package-card[hidden]{display:none!important}.catalog-department-tag{display:inline-flex;margin-top:3px;padding:4px 8px;border-radius:999px;background:#edf4ff;color:#2858a6;font-size:10px;font-weight:750}.department-manager-card{width:min(560px,calc(100vw - 28px));max-height:min(88vh,760px);overflow:auto}.department-manager-card .modal-head p{margin:5px 0 0;color:#64748b;font-size:12px;line-height:1.45}.department-create-form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:9px;margin:18px 0 22px}.department-create-form label{display:grid;gap:6px;color:#344054;font-size:11px;font-weight:700}.department-create-form input{height:42px;padding:0 12px;border:1px solid #d5deea;border-radius:9px;font:inherit;font-weight:500}.department-create-form>button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:0 13px;border:1px solid #1769e8;border-radius:9px;background:#1769e8;color:#fff;font:inherit;font-size:11px;font-weight:750;cursor:pointer;white-space:nowrap}.department-create-form>button svg{width:15px;height:15px}.department-create-form>button.outline{background:#fff;color:#1769e8;border-color:#cbdaf5}.department-list-heading{display:flex;justify-content:space-between;align-items:center;padding-bottom:9px;border-bottom:1px solid #e6ebf2;color:#26354b;font-size:12px}.department-list-heading span{display:grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:99px;background:#edf4ff;color:#1769e8;font-weight:750}.department-list{display:grid}.department-list-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:54px;border-bottom:1px solid #eef1f5}.department-color-dot{width:9px;height:9px;border-radius:50%;background:#4285f4}.department-list-row>b{overflow:hidden;text-overflow:ellipsis;color:#344054;font-size:12px}.department-list-row>div{display:flex;align-items:center;gap:6px}.department-list-row form{margin:0}.department-empty{margin:0;padding:20px 8px;text-align:center;color:#667085;font-size:12px}
@media(max-width:700px){.catalog-add-actions{grid-template-columns:1fr 1fr}.catalog-add-actions button{min-width:0}.catalog-toolbar-filters{display:grid;grid-template-columns:1fr;align-items:stretch}.catalog-department-filter{min-width:0}.department-manager-card{width:calc(100vw - 20px);padding:16px}.department-create-form{grid-template-columns:1fr 1fr}.department-create-form label{grid-column:1/-1}.department-create-form>button{padding:0 8px;font-size:10px}}
.catalog-department-meta{color:#1769e8!important;font-weight:700}
.department-manager-card{box-sizing:border-box}
.department-manager-card{width:min(740px,calc(100vw - 32px));max-height:min(88dvh,760px);overflow-y:auto;scrollbar-width:none;padding:25px;background:linear-gradient(155deg,#fff 0%,#fbfdff 100%);border:1px solid #e3eaf5;box-shadow:0 28px 80px #12284a30}
.department-manager-card::-webkit-scrollbar{display:none}
.department-manager-head{align-items:center;margin-bottom:18px;padding-bottom:18px}
.department-manager-title{display:flex;align-items:center;gap:14px}
.department-manager-icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border:1px solid #d8e6ff;border-radius:15px;background:linear-gradient(145deg,#eff6ff,#e7f0ff);color:#1769e8;box-shadow:0 6px 18px #1769e815}
.department-manager-icon svg{width:23px;height:23px}
.department-manager-card .modal-head p{margin:5px 0 0;color:#69788e;font-size:12px;line-height:1.45}
.department-create-form{grid-template-columns:minmax(0,1fr) auto auto;gap:10px;margin:0 0 20px;padding:14px;border:1px solid #e2eafa;border-radius:14px;background:linear-gradient(120deg,#f7faff,#f1f6ff)}
.department-create-form label{display:grid;gap:7px;min-width:0;color:#344054;font-size:11px;font-weight:800}
.department-create-form label>span{font-size:10px;letter-spacing:.02em}
.department-create-form input{width:100%;height:44px;margin:0;padding:0 13px;border:1px solid #d7e1ef;border-radius:10px;background:#fff;color:#172033;font-size:13px;outline:none;transition:border-color .16s,box-shadow .16s}
.department-create-form input:focus{border-color:#78a9ff;box-shadow:0 0 0 3px #1769e817}
.department-create-form>button{height:44px;min-height:44px;padding:0 15px;border-radius:10px;font-size:11px}
.department-create-form>button.outline{color:#1769e8!important;background:#fff!important;border-color:#cbdaf5!important}
.department-create-form>button[hidden]{display:none!important}
.department-list-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 2px 11px;padding:0;border:0}
.department-list-heading>div{display:grid;gap:3px}
.department-list-heading b{color:#1d2b40;font-size:13px}
.department-list-heading small{color:#718096;font-size:10px;font-weight:500}
.department-list-heading>span{min-width:30px;height:28px;padding:0 8px;border:1px solid #dbe8ff;border-radius:9px;background:#eff5ff;color:#1769e8;font-size:11px}
.department-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:none;overflow:visible;padding:1px}
.department-list-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;min-height:68px;padding:10px;border:1px solid #e3eaf3;border-radius:13px;background:#fff;box-shadow:0 2px 7px #19335b08;transition:border-color .16s,box-shadow .16s,transform .16s}
.department-list-row:hover{border-color:#b8d1ff;box-shadow:0 5px 16px #1769e812;transform:translateY(-1px)}
.department-color-dot{display:grid;place-items:center;width:38px;height:38px;border:1px solid #deebff;border-radius:12px;background:#f0f6ff;color:#3478e5}
.department-color-dot svg{width:18px;height:18px}
.department-card-copy{display:grid;gap:4px;min-width:0}
.department-card-copy>b{overflow:hidden;color:#23334b;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}
.department-card-copy>small{overflow:hidden;color:#8290a4;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.department-row-actions{display:flex;align-items:center;gap:5px}
.department-row-actions form{margin:0}
.department-row-actions .icon-button{width:31px!important;height:31px!important;min-height:31px!important;border-radius:9px!important;color:#35649e!important;background:#f8fbff!important;border-color:#e1eaf5!important}
.department-row-actions .icon-button:hover{background:#eef5ff!important;border-color:#c9dcff!important;color:#1769e8!important}
.department-row-actions .danger-icon{color:#d64545!important;background:#fffafa!important;border-color:#f5dddd!important}
.department-row-actions .danger-icon:hover{background:#fff0f0!important;border-color:#f5bebe!important;color:#c62828!important}
.department-empty{grid-column:1/-1;display:grid;justify-items:center;gap:7px;margin:0;padding:28px 15px;border:1px dashed #cbdaf1;border-radius:14px;background:#f8fbff;color:#667085;text-align:center}
.department-empty>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#eaf2ff;color:#3977d7}
.department-empty svg{width:20px;height:20px}
.department-empty>b{color:#34445d;font-size:12px}
.department-empty>p{margin:0;font-size:10px}
@media(max-width:700px){.department-manager-card{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);padding:17px;border-radius:17px}.department-manager-head{margin-bottom:14px;padding-bottom:14px}.department-manager-icon{flex-basis:42px;width:42px;height:42px;border-radius:13px}.department-manager-title{gap:10px}.department-manager-card .modal-head p{font-size:10px}.department-create-form{grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:16px;padding:11px}.department-create-form label{grid-column:1/-1}.department-create-form>button{padding:0 11px;font-size:10px}.department-list{grid-template-columns:1fr;gap:7px}.department-list-row{min-height:61px;padding:8px}.department-color-dot{width:35px;height:35px}.department-row-actions .icon-button{width:30px!important;height:30px!important;min-height:30px!important}}
.department-card-copy{display:block;min-width:0}
@media(max-width:700px){.department-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.department-list-row{grid-template-columns:28px minmax(0,1fr);grid-template-rows:34px 28px;align-content:center;gap:7px 8px;min-height:78px;padding:8px}.department-color-dot{grid-column:1;grid-row:1;width:28px;height:28px;border-radius:9px}.department-color-dot svg{width:15px;height:15px}.department-card-copy{grid-column:2;grid-row:1;align-self:center}.department-card-copy>b{font-size:10px}.department-row-actions{grid-column:1/-1;grid-row:2;justify-content:flex-end}.department-row-actions .icon-button{width:25px!important;height:25px!important;min-height:25px!important;border-radius:7px!important}.department-row-actions .icon-button svg{width:13px;height:13px}.department-create-form{grid-template-columns:minmax(0,1fr) auto}.department-create-form>button{min-width:126px}.department-manager-card .modal-head p{max-width:270px}}
.inventory-add-stock{color:#087451!important;border-color:#b7e6cf!important;background:#f0fbf5!important}.inventory-add-stock:hover{background:#dff6e9!important;border-color:#81d3aa!important}.inventory-add-stock svg{width:17px;height:17px;stroke-width:2.5}.inventory-stock-context{display:flex;align-items:center;gap:12px;margin:16px 0;padding:13px;border:1px solid #dbe8f7;border-radius:11px;background:#f6faff;color:#172033}.inventory-stock-context>i{display:grid;width:38px;height:38px;flex:none;place-items:center;border-radius:10px;background:#e8f2ff;color:#1769e8}.inventory-stock-context>i svg{width:20px;height:20px}.inventory-stock-context>div{display:grid;gap:4px}.inventory-stock-context b{font-size:13px}.inventory-stock-context small{color:#64748b;font-size:11px}.inventory-stock-modal .fields{gap:13px}.inventory-stock-modal .modal-actions button[type=submit]{display:inline-flex;align-items:center;gap:7px}.inventory-stock-modal .modal-actions button[type=submit] svg{width:16px;height:16px}.catalog-row .record-actions{display:flex!important;flex-direction:row!important;align-items:center;justify-content:flex-end;gap:5px;min-width:0;width:100%}
.catalog-row .record-actions>.icon-button{box-sizing:border-box;flex:0 0 34px;width:34px!important;min-width:34px!important;max-width:34px;height:34px!important;min-height:34px!important;max-height:34px;padding:0!important}
.catalog-row .record-actions>.icon-button svg{width:15px;height:15px;flex:none}
@media(max-width:700px){.catalog-row>.record-actions{grid-column:1/-1;grid-row:3;justify-content:flex-end;width:100%}.catalog-row .record-actions>.icon-button{flex-basis:36px;width:36px!important;min-width:36px!important;max-width:36px;height:36px!important;min-height:36px!important;max-height:36px}}

.activity-card{padding:24px}.activity-filters{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) auto;gap:14px;align-items:end}.activity-filters label{display:grid;gap:7px;color:#36445c;font-size:13px;font-weight:700}.activity-filters input,.activity-filters select{width:100%;height:48px;border:1px solid #d5dfec;border-radius:12px;background:#fff;padding:0 13px;color:#172238;font:inherit}.activity-filters button{height:48px;border:0;border-radius:12px;padding:0 20px;background:#1769e8;color:#fff;font-weight:750;cursor:pointer}.activity-filters .activity-search{grid-column:span 2}.activity-summary{margin:21px 0 15px;color:#53647e}.activity-summary>b{color:#1769e8;font-size:22px}.activity-summary span{margin-left:8px}.activity-table-wrap{overflow:auto}.activity-table{width:100%;border-collapse:collapse}.activity-table th{text-align:left;background:#f5f8fc;color:#60718a;font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:14px}.activity-table td{border-top:1px solid #e4eaf2;padding:14px;vertical-align:top;color:#34425a}.activity-table td small{display:block;margin-top:4px;color:#74829a;overflow-wrap:anywhere}.activity-table td strong{display:block;margin-top:6px;color:#19243a}.activity-action{display:inline-block;padding:4px 8px;border-radius:20px;background:#edf4ff;color:#1769e8;font-size:11px;font-weight:800}.activity-action.action-delete{background:#fff0f0;color:#c32828}.activity-action.action-status,.activity-action.action-update{background:#fff7e9;color:#9b5100}.activity-empty{padding:40px 15px;text-align:center;color:#687894}.activity-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:18px;color:#5c6b82}.activity-pagination a{color:#1769e8;font-weight:700;text-decoration:none}.activity-heading{margin-bottom:20px}
@media(max-width:850px){.activity-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-filters .activity-search{grid-column:span 2}.activity-filters button{grid-column:span 2}.activity-card{padding:16px}.activity-summary span{display:block;margin:5px 0 0}.activity-table thead{display:none}.activity-table,.activity-table tbody,.activity-table tr,.activity-table td{display:block;width:100%}.activity-table tr{margin:12px 0;padding:10px 14px;border:1px solid #dce5f1;border-left:4px solid #3d83ff;border-radius:14px;background:#fff}.activity-table td{display:grid;grid-template-columns:105px minmax(0,1fr);gap:10px;padding:8px 0;border:0}.activity-table td::before{content:attr(data-label);font-size:11px;font-weight:800;color:#72819a}.activity-table td strong{margin-top:5px}.activity-table td:last-child{padding-bottom:2px}}
@media(max-width:390px){.activity-filters{grid-template-columns:1fr}.activity-filters .activity-search,.activity-filters button{grid-column:auto}}

.activity-table td small.activity-change{color:#53647e;margin-top:5px}.activity-change b{color:#19243a}

.login-2026 .login-brand {
  position: relative;
  overflow: hidden;
  min-height: 100vh;
  padding: 0;
  background: #061a38;
  isolation: isolate;
}
.login-2026 .login-brand-image { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
.auth-visual {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 20% 15%, #3e86f3 0, transparent 34%),
    linear-gradient(145deg, #0b2f85, #1257c9 55%, #2476ee);
  isolation: isolate;
}
.login-glow,
.auth-orb {
  position: absolute;
  border-radius: 50%;
  opacity: 0.28;
  pointer-events: none;
}
.glow-a,
.auth-orb.one {
  width: 360px;
  height: 360px;
  background: #6fb0ff;
  right: -140px;
  top: -90px;
}
.glow-b,
.auth-orb.two {
  width: 280px;
  height: 280px;
  background: #061f62;
  left: -110px;
  bottom: -80px;
}
.login-brand-inner {
  position: relative;
  z-index: 2;
}
.release-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 64px;
  border: 1px solid #ffffff30;
  background: #ffffff12;
  border-radius: 20px;
  padding: 8px 12px;
  font-size: 10px;
  color: #eaf2ff;
}
.release-pill i {
  width: 7px;
  height: 7px;
  background: #79f2bd;
  border-radius: 50%;
  box-shadow: 0 0 0 4px #79f2bd25;
}
.login-2026 .login-brand p {
  margin-top: 34px;
}
.login-2026 .login-brand h2 {
  font-size: 42px;
  max-width: 570px;
}
.login-2026 .auth-card.clean {
  background: #ffffffeb;
  border: 1px solid #e5eaf2;
  border-radius: 18px;
  padding: 42px;
  box-shadow: 0 30px 80px #17203318;
  backdrop-filter: blur(14px);
}
.login-2026 .login-panel {
  background:
    radial-gradient(circle at 80% 10%, #edf4ff, transparent 36%), #fbfcfe;
}
.signup-link {
  text-align: center;
  margin-top: 22px;
  color: #667085;
  font-size: 12px;
}
.signup-link a {
  color: #1769e8;
  font-weight: 750;
}
.secure-line {
  display: flex;
  justify-content: center;
  gap: 7px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid #dde2ea;
  font-size: 10px;
  color: #7b8798;
}
.auth-2026 {
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(360px, 0.9fr) minmax(520px, 1.1fr);
  background: #fff;
}
.auth-visual {
  color: #fff;
  padding: 70px;
  display: flex;
  flex-direction: column;
}
.auth-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 21px;
  position: relative;
  z-index: 2;
}
.auth-brand span {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: #fff;
  color: #1769e8;
  display: grid;
  place-items: center;
  font-weight: 900;
}
.auth-message {
  margin: auto 0;
  max-width: 520px;
  position: relative;
  z-index: 2;
}
.auth-message small {
  font-size: 10px;
  letter-spacing: 2px;
  color: #c9dcff;
  font-weight: 800;
}
.auth-message h2 {
  font-size: 39px;
  line-height: 1.14;
  margin: 16px 0;
}
.auth-message p {
  color: #dbe8ff;
  line-height: 1.6;
}
.auth-proof {
  display: flex;
  gap: 18px;
  color: #dbe8ff;
  font-size: 10px;
  position: relative;
  z-index: 2;
}
.auth-content {
  display: grid;
  place-items: center;
  padding: 45px;
  background:
    radial-gradient(circle at 80% 12%, #edf4ff, transparent 35%), #fbfcfe;
}
.auth-box {
  width: min(460px, 100%);
  background: #fff;
  border: 1px solid #e3e8f0;
  border-radius: 18px;
  padding: 40px;
  box-shadow: 0 25px 70px #17203314;
}
.back-login {
  display: inline-block;
  color: #667085;
  font-size: 11px;
  margin-bottom: 35px;
}
.auth-box h1 {
  font-size: 30px;
  margin: 12px 0 8px;
}
.auth-box > p {
  color: #667085;
  line-height: 1.5;
}
.auth-box form {
  display: grid;
  gap: 14px;
  margin-top: 25px;
}
.auth-box label {
  font-size: 11px;
  font-weight: 700;
}
.auth-box input {
  width: 100%;
  height: 50px;
  border: 1px solid #dde2ea;
  border-radius: 8px;
  padding: 0 14px;
  margin-top: 7px;
  outline: 0;
}
.auth-box input:focus {
  border-color: #1769e8;
  box-shadow: 0 0 0 4px #1769e812;
}
.auth-box button {
  margin-top: 5px;
  width: 100%;
}
.code-input {
  text-align: center;
  font-size: 26px !important;
  letter-spacing: 12px;
  font-weight: 800;
}
.help-text {
  display: block;
  margin-top: 16px;
  color: #667085;
  text-align: center;
  line-height: 1.5;
}
@media (max-width: 800px) {
  .auth-2026 {
    display: block;
  }
  .auth-visual {
    display: none;
  }
  .auth-content {
    min-height: 100vh;
    padding: 22px;
  }
  .auth-box {
    padding: 28px 22px;
  }
  .login-2026 .auth-card.clean {
    border: 0;
    box-shadow: none;
    background: transparent;
    padding: 0;
  }
  .release-pill {
    display: none;
  }
}

/* Axon 2026 login experience */
.login-2026 {
  --login-blue: #1769e8;
  --login-navy: #071a3d;
  min-height: 100svh;
  grid-template-columns: minmax(520px, 45%) minmax(560px, 55%);
  background: #f7faff;
}
.login-2026 .login-panel {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: block;
  min-height: 100svh;
  padding: clamp(24px, 3vw, 52px);
  background:
    linear-gradient(90deg, rgba(23,105,232,.035) 1px, transparent 1px),
    linear-gradient(rgba(23,105,232,.035) 1px, transparent 1px),
    radial-gradient(circle at 88% 8%, rgba(68,137,255,.19), transparent 28%),
    radial-gradient(circle at 8% 88%, rgba(34,197,203,.10), transparent 29%),
    #f8faff;
  background-size: 42px 42px,42px 42px,auto,auto,auto;
}
.login-2026 .login-panel::before,
.login-2026 .login-panel::after {
  content: "";
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  filter: blur(2px);
  pointer-events: none;
}
.login-2026 .login-panel::before {
  width: 420px;
  height: 420px;
  right: -185px;
  top: -175px;
  border: 1px solid rgba(23,105,232,.12);
  box-shadow: 0 0 0 48px rgba(23,105,232,.025),0 0 0 96px rgba(23,105,232,.02);
}
.login-2026 .login-panel::after {
  width: 260px;
  height: 260px;
  left: -150px;
  bottom: -110px;
  background: rgba(23,105,232,.07);
}
.auth-stage {
  width: min(630px, 100%);
  min-height: calc(100svh - clamp(48px, 6vw, 104px));
  margin: 0 auto;
  display: grid;
  grid-template-rows: 1fr auto;
  align-items: center;
  position: relative;
  z-index: 1;
}
.login-topbar,
.login-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.login-wordmark {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: var(--login-navy);
}
.login-wordmark > span {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  color: #fff;
  font-size: 18px;
  font-weight: 900;
  background: linear-gradient(145deg,#0b2f76,#1769e8);
  box-shadow: 0 9px 22px rgba(23,105,232,.22);
}
.login-wordmark strong {font-size: 15px;letter-spacing: -.2px}
.login-wordmark strong b {color: var(--login-blue)}
.system-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid rgba(23,105,232,.12);
  border-radius: 999px;
  color: #52627a;
  font-size: 10px;
  font-weight: 700;
  background: rgba(255,255,255,.7);
  box-shadow: 0 5px 18px rgba(18,42,79,.04);
  backdrop-filter: blur(10px);
}
.system-status i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #19b77b;
  box-shadow: 0 0 0 4px rgba(25,183,123,.12);
}
.login-2026 .auth-card.clean {
  position: relative;
  width: min(520px, 100%);
  margin: clamp(34px, 6vh, 70px) auto;
  overflow: hidden;
  padding: clamp(34px, 4vw, 48px);
  border: 1px solid rgba(207,218,235,.82);
  border-radius: 26px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 34px 90px rgba(14,40,78,.13),0 3px 8px rgba(14,40,78,.04);
  backdrop-filter: blur(20px);
}
.auth-card-accent {
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg,#1769e8,#33a7ed 62%,#5de0d0);
}
.login-2026 .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  color: #1260d6;
  border: 1px solid #d9e7ff;
  border-radius: 999px;
  background: #f3f7ff;
  font-size: 9px;
  letter-spacing: 1.15px;
}
.login-2026 .eyebrow i {width: 5px;height: 5px;border-radius: 50%;background: #1769e8}
.login-2026 .auth-card.clean h1 {
  margin: 18px 0 12px;
  color: #0c1830;
  font-size: clamp(31px, 3vw, 39px);
  line-height: 1.08;
  letter-spacing: -1.4px;
}
.login-2026 .auth-card.clean h1 em {
  color: var(--login-blue);
  font-style: normal;
}
.login-2026 .auth-card.clean > p {
  max-width: 410px;
  margin: 0 0 28px;
  color: #67758b;
  font-size: 13px;
  line-height: 1.65;
}
.login-2026 .auth-card.clean form {gap: 17px;margin-top: 0}
.login-2026 .auth-card.clean label {display: grid;margin: 0}
.field-caption {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  color: #202d43;
  font-size: 11px;
  font-weight: 750;
}
.field-caption a {color: var(--login-blue) !important;font-size: 10px !important;font-weight: 750}
.input-wrap {position: relative;display: block}
.input-wrap > svg {
  position: absolute;
  z-index: 1;
  width: 18px;
  height: 18px;
  left: 15px;
  top: 50%;
  transform: translateY(-50%);
  fill: none;
  stroke: #77869d;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.login-2026 .auth-card.clean .input-wrap input {
  width: 100%;
  height: 54px;
  margin: 0;
  padding: 0 48px 0 45px;
  color: #111d32;
  border: 1px solid #d6dfec;
  border-radius: 12px;
  background: rgba(249,251,255,.92);
  font-size: 13px;
  transition: border-color .2s,box-shadow .2s,background .2s,transform .2s;
}
.login-2026 .auth-card.clean .input-wrap input:hover {border-color: #bac9dc;background: #fff}
.login-2026 .auth-card.clean .input-wrap input:focus {
  border-color: #3480ed;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(23,105,232,.10),0 8px 22px rgba(23,105,232,.07);
}
.password-toggle {
  position: absolute;
  z-index: 2;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 36px !important;
  min-height: 36px !important;
  padding: 0 !important;
  margin: 0 !important;
  color: #728096 !important;
  border: 0 !important;
  border-radius: 9px !important;
  background: transparent !important;
}
.password-toggle:hover {color: var(--login-blue) !important;background: #edf4ff !important}
.password-toggle svg {width: 17px;height: 17px;fill:none;stroke:currentColor;stroke-width:1.7}
.password-toggle.shown {color: var(--login-blue) !important;background: #edf4ff !important}
.login-submit {
  width: 100%;
  min-height: 54px;
  margin-top: 3px !important;
  padding: 0 18px !important;
  justify-content: space-between !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: linear-gradient(110deg,#0d55cf,#2479ef) !important;
  box-shadow: 0 13px 28px rgba(23,105,232,.24);
  transition: transform .2s,box-shadow .2s,filter .2s;
}
.login-submit span {margin-left: auto;font-size: 12px;letter-spacing: .05px}
.login-submit svg {width: 18px;height: 18px;margin-left:auto;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.login-submit:hover {transform: translateY(-2px);filter: brightness(1.04);box-shadow: 0 17px 34px rgba(23,105,232,.3)}
.login-submit:active {transform: translateY(0)}
.persistent-login-note {
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin:-1px 0 4px;
  color:#66758b;
  font-size:9px;
  line-height:1.45;
}
.persistent-login-note i {
  display:grid;
  width:17px;
  height:17px;
  flex:0 0 17px;
  place-items:center;
  border-radius:50%;
  background:#e9f8f2;
  color:#07875d;
  font-size:10px;
  font-style:normal;
  font-weight:900;
}
.login-2026 .signup-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin-top: 24px;
  color: #748198;
  font-size: 11px;
}
.login-2026 .signup-link a {display:inline-flex;gap:4px;color:var(--login-blue);font-weight:800}
.login-2026 .signup-link a b {font-size: 12px}
.login-2026 .secure-line {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin-top: 22px;
  padding-top: 20px;
  color: #78869a;
  border-top: 1px solid #e5eaf1;
  font-size: 9px;
}
.login-2026 .secure-line span {display:inline-flex;align-items:center;gap:5px}
.login-2026 .secure-line i {display:grid;place-items:center;width:15px;height:15px;border-radius:50%;color:#0a8d61;background:#e9f8f2;font-size:9px;font-style:normal;font-weight:900}
.login-footer {color:#8b97a9;font-size:9px;letter-spacing:.15px}

@media (max-width: 1100px) {
  .login-2026 {grid-template-columns: minmax(380px, 42%) minmax(500px, 58%)}
  .login-2026 .auth-card.clean {padding: 38px}
}
@media (max-width: 800px) {
  .login-2026 {display:block;background:#f8faff}
  .login-2026 .login-panel {display:block;min-height:100svh;padding:22px 18px}
  .auth-stage {min-height:calc(100svh - 44px)}
  .login-2026 .auth-card.clean {
    width: 100%;
    margin: 28px auto;
    padding: 30px 22px;
    border: 1px solid rgba(207,218,235,.8);
    border-radius: 21px;
    background: rgba(255,255,255,.93);
    box-shadow: 0 22px 60px rgba(14,40,78,.11);
  }
  .login-2026 .auth-card.clean h1 {font-size: 31px;letter-spacing:-1px}
  .login-footer span:last-child {display:none}
  .system-status {padding:7px 9px}
  .login-wordmark strong {font-size:14px}
}
@media (max-width: 420px) {
  .login-2026 .secure-line {gap:10px;flex-wrap:wrap}
  .login-2026 .signup-link {align-items:flex-start;flex-direction:column;gap:4px}
}
@media (prefers-reduced-motion: reduce) {
  .login-submit,.input-wrap input {transition:none !important}
}

.billing-gate-page{min-height:100svh;padding:36px;background:radial-gradient(circle at 88% 8%,#dbeaff,transparent 30%),radial-gradient(circle at 8% 92%,#dff9f6,transparent 28%),linear-gradient(90deg,#1769e80a 1px,transparent 1px),linear-gradient(#1769e80a 1px,transparent 1px),#f8faff;background-size:auto,auto,42px 42px,42px 42px;display:grid;grid-template-rows:auto 1fr}.billing-brand{display:inline-flex;align-items:center;gap:11px;color:#0c1830;width:max-content}.billing-brand span,.billing-plan-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#0b2f76,#1769e8);font-size:18px;font-weight:900;box-shadow:0 9px 22px #1769e838}.billing-brand b{font-size:16px}.billing-brand em{color:#1769e8;font-style:normal}.billing-gate-card{width:min(980px,100%);margin:auto;display:grid;grid-template-columns:1.08fr .92fr;overflow:hidden;border:1px solid #dce4ef;border-radius:28px;background:#fff;box-shadow:0 35px 100px #122a4f20}.billing-offer{padding:58px;background:linear-gradient(145deg,#071a3d,#0d3475);color:#fff;position:relative;overflow:hidden}.billing-offer:after{content:"";position:absolute;width:330px;height:330px;border-radius:50%;right:-180px;top:-160px;border:1px solid #fff2;box-shadow:0 0 0 55px #fff08,0 0 0 110px #fff05}.billing-kicker{font-size:10px;letter-spacing:1.7px;color:#91bdff;font-weight:800}.billing-offer h1{font-size:42px;line-height:1.08;letter-spacing:-1.5px;margin:19px 0}.billing-offer h1 em{display:block;color:#5fa0ff;font-style:normal}.billing-offer>p{color:#c8d8ee;line-height:1.65;max-width:470px}.billing-offer ul{list-style:none;padding:0;margin:34px 0 0;display:grid;gap:15px;color:#e7f0fc;font-size:13px}.billing-offer li:first-letter{color:#55d9a5}.billing-price-panel{padding:52px;display:flex;flex-direction:column;justify-content:center}.trial-pill{width:max-content;padding:7px 11px;border-radius:999px;border:1px solid #cfe1ff;background:#f0f6ff;color:#1769e8;font-size:9px;letter-spacing:1.3px;font-weight:850}.billing-price{display:flex;align-items:center;margin:24px 0 14px;color:#0c1830}.billing-price sup{align-self:flex-start;margin-top:12px;font-size:19px;font-weight:800}.billing-price>b{font-size:72px;line-height:.9;letter-spacing:-5px}.billing-price>span{margin-left:14px;color:#728096;font-size:11px;line-height:1.45}.billing-price-panel>p{color:#65748a;line-height:1.6;font-size:12px}.billing-price-panel form{margin-top:20px}.billing-price-panel form button{width:100%;min-height:54px;justify-content:space-between;border:0;border-radius:12px;background:linear-gradient(110deg,#0d55cf,#2479ef);box-shadow:0 13px 28px #1769e83d}.billing-price-panel>small{display:block;text-align:center;color:#8793a5;line-height:1.5;margin:15px 0;font-size:9px}.billing-trust{display:flex;justify-content:center;gap:17px;padding-top:16px;border-top:1px solid #e6ebf2;color:#718096;font-size:9px}.billing-notice,.billing-owner-note,.billing-config-warning{padding:12px 14px;border-radius:10px;background:#fff8e8;border:1px solid #f5dfab;color:#77530a;font-size:11px;line-height:1.45}.billing-settings-card{padding:28px;max-width:850px}.billing-settings-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:24px;border-bottom:1px solid #e4e9f0}.billing-settings-head>div{display:flex;align-items:center;gap:14px}.billing-settings-head small{font-size:9px;letter-spacing:1.2px;color:#1769e8;font-weight:800}.billing-settings-head h2{margin:5px 0 0;font-size:22px}.billing-settings-head h2 em{font-size:12px;color:#7b8798;font-style:normal;font-weight:600}.billing-state{padding:7px 11px;border-radius:999px;background:#eef2f7;color:#56657a;font-size:10px;font-weight:800}.billing-state.state-active,.billing-state.state-trialing{background:#eaf9f3;color:#087451}.billing-state.state-past_due{background:#fff3eb;color:#b24b1a}.billing-details{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0}.billing-details div{padding:17px;border:1px solid #e1e7ef;border-radius:11px;background:#fafcff;display:grid;gap:7px}.billing-details small{font-size:8px;letter-spacing:.8px;color:#8090a5;font-weight:800}.billing-details b{font-size:12px}.billing-settings-card form button{min-height:46px}.billing-settings-help{color:#7a8799;font-size:10px;margin:17px 0 0}.billing-config-warning{margin-top:18px}
@media(max-width:800px){.billing-gate-page{padding:20px}.billing-gate-card{grid-template-columns:1fr;margin:28px auto}.billing-offer{padding:34px 25px}.billing-offer h1{font-size:31px}.billing-price-panel{padding:32px 25px}.billing-price>b{font-size:62px}.billing-details{grid-template-columns:1fr}.billing-settings-head{align-items:flex-start;gap:16px}.billing-trust{flex-wrap:wrap}}

.manual-billing-toolbar{margin:18px 0;padding:20px 22px;display:flex;align-items:center;justify-content:space-between;border-color:#cfe0fb;background:linear-gradient(110deg,#f8fbff,#eef5ff)}.manual-billing-toolbar>div{display:flex;align-items:center;gap:14px}.manual-billing-toolbar>div>span{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#1769e8;color:#fff;box-shadow:0 9px 22px #1769e833}.manual-billing-toolbar svg{width:19px}.manual-billing-toolbar small{font-size:8px;letter-spacing:1.2px;color:#1769e8;font-weight:850}.manual-billing-toolbar h2{margin:3px 0;font-size:17px}.manual-billing-toolbar p{margin:0;color:#718096;font-size:10px}.manual-billing-toolbar button{gap:8px;border-radius:10px}.manual-payment-history{margin:18px 0;overflow:hidden}.manual-payment-head,.manual-payment-history article{display:grid;grid-template-columns:1.4fr .8fr 1fr .8fr;gap:18px;align-items:center}.manual-payment-head{padding:11px 22px;background:#f8fafc;border-top:1px solid #e3e8ef;border-bottom:1px solid #e3e8ef;color:#8290a4;font-size:8px;letter-spacing:.8px;font-weight:800}.manual-payment-history article{padding:14px 22px;border-bottom:1px solid #edf0f4;font-size:11px}.manual-payment-history article:last-child{border-bottom:0}.manual-payment-history article div{display:grid;gap:4px}.manual-payment-history article small,.manual-payment-history article>span{color:#7c899b;font-size:9px}.manual-payment-history article strong{color:#087451}.manual-payment-card{width:min(650px,calc(100% - 30px));max-height:92vh;overflow:auto}.manual-payment-card .modal-head small{font-size:9px;letter-spacing:1.2px;color:#1769e8;font-weight:850}.manual-payment-card .modal-head h2{margin:5px 0 0}.manual-payment-card select,.manual-payment-card input,.manual-payment-card textarea{width:100%;margin-top:7px;border:1px solid #dce2eb;border-radius:8px;background:#fff;color:#172033;padding:11px;outline:0}.manual-payment-card select,.manual-payment-card input{height:46px}.manual-payment-card textarea{min-height:78px;resize:vertical}.manual-payment-card label{font-size:10px;font-weight:750}.manual-payment-card option:disabled{color:#a24b3d}.manual-payment-note,.manual-subscription-message{display:flex;align-items:flex-start;gap:11px;padding:13px 14px;margin:15px 0 20px;border-radius:10px;border:1px solid #cfe1ff;background:#f3f7ff;color:#52627a;font-size:10px;line-height:1.5}.manual-payment-note>svg,.manual-subscription-message>svg{width:19px;min-width:19px;color:#1769e8}.manual-payment-note span,.manual-subscription-message span{display:grid;gap:2px}.manual-payment-note b,.manual-subscription-message b{color:#172033}.manual-extension-preview{display:flex;align-items:center;gap:12px;margin:20px 0;padding:14px;border:1px solid #ccebdc;border-radius:10px;background:#f1fbf6}.manual-extension-preview>span{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;background:#159a68;color:#fff;font-size:17px;font-weight:850}.manual-extension-preview div{display:grid;gap:4px}.manual-extension-preview small{color:#667085;font-size:9px}.manual-subscription-message{margin-top:18px;border-color:#ccebdc;background:#f1fbf6}.manual-subscription-message>svg{color:#159a68}
@media(max-width:800px){.manual-billing-toolbar{align-items:flex-start;flex-direction:column}.manual-billing-toolbar button{width:100%}.manual-payment-head{display:none}.manual-payment-history article{grid-template-columns:1fr 1fr;gap:10px}.manual-payment-card .fields{grid-template-columns:1fr}}

.app>aside nav a[href="?page=new"]{display:none!important}.back-estimates{display:inline-flex;align-items:center;gap:8px;color:#d62f3d;font-size:14px;font-weight:800;margin-bottom:22px;padding:7px 0}.back-estimates:hover{color:#a91f2b}.back-estimates svg{width:18px;height:18px}.polished-head{align-items:flex-start!important}.polished-head>button{margin-top:4px}.modal{display:none;position:fixed;inset:0;z-index:100}.modal.open{display:grid;place-items:center}.modal-backdrop{position:absolute;inset:0;background:#10182899;backdrop-filter:blur(3px)}.modal-card{position:relative;z-index:2;width:min(720px,calc(100% - 30px));max-height:90vh;overflow:auto;background:#fff;border-radius:14px;padding:26px;box-shadow:0 30px 90px #10182840}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #e4e9f0;padding-bottom:17px;margin-bottom:21px}.modal-head h2{margin:0;font-size:20px}.modal-head small{color:#1769e8;font-size:9px;font-weight:800;letter-spacing:1px}.modal-head button{background:#f2f4f7!important;border:0!important;color:#344054!important;border-radius:50%;width:34px;height:34px;min-height:34px;padding:0;font-size:22px}.modal-card label{font-size:11px;font-weight:700}.modal-card input,.modal-card select,.modal-card textarea{width:100%;min-height:44px;border:1px solid #dde2ea;border-radius:7px;padding:10px 12px;margin-top:6px;background:#fff}.modal-card textarea{min-height:80px}.modal-card .wide{grid-column:1/3}.modal-card .check{display:flex;align-items:center;gap:8px}.modal-card .check input{width:18px;min-height:18px;margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #e4e9f0;margin-top:22px;padding-top:18px}.modal-actions button{min-width:120px}.modal-open{overflow:hidden}.warning-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:#fff1f2;color:#d62f3d;font-size:25px;font-weight:900;margin:auto}.confirm-card{text-align:center;max-width:430px}.confirm-card h2{margin:16px 0 8px}.confirm-card p{color:#667085;line-height:1.6}.inventory-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.inventory-stats article{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #dde2ea;border-radius:9px;padding:17px}.inventory-stats>article>svg{width:36px;height:36px;padding:8px;border-radius:8px;background:#eef4ff;color:#1769e8}.inventory-stats div{display:grid;gap:4px}.inventory-stats small{font-size:8px;color:#667085;font-weight:800}.inventory-stats b{font-size:20px}.inventory-tools{display:flex;margin-bottom:12px}.inventory-tools>div{position:relative;flex:1}.inventory-tools svg{position:absolute;left:13px;top:13px;width:17px;color:#98a2b3}.inventory-tools input{width:100%;height:44px;border:1px solid #dde2ea;border-radius:7px;padding:0 12px 0 40px}.product-table{overflow:hidden}.product-row{display:grid;grid-template-columns:48px minmax(220px,1fr) 150px 130px 90px;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid #e4e9f0}.product-row:last-child{border:0}.product-image{width:38px;height:38px;border-radius:8px;background:#eef4ff;color:#1769e8;display:grid;place-items:center}.product-image svg{width:19px}.product-row>div{display:grid;gap:4px}.product-row small{font-size:9px;color:#667085}.low-stock{color:#d62f3d}.record-actions{display:flex!important;flex-direction:row;justify-content:flex-end}.icon-button{width:34px!important;height:34px!important;min-height:34px!important;padding:0!important;background:#fff!important;color:#475467!important;border:1px solid #dde2ea!important}.icon-button svg{width:15px}.danger-icon{color:#d62f3d!important}.settings-modules{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:900px}.settings-modules>a{display:grid;grid-template-columns:48px 1fr 22px;align-items:center;gap:13px;background:#fff;border:1px solid #dde2ea;border-radius:11px;padding:20px;color:#172033;transition:.2s}.settings-modules>a:hover{border-color:#aac6f6;transform:translateY(-2px);box-shadow:0 8px 24px #1720330c}.settings-modules>a>span{width:43px;height:43px;border-radius:9px;background:#eef4ff;color:#1769e8;display:grid;place-items:center}.settings-modules svg{width:20px}.settings-modules>a>div{display:grid;gap:5px}.settings-modules small{color:#667085}.users-table{overflow:hidden}.users-table article{display:grid;grid-template-columns:45px 1fr auto;align-items:center;padding:14px 20px;border-bottom:1px solid #e4e9f0}.users-table article>div{display:grid;gap:4px}.users-table small{color:#667085}.quote-form select{width:100%;height:46px;border:1px solid #dde2ea;border-radius:7px;background:#fff;padding:0 12px;margin-top:7px}@media(max-width:850px){.inventory-stats{grid-template-columns:1fr 1fr}.product-row{grid-template-columns:45px 1fr auto}.product-row>div:nth-of-type(2){display:none}.product-row>div:nth-of-type(3){grid-column:2}.record-actions{grid-column:3;grid-row:1/3}.settings-modules{grid-template-columns:1fr}}@media(max-width:700px){.back-estimates{font-size:13px;margin-bottom:15px}.modal-card{padding:20px 15px}.modal-card .fields{grid-template-columns:1fr}.modal-card .wide{grid-column:auto}.inventory-stats{gap:8px}.inventory-stats article{padding:12px}.inventory-stats b{font-size:17px}.product-row{padding:12px}.settings-modules>a{padding:15px}}

.customer-list article,
.service-list article {
  display: grid;
  align-items: center;
  gap: 14px;
  min-height: 80px;
}

.customer-list article {
  grid-template-columns: 44px minmax(0, 1fr) 56px 88px !important;
  grid-template-rows: 1fr !important;
}

.customer-list article > .avatar {
  grid-column: 1 !important;
  grid-row: 1 !important;
}

.customer-list article > div:not(.record-actions) {
  grid-column: 2 !important;
  grid-row: 1 !important;
}

.customer-list article > em {
  display: inline-flex !important;
  grid-column: 3 !important;
  grid-row: 1 !important;
  align-items: center;
  justify-content: center;
}

.customer-list article > .record-actions {
  grid-column: 4 !important;
  grid-row: 1 !important;
}
.service-list article {
  grid-template-columns: 44px minmax(0, 1fr) 130px 88px !important;
  grid-template-rows: 1fr !important;
}

.service-list article > .service-icon {
  grid-column: 1 !important;
  grid-row: 1 !important;
}

.service-list article > div:not(.record-actions) {
  grid-column: 2 !important;
  grid-row: 1 !important;
}

.service-list article > strong {
  grid-column: 3 !important;
  grid-row: 1 !important;
}

.service-list article > .record-actions {
  grid-column: 4 !important;
  grid-row: 1 !important;
}

.customer-list article > div:nth-child(2),
.service-list article > div:nth-child(2) { min-width: 0; }

.customer-list b, .customer-list small,
.service-list b, .service-list small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.customer-list em {
  justify-self: center;
  border: 1px solid #dbe3ef;
  border-radius: 999px;
  padding: 5px 10px;
  color: #536176;
  font-size: 12px;
  font-style: normal;
}

.service-list strong { justify-self: end; white-space: nowrap; }
.record-actions { display: flex; justify-content: flex-end; gap: 8px; }
.record-actions .icon-button {
  display: inline-grid;
  width: 38px;
  height: 38px;
  padding: 0;
  place-items: center;
  border: 1px solid #d8e1ee;
  border-radius: 10px;
  background: #fff;
  color: #1769e8;
}
.record-actions .icon-button:hover { background: #eef5ff; }
.record-actions .danger-icon { color: #dc3545; }
.record-actions .danger-icon:hover { background: #fff1f2; border-color: #fecdd3; }
.record-actions svg { width: 17px; height: 17px; }

@media (max-width: 720px) {
  .customer-list article, .service-list article {
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: 10px;
    padding: 14px;
  }
  .customer-list article {
    grid-template-columns: 38px minmax(90px, 1fr) 42px 76px !important;
    gap: 7px;
  }
  .customer-list article > em { display: inline-flex !important; padding: 4px 7px; }
  .customer-list article > .record-actions { justify-content: flex-end; gap: 5px; }
  .customer-list .record-actions .icon-button { width: 34px; height: 34px; }
  .service-list article {
    grid-template-columns: 38px minmax(90px, 1fr) auto 76px !important;
    gap: 7px;
  }
  .service-list article > strong { font-size: 13px; }
  .service-list article > .record-actions { justify-content: flex-end; gap: 5px; }
  .service-list .record-actions .icon-button { width: 34px; height: 34px; }
}

.global-alert-toast {
  position: fixed !important;
  z-index: 10000 !important;
  top: 50% !important;
  left: 50% !important;
  display: flex !important;
  width: min(340px, calc(100vw - 32px)) !important;
  min-height: 84px;
  margin: 0 !important;
  padding: 16px 18px !important;
  align-items: center;
  gap: 13px;
  transform: translate(-50%, -46%) scale(.96);
  border: 1px solid #bbf7d0 !important;
  border-radius: 14px !important;
  background: #fff !important;
  color: #102217 !important;
  box-shadow: 0 14px 38px rgba(15,23,42,.16) !important;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}

.global-alert-toast.toast-success { border-color: #bbf7d0 !important; }
.global-alert-toast.toast-success .toast-check { background: #16a34a; }
.global-alert-toast.toast-warning { border-color: #fde68a !important; }
.global-alert-toast.toast-warning .toast-check { background: #d97706; }
.global-alert-toast.toast-error { border-color: #fecaca !important; }
.global-alert-toast.toast-error .toast-check { background: #dc2626; }

.global-alert-toast.toast-visible {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

.global-alert-toast.toast-leaving {
  opacity: 0;
  transform: translate(-50%, -54%) scale(.98);
}

.toast-check {
  display: grid;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 50%;
  background: #16a34a;
  color: #fff;
  font-size: 22px;
  font-weight: 800;
  line-height: 1;
}

.toast-copy { display: grid; min-width: 0; gap: 5px; text-align: left; }
.toast-copy b { color: #0f172a; font-size: 16px; line-height: 1.2; }
.toast-copy small { color: #64748b; font-size: 13px; line-height: 1.35; }

@media (max-width: 520px) {
  .global-alert-toast { min-height: 80px; padding: 15px 16px !important; border-radius: 13px !important; }
  .toast-check { flex-basis: 38px; width: 38px; height: 38px; font-size: 21px; }
  .toast-copy b { font-size: 16px; }
}

/* Carta vertical: 8.5 x 11 pulgadas */
.pdf-sheet {
  width: min(8.5in, 100%) !important;
  max-width: 8.5in !important;
  min-height: 11in !important;
  box-sizing: border-box !important;
  margin: 0 auto !important;
  padding: .5in !important;
}

.pdf-sheet > footer {
  margin-top: auto;
}

@page {
  size: Letter portrait;
  margin: .25in;
}

@media (max-width: 700px) {
  .pdf-sheet {
    width: 100% !important;
    min-height: calc((100vw - 24px) * 1.294) !important;
    padding: 24px 18px !important;
  }
}

@media print {
  html, body { width: 8.5in; min-height: 11in; }
  .pdf-sheet {
    width: 8in !important;
    max-width: 8in !important;
    min-height: 10.5in !important;
    padding: .25in !important;
    border: 0 !important;
    box-shadow: none !important;
  }
}

.pdf-sheet {
  --pdf-blue: #1769e8;
  --pdf-navy: #0b1f3a;
  --pdf-text: #000;
  --pdf-muted: #111827;
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  color: var(--pdf-text);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  border: 1px solid #dbe4ef !important;
  border-radius: 2px;
  box-shadow: 0 24px 60px rgba(15, 23, 42, .12) !important;
}

.pdf-sheet::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 9px;
  background: linear-gradient(90deg, var(--pdf-navy) 0 36%, var(--pdf-blue) 36% 100%);
}

.pdf-sheet > header {
  min-height: 56px;
  margin: 0 !important;
  padding: 6px 0 12px !important;
  align-items: center !important;
  border-bottom: 1px solid #dce5f0 !important;
}

.pdf-sheet > header img,
.pdf-sheet .pdf-logo {
  width: 46px !important;
  height: 46px !important;
  margin-right: 13px !important;
  padding: 4px;
  border: 1px solid #e2e8f0;
  border-radius: 10px !important;
  background: #fff;
  object-fit: contain;
}

.pdf-sheet > header > div h1 {
  margin: 0 0 4px !important;
  color: var(--pdf-navy);
  font-size: 20px !important;
  font-weight: 800;
  letter-spacing: -.35px;
}

.pdf-sheet > header > div p {
  margin: 3px 0 !important;
  color: #111827 !important;
  font-size: 10px !important;
}

.pdf-sheet > header > section {
  min-width: 138px;
  margin-left: auto !important;
  padding: 6px 12px;
  gap: 2px !important;
  border-radius: 10px;
  background: var(--pdf-navy);
  color: #fff;
  text-align: right;
}

.pdf-sheet > header > section span {
  color: #a9c7f6 !important;
  font-size: 8px !important;
  font-weight: 800;
  letter-spacing: 1.5px !important;
}

.pdf-sheet > header > section b {
  color: #fff;
  font-size: 16px !important;
  letter-spacing: .2px;
}

.pdf-sheet > header > section .pdf-status {
  display: inline-flex;
  margin-top: 2px;
  padding: 2px 7px;
  align-self: flex-end;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  color: #fff;
  font-size: 7px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: .7px;
  line-height: 1;
  text-transform: uppercase;
}

.pdf-sheet > header > section .pdf-status[data-status="cancelled"] { background:#fee2e2; border-color:#fecaca; color:#991b1b; }
.pdf-sheet > header > section .pdf-status[data-status="accepted"] { background:#ccfbf1; border-color:#99f6e4; color:#115e59; }
.pdf-sheet > header > section .pdf-status[data-status="paid"] { background:#dcfce7; border-color:#bbf7d0; color:#166534; }
.pdf-sheet > header > section .pdf-status[data-status="expired"] { background:#fef3c7; border-color:#fde68a; color:#92400e; }

.pdf-sheet.is-receipt > header > section { background: #087451; }
.pdf-sheet.is-receipt::before { background: linear-gradient(90deg, #0b1f3a 0 36%, #10a36d 36% 100%); }
.pdf-sheet.is-receipt .pdf-totals .grand { background: #087451; }
.pdf-sheet.is-receipt > footer { border-top-color: #10a36d !important; }

.pdf-meta {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 14px;
  margin: 14px 0 18px;
  padding: 0 !important;
  border: 0 !important;
}

.pdf-meta section {
  min-height: 68px;
  padding: 10px 14px;
  align-content: start;
  gap: 3px 10px !important;
  border: 1px solid #e1e8f1;
  border-radius: 12px;
  background: #f8fafc;
}

.pdf-meta section:last-child {
  grid-template-columns: 1fr auto;
  align-content: center;
  align-items: center;
  background: #f3f7fd;
}

.pdf-meta small {
  color: #111827 !important;
  font-size: 8px !important;
  font-weight: 800 !important;
  letter-spacing: .65px;
}

.pdf-meta b {
  color: var(--pdf-navy);
  font-size: 14px;
}

.pdf-meta p {
  margin: 2px 0 0;
  color: #111827 !important;
  font-size: 10px !important;
  line-height: 1.25 !important;
}

.pdf-sheet table {
  overflow: hidden;
  border: 1px solid #dce5f0;
  border-radius: 11px;
  border-collapse: separate !important;
  border-spacing: 0;
}

.pdf-sheet th {
  padding: 12px 13px !important;
  border: 0;
  background: var(--pdf-navy) !important;
  color: #d9e8ff !important;
  font-size: 8px !important;
  font-weight: 800;
  letter-spacing: .65px;
}

.pdf-sheet td {
  padding: 16px 13px !important;
  border-bottom: 1px solid #e2e8f0 !important;
  background: #fff;
  color: #000;
  font-size: 10.5px !important;
}

.pdf-sheet th:not(:first-child),
.pdf-sheet td:not(:first-child) { text-align: right; }

.pdf-totals {
  width: 330px !important;
  margin: 24px 0 28px auto !important;
  padding: 16px 18px;
  border: 1px solid #dce5f0;
  border-radius: 12px;
  background: #f8fafc;
}

.pdf-totals p {
  margin: 0 !important;
  padding: 6px 0;
  color: #000;
  font-size: 10.5px !important;
}

.pdf-totals p b { color: var(--pdf-navy); }
.pdf-totals .grand {
  margin: 8px -18px -2px !important;
  padding: 13px 18px !important;
  border-top: 0 !important;
  background: var(--pdf-blue);
  color: #fff !important;
  font-size: 16px !important;
}
.pdf-totals .grand b { color: #fff; font-size: 18px; }
.pdf-totals .grand + p { padding-top: 12px; color: var(--pdf-blue); font-weight: 700; }
.pdf-sheet > footer {
  display: flex;
  margin-top: auto;
  padding: 18px 0 0 !important;
  align-items: center;
  justify-content: space-between;
  border-top: 2px solid var(--pdf-blue) !important;
  color: #111827 !important;
  text-align: left !important;
}

.pdf-sheet > footer p { margin: 0; font-size: 9px; }
.pdf-sheet > footer span { color: var(--pdf-navy); font-size: 8px; font-weight: 700; }

@media (max-width: 700px) {
  .pdf-sheet > header > section { min-width: 120px; padding: 12px; }
  .pdf-meta { grid-template-columns: 1fr; }
  .pdf-meta section { min-height: auto; }
  .pdf-totals { width: min(330px, 100%) !important; }
}

@media print {
  .pdf-sheet { box-shadow: none !important; border: 0 !important; }
}

.estimate-list.card { overflow: visible !important; }
.estimate-record { position: relative; overflow: visible !important; z-index: 1; }
.estimate-record:has(.status-picker.open) { z-index: 100; }
.status-picker { position: relative; justify-self: center; z-index: 110; }
.status-trigger {
  display: inline-flex !important;
  min-width: 126px !important;
  min-height: 38px !important;
  padding: 8px 34px 8px 14px !important;
  align-items: center;
  justify-content: flex-start !important;
  gap: 9px;
  border: 1px solid #dbe4ef !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #334155 !important;
  box-shadow: 0 4px 14px rgba(15,23,42,.06);
  font-size: 12px;
  font-weight: 750;
  white-space: nowrap;
}
.status-trigger::before { content:""; width:8px; height:8px; flex:none; border-radius:50%; background:#94a3b8; }
.status-trigger::after {
  content:"";
  position:absolute;
  right:15px;
  width:7px;
  height:7px;
  margin-top:-4px;
  border-right:1.8px solid currentColor;
  border-bottom:1.8px solid currentColor;
  transform:rotate(45deg);
  transition:transform .18s ease;
}
.status-picker.open .status-trigger::after { margin-top:4px; transform:rotate(225deg); }
.status-trigger:hover { border-color:#b8c9e0 !important; box-shadow:0 7px 20px rgba(15,23,42,.09); }
.status-trigger:disabled { opacity:.65; cursor:wait; }

.status-menu {
  position:absolute;
  z-index:120;
  top:calc(100% + 8px);
  right:0;
  display:none;
  width:208px;
  padding:7px;
  border:1px solid #dbe4ef;
  border-radius:15px;
  background:rgba(255,255,255,.98);
  box-shadow:0 20px 48px rgba(15,23,42,.18);
  backdrop-filter:blur(16px);
}
.status-picker.open .status-menu { display:grid; animation:statusMenuIn .16s ease both; }
.status-option {
  display:grid !important;
  grid-template-columns:10px 1fr 18px;
  min-height:40px !important;
  padding:8px 10px !important;
  align-items:center;
  gap:10px;
  border:0 !important;
  border-radius:10px !important;
  background:transparent !important;
  color:#334155 !important;
  font-size:12px;
  font-weight:700;
  text-align:left;
}
.status-option:hover { background:#f1f5f9 !important; }
.status-option::before { content:""; width:9px; height:9px; border-radius:50%; background:#94a3b8; }
.status-option.current::after { content:"✓"; color:#1769e8; font-size:14px; font-weight:900; }

.status-trigger[data-status="sent"]::before,.status-option[data-status="sent"]::before{background:#3b82f6}
.status-trigger[data-status="accepted"]::before,.status-option[data-status="accepted"]::before{background:#14b8a6}
.status-trigger[data-status="paid"]::before,.status-option[data-status="paid"]::before{background:#16a34a}
.status-trigger[data-status="expired"]::before,.status-option[data-status="expired"]::before{background:#f59e0b}
.status-trigger[data-status="cancelled"]::before,.status-option[data-status="cancelled"]::before{background:#ef4444}
.status-trigger[data-status="paid"]{background:#effcf5!important;border-color:#bbf7d0!important;color:#087451!important}
.status-trigger[data-status="accepted"]{background:#effcfb!important;border-color:#bdece5!important;color:#0f766e!important}
.status-trigger[data-status="expired"]{background:#fff8ed!important}
.status-trigger[data-status="cancelled"]{background:#fff1f2!important;border-color:#fecdd3!important;color:#b91c1c!important}
.status-option[data-status="cancelled"]{color:#b91c1c!important;font-weight:800}
.status[data-status="cancelled"]{background:#fff1f2!important;border-color:#fecdd3!important;color:#b91c1c!important}

@keyframes statusMenuIn { from{opacity:0;transform:translateY(-5px) scale(.98)} to{opacity:1;transform:none} }
@media(max-width:700px){.status-trigger{min-width:110px!important}.status-menu{position:fixed;right:16px;left:16px;top:auto;bottom:84px;width:auto;max-height:60vh;overflow:auto}}

.app select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 42px !important;
  border: 1px solid #cfd9e7 !important;
  border-radius: 10px !important;
  background-color: #fff !important;
  background-image: linear-gradient(45deg,transparent 50%,#64748b 50%),linear-gradient(135deg,#64748b 50%,transparent 50%) !important;
  background-position: calc(100% - 18px) 50%,calc(100% - 13px) 50% !important;
  background-size: 5px 5px,5px 5px !important;
  background-repeat: no-repeat !important;
  color: #172033;
  box-shadow: 0 1px 2px rgba(15,23,42,.03);
  transition: border-color .16s ease,box-shadow .16s ease,background-color .16s ease;
}
.app select:hover { border-color:#9fb3cb !important; background-color:#fbfdff !important; }
.app select:focus { outline:0; border-color:#1769e8 !important; box-shadow:0 0 0 4px rgba(23,105,232,.11) !important; }

.axon-combobox { position:relative; width:100%; margin-top:7px; }
.axon-combobox > input { margin-top:0 !important; padding-right:42px !important; }
.axon-combobox::after {
  content:"";
  position:absolute;
  top:50%;
  right:17px;
  width:7px;
  height:7px;
  border-right:1.7px solid #64748b;
  border-bottom:1.7px solid #64748b;
  transform:translateY(-65%) rotate(45deg);
  pointer-events:none;
  transition:transform .16s ease;
}
.axon-combobox.open::after { transform:translateY(-20%) rotate(225deg); }
.axon-options {
  position:absolute;
  z-index:160;
  top:calc(100% + 8px);
  right:0;
  left:0;
  display:none;
  max-height:250px;
  overflow:auto;
  padding:7px;
  border:1px solid #cbd8e8;
  border-radius:13px;
  background:rgba(255,255,255,.99);
  box-shadow:0 18px 45px rgba(15,23,42,.18),0 3px 10px rgba(15,23,42,.06);
  backdrop-filter:blur(14px);
}
.axon-combobox.open .axon-options { display:grid; animation:axonListIn .16s ease both; }
.axon-option {
  position:relative;
  display:flex;
  min-height:43px;
  padding:10px 12px 10px 36px;
  align-items:center;
  border:1px solid transparent;
  border-radius:9px;
  color:#334155;
  font-size:13px;
  font-weight:650;
  cursor:pointer;
}
.axon-option::before {
  content:"";
  position:absolute;
  left:13px;
  width:9px;
  height:9px;
  border:2px solid #8db4f0;
  border-radius:50%;
  background:#eef5ff;
}
.axon-option + .axon-option { border-top-color:#eef2f6; }
.axon-option:hover,.axon-option.active { border-color:#dbe8fb; background:#f3f7ff; color:#1769e8; }
.axon-empty { padding:18px; color:#64748b; font-size:12px; text-align:center; }
@keyframes axonListIn { from{opacity:0;transform:translateY(-5px) scale(.99)} to{opacity:1;transform:none} }

@media(max-width:700px){
  .axon-options{position:fixed;right:14px;bottom:82px;left:14px;top:auto;max-height:48vh;border-radius:16px;padding:9px}
  .axon-option{min-height:48px;font-size:14px}
}

.detail-grid.invoice-view-ready { display:block !important; }
.detail-grid.invoice-view-ready > .action-panel { display:none !important; }
.estimate-view-actions {
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin:-2px 0 18px;
}
.estimate-view-actions button,.estimate-view-actions a {
  display:inline-flex;
  min-height:44px;
  padding:10px 17px;
  align-items:center;
  justify-content:center;
  gap:8px;
  border-radius:10px;
  font-size:12px;
  font-weight:750;
}
.estimate-view-actions svg { width:17px; height:17px; }
.estimate-view-actions .view-pdf { border:1px solid #cddbf0; background:#fff; color:#1769e8; }
.estimate-overview { overflow:hidden; border-radius:14px !important; }
.overview-head {
  display:flex;
  padding:22px 25px;
  align-items:center;
  gap:14px;
  border-bottom:1px solid #e2e8f0;
  background:linear-gradient(135deg,#fff,#f7faff);
}
.overview-head > span { display:grid; width:44px; height:44px; place-items:center; border-radius:11px; background:#eaf2ff; color:#1769e8; }
.overview-head svg { width:21px; }
.overview-head h1 { margin:0 0 4px; font-size:19px; }
.overview-head p { margin:0; color:#64748b; font-size:11px; }
.overview-grid { display:grid; grid-template-columns:1fr 1fr; gap:0; padding:5px 25px; }
.overview-grid article { min-height:92px; padding:20px 8px; border-bottom:1px solid #edf1f5; }
.overview-grid article:nth-child(odd) { border-right:1px solid #edf1f5; padding-right:25px; }
.overview-grid article:nth-child(even) { padding-left:25px; }
.overview-grid small { display:block; margin-bottom:8px; color:#64748b; font-size:9px; font-weight:800; letter-spacing:.7px; }
.overview-grid strong { display:block; color:#172033; font-size:14px; }
.overview-grid span { display:block; margin-top:5px; color:#64748b; font-size:11px; }
.overview-total { display:flex; margin:20px 25px 25px; padding:19px 22px; align-items:center; justify-content:space-between; border:1px solid #cfe0fb; border-radius:12px; background:#f2f7ff; }
.overview-total span { color:#475569; font-size:12px; }
.overview-total strong { color:#0b1f3a; font-size:25px; }
.overview-total small { display:block; margin-top:4px; color:#64748b; font-size:10px; text-align:right; }

#estimate-edit-modal .modal-card { width:min(820px,calc(100% - 30px)); padding:0 !important; }
#estimate-edit-modal .invoice-modal-head { display:flex; padding:23px 26px; align-items:center; justify-content:space-between; border-bottom:1px solid #e2e8f0; }
#estimate-edit-modal .invoice-modal-head div { display:grid; gap:4px; }
#estimate-edit-modal .invoice-modal-head small { color:#1769e8; font-size:9px; font-weight:850; letter-spacing:1px; }
#estimate-edit-modal .invoice-modal-head h2 { margin:0; font-size:21px; }
#estimate-edit-modal .invoice-modal-head button { width:36px; height:36px; min-height:36px; padding:0; border:0; border-radius:50%; background:#f1f5f9; color:#334155; font-size:23px; }
#estimate-edit-modal .fields { padding:24px 26px 0; }
#estimate-edit-modal .estimate-total { margin:23px 26px 0; }
#estimate-edit-modal .edit-estimate > button { width:calc(100% - 52px); margin:22px 26px 26px; border-radius:10px; }

@media(max-width:700px){
  .detail-head{align-items:flex-start}.detail-head>div{flex-wrap:wrap;justify-content:flex-end}
  .estimate-view-actions{display:grid;grid-template-columns:1fr 1fr}.estimate-view-actions button,.estimate-view-actions a{width:100%}
  .overview-grid{grid-template-columns:1fr;padding:4px 18px}.overview-grid article:nth-child(n){min-height:auto;padding:17px 4px;border-right:0}
  .overview-head{padding:19px}.overview-total{margin:18px;padding:17px}
  #estimate-edit-modal .fields{grid-template-columns:1fr;padding:20px 17px 0}
  #estimate-edit-modal .invoice-modal-head{padding:19px 17px}
  #estimate-edit-modal .estimate-total{margin:20px 17px 0}
  #estimate-edit-modal .edit-estimate>button{width:calc(100% - 34px);margin:20px 17px}
}

.whatsapp-row {
  display:inline-grid;
  width:42px;
  min-width:42px;
  height:42px;
  min-height:42px !important;
  padding:0 !important;
  place-items:center;
  border:1px solid #b9efd0;
  border-radius:10px;
  background:#effcf5;
  color:#0c9f55;
  transition:transform .16s ease,background .16s ease,box-shadow .16s ease;
  cursor:pointer;
}
.whatsapp-row:hover { transform:translateY(-1px); background:#dcf8e8; box-shadow:0 7px 18px rgba(22,163,74,.14); }
.whatsapp-row svg { width:21px; height:21px; fill:currentColor; }
.whatsapp-row:disabled { cursor:wait; opacity:.68; transform:none; }
.whatsapp-row.sharing svg { animation:share-pulse .75s ease-in-out infinite alternate; }
.whatsapp-row.share-ready { box-shadow:0 0 0 3px rgba(22,163,74,.1); }
.share-pdf-stage { position:fixed; left:-12000px; top:0; width:8.5in; height:auto; z-index:-1000; pointer-events:none; background:#fff; }
.share-pdf-stage .pdf-sheet { width:8.5in!important; max-width:none!important; min-height:11in!important; margin:0!important; box-shadow:none!important; }
.share-ready-card { max-width:430px!important; text-align:center; padding:30px!important; }
.share-ready-icon { width:52px;height:52px;border-radius:50%;display:grid;place-items:center;margin:0 auto 15px;background:#dcfce7;color:#15803d;font-size:27px;font-weight:800; }
.share-ready-card h2 { margin:0 0 8px; }
.share-ready-card p { margin:0 0 22px;color:#64748b;line-height:1.55; }
.share-ready-card .modal-actions { grid-template-columns:1fr 1fr; }
@keyframes share-pulse { to { transform:scale(.78); opacity:.55; } }
@media(max-width:700px){.whatsapp-row{width:40px;min-width:40px;height:40px;min-height:40px!important}}

/* Navigation progress indicator only. View-transition snapshots caused duplicate sidebar flashes. */
body::before{content:"";position:fixed;z-index:20000;top:0;left:230px;width:0;height:3px;opacity:0;background:linear-gradient(90deg,#1769e8,#60a5fa);box-shadow:0 1px 8px rgba(23,105,232,.35);transition:opacity .12s ease,width .28s ease}
body.axon-navigating::before{width:calc(100% - 230px);opacity:1}
body.axon-navigating .content>main{opacity:.72;transition:opacity .12s ease}
@media(max-width:700px){body::before{left:0}body.axon-navigating::before{width:100%}}
@media(prefers-reduced-motion:reduce){body::before{transition:none}}

.estimate-record {
  grid-template-columns:minmax(230px,1fr) 105px 150px 170px !important;
  gap:12px;
}
.estimate-record > strong { justify-self:end; }
.estimate-record > .status-picker { justify-self:end; }
.estimate-record > .row-actions { display:flex; min-width:0; align-items:center; justify-content:flex-end; gap:8px; }
.estimate-record .pdf-row { min-width:64px; height:42px; padding:0 10px; border-radius:10px; }
.edit-row {
  display:inline-grid !important;
  width:42px;
  min-width:42px !important;
  height:42px;
  min-height:42px !important;
  padding:0 !important;
  place-items:center;
  border:1px solid #cbd9ec !important;
  border-radius:10px !important;
  background:#fff !important;
  color:#1769e8 !important;
  transition:transform .16s ease,background .16s ease,box-shadow .16s ease;
}
.edit-row:hover { transform:translateY(-1px); background:#f1f6ff !important; box-shadow:0 7px 18px rgba(23,105,232,.13); }
.edit-row svg { width:18px; height:18px; }
.edit-row.loading { opacity:.6; pointer-events:none; }
.whatsapp-row.no-phone { border-color:#a9ebc5 !important; background:#eafaf1 !important; color:#0c9f55 !important; }

@media(max-width:1050px){
  .estimate-record{grid-template-columns:minmax(210px,1fr) 90px 140px!important}
  .estimate-record>.row-actions{grid-column:1/4;justify-content:flex-end;padding-top:4px}
}
@media(max-width:700px){
  .estimate-record{grid-template-columns:minmax(0,1fr) auto!important;gap:10px!important}
  .estimate-record>strong{display:none}.estimate-record>.status-picker{grid-column:2}
  .estimate-record>.row-actions{grid-column:1/3;justify-content:flex-end;padding-top:2px}
}

@media (max-width:700px) {
  html,body { max-width:100%; overflow-x:hidden; }
  body { -webkit-text-size-adjust:100%; }
  input,select,textarea { font-size:16px !important; }
  .content main { width:100%; padding:20px 15px calc(105px + env(safe-area-inset-bottom)); overflow:hidden; }
  .heading { min-width:0; margin-bottom:22px; }
  .heading h1 { max-width:100%; font-size:23px; line-height:1.16; overflow-wrap:break-word; }
  .heading>span,.heading div>span { line-height:1.45; }
  .module-head,.dashboard-heading,.polished-head,.estimates-head { width:100%; align-items:flex-start !important; }
  .module-head .heading,.dashboard-heading .heading,.estimates-head .heading { min-width:0; }
  .module-head>button,.module-head>.new,.estimates-head>.new {
    flex:0 0 44px;
    width:44px !important;
    height:44px !important;
    min-height:44px;
    padding:0 !important;
    border-radius:11px;
    font-size:0 !important;
  }
  .module-head>button svg,.module-head>.new svg,.estimates-head>.new svg { width:20px; height:20px; margin:0; }
  .inventory-stats { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:8px; }
  .inventory-stats article { min-width:0; padding:11px 9px; gap:8px; overflow:hidden; }
  .inventory-stats>article>svg { width:32px; height:32px; flex:0 0 32px; padding:7px; }
  .inventory-stats article div { min-width:0; }
  .inventory-stats small { display:block; overflow:hidden; font-size:7px; white-space:nowrap; text-overflow:ellipsis; }
  .inventory-stats b { display:block; overflow:hidden; font-size:16px; white-space:nowrap; text-overflow:ellipsis; }
  .product-table { overflow:visible; }
  .product-row {
    grid-template-columns:42px minmax(0,1fr) 72px !important;
    gap:9px !important;
    padding:12px 10px !important;
    overflow:hidden;
  }
  .product-row>div:first-of-type { min-width:0; }
  .product-row>div:first-of-type b,.product-row>div:first-of-type small { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
  .product-row>div:nth-of-type(3) { grid-column:2 !important; min-width:0; }
  .record-actions { grid-column:3 !important; grid-row:1/3 !important; width:72px; gap:5px; }
  .record-actions .icon-button { width:33px !important; height:36px !important; }

  .estimate-list.card { overflow:visible !important; }
  .estimate-record {
    grid-template-columns:minmax(0,1fr) 108px !important;
    gap:10px 8px !important;
    padding:13px 11px !important;
  }
  .estimate-record>div:first-child,.estimate-record>div:first-child>div { min-width:0; }
  .estimate-record>div:first-child b,.estimate-record>div:first-child small { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
  .estimate-record>.status-picker { width:108px; min-width:0; justify-self:end; }
  .estimate-record .status-trigger { width:108px !important; min-width:108px !important; padding:8px 27px 8px 11px !important; overflow:hidden; font-size:10px; text-overflow:ellipsis; }
  .estimate-record>.row-actions {
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr));
    grid-column:1/-1 !important;
    width:100%;
    gap:7px;
    padding-top:3px;
  }
  .estimate-record .row-actions a {
    width:100% !important;
    min-width:0 !important;
    height:40px !important;
    min-height:40px !important;
    padding:0 7px !important;
    border-radius:9px !important;
  }
  .estimate-record .whatsapp-row,.estimate-record .edit-row { display:grid !important; place-items:center; }
  .estimate-filters { gap:9px; }
  .estimate-filters label span { font-size:8px; }
  .quote-form { width:100%; max-width:100%; padding:20px 16px; }
  .quote-form .fields { gap:16px; }
  .back-estimates { margin-bottom:14px; }

  .calendar-card { overflow:hidden; }
  .calendar-toolbar h2 { min-width:0; font-size:16px; }
  .weekdays span { min-width:0; padding:7px 2px; font-size:7px; }
  .day { min-width:0; }
  .agenda-list article { grid-template-columns:48px minmax(0,1fr) !important; }
  .agenda-list article>div:nth-child(2) { min-width:0; }
  .agenda-list article>div:nth-child(2) b,.agenda-list article>div:nth-child(2) small { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
  .agenda-list article form { grid-column:2 !important; width:100%; }

  .report-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .report-stats article { min-width:0; }
  .invoice-status-grid { scroll-snap-type:x proximity; overscroll-behavior-inline:contain; }
  .invoice-status-card { scroll-snap-align:start; }
  .status-section-head h2 { font-size:15px; }
  .status-section-head p { max-width:220px; font-size:8px; }
  .status-section-head>span { flex:none; margin-left:8px; font-size:7px; }
  .report-grid { gap:12px; }

  .settings-modules>a,.more-grid>a { min-width:0; }
  .settings-modules>a>div,.more-grid>a>div { min-width:0; }
  .settings-modules strong,.settings-modules small,.more-grid strong,.more-grid span { overflow:hidden; text-overflow:ellipsis; }
  .logo-settings { flex-direction:column; }
  .logo-settings label { width:100%; }

  .modal { padding:10px 0 calc(10px + env(safe-area-inset-bottom)); align-items:end; }
  .modal-card {
    width:calc(100% - 16px);
    max-height:calc(100dvh - 20px - env(safe-area-inset-bottom));
    padding:18px 14px;
    border-radius:18px 18px 12px 12px;
  }
  .modal-actions { position:sticky; bottom:-18px; margin-right:-14px; margin-left:-14px; padding:13px 14px calc(13px + env(safe-area-inset-bottom)); background:#fff; }
  .modal-actions button { min-width:0; flex:1; }

  .global-alert-toast { top:46% !important; width:calc(100vw - 28px) !important; }
}

@media (max-width:380px) {
  .content main { padding-right:12px; padding-left:12px; }
  .inventory-stats article { padding:10px 7px; }
  .inventory-stats>article>svg { width:29px; height:29px; flex-basis:29px; }
}

.estimate-record > .status-picker,
.estimate-record > .row-actions {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

.status-menu form {
  width: 100%;
  margin: 0;
}

.status-menu form .status-option {
  width: 100%;
}

/* Axon Services estimate designer */
body.estimate-color-black{--document-accent:#111827;--document-accent-dark:#030712;--document-soft:#f3f4f6}
body.estimate-color-blue{--document-accent:#1769e8;--document-accent-dark:#0b1f3a;--document-soft:#eff6ff}
body.estimate-color-green{--document-accent:#059669;--document-accent-dark:#064e3b;--document-soft:#ecfdf5}
body.estimate-color-red{--document-accent:#dc2626;--document-accent-dark:#7f1d1d;--document-soft:#fef2f2}
body.estimate-color-yellow{--document-accent:#eab308;--document-accent-dark:#713f12;--document-soft:#fefce8}
body.estimate-color-purple{--document-accent:#7c3aed;--document-accent-dark:#3b0764;--document-soft:#faf5ff}

.document-module-heading{margin-bottom:22px}
.document-settings-form{display:grid;gap:16px;width:100%;max-width:1120px}
.document-settings-form .document-designer{padding:26px;scroll-margin-top:22px}
.document-designer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:24px}
.document-designer-head h2{margin:0 0 6px!important}
.document-designer-head p{margin:0;color:#64748b;font-size:12px;line-height:1.5}
.document-designer-head>span{flex:none;padding:7px 11px;border:1px solid #dbe7f7;border-radius:999px;background:#f4f8ff;color:#1769e8;font-size:10px;font-weight:800}
.document-designer h3{margin:22px 0 11px;color:#334155;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.template-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.template-choice{position:relative;display:block!important;min-width:0;cursor:pointer}
.template-choice>input,.document-color-choice>input{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;opacity:0!important;pointer-events:none!important;appearance:none!important}
.template-card{display:grid;gap:4px;height:100%;padding:10px;border:1px solid #dbe4ef;border-radius:13px;background:#fff;transition:border-color .16s,box-shadow .16s,transform .16s}
.template-choice:hover .template-card{transform:translateY(-2px);border-color:#a9c8f8;box-shadow:0 10px 24px rgba(15,23,42,.08)}
.template-choice>input:checked+.template-card{border-color:var(--preview-accent,#1769e8);box-shadow:0 0 0 3px color-mix(in srgb,var(--preview-accent,#1769e8) 14%,transparent),0 12px 28px rgba(15,23,42,.08)}
.template-card>strong{margin-top:5px;color:#0f172a;font-size:13px}
.template-card>small{color:#64748b;font-size:10px}
.template-real-preview{display:block;height:242px;overflow:hidden;border:1px solid #dbe4ef;border-radius:9px;background:#eef2f7;padding:9px}
.preview-document{position:relative;display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;padding:14px 14px 10px;border-radius:4px;background:#fff;color:#0f172a;box-shadow:0 4px 13px rgba(15,23,42,.08);font-style:normal}
.preview-document span,.preview-document b,.preview-document small,.preview-document em,.preview-document strong{box-sizing:border-box;font-style:normal}
.preview-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.preview-company{display:grid;grid-template-columns:25px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:7px;text-align:left}
.preview-company i{grid-row:1/3;display:grid;place-items:center;width:25px;height:25px;border-radius:5px;background:var(--preview-accent,#1769e8);color:#fff;font-size:10px;font-weight:900}
.preview-company b{font-size:8px;line-height:1.1}.preview-company small{color:#64748b;font-size:4px}
.preview-number{display:grid;gap:2px;text-align:right}.preview-number small,.preview-meta small{color:#64748b;font-size:4px;font-weight:900;letter-spacing:.08em}.preview-number b{font-size:8px}
.preview-rule{height:2px;margin:9px 0;background:var(--preview-accent,#1769e8)}
.preview-meta{display:grid;grid-template-columns:1fr .58fr;gap:7px;margin-bottom:9px;text-align:left}
.preview-meta>span{display:grid;gap:2px;min-height:42px;padding:7px;border:1px solid #e2e8f0;border-radius:5px;background:#f8fafc}
.preview-meta b{font-size:6px}.preview-meta em{color:#64748b;font-size:4px}
.preview-table{display:block;overflow:hidden;border:1px solid #e2e8f0;border-radius:5px}
.preview-table-head,.preview-table-row{display:grid;grid-template-columns:1fr 35px 45px;align-items:center;text-align:left}
.preview-table-head{padding:5px 6px;background:#0f2747;color:#fff}.preview-table-head b{font-size:4px}.preview-table-head b:not(:first-child),.preview-table-row em:not(:first-child){text-align:right}
.preview-table-row{padding:7px 6px;border-top:1px solid #e2e8f0}.preview-table-row em{font-size:5px}
.preview-total{display:grid;align-self:flex-end;width:47%;margin-top:8px;border:1px solid #e2e8f0;border-radius:5px;background:#f8fafc;overflow:hidden}
.preview-total small,.preview-total strong{display:flex;justify-content:space-between;padding:4px 6px;font-size:4px}.preview-total strong{background:var(--preview-accent,#1769e8);color:#fff;font-size:6px}
.preview-footer{margin-top:auto;padding-top:6px;border-top:1px solid var(--preview-accent,#1769e8);color:#64748b;text-align:center;font-size:4px}
.preview-modern .preview-document{padding:0 12px 10px}.preview-modern .preview-top{margin:0 -12px 8px;padding:12px;background:var(--preview-accent,#1769e8);color:#fff}.preview-modern .preview-company i{background:#fff;color:var(--preview-accent,#1769e8)}.preview-modern .preview-company small,.preview-modern .preview-number small{color:rgba(255,255,255,.75)}.preview-modern .preview-rule{display:none}.preview-modern .preview-meta>span{border:0;background:color-mix(in srgb,var(--preview-accent,#1769e8) 8%,#fff)}.preview-modern .preview-table-head{background:var(--preview-accent,#1769e8)}
.preview-executive .preview-document{border-left:5px solid var(--preview-accent,#1769e8);border-radius:0}.preview-executive .preview-company i{border-radius:0;background:#111827}.preview-executive .preview-number{padding:5px;border:1px solid var(--preview-accent,#1769e8)}.preview-executive .preview-table{border-radius:0;border-bottom:3px solid var(--preview-accent,#1769e8)}.preview-executive .preview-total{border-left:3px solid var(--preview-accent,#1769e8);border-radius:0}.preview-executive .preview-total strong{background:#111827}
.template-thumb{position:relative;display:block;height:116px;overflow:hidden;border:1px solid #e2e8f0;border-radius:9px;background:#fff}
.template-thumb i{position:absolute;display:block}
.template-thumb i:nth-child(1){left:12px;top:15px;width:29px;height:11px;border-radius:3px;background:var(--preview-accent,#1769e8)}
.template-thumb i:nth-child(2){right:12px;top:14px;width:36px;height:22px;border-radius:4px;background:#13233b}
.template-thumb i:nth-child(3){left:12px;right:12px;top:50px;height:26px;border-radius:4px;background:#f1f5f9;border-left:4px solid var(--preview-accent,#1769e8)}
.template-thumb i:nth-child(4){right:12px;bottom:12px;width:50px;height:18px;border-radius:4px;background:var(--preview-accent,#1769e8)}
.template-modern{background:linear-gradient(180deg,var(--preview-accent,#1769e8) 0 37px,#fff 37px)}
.template-modern i:nth-child(1){background:#fff}.template-modern i:nth-child(2){background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.5)}
.template-modern i:nth-child(3){border:0;border-radius:8px;background:#f8fafc;box-shadow:0 5px 14px rgba(15,23,42,.08)}
.template-executive{border-left:7px solid var(--preview-accent,#1769e8)}
.template-executive i:nth-child(1){background:#111827}.template-executive i:nth-child(2){border:2px solid var(--preview-accent,#1769e8);background:#fff}
.template-executive i:nth-child(3){border-left:0;border-bottom:3px solid var(--preview-accent,#1769e8);border-radius:0;background:#f8fafc}
.template-executive i:nth-child(4){background:#111827;border-left:5px solid var(--preview-accent,#1769e8)}
.document-designer:has(input[name="estimate_color"][value="black"]:checked){--preview-accent:#111827}
.document-designer:has(input[name="estimate_color"][value="blue"]:checked){--preview-accent:#1769e8}
.document-designer:has(input[name="estimate_color"][value="green"]:checked){--preview-accent:#059669}
.document-designer:has(input[name="estimate_color"][value="red"]:checked){--preview-accent:#dc2626}
.document-designer:has(input[name="estimate_color"][value="yellow"]:checked){--preview-accent:#eab308}
.document-designer:has(input[name="estimate_color"][value="purple"]:checked){--preview-accent:#7c3aed}
.document-color-picker{display:grid;grid-template-columns:repeat(3,minmax(105px,1fr));gap:10px}
.document-color-choice{display:flex!important;align-items:center;gap:9px;min-height:46px;padding:9px 12px!important;border:1px solid #dbe4ef;border-radius:10px;background:#fff;cursor:pointer;transition:border-color .16s,box-shadow .16s}
.document-color-choice>span{width:22px;height:22px;flex:none;border:4px solid #fff;border-radius:50%;background:var(--choice-color);box-shadow:0 0 0 1px #cbd5e1}
.document-color-choice>b{color:#334155;font-size:12px}
.document-color-choice:has(input:checked){border-color:var(--choice-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--choice-color) 13%,transparent)}
.document-color-choice:has(input:checked)>span{box-shadow:0 0 0 2px var(--choice-color)}
.document-settings-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.document-settings-actions>a,.document-settings-actions>button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:11px;font-size:13px;font-weight:800;text-decoration:none}
.document-settings-actions>a{border:1px solid #d7e0ec;background:#fff;color:#334155}
.document-settings-actions>button{width:auto;margin:0;border:1px solid #1769e8;background:#1769e8;color:#fff;cursor:pointer}
.document-settings-actions svg{width:17px;height:17px}

/* Shared document color */
.pdf-sheet{--pdf-blue:var(--document-accent,#1769e8);--pdf-navy:var(--document-accent-dark,#0b1f3a)}
.pdf-sheet::before{background:linear-gradient(90deg,var(--pdf-navy) 0 36%,var(--document-accent) 36% 100%)}
.pdf-totals .grand{background:var(--document-accent)}
.pdf-totals .grand + p{color:var(--document-accent)}
.pdf-sheet>footer{border-top-color:var(--document-accent)!important}

/* Classic: structured, understated and familiar */
.estimate-template-classic .pdf-meta section:first-child{border-left:5px solid var(--document-accent)}
.estimate-template-classic .pdf-sheet th{box-shadow:inset 0 -3px var(--document-accent)}

/* Modern: color-forward header and softer content cards */
.estimate-template-modern .pdf-sheet::before{height:12px;background:var(--document-accent)}
.estimate-template-modern .pdf-sheet>header{min-height:72px;margin:0 0 14px!important;padding:12px 18px!important;border:0!important;border-radius:12px;background:var(--document-accent)}
.estimate-template-modern .pdf-sheet>header>div h1,.estimate-template-modern .pdf-sheet>header>div p{color:#fff!important}
.estimate-template-modern .pdf-sheet>header>section{background:rgba(15,23,42,.2);border:1px solid rgba(255,255,255,.25);box-shadow:none}
.estimate-template-modern .pdf-sheet>header>section span{color:rgba(255,255,255,.75)!important}
.estimate-template-modern .pdf-meta{margin-top:0}
.estimate-template-modern .pdf-meta section{border:0;border-radius:16px;background:var(--document-soft);box-shadow:inset 0 0 0 1px #bfd1ee}
.estimate-template-modern .pdf-sheet table{border-radius:15px}
.estimate-template-modern .pdf-sheet th{background:var(--document-accent)!important;color:#fff!important}
.estimate-template-modern .pdf-totals{border:0;background:var(--document-soft);box-shadow:inset 0 0 0 1px #bfd1ee}

/* Executive: restrained dark typography with a premium accent rail */
.estimate-template-executive .pdf-sheet{border-left:10px solid var(--document-accent)!important}
.estimate-template-executive .pdf-sheet::before{top:0;right:0;bottom:auto;left:0;height:4px;background:var(--document-accent)}
.estimate-template-executive .pdf-sheet>header>section{border:2px solid var(--document-accent);background:#fff;color:#0f172a}
.estimate-template-executive .pdf-sheet>header>section span{color:var(--document-accent)!important}
.estimate-template-executive .pdf-sheet>header>section b{color:#0f172a}
.estimate-template-executive .pdf-meta section{border-radius:4px;background:#fff}
.estimate-template-executive .pdf-meta section:first-child{border-left:6px solid var(--document-accent)}
.estimate-template-executive .pdf-meta section:last-child{background:#f8fafc}
.estimate-template-executive .pdf-sheet table{border-radius:4px;border-bottom:4px solid var(--document-accent)}
.estimate-template-executive .pdf-sheet th{background:#111827!important;color:#fff!important}
.estimate-template-executive .pdf-totals{border-radius:4px;border-left:6px solid var(--document-accent);background:#fff}
.estimate-template-executive .pdf-totals .grand{background:#111827}

@media(max-width:760px){
  .document-settings-form .document-designer{padding:18px}
  .document-designer-head{display:grid}.document-designer-head>span{justify-self:start}
  .template-picker{grid-template-columns:1fr}.template-thumb{height:105px}.template-real-preview{height:270px}
  .document-color-picker{grid-template-columns:1fr 1fr}
  .document-settings-actions{display:grid;grid-template-columns:1fr 1fr}
  .document-settings-actions>a,.document-settings-actions>button{width:100%}
}

@media print{
  .pdf-sheet{--pdf-blue:var(--document-accent,#1769e8)!important}
}

.tax-settings-form { max-width:900px; display:grid; gap:16px; }
.tax-settings-card { padding:28px; }
.tax-card-intro { display:flex; align-items:center; gap:16px; padding-bottom:24px; margin-bottom:24px; border-bottom:1px solid var(--line); }
.tax-card-intro>span { width:52px; height:52px; border-radius:14px; display:grid; place-items:center; color:var(--blue); background:#edf4ff; }
.tax-card-intro>span svg { width:25px; }
.tax-card-intro h2 { margin:0 0 5px; font-size:20px; }
.tax-card-intro p { margin:0; color:var(--muted); line-height:1.45; }
.tax-fields { display:grid; grid-template-columns:1.45fr .75fr; gap:18px; }
.tax-fields label { color:#344054; font-size:12px; font-weight:750; }
.tax-fields input { width:100%; height:52px; margin-top:8px; padding:0 14px; border:1px solid var(--line); border-radius:10px; background:#fff; font-size:15px; outline:0; }
.tax-fields input:focus { border-color:var(--blue); box-shadow:0 0 0 3px #1769e812; }
.percent-input { position:relative; }
.percent-input input { padding-right:46px; }
.percent-input span { position:absolute; right:16px; top:26px; color:var(--muted); font-weight:800; }
.tax-toggle { display:flex; align-items:center; gap:14px; margin-top:24px; padding:18px; border:1px solid #d7e4fa; border-radius:12px; background:#f7faff; cursor:pointer; }
.tax-toggle>input { position:absolute; opacity:0; pointer-events:none; }
.toggle-track { width:48px; min-width:48px; height:27px; padding:3px; border-radius:20px; background:#b8c3d1; transition:.18s ease; }
.toggle-track i { display:block; width:21px; height:21px; border-radius:50%; background:#fff; box-shadow:0 2px 6px #0f172a28; transition:.18s ease; }
.tax-toggle>input:checked+.toggle-track { background:var(--blue); }
.tax-toggle>input:checked+.toggle-track i { transform:translateX(21px); }
.tax-toggle>span:last-child { display:grid; gap:4px; }
.tax-toggle small { color:var(--muted); font-weight:500; }
.tax-settings-actions { display:flex; justify-content:flex-end; gap:10px; }
.tax-settings-actions a,.tax-settings-actions button { min-width:150px; }
@media(max-width:700px){.tax-settings-card{padding:20px 16px}.tax-fields{grid-template-columns:1fr}.tax-settings-actions{display:grid;grid-template-columns:1fr 1fr}.tax-settings-actions a,.tax-settings-actions button{min-width:0}.tax-toggle{align-items:flex-start}}

/* Compact phone preview without changing the Letter-sized exported PDF. */
@media (min-width:701px) {
  .pdf-sheet .pdf-totals { margin:auto 0 28px auto !important; }
  .pdf-sheet > footer { margin-top:0 !important; }
}

@media (max-width:700px) {
  .pdf-sheet:not(.pdf-exporting) {
    width:100% !important;
    min-height:auto !important;
    padding:14px 12px 18px !important;
    overflow:visible !important;
  }

  .pdf-sheet:not(.pdf-exporting) > header {
    display:grid !important;
    grid-template-columns:36px minmax(0,1fr) 86px;
    gap:8px;
    min-height:0 !important;
    margin:0 0 8px !important;
    padding:8px 0 10px !important;
    align-items:center !important;
  }
  .pdf-sheet:not(.pdf-exporting) > header img,
  .pdf-sheet:not(.pdf-exporting) .pdf-logo {
    width:36px !important;
    height:36px !important;
    margin:0 !important;
    padding:3px !important;
    border-radius:8px !important;
  }
  .pdf-sheet:not(.pdf-exporting) > header > div { min-width:0; }
  .pdf-sheet:not(.pdf-exporting) > header > div h1 {
    margin:0 0 2px !important;
    font-size:13px !important;
    line-height:1.08 !important;
    overflow-wrap:anywhere;
  }
  .pdf-sheet:not(.pdf-exporting) > header > div p {
    margin:1px 0 !important;
    overflow:hidden;
    font-size:7px !important;
    line-height:1.2;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .pdf-sheet:not(.pdf-exporting) > header > section {
    width:86px;
    min-width:0 !important;
    margin:0 !important;
    padding:7px 8px !important;
    border-radius:8px !important;
  }
  .pdf-sheet:not(.pdf-exporting) > header > section span { font-size:6px !important; letter-spacing:.8px !important; }
  .pdf-sheet:not(.pdf-exporting) > header > section b { font-size:12px !important; }
  .pdf-sheet:not(.pdf-exporting) > header > section .pdf-status { display:none !important; }

  .estimate-template-modern .pdf-sheet:not(.pdf-exporting) > header {
    margin:0 0 8px !important;
    padding:9px 10px !important;
    border-radius:9px !important;
  }

  .pdf-sheet:not(.pdf-exporting) .pdf-meta {
    grid-template-columns:minmax(0,1fr) minmax(104px,.72fr) !important;
    gap:6px !important;
    margin:7px 0 9px !important;
  }
  .pdf-sheet:not(.pdf-exporting) .pdf-meta section {
    min-height:52px !important;
    padding:7px 9px !important;
    gap:2px 5px !important;
    border-radius:8px !important;
  }
  .pdf-sheet:not(.pdf-exporting) .pdf-meta small { font-size:6px !important; letter-spacing:.45px; }
  .pdf-sheet:not(.pdf-exporting) .pdf-meta b { font-size:9px !important; line-height:1.2; }
  .pdf-sheet:not(.pdf-exporting) .pdf-meta p { margin:1px 0 0 !important; font-size:6.5px !important; overflow-wrap:anywhere; }

  .pdf-sheet:not(.pdf-exporting) table { border-radius:8px; }
  .pdf-sheet:not(.pdf-exporting) th { padding:7px 6px !important; font-size:6px !important; letter-spacing:.35px; }
  .pdf-sheet:not(.pdf-exporting) td { padding:9px 6px !important; font-size:7.5px !important; line-height:1.25; }

  .pdf-sheet:not(.pdf-exporting) .pdf-totals {
    width:min(235px,100%) !important;
    margin:12px 0 13px auto !important;
    padding:9px 10px !important;
    border-radius:8px !important;
  }
  .pdf-sheet:not(.pdf-exporting) .pdf-totals p { padding:3px 0 !important; font-size:7.5px !important; }
  .pdf-sheet:not(.pdf-exporting) .pdf-totals .grand { margin:5px -10px -1px !important; padding:8px 10px !important; font-size:11px !important; }
  .pdf-sheet:not(.pdf-exporting) .pdf-totals .grand b { font-size:13px !important; }
  .pdf-sheet:not(.pdf-exporting) > footer { padding-top:9px !important; }
  .pdf-sheet:not(.pdf-exporting) > footer p { font-size:6.5px !important; }

  /* Restore desktop document geometry while html2pdf captures on a phone. */
  .pdf-sheet.pdf-exporting,
  .public-document .pdf-sheet.pdf-exporting,
  .share-pdf-stage .pdf-sheet.pdf-exporting {
    display:flex !important;
    width:8in !important;
    max-width:8in !important;
    min-height:10.4in !important;
    margin:0 !important;
    padding:.4in !important;
    overflow:hidden !important;
  }
  .pdf-sheet.pdf-exporting > header {
    display:flex !important;
    min-height:56px !important;
    margin:0 !important;
    padding:6px 0 12px !important;
  }
  .pdf-sheet.pdf-exporting > header img,
  .pdf-sheet.pdf-exporting .pdf-logo {
    width:46px !important;
    height:46px !important;
    margin-right:13px !important;
    padding:4px !important;
  }
  .pdf-sheet.pdf-exporting > header > div h1 { font-size:20px !important; }
  .pdf-sheet.pdf-exporting > header > div p { margin:3px 0 !important; font-size:10px !important; }
  .pdf-sheet.pdf-exporting > header > section { min-width:138px !important; padding:6px 12px !important; }
  .pdf-sheet.pdf-exporting > header > section b { font-size:16px !important; }
  .pdf-sheet.pdf-exporting .pdf-meta { grid-template-columns:minmax(0,1fr) 220px !important; gap:14px !important; margin:14px 0 18px !important; }
  .pdf-sheet.pdf-exporting .pdf-meta section { min-height:68px !important; padding:10px 14px !important; border-radius:12px !important; }
  .pdf-sheet.pdf-exporting .pdf-meta small { font-size:8px !important; }
  .pdf-sheet.pdf-exporting .pdf-meta b { font-size:14px !important; }
  .pdf-sheet.pdf-exporting .pdf-meta p { font-size:10px !important; }
  .pdf-sheet.pdf-exporting th { padding:12px 13px !important; font-size:8px !important; }
  .pdf-sheet.pdf-exporting td { padding:16px 13px !important; font-size:10.5px !important; }
  .pdf-sheet.pdf-exporting .pdf-totals { width:330px !important; margin:auto 0 28px auto !important; padding:16px 18px !important; border-radius:12px !important; }
  .pdf-sheet.pdf-exporting .pdf-totals p { padding:6px 0 !important; font-size:10.5px !important; }
  .pdf-sheet.pdf-exporting .pdf-totals .grand { margin:8px -18px -2px !important; padding:13px 18px !important; font-size:16px !important; }
  .pdf-sheet.pdf-exporting > footer { margin-top:0 !important; padding-top:18px !important; }
  .pdf-sheet.pdf-exporting > footer p { font-size:9px !important; }
  .estimate-template-modern .pdf-sheet.pdf-exporting > header {
    min-height:72px !important;
    margin:0 0 14px !important;
    padding:12px 18px !important;
    border-radius:12px !important;
  }
}

/* Responsive safety layer for phones, including iOS Safari. */
html,
body,
.app,
.content,
.content main {
  min-width: 0;
  max-width: 100%;
}

img,
video,
canvas {
  max-width: 100%;
  height: auto;
}

input,
select,
textarea,
button {
  max-width: 100%;
}

@media (max-width: 820px), (max-height: 520px) and (max-width: 950px) {
  body.modal-open {
    overflow: hidden !important;
  }

  .modal {
    overscroll-behavior: contain;
  }

  .modal-card {
    max-width: 100%;
    max-height: calc(100vh - 12px);
    max-height: calc(100dvh - 12px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scroll-padding-bottom: calc(88px + env(safe-area-inset-bottom));
  }

  .modal-actions {
    position: sticky !important;
    z-index: 25;
    bottom: 0 !important;
    margin-bottom: -18px;
    padding-bottom: calc(13px + env(safe-area-inset-bottom)) !important;
    box-shadow: 0 -10px 24px rgba(15, 23, 42, .08);
  }

  /* The estimate editor occupies the visual viewport and owns its scrolling. */
  .estimate-create-modal {
    z-index: 1000 !important;
  }

  .estimate-create-modal.open {
    display: flex !important;
    inset: 0;
    align-items: stretch !important;
    justify-content: stretch;
    padding: 0 !important;
    background: #fff;
  }

  .estimate-create-modal .modal-backdrop {
    display: none;
  }

  .estimate-create-modal .estimate-builder {
    width: 100vw !important;
    height: 100vh;
    height: 100dvh;
    max-height: 100vh !important;
    max-height: 100dvh !important;
    margin: 0;
    padding-bottom: calc(82px + env(safe-area-inset-bottom)) !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none;
    scroll-padding-top: 74px;
    scroll-padding-bottom: calc(96px + env(safe-area-inset-bottom));
  }

  .estimate-create-modal .builder-head {
    position: sticky;
    z-index: 30;
    top: 0;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 5px 16px rgba(15, 23, 42, .06);
    backdrop-filter: blur(12px);
  }

  /* One scroll container avoids the lock seen when several line items exist. */
  .estimate-create-modal .builder-lines {
    max-height: none !important;
    overflow: visible !important;
  }

  .estimate-create-modal .builder-actions {
    position: fixed !important;
    z-index: 1100;
    right: 0;
    bottom: 0 !important;
    left: 0;
    margin: 0;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom)) !important;
    border-top: 1px solid #d8e1ec;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 -12px 30px rgba(15, 23, 42, .14);
    backdrop-filter: blur(14px);
  }

  .estimate-create-modal .builder-actions button {
    min-width: 0 !important;
    min-height: 46px;
    flex: 1 1 0;
  }

  body.modal-open .mobile-nav {
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .content main,
  .card,
  .table,
  .data-list,
  .product-table,
  .users-table,
  .accounts-table,
  .settings-section,
  .settings-card,
  .quote-form,
  .drawer-form {
    min-width: 0;
    max-width: 100%;
  }

  .fields > *,
  .builder-customer > *,
  .builder-add > *,
  .builder-bottom > *,
  .detail-grid > *,
  .settings-modules > *,
  .report-grid > *,
  .owner-grid > * {
    min-width: 0;
  }

  .tax-settings-actions,
  .document-settings-actions {
    position: sticky;
    z-index: 20;
    bottom: calc(68px + env(safe-area-inset-bottom));
    padding: 10px 0;
    background: #fff;
    box-shadow: 0 -8px 18px rgba(15, 23, 42, .06);
  }
}

@media (max-width: 380px) {
  .content main {
    padding-right: 10px !important;
    padding-left: 10px !important;
  }

  .estimate-create-modal .builder-customer,
  .estimate-create-modal .builder-add,
  .estimate-create-modal .builder-bottom {
    padding-right: 12px;
    padding-left: 12px;
  }

  .estimate-create-modal .builder-lines {
    margin-right: 12px;
    margin-left: 12px;
  }

  .owner-stats,
  .report-stats {
    grid-template-columns: 1fr !important;
  }

  .permission-grid {
    grid-template-columns: 1fr !important;
  }

  .modal-actions,
  .estimate-create-modal .builder-actions {
    gap: 8px;
  }
}

@media (orientation: landscape) and (max-height: 520px) {
  .estimate-create-modal .builder-head {
    padding-top: 10px;
    padding-bottom: 9px;
  }

  .estimate-create-modal .builder-head p {
    display: none;
  }

  .estimate-create-modal .builder-head h2 {
    font-size: 18px;
  }

  .estimate-create-modal .builder-actions button {
    min-height: 42px;
  }
}

@import url("list-fix.css?v=24");
@import url("success-toast.css?v=52");
@import url("print-portrait.css?v=22");
@import url("pdf-premium.css?v=79");
@import url("quick-status.css?v=58");
@import url("lists-2026.css?v=33");
@import url("invoice-detail.css?v=56");
@import url("whatsapp-share.css?v=66");
@import url("navigation-2026.css?v=40");
@import url("estimate-actions.css?v=40");
@import url("report-statuses.css?v=58");
@import url("mobile-polish.css?v=50");
@import url("estimates-stable.css?v=53");
@import url("estimate-templates.css?v=76");
@import url("estimate-builder.css?v=90");
@import url("schedule-interactions.css?v=72");
@import url("schedule-express.css?v=11");
@import url("tax-settings.css?v=69");
@import url("settings-compact.css?v=80");
@import url("pdf-mobile-compact.css?v=2");
@import url("mobile-responsive-fix.css?v=1");
input[type="number"]{-moz-appearance:textfield!important;appearance:textfield!important}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none!important;appearance:none!important;margin:0!important}

/* Task module: shared palette, columns, controls and responsive layout. */
.status-scheduled,.status-confirmed,.status-rescheduled,.task-summary-scheduled,.calendar-card .event.scheduled,.calendar-card .event.confirmed,.calendar-card .event.rescheduled{--task-bg:#eff6ff;--task-color:#1d4ed8;--task-border:#bfdbfe;--task-accent:#3b82f6}
.status-in_progress,.status-en_route,.task-summary-in_progress,.calendar-card .event.in_progress,.calendar-card .event.en_route{--task-bg:#fff7ed;--task-color:#9a3412;--task-border:#fed7aa;--task-accent:#f97316}
.status-completed,.task-summary-completed,.calendar-card .event.completed{--task-bg:#ecfdf5;--task-color:#047857;--task-border:#a7f3d0;--task-accent:#10b981}
.status-cancelled,.status-no_show,.task-summary-cancelled,.calendar-card .event.cancelled,.calendar-card .event.no_show{--task-bg:#fef2f2;--task-color:#b91c1c;--task-border:#fecaca;--task-accent:#ef4444}

/* Overview and period filters. */
.task-agenda{margin:20px 0;padding:22px;scroll-margin-top:16px;--task-columns:78px minmax(0,1fr) 160px}
.task-agenda-heading h2{margin:0 0 7px}.task-agenda-heading p{color:#667085;font-size:13px;line-height:1.5}
.task-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:18px 0}
.task-summary a{display:grid;gap:5px;padding:15px;border:1px solid var(--task-border,#dce5f2);border-radius:12px;text-decoration:none;background:var(--task-bg,#f7faff);color:var(--task-color,#1769e8);min-width:0;transition:box-shadow .16s ease,transform .16s ease}
.task-summary a:hover{box-shadow:0 5px 15px #17203314;transform:translateY(-1px)}
.task-summary a[aria-current="page"]{box-shadow:0 0 0 2px var(--task-accent,#1769e8),0 5px 15px #17203314}
.task-summary strong{font-size:26px}.task-summary span{font-size:13px}
.task-range-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end}
.task-range-filters label{display:grid;gap:6px;flex:1 1 155px;min-width:0;font-size:13px;font-weight:700}
.task-range-filters input,.task-range-filters select{width:100%;min-width:0;height:46px;border:1px solid #d6e0ee;border-radius:10px;padding:0 10px;background:#fff;color:#1e293b;box-sizing:border-box;font:inherit}
.task-range-filters button[type=submit]{min-height:46px}
.task-agenda nav.task-date-shortcuts{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;margin:12px 0 4px;min-width:0}
.task-agenda nav.task-date-shortcuts a{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-height:32px;box-sizing:border-box;border:1px solid #d5e3f8;border-radius:999px;padding:5px 12px;background:#fff;color:#1769e8;font-size:12px;font-weight:700;line-height:1.2;text-decoration:none;white-space:nowrap;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.task-agenda nav.task-date-shortcuts a:hover{border-color:#9fc3ff;background:#f1f7ff;box-shadow:0 3px 10px #1769e81a;transform:translateY(-1px)}
.task-agenda nav.task-date-shortcuts a.active{border-color:#1769e8;background:#eff6ff;color:#1557c0;box-shadow:inset 0 0 0 1px #1769e81a}
.task-empty{padding:20px;text-align:center;color:#667085}
.task-save-error{padding:12px 14px;border-radius:10px;font-size:14px;font-weight:650;background:#fef2f2;color:#b91c1c;border:1px solid #fca5a5}

/* One four-column grid for both headings and task rows. */
.task-day h3{padding:12px 0 8px;margin:0;color:#334155;font-size:16px}
.task-day h3 small{margin-left:10px;font-size:12px;color:#667085;font-weight:400}
.task-column-head,.task-day-item{display:grid;grid-template-columns:var(--task-columns);gap:14px;align-items:center;box-sizing:border-box;padding:12px 14px;border:1px solid transparent;border-left-width:4px}
.task-column-head{font-size:12px;font-weight:750;color:#526174;background:#f8fafc;border-radius:10px}
.task-day-item{margin:8px 0;border-color:var(--task-border,#e2e8f0);border-left-color:var(--task-accent,#cbd5e1);border-radius:12px;background:var(--task-bg,#fff);min-width:0}
.task-day-item>[role=cell]{min-width:0;overflow-wrap:anywhere}
.task-hour,.task-hour-heading{text-align:center}.task-hour{font-size:13px;font-weight:700;color:#334155;font-variant-numeric:tabular-nums;white-space:nowrap}
.task-service{display:grid;gap:5px}.task-service b{font-size:14px;line-height:1.4}.task-service a{font-size:12px;color:#1769e8;justify-self:start}
.task-state-form{display:block;margin:0;padding:0;min-width:0;width:100%}.task-state-form label{display:block;min-width:0;margin:0}
.task-cell-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.task-status-select{width:100%;min-height:44px;box-sizing:border-box;border:1px solid var(--task-border,#d6e0ee);border-radius:10px;padding:8px 12px;background:var(--task-bg,#fff);color:var(--task-color,#334155);font-size:14px;font-weight:650}
.task-status-select option{background:#fff;color:#1e293b}

/* Shared task colors in calendar and dashboard lists. */
.appointment-list .appointment-item,.worker-job{background:var(--task-bg,#fff)!important;border:1px solid var(--task-border,#e2e8f0)!important;border-left:4px solid var(--task-accent,#cbd5e1)!important;border-radius:12px!important;box-shadow:none!important;box-sizing:border-box}
.appointment-list .appointment-item{margin:8px 0}.appointment-list .appointment-item[hidden]{display:none!important}
.calendar-card .event{background:var(--task-bg,#eff6ff)!important;color:var(--task-color,#1d4ed8)!important;border-left-color:var(--task-accent,#3b82f6)!important}
.task-status-badge{display:inline-flex;justify-self:start;width:fit-content;max-width:100%;border-radius:20px;padding:6px 10px;font-size:12px;font-weight:700;background:var(--task-bg,#eff6ff);color:var(--task-color,#1d4ed8)}

/* Single custom selector; the native field remains the submitted value. */
.task-select{position:relative;min-width:0;width:100%;box-sizing:border-box}
select.task-select-native{display:none!important}
.task-select-trigger{display:flex!important;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0;min-height:46px;padding:10px 13px!important;border:1px solid var(--task-border,#d6e0ee)!important;border-radius:11px!important;background:var(--task-bg,#fff)!important;color:var(--task-color,#334155)!important;font:inherit;font-size:14px!important;font-weight:650!important;box-shadow:none!important;text-align:left;box-sizing:border-box}
.task-select-trigger>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.task-select-chevron{font-size:16px;flex:none}.task-status-control .task-select-chevron{display:none}
.task-select-trigger:disabled{cursor:default;opacity:.8}.task-select-trigger:focus-visible,.task-select-option:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}
.task-select-menu{position:fixed;z-index:10000;overflow:auto;padding:6px;background:#fff;border:1px solid #dce5f2;border-radius:14px;box-shadow:0 12px 35px #172b4d29;box-sizing:border-box;overscroll-behavior:contain}
.task-select-menu[hidden]{display:none!important}
.task-select-menu .task-select-option{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:10px 12px;border:0;border-radius:9px;background:#fff;color:var(--task-color,#334155);font-size:14px;font-weight:650;text-align:left;box-shadow:none;box-sizing:border-box}
.task-select-option:hover,.task-select-option[aria-selected=true]{background:var(--task-bg,#f1f5f9)}
.task-select-dot{width:9px;height:9px;border-radius:50%;background:currentColor;flex:none}.task-select-option>span:nth-child(2){overflow-wrap:anywhere;flex:1;min-width:0}.task-select-check{margin-left:auto}

/* Calendar toolbar: four controls in one row. */
.appointment-list .appointment-list-title{display:block}

/* Menu count and mobile layout. */
@media(max-width:720px){
 .task-agenda{padding:14px;--task-columns:48px minmax(0,1fr) 82px}
 .task-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:12px 0}.task-summary a{padding:10px 6px;text-align:center}.task-summary strong{font-size:22px}.task-summary span{font-size:11px;overflow-wrap:anywhere}
 .task-range-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.task-range-filters button[type=submit]{grid-column:1/-1;width:100%}
 .task-range-filters input{font-size:16px}.task-range-filters .task-select-trigger{font-size:13px!important}
 .task-agenda nav.task-date-shortcuts{gap:6px;margin:10px 0 2px}
 .task-agenda nav.task-date-shortcuts a{min-height:30px;padding:5px 9px;font-size:11px}
 .task-column-head,.task-day-item{gap:6px;padding:10px 8px}.task-column-head{font-size:10px;align-items:center}
 .task-hour{font-size:11px}.task-service b{font-size:12px}.task-service a{font-size:10px}
 .task-status-cell .task-select-trigger{padding:8px 5px!important;font-size:11px!important;min-height:44px;justify-content:center}
 .appointment-list .appointment-status-form{grid-column:1/-1!important;justify-self:stretch!important;width:100%!important;max-width:100%!important;min-width:0!important;display:block!important;margin:0!important;padding:0!important}
 .appointment-list .appointment-status-form .task-select-trigger{font-size:16px!important}
 .appointment-list .appointment-quick-actions{grid-column:1/-1!important;min-width:0}.appointment-list .appointment-action{font-size:11px!important;min-height:44px}
}

.month-grid .day.clickable {
  cursor: pointer;
  position: relative;
  transition: background .16s ease, box-shadow .16s ease, transform .16s ease;
}
.month-grid .day.clickable:hover,
.month-grid .day.clickable:focus-visible {
  background: #f1f6ff;
  box-shadow: inset 0 0 0 2px var(--blue);
  outline: 0;
  z-index: 1;
}
.month-grid .day.clickable:active { transform: scale(.985); }
.month-grid .day.clickable::after {
  content: "+";
  position: absolute;
  right: 7px;
  top: 6px;
  color: var(--blue);
  font-size: 15px;
  font-weight: 800;
  opacity: 0;
}
.month-grid .day.clickable:hover::after,
.month-grid .day.clickable:focus-visible::after { opacity: 1; }

/* The existing appointment form is the modal itself; no duplicate layout is rendered. */
#appointment-form {
  display: none;
  position: fixed;
  z-index: 2200;
  inset: 50% auto auto 50%;
  width: min(760px, calc(100vw - 32px));
  max-height: calc(100dvh - 40px);
  margin: 0;
  padding: 28px;
  overflow: auto;
  transform: translate(-50%, -50%);
  border: 1px solid #d8e2f0;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 0 0 100vmax rgba(9, 22, 42, .58), 0 28px 80px rgba(9, 30, 66, .24);
}
#appointment-form.open {
  display: block;
  animation: appointment-in .18s ease-out both;
}
#appointment-form h2 {
  margin: 0 52px 24px 0;
  color: #0b1f3a;
  font-size: 26px;
  line-height: 1.15;
}
#appointment-form .appointment-close {
  position: absolute;
  top: 20px;
  right: 20px;
  display: grid;
  width: 42px;
  height: 42px;
  padding: 0;
  place-items: center;
  border: 1px solid #d8e2f0;
  border-radius: 12px;
  background: #f5f8fc;
  color: #20324d;
  font-size: 25px;
  line-height: 1;
}
#appointment-form .appointment-close:hover { background: #eaf1fb; }
#appointment-form > button:not(.appointment-close) { margin-top: 20px; }
body.appointment-modal-open { overflow: hidden; }

@keyframes appointment-in {
  from { opacity: 0; transform: translate(-50%, calc(-50% + 16px)) scale(.985); }
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

@media(max-width:700px){
  .month-grid .day.clickable::after { display:none; }
  .month-grid .day.clickable { min-height:68px; touch-action: manipulation; }
  .month-grid .day.clickable.tap-ready {
    background: #eef5ff;
    box-shadow: inset 0 0 0 2px var(--blue);
  }
  .month-grid .day.clickable.tap-ready::before {
    content: attr(data-tap-hint);
    position: absolute;
    z-index: 5;
    left: 50%;
    bottom: 7px;
    padding: 3px 7px;
    transform: translateX(-50%);
    border-radius: 999px;
    background: #0b1f3a;
    color: #fff;
    font-size: 9px;
    font-weight: 800;
    white-space: nowrap;
  }
  #appointment-form {
    inset: auto 10px 10px;
    width: auto;
    max-height: calc(100dvh - 20px);
    padding: 24px 18px 20px;
    transform: none;
    border-radius: 22px;
  }
  #appointment-form.open { animation: appointment-mobile-in .2s ease-out both; }
  #appointment-form .fields { grid-template-columns:1fr; }
  #appointment-form h2 { font-size: 23px; }
  #appointment-form > button:not(.appointment-close) { width: 100%; }
}

@keyframes appointment-mobile-in {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}

@media(prefers-reduced-motion:reduce){
  #appointment-form.open { animation: none; }
}

.calendar-card {
  padding:14px;
}
.calendar-card .calendar-toolbar {
  margin-bottom:10px;
  padding:7px 10px;
}
.calendar-card .calendar-toolbar a {
  width:32px;
  height:32px;
}
.calendar-card .weekdays span {
  padding:6px 4px;
}
.calendar-card .day {
  min-height:50px;
  padding:5px 7px;
}
.calendar-card .day.today>b {
  width:21px;
  height:21px;
}
.calendar-card .event {
  margin-top:3px;
  padding:3px 4px;
}

.appointment-express-bar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 0 20px;
  padding:13px 14px;
  border:1px solid #cfe0fb;
  border-radius:13px;
  background:linear-gradient(135deg,#f3f7ff,#f8fbff);
}
.appointment-express-bar>div { display:flex; min-width:0; align-items:center; gap:11px; }
.appointment-express-bar>div>svg { width:21px; height:21px; color:#1769e8; }
.appointment-express-bar span { display:grid; min-width:0; gap:3px; }
.appointment-express-bar b { color:#14233a; font-size:12px; }
.appointment-express-bar small { overflow:hidden; color:#64748b; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.appointment-now { min-height:38px!important; padding:8px 13px!important; gap:7px; border-radius:10px!important; white-space:nowrap; }
.appointment-now svg { width:16px; height:16px; }
.appointment-fields { gap:15px 18px; }
.appointment-fields label { min-width:0; }
.appointment-fields .wide { grid-column:1/-1; }
.appointment-address-field { min-width:0; color:#162033; font-size:11px; font-weight:700; }
.appointment-address-input { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; margin-top:7px; }
.appointment-address-input input { min-width:0; margin:0!important; }
.appointment-address-input button {
  display:inline-flex;
  min-height:42px;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:9px 14px;
  border:1px solid #bfd5fb;
  border-radius:10px;
  background:#eef5ff;
  color:#1769e8;
  cursor:pointer;
  font-family:inherit;
  font-size:10px;
  font-weight:850;
  white-space:nowrap;
}
.appointment-address-input button:hover { border-color:#8db6f6; background:#e5efff; }
.appointment-address-input button svg { width:17px; height:17px; }
.appointment-address-help { display:block; margin-top:6px; color:#64748b; font-size:9px; font-weight:500; }
.appointment-maps-link-field { display:grid; gap:7px; color:#162033; font-size:11px; font-weight:700; }
.appointment-maps-link-field>small { color:#64748b; font-size:9px; font-weight:500; line-height:1.45; }
.appointment-maps-link-input { position:relative; display:block; }
.appointment-maps-link-input>svg { position:absolute; z-index:1; top:50%; left:13px; width:18px; height:18px; color:#1769e8; transform:translateY(-50%); pointer-events:none; }
.appointment-maps-link-input input { width:100%; margin:0!important; padding-left:42px!important; color:#174785; background:#f7faff; }
.appointment-maps-link-input input:focus { border-color:#8db6f6!important; background:#fff; box-shadow:0 0 0 3px rgba(23,105,232,.1)!important; }
.appointment-cost-input { position:relative; display:block; margin-top:7px; }
.appointment-cost-input>b { position:absolute; z-index:1; top:50%; left:13px; color:#1769e8; font-size:13px; transform:translateY(-50%); }
.appointment-cost-input input { margin:0!important; padding-left:30px!important; font-weight:800; }
.appointment-notes { display:grid; gap:7px; margin-top:15px; color:#162033; font-size:11px; font-weight:700; }
.appointment-notes textarea { margin-top:0!important; }
.appointment-materials {
  display:grid;
  gap:11px;
  margin-top:16px;
  padding:14px;
  border:1px solid #d7e2ef;
  border-radius:13px;
  background:#f8fbff;
}
.appointment-materials-head { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.appointment-materials-head>div { display:flex; min-width:0; align-items:center; gap:10px; }
.appointment-materials-head>div>svg { width:21px; height:21px; flex:none; color:#1769e8; }
.appointment-materials-head span { display:grid; gap:3px; }
.appointment-materials-head b { color:#14233a; font-size:11px; }
.appointment-materials-head small { color:#64748b; font-size:9px; font-weight:500; }
.appointment-materials-head>button {
  display:inline-flex;
  min-height:38px;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:8px 12px;
  border:1px solid #c8daf8;
  border-radius:10px;
  background:#eef5ff;
  color:#1769e8;
  cursor:pointer;
  font-size:9px;
  font-weight:850;
  white-space:nowrap;
}
.appointment-materials-head>button svg { width:16px; height:16px; }
.appointment-material-list { display:grid; gap:8px; }
.appointment-material-row { display:grid; grid-template-columns:minmax(0,1fr) 115px 42px; gap:8px; }
.appointment-material-row select,
.appointment-material-row input { width:100%; min-width:0; min-height:42px; margin:0!important; }
.appointment-material-remove {
  display:grid;
  width:42px;
  min-height:42px;
  place-items:center;
  padding:0;
  border:1px solid #fecaca;
  border-radius:10px;
  background:#fff1f2;
  color:#dc2626;
  cursor:pointer;
}
.appointment-material-remove svg { width:17px; height:17px; }
.appointment-material-empty { margin:0; color:#64748b; font-size:9px; }
.appointment-submit { gap:8px; }
.appointment-submit svg { width:18px; height:18px; }
.appointment-completion-notice {
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 18px;
  padding:13px 15px;
  border:1px solid #bce7d2;
  border-radius:13px;
  background:#effbf5;
  color:#087451;
  box-shadow:0 8px 24px rgba(8,116,81,.07);
}
.appointment-completion-notice>span { display:grid; width:38px; height:38px; flex:none; place-items:center; border-radius:10px; background:#10a36f; color:#fff; }
.appointment-completion-notice>span svg { width:20px; height:20px; }
.appointment-completion-notice>div { display:grid; min-width:0; gap:3px; }
.appointment-completion-notice b { font-size:12px; }
.appointment-completion-notice small { overflow:hidden; color:#367761; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }

.appointment-list { margin-top:18px; overflow:visible!important; }
.appointment-list>.section-title { padding:20px 22px; }
.appointment-list-title { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.appointment-list .appointment-item {
  display:grid;
  grid-template-columns:56px minmax(220px,1fr) auto 160px;
  align-items:center;
  gap:16px;
  padding:16px 20px;
  border-top:1px solid #e2e8f0;
  border-bottom:0;
  background:#fff;
}
.appointment-list .appointment-item.status-completed {
  background:linear-gradient(90deg,#f0fbf6,#fff 45%);
  box-shadow:inset 4px 0 #10a36f;
}
.appointment-summary { display:grid!important; min-width:0; gap:5px!important; }
.appointment-summary>div { display:flex!important; min-width:0; align-items:center; gap:9px!important; }
.appointment-summary>div>b { overflow:hidden; color:#14233a; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.appointment-summary em { display:inline-flex; flex:none; align-items:center; gap:4px; padding:4px 7px; border-radius:999px; background:#dcf8eb; color:#087451; font-size:8px; font-style:normal; font-weight:850; }
.appointment-summary em svg { width:12px; height:12px; }
.appointment-summary small,
.appointment-contact,
.appointment-address { display:flex; min-width:0; align-items:center; gap:6px; color:#64748b; font-size:10px; }
.appointment-summary small svg,
.appointment-contact svg,
.appointment-address svg { width:14px; height:14px; flex:none; }
.appointment-contact { width:max-content; color:#1769e8; font-weight:750; }
.appointment-address { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.appointment-assignee { display:flex; width:max-content; max-width:100%; align-items:center; gap:6px; padding:4px 8px; border-radius:999px; background:#f1f5ff; color:#315fc5; font-size:9px; font-weight:800; }
.appointment-assignee svg { width:13px; height:13px; flex:none; }
.appointment-material-summary { display:flex; min-width:0; align-items:center; gap:6px; overflow:hidden; color:#8a5a00; font-size:9px; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }
.appointment-material-summary svg { width:14px; height:14px; flex:none; color:#d97706; }
.appointment-project-cost { display:flex; width:max-content; max-width:100%; align-items:center; gap:5px; color:#087451; font-size:10px; font-weight:750; }
.appointment-project-cost svg { width:15px; height:15px; flex:none; color:#10a36f; }
.appointment-project-cost b { color:#315b4e; }

.appointment-quick-actions {
  display:flex!important;
  flex-wrap:nowrap;
  align-items:center;
  gap:8px!important;
  width:auto;
}
.appointment-quick-actions:empty { display:none!important; }
.appointment-action {
  display:inline-flex;
  width:auto;
  min-width:104px;
  min-height:42px;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:9px 11px;
  border:1px solid;
  border-radius:11px;
  cursor:pointer;
  font-family:inherit;
  font-size:10px;
  font-weight:800;
  line-height:1;
  text-decoration:none;
  transition:transform .16s ease,box-shadow .16s ease;
}
.appointment-action svg { width:18px; height:18px; }
.appointment-action.whatsapp { border-color:#b9ebce; background:#ebfbf2; color:#079455; }
.appointment-action.maps { border-color:#cbdcf8; background:#eef5ff; color:#1769e8; }
.appointment-action.edit { border-color:#c9d8ff; background:#f0f4ff; color:#315fc5; }
.appointment-action.delete { border-color:#fecaca; background:#fff1f2; color:#dc2626; }
.appointment-action.pdf-note { border-color:#cbdaf5; background:#f2f6ff; color:#245bb5; }
.appointment-delete-form { display:flex; width:auto; margin:0; }
.appointment-action:hover { transform:translateY(-1px); box-shadow:0 7px 18px rgba(15,23,42,.1); }
.appointment-status-form { width:100%; }
.appointment-status-form select { width:100%; min-height:44px; padding:0 12px; border:1px solid #d8e1ec; border-radius:10px; background:#fff; color:#24344c; }
.appointment-item.status-completed .appointment-status-form select { border-color:#a9e1c7; background:#f0fbf6; color:#087451; font-weight:800; }
.appointment-item.status-en_route { background:linear-gradient(90deg,#fff8eb,#fff 45%); box-shadow:inset 4px 0 #f59e0b; }
.event.en_route { border-color:#f5c76b!important; background:#fff4d9!important; color:#9a6200!important; }
.event.completed { border-color:#10a36f!important; background:#e6f8ef!important; color:#087451!important; }

.worker-jobs { margin:18px 0; overflow:hidden; }
.worker-jobs>.section-title { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px 20px; }
.worker-jobs>.section-title a { color:#1769e8; font-size:10px; font-weight:850; text-decoration:none; }
.worker-job { display:grid; grid-template-columns:110px minmax(0,1fr) auto; align-items:center; gap:16px; padding:15px 20px; border-top:1px solid #e2e8f0; background:#fff; }
.worker-job time { display:grid; gap:4px; }
.worker-job time b { color:#1769e8; font-size:11px; }
.worker-job time span { color:#14233a; font-size:12px; font-weight:850; }
.worker-job-summary { display:grid; min-width:0; gap:5px; }
.worker-job-summary>b { overflow:hidden; color:#14233a; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.worker-job-summary small { display:flex; min-width:0; align-items:center; gap:6px; overflow:hidden; color:#64748b; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.worker-job-summary small svg { width:14px; height:14px; flex:none; }
.worker-job-summary .worker-materials { color:#9a6200; font-weight:750; }
.worker-job-summary .worker-project-cost { color:#087451; font-weight:750; }
.worker-job-summary .worker-project-cost b { color:#315b4e; }
.worker-job nav { display:flex; gap:8px; }
.worker-job nav a { display:inline-flex; min-width:92px; min-height:42px; align-items:center; justify-content:center; gap:7px; padding:9px 12px; border:1px solid; border-radius:11px; font-size:10px; font-weight:850; text-decoration:none; }
.worker-job nav a svg { width:17px; height:17px; }
.worker-call { border-color:#b9ebce!important; background:#ebfbf2; color:#079455; }
.worker-map { border-color:#cbdcf8!important; background:#eef5ff; color:#1769e8; }

@media(max-width:1200px){
  .appointment-quick-actions {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(96px,1fr));
    width:218px;
  }
  .appointment-action,
  .appointment-delete-form { width:100%; }
}

@media(max-width:900px){
  .appointment-list-title { align-items:stretch; flex-direction:column; }
  .appointment-list .appointment-item { grid-template-columns:52px minmax(0,1fr) auto; }
  .appointment-quick-actions { width:218px; }
  .appointment-status-form { grid-column:2/4; width:min(240px,100%); justify-self:end; }
}

@media(max-width:700px){
  .calendar-card { padding:9px; }
  .calendar-card .calendar-toolbar { margin-bottom:7px; padding:6px 8px; }
  .calendar-card .calendar-toolbar a { width:30px; height:30px; }
  .calendar-card .weekdays span { padding:5px 1px; }
  .calendar-card .day,
  .calendar-card .month-grid .day.clickable { min-height:46px; padding:4px; }
  .calendar-card .day.today>b { width:20px; height:20px; }

  .worker-jobs { margin:14px 0; }
  .worker-jobs>.section-title { padding:15px 14px; }
  .worker-job { grid-template-columns:72px minmax(0,1fr); gap:11px; padding:14px 12px; }
  .worker-job time b { font-size:9px; }
  .worker-job time span { font-size:10px; }
  .worker-job-summary>b { white-space:normal; }
  .worker-job-summary small { white-space:normal; }
  .worker-job nav { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .worker-job nav a { width:100%; min-width:0; min-height:45px; }
  .appointment-completion-notice { margin-bottom:14px; padding:11px 12px; }
  .appointment-completion-notice>span { width:34px; height:34px; }
  body.appointment-modal-open .mobile-nav { display:none!important; }
  #appointment-form { padding-bottom:24px; }
  .appointment-express-bar { align-items:stretch; flex-direction:column; gap:10px; }
  .appointment-express-bar small { white-space:normal; }
  .appointment-now { width:100%; }
  .appointment-fields { gap:14px; }
  .appointment-address-input { grid-template-columns:1fr; }
  .appointment-address-input button { width:100%; min-height:45px; }
  .appointment-materials { padding:12px; }
  .appointment-materials-head { align-items:stretch; flex-direction:column; }
  .appointment-materials-head>button { width:100%; }
  .appointment-material-row { grid-template-columns:minmax(0,1fr) 92px 42px; }
  #appointment-form .appointment-submit {
    position:static!important;
    display:flex;
    width:100%!important;
    min-height:54px;
    margin:20px 0 0!important;
    padding:13px 18px!important;
    border-radius:13px;
    box-shadow:0 12px 30px rgba(23,105,232,.34);
  }
  .appointment-list>.section-title { padding:17px 14px; }
  .appointment-list .appointment-item {
    grid-template-columns:48px minmax(0,1fr);
    gap:11px;
    padding:14px 12px;
  }
  .appointment-summary { gap:7px!important; }
  .appointment-summary>div { align-items:flex-start; flex-direction:column; gap:6px!important; }
  .appointment-summary>div>b { max-width:100%; font-size:15px; line-height:1.25; white-space:normal; }
  .appointment-summary small,
  .appointment-contact,
  .appointment-address { font-size:11px; line-height:1.35; }
  .appointment-assignee { font-size:9.5px; }
  .appointment-address { white-space:normal; }
  .appointment-project-cost { font-size:11px; }
  .appointment-material-summary { align-items:flex-start; font-size:10.5px; line-height:1.35; white-space:normal; }
  .appointment-quick-actions {
    display:flex!important;
    flex-wrap:nowrap;
    grid-column:1/-1;
    width:100%;
    gap:5px!important;
  }
  .appointment-action,
  .appointment-delete-form { width:auto; min-width:0; flex:1 1 0; }
  .appointment-action {
    width:100%;
    min-width:0;
    min-height:38px;
    gap:3px;
    padding:6px 3px;
    border-radius:9px;
    font-size:7px;
  }
  .appointment-action svg { width:14px; height:14px; }
  .appointment-status-form { grid-column:1/-1; width:100%; justify-self:stretch; }
}

@media(max-width:360px){
  .appointment-material-row { grid-template-columns:minmax(0,1fr) 78px 40px; gap:6px; }
  .appointment-action { min-height:37px; font-size:6.5px; }
}


/* Appointment pricing and materials share one itemized editor. */
.appointment-line-actions { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 12px; }
.appointment-line-actions button { display:inline-flex; min-width:0; min-height:42px; align-items:center; gap:7px; padding:8px 11px; border:1px solid #cbdcf8; border-radius:10px; background:#f2f6ff; color:#1769e8; font-family:inherit;font-size:10px;font-weight:750;line-height:1.2; cursor:pointer; }
.appointment-line-actions button svg { width:15px; height:15px; }
.appointment-line-actions button:last-child { border-color:#d9e2ed; background:#fff; color:#34445c; }
.appointment-line-labels,.appointment-charge-row { display:grid; grid-template-columns:minmax(180px,2fr) 72px 100px minmax(110px,1fr) minmax(110px,1fr) 38px; align-items:center; gap:8px; }
.appointment-line-labels { padding:0 8px 7px; color:#5f6f86; font-size:9px; font-weight:800; }
.appointment-line-labels span:nth-child(4),.appointment-line-labels span:nth-child(5) { text-align:center; }
.appointment-charge-list { display:grid; gap:8px; }
.appointment-charge-row { min-width:0; padding:8px; border:1px solid #dce5f1; border-radius:12px; background:#fff; }
.appointment-charge-field { display:block; min-width:0; }
.appointment-charge-field>span { display:none; }
.appointment-line-labels span { overflow-wrap:anywhere; line-height:1.25; }
.appointment-line-labels span:first-child { text-align:left; }
.appointment-line-labels { border-bottom:1px solid #e2e8f0; }
.appointment-charge-row input,.appointment-charge-row select { width:100%; min-width:0; height:42px!important; min-height:42px; margin:0!important; padding:8px 9px!important; border:1px solid #d5dfec!important; border-radius:9px!important; background:#fff; color:#23344c; font-family:inherit;font-size:11px;font-weight:600;line-height:1.3; }
.appointment-charge-row input[type=number] { text-align:right; }
.appointment-line-concept { min-width:0; }
.appointment-line-name,.appointment-line-catalog { width:100%; }
.appointment-charge-totals { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; margin-top:12px; }
.appointment-charge-totals>div { display:grid; min-width:170px; gap:4px; padding:10px 13px; border:1px solid #dce5f1; border-radius:10px; background:#f7faff; }
.appointment-charge-totals span { color:#64748b; font-size:9px; font-weight:700; }
.appointment-charge-totals b { color:#14233a; font-size:15px; }
.appointment-charge-totals>div:last-child { background:#f1faf6; border-color:#c8ebda; }
.appointment-charge-totals>div:last-child b { color:#087451; }
@media(max-width:760px){
  .appointment-line-labels { display:none; }
  .appointment-line-actions { display:grid; grid-template-columns:1fr; }
  .appointment-line-actions button { justify-content:center; min-height:42px; }
  .appointment-charge-row { position:relative; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; padding:50px 10px 10px; }
  .appointment-line-concept { grid-column:1/-1; }
  .appointment-charge-row .appointment-line-catalog,.appointment-charge-row .appointment-line-name { min-height:42px; }
  .appointment-charge-field>span { display:block; margin:0 0 4px; color:#64748b; font-size:9px; font-weight:750; }
  .appointment-charge-field input::placeholder { color:#718096; }
  .appointment-charge-field { grid-column:auto; }
  .appointment-charge-row .appointment-material-remove { position:absolute; top:8px; right:8px; width:34px; min-height:34px; }
  .appointment-charge-row .appointment-line-concept::before { content:attr(data-label); }
  .appointment-charge-totals { display:grid; grid-template-columns:1fr 1fr; }
  .appointment-charge-totals>div { min-width:0; }
}
@media(max-width:380px){ .appointment-charge-totals { grid-template-columns:1fr; } }

.appointment-internal-cost { color:#64748b; font-size:9px; font-weight:700; }
@media(max-width:700px){.catalog-add-actions button:nth-child(3){grid-column:1/-1}}

/* Package setup and computed appointment duration. */
.appointment-package-picker { display:flex; align-items:center; gap:8px; min-height:42px; padding:0 11px; border:1px solid #bfd4f5; border-radius:10px; background:#eaf2ff; color:#1769e8; }
.appointment-package-picker svg { flex:none; width:16px; height:16px; }
.appointment-package-picker select { width:100%; min-width:150px; border:0!important; outline:0; background:transparent; color:#1769e8; font:inherit; font-size:11px; font-weight:750; }
.catalog-packages { margin:0 0 18px; padding:18px; border:1px solid #dbe4f0; border-radius:16px; background:#fff; }
.catalog-packages-heading,.package-builder-title { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.catalog-packages-heading h2 { margin:0; color:#18243a; font-size:19px; }
.catalog-packages-heading p { margin:5px 0 0; color:#64748b; font-size:12px; }
.catalog-packages-heading>button,.package-builder-title>button { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:40px; padding:8px 12px; border:1px solid #1769e8; border-radius:10px; background:#1769e8; color:#fff; font:inherit; font-size:11px; font-weight:750; cursor:pointer; }
.catalog-package-empty { margin-top:14px; padding:16px; border:1px dashed #cad6e5; border-radius:12px; color:#64748b; font-size:12px; }
.catalog-package-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:12px; margin-top:14px; }
.catalog-package-card { display:grid; gap:10px; padding:14px; border:1px solid #dce5f1; border-radius:13px; background:#f9fbff; }
.catalog-package-card>div:first-child>small { color:#1769e8; font-size:9px; font-weight:850; letter-spacing:.08em; }
.catalog-package-card h3 { margin:4px 0; color:#17243a; font-size:15px; }
.catalog-package-card p { margin:4px 0; color:#64748b; font-size:11px; }
.catalog-package-card ul { display:grid; gap:5px; margin:0; padding-left:17px; color:#465873; font-size:11px; }
.catalog-package-price { display:grid; grid-template-columns:1fr auto; align-items:center; gap:4px 8px; padding-top:9px; border-top:1px solid #dce5f1; }
.catalog-package-price span { color:#64748b; font-size:10px; font-weight:700; }
.catalog-package-price b { color:#17243a; font-size:16px; }
.catalog-package-price small { grid-column:1/-1; color:#087451; font-size:10px; font-weight:750; }
.catalog-package-actions { display:flex; justify-content:flex-end; gap:7px; }
.catalog-package-form { width:min(720px,calc(100vw - 28px)); max-height:min(90vh,820px); overflow:auto; }
.catalog-package-form .modal-head p { margin:5px 0 0; color:#64748b; font-size:12px; }
.package-builder { margin-top:14px; padding:13px; border:1px solid #dce5f1; border-radius:13px; background:#f8faff; }
.package-builder-title b,.package-builder-title small { display:block; }
.package-builder-title b { color:#1c2b42; font-size:13px; }
.package-builder-title small { margin-top:4px; color:#64748b; font-size:10px; }
.package-builder-title>button { min-height:36px; background:#fff; color:#1769e8; }
.package-builder-row { display:grid; grid-template-columns:140px minmax(180px,1fr) 100px 38px; gap:8px; align-items:center; margin-top:9px; }
.package-builder-row select,.package-builder-row input { width:100%; min-width:0; height:40px; padding:8px; border:1px solid #d5dfec; border-radius:9px; background:#fff; color:#23344c; font:inherit; font-size:11px; }
.package-builder-summary { margin-top:11px; color:#526680; font-size:11px; font-weight:700; }
@media(max-width:760px){
  .appointment-package-picker { justify-content:center; }
  .appointment-package-picker select { min-height:40px; }
  .catalog-packages { padding:13px; }
  .catalog-packages-heading { align-items:flex-start; }
  .catalog-packages-heading h2 { font-size:16px; }
  .catalog-packages-heading p { max-width:35ch; line-height:1.4; }
  .catalog-package-grid { grid-template-columns:1fr; }
  .catalog-package-form { width:calc(100vw - 20px); padding:16px; }
  .package-builder { padding:10px; }
  .package-builder-row { grid-template-columns:minmax(0,1fr) 42px; gap:7px; }
  .package-builder-row select:first-child { grid-column:1/-1; }
  .package-builder-row select:nth-child(2) { grid-column:1/-1; }
  .package-builder-row input { grid-column:1; }
  .package-builder-row button { grid-column:2; grid-row:3; }
}

.schedule-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.schedule-head-actions button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:11px 17px;border-radius:11px;font:inherit;font-size:13px;font-weight:700;white-space:nowrap}
.schedule-head-actions button svg{width:17px;height:17px}
.schedule-head-actions .button-outline{border:1px solid #bfd3f7;background:#fff;color:#1769e8;box-shadow:0 4px 12px #1769e80a}
.schedule-head-actions .button-outline:hover{background:#f2f7ff;border-color:#8ab1f5}
.quote-loader-dialog{width:min(680px,calc(100vw - 32px));max-height:min(720px,calc(100dvh - 32px));padding:0;border:1px solid #d9e3f2;border-radius:20px;background:#fff;color:#17233a;box-shadow:0 28px 90px #12213b40;overflow:hidden}
.quote-loader-dialog::backdrop{background:#14203385;backdrop-filter:blur(5px)}
.quote-loader-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px 25px 19px;border-bottom:1px solid #e8edf5;background:linear-gradient(120deg,#f5f8ff,#fff)}
.quote-loader-head>div>span{color:#1769e8;font-size:10px;font-weight:850;letter-spacing:.15em}
.quote-loader-head h2{margin:7px 0 5px;font-size:21px;line-height:1.25}
.quote-loader-head p{margin:0;color:#69778c;font-size:12px;line-height:1.5}
.quote-loader-close{width:36px;height:36px;flex:0 0 36px;border:1px solid #dbe4f1;border-radius:50%;background:#fff;color:#44536a;font-size:25px;line-height:1;cursor:pointer}
.quote-loader-search{display:flex;align-items:center;gap:10px;margin:18px 22px 12px;padding:0 13px;border:1px solid #d7e1ef;border-radius:11px;background:#fbfcfe}
.quote-loader-search svg{width:18px;height:18px;color:#8796aa}
.quote-loader-search input{width:100%;min-width:0;height:43px;border:0;outline:0;background:transparent;color:#18253a;font:500 13px inherit}
.quote-loader-list{display:grid;gap:9px;max-height:min(470px,calc(100dvh - 225px));overflow:auto;padding:0 22px 22px}
.quote-loader-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid #e0e8f3;border-radius:13px;background:#fff;transition:border-color .16s,background .16s,transform .16s}
.quote-loader-item:hover{border-color:#a9c5f4;background:#f8fbff;transform:translateY(-1px)}
.quote-loader-item[hidden]{display:none}
.quote-loader-item-main{display:flex;align-items:center;gap:12px;min-width:0}
.quote-loader-icon{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:12px;background:#edf4ff;color:#1769e8}
.quote-loader-icon svg{width:19px;height:19px}
.quote-loader-item-main>div{display:grid;gap:3px;min-width:0}
.quote-loader-item-main b,.quote-loader-item-main small,.quote-loader-item-main>div>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.quote-loader-item-main b{font-size:13px}
.quote-loader-item-main small{color:#66758b;font-size:11px}
.quote-loader-item-main>div>span{color:#1769e8;font-size:10px;font-weight:700}
.quote-loader-item>button{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;min-height:38px;padding:8px 12px;border:0;border-radius:9px;background:#1769e8;color:#fff;font:inherit;font-size:11px;font-weight:700;cursor:pointer}
.quote-loader-item>button svg{width:15px;height:15px}
.quote-loader-empty{display:grid;justify-items:center;gap:9px;padding:38px 18px;color:#6e7d92;text-align:center}
.quote-loader-empty>svg{width:30px;height:30px;color:#8da0b9}
.quote-loader-empty b{color:#25344b;font-size:14px}
.quote-loader-empty span{font-size:11px}
.appointment-quote-link{display:flex;align-items:center;gap:8px;margin:-7px 0 16px;padding:9px 12px;border:1px solid #b8d1fb;border-radius:10px;background:#f1f6ff;color:#245ba8;font-size:11px}
.appointment-quote-link[hidden]{display:none}
.appointment-quote-link>svg{width:16px;height:16px}
.appointment-quote-link button{margin-left:auto;width:25px;height:25px;border:0;border-radius:50%;background:#e2edff;color:#315c99;font-size:19px;line-height:1;cursor:pointer}
.appointment-quote-badge{display:inline-flex;align-items:center;gap:5px;width:max-content;margin-top:2px;padding:4px 8px;border:1px solid #c8daf8;border-radius:20px;background:#f2f7ff;color:#285ca7;font-size:10px;font-weight:700}
.appointment-quote-badge svg{width:13px;height:13px}
@media(max-width:700px){
 .schedule-head{align-items:flex-start;gap:15px;flex-direction:column}
 .schedule-head-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}
 .schedule-head-actions button{min-width:0;min-height:43px;padding:9px 10px;font-size:11px}
 .quote-loader-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);border-radius:16px}
 .quote-loader-head{padding:18px 17px 14px;gap:10px}
 .quote-loader-head h2{font-size:18px}
 .quote-loader-head p{font-size:11px}
 .quote-loader-search{margin:13px 14px 10px}
 .quote-loader-list{max-height:calc(100dvh - 190px);padding:0 14px 14px}
 .quote-loader-item{align-items:flex-start;gap:8px;padding:10px}
 .quote-loader-icon{width:34px;height:34px;flex-basis:34px}
 .quote-loader-item>button{min-height:34px;padding:7px 9px;font-size:10px}
}

.team-password-field { display:flex; align-items:center; position:relative; width:100%; }
.team-fields { align-items:start; }
.team-fields > label { align-content:start; }
.team-password-field input { padding-right:52px!important; width:100%; }
.team-password-field .team-password-eye { position:absolute; right:7px; top:50%; transform:translateY(-45%); width:38px; height:38px; min-height:38px; padding:0; background:#edf4ff; color:#1769e8; border:1px solid #d5e3f8; border-radius:7px; font-size:20px; }
.team-password-help { display:block; margin-top:6px; color:#667085; font-size:11px; line-height:1.4; }
.team-modal-card>.modal-actions { position:sticky; bottom:0; background:#fff; z-index:5; }
.owner-login-profile { margin-top:20px; padding:18px; }
.owner-login-profile summary { cursor:pointer; font-weight:700; color:#1769e8; }
.owner-login-profile .team-fields { padding:18px 0 0; }
.owner-login-profile input:not([type=hidden]) { width:100%; height:48px; border:1px solid #d6e0ee; border-radius:9px; padding:0 12px; }
.team-modal .team-password-edit { justify-self:start; width:auto; min-height:30px; padding:5px 10px; margin:0; border:1px solid #d5e3f8; background:#edf4ff; color:#1769e8; font-size:11px; }

/* The same fixed document geometry is used by preview, export and sharing.
   Only the outer preview paper scales to fit the screen. */
.document-preview{width:min(8.5in,100%);margin:0 auto;overflow:hidden;box-shadow:0 12px 36px #14233312;background:#fff}
.document-paper{width:8.5in;min-height:11in;padding:.25in;background:#fff;box-sizing:border-box;transform:scale(var(--document-scale,1));transform-origin:top left}
html body .document-professional {
  position:relative; display:flex; flex-direction:column; width:8in;
  max-width:8in; min-height:10.5in; height:auto;
  margin:0 auto; padding:24px; overflow:visible;
  border:0;
  border-radius:0; background:#fff; color:#142333;
  box-shadow:none; font-family:Arial,Helvetica,sans-serif;
  font-size:11px; line-height:1.45; box-sizing:border-box;
}
.document-professional * { box-sizing:border-box; }
.document-professional section,.document-professional div { min-width:0; }
.document-professional .document-brandline { height:4px; margin:-24px -24px 22px; background:linear-gradient(90deg,var(--doc-accent) 0 38%,#da5962 38% 60%,#e7b94a 60% 80%,#389e73 80%); }
.document-professional .document-header { display:flex; align-items:center; justify-content:space-between; gap:22px; margin:0 0 18px; padding:12px 14px; border:1px solid #d9e5f1; border-left:4px solid var(--doc-accent); border-radius:10px; background:linear-gradient(115deg,#f5f9fd,#fff 68%); }
.document-professional .document-brand { display:flex; align-items:center; gap:12px; min-width:0; flex:1; }
.document-professional .document-brand img,.document-professional .document-logo-fallback { width:56px; height:56px; padding:5px; object-fit:contain; border:1px solid #dce6f0; border-radius:12px; background:#fff; box-shadow:0 4px 10px rgba(15,35,60,.09); flex-shrink:0; margin:0; }
.document-professional .document-logo-fallback { display:grid; place-items:center; background:var(--doc-accent); color:#fff; font-size:26px; font-weight:700; }
.document-professional .document-brand>div { min-width:0; }
.document-professional .document-brand h1 { margin:0; font-size:19px; line-height:1.2; letter-spacing:-.2px; color:#142333; overflow-wrap:anywhere; }
.document-professional .document-brand p { margin:5px 0 0; font-size:9px; color:#64748b; overflow-wrap:anywhere; }
.document-professional .document-heading { padding:8px 10px; border:1px solid #dce6f0; border-radius:8px; background:#fff; text-align:right; flex:0 0 170px; }
.document-professional .document-heading span { display:block; color:var(--doc-accent); font-size:10px; line-height:1.2; font-weight:800; letter-spacing:.8px; }
.document-professional .document-heading b { display:block; margin-top:5px; color:#142333; font-size:13px; overflow-wrap:anywhere; }
.document-professional .document-parties { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; margin-bottom:12px; }
.document-professional .document-parties>section { border:1px solid #d4e1eb; border-left:3px solid var(--doc-accent); border-radius:5px; padding:11px 13px; min-width:0; }
.document-professional .document-parties>section+section { border-left-color:#389e73; }
.document-professional h2 { color:var(--doc-accent); font-size:12px; margin:0 0 6px; line-height:1.3; }
.document-professional .document-parties b { display:block; font-size:11px; overflow-wrap:anywhere; }
.document-professional .document-parties p { margin:3px 0 0; color:#34475a; font-size:10px; overflow-wrap:anywhere; }
.document-professional .document-metadata { display:grid; grid-template-columns:1.1fr 1fr 1fr .8fr; gap:10px; padding:10px 13px; margin-bottom:16px; background:#e3eef6; border:1px solid #bad0e2; border-radius:5px; }
.document-professional .document-metadata span,.document-professional .document-payment span { display:block; font-size:8px; letter-spacing:.25px; font-weight:700; color:#405971; }
.document-professional .document-metadata b { display:block; margin-top:3px; font-size:10px; overflow-wrap:anywhere; }
.document-professional .document-introduction { margin:0 0 14px; white-space:normal; overflow-wrap:anywhere; }
html body .document-professional table.document-items { width:100%; margin:0; border-collapse:collapse; border-radius:0; border:0; border-bottom:1px solid #cbdce9; table-layout:fixed; break-inside:auto; page-break-inside:auto; }
.document-items .doc-description { width:52%; }.document-items .doc-quantity { width:10%; }.document-items .doc-price { width:19%; }.document-items .doc-amount { width:19%; }
html body .document-professional .document-items th { background:#dbeaf5; color:#193950; -webkit-text-fill-color:#193950; padding:9px 8px; font-size:8px; font-weight:700; text-align:left; box-shadow:none; letter-spacing:0; }
html body .document-professional .document-items td { padding:11px 8px; font-size:10px; line-height:1.4; border:0; border-bottom:1px solid #dce6ee; color:#142333; -webkit-text-fill-color:#142333; vertical-align:top; overflow-wrap:anywhere; }
html body .document-professional .document-items th:nth-child(2),html body .document-professional .document-items td:nth-child(2) { text-align:center; }
html body .document-professional .document-items th:nth-child(n+3),html body .document-professional .document-items td:nth-child(n+3) { text-align:right; }
.document-professional .document-items td>b { font-weight:500; }
.document-professional .document-items td>small { display:block; font-size:9px; color:#536579; margin-top:4px; }
.document-professional .document-closing { flex:none; margin-top:auto; padding-top:16px; }
.document-professional .document-bottom { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,285px); align-items:start; gap:22px; margin-top:0; }
.document-professional .document-payment { min-width:0; }
.document-professional .document-payment p { margin:10px 0; }.document-professional .document-payment b { display:block; margin-top:2px; font-size:10px; }
.document-professional .document-summary { min-width:0; border:1px solid #bcd1e2; border-radius:6px; background:#f2f7fb; overflow:hidden; }
.document-professional .document-summary>div { display:flex; justify-content:space-between; align-items:baseline; gap:14px; padding:7px 12px; font-size:10px; }
.document-professional .document-summary b { overflow-wrap:anywhere; text-align:right; }
.document-professional .document-summary .document-grand { margin-top:3px; padding:11px 12px; background:#dbeaf5; border-top:1px solid #bcd1e2; color:#142333; font-size:14px; font-weight:700; }
.document-professional .document-paid { color:#157454; }
.document-professional .document-terms { margin-top:18px; padding:12px 14px; border:1px solid #d4e1eb; border-radius:5px; }
.document-professional .document-terms p { margin:0; font-size:10px; overflow-wrap:anywhere; }
.document-professional .document-footer { margin-top:18px; padding-top:12px; border-top:1px solid #bcd1e2; font-size:9px; color:#536579; }
.document-professional .document-footer p { margin:0 0 4px; }.document-professional .document-footer span { display:block; overflow-wrap:anywhere; }
/* PDF styles for the current shared document renderer (estimates, receipts and mobile exports). */
.estimate-template-classic .document-professional .document-brandline { background:var(--doc-accent); }
.estimate-template-modern .document-professional .document-brandline { background:var(--doc-accent); }
.estimate-template-modern .document-professional .document-brandline { display:none; }
.estimate-template-modern .document-professional .document-header { min-height:82px; margin:0 0 18px; padding:13px 16px; border:0; border-radius:12px; background:var(--doc-accent); box-shadow:0 5px 14px rgba(15,35,60,.12); }
.estimate-template-modern .document-professional .document-brand img,.estimate-template-modern .document-professional .document-logo-fallback { width:58px; height:58px; padding:5px; border:0; border-radius:13px; background:#fff; color:var(--doc-accent); box-shadow:0 3px 9px rgba(15,35,60,.15); }
.estimate-template-modern .document-professional .document-brand h1,.estimate-template-modern .document-professional .document-brand p,.estimate-template-modern .document-professional .document-heading span,.estimate-template-modern .document-professional .document-heading b { color:#fff; }
.estimate-template-modern .document-professional .document-brand p { opacity:.82; }
.estimate-template-modern .document-professional .document-heading { border-color:rgba(255,255,255,.28); background:rgba(15,23,42,.18); }
.estimate-template-modern .document-professional .document-parties>section { border:0; border-radius:12px; background:#f1f6fc; box-shadow:inset 0 0 0 1px #bfd1ee; }
.estimate-template-modern .document-professional .document-parties>section+section { background:#f7faff; }
.estimate-template-modern .document-professional .document-metadata { border-radius:12px; }
.estimate-template-modern .document-professional .document-items th { background:var(--doc-accent); color:#fff; -webkit-text-fill-color:#fff; }
.estimate-template-modern .document-professional .document-summary { border:0; border-radius:12px; background:#f1f6fc; box-shadow:inset 0 0 0 1px #bfd1ee; }
.estimate-template-modern .document-professional .document-summary .document-grand { background:var(--doc-accent); color:#fff; }
.estimate-template-executive .document-professional { box-shadow:inset 10px 0 var(--doc-accent); }
.estimate-template-executive .document-professional .document-brandline { height:4px; background:var(--doc-accent); }
.estimate-template-executive .document-professional .document-header { padding:11px 14px; border:1px solid #d4e1eb; border-left:5px solid var(--doc-accent); border-radius:4px; background:#fff; }
.estimate-template-executive .document-professional .document-brand img,.estimate-template-executive .document-professional .document-logo-fallback { border-radius:4px; box-shadow:none; }
.estimate-template-executive .document-professional .document-heading { padding:4px 8px; border:1px solid var(--doc-accent); }
.estimate-template-executive .document-professional .document-parties>section { border-radius:3px; background:#fff; }
.estimate-template-executive .document-professional .document-parties>section:first-child { border-left:6px solid var(--doc-accent); }
.estimate-template-executive .document-professional .document-parties>section+section { border-left:1px solid #d4e1eb; background:#f8fafc; }
.estimate-template-executive .document-professional .document-metadata { border-radius:3px; }
.estimate-template-executive .document-professional .document-items { border-bottom:4px solid var(--doc-accent)!important; }
.estimate-template-executive .document-professional .document-items th { background:#111827; color:#fff; -webkit-text-fill-color:#fff; }
.estimate-template-executive .document-professional .document-summary { border-radius:3px; border-left:6px solid var(--doc-accent); background:#fff; }
.estimate-template-executive .document-professional .document-summary .document-grand { background:#111827; color:#fff; }
.estimate-template-executive .document-professional.pdf-exporting { box-shadow:inset 10px 0 var(--doc-accent)!important; }
html body .document-professional.pdf-exporting { width:8in; max-width:8in; min-height:10.5in; margin:0; padding:24px; border:0; border-radius:0; box-shadow:none; }
.document-professional.pdf-exporting .document-brandline { margin:-24px -24px 22px; }
.document-professional .document-header,.document-professional .document-parties,.document-professional .document-metadata,.document-professional .document-bottom,.document-professional .document-footer,.document-professional tr { break-inside:avoid; page-break-inside:avoid; }
.document-professional .document-terms { break-inside:auto; page-break-inside:auto; }
.document-professional-choice .template-picker { grid-template-columns:repeat(3,minmax(0,1fr)); }
.preview-classic .preview-document { border-top:3px solid var(--preview-accent,#1769e8); }
.preview-classic .preview-number small,.preview-classic .preview-company b { color:var(--preview-accent,#1769e8); }
.preview-classic .preview-table-head,.preview-classic .preview-total strong { background:color-mix(in srgb,var(--preview-accent,#1769e8) 14%,#fff); color:#142333; }
.preview-classic .preview-meta>span { border-left:2px solid var(--preview-accent,#1769e8); background:#fff; }
.preview-classic .preview-meta>span+span { border-left-color:#389e73; }
.preview-professional .preview-document { border-top:3px solid #2b6591; }
.preview-professional .preview-number small,.preview-professional .preview-company b { color:#2b6591; }
.preview-professional .preview-table-head,.preview-professional .preview-total strong { background:#dbeaf5; color:#142333; }
.preview-professional .preview-meta>span { border-left:2px solid #2b6591; background:#fff; }
.preview-professional .preview-meta>span+span { border-left-color:#389e73; }
.share-pdf-stage { position:absolute; left:-12000px; top:0; width:8in; height:auto; pointer-events:none; z-index:-1000; background:#fff; }
html body .share-pdf-stage .document-professional { display:flex; flex-direction:column; width:8in; max-width:8in; }
html body .share-pdf-stage .document-professional.pdf-exporting { width:8in; max-width:8in; min-height:10.5in; height:auto; margin:0; padding:24px; overflow:visible; }
@page { size:Letter portrait; margin:.25in; }
@media print {
 html,body { width:auto; min-height:0; background:#fff; }
 .app>aside,.mobile-nav,.print-actions,.public-actions { display:none!important; }
 .document-preview{width:8in;max-width:8in;height:auto!important;overflow:visible;box-shadow:none}
 .document-paper{width:8in;min-height:0;padding:0;transform:none}
 .content,.public-document,.content main { width:100%!important; margin:0!important; padding:0!important; }
 html body .document-professional { width:8in; max-width:8in; min-height:10.5in; padding:24px; border:0; box-shadow:none; }
 .document-professional .document-brandline { margin:-24px -24px 22px; }
 .document-professional { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
 .document-professional .document-items thead { display:table-header-group; }
}

.document-language { display:flex; gap:5px; margin-left:auto; margin-right:12px; }
.document-language a { padding:7px; border:1px solid #d4e1eb; border-radius:6px; color:#2b6591; font-size:11px; }
.document-language a[aria-current=true] { background:#dbeaf5; font-weight:700; }
@media screen and (max-width:700px) { .public-actions { flex-wrap:wrap; gap:8px; } .public-actions strong { width:100%; } .document-language { margin-left:0; } }
@media screen and (max-width:760px) { .document-professional-choice .template-picker { grid-template-columns:minmax(0,1fr); gap:10px; } .document-professional-choice .template-real-preview { height:164px; } }

/* The PDF capture surface is invisible and must never intercept application clicks. */
.html2pdf__overlay,.html2pdf__overlay * { pointer-events:none!important; }

.report-grid > .invoice-status-section {
  grid-column:1;
  grid-row:1;
  margin:0;
  padding:20px;
  overflow:hidden;
}

/* Month and date range share one filter design in Reports and Estimates. */
.business-dashboard-head{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,1.9fr);align-items:center;gap:24px}
.dashboard-period-summary{display:flex;align-items:flex-start;gap:8px;margin-top:10px;color:#52627a;font-size:13px;font-weight:650;line-height:1.45}
.dashboard-period-summary i{width:16px;height:16px;flex:none;margin-top:1px;color:#1769e8}
.period-filter{display:grid;width:auto!important;grid-template-columns:minmax(135px,.9fr) minmax(145px,1fr) minmax(145px,1fr) 88px auto;align-items:end;gap:9px;margin:0;padding:12px 14px;border:1px solid #dbe5f2;border-radius:14px;background:linear-gradient(135deg,#fff 0%,#f7faff 100%);box-shadow:0 5px 18px rgba(35,73,125,.06)}
.period-filter>label{display:grid;min-width:0;gap:5px}
.period-filter>label>span{color:#52627a;font-size:10px;font-weight:750;letter-spacing:.02em}
.period-filter select,.period-filter input{box-sizing:border-box;width:100%;height:40px;min-width:0;padding:0 10px;border:1px solid #d5e0ee;border-radius:9px;background:#fff;color:#26364b;font-size:12px;transition:border-color .15s,box-shadow .15s}
.period-filter select:focus,.period-filter input:focus{outline:0;border-color:#4385f5;box-shadow:0 0 0 3px rgba(59,130,246,.13)}
.period-filter .period-filter-apply{height:40px;min-height:40px;padding:0 13px;border:1px solid #1769e8;border-radius:9px;background:#1769e8;color:#fff;font-size:11px;font-weight:750;white-space:nowrap;box-shadow:0 3px 8px rgba(23,105,232,.17)}
.period-filter .period-filter-clear{align-self:center;padding:0 3px;color:#52627a;font-size:10px;font-weight:700;white-space:nowrap}
.estimate-period-filter{margin:18px 0 12px}
.estimate-filters{grid-template-columns:minmax(260px,1fr) minmax(170px,220px);margin-top:0}
.estimate-filters select{height:52px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0 12px}
@media(max-width:1100px){.business-dashboard-head{grid-template-columns:minmax(0,1fr);gap:12px}}
@media(max-width:700px){.period-filter{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:12px;border-radius:12px}.period-filter>label>span{font-size:9px}.period-filter select,.period-filter input{height:42px;font-size:11px}.period-filter .period-filter-apply{height:42px;min-height:42px}.period-filter .period-filter-clear{justify-self:start;padding-left:8px}.business-dashboard-head{gap:10px}.dashboard-period-summary{margin-top:7px;font-size:12px}.estimate-filters{grid-template-columns:minmax(0,1fr) minmax(125px,.65fr)}.estimate-filters .search-box{grid-column:auto}.estimate-filters select{grid-column:auto}}
.report-grid > section:not(.invoice-status-section):first-of-type {
  grid-column:1 / -1;
  grid-row:2;
}
.report-grid > section:last-child {
  grid-column:2;
  grid-row:1;
}
.status-section-head { display:flex; margin-bottom:14px; align-items:flex-start; justify-content:space-between; gap:12px; }
.status-section-head h2 { margin:0 0 5px; font-size:15px; }
.status-section-head p { margin:0; color:#64748b; font-size:9px; }
.status-section-head span { flex:none; padding:5px 8px; border:1px solid #dbe4ef; border-radius:999px; background:#f8fafc; color:#64748b; font-size:8px; font-weight:750; }
.invoice-status-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.invoice-status-card {
  --status-color:#94a3b8;
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  min-height:58px;
  padding:10px 12px 11px;
  align-items:center;
  gap:4px 10px;
  overflow:hidden;
  border:1px solid #e0e7f0;
  border-radius:10px;
  background:#fff;
}
.invoice-status-card::after { content:""; position:absolute; top:0; bottom:0; left:0; width:4px; background:var(--status-color); }
.invoice-status-card header { display:flex !important; height:auto !important; padding:0 !important; align-items:center; border:0 !important; background:transparent !important; }
.invoice-status-card header span { display:flex; min-width:0; align-items:center; gap:7px; overflow:hidden; color:#111827; font-size:11px; font-weight:800; white-space:nowrap; text-overflow:ellipsis; }
.invoice-status-card header span::before { content:""; width:7px; height:7px; flex:none; border-radius:50%; background:var(--status-color); box-shadow:0 0 0 3px color-mix(in srgb,var(--status-color) 14%,transparent); }
.invoice-status-card strong { grid-column:2; grid-row:1 / 3; color:#0f172a; font-size:20px; line-height:1; }
.invoice-status-card small { grid-column:1; margin:0; overflow:hidden; color:#111827; font-size:10.5px; font-weight:600; line-height:1.25; white-space:nowrap; text-overflow:ellipsis; }
.invoice-status-card[data-status="sent"]{--status-color:#3b82f6}.invoice-status-card[data-status="accepted"]{--status-color:#14b8a6}.invoice-status-card[data-status="paid"]{--status-color:#16a34a}.invoice-status-card[data-status="expired"]{--status-color:#f59e0b}.invoice-status-card[data-status="cancelled"]{--status-color:#ef4444}
.invoice-status-card[data-status="cancelled"] header span,.invoice-status-card[data-status="cancelled"] strong,.invoice-status-card[data-status="cancelled"] small{color:#b91c1c}

/* Business dashboard: compact, responsive report layout. */
.business-dashboard-head{margin-bottom:20px}
.business-dashboard-head + .report-stats{margin-top:-26px}
.report-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}
.report-stats article{display:flex;min-width:0;min-height:104px;flex-direction:column;justify-content:center;gap:5px;padding:16px 18px;border:1px solid #dbe3ee;border-radius:14px;background:#fff}
.report-stats article small{color:#64748b;font-size:10px;font-weight:800;letter-spacing:.045em}
.report-stats article b{overflow:hidden;color:#172033;font-size:23px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}
.report-stats article span{color:#64748b;font-size:11px}
.business-dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:stretch}
.dashboard-chart-card{min-width:0;padding:20px;border:1px solid #dbe3ee;border-radius:15px;background:#fff}
.dashboard-chart-card .section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:17px}
.dashboard-chart-card .section-title h2{margin:0;color:#172033;font-size:16px;line-height:1.3}
.dashboard-chart-card .section-title p{margin:5px 0 0;color:#64748b;font-size:11px;line-height:1.4}
.dashboard-chart-card .chart-total{flex:none;padding:5px 8px;border-radius:999px;background:#eff6ff;color:#2563eb;font-size:9px;font-weight:800}
.estimate-share-content{display:grid;grid-template-columns:minmax(170px,.9fr) minmax(0,1.1fr);align-items:center;gap:14px}
.estimate-pie-wrap{display:grid;place-items:center;min-width:0}
.estimate-pie{display:block;width:min(100%,255px);height:auto;overflow:visible}
.estimate-pie circle{transition:opacity .15s ease}
.estimate-pie circle:not(.pie-track):hover{opacity:.78}
.pie-track{fill:none;stroke:#eef2f7;stroke-width:56}
.pie-total{fill:#172033;font-size:25px;font-weight:800}
.pie-caption{fill:#64748b;font-size:9px;font-weight:700;letter-spacing:.05em}
.estimate-status-legend{display:grid;gap:4px;min-width:0}
.estimate-legend-row{display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #eef2f7}
.estimate-legend-row:last-child{border-bottom:0}
.estimate-legend-row>i{width:9px;height:9px;border-radius:50%;background:var(--legend-color)}
.estimate-legend-row>span{display:grid;min-width:0;gap:2px}
.estimate-legend-row b{overflow:hidden;color:#334155;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.estimate-legend-row small{color:#64748b;font-size:9px}
.estimate-legend-row strong{color:#334155;font-size:10px}
.dashboard-year-filter{display:flex;align-items:center;gap:7px}
.dashboard-year-filter label{color:#64748b;font-size:10px;font-weight:700}
.dashboard-year-filter select{min-height:32px;padding:4px 24px 4px 9px;border:1px solid #dbe3ee;border-radius:8px;background:#fff;color:#334155;font-size:11px}
.monthly-chart-legend{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 8px;color:#64748b;font-size:10px}
.monthly-chart-legend span{display:flex;align-items:center;gap:6px}
.monthly-chart-legend i{width:9px;height:9px;border-radius:3px;background:#3478f6}
.monthly-chart-legend i.amount-key{background:#9bb8ef}
.monthly-chart-legend i.completed-amount-key{background:#9bb8ef}
.monthly-chart-legend i.scheduled-jobs-key{background:#0b9b63}
.monthly-chart-legend i.scheduled-amount-key{background:#83cfa5}
.monthly-completed-amount-bar{background:#9bb8ef}
.monthly-scheduled-job-bar{background:#0b9b63}
.monthly-scheduled-amount-bar{background:#83cfa5}
.completed-monthly-card .chart-total{padding:8px 13px;font-size:18px!important;line-height:1.1;letter-spacing:.01em;text-transform:capitalize}
.completed-monthly-card .monthly-bar-column{grid-template-rows:38px 124px 18px}
.completed-monthly-card .monthly-bar-values{font-size:8px;line-height:1.15}
.completed-monthly-card .monthly-bar-values b{font-size:8px}
.completed-monthly-card .monthly-bar-values small{font-size:8px}
.completed-monthly-card .monthly-bar-plot{gap:2px}
.completed-monthly-card .monthly-bar-plot i{width:min(20%,8px)}
.completed-monthly-card .monthly-job-summary{font-size:12px}
.completed-monthly-card .monthly-job-summary>span{display:flex;align-items:center;gap:5px}
@media(max-width:700px){.completed-monthly-card .chart-total{font-size:16px!important}.completed-monthly-card .monthly-bar-column{grid-template-rows:36px 105px 16px}.completed-monthly-card .monthly-job-summary{font-size:10px}}
.monthly-chart-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
.monthly-bars{display:grid;grid-template-columns:repeat(12,minmax(36px,1fr));gap:7px;min-width:480px;padding:6px 2px 0}
.monthly-bar-column{display:grid;grid-template-rows:30px 124px 18px;min-width:0;gap:5px;text-align:center}
.monthly-bar-values{display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;color:#334155;font-size:9px;line-height:1.1}
.monthly-bar-values b{font-size:10px}
.monthly-bar-values small{overflow:hidden;color:#64748b;font-size:8px;text-overflow:ellipsis}
.monthly-bar-plot{display:flex;align-items:flex-end;justify-content:center;gap:3px;min-height:0;border-bottom:1px solid #dbe3ee;background:repeating-linear-gradient(to bottom,transparent 0,transparent 30px,#eef2f7 31px,#eef2f7 32px)}
.monthly-bar-plot i{display:block;width:min(35%,13px);min-height:0;border-radius:4px 4px 0 0}
.monthly-job-bar{background:#3478f6}
.monthly-amount-bar{background:#9bb8ef}
.monthly-bar-column>span{color:#64748b;font-size:9px}
.monthly-job-summary{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid #eef2f7;color:#475569;font-size:10px}
.monthly-job-summary b{color:#172033}
.top-services-card .bar-list{display:grid;gap:12px}
.top-services-card .bar-list>div>p{display:flex;justify-content:space-between;gap:12px;margin:0 0 5px;font-size:11px}
.top-services-card .bar-list>div>p b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top-services-card .bar-list>div>p span{flex:none;color:#64748b}
.top-services-card .bar-list>div>i{display:block;height:6px;overflow:hidden;border-radius:99px;background:#eef2f7}
.top-services-card .bar-list>div>i em{display:block;height:100%;border-radius:inherit;background:#3478f6}
.operations-list{display:grid;gap:0}
.operations-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #eef2f7}
.operations-list>div:last-child{border-bottom:0}
.operations-list>div>span{display:flex;align-items:center;gap:8px;color:#475569;font-size:11px}
.operations-list>div>span svg{width:15px;height:15px;color:#3478f6}
.operations-list>div>b{color:#172033;font-size:14px}

@media(max-width:900px){
  .report-grid > .invoice-status-section,.report-grid > section:not(.invoice-status-section):first-of-type,.report-grid > section:last-child{grid-column:1;grid-row:auto}
  .report-grid > .invoice-status-section{order:1}
  .report-grid > section:last-child{order:2}
  .report-grid > section:not(.invoice-status-section):first-of-type{order:3}
}
@media(max-width:980px){
  .report-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .business-dashboard-grid{grid-template-columns:minmax(0,1fr)}
  .estimate-share-content{grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr)}
}
@media(max-width:520px){
  .report-grid > .invoice-status-section{padding:15px 13px}
  .status-section-head{margin-bottom:12px}
  .status-section-head h2{font-size:14px}
  .status-section-head p{max-width:190px;font-size:7.5px}
  .status-section-head span{font-size:7px}
  .invoice-status-grid{gap:7px}
  .invoice-status-card{min-height:56px;padding:9px 9px 10px}
  .invoice-status-card header span{font-size:10px}
  .invoice-status-card strong{font-size:18px}
  .invoice-status-card small{font-size:9.5px}
  .business-dashboard-head{align-items:flex-start;gap:10px;margin-bottom:14px}
  .business-dashboard-head + .report-stats{margin-top:-8px}
  .business-dashboard-head .heading h1{font-size:23px}
  .business-dashboard-head .new{flex:none;padding:9px 10px;font-size:11px}
  .report-stats{gap:8px;margin-bottom:12px}
  .report-stats article{min-height:82px;padding:11px 12px;border-radius:11px}
  .report-stats article b{font-size:18px}
  .report-stats article small{font-size:8px}
  .report-stats article span{font-size:9px}
  .business-dashboard-grid{gap:11px}
  .dashboard-chart-card{padding:14px 12px;border-radius:12px}
  .dashboard-chart-card .section-title{gap:8px;margin-bottom:12px}
  .dashboard-chart-card .section-title h2{font-size:14px}
  .dashboard-chart-card .section-title p{font-size:10px}
  .estimate-share-content{grid-template-columns:minmax(0,1fr);gap:8px}
  .estimate-pie{width:min(68vw,230px)}
  .estimate-status-legend{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px}
  .estimate-legend-row{grid-template-columns:8px minmax(0,1fr) auto;gap:6px}
  .estimate-legend-row b{font-size:10px}
  .estimate-legend-row small{font-size:8px}
  .estimate-legend-row strong{font-size:9px}
  .monthly-bars{min-width:460px;gap:5px}
  .monthly-bar-column{grid-template-rows:27px 105px 16px}
  .monthly-job-summary{font-size:9px}
  .operations-list>div>span{font-size:10px}
}
/* Keep mobile filter controls inside their grid cells, including iOS date inputs. */
@media (max-width: 700px) {
  .period-filter,
  .activity-filters,
  .task-range-filters,
  .estimate-filters {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .period-filter > *,
  .activity-filters > *,
  .task-range-filters > *,
  .estimate-filters > * {
    min-width: 0 !important;
    max-width: 100%;
  }

  .period-filter > label,
  .activity-filters > label,
  .task-range-filters > label,
  .estimate-filters > label,
  .estimate-filters .search-box {
    width: 100%;
    min-width: 0 !important;
  }

  .period-filter input,
  .period-filter select,
  .activity-filters input,
  .activity-filters select,
  .task-range-filters input,
  .task-range-filters select,
  .estimate-filters input,
  .estimate-filters select {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .period-filter input[type="date"],
  .activity-filters input[type="date"],
  .task-range-filters input[type="date"] {
    padding-right: 7px !important;
    padding-left: 7px !important;
    font-size: 16px !important;
    overflow: hidden;
  }

  .period-filter .period-filter-apply,
  .activity-filters button,
  .task-range-filters button[type="submit"] {
    width: 100% !important;
    min-width: 0 !important;
    justify-self: stretch;
    padding-right: 8px;
    padding-left: 8px;
  }

  .activity-filters .activity-search,
  .activity-filters button {
    grid-column: 1 / -1 !important;
  }

  .estimate-filters .search-box,
  .estimate-filters select {
    grid-column: 1 / -1 !important;
  }

  .period-filter > label:nth-of-type(3) {
    grid-column: 1 / -1;
  }

  .period-filter .period-filter-clear {
    grid-column: 1;
    grid-row: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    border: 1px solid #d5e0ee;
    border-radius: 9px;
    background: #fff;
    color: #52627a;
  }

  .period-filter .period-filter-apply {
    grid-column: 2;
    grid-row: 3;
  }

  .period-filter .period-filter-clear {
    min-height: 42px;
    justify-self: stretch;
    align-self: center;
  }

  .mobile-nav .mobile-create > svg {
    display: none;
  }

  body .mobile-nav > a.mobile-create > span.mobile-create-plus {
    display: grid !important;
    width: 100%;
    height: 100%;
    place-items: center;
    color: #fff !important;
    font-size: 28px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
  }
}

/* Desktop and tablet responsive pass. Mobile (<=700px) keeps its established layout. */
@media (min-width:701px) {
  .app > aside.app-sidebar { height:100dvh; min-height:0; overflow:hidden; padding-block:clamp(10px,2vh,22px); }
  .app > aside .sidebar-brand { margin-bottom:clamp(7px,1.5vh,14px); padding:clamp(8px,1.4vh,12px) 10px!important; }
  .app > aside .brand-logo-premium { width:clamp(42px,4vw,48px); height:clamp(42px,4vw,48px); }
  .app > aside nav.sidebar-nav { min-height:0; gap:clamp(2px,.55vh,5px); margin-top:clamp(6px,1.25vh,12px); overflow-x:hidden; overflow-y:hidden; }
  .app > aside nav.sidebar-nav > a { min-height:clamp(36px,5.5vh,44px); gap:8px; padding:clamp(5px,.75vh,8px) 8px; font-size:12px; }
  .app > aside nav.sidebar-nav > a > svg,
  .app > aside nav.sidebar-nav > a > i { flex:0 0 26px; width:26px; height:26px; }
  .app > aside .sidebar-footer { margin-top:clamp(5px,1vh,10px); padding-top:clamp(5px,1vh,9px); }
  .app > aside .sidebar-footer > a { min-height:38px; padding:6px 9px; }
  .content, .content main, .content main > *, .card, .module-head, .section-title { min-width:0; }
  .content main { width:100%; }
  .module-head, .dashboard-heading { flex-wrap:wrap; }
  .module-head > *, .section-title > * { min-width:0; }
  .stats, .catalog-overview, .task-summary, .fields, .report-grid, .report-stats { min-width:0; }
}

/* Compact installation cards with optional, accessible detail disclosure. */
.appointment-list .appointment-item { align-items:center; }
.appointment-summary { gap:3px!important; }
.appointment-summary > div { gap:7px!important; }
.appointment-summary > div > b { font-size:13px; }
.appointment-summary .appointment-assignee { padding:3px 7px; }
.appointment-project-cost { font-size:10px; }
.appointment-action.details-toggle { border-color:#cbdaf5; background:#f6f9ff; color:#245bb5; }
.appointment-action.details-toggle:hover,
.appointment-action.details-toggle[aria-expanded="true"] { border-color:#9bbcf3; background:#eaf2ff; color:#174ea6; }
.appointment-quick-actions .appointment-action { min-height:38px; padding-block:7px; }
.appointment-details-modal[hidden] { display:none!important; }
.appointment-details-modal:not([hidden]) { position:fixed; inset:0; z-index:10000; display:grid!important; box-sizing:border-box; place-items:center; overflow-y:auto; padding:20px; background:rgba(15,23,42,.55); backdrop-filter:blur(5px); }
.appointment-details-backdrop { position:fixed!important; inset:0!important; z-index:0!important; display:block!important; width:100%!important; height:100%!important; min-height:0!important; margin:0!important; padding:0!important; border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; cursor:default; }
.appointment-details-panel { position:relative; z-index:1; box-sizing:border-box; width:min(640px,100%); min-width:0; max-height:min(82dvh,740px); overflow:auto; padding:18px; border:1px solid #dce5f2; border-radius:18px; background:#fff; box-shadow:0 28px 90px rgba(15,23,42,.28); }
.appointment-details-header { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:12px; padding-bottom:10px; border-bottom:1px solid #e8edf4; }
.appointment-details-header small { color:#1769e8; font-size:10px; font-weight:850; letter-spacing:1.1px; }
.appointment-details-header h2 { margin:6px 0; color:#172033; font-size:21px; line-height:1.25; }
.appointment-details-header p { margin:0; color:#667085; font-size:12px; line-height:1.5; }
.appointment-details-close { display:grid!important; flex:0 0 38px!important; width:38px!important; min-width:38px!important; min-height:38px!important; height:38px!important; place-items:center; margin:0!important; padding:0!important; border:1px solid #e0e6ef!important; border-radius:12px!important; background:#f8fafc!important; box-shadow:none!important; color:#475569!important; }
.appointment-details-close svg { width:18px; height:18px; }
.appointment-details-content { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.appointment-details-content .appointment-detail-line { box-sizing:border-box; min-height:54px; padding:9px 10px; border:1px solid #e5ebf3; border-radius:10px; background:#fbfdff; }
.appointment-details-content .appointment-detail-materials { grid-column:span 2; }
.appointment-details-open { overflow:hidden; }
.appointment-detail-line { display:flex; align-items:center; gap:8px; min-width:0; color:#53647c; font-size:11px; }
.appointment-detail-line > svg { flex:0 0 17px; width:17px; height:17px; color:#4774b9; }
.appointment-detail-line > span { display:grid; gap:2px; min-width:0; }
.appointment-detail-line small { color:#77859a; font-size:9px; font-weight:750; }
.appointment-detail-line b,
.appointment-detail-line span > a { min-width:0; overflow-wrap:anywhere; color:#34445c; font-size:11px; font-weight:650; }
.appointment-detail-line span > a { text-decoration:none; }
.appointment-detail-link { display:inline-flex; flex:none; align-items:center; gap:5px; margin-left:auto; padding:6px 8px; border:1px solid #d4e2f8; border-radius:8px; background:#fff; color:#1769e8; font-size:10px; font-weight:750; text-decoration:none; }
.appointment-detail-link svg { width:14px; height:14px; }
.appointment-detail-materials { align-items:flex-start; }
.appointment-detail-materials > svg { margin-top:2px; }
.appointment-list .date-box,
.appointment-list .date-box * { color:#111827!important; }
.appointment-date-heading { display:flex; align-items:baseline; justify-content:center; gap:3px; white-space:nowrap; }
.appointment-list .appointment-date-heading > b { font-size:14px; line-height:1; }
.appointment-list .appointment-date-heading > span { font-size:9px; line-height:1; }
@media (min-width:701px) and (max-width:850px) {
  .appointment-list .appointment-quick-actions { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
}
@media (max-width:700px) {
  .appointment-details-modal:not([hidden]) { place-items:end center; padding:10px; }
  .appointment-details-panel { width:100%; max-height:85dvh; padding:18px; border-radius:18px 18px 12px 12px; }
  .appointment-details-content { grid-template-columns:minmax(0,1fr); }
  .appointment-details-content .appointment-detail-materials { grid-column:1; }
  .appointment-action.details-toggle { white-space:normal; }
}

/* Compact sidebar when the desktop viewport has limited vertical space. */
@media (min-width:701px) and (max-height:760px) {
  .app > aside.app-sidebar { padding-block:8px; }
  .app > aside .sidebar-brand { grid-template-columns:42px minmax(0,1fr); gap:8px; margin-bottom:6px; padding:7px 8px!important; }
  .app > aside .brand-logo-premium { width:38px; height:38px; }
  .app > aside .brand-copy-premium strong { font-size:12px; }
  .app > aside .brand-slogan { margin-top:3px; font-size:9px; }
  .app > aside nav.sidebar-nav { margin-top:4px; }
  .app > aside nav.sidebar-nav > a { min-height:clamp(31px,5.2vh,39px); gap:7px; padding:4px 7px; font-size:11px; }
  .app > aside nav.sidebar-nav > a > svg,
  .app > aside nav.sidebar-nav > a > i { flex-basis:23px; width:23px; height:23px; }
  .app > aside .sidebar-footer { margin-top:4px; padding-top:4px; }
  .app > aside .sidebar-footer > a { min-height:34px; padding:4px 7px; }
}

/* Prevent page headers and action groups from leaving their content column. */
@media (min-width:701px) and (max-width:1200px) {
  .module-head { align-items:flex-start; }
  .module-head .heading { flex:1 1 260px; }
  .catalog-head { align-items:flex-start; }
  .catalog-add-actions { flex:1 1 100%; justify-content:flex-end; min-width:0; }
  .catalog-add-actions button { flex:0 1 auto; max-width:100%; white-space:normal; }
  .catalog-overview { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .catalog-toolbar { flex-wrap:wrap; }
  .catalog-search { flex:1 1 260px; }
  .catalog-type-filter { max-width:100%; flex-wrap:wrap; }
  .appointment-list-title { align-items:flex-start; flex-wrap:wrap; }
}

/* Appointment controls use a contained two-row layout at laptop/tablet widths. */
@media (min-width:701px) and (max-width:1200px) {
  .appointment-list .appointment-item {
    grid-template-columns:82px minmax(0,1fr)!important;
    align-items:start;
    gap:10px 12px;
    padding:14px!important;
  }
  .appointment-list .appointment-item > .date-box { grid-column:1; grid-row:1 / span 3; }
  .appointment-list .appointment-item > .appointment-summary { grid-column:2; min-width:0; width:100%; }
  .appointment-list .appointment-item > .appointment-quick-actions {
    grid-column:2; grid-row:auto; display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px!important;
    width:100%!important; min-width:0; max-width:100%;
  }
  .appointment-list .appointment-quick-actions > *,
  .appointment-list .appointment-delete-form { width:100%!important; min-width:0; max-width:100%; }
  .appointment-list .appointment-quick-actions .appointment-action {
    width:100%; min-width:0; min-height:38px; gap:4px; padding:6px 4px;
    font-size:clamp(9px,.85vw,11px); white-space:normal; overflow-wrap:anywhere;
  }
  .appointment-list .appointment-quick-actions .appointment-action svg { width:15px; height:15px; flex:none; }
  .appointment-list .appointment-item > .appointment-status-form {
    grid-column:2; grid-row:auto; justify-self:end; width:min(100%,260px)!important;
    min-width:0; max-width:100%;
  }
  .appointment-status-form select { width:100%; min-width:0; max-width:100%; }
}

/* Team task status columns shrink and wrap without pushing the state control out. */
@media (min-width:701px) and (max-width:1100px) {
  .task-agenda { --task-columns:minmax(0,1fr) 64px minmax(0,1.2fr) minmax(125px,.9fr); padding:clamp(14px,2vw,20px); }
  .task-column-head, .task-day-item { gap:8px; padding:10px 9px; }
  .task-column-head { font-size:10px; }
  .task-status-select { min-height:40px; padding:6px 8px; font-size:12px; }
}
@media (min-width:701px) and (max-width:850px) {
  .task-summary { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .task-summary a { padding:10px; }
  .task-summary strong { font-size:22px; }
  .task-range-filters { gap:8px; }
  .task-range-filters label { flex-basis:145px; }
}

/* On narrow tablets the catalog turns into compact rows instead of a clipped table. */
@media (min-width:701px) and (max-width:850px) {
  .catalog-list { overflow:hidden; }
  .catalog-list-head { display:none!important; }
  .catalog-row {
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:8px 12px!important; padding:12px!important;
  }
  .catalog-item-name { grid-column:1; grid-row:1 / span 2; }
  .catalog-row > .catalog-kind { grid-column:2; justify-self:end; }
  .catalog-row > .catalog-stock { grid-column:2; justify-self:end; text-align:right; }
  .catalog-row > strong { grid-column:1; grid-row:3; padding-left:45px; }
  .catalog-row > .record-actions { grid-column:2; grid-row:3; justify-self:end; min-width:0; }
  .catalog-row .record-actions button { min-width:36px; min-height:36px; padding:7px; }
  .catalog-inventory-note { grid-template-columns:20px minmax(0,1fr); }
  .catalog-inventory-note > b { grid-column:2; white-space:normal; }
}

/* Keep common cards and controls inside their own grid tracks at every desktop size. */
@media (min-width:701px) {
  .stats { grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr)); }
  .fields > *, .stats > *, .card > *, .record-actions { min-width:0; }
  input, select, textarea, button { max-width:100%; }
}

@media (min-width:1201px) {
  .appointment-list .appointment-item { grid-template-columns:84px minmax(220px,1fr) auto 160px; padding:11px 16px; gap:10px 12px; }
  .appointment-list .appointment-item > .date-box,
  .appointment-list .appointment-item > .appointment-summary,
  .appointment-list .appointment-item > .appointment-quick-actions,
  .appointment-list .appointment-item > .appointment-status-form { grid-row:1; }
  .appointment-list .appointment-item > .date-box { grid-column:1; }
  .appointment-list .appointment-item > .appointment-summary { grid-column:2; }
  .appointment-list .appointment-item > .appointment-quick-actions { grid-column:3; }
  .appointment-list .appointment-item > .appointment-status-form { grid-column:4; }
  .appointment-action.details-toggle { min-width:176px; }
}
@media (min-width:851px) and (max-width:1200px) {
  .appointment-list .appointment-item {
    grid-template-columns:82px minmax(0,1fr) minmax(220px,36%)!important;
    align-items:center; gap:8px 12px;
  }
  .appointment-list .appointment-item > .date-box { grid-column:1; grid-row:1 / span 2; }
  .appointment-list .appointment-item > .appointment-summary { grid-column:2; grid-row:1 / span 2; }
  .appointment-list .appointment-item > .appointment-quick-actions {
    grid-column:3; grid-row:1; grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:100%!important;
  }
  .appointment-list .appointment-item > .appointment-status-form {
    grid-column:3; grid-row:2; width:100%!important; justify-self:stretch;
  }
}
@media (min-width:701px) {
  .appointment-list .date-box { width:76px; height:auto; min-height:68px; display:flex; flex-direction:column; justify-content:center; gap:2px; padding:7px 5px; }
  .appointment-list .appointment-date-heading > b { font-size:12px; }
  .appointment-list .appointment-date-heading > span { font-size:8px; }
  .appointment-date-meta { display:grid; justify-items:center; gap:2px; width:100%; margin-top:3px; color:#5b6b82; font-size:8px; font-style:normal; line-height:1.15; text-align:center; }
  .appointment-date-customer { max-width:100%; overflow-wrap:anywhere; }
}
@media (min-width:701px) and (max-width:850px) {
  .appointment-list .appointment-item { grid-template-columns:82px minmax(0,1fr)!important; }
}
@media (max-width:700px) {
  .appointment-list .appointment-item { grid-template-columns:66px minmax(0,1fr); }
  .appointment-list .date-box { width:100%; height:auto; min-height:64px; display:flex; flex-direction:column; justify-content:center; gap:2px; padding:6px 3px; }
  .appointment-list .appointment-date-heading > b { font-size:12px; }
  .appointment-list .appointment-date-heading > span { font-size:8px; }
  .appointment-date-meta { display:grid; justify-items:center; gap:2px; width:100%; margin-top:3px; color:#5b6b82; font-size:7.5px; font-style:normal; line-height:1.15; text-align:center; }
  .appointment-date-customer { max-width:100%; overflow-wrap:anywhere; }
}

/* Cross-device layout pass: preserve readable type and let components reflow. */
html, body { max-width:100%; }
body { overflow-x:clip; }
.app, .app > aside, .content, .content main, .content main > *,
.content main section, .card, .section-title, .module-head,
.appointment-item, .task-agenda, .task-day-item { min-width:0; }
.content main { width:100%; max-width:1600px; margin-inline:auto; padding-inline:clamp(16px,3vw,40px); }
.app > aside nav.sidebar-nav { overflow-x:hidden; overflow-y:auto; scrollbar-width:thin; overscroll-behavior:contain; }
.app > aside nav.sidebar-nav > a { min-height:42px; font-size:14px; line-height:1.25; }
.app > aside .brand-copy-premium strong { font-size:15px; }
.app > aside .sidebar-footer { flex:none; }
button, input, select, textarea { box-sizing:border-box; }

@media (min-width:701px) and (max-width:1000px) {
  .app > aside.app-sidebar { width:210px; }
  .content { width:calc(100% - 210px); margin-left:210px; }
  .app > aside nav.sidebar-nav > a { min-height:40px; padding:6px 8px; font-size:14px; }
  .app > aside .brand-copy-premium strong { font-size:14px; }
  .content main { padding-inline:clamp(16px,2.4vw,26px); }
  .stats, .catalog-overview, .report-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .period-filter, .activity-filters, .task-range-filters, .estimate-filters {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .period-filter > *, .activity-filters > *, .task-range-filters > *, .estimate-filters > * {
    min-width:0!important; max-width:100%;
  }
  .period-filter input, .period-filter select, .activity-filters input, .activity-filters select,
  .task-range-filters input, .task-range-filters select, .estimate-filters input, .estimate-filters select {
    width:100%!important; min-width:0!important; max-width:100%!important; box-sizing:border-box!important;
  }
  .period-filter .period-filter-apply, .activity-filters button, .task-range-filters button[type="submit"] {
    grid-column:1/-1; width:100%; min-width:0;
  }
  .appointment-list .appointment-item {
    grid-template-columns:76px minmax(0,1fr)!important;
    align-items:start;
    gap:10px 12px;
    padding:12px!important;
  }
  .appointment-list .appointment-item > .date-box { grid-column:1; grid-row:1 / span 3; }
  .appointment-list .appointment-item > .appointment-summary { grid-column:2; grid-row:1; width:100%; }
  .appointment-list .appointment-item > .appointment-quick-actions {
    grid-column:2; grid-row:2; display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:100%!important; min-width:0; gap:7px!important;
  }
  .appointment-list .appointment-quick-actions > *,
  .appointment-list .appointment-delete-form,
  .appointment-list .appointment-quick-actions .appointment-action {
    width:100%!important; min-width:0; max-width:100%;
  }
  .appointment-list .appointment-quick-actions .appointment-action {
    min-height:42px; padding:7px 8px; font-size:12px; white-space:normal;
  }
  .appointment-list .appointment-item > .appointment-status-form {
    grid-column:2; grid-row:3; width:100%!important; max-width:100%; justify-self:stretch;
  }
}

@media (min-width:701px) and (max-width:850px) {
  .catalog-head { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; align-content:start; }
  .catalog-add-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; align-content:start; }
  .catalog-add-actions > * { min-width:0; white-space:normal; }
  .catalog-toolbar { display:grid; grid-template-columns:minmax(0,1fr); }
  .catalog-toolbar-filters { display:grid; grid-template-columns:minmax(0,1fr) auto; min-width:0; }
}

@media (max-width:700px) {
  .content main { overflow:visible!important; padding:16px 14px calc(108px + env(safe-area-inset-bottom))!important; }
  .mobile-nav > a > span { font-size:10px!important; line-height:1.12; }
  .module-head, .dashboard-heading, .polished-head, .estimates-head,
  .catalog-head, .appointment-list-title { display:flex; flex-wrap:wrap; gap:10px; }
  .module-head .heading, .dashboard-heading .heading, .polished-head .heading,
  .estimates-head .heading, .catalog-head .heading { flex:1 1 220px; }
  .module-head > button, .module-head > .new, .estimates-head > .new {
    flex:0 0 auto; width:auto!important; max-width:100%; min-height:42px;
    padding:9px 12px!important; font-size:12px!important;
  }
  .module-head > button svg, .module-head > .new svg, .estimates-head > .new svg { flex:none; }
  .period-filter, .activity-filters, .task-range-filters, .estimate-filters { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .appointment-list .appointment-item { grid-template-columns:70px minmax(0,1fr)!important; }
  .appointment-list .appointment-item > .date-box { grid-column:1; grid-row:1; }
  .appointment-list .appointment-item > .appointment-summary { grid-column:2; grid-row:1; min-width:0; width:100%; }
  .appointment-list .appointment-quick-actions {
    display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-column:1/-1!important; grid-row:2; width:100%!important; min-width:0!important; gap:7px!important;
  }
  .appointment-list .appointment-quick-actions > *,
  .appointment-list .appointment-delete-form,
  .appointment-list .appointment-quick-actions .appointment-action {
    width:100%!important; min-width:0!important; max-width:100%!important; margin:0!important;
  }
  .appointment-list .appointment-quick-actions .appointment-action {
    min-height:40px; padding:7px 8px!important; font-size:11px!important; white-space:normal!important;
  }
  .appointment-list .appointment-item > .appointment-status-form {
    grid-column:1/-1!important; grid-row:3; width:100%!important; min-width:0!important; max-width:100%!important;
  }
  .appointment-list .appointment-status-form select { width:100%!important; min-width:0!important; }
  .catalog-add-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
  .catalog-add-actions > * { min-width:0; white-space:normal; }
  .catalog-toolbar { display:grid; grid-template-columns:minmax(0,1fr); }
  .catalog-toolbar-filters { display:grid; grid-template-columns:minmax(0,1fr); }
  .catalog-type-filter { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); min-width:0; }
  .catalog-type-filter button { min-width:0; padding-inline:5px; white-space:normal; }
  .activity-filters input[type="date"], .period-filter input[type="date"],
  .task-range-filters input[type="date"] { min-width:0!important; width:100%!important; }
  .report-grid, .settings-modules, .detail-grid, .fields { min-width:0; }
  .modal, .modal-card, .appointment-details-modal, .appointment-details-panel { min-width:0; }
}

@media (max-width:390px) {
  .content main { padding-inline:10px!important; }
  .mobile-nav { gap:0!important; padding-inline:3px!important; }
  .mobile-nav > a > span { font-size:10px!important; }
  .module-head > button, .module-head > .new, .estimates-head > .new { padding-inline:9px!important; }
}

@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}

/* Catalog readability: enlarge secondary labels while keeping every column fluid. */
.catalog-overview small { font-size:11px; }
.catalog-list-head { font-size:11px; }
.catalog-item-name b { font-size:clamp(15px,.9vw,17px); }
.catalog-item-name small { font-size:12px; }
.catalog-kind { padding:6px 10px; font-size:11px; }
.catalog-stock { font-size:13px; }
.catalog-stock small { font-size:11px; }
.catalog-row > strong { font-size:14px; }
.catalog-type-filter button { font-size:12px; }
.catalog-type-filter button span { font-size:11px; }
.catalog-department-filter > span { font-size:11px; }
.catalog-department-filter select { font-size:14px; }
.catalog-department-tag { font-size:11px; }
.catalog-inventory-note { font-size:12px; }

@media (max-width:700px) {
  .catalog-overview small { font-size:10px; }
  .catalog-list-head { font-size:11px; }
  .catalog-item-name b { font-size:16px; }
  .catalog-item-name small { font-size:12px; }
  .catalog-kind { padding:5px 8px; font-size:11px; }
  .catalog-stock { font-size:13px; }
  .catalog-stock small { font-size:11px; }
  .catalog-row > strong { font-size:14px; }
  .catalog-type-filter button { font-size:11px; }
  .catalog-type-filter button span { font-size:10px; }
  .catalog-inventory-note { font-size:11px; }
}

.appointment-list .appointment-date-heading > span,
.appointment-list .appointment-date-customer { font-weight:700; }
.appointment-list .appointment-date-meta > span:first-child { font-size:10px; font-weight:700; }

/* Slightly larger, still compact date, time and customer labels. */
.appointment-list .date-box { box-sizing:border-box; width:100%; min-width:76px; min-height:76px; padding:7px 6px; }
.appointment-list .appointment-date-heading { flex-wrap:nowrap; white-space:nowrap; }
.appointment-list .appointment-date-heading > b { font-size:16px!important; }
.appointment-list .appointment-date-heading > span { font-size:10px!important; }
.appointment-list .appointment-date-meta { font-size:9px!important; line-height:1.2; }
.appointment-list .appointment-date-customer { font-size:9px; }

/* Improve legibility of calendar appointments and day headings. */
.calendar-card .weekdays span { font-size:11px!important; }
.calendar-card .event { font-size:10px!important; line-height:1.25; }

/* Keep the appointment date track wide enough for day, month and time. */
@media (min-width:1201px) {
  .appointment-list .date-box { min-width:94px; }
}
@media (min-width:1001px) and (max-width:1200px) {
  .appointment-list .date-box { min-width:92px; }
}
@media (min-width:701px) and (max-width:1000px) {
  .appointment-list .date-box { min-width:88px; }
}
@media (max-width:700px) {
  .appointment-list .date-box { min-width:82px; }
  .calendar-card .weekdays span { font-size:10px!important; }
  .calendar-card .event { font-size:9px!important; }
}

/* A small readability increase for inventory text without changing its layout. */
.catalog-list-head { font-size:12px; }
.catalog-item-name b { font-size:clamp(16px,1vw,18px); }
.catalog-item-name small { font-size:13px; }
.catalog-kind { font-size:12px; }
.catalog-stock { font-size:14px; }
.catalog-stock small { font-size:12px; }
.catalog-row > strong { font-size:15px; }
.catalog-type-filter button { font-size:12px; }
.catalog-type-filter button span { font-size:11px; }
.catalog-inventory-note { font-size:13px; }
@media (max-width:700px) {
  .catalog-item-name b { font-size:16px; }
  .catalog-item-name small { font-size:12.5px; }
  .catalog-kind { font-size:11.5px; }
  .catalog-stock { font-size:13.5px; }
  .catalog-stock small { font-size:11.5px; }
  .catalog-row > strong { font-size:14.5px; }
  .catalog-inventory-note { font-size:11.5px; }
}

/* Larger sidebar menu icons, with row heights and labels preserved. */
@media (min-width:701px) {
  .app > aside nav.sidebar-nav > a > svg,
  .app > aside nav.sidebar-nav > a > i { flex:0 0 34px; width:34px; height:34px; padding:5px; }
}
@media (min-width:701px) and (max-width:1000px) {
  .app > aside nav.sidebar-nav > a > svg,
  .app > aside nav.sidebar-nav > a > i { flex-basis:32px; width:32px; height:32px; }
}

/* Make the business identity and menu labels more prominent and high contrast. */
@media (min-width:701px) {
  .app > aside .sidebar-brand { grid-template-columns:60px minmax(0,1fr); column-gap:11px; }
  .app > aside .brand-logo-premium { width:58px; height:58px; }
  .app > aside .brand-copy-premium strong { color:#111827; font-size:clamp(15px,1.05vw,17px); }
  .app > aside .brand-copy-premium strong em { color:#111827; }
  .app > aside .brand-slogan { color:#111827; font-size:11px; }
  .app > aside nav.sidebar-nav > a,
  .app > aside nav.sidebar-nav > a.active,
  .app > aside nav.sidebar-nav > a:hover { color:#111827!important; }
  .app > aside nav.sidebar-nav > a > span { color:#111827!important; }
}
@media (min-width:701px) and (max-width:1000px) {
  .app > aside .sidebar-brand { grid-template-columns:54px minmax(0,1fr); column-gap:8px; }
  .app > aside .brand-logo-premium { width:52px; height:52px; }
  .app > aside .brand-copy-premium strong { font-size:15px; }
}
@media (max-width:700px) {
  .app > aside .brand-logo-premium { width:50px; height:50px; }
  .app > aside .brand-copy-premium strong { color:#111827; font-size:15px; }
  .app > aside .brand-copy-premium strong em,
  .app > aside .brand-slogan { color:#111827; }
}

@media (min-width:1201px) {
  .appointment-list .appointment-item { grid-template-columns:94px minmax(220px,1fr) auto 160px; }
}
@media (min-width:1001px) and (max-width:1200px) {
  .appointment-list .appointment-item { grid-template-columns:92px minmax(0,1fr) minmax(220px,36%)!important; }
}
@media (min-width:701px) and (max-width:1000px) {
  .appointment-list .appointment-item { grid-template-columns:88px minmax(0,1fr)!important; }
  .appointment-list .appointment-item > .date-box { grid-column:1; grid-row:1 / span 3; }
  .appointment-list .appointment-date-heading > b { font-size:14px!important; }
  .appointment-list .appointment-date-heading > span { font-size:9px!important; }
}
@media (max-width:700px) {
  .appointment-list .appointment-item { grid-template-columns:82px minmax(0,1fr)!important; }
  .appointment-list .date-box { min-height:72px; padding:6px 4px; }
  .appointment-list .appointment-date-heading > b { font-size:14px!important; }
  .appointment-list .appointment-date-heading > span { font-size:9px!important; }
  .appointment-list .appointment-date-meta,
  .appointment-list .appointment-date-customer { font-size:9px!important; }
  .appointment-list .appointment-date-meta > span:first-child { font-size:10px!important; }
}



/* Stack the complete brand on desktop/tablet so the company name is never clipped. */
@media (min-width:701px) {
  .app > aside .sidebar-brand {
    grid-template-columns:minmax(0,1fr);
    justify-items:center;
    row-gap:8px;
    text-align:center;
  }
  .app > aside .brand-logo-premium { grid-column:1; grid-row:1; }
  .app > aside .brand-copy-premium {
    grid-column:1;
    grid-row:2;
    width:100%;
    min-width:0;
    max-width:100%;
    overflow:visible;
    text-align:center;
  }
  .app > aside .brand-copy-premium strong {
    display:block;
    max-width:100%;
    overflow:visible;
    white-space:normal;
    overflow-wrap:normal;
    text-overflow:clip;
    text-align:center;
  }
  .app > aside .brand-slogan {
    grid-column:1;
    grid-row:3;
    width:100%;
    margin-top:0;
    text-align:center;
  }
}

/* Cross-device layout rules. Reflow components at tablet sizes without shrinking essential text. */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

.app,
.app > aside,
.content,
.content main,
.content main > *,
.content main section,
.content main article,
.card,
.modal,
.modal-card {
  min-width: 0;
  max-width: 100%;
}

img,
video,
canvas,
svg {
  max-width: 100%;
}

button,
input,
select,
textarea {
  box-sizing: border-box;
  max-width: 100%;
}

.content main {
  width: 100%;
  max-width: 1600px;
  margin-inline: auto;
}

.content main table {
  max-width: 100%;
}

.table-wrap,
.table-responsive,
.activity-table-wrap,
.catalog-list,
.estimate-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

/* Tablet and compact desktop: filters, cards, and actions wrap instead of colliding. */
@media (min-width: 701px) and (max-width: 1100px) {
  .app > aside nav.sidebar-nav {
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .content,
  .content main {
    min-width: 0;
  }

  .content main {
    padding-inline: clamp(14px, 2.2vw, 24px);
  }

  .module-head,
  .dashboard-heading,
  .polished-head,
  .estimates-head,
  .catalog-head,
  .appointment-list-title,
  .report-head {
    min-width: 0;
    flex-wrap: wrap;
    gap: 12px;
  }

  .stats,
  .report-stats,
  .catalog-overview,
  .task-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .report-grid,
  .chart-grid,
  .dashboard-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .fields,
  .settings-modules,
  .detail-grid,
  .period-filter,
  .activity-filters,
  .task-range-filters,
  .estimate-filters,
  .catalog-toolbar-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .fields > *,
  .settings-modules > *,
  .detail-grid > *,
  .period-filter > *,
  .activity-filters > *,
  .task-range-filters > *,
  .estimate-filters > *,
  .catalog-toolbar-filters > * {
    min-width: 0;
    max-width: 100%;
  }

  .fields input,
  .fields select,
  .fields textarea,
  .period-filter input,
  .period-filter select,
  .activity-filters input,
  .activity-filters select,
  .task-range-filters input,
  .task-range-filters select,
  .estimate-filters input,
  .estimate-filters select {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .period-filter button,
  .activity-filters button,
  .task-range-filters button[type="submit"] {
    grid-column: 1 / -1;
    width: 100%;
  }

  .catalog-head .catalog-add-actions,
  .catalog-add-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-width: 0;
    max-width: 100%;
  }

  .catalog-add-actions > *,
  .module-head > button,
  .module-head > .new,
  .estimates-head > .new {
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .catalog-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .calendar-card,
  .catalog-card,
  .activity-card,
  .estimate-card {
    min-width: 0;
    max-width: 100%;
  }

  .calendar-card .weekdays,
  .calendar-card .calendar-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }

  .modal,
  .modal-card,
  .appointment-details-modal,
  .appointment-details-panel {
    min-width: 0;
    max-width: calc(100vw - 32px);
  }
}

/* Portrait tablets keep the branded hero image above the sign-in form. */
@media (min-width: 701px) and (max-width: 1100px) and (orientation: portrait) {
  .login-2026 {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    min-height: 100svh;
    background: #f8faff;
  }

  .login-2026 .login-brand {
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    background-position: center;
  }

  .login-2026 .login-brand-image {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    object-fit: contain;
  }

  .login-2026 .login-panel {
    display: block;
    min-height: auto;
    padding: clamp(24px, 5vw, 52px);
  }

  .login-2026 .auth-stage {
    width: min(600px, 100%);
    min-height: 0;
    display: block;
  }

  .login-2026 .auth-card.clean {
    width: min(560px, 100%);
    margin: 24px auto;
    padding: clamp(28px, 4vw, 44px);
  }
}

/* Phones retain the presentation image in a compact banner above the form. */
@media (max-width: 900px) {
  .login-2026 {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    min-height: 100svh;
  }

  .login-2026 .login-brand {
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    background-position: center;
  }

  .login-2026 .login-brand-image {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    object-fit: contain;
  }

  .login-2026 .login-panel {
    min-height: auto;
    padding: clamp(16px, 4vw, 28px);
  }

  .login-2026 .auth-stage {
    min-height: 0;
    display: block;
  }

  .login-2026 .auth-card.clean {
    width: min(560px, 100%);
  }

  .login-2026 .auth-card.clean .input-wrap input {
    min-height: 48px;
    font-size: 16px;
  }

  .login-2026 .auth-card.clean button,
  .login-2026 .auth-card.clean .login-submit {
    min-height: 48px;
  }
}

@media (max-width: 700px) {
  .content main,
  .content main > * {
    min-width: 0;
    max-width: 100%;
  }

  .fields,
  .settings-modules,
  .detail-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .fields > *,
  .settings-modules > *,
  .detail-grid > * {
    grid-column: 1 / -1;
    min-width: 0;
    max-width: 100%;
  }

  .content main input,
  .content main select,
  .content main textarea {
    min-width: 0;
    max-width: 100%;
    font-size: 16px;
  }

  .content main button,
  .content main .new {
    min-height: 44px;
    white-space: normal;
  }

  .appointment-details-content {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .appointment-details-content .appointment-detail-materials {
    grid-column: 1 / -1;
  }
}

/* Mobile layout audit: keep page headers content-sized and close controls compact. */
@media (max-width: 700px) {
  .schedule-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    justify-items: stretch;
    gap: 12px;
    margin: 0 0 16px;
  }

  .schedule-head > .heading {
    width: 100%;
    min-width: 0;
    margin: 0;
  }

  .schedule-head-actions {
    width: 100%;
    margin: 0;
    gap: 8px;
  }

  #appointment-form {
    padding-top: 20px;
  }

  #appointment-form h2 {
    max-width: 100%;
    margin: 0 52px 16px 0;
    padding: 0;
    overflow-wrap: anywhere;
  }

  #appointment-form .appointment-close {
    position: absolute !important;
    inset: 16px 16px auto auto !important;
    display: grid !important;
    flex: 0 0 42px !important;
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
  }

  .quote-loader-head,
  .appointment-details-header,
  .modal-head {
    min-width: 0;
    gap: 10px;
  }

  .quote-loader-head > div,
  .appointment-details-header > div,
  .modal-head > div {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .quote-loader-close,
  .appointment-details-close,
  .modal-head button {
    flex: 0 0 40px !important;
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .modal,
  dialog,
  .modal-card,
  .quote-loader-dialog,
  .appointment-details-panel {
    box-sizing: border-box;
    max-width: calc(100vw - 20px);
  }

  .modal-card,
  .appointment-details-panel {
    max-height: calc(100dvh - 20px);
    overflow: auto;
    overscroll-behavior: contain;
  }

  .appointment-quick-actions,
  .record-actions,
  .modal-actions,
  .team-modal-card > .modal-actions {
    min-width: 0;
    max-width: 100%;
    flex-wrap: wrap;
  }

  .appointment-quick-actions > *,
  .modal-actions > *,
  .team-modal-card > .modal-actions > * {
    min-width: 0;
    max-width: 100%;
  }
}

@media (max-width: 390px) {
  .schedule-head-actions {
    grid-template-columns: minmax(0, 1fr);
  }

  #appointment-form {
    inset: auto 8px 8px;
    max-height: calc(100dvh - 16px);
    padding: 18px 14px 16px;
  }

  #appointment-form .appointment-close {
    inset: 12px 12px auto auto !important;
  }

  #appointment-form h2 {
    margin-right: 48px;
    font-size: 21px;
  }
}

/* Preserve the entire login artwork on narrow screens instead of cropping it to a banner. */
.login-2026 .login-brand { background: #061a38; }
.login-2026 .login-brand-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
@media (max-width: 900px) {
  .login-2026 .login-brand {
    height: auto;
    min-height: 0;
    aspect-ratio: auto;
  }
  .login-2026 .login-brand-image {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    object-fit: contain;
  }
}
@media (max-width: 700px) {
}

@media (max-width: 430px) {
  .fields,
  .settings-modules,
  .detail-grid,
  .appointment-details-content {
    grid-template-columns: minmax(0, 1fr);
  }

  .appointment-details-content .appointment-detail-materials {
    grid-column: auto;
  }

  .login-2026 .login-panel {
    padding: 16px 12px;
  }

  .login-2026 .auth-card.clean {
    margin-block: 16px;
    padding: 24px 18px;
  }
}

/* On phones and tablets, keep the sign-in form first and show the full artwork below it. */
@media (max-width: 1100px) {
  .login-2026 {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto;
    grid-template-areas: "panel" "brand";
    min-height: 100svh;
  }

  .login-2026 .login-panel {
    grid-area: panel;
    min-height: 0;
  }

  .login-2026 .login-brand {
    grid-area: brand;
    width: 100%;
    height: auto;
    min-height: 0;
    overflow: hidden;
  }

  .login-2026 .login-brand-image {
    position: relative;
    inset: auto;
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
    object-position: center;
  }

  .login-2026 .auth-stage {
    min-height: 0;
  }
}

@media (max-width: 1200px) {
  .app > aside.app-sidebar .sidebar-brand {
    grid-template-columns: 50px minmax(0, 1fr);
    grid-template-rows: 50px auto;
    grid-template-areas: "logo name" "slogan slogan";
    align-items: center;
    justify-items: stretch;
    column-gap: 9px;
    row-gap: 6px;
  }
  .app > aside.app-sidebar .brand-logo-premium { grid-area: logo; justify-self: start; }
  .app > aside.app-sidebar .brand-copy-premium { grid-area: name; min-width: 0; width: 100%; }
  .app > aside.app-sidebar .brand-copy-premium strong { white-space: normal; overflow-wrap: anywhere; }
  .app > aside.app-sidebar .brand-slogan { grid-area: slogan; width: 100%; text-align: center; }
}
@media (max-width: 700px) {
  .app > aside.app-sidebar .sidebar-brand { grid-template-columns: 46px minmax(0, 1fr); grid-template-rows: 46px auto; grid-template-areas: "logo name" "slogan slogan"; }
  .app > aside.app-sidebar .brand-slogan { display: block; }
}

/* Unified task dashboard: calendar on the left, task filters and statuses on the right. */
.schedule-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.16fr) minmax(0, .84fr);
  align-items: start;
  gap: 18px;
  min-width: 0;
}
.schedule-overview-grid > .calendar-card,
.schedule-overview-grid > .task-agenda { min-width: 0; margin: 0; }
.schedule-overview-grid > .task-agenda { padding: 18px; }
.schedule-overview-grid .task-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin: 10px 0; }
.schedule-overview-grid .task-summary a { padding: 8px 8px; min-height: 76px; }
.schedule-overview-grid .task-summary strong { font-size: 19px; }
.schedule-overview-grid .task-summary span { font-size: 12px; }
.schedule-overview-grid .task-range-filters { display: grid; grid-template-columns: minmax(90px, 1fr) minmax(90px, 1fr) auto; gap: 8px; align-items: end; }
.schedule-overview-grid .task-range-filters--manager { grid-template-columns: minmax(88px, .9fr) minmax(88px, .9fr) minmax(120px, 1.2fr) auto; }
.schedule-overview-grid .task-range-filters label { min-width: 0; font-size: 12px; }
.schedule-overview-grid .task-range-filters button[type=submit] { width: 100%; }
.schedule-overview-grid .task-range-filters button[type=submit] { min-width: 120px; padding-inline: 12px; }
.schedule-overview-grid .task-column-head,
.schedule-overview-grid .task-day-item { grid-template-columns: 56px minmax(0, 1fr) 118px; gap: 8px; padding-inline: 9px; }
.schedule-overview-grid .task-column-head { font-size: 10px; }
.schedule-overview-grid .task-service b { font-size: 12px; }
.schedule-overview-grid .task-status-select { padding: 7px 6px; font-size: 12px; }
.appointment-list .appointment-list-title { display: block; }

@media (max-width: 1199px) {
  .schedule-overview-grid { grid-template-columns: minmax(0, 1fr); }
  .schedule-overview-grid > .task-agenda { padding: 20px; }
  .schedule-overview-grid .task-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .schedule-overview-grid .task-column-head,
  .schedule-overview-grid .task-day-item { grid-template-columns: 72px minmax(0, 1fr) 150px; gap: 12px; padding-inline: 12px; }
  .schedule-overview-grid .task-column-head { font-size: 12px; }
  .schedule-overview-grid .task-service b { font-size: 14px; }
  .schedule-overview-grid .task-status-select { padding: 8px 10px; font-size: 14px; }
}
@media (max-width: 720px) {
  .schedule-overview-grid { gap: 12px; }
  .schedule-overview-grid > .task-agenda { padding: 14px; }
  .schedule-overview-grid .task-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .schedule-overview-grid .task-range-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .schedule-overview-grid .task-range-filters button[type=submit] { grid-column: 1 / -1; }
  .schedule-overview-grid .task-column-head,
  .schedule-overview-grid .task-day-item { grid-template-columns: 48px minmax(0, 1fr) 82px; gap: 5px; padding: 9px 6px; }
  .schedule-overview-grid .task-column-head { font-size: 9px; }
  .schedule-overview-grid .task-service b { font-size: 11px; }
  .schedule-overview-grid .task-service a { font-size: 10px; }
  .schedule-overview-grid .task-status-select { padding: 7px 4px; font-size: 10px; }
}

.team-head{align-items:end;margin-top:18px}.team-head .heading{margin:0}.team-back{color:#dc2626!important;font-size:16px!important}.team-list{overflow:hidden;padding:0!important;margin-top:28px}.team-row{display:grid;grid-template-columns:48px minmax(220px,1fr) auto auto;align-items:center;gap:16px;padding:18px 22px;border-bottom:1px solid #e2e8f0}.team-row:last-child{border-bottom:0}.team-person{min-width:0}.team-person>b,.team-person>small{display:block}.team-person>b{font-size:16px;color:#0f1f38}.team-person>small{margin-top:3px;color:#64748b}.team-person>p{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0 0}.team-person>p span{font-size:11px;font-weight:700;color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;padding:4px 8px}.role-pill{border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;background:#eef4ff;color:#1769e8}.role-owner{background:#fff7ed;color:#c2410c}.role-estimator{background:#ecfdf5;color:#047857}.role-viewer{background:#f8fafc;color:#475569}.team-edit{display:inline-flex;align-items:center;gap:7px;background:#fff!important;color:#1769e8!important;border:1px solid #cfe0ff!important;border-radius:11px!important;padding:10px 13px!important;box-shadow:none!important}.team-edit svg{width:17px}.team-modal-card{width:min(780px,calc(100vw - 28px))!important;max-height:90vh;overflow:auto;padding:0!important}.team-modal-card>.modal-head{padding:22px 24px;border-bottom:1px solid #e2e8f0}.team-modal-card>.modal-head small{display:block;color:#1769e8;font-size:11px;font-weight:900;letter-spacing:.12em;margin-bottom:5px}.team-modal-card>.modal-head h2{margin:0}.team-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:22px 24px 4px}.team-modal-card>label,.team-fields label{display:grid;gap:7px;font-weight:750;color:#1e293b}.team-modal-card>label{margin:16px 24px 0}.team-modal-card input,.team-modal-card select{height:50px;border:1px solid #d6e0ee;border-radius:11px;padding:0 14px;background:#fff;font-size:15px}.permission-fieldset{border:0;margin:18px 24px 0;padding:0}.permission-fieldset legend{font-size:14px;font-weight:850;color:#1e293b;margin-bottom:10px}.permission-fieldset>small{display:block;color:#64748b;margin-top:10px;line-height:1.45}.permission-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.permission-option{position:relative}.permission-option input{position:absolute;opacity:0;pointer-events:none}.permission-option span{display:flex;align-items:center;gap:8px;min-height:45px;padding:0 11px;border:1px solid #dce5f2;border-radius:11px;color:#526174;background:#fff;font-size:13px;font-weight:750;cursor:pointer}.permission-option svg{width:17px}.permission-option input:checked+span{color:#1769e8;background:#eef5ff;border-color:#9dc1ff;box-shadow:inset 0 0 0 1px #c7ddff}.team-modal-card>.modal-actions{padding:20px 24px;margin-top:20px;border-top:1px solid #e2e8f0}.team-modal-card>.modal-actions button{display:inline-flex;align-items:center;gap:8px}.password-card{width:min(520px,calc(100vw - 28px))!important;padding-bottom:0!important}
@media(max-width:720px){.team-head{align-items:stretch}.team-head>button{width:100%;justify-content:center}.team-list{margin-top:18px}.team-row{grid-template-columns:42px minmax(0,1fr) auto;padding:15px 14px;gap:11px}.team-row .role-pill{grid-column:2}.team-edit{grid-column:3;grid-row:1/3}.team-edit span{display:none}.team-person>p{display:none}.team-fields{grid-template-columns:1fr;padding:18px 18px 2px}.permission-fieldset{margin:16px 18px 0}.permission-grid{grid-template-columns:1fr 1fr}.team-modal-card>.modal-head,.team-modal-card>.modal-actions{padding-left:18px;padding-right:18px}.team-modal-card>label{margin-left:18px;margin-right:18px}.team-modal-card>.modal-actions{position:sticky;bottom:0;background:#fff;z-index:2}.team-back{font-size:15px!important}}

.estimate-create-modal{z-index:160}
.estimate-create-modal.open{align-items:center;padding:20px}

.estimate-builder{
  width:min(1180px,calc(100vw - 36px));
  max-height:92vh;
  padding:0!important;
  overflow-y:auto;
  border:1px solid #d8e1ec;
  border-radius:18px!important;
  background:#fff;
  box-shadow:0 28px 80px rgba(15,23,42,.22)
}

.builder-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:18px 22px 16px;
  border-bottom:1px solid #e2e8f0;
  background:#fff
}
.builder-head small{color:#1769e8;font-size:9px;font-weight:900;letter-spacing:.12em}
.builder-head h2{margin:4px 0 4px;color:#152238;font-size:23px;letter-spacing:-.025em}
.builder-head p{margin:0;color:#64748b;font-size:12px}
.builder-head>button{
  width:38px;height:38px;min-height:38px;padding:0;
  border:0;border-radius:11px;background:#f1f5f9;color:#334155;font-size:22px
}
.builder-head>button:hover{background:#e8eef5}

.estimate-builder label{display:grid;gap:6px;color:#162033;font-size:10px;font-weight:800}
.estimate-builder input,.estimate-builder select,.estimate-builder textarea{
  width:100%;min-height:42px;margin:0;padding:0 12px;
  border:1px solid #d7e0ec;border-radius:10px;background:#fff;color:#172033;outline:none
}
.estimate-builder textarea{padding:10px 12px}
.estimate-builder input:focus,.estimate-builder select:focus,.estimate-builder textarea:focus{
  border-color:#1769e8;box-shadow:0 0 0 3px rgba(23,105,232,.1)
}

.builder-customer{
  display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:14px;
  padding:14px 22px;border-bottom:1px solid #e2e8f0;background:#f8fafc
}
.builder-customer label>small{color:#64748b;font-size:10px;font-weight:600;line-height:1.35}
.builder-customer-search{position:relative;display:grid;gap:6px;color:#162033;font-size:10px;font-weight:800}
.builder-customer-search>label{display:flex;align-items:center;height:18px}
.customer-combobox{position:relative;z-index:12}
.builder-customer-search>.axon-combobox{height:42px;margin-top:0}
.builder-customer-search>.axon-combobox>input{height:42px;min-height:42px}
.builder-customer-search input[type=search]{
  padding-right:46px;padding-left:42px;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") no-repeat 14px center
}
.builder-customer-search input[type=search]::-webkit-search-cancel-button{display:none}
.customer-combobox-toggle{position:absolute;top:3px;right:4px;width:36px;height:36px;min-height:36px;padding:0;border:0;border-radius:8px;background:transparent;color:#64748b}
.customer-combobox-toggle:hover{background:#f1f5f9;color:#1769e8}
.customer-combobox-toggle svg{width:18px;height:18px}
.customer-results{position:absolute;z-index:40;top:calc(100% + 6px);right:0;left:0;max-height:250px;overflow-y:auto;padding:6px;border:1px solid #cbd8e8;border-radius:12px;background:#fff;box-shadow:0 18px 42px rgba(15,23,42,.2);overscroll-behavior:contain}
.customer-results[hidden],.customer-result[hidden],.customer-results-empty[hidden]{display:none!important}
.customer-result{display:grid;width:100%;min-height:52px;padding:9px 11px;justify-content:start;gap:3px;border:0;border-radius:8px;background:#fff;color:#0f172a;text-align:left}
.customer-result:hover,.customer-result:focus{background:#eef5ff;color:#0f56c7;outline:none}
.customer-result b{font-size:13px;line-height:1.2}
.customer-result small{overflow:hidden;color:#64748b;font-size:10px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.customer-results-empty{padding:18px 12px;color:#64748b;font-size:11px;text-align:center}

.builder-add{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;
  align-items:end;gap:10px;padding:14px 22px
}
.builder-catalog{min-width:0}
.builder-catalog label span{display:flex;align-items:center;gap:7px;margin-bottom:1px;font-size:11px}
.builder-catalog label span svg{width:17px;height:17px;color:#1769e8}
.builder-catalog select{height:42px;min-height:42px;text-overflow:ellipsis}
.builder-add-manual{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  width:auto;min-height:42px!important;padding:0 16px!important;
  border-color:#0f9f6e!important;border-radius:10px!important;background:#0f9f6e!important;
  color:#fff;white-space:nowrap;font-size:12px
}
.builder-add-manual:hover{background:#087c57!important}
.builder-add-manual svg{width:15px}

.builder-lines{
  margin:0 22px;max-height:255px;overflow-y:auto;
  border:1px solid #d8e1ec;border-radius:12px;background:#fff
}
.builder-lines>header,.builder-line{
  display:grid;grid-template-columns:minmax(240px,1fr) 100px 145px 115px 38px;
  gap:9px;align-items:center
}
.builder-lines>header{
  position:sticky;top:0;z-index:3;padding:9px 12px;
  border-bottom:1px solid #dbe4ef;background:#f1f5f9;color:#475569;
  font-size:9px;font-weight:900;letter-spacing:.045em
}
.builder-lines>header span:nth-child(n+2){text-align:right}
.builder-line{padding:7px 12px;border-top:1px solid #e7edf4;background:#fff}
.builder-line:first-child{border-top:0}
.builder-line label>span{display:none}
.builder-line input{height:37px;min-height:37px;background:#fff}
.builder-line>label:nth-child(2) input,.builder-line>label:nth-child(3) input{text-align:right}
.builder-line-total{text-align:right;color:#172033;font-size:13px}
.builder-line>button{
  width:34px;height:34px;min-height:34px;padding:0;
  border:1px solid #fecaca;border-radius:9px;background:#fff;color:#dc2626
}
.builder-line>button:hover{background:#fef2f2}
.builder-line>button svg{width:15px}
.builder-empty{display:grid;place-items:center;gap:6px;min-height:125px;padding:20px;color:#64748b;text-align:center}
.builder-empty[hidden]{display:none}
.builder-empty svg{width:34px;height:34px;padding:7px;border-radius:10px;background:#eff6ff;color:#1769e8}
.builder-empty b{color:#334155;font-size:12px}
.builder-empty span{font-size:10px}

.builder-bottom{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;padding:12px 22px}
.builder-bottom textarea{height:72px;min-height:72px;resize:vertical}
.builder-totals{overflow:hidden;border:1px solid #d8e1ec;border-radius:12px;background:#f8fafc}
.builder-totals p,.builder-totals strong,.builder-totals small{
  display:flex;align-items:center;justify-content:space-between;margin:0;padding:8px 12px;font-size:11px
}
.builder-totals p+p{border-top:1px solid #e7edf4}
.builder-totals strong{
  border-top:1px solid #cfe0fb;border-bottom:1px solid #cfe0fb;
  background:#eff6ff;color:#172033;font-size:15px
}
.builder-totals strong b{color:#1769e8;font-size:20px}
.builder-totals small{background:#fff;color:#1769e8;font-weight:800}

.builder-actions{
  position:sticky;bottom:0;z-index:8;display:flex;justify-content:flex-end;gap:10px;
  padding:10px 22px 12px;border-top:1px solid #e2e8f0;background:#fff;
  box-shadow:0 -8px 20px rgba(15,23,42,.055)
}
.builder-actions button{min-width:132px;min-height:42px;gap:8px;border-radius:10px}
.builder-actions button svg{width:16px}
.builder-actions .outline{border-color:#d7e0ec;background:#fff;color:#334155}
.builder-actions button:disabled{cursor:not-allowed;opacity:.45}

@media(min-width:901px){
  .estimate-builder{
    display:grid;
    grid-template-columns:minmax(220px,2fr) minmax(145px,1.2fr) minmax(180px,1.65fr) minmax(180px,1.65fr) auto;
    column-gap:10px
  }
  .builder-head,.builder-lines,.builder-bottom,.builder-actions{grid-column:1/-1}
  .builder-customer,.builder-add{display:contents}
  .builder-customer>label,.builder-customer>.builder-customer-search,.builder-catalog{margin-top:12px;margin-bottom:12px;min-width:0;align-self:start}
  .builder-customer>label,.builder-catalog label{
    display:grid;
    grid-template-rows:18px 42px auto;
    gap:6px;
    align-content:start
  }
  .builder-customer>label>span,.builder-catalog label>span{
    display:flex;
    align-items:center;
    height:18px;
    margin:0
  }
  .builder-customer>label>input,.builder-catalog select{height:42px;min-height:42px}
  .builder-customer-search{margin-left:22px}
  .builder-add-manual{margin:36px 22px 12px 0;align-self:start}
  .builder-customer-search input[type=search],.builder-catalog select{width:100%}
}

@media(max-width:900px){
  .builder-add{grid-template-columns:1fr 1fr}
  .builder-add-manual{grid-column:1/-1;justify-self:center}
}

@media(max-width:820px){
  .estimate-create-modal.open{align-items:end;padding:0}
  .estimate-builder{width:100%;max-height:calc(100dvh - env(safe-area-inset-top) - 6px);border-radius:20px 20px 0 0!important}
  .builder-head{padding:17px 16px 14px}
  .builder-head h2{font-size:21px}
  .builder-customer{grid-template-columns:1fr 1fr;padding:12px 16px}
  .builder-customer input,.builder-customer .axon-combobox,.builder-catalog select{height:42px;min-height:42px}
  .customer-results{max-height:min(260px,38dvh)}
  .builder-add{padding:12px 16px}
  .builder-lines{margin:0 16px;max-height:300px;overflow-y:auto;border:0;background:transparent}
  .builder-lines>header{display:none}
  .builder-line{position:relative;grid-template-columns:1fr 1fr;padding:12px;margin-bottom:9px;border:1px solid #d8e1ec!important;border-radius:12px}
  .builder-line label:first-child{grid-column:1/3}
  .builder-line label>span{display:block}
  .builder-line-total{align-self:end;padding:12px 42px 12px 0;font-size:14px}
  .builder-line>button{position:absolute;right:9px;bottom:9px}
  .builder-empty{border:1px solid #d8e1ec;border-radius:12px;background:#fff}
  .builder-bottom{grid-template-columns:1fr;padding:12px 16px}
  .builder-actions{padding:9px 16px}
  .builder-actions button{min-width:0;flex:1}
}

@media(max-width:560px){
  .builder-customer{grid-template-columns:1fr}
  .builder-add{grid-template-columns:1fr}
  .builder-add-manual{grid-column:auto;width:100%}
  .builder-lines{margin:0 14px}
  .builder-bottom{padding:11px 14px}
  .builder-actions{padding:8px 14px}
}

/* Compact settings launcher: one efficient row on desktop. */
.settings-modules {
  display: flex;
  gap: 10px;
  max-width: none;
  width: 100%;
}

.settings-modules > a {
  flex: 1 1 0;
  min-width: 0;
  grid-template-columns: 38px minmax(0, 1fr) 16px;
  gap: 10px;
  min-height: 72px;
  padding: 12px 14px;
  border-radius: 9px;
}

.settings-modules > a > span {
  width: 36px;
  height: 36px;
  border-radius: 8px;
}

.settings-modules > a > span svg {
  width: 17px;
  height: 17px;
}

.settings-modules > a > div {
  gap: 3px;
  min-width: 0;
}

.settings-modules b,
.settings-modules small {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.settings-modules b { font-size: 13px; }
.settings-modules small { font-size: 10px; }
.settings-modules > a > svg { width: 15px; height: 15px; }

@media (max-width: 600px) {
  .settings-modules { display: grid; grid-template-columns: 1fr; }
  .settings-modules > a { min-height: 66px; }
}

/* Shared app typography: match the catalog's clear, dark, readable text across modules. */
:root {
  --ink: #111827;
  --muted: #475467;
}

body,
.app,
.login-2026 {
  color: #111827;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 15px;
}

.app *,
.login-2026 * {
  font-family: inherit;
}

.content main {
  color: #111827;
  font-size: 15px;
}

.content main :is(p, small, label, td, th, li, dt, dd, time, figcaption) {
  font-size: max(12px, .94em);
}

.content main :is(input, select, textarea) {
  color: #111827;
  font-size: 15px;
}

.content main button:not(.icon-button):not(.icon-only):not(.mobile-create) {
  font-size: max(13px, .94em);
}

.content main :is(h1, h2, h3),
.login-2026 :is(h1, h2, h3) {
  color: #111827;
}

/* Reports had notably smaller labels and chart headings than the catalog. */
.content main .report-stats article small {
  color: #344054;
  font-size: 13px;
}

.content main .report-stats article span,
.content main .dashboard-chart-card .section-title p,
.content main .monthly-chart-legend {
  color: #475467;
  font-size: 13px;
}

.content main .dashboard-chart-card .section-title h2 {
  color: #111827;
  font-size: 20px;
}

.content main .dashboard-chart-card .chart-total {
  font-size: 12px;
}

@media (max-width: 700px) {
  body,
  .app,
  .login-2026,
  .content main {
    font-size: 14px;
  }

  .content main :is(p, small, label, td, th, li, dt, dd, time, figcaption) {
    font-size: max(11.5px, .92em);
  }

  .content main :is(input, select, textarea) {
    font-size: 16px;
  }

  .content main button:not(.icon-button):not(.icon-only):not(.mobile-create) {
    font-size: max(12px, .92em);
  }

  .content main .report-stats article small,
  .content main .report-stats article span,
  .content main .dashboard-chart-card .section-title p,
  .content main .monthly-chart-legend {
    font-size: 12px;
  }

  .content main .dashboard-chart-card .section-title h2 {
    font-size: 18px;
  }
}

/* Catalog type filters: separate, clear button affordances */
.catalog-toolbar .catalog-type-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0;background:transparent;border:0;border-radius:0}
.catalog-toolbar .catalog-type-filter>button{display:inline-flex;flex:1 1 auto;justify-content:center;align-items:center;gap:7px;min-width:max-content;min-height:42px;padding:0 14px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#344054;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer;box-shadow:0 1px 2px #1018280a;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}
.catalog-toolbar .catalog-type-filter>button:hover{border-color:#8ab4f8;background:#f7faff;color:#1769e8}
.catalog-toolbar .catalog-type-filter>button:focus-visible{outline:3px solid #1769e840;outline-offset:2px}
.catalog-toolbar .catalog-type-filter>button.active{border-color:#1769e8;background:#eff6ff;color:#1769e8;box-shadow:inset 0 0 0 1px #1769e81a}
.catalog-toolbar .catalog-type-filter>button span{color:#667085;font-size:11px;font-weight:700}
.catalog-toolbar .catalog-type-filter>button.active span{color:#1769e8}
@media(max-width:700px){.catalog-toolbar .catalog-type-filter{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.catalog-toolbar .catalog-type-filter>button{min-width:0;min-height:42px;padding:0 6px;font-size:11px;white-space:nowrap}.catalog-toolbar .catalog-type-filter>button span{font-size:10px}}
/* Inventory totals and per-product extended sale value */
.catalog-overview{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.catalog-overview article{min-height:92px;padding:12px 11px;gap:9px;border-radius:12px}
.catalog-overview article small{font-size:11px;letter-spacing:.15px;line-height:1.25}
.catalog-overview article b{font-size:18px;line-height:1.2;overflow-wrap:anywhere}
.catalog-overview .catalog-cost-total>svg{background:#fff5e8;color:#b54708}
.catalog-overview .catalog-sale-total>svg{background:#edf8f2;color:#087451}
.catalog-list-head,.catalog-list .catalog-row{grid-template-columns:minmax(180px,1.55fr) minmax(78px,.52fr) minmax(100px,.68fr) minmax(105px,.72fr) minmax(125px,.85fr) 126px;gap:10px}
.catalog-line-total{font-size:12px;font-weight:700;color:#18263b;white-space:nowrap}
.catalog-inventory-note{grid-template-columns:20px minmax(220px,1fr) minmax(330px,auto)}
.catalog-inventory-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:center}
.catalog-inventory-totals>div{display:grid;gap:4px;min-width:0}
.catalog-inventory-totals span{color:#667085;font-size:10px;font-weight:700;line-height:1.25}
.catalog-inventory-totals b{color:#18263b;font-size:15px;white-space:nowrap}
@media(max-width:1100px){.catalog-overview{grid-template-columns:repeat(3,minmax(0,1fr))}.catalog-list-head,.catalog-list .catalog-row{grid-template-columns:minmax(135px,1.4fr) minmax(68px,.5fr) minmax(85px,.65fr) minmax(90px,.65fr) minmax(105px,.8fr) 108px;gap:8px;padding-right:12px;padding-left:12px}.catalog-inventory-note{grid-template-columns:20px minmax(180px,1fr) minmax(290px,auto);gap:9px}}
@media(max-width:700px){.catalog-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-overview article{min-height:78px;padding:10px}.catalog-overview article small{font-size:11px}.catalog-overview article b{font-size:16px}.catalog-list-head{display:none!important}.catalog-list .catalog-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding:13px 12px}.catalog-list .catalog-row>.catalog-item-name{grid-column:1;grid-row:1}.catalog-list .catalog-row>span:nth-child(2){grid-column:2;grid-row:1;justify-self:end}.catalog-list .catalog-row>.catalog-stock{grid-column:1;grid-row:2;padding-left:45px}.catalog-list .catalog-row>strong{grid-column:2;grid-row:2;justify-self:end;align-self:start}.catalog-list .catalog-row>strong:before{content:"Precio unitario";display:block;margin-bottom:3px;color:#667085;font-size:10px;font-weight:600}.catalog-list .catalog-row>.catalog-line-total{grid-column:1;grid-row:3;padding-left:45px;white-space:normal}.catalog-list .catalog-row>.catalog-line-total:before{content:"Venta total";display:block;margin-bottom:3px;color:#667085;font-size:10px;font-weight:600}.catalog-list .catalog-row>.record-actions{grid-column:1/-1;grid-row:4;justify-content:flex-end;width:100%}.catalog-inventory-note{grid-template-columns:20px minmax(0,1fr);align-items:start}.catalog-inventory-note>p{grid-column:2}.catalog-inventory-totals{grid-column:2;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.catalog-inventory-totals b{font-size:14px}}

/* Catalog rows highlight as one clear, clickable line on hover. */
.catalog-list .catalog-row{transition:background-color .18s ease,box-shadow .18s ease}
.catalog-list .catalog-row:hover{background-color:#edf5ff;box-shadow:inset 3px 0 #3b82f6}
.catalog-list .catalog-row:active{background-color:#e5f0ff}
.catalog-inventory-summary{display:flex;justify-content:flex-end;margin-top:13px;padding:14px 18px;border:1px solid #dce7f4;border-radius:10px;background:#f8fbff}
.catalog-inventory-summary .catalog-inventory-totals{width:min(520px,100%)}
.catalog-inventory-summary .catalog-inventory-totals>div{gap:5px}
.catalog-inventory-summary .catalog-inventory-totals span{font-size:11px}
.catalog-inventory-summary .catalog-inventory-totals b{font-size:18px}
@media(max-width:700px){.catalog-inventory-summary{justify-content:stretch;padding:12px}.catalog-inventory-summary .catalog-inventory-totals{width:100%;gap:8px}.catalog-inventory-summary .catalog-inventory-totals span{font-size:10px}.catalog-inventory-summary .catalog-inventory-totals b{font-size:15px}}
@media(prefers-reduced-motion:reduce){.catalog-list .catalog-row{transition:none}}

/* Slightly stronger translucent blue hover across the whole catalog row. */
.catalog-list .catalog-row:hover{background-color:rgba(59,130,246,.18);box-shadow:inset 3px 0 #2563eb}
.catalog-list .catalog-row:active{background-color:rgba(37,99,235,.23)}
.catalog-inventory-summary{display:none!important}
.catalog-head{margin-bottom:8px}

/* Show packages as standard catalog rows, with a distinct red type marker. */
.catalog-list-head,.catalog-list .catalog-row{grid-template-columns:minmax(180px,1.55fr) minmax(78px,.52fr) minmax(100px,.68fr) minmax(105px,.72fr) minmax(125px,.85fr) minmax(178px,auto)}
.catalog-kind.package-kind{background:#fff0f0;color:#c62828;border:1px solid #ffd1d1}
.catalog-package-row .catalog-item-name>svg{background:#fff1f1;color:#c62828}
.catalog-package-details-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:36px;padding:0 9px;border:1px solid #cbdaf5;border-radius:7px;background:#fff;color:#1769e8;font:inherit;font-size:10px;font-weight:750;white-space:nowrap;cursor:pointer}
.catalog-package-details-button:hover{background:#eff6ff;border-color:#8ab4f8}
.catalog-package-details-button svg{width:14px;height:14px}
.catalog-package-row .record-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:0}
.catalog-package-row .record-actions .icon-button{flex:0 0 36px;width:36px;height:36px}
.package-details-card{width:min(540px,calc(100vw - 28px));max-height:min(88vh,760px);overflow:auto}
.package-details-description{margin:14px 0 0;color:#64748b;font-size:12px;line-height:1.5}
.package-details-items{display:grid;gap:8px;margin:14px 0;padding:0;list-style:none}
.package-details-items li{padding:9px 11px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;color:#344054;font-size:12px}
.package-details-total{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-top:1px solid #e2e8f0;color:#64748b;font-size:12px;font-weight:700}
.package-details-total b{color:#17243a;font-size:18px}
@media(max-width:1100px){.catalog-list-head,.catalog-list .catalog-row{grid-template-columns:minmax(135px,1.4fr) minmax(68px,.5fr) minmax(85px,.65fr) minmax(90px,.65fr) minmax(105px,.8fr) minmax(165px,auto)}}
@media(max-width:700px){.catalog-list .catalog-row{grid-template-columns:minmax(0,1fr) auto}.catalog-package-row .record-actions{justify-content:flex-end}.catalog-package-details-button{min-height:36px;padding:0 8px;font-size:10px}.catalog-package-row .record-actions .icon-button{flex-basis:34px;width:34px;height:34px}}

/* Make room for package filtering while retaining the existing catalog layout. */
.catalog-toolbar{justify-content:initial;gap:12px}
.catalog-toolbar>.catalog-search{flex:0 1 34%;min-width:240px}
.catalog-toolbar-filters{flex:1 1 auto;justify-content:flex-end;min-width:0;gap:8px}
.catalog-type-filter{flex-wrap:nowrap;gap:5px}
.catalog-toolbar .catalog-type-filter>button{flex:1 1 auto;min-width:0;padding-inline:10px}
.catalog-package-results{padding:16px;border-top:1px solid #e8edf3}
.catalog-package-results[hidden]{display:none!important}
.catalog-package-results>h2{margin:0;color:#344054;font-size:14px}
.catalog-package-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.catalog-package-card[hidden]{display:none!important}
@media(max-width:1100px){.catalog-toolbar{flex-wrap:wrap}.catalog-toolbar>.catalog-search{flex:1 1 35%;min-width:240px}.catalog-toolbar-filters{flex:1 1 60%;justify-content:flex-end}.catalog-toolbar .catalog-type-filter{flex-wrap:wrap}}
@media(max-width:700px){.catalog-toolbar{display:grid;grid-template-columns:minmax(0,1fr)}.catalog-toolbar>.catalog-search{width:100%;min-width:0}.catalog-toolbar-filters{display:grid;grid-template-columns:minmax(0,1fr);gap:9px}.catalog-toolbar .catalog-type-filter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.catalog-toolbar .catalog-type-filter>button{min-width:0;min-height:42px;padding-inline:8px;font-size:11px;white-space:normal}.catalog-toolbar .catalog-type-filter>button span{font-size:10px}.catalog-package-results{padding:12px}.catalog-package-grid{grid-template-columns:minmax(0,1fr)}}

/* Work note PDF actions and status presentation. */
.work-note-actions{display:flex;align-items:center;justify-content:center;gap:10px;margin:14px auto 18px;padding:0 14px;flex-wrap:wrap}
.work-note-actions button,.work-note-actions a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;border:1px solid #cbdaf5;border-radius:9px;background:#fff;color:#245bb5;font:inherit;font-size:13px;font-weight:700;text-decoration:none;cursor:pointer}
.work-note-actions button:first-child{background:#1769e8;border-color:#1769e8;color:#fff}
.work-note-actions button:disabled{opacity:.65;cursor:wait}
.work-note-actions svg{width:17px;height:17px}
.work-note-document .document-heading span{color:var(--doc-accent)}
.work-note-document .document-metadata{grid-template-columns:1fr 1fr 1fr 1fr}
.work-note-document .document-metadata>div:last-child b{color:#1769e8}
.work-note-document .document-summary .document-grand{background:#e8f1ff;color:#142333}
.work-note-document .document-paid{color:#157454}
@media(max-width:700px){.work-note-actions{padding:0 8px;gap:7px}.work-note-actions button,.work-note-actions a{flex:1 1 130px;min-height:44px}}
.work-note-document .work-note-status{padding:3px 7px;border-radius:999px;background:#edf4ff;color:#245bb5}
.work-note-document .work-note-status-paid{background:#e8f8ef;color:#087451}
.work-note-document .work-note-status-cancelled{background:#fff0f0;color:#c62828}
.work-note-document .work-note-status-in-progress{background:#fff5e8;color:#a34b00}

/* Action buttons: distinct colors on desktop and six equal compact cells on phones. */
.appointment-action.pdf-note{border-color:#fecaca!important;background:#fff1f2!important;color:#dc2626!important}
.appointment-action.edit{border-color:#fed7aa!important;background:#fff7ed!important;color:#c2410c!important}
.appointment-action.details-toggle{border-color:#a7f3d0!important;background:#ecfdf5!important;color:#047857!important}
.appointment-action.details-toggle:hover,.appointment-action.details-toggle[aria-expanded=true]{border-color:#6ee7b7!important;background:#d1fae5!important;color:#065f46!important}
@media(max-width:700px){
  .appointment-list .appointment-item{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;align-items:stretch!important}
  .appointment-list .appointment-item>.date-box{grid-column:1!important;grid-row:1!important;width:100%!important}
  .appointment-list .appointment-item>.appointment-summary{grid-column:2/4!important;grid-row:1!important}
  .appointment-list .appointment-item>.appointment-quick-actions{display:contents!important}
  .appointment-list .appointment-quick-actions .appointment-action.whatsapp{grid-column:1!important;grid-row:2!important}
  .appointment-list .appointment-quick-actions .appointment-action.pdf-note{grid-column:2!important;grid-row:2!important}
  .appointment-list .appointment-quick-actions .appointment-action.details-toggle{grid-column:3!important;grid-row:2!important}
  .appointment-list .appointment-quick-actions .appointment-action.edit{grid-column:1!important;grid-row:3!important}
  .appointment-list .appointment-quick-actions .appointment-delete-form{display:contents!important}
  .appointment-list .appointment-quick-actions .appointment-delete-form .appointment-action.delete{grid-column:2!important;grid-row:3!important}
  .appointment-list .appointment-item>.appointment-status-form{grid-column:3!important;grid-row:3!important;width:100%!important;min-width:0!important;max-width:100%!important;margin:0!important}
  .appointment-list .appointment-status-form .task-select,
  .appointment-list .appointment-status-form .task-select-trigger{width:100%!important;min-width:0!important;max-width:100%!important;min-height:42px!important;height:42px!important}
  .appointment-list .appointment-status-form .task-select-trigger{justify-content:center!important;padding:5px 4px!important;font-size:10px!important;line-height:1.1!important}
  .appointment-list .appointment-status-form .task-select-trigger>span:first-child{max-width:100%;text-align:center}
  .appointment-list .appointment-quick-actions .appointment-action,
  .appointment-list .appointment-quick-actions .appointment-delete-form .appointment-action{box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:100%!important;min-height:42px!important;height:42px!important;padding:5px 4px!important;gap:4px!important;font-size:10px!important;line-height:1.1!important;white-space:normal!important}
  .appointment-list .appointment-quick-actions .appointment-action svg{width:15px!important;height:15px!important;flex:none!important}
}

/* Per-document tax controls for estimates and appointment invoices. */
.builder-totals .tax-toggle{margin:0;padding:9px 12px;border:0;border-top:1px solid #e7edf4;border-radius:0;background:transparent;gap:9px;font-size:10px}
.builder-totals .tax-toggle .toggle-track{width:40px;min-width:40px;height:23px;padding:2px}
.builder-totals .tax-toggle .toggle-track i{width:19px;height:19px}
.builder-totals .tax-toggle>input:checked+.toggle-track i{transform:translateX(17px)}
.builder-totals .tax-toggle>span:last-child{min-width:0;gap:3px}
.builder-totals .tax-toggle small{background:transparent;font-size:9px}
.builder-totals .deposit-rate-row{display:grid;grid-template-columns:minmax(82px,1fr) 78px max-content;align-items:center;gap:8px;margin:0;padding:7px 10px;border-top:1px solid #e7edf4;background:#fff;color:#1769e8;font-size:11px;font-weight:800}
.builder-totals .deposit-rate-input{position:relative;display:block;width:78px}
.builder-totals .deposit-rate-input input{width:100%;height:34px;min-height:34px;margin:0;padding:0 23px 0 8px;border:1px solid #d7e0ec;border-radius:8px;background:#fff;color:#172033;font-size:15px;font-weight:700;text-align:right}
.builder-totals .deposit-rate-input>b{position:absolute;top:50%;right:8px;transform:translateY(-50%);color:#64748b;font-size:12px;pointer-events:none}
.builder-totals .deposit-rate-amount{min-width:66px;color:#1769e8;font-size:13px;text-align:right;white-space:nowrap}
.tax-settings-form{width:min(980px,100%);max-width:980px}
.tax-fields{grid-template-columns:minmax(0,1.3fr) minmax(145px,.8fr) minmax(160px,.9fr);gap:14px}
.tax-fields input{height:44px;margin-top:6px}
.percent-input span{top:22px}
@media(max-width:850px){.tax-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.builder-totals .deposit-rate-row{grid-template-columns:minmax(72px,1fr) 74px max-content;gap:6px;padding-right:8px;padding-left:8px}.builder-totals .deposit-rate-input{width:74px}.builder-totals .deposit-rate-amount{min-width:58px;font-size:12px}.tax-fields{grid-template-columns:1fr}}
.builder-package-picker{margin:0 22px 12px;max-width:420px}
.appointment-tax-toggle{margin:12px 0 4px;padding:12px 14px}
.appointment-tax-toggle b{font-size:12px}
@media(max-width:700px){.builder-package-picker{margin:0 16px 12px;max-width:none}.appointment-tax-toggle{align-items:center}}
/* Reports: use compact, non-repeating labels so the twelve-month chart stays readable. */
.monthly-chart-legend i.jobs-key{background:#3478f6!important}
.monthly-chart-legend i.completed-amount-key{background:#9bb8ef!important}
.monthly-chart-legend i.scheduled-jobs-key{background:#0b9b63!important}
.monthly-chart-legend i.scheduled-amount-key{background:#83cfa5!important}
.completed-monthly-card .monthly-bars{min-width:660px}
.completed-monthly-card .monthly-bar-column{grid-template-rows:34px 124px 18px}
.completed-monthly-card .monthly-bar-values{align-items:center;gap:2px;font-size:8px;line-height:1.1}
.completed-monthly-card .monthly-bar-values b{max-width:100%;font-size:8px;white-space:nowrap}
.completed-monthly-card .monthly-bar-values small{max-width:100%;font-size:8px;white-space:nowrap}
.completed-monthly-card .monthly-bar-plot i.monthly-job-bar{background:#3478f6!important}
.completed-monthly-card .monthly-bar-plot i.monthly-completed-amount-bar{background:#9bb8ef!important}
.completed-monthly-card .monthly-bar-plot i.monthly-scheduled-job-bar{background:#0b9b63!important}
.completed-monthly-card .monthly-bar-plot i.monthly-scheduled-amount-bar{background:#83cfa5!important}
.completed-monthly-card .monthly-job-summary{gap:8px 16px;font-size:11px}
@media(max-width:700px){.completed-monthly-card .monthly-bars{min-width:660px}.completed-monthly-card .monthly-bar-column{grid-template-rows:34px 105px 16px}.completed-monthly-card .monthly-job-summary{font-size:10px}}

/* Appointment charge editor: compact grouping without reducing typography. */
.appointment-materials{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:12px}
.appointment-materials-head,.appointment-line-actions,.appointment-line-labels,.appointment-charge-list{grid-column:1/-1;min-width:0}
.appointment-line-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:4px 0 2px}
.appointment-line-actions>*{box-sizing:border-box;width:100%;min-width:0;max-width:100%}
.appointment-line-actions button{justify-content:center;white-space:normal}
.appointment-package-picker{min-width:0;padding:0 9px}
.appointment-package-picker select{min-width:0;width:100%;max-width:100%;font-size:11px}
.appointment-tax-toggle{grid-column:1;align-self:stretch;box-sizing:border-box;min-width:0;min-height:66px;margin:0;padding:9px 11px;gap:9px}
.appointment-tax-toggle .toggle-track{flex:0 0 42px;width:42px;min-width:42px;height:24px;padding:2px}
.appointment-tax-toggle .toggle-track i{width:20px;height:20px}
.appointment-tax-toggle>input:checked+.toggle-track i{transform:translateX(18px)}
.appointment-tax-toggle>span:last-child{min-width:0;gap:3px}
.appointment-tax-toggle b{font-size:12px;line-height:1.25}
.appointment-tax-toggle small{font-size:9px;line-height:1.3}
.appointment-charge-totals{grid-column:2/4;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:stretch;gap:8px;min-width:0;margin:0}
.appointment-charge-totals>div{box-sizing:border-box;min-width:0;justify-content:center;padding:9px 11px}
.appointment-charge-totals span{line-height:1.25}
.appointment-charge-totals b{white-space:nowrap}
@media(max-width:760px){
  .appointment-materials{grid-template-columns:minmax(0,1fr);gap:9px;padding:11px}
  .appointment-materials-head,.appointment-line-actions,.appointment-line-labels,.appointment-charge-list,.appointment-tax-toggle,.appointment-charge-totals{grid-column:1/-1}
  .appointment-line-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:3px 0 1px}
  .appointment-line-actions button{min-height:44px;padding:8px 9px}
  .appointment-package-picker{min-height:44px}
  .appointment-tax-toggle{min-height:60px;padding:9px 11px}
  .appointment-charge-totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .appointment-charge-totals>div{min-height:62px;padding:9px 10px}
}
@media(max-width:360px){
  .appointment-charge-totals>div{padding:8px}
  .appointment-charge-totals span{overflow-wrap:anywhere}
}
@media(max-width:760px){
  .appointment-line-actions .appointment-package-picker,.appointment-line-actions button:last-child{grid-column:1/-1}
}

/* Keep the two map inputs on one desktop row; stack them on narrow screens. */
.appointment-fields>.appointment-address-field,.appointment-fields>.appointment-maps-link-field{grid-column:auto!important;min-width:0;align-self:start}
.appointment-fields>.appointment-address-field,.appointment-fields>.appointment-maps-link-field{box-sizing:border-box;width:100%;max-width:100%}
@media(max-width:700px){.appointment-fields>.appointment-address-field,.appointment-fields>.appointment-maps-link-field{grid-column:1/-1!important}}

/* Make the package dropdown look and read like its neighboring action buttons. */
#appointment-form .appointment-line-actions{grid-template-columns:minmax(230px,1.35fr) repeat(3,minmax(0,1fr))}
#appointment-form .appointment-package-picker{position:relative;display:flex;flex:1 1 0;align-items:center;min-width:0;padding:0 10px;gap:8px;background:#f2f6ff!important;border-color:#cbdcf8!important;color:#1769e8!important}
#appointment-form .appointment-package-picker select{flex:1 1 0;width:0;min-width:0;max-width:100%;min-height:40px;padding:0 20px 0 0!important;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;background-image:none!important;color:#1769e8!important;font-family:inherit!important;font-size:10px!important;font-weight:750!important;line-height:1.2!important;appearance:none!important;-webkit-appearance:none!important;white-space:nowrap;text-overflow:clip}
#appointment-form .appointment-package-picker::after{content:"";position:absolute;right:12px;top:50%;width:0;height:0;border:5px solid transparent;border-top-color:#1769e8;transform:translateY(-25%);pointer-events:none}
@media(max-width:760px){#appointment-form .appointment-line-actions{grid-template-columns:repeat(2,minmax(0,1fr))}#appointment-form .appointment-line-actions .appointment-package-picker{grid-column:1/-1}}

/* Custom package menu: unlike native <select> popups, its list follows the app theme and scrolls. */
#appointment-form .appointment-package-picker{z-index:2;overflow:visible}
#appointment-form .appointment-package-picker.is-open{z-index:40}
#appointment-form .appointment-package-trigger{display:flex;flex:1 1 auto;align-items:center;justify-content:space-between;gap:10px;width:100%;min-width:0;min-height:40px;margin:0;padding:0!important;border:0!important;border-radius:0;background:transparent!important;color:#1769e8!important;font-family:inherit;font-size:10px;font-weight:750;line-height:1.2;text-align:left;white-space:nowrap;box-shadow:none!important}
#appointment-form .appointment-package-chevron{flex:none;width:0;height:0;border:5px solid transparent;border-top-color:#1769e8;transform:translateY(2px)}
#appointment-form .appointment-package-menu{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:50;max-height:min(270px,42vh);overflow-y:auto;overscroll-behavior:contain;border:1px solid #9dc1ff;border-radius:10px;background:#eaf2ff;box-shadow:0 12px 28px #17345c35;padding:5px}
#appointment-form .appointment-package-menu[hidden]{display:none}
#appointment-form .appointment-package-option{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-width:0;min-height:40px;margin:0;padding:8px 10px;border:0;border-bottom:1px solid #cbdcf8;border-radius:6px;background:transparent;color:#174ea6;font-family:inherit;font-size:11px;font-weight:650;line-height:1.3;text-align:left;cursor:pointer}
#appointment-form .appointment-package-option:last-child{border-bottom:0}
#appointment-form .appointment-package-option:hover,#appointment-form .appointment-package-option:focus-visible{outline:0;background:#cfe2ff;color:#0f56c7}
#appointment-form .appointment-package-option span{min-width:0;overflow-wrap:anywhere}
#appointment-form .appointment-package-option b{flex:none;color:#123c80;font-size:11px;white-space:nowrap}
#appointment-form .appointment-package-empty-option{padding:12px 10px;color:#526680;font-size:11px}
#appointment-form .appointment-package-menu::-webkit-scrollbar{width:10px}
#appointment-form .appointment-package-menu::-webkit-scrollbar-thumb{border:2px solid #eaf2ff;border-radius:8px;background:#8bb4f3}
