:root{--navy:#0A2A7A;--blue:#2563eb;--bg:#f5f7fb;--card:#fff;--ink:#111827;--muted:#64748b;--line:#e5e7eb;--green:#16a34a;--red:#dc2626;--purple:#7c3aed;--orange:#f97316;--shadow:0 10px 28px rgba(15,23,42,.07)}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif}button,input,select,textarea{font:inherit}.hidden{display:none!important}.app{min-height:100vh;padding-bottom:84px}.topbar{position:sticky;top:0;z-index:30;height:62px;background:rgba(255,255,255,.95);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 14px}.brand{font:800 27px 'Plus Jakarta Sans';color:var(--navy)}.brand span{color:var(--blue)}.top-actions{display:flex;gap:7px}.icon-btn,.avatar{border:0;background:#eef2ff;color:var(--navy);width:44px;height:44px;border-radius:50%;font-weight:800;font-size:19px}.view{max-width:1080px;margin:auto;padding:12px 12px 28px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:5px 0 10px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 2px}.page-head h1{font:800 24px 'Plus Jakarta Sans';margin:0;color:var(--navy)}.btn{border:0;border-radius:11px;padding:9px 12px;font-weight:800;cursor:pointer}.btn.primary{background:var(--navy);color:#fff}.btn.soft{background:#eef2ff;color:var(--navy)}.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--navy)}.btn.danger{background:#fee2e2;color:#991b1b}.mini{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:9px;padding:6px 8px;font-size:11px;font-weight:800}.calendar{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.cal-nav{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line)}.month-select{border:0;background:transparent;color:var(--navy);font:800 19px 'Plus Jakarta Sans';max-width:210px}.cal-nav .controls{display:flex;gap:5px}.cal-nav button{border:0;background:#f1f5f9;border-radius:9px;padding:7px 10px;font-weight:800;color:var(--navy)}.week,.grid{display:grid;grid-template-columns:repeat(7,1fr)}.week span{padding:7px 2px;text-align:center;font-size:10px;font-weight:800;color:#94a3b8}.day{min-height:58px;border-top:1px solid #f1f5f9;border-right:1px solid #f1f5f9;padding:5px;background:#fff;position:relative;cursor:pointer}.day:nth-child(7n){border-right:0}.day.muted{color:#cbd5e1;background:#fafafa}.day.selected{background:#f4f6fa}.day.selected .num{background:var(--navy);color:#fff}.day.today:not(.selected) .num{outline:2px solid var(--navy);color:var(--navy)}.num{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;font-weight:700;font-size:13px;color:#94a3b8}.dots{display:flex;gap:3px;margin-top:5px;flex-wrap:wrap}.dot{width:6px;height:6px;border-radius:50%}.installation{background:var(--green)}.postage{background:var(--blue)}.pickup{background:var(--orange)}.repair{background:var(--red)}.appointment{background:var(--purple)}.task{background:#0f766e}.jobs{margin-top:10px}.section-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.section-row h2{margin:0;font:800 17px 'Plus Jakarta Sans';color:var(--navy)}.job-list{display:grid;gap:7px}.job{background:#fff;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:13px;padding:9px 11px;display:flex;align-items:center;gap:9px;box-shadow:0 4px 14px rgba(15,23,42,.04);cursor:pointer}.job[data-type="Installation"]{border-left-color:var(--green)}.job[data-type="Postage"]{border-left-color:var(--blue)}.job[data-type="Pickup"]{border-left-color:var(--orange)}.job[data-kind="appointment"]{border-left-color:var(--purple)}.job[data-kind="task"]{border-left-color:#0f766e}.job-time{width:72px;font-weight:800;font-size:12px;color:var(--navy)}.job-main{min-width:0;flex:1}.job-main strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13.5px}.job-main small{color:var(--muted);font-size:11.5px}.status{font-size:10px;font-weight:800;padding:4px 7px;border-radius:999px;background:#eef2ff;color:var(--navy)}.empty{background:#fff;border:1px dashed #cbd5e1;border-radius:13px;padding:18px;text-align:center;color:var(--muted);font-size:13px}.bottom{position:fixed;left:0;right:0;bottom:0;z-index:40;height:72px;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:env(safe-area-inset-bottom)}.nav{border:0;background:none;color:var(--muted);font-size:10px;font-weight:700;display:grid;place-items:center;gap:1px}.nav span{font-size:19px}.nav.active{color:var(--navy)}.nav.add span{background:var(--navy);color:#fff;width:47px;height:47px;border-radius:50%;display:grid;place-items:center;font-size:27px;margin-top:-18px;box-shadow:0 8px 20px rgba(10,42,122,.24)}.add-menu{position:fixed;right:14px;bottom:84px;z-index:70;background:#fff;border:1px solid var(--line);border-radius:16px;padding:7px;box-shadow:0 18px 45px rgba(15,23,42,.2);width:220px}.add-menu button{width:100%;border:0;background:#fff;text-align:left;padding:11px;border-radius:10px;font-weight:750;color:var(--ink)}.add-menu button:hover{background:#f8fafc}.detail-head{background:#fff;border:1px solid var(--line);border-radius:17px;padding:12px;display:grid;grid-template-columns:54px 1fr auto;gap:10px;align-items:center}.logo{width:54px;height:54px;border-radius:14px;background:#eef2ff;color:var(--navy);display:grid;place-items:center;font:800 22px 'Plus Jakarta Sans';overflow:hidden}.logo img{width:100%;height:100%;object-fit:cover}.detail-head h1{font:800 19px 'Plus Jakarta Sans';margin:0;color:var(--navy)}.detail-head p{margin:2px 0 0;color:var(--muted);font-size:12px}.quick{display:flex;gap:5px;flex-wrap:wrap}.quick button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:7px 9px;color:var(--navy);font-weight:700;font-size:11px}.sections{display:grid;gap:7px;margin-top:8px}.section{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden}.section-title{width:100%;border:0;background:#fff;display:flex;justify-content:space-between;align-items:center;padding:10px 12px;font-weight:800;color:var(--navy);font-size:14px}.section-body{border-top:1px solid var(--line);padding:4px 12px 8px}.row{display:grid;grid-template-columns:38% 1fr;gap:7px;padding:7px 0;border-bottom:1px solid #f1f5f9;font-size:12.5px}.row:last-child{border-bottom:0}.row label{color:var(--muted);font-weight:600}.row strong{word-break:break-word}.row-actions{display:flex;justify-content:flex-end;gap:5px;padding:6px 0 2px;flex-wrap:wrap}.business-note{white-space:pre-wrap;background:#f8fafc;border-radius:10px;padding:9px;font-size:12.5px;line-height:1.45}.payment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:7px 0}.metric{background:#f8fafc;border-radius:10px;padding:8px}.metric span{display:block;font-size:9px;color:var(--muted);font-weight:800;text-transform:uppercase}.metric strong{font-size:13px;display:block;margin-top:2px}.file-list,.hardware-list,.activity-list,.repair-list{display:grid;gap:6px;padding:6px 0}.file-item,.hardware-item,.activity-item,.repair-item{border:1px solid #eef2f7;border-radius:10px;padding:8px;font-size:12px}.file-item{display:flex;align-items:center;justify-content:space-between;gap:8px}.hardware-item .top,.repair-item .top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.activity-item span{color:var(--muted);font-size:10px}.wizard{background:#fff;border:1px solid var(--line);border-radius:17px;padding:12px}.steps{font-size:10px;color:var(--muted);font-weight:800;margin-bottom:7px}.progress{height:4px;background:#e5e7eb;border-radius:99px;overflow:hidden;margin-bottom:12px}.progress span{display:block;height:100%;background:var(--navy)}.step{display:none}.step.active{display:block}.step h2{font:800 17px 'Plus Jakarta Sans';color:var(--navy);margin:0 0 10px}.form{display:grid;grid-template-columns:1fr 1fr;gap:9px}.form label{font-size:11.5px;font-weight:700;color:#334155;display:grid;gap:5px}.form .full{grid-column:1/-1}.form input,.form select,.form textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:#fff;color:var(--ink);outline:none}.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.1)}.time-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.file-box{border:1px dashed #94a3b8;border-radius:10px;padding:9px;background:#f8fafc}.wizard-actions{display:flex;justify-content:space-between;gap:7px;margin-top:12px}.wizard-actions .btn{min-width:105px}.review{display:grid;gap:7px}.review-card{background:#f8fafc;border-radius:11px;padding:9px;font-size:12.5px}.chips{display:flex;gap:5px;flex-wrap:wrap}.chip{background:#eef2ff;color:var(--navy);padding:5px 7px;border-radius:999px;font-size:10.5px;font-weight:700}.qty-chip{display:flex;align-items:center;gap:6px;background:#f8fafc;border-radius:10px;padding:7px}.qty-chip input{width:58px}.modal-bg{position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:80;display:grid;place-items:end center;padding:10px}.modal-card{width:min(560px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:20px 20px 13px 13px;padding:12px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.modal-head h2{font:800 17px 'Plus Jakarta Sans';margin:0;color:var(--navy)}.close{border:0;background:#f1f5f9;width:33px;height:33px;border-radius:50%}.toast{position:fixed;left:50%;bottom:88px;transform:translateX(-50%);z-index:100;background:#111827;color:#fff;padding:9px 13px;border-radius:999px;font-size:11px;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1}.scanner-stage{position:relative;background:#0f172a;border-radius:14px;overflow:hidden;aspect-ratio:4/3}.scanner-stage video{width:100%;height:100%;object-fit:cover}.scan-frame{position:absolute;inset:23%;border:3px solid #fff;border-radius:12px;box-shadow:0 0 0 999px rgba(0,0,0,.28)}.scan-input{display:flex;gap:6px}.scan-input input{flex:1}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.report-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;min-height:110px}.report-card span{display:block;color:var(--muted);font-weight:700;font-size:12px}.report-card strong{display:block;color:var(--navy);font:800 30px 'Plus Jakarta Sans';margin-top:9px}.report-wide{grid-column:1/-1;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px}.report-bar{height:220px;display:flex;align-items:flex-end;gap:10px;padding-top:18px}.report-bar i{flex:1;background:linear-gradient(#2563eb,#0A2A7A);border-radius:8px 8px 3px 3px;min-height:12px}.report-actions{display:flex;gap:7px;flex-wrap:wrap}.filter-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.filter-row select,.filter-row input{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff}
@media(max-width:700px){.view{padding:9px 9px 23px}.day{min-height:52px;padding:4px}.detail-head{grid-template-columns:48px 1fr}.detail-head .quick{grid-column:1/-1}.logo{width:48px;height:48px}.form{grid-template-columns:1fr}.form .full{grid-column:auto}.payment-grid{grid-template-columns:repeat(3,1fr)}.metric{padding:7px 5px}.metric strong{font-size:11.5px}.row{grid-template-columns:36% 1fr}.page-head h1{font-size:21px}.report-grid{grid-template-columns:1fr 1fr}.report-card{min-height:100px}.report-card strong{font-size:25px}.report-wide{grid-column:1/-1}}@media(max-width:430px){.report-grid{grid-template-columns:1fr}.report-wide{grid-column:auto}.month-select{max-width:180px;font-size:17px}}
/* V5.1 stability + modern UI */
.brand-logo{height:38px;width:auto;display:block;object-fit:contain}.topbar{height:68px}.icon-btn svg,.nav svg{width:24px;height:24px;display:block}.nav span{display:grid;place-items:center}.nav.add span{font-size:30px}.nav{gap:3px}.icon-btn{display:grid;place-items:center}
.add-sheet-wrap{position:fixed;inset:0;z-index:90}.add-sheet-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.38);backdrop-filter:blur(3px)}.add-sheet{position:absolute;left:0;right:0;bottom:0;background:#fff;border-radius:26px 26px 0 0;padding:10px 14px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -20px 55px rgba(15,23,42,.18);animation:sheetUp .22s ease-out}.sheet-handle{width:44px;height:5px;border-radius:999px;background:#cbd5e1;margin:0 auto 12px}.add-sheet h3{margin:0 0 8px;font:800 18px 'Plus Jakarta Sans';color:var(--navy)}.add-sheet button{width:100%;border:0;background:#fff;border-radius:15px;padding:12px;display:flex;align-items:center;gap:12px;text-align:left;color:var(--ink)}.add-sheet button:active{background:#f1f5f9}.add-sheet button span{width:42px;height:42px;border-radius:13px;background:#eef2ff;color:var(--navy);display:grid;place-items:center}.add-sheet button svg{width:23px;height:23px}.add-sheet button strong{display:block;font-size:14px}.add-sheet button small{display:block;color:var(--muted);font-size:11px;margin-top:2px}@keyframes sheetUp{from{transform:translateY(100%)}to{transform:none}}
.viewer-bg{position:fixed;inset:0;z-index:100;background:#0b0d12;color:#fff;display:flex;flex-direction:column}.viewer-head{height:62px;padding:calc(8px + env(safe-area-inset-top)) 14px 8px;display:flex;align-items:center;justify-content:space-between;gap:12px}.viewer-head strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viewer-head .close{background:rgba(255,255,255,.16);color:#fff}.viewer-body{flex:1;display:grid;place-items:center;min-height:0;padding:8px}.viewer-body img{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px}.viewer-body iframe{width:100%;height:100%;border:0;background:#fff;border-radius:12px}.viewer-unsupported{text-align:center;line-height:1.6}.scan-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.upload-scan{position:relative;overflow:hidden}.upload-scan input{position:absolute;inset:0;opacity:0}.scan-note{font-size:12px;color:var(--muted)}.package-map{padding:9px 0;border-bottom:1px solid #eef2f7}.package-map:last-child{border-bottom:0}.package-map strong{display:block;color:var(--navy);font-size:13px}.package-map small{display:block;color:var(--muted);font-size:11px;margin-top:3px;line-height:1.45}.btn:disabled{opacity:.55;cursor:not-allowed}.day{display:flex;flex-direction:column;align-items:flex-start}.grid:empty{min-height:300px}.logo img{display:block}.file-item>span:last-child{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:430px){.brand-logo{height:34px}.topbar{padding:0 12px}.add-sheet{padding-left:12px;padding-right:12px}.file-item{align-items:flex-start;flex-direction:column}.file-item>span:last-child{width:100%;justify-content:flex-start}.calendar .day{min-height:54px}.num{font-size:13px}}

/* V5.2 UI refinements */
.brand-logo{width:132px;height:42px;object-fit:contain;object-position:left center}.topbar{height:72px}.form input,.form select,.form textarea,.modal-card input,.modal-card select,.modal-card textarea{font-size:16px!important}.addon-list{display:grid;gap:8px;max-height:62vh;overflow:auto}.addon-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #e8edf4;border-radius:14px;padding:11px;background:#f8fafc}.addon-card.selected{border-color:#93b4ff;background:#eef4ff}.addon-copy{display:grid;gap:3px}.addon-copy strong{font-size:13px}.addon-copy small{color:var(--muted)}.stepper{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}.stepper button{border:0;background:#fff;width:36px;height:34px;color:var(--navy);font-size:20px}.stepper b{min-width:28px;text-align:center}.addon-summary{position:sticky;bottom:0;display:flex;justify-content:space-between;background:#fff;padding:10px 2px 3px;border-top:1px solid var(--line)}.hardware-item.compact{position:relative;padding:10px 54px 10px 10px;min-height:100px}.hardware-menu{position:absolute;right:8px;top:6px}.dots-btn{border:0;background:#f1f5f9;border-radius:50%;width:34px;height:34px;font-size:22px;color:var(--navy)}.scan-only{position:absolute;right:10px;bottom:9px}.warranty-date{font-weight:800;margin-top:4px}.warranty-date.active{color:#16a34a}.warranty-date.expired{color:#dc2626}.context-menu{position:fixed;z-index:300;background:#fff;border:1px solid var(--line);border-radius:13px;padding:6px;box-shadow:0 18px 45px rgba(15,23,42,.22);min-width:150px}.context-menu button{display:block;width:100%;border:0;background:#fff;text-align:left;padding:10px;border-radius:8px;font-weight:700}.context-menu button:hover{background:#f1f5f9}.repair-open{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;background:#fff}.repair-open span{display:grid;gap:3px}.repair-open small{color:var(--muted)}.repair-light{display:inline-block;width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 4px rgba(0,0,0,.04)}.repair-light.yellow,.repair-status.yellow{background:#facc15;color:#854d0e}.repair-light.red,.repair-status.red{background:#ef4444;color:#fff}.repair-light.green,.repair-status.green{background:#22c55e;color:#fff}.repair-status{padding:4px 8px;border-radius:999px}.repair-timeline{display:grid;gap:8px;margin:10px 0}.timeline-item{border-left:3px solid var(--navy);padding:7px 10px;background:#f8fafc;border-radius:8px}.timeline-item small,.timeline-item span{display:block;color:var(--muted);font-size:11px}.viewer-body embed{width:100%;height:100%;border:0}.settings-list{display:grid;gap:6px;padding:6px 0}.setting-row{display:flex;justify-content:space-between;align-items:center;width:100%;border:1px solid #eef2f7;background:#fff;border-radius:11px;padding:10px;text-align:left}.setting-row span{display:grid;gap:3px}.setting-row small{color:var(--muted)}@media(max-width:480px){.brand-logo{width:118px}.quick{grid-column:1/-1}.detail-head{grid-template-columns:54px 1fr}.viewer-head{gap:6px}.viewer-head .mini{padding:5px 7px}}/* V5.2.2 — iPhone embedded barcode scanner */
.scanner-stage.scanner-idle{background:linear-gradient(145deg,#0f172a,#1e293b)}
.scanner-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:28px;color:rgba(255,255,255,.82);font-size:13px;line-height:1.5;z-index:3}
.scanner-stage.scanner-idle .scan-frame{opacity:.35}
.scanner-stage:not(.scanner-idle) .scanner-placeholder{display:none}
.scan-actions .btn{flex:1;min-width:150px;text-align:center}

/* HallooHQ Cloud V1 enhancements */
.brand-wrap{display:flex;align-items:center;gap:10px}.brand-wrap small{font-size:10px;color:var(--muted);font-weight:700}.brand-logo{width:132px!important;height:auto!important;max-height:46px!important;object-fit:contain}.top-actions .icon-btn,.top-actions .avatar{width:46px!important;height:46px!important}.smart-import{border:1px solid #bfd1ff;background:#f4f7ff;border-radius:18px;padding:14px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin-bottom:16px}.smart-import strong,.smart-import small{display:block}.smart-import small{color:var(--muted);margin-top:3px;font-size:12px}.smart-import input{display:none}.invoice-status{grid-column:1/-1;padding-top:8px;border-top:1px solid #dce6ff}.invoice-status b,.invoice-status small{display:block}.form input,.form select,.form textarea{font-size:16px!important}.media-gallery{padding:16px;display:grid;gap:14px;overflow:auto;height:calc(100vh - 70px)}.media-gallery img,.media-gallery video{width:100%;max-height:76vh;object-fit:contain;border-radius:14px;background:#111}.media-actions{display:flex;gap:8px;margin-top:8px}.bar-list{display:grid;gap:10px}.bar-row{display:grid;grid-template-columns:minmax(100px,1fr) 2fr 34px;align-items:center;gap:10px;border:0;background:transparent;text-align:left;color:var(--ink);padding:4px 0}.bar-row i{height:10px;background:#edf1f7;border-radius:99px;overflow:hidden}.bar-row i b{display:block;height:100%;background:var(--navy);border-radius:99px}.bar-row strong{text-align:right}.topbar{min-height:78px!important}.jobs .section-row h2{font-size:22px!important}.context-menu button{color:var(--ink)!important}.timeline-item{position:relative}.activity-card time{white-space:pre-line}

/* HallooHQ Cloud V1.1 sync + operations fixes */
.brand-logo{width:150px!important;max-height:54px!important}.brand-wrap{gap:8px}.sync-pill{border:0;background:#eef2ff;color:var(--navy);border-radius:999px;padding:7px 10px;font-size:10px;font-weight:800;white-space:nowrap}.sync-pill:disabled{opacity:.55}.package-summary{background:#f8fafc;border-radius:11px;padding:10px;margin:7px 0}.package-summary strong,.package-summary small{display:block}.package-summary small{color:var(--muted);margin-top:5px;line-height:1.5}.balance-metric.due span,.balance-metric.due strong{color:#dc2626!important}.balance-metric.clear span,.balance-metric.clear strong{color:#16a34a!important}.payment-badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-weight:800}.payment-badge.outstanding{background:#fee2e2;color:#b91c1c}.payment-badge.partial{background:#fef3c7;color:#92400e}.payment-badge.paid{background:#dcfce7;color:#166534}.installer-panel{margin-top:8px;padding-top:6px;border-top:1px solid var(--line)}.signature-pad{touch-action:none}.activity-item{display:grid;grid-template-columns:96px 1fr;gap:10px;align-items:start}.activity-item span{font-weight:700;color:#475569!important;white-space:pre-line}.media-gallery a{font-weight:700}.section-body.hidden{display:none!important}
@media(max-width:480px){.brand-logo{width:138px!important}.topbar{padding:0 10px}.sync-pill{padding:6px 8px;font-size:9px}.activity-item{grid-template-columns:88px 1fr}}
/* V1.2 arrangement and usability update */
.topbar{height:82px;padding:0 18px}.brand-wrap{display:flex;align-items:center}.brand-logo{width:158px;max-height:52px;object-fit:contain;display:block}.sync-pill{border:0;background:#eef2ff;color:var(--navy);border-radius:999px;padding:9px 13px;font-weight:800;white-space:nowrap}.page-sync{margin-left:auto}.detail-page-head{align-items:center}.customer-menu-btn,.dots-btn{border:0;background:#f1f5f9;color:var(--navy);border-radius:10px;min-width:34px;height:34px;font-size:20px;font-weight:800}.customer-head{grid-template-columns:86px 1fr;padding:15px}.customer-logo{width:86px;height:86px;border-radius:16px;cursor:pointer}.customer-logo img{object-fit:contain;background:#fff}.customer-main h1{font-size:20px}.phone-link{border:0;background:transparent;color:var(--blue);font-weight:800;padding:3px 0;font-size:14px}.method-selector{display:flex;align-items:center;gap:4px;margin:7px 0;overflow-x:auto}.method-selector span{padding:6px 10px;border-radius:999px;color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}.method-selector span.active{background:#eef2ff;color:var(--navy);border:1px solid #dbe4ff}.customer-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#fff;border:1px solid var(--line);border-radius:15px;margin-top:8px;overflow:hidden}.customer-summary>div{padding:10px 8px;text-align:center;border-right:1px solid var(--line)}.customer-summary>div:last-child{border-right:0}.customer-summary span{display:block;color:var(--muted);font-size:9px;font-weight:700}.customer-summary strong{display:block;color:var(--navy);font-size:13px;margin-top:3px}.detail-tabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;background:var(--bg);position:sticky;top:82px;z-index:20;padding:10px 0 6px;margin-top:3px}.detail-tabs::-webkit-scrollbar{display:none}.detail-tabs button{flex:0 0 auto;border:0;background:transparent;padding:9px 11px;color:var(--muted);font-size:11px;font-weight:700;border-bottom:3px solid transparent}.detail-tabs button.active{color:var(--navy);border-bottom-color:var(--blue)}.tab-panel{display:none;gap:8px}.tab-panel.active{display:grid}.mini-popover{position:fixed;z-index:120;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 38px rgba(15,23,42,.22);padding:5px;min-width:170px}.mini-popover button{display:block;width:100%;border:0;background:#fff;text-align:left;padding:10px 12px;border-radius:8px;color:var(--navy);font-weight:700}.mini-popover button:hover{background:#f8fafc}.danger-text{color:var(--red)!important}.logo-preview{min-height:220px;display:grid;place-items:center;background:#f8fafc;border-radius:14px;padding:15px;color:var(--muted)}.logo-preview img{max-width:100%;max-height:320px;object-fit:contain}.activity-new{display:grid;grid-template-columns:105px 1fr;gap:10px}.activity-new span b,.activity-new span small{display:block}.activity-new span small{margin-top:2px}.save-progress{position:sticky;bottom:0;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;margin-top:10px;box-shadow:0 10px 24px rgba(15,23,42,.13);z-index:20}.save-progress>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--navy)}.save-progress>i{display:block;height:7px;background:#e5e7eb;border-radius:99px;overflow:hidden;margin-top:8px}.save-progress>i>b{display:block;height:100%;background:var(--navy);transition:width .25s}.save-retry{margin-top:9px}.qty-chip .stepper{margin-left:auto}.stepper{display:flex;align-items:center;gap:8px}.stepper button{border:1px solid var(--line);background:#fff;color:var(--navy);width:34px;height:34px;border-radius:9px;font-size:20px}.stepper b{min-width:20px;text-align:center}.modal-bg{place-items:center;padding:7.5vh 12px}.modal-card{border-radius:20px;max-height:85vh}.file-item small{color:var(--muted)}
@media(max-width:600px){.topbar{height:72px}.brand-logo{width:148px;max-height:48px}.detail-tabs{top:72px}.customer-summary{grid-template-columns:repeat(2,1fr)}.customer-summary>div:nth-child(2){border-right:0}.customer-summary>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.customer-head{grid-template-columns:78px 1fr}.customer-logo{width:78px;height:78px}.customer-main h1{font-size:17px}.activity-new{grid-template-columns:88px 1fr}}
/* V1.3 stability + multi-order customer card */
.brand-logo{width:138px!important;max-height:46px!important}
.customer-head{grid-template-columns:70px 1fr!important}
.customer-logo{width:70px!important;height:70px!important}
.phone-business-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.business-type-inline{color:var(--muted);font-size:12px;font-weight:700;border-left:1px solid var(--line);padding-left:10px}
.modern-summary{margin:10px 0 0!important;background:transparent!important;border:0!important;gap:8px!important;overflow:visible!important}
.modern-summary>div{background:#f8fafc;border:1px solid var(--line)!important;border-radius:12px;padding:10px!important;text-align:left!important}
.modern-summary span{font-size:9px!important}.modern-summary strong{font-size:15px!important}
.package-breakdown{display:grid;gap:0;background:#f8fafc;border-radius:12px;padding:5px 11px;margin:7px 0}
.package-breakdown>div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}
.package-breakdown>div:last-child{border-bottom:0}.package-breakdown b{white-space:nowrap;color:var(--ink)}.package-breakdown small{padding:10px 0;color:var(--muted)}
.branch-list{display:grid;gap:6px;padding:6px 0}.branch-order{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px;text-align:left}.branch-order span{display:grid;gap:3px}.branch-order small{color:var(--muted)}.branch-order b{white-space:nowrap;color:var(--navy)}
@media(max-width:600px){.brand-logo{width:126px!important;max-height:42px!important}.customer-head{grid-template-columns:64px 1fr!important}.customer-logo{width:64px!important;height:64px!important}.modern-summary{grid-template-columns:repeat(2,1fr)!important}.business-type-inline{font-size:11px}}
/* V1.4 workflow stability and reports */
.serial-missing{color:#c62828;font-weight:700}
.multi-order-btn{position:relative;border:0;background:#edf3ff;color:#0a2a7a;border-radius:12px;width:42px;height:42px;font-size:22px;font-weight:800}.multi-order-btn b{position:absolute;right:-5px;top:-7px;background:#0a2a7a;color:#fff;border-radius:999px;min-width:20px;height:20px;display:grid;place-items:center;font-size:11px}
.mini.approved{background:#e8f7ed;color:#17713a;border-color:#9ed6ae;font-weight:800}
.rating-block{padding:14px 0;text-align:center}.star-rating{display:flex;justify-content:center;gap:4px;margin-top:8px}.star-rating button{border:0;background:none;font-size:34px;color:#f59e0b;padding:2px}
.signature-view{height:calc(100vh - 70px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;color:#fff}.signature-view img{max-width:92vw;max-height:65vh;background:#fff;border-radius:16px;touch-action:pinch-zoom}.missing-list{margin:12px 0 0;padding-left:22px;color:#b42318;font-weight:700}.missing-list li{margin:9px 0}
.postage-panel{margin-top:12px}.serial-missing+.warranty-date{margin-top:6px}
.report-filter{background:#fff;border:1px solid #e5e9f2;border-radius:18px;padding:14px;margin-bottom:14px}.report-filter select{width:100%;height:44px;border:1px solid #dce2ec;border-radius:12px;padding:0 12px;background:#fff}.report-filter small{display:block;margin-top:9px;color:#667085}.custom-date-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end;margin-top:10px}.custom-date-row label{font-size:12px;color:#667085}.custom-date-row input{display:block;width:100%;height:42px;margin-top:5px;border:1px solid #dce2ec;border-radius:10px;padding:0 8px}.hidden{display:none!important}
.calendar-item.method-installation{border-left:5px solid #2f6bff}.calendar-item.method-postage{border-left:5px solid #8b5e3c}.calendar-item.method-walk-in,.calendar-item.method-pickup{border-left:5px solid #7c3aed}.calendar-item[data-kind="appointment"]{border-left:5px solid #f59e0b}.calendar-item[data-kind="repair"]{border-left-color:transparent}.calendar-item.internal-task{background:#eaf2ff!important;border:1px solid #bfd3ff!important;color:#0a2a7a}.calendar-item.internal-task .job-main strong,.calendar-item.internal-task .job-main small{color:#0a2a7a}
@media(max-width:620px){.custom-date-row{grid-template-columns:1fr 1fr}.custom-date-row .btn{grid-column:1/-1}.multi-order-btn{width:38px;height:38px}.customer-logo{width:62px!important;height:62px!important}.brand-logo{width:132px!important;max-height:42px!important}}
/* HallooHQ v1.5 live refinements */
.invoice-layout{display:grid;gap:0;border:1px solid #e6eaf2;border-radius:14px;overflow:hidden;background:#fff}.invoice-line{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border-bottom:1px solid #eef1f6}.invoice-line:last-child{border-bottom:0}.invoice-line strong{text-align:right}.invoice-number{background:#f7f9fc}.invoice-total{font-size:1.05rem;font-weight:800;border-top:2px solid #dfe5ef}.invoice-status strong{text-align:left}.invoice-balance.due strong{color:#c62828}.invoice-balance.clear strong{color:#16833b}
.method-location-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:7px}.method-pill{display:inline-flex;padding:5px 10px;border-radius:999px;color:#fff;font-size:.75rem;font-weight:800}.method-installation{background:#2f6bff}.method-postage{background:#8b5e3c}.method-walk-in,.method-pickup{background:#7c3aed}.customer-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.partner-chip,.multi-order-inline{border:0;border-radius:10px;padding:7px 10px;font-weight:750;background:#eef3ff;color:#0a2a7a}.multi-order-inline{display:flex;gap:6px;align-items:center}.multi-order-inline b{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:#0a2a7a;color:#fff;font-size:.7rem}.customer-logo img{width:100%;height:100%;object-fit:contain;border-radius:inherit;background:#fff}.customer-logo{width:58px!important;height:58px!important}.brand-logo img,.top-logo img{max-height:40px!important;width:auto!important}

/* HallooHQ v1.5.1 — locked UI refinements */
.customer-main .phone-link{font-size:16px;font-weight:800}
.method-location-row>span:last-child{font-size:12px;color:var(--muted)}
.customer-head{position:relative;padding-right:58px!important}
.multi-order-icon{position:absolute;right:14px;bottom:18px;width:42px;height:42px;border:0;border-radius:12px;background:#eef3ff;color:var(--navy);font-size:21px;font-weight:800;display:grid;place-items:center}
.customer-head-actions{margin-top:0}

/* Calendar cards: white cards with a small left colour only */
.calendar-item{background:#fff!important;color:var(--ink)!important;border-top:1px solid var(--line)!important;border-right:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important}
.calendar-item.method-installation{border-left:5px solid #2f6bff!important}
.calendar-item.method-postage{border-left:5px solid #8b5e3c!important}
.calendar-item.method-walk-in,.calendar-item.method-pickup{border-left:5px solid #7c3aed!important}
.calendar-item[data-kind="appointment"]{border-left:5px solid #f59e0b!important}
.calendar-item[data-kind="repair"],.calendar-item[data-type="Customer Support"]{border-left-color:transparent!important}
.calendar-item.internal-task{background:#2f6bff!important;border-color:#2f6bff!important;color:#fff!important}
.calendar-item.internal-task .job-main strong,.calendar-item.internal-task .job-main small,.calendar-item.internal-task .job-time,.calendar-item.internal-task .status{color:#fff!important}
.calendar-item.internal-task .status{background:rgba(255,255,255,.18)}

/* Documents like Trello */
.document-block{padding:10px 0;border-bottom:1px solid var(--line)}
.document-block:last-of-type{border-bottom:0}
.document-heading{font-weight:800;color:var(--navy);font-size:14px;margin-bottom:10px}
.image-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.image-thumb{border:0;background:#f1f5f9;border-radius:11px;overflow:hidden;aspect-ratio:1/1;padding:0}
.image-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.trello-files{display:grid;gap:0}
.trello-file{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 2px;border-bottom:1px solid #edf1f6}
.trello-file:last-child{border-bottom:0}
.trello-file>div{display:grid;gap:5px;min-width:0}
.trello-file strong{word-break:break-word;font-size:13px}
.trello-file small{color:var(--muted);font-size:10.5px}
.compact-empty{padding:12px}
.viewer-footer{min-height:58px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:10px;color:#cbd5e1;background:#17191f}
.image-swipe-viewer .viewer-body img{touch-action:pinch-zoom}

/* Full-screen long forms */
.full-form-bg{padding:0!important;place-items:stretch!important;background:#fff!important}
.full-form{width:100%!important;max-width:none!important;height:100dvh!important;max-height:none!important;border-radius:0!important;padding:calc(12px + env(safe-area-inset-top)) 14px calc(92px + env(safe-area-inset-bottom))!important;overflow-y:auto!important;overflow-x:hidden!important}
.full-form .modal-head{position:sticky;top:0;background:#fff;z-index:4;padding:4px 0 10px}
.full-form .form{grid-template-columns:1fr 1fr!important}
.full-form .form .full{grid-column:1/-1!important}
.sticky-form-actions{position:fixed;left:0;right:0;bottom:0;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--line);z-index:6}
.sticky-form-actions .btn{width:100%}

/* Installation duration */
.duration-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800}
.duration-green{background:#dcfce7;color:#166534}
.duration-yellow{background:#fef3c7;color:#92400e}
.duration-red{background:#fee2e2;color:#b91c1c}

/* Activity title */
.activity-title{display:block;color:var(--navy);font-size:12px;margin-bottom:3px}
.activity-new>div>div{font-size:12px;line-height:1.4}

@media(max-width:600px){
  .image-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .full-form .form{grid-template-columns:1fr 1fr!important}
  .customer-main .phone-link{font-size:17px}
  .method-location-row>span:last-child{font-size:11.5px}
}

/* HallooHQ V1.5.2 fixes */
.repair-card{position:relative;border-left-color:transparent!important;overflow:hidden}
.repair-card::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px}
.repair-card.repair-yellow::after{background:#facc15}
.repair-card.repair-red::after{background:#ef4444}
.repair-card.repair-green::after{background:#22c55e}
.full-form-page{position:fixed;inset:0;z-index:200;background:#fff;overflow:hidden}
.full-form-shell{height:100%;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top)}
.full-form-head{height:76px;display:flex;align-items:center;justify-content:space-between;padding:14px 22px;border-bottom:1px solid var(--line);flex:none}
.full-form-head h2{margin:0;color:var(--navy);font:800 22px 'Plus Jakarta Sans'}
.full-form-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:18px 22px 120px}
.full-form-footer{position:absolute;left:0;right:0;bottom:0;padding:12px 22px calc(12px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--line)}
.full-form-footer .btn{width:100%;min-height:52px}
.image-thumb img{width:100%;height:100%;object-fit:cover;display:block;background:#f1f5f9}
.image-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.image-thumb{border:0;padding:0;aspect-ratio:1;border-radius:14px;overflow:hidden;background:#f1f5f9}
.viewer-body{touch-action:pan-y pinch-zoom}
@media(max-width:520px){.full-form-head{padding:12px 18px}.full-form-body{padding:16px 18px 120px}.full-form-footer{padding-left:18px;padding-right:18px}.image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* HallooHQ V1.5.3 — locked stability and full-page workflow */
.modal-bg:has(.modal-card .form){padding:0!important;place-items:stretch!important;background:#fff!important}
.modal-bg:has(.modal-card .form)>.modal-card{width:100%!important;max-width:none!important;height:100dvh!important;max-height:none!important;border-radius:0!important;padding:calc(12px + env(safe-area-inset-top)) 18px calc(96px + env(safe-area-inset-bottom))!important;overflow-y:auto!important}
.modal-bg:has(.modal-card .form) .modal-head{position:sticky;top:calc(-12px - env(safe-area-inset-top));z-index:8;background:#fff;padding:14px 0 12px;border-bottom:1px solid var(--line)}
.modal-bg:has(.modal-card .form)>.modal-card>.btn.primary:last-child{position:fixed;left:18px;right:18px;bottom:calc(12px + env(safe-area-inset-bottom));width:calc(100% - 36px)!important;min-height:52px;z-index:9;box-shadow:0 10px 25px rgba(15,23,42,.15)}
.modal-bg:has(.modal-card .form) .form{grid-template-columns:1fr 1fr!important}
.modal-bg:has(.modal-card .form) .form .full{grid-column:1/-1!important}
.note-entry-list{display:grid;gap:9px}.note-entry{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:13px;padding:11px;background:#fff}.note-entry>div{min-width:0}.note-entry small{color:var(--muted);font-size:10px}.note-entry p{margin:6px 0 0;white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;font-size:12.5px;line-height:1.45}.note-viewer{padding:20px;overflow:auto}.note-viewer small{color:#cbd5e1}.note-viewer pre{white-space:pre-wrap;font:400 15px/1.6 Inter,sans-serif;background:#fff;color:#111827;border-radius:14px;padding:18px;min-height:50vh}.install-photo-block,.tracking-proof{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.install-photo-block>strong,.tracking-proof>strong{display:block;color:var(--navy);font-size:13px;margin-bottom:9px}.install-grid{margin-top:8px}.tracking-proof .image-thumb{width:120px;display:block}.postage-actions{align-items:center}.wa-state{font-weight:800}.wa-state.sent{color:#16a34a}.wa-state.unsent{color:#dc2626}.postage-panel a{color:var(--blue);text-decoration:none;font-weight:800}
@media(max-width:600px){.modal-bg:has(.modal-card .form)>.modal-card{padding-left:14px!important;padding-right:14px!important}.modal-bg:has(.modal-card .form)>.modal-card>.btn.primary:last-child{left:14px;right:14px;width:calc(100% - 28px)!important}.modal-bg:has(.modal-card .form) .form{grid-template-columns:1fr 1fr!important}.modal-bg:has(.modal-card .form) .form .full{grid-column:1/-1!important}}

/* HallooHQ V1.5.4 media + time controls */
.install-proof-row{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.install-proof-row>strong{display:block;color:var(--navy);font-size:13px;margin-bottom:9px}.install-proof-row .image-thumb{width:120px}.time-row select{min-width:0}.signature-view>a{margin:16px 0;font-weight:800}.activity-title{font-size:13px!important}.postage-actions+.row-actions{display:none!important}

/* HallooHQ V1.5.7 cache + locked workflow fixes */
.postage-actions{display:flex!important;justify-content:flex-end!important}.postage-actions .dots-btn{display:grid!important;place-items:center!important}.postage-panel>.row-actions:not(.postage-actions){display:none!important}.time-row{grid-template-columns:repeat(3,minmax(0,1fr))!important}.activity-title{font-weight:800!important;color:var(--navy)!important}


/* HallooHQ V1.5.8 Final — locked stabilization */
.edit-package-payment-btn{font-size:10px!important;padding:5px 7px!important}
/* Short forms return to floating cards. Only explicit .full-form-bg/.full-form-page stay full screen. */
.modal-bg:not(.full-form-bg):has(.modal-card .form){padding:10px!important;place-items:end center!important;background:rgba(15,23,42,.42)!important}
.modal-bg:not(.full-form-bg):has(.modal-card .form)>.modal-card{width:min(560px,100%)!important;height:auto!important;max-width:560px!important;max-height:90vh!important;border-radius:20px 20px 13px 13px!important;padding:12px!important;overflow:auto!important}
.modal-bg:not(.full-form-bg):has(.modal-card .form) .modal-head{position:static!important;background:#fff!important;padding:0!important;border-bottom:0!important}
.modal-bg:not(.full-form-bg):has(.modal-card .form)>.modal-card>.btn.primary:last-child{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;width:100%!important;min-height:0!important;box-shadow:none!important}
.modal-bg:not(.full-form-bg):has(.modal-card .form) .form{grid-template-columns:1fr 1fr!important}
.date-field,.time-field{grid-column:1/-1!important}.time-field .time-row{max-width:360px}
.viewer-body iframe{width:100%;height:100%;border:0;background:#fff;border-radius:12px}
@media(max-width:600px){.modal-bg:not(.full-form-bg):has(.modal-card .form) .form{grid-template-columns:1fr!important}.modal-bg:not(.full-form-bg):has(.modal-card .form) .form .full{grid-column:1!important}.time-field .time-row{max-width:none}}

/* HallooHQ V2 Firebase login */
.firebase-login{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(180deg,#f7f9ff,#eef3ff)}
.firebase-login-card{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:var(--shadow);display:grid;gap:16px}
.firebase-login-card img{width:190px;max-width:70%;margin:0 auto 4px}.firebase-login-card p{text-align:center;margin:0;color:var(--muted);font-weight:800}
.firebase-login-card form{display:grid;gap:13px}.firebase-login-card label{display:grid;gap:6px;font-weight:800;color:#334155;font-size:13px}
.firebase-login-card input{width:100%;border:1px solid var(--line);border-radius:13px;padding:13px;font-size:16px}.firebase-login-card button{min-height:48px}
.firebase-login-card small{text-align:center;color:var(--muted)}.login-error{background:#fee2e2;color:#991b1b;border-radius:11px;padding:10px;font-size:12px;font-weight:700}

/* V2.0.3-A form consistency */
.modal-bg{place-items:center!important;align-items:center!important;justify-items:center!important;padding:16px!important}
.centered-short-modal{width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;border-radius:20px!important;margin:auto}
.modal-save{width:100%;margin-top:12px;min-height:46px}
@media(max-width:600px){.centered-short-modal{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);padding:14px}.centered-short-modal .form{grid-template-columns:1fr!important}}

/* V2.0.3-B stability and layout fixes */
.customer-list-card{border-left-width:6px!important}
.customer-list-card.customer-method-installation{border-left-color:#2563eb!important}
.customer-list-card.customer-method-postage{border-left-color:#8b5e3c!important}
.customer-list-card.customer-method-walk-in,.customer-list-card.customer-method-pickup{border-left-color:#7c3aed!important}
.business-info-full{height:calc(100dvh - 155px);padding-bottom:20px!important}
.business-info-full .form,.business-info-editor{height:100%}
.business-info-editor textarea{min-height:100%!important;resize:none}
.modal-bg{place-items:center!important;padding:16px!important}
.modal-card.centered-short-modal{margin:auto!important;width:min(560px,calc(100vw - 24px))!important;max-height:calc(100dvh - 32px)!important;border-radius:20px!important;overflow:auto!important}
.modal-card.centered-short-modal .modal-save{width:100%;margin-top:10px}
@media(max-width:600px){.modal-card.centered-short-modal{width:calc(100vw - 20px)!important;max-height:calc(100dvh - 20px)!important}.modal-card.centered-short-modal .form{grid-template-columns:1fr!important}}

/* V2.0.3-C stability */
.business-info-full{padding-top:14px!important}.business-info-full .form,.business-info-editor{height:100%;min-height:calc(100dvh - 190px)}.business-info-editor textarea{min-height:calc(100dvh - 245px)!important;height:100%!important;resize:none;align-self:stretch}.centered-short-modal{margin:auto!important;max-height:88dvh!important}.image-thumb img,.customer-logo img,.logo-preview img{background:#fff}

/* HallooHQ V2.1.3 — locked calendar and support display */
.calendar-item.customer-support-card{
  background:#fff!important;
  color:var(--ink)!important;
  border:1px solid var(--line)!important;
}
.calendar-item.customer-support-card .job-main strong,
.calendar-item.customer-support-card .job-time{color:var(--navy)!important}
.calendar-item.customer-support-card .job-main small{color:var(--muted)!important}
.support-status{border-radius:999px;padding:6px 10px;font-size:10px;font-weight:800;white-space:nowrap}
.support-new{background:#2f6bff;color:#fff}
.support-pending{background:#facc15;color:#443700}
.support-in-progress{background:#22c55e;color:#fff}
.support-cancel{background:#ef4444;color:#fff}
.support-completed{font-size:19px;min-width:28px;text-align:center}
.support-list{display:grid;gap:8px;padding:6px 0}
.support-entry{position:relative;border:1px solid #e8edf5;border-radius:13px;background:#fff;padding:10px 44px 10px 10px}
.support-entry-main{width:100%;border:0;background:none;text-align:left;padding:0}
.support-entry-main strong{display:block;color:var(--navy)}
.support-entry-main small{display:block;color:var(--muted);font-size:10.5px;margin-top:3px}
.support-entry-dots{position:absolute;right:8px;top:8px}
.support-inline-files{display:grid;gap:7px;margin-top:9px}
.support-inline-image,.support-inline-file{width:100%;border:1px solid #dfe6f1;background:#f8fafc;border-radius:11px;color:var(--navy);font-weight:750;text-align:left}
.support-inline-image{display:grid;grid-template-columns:58px 1fr;align-items:center;gap:9px;padding:6px}
.support-inline-image img{width:58px;height:50px;object-fit:cover;border-radius:8px}
.support-inline-file{padding:10px}

/* HallooHQ V2.1.4 */
.login-subscription{margin:10px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.login-subscription>strong{display:block;padding:10px 12px;background:#f7f9fd;color:var(--navy)}
.login-subscription-edit{border:1px solid var(--line);border-radius:12px;padding:12px}
.login-subscription-edit>strong{display:block;color:var(--navy);margin-bottom:8px}
.login-notes{white-space:normal;line-height:1.5}

/* HallooHQ V2.1.7 repair build */
.login-subscription-edit{height:auto!important;min-height:0!important;padding:12px!important}
.login-subscription-edit .form{height:auto!important;min-height:0!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
.login-subscription-edit input[type="number"]{height:44px!important;min-height:44px!important}

/* HallooHQ V2.2.0 Phase 1 */
.data-management-box{
  display:grid;
  gap:8px;
  padding:14px;
  border:1px solid #fecaca;
  border-radius:14px;
  background:#fff7f7;
}
.data-management-box strong{color:#991b1b}
.data-management-box small{color:#6b7280;line-height:1.45}
.data-management-box .btn{margin-top:4px}
.reset-data-card{width:min(92vw,560px)!important}
.reset-warning{
  padding:12px;
  margin-bottom:12px;
  border-radius:12px;
  background:#fff1f2;
  border:1px solid #fecdd3;
  color:#881337;
}
.reset-warning p{margin:6px 0 0;line-height:1.45}
.reset-confirm-btn{width:100%;margin-top:12px}
.reset-confirm-btn:disabled{opacity:.45}

/* HallooHQ V2.2.1 live-customer fixes */
.login-info-full{
  height:auto!important;
  min-height:0!important;
  padding-top:14px!important;
  padding-bottom:110px!important;
}
.login-info-full>.form{
  height:auto!important;
  min-height:0!important;
  align-content:start!important;
  grid-auto-rows:auto!important;
  row-gap:12px!important;
}
.login-info-full label{
  align-self:start!important;
  margin:0!important;
}
.login-info-full input,
.login-info-full select{
  min-height:50px!important;
  height:50px!important;
}
.login-info-full textarea{
  min-height:150px!important;
  height:150px!important;
  resize:vertical;
}
.login-info-full .login-subscription-edit{
  margin:0!important;
}

/* HallooHQ V2.2.4 — User Management */
.profile-menu{
 position:fixed;z-index:1200;min-width:240px;max-width:calc(100vw - 24px);
 background:#fff;border:1px solid #e5e7eb;border-radius:14px;
 box-shadow:0 16px 40px rgba(15,23,42,.18);overflow:hidden
}
.profile-menu-head{display:grid;gap:3px;padding:14px;border-bottom:1px solid #eef2f7}
.profile-menu-head strong{font-size:15px}
.profile-menu-head small{color:#64748b;overflow-wrap:anywhere}
.profile-menu-head span{width:max-content;margin-top:4px;padding:3px 8px;border-radius:999px;background:#e8efff;color:#0a2a7a;font-size:11px;font-weight:800}
.profile-menu button{display:block;width:100%;padding:12px 14px;border:0;background:#fff;text-align:left;font:inherit}
.profile-menu button+button{border-top:1px solid #eef2f7}
.profile-menu button:active{background:#f8fafc}
.role-summary,.partner-divider{display:grid;gap:5px;padding:12px;border-radius:12px;background:#f8fafc}
.role-summary small,.partner-divider small{color:#64748b;line-height:1.4}
.partner-divider{margin-top:10px}
.user-auth-note{padding:10px 12px;border-radius:11px;background:#fff8e6;color:#7c5b12;font-size:12px;line-height:1.45}
.user-modal-card{width:min(92vw,560px)!important}
.toggle-line{display:flex!important;align-items:center;justify-content:space-between}
.toggle-line input{width:22px!important;height:22px!important;min-height:22px!important}

/* HallooHQ V2.2.7 — Direct invoice delete */
.branch-order-row{
 display:grid;
 grid-template-columns:minmax(0,1fr) auto;
 gap:8px;
 align-items:stretch;
}
.branch-order-main{width:100%}
.branch-order-delete{
 border:1px solid #fecaca;
 background:#fff1f2;
 color:#b91c1c;
 border-radius:12px;
 padding:0 13px;
 font-weight:800;
}
.branch-order-delete:disabled{opacity:.55}
@media(max-width:520px){
 .branch-order-row{grid-template-columns:minmax(0,1fr)}
 .branch-order-delete{min-height:44px}
}

/* HallooHQ V2.2.8 — Reliable in-app delete confirmation */
.delete-invoice-card{width:min(92vw,520px)!important}
.delete-invoice-warning{
 padding:13px;
 margin-bottom:12px;
 border:1px solid #fecaca;
 border-radius:12px;
 background:#fff1f2;
 color:#991b1b;
}
.delete-invoice-warning p{margin:6px 0 0;line-height:1.45;color:#7f1d1d}
#confirmDeleteInvoice{width:100%;margin-top:12px}
#confirmDeleteInvoice:disabled{opacity:.45}

/* HallooHQ V2.2.9 — Compact Multiple Orders delete button */
.branch-order-row{
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:8px!important;
  align-items:center!important;
}
.branch-order-delete{
  width:auto!important;
  min-width:76px!important;
  min-height:40px!important;
  height:40px!important;
  padding:0 14px!important;
  border-radius:10px!important;
  align-self:center!important;
  font-size:14px!important;
  line-height:1!important;
}
@media(max-width:520px){
  .branch-order-row{
    grid-template-columns:minmax(0,1fr) auto!important;
  }
  .branch-order-delete{
    width:auto!important;
    min-height:40px!important;
    height:40px!important;
  }
}

/* HallooHQ V2.2.11 — Method schedule editor */
.method-edit-row{
 display:flex;
 justify-content:flex-end;
 margin:0 0 8px;
}
.method-edit-row .mini{
 min-height:38px;
 padding:0 14px;
 font-weight:800;
}

/* HallooHQ V2.2.12 */
.delete-invoice-warning + p{line-height:1.45}
#confirmHardwareDelete{min-width:150px}
#confirmedSerial{
 text-transform:uppercase;
 font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
 font-weight:800;
 letter-spacing:.04em;
}

/* HallooHQ V2.4.0 — Staff Leave Management */
.leave-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.leave-stat-grid>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;text-align:center}
.leave-stat-grid strong{display:block;font-size:24px}
.leave-stat-grid span{font-size:12px;color:var(--muted)}
.leave-list{display:grid;gap:8px}
.leave-request-card{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px}
.leave-request-card span{display:grid;gap:4px}.leave-request-card small{color:var(--muted)}
.leave-status{font-size:12px;padding:5px 8px;border-radius:999px}
.leave-pending{background:#fff7d6;color:#8a5a00}.leave-approved{background:#dcfce7;color:#166534}.leave-rejected{background:#fee2e2;color:#991b1b}
.leave-balance-row{padding:10px 0;border-bottom:1px solid var(--line);display:grid;gap:3px}
.leave-balance-row span{font-size:12px;color:var(--muted)}
.leave-calendar-card{border-left:4px solid #dc2626!important;background:#fff7f7!important}
.leave-calendar-card .job-main strong{color:#b91c1c;text-transform:uppercase;letter-spacing:.03em}
.leave-calendar-card .job-time{color:#b91c1c;font-weight:800}
@media(max-width:520px){.leave-stat-grid{grid-template-columns:repeat(3,1fr)}.leave-stat-grid>div{padding:10px 6px}.leave-stat-grid strong{font-size:20px}}

/* HallooHQ V2.4.1 — Modern Leave Dashboard + Owner Permissions */
.leave-summary-section{margin:14px 0 18px}
.leave-summary-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:12px}
.leave-summary-title h2{margin:2px 0 0;font-size:20px}
.leave-summary-title>span{background:#eef3ff;color:#244ea2;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}
.leave-balance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.leave-balance-card{background:linear-gradient(180deg,#fff 0%,#f8faff 100%);border:1px solid #dfe7f5;border-radius:18px;padding:15px;box-shadow:0 8px 24px rgba(30,56,100,.07)}
.leave-card-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.leave-card-head strong{display:block;font-size:14px}
.leave-card-head small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.leave-card-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#edf3ff;font-size:18px}
.leave-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.leave-metrics.two{grid-template-columns:repeat(2,1fr)}
.leave-metrics div{background:#fff;border:1px solid #edf1f7;border-radius:11px;padding:8px 4px;text-align:center}
.leave-metrics b{display:block;font-size:18px;color:#14233f}
.leave-metrics span{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.leave-progress{height:5px;background:#e9eef7;border-radius:99px;overflow:hidden;margin-top:12px}
.leave-progress i{display:block;height:100%;background:#2557b7;border-radius:99px}
.leave-balance-card.unpaid{grid-column:1/-1}
.dot.leave-dot{background:#dc2626!important;box-shadow:0 0 0 2px rgba(220,38,38,.14)}
@media(max-width:620px){
 .leave-balance-grid{grid-template-columns:1fr}
 .leave-balance-card.unpaid{grid-column:auto}
 .leave-metrics b{font-size:16px}
}

/* V2.5.0 Time & Attendance + Payroll */
.attendance-hero,.payroll-hero{background:linear-gradient(135deg,#0a2a7a,#174ca9);color:#fff;border-radius:20px;padding:20px;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 16px 36px rgba(10,42,122,.18)}
.attendance-hero h2,.payroll-hero h2{margin:4px 0}.attendance-hero p,.payroll-hero p{opacity:.82;margin:0;font-size:12px}.attendance-hero span,.payroll-hero span{font-size:12px;opacity:.8}
.big-action{min-width:120px;padding:14px 18px}.done-shift{background:rgba(255,255,255,.16);padding:10px 14px;border-radius:12px}
.hr-red-alert{background:#fff0f0;border:1px solid #ef4444;color:#991b1b;border-radius:15px;padding:14px;margin-bottom:12px;font-weight:800}
.hr-red-alert small{font-weight:500}.hr-staff-settings{margin-top:14px}.payroll-hero .btn{background:#fff;color:#0a2a7a}
.payslip-preview{text-align:left}.payslip-logo{width:150px;max-height:48px;object-fit:contain;object-position:left;margin-bottom:10px}.payslip-preview h3{margin:4px 0}.payslip-preview>small{line-height:1.55;color:var(--muted)}
.payslip-net{display:flex;justify-content:space-between;align-items:center;background:#eef3ff;border-radius:13px;padding:14px;margin:14px 0}.payslip-net strong{font-size:22px;color:#0a2a7a}.system-note{font-size:11px;color:var(--muted);text-align:center;margin:14px 0}
@media(max-width:600px){.attendance-hero,.payroll-hero{align-items:flex-start;gap:14px;flex-direction:column}.attendance-actions,.big-action,.payroll-hero .btn{width:100%}}

/* V2.6.0 Customer Card */
.customer-card-list{display:grid;gap:14px}
.customer-card-new{position:relative;display:grid;grid-template-columns:128px 1fr 52px;gap:18px;align-items:center;background:#fff;border:1px solid #e2e7f0;border-radius:22px;padding:18px;box-shadow:0 10px 28px rgba(28,48,86,.08);cursor:pointer}
.customer-logo-new{width:128px;height:128px;border-radius:22px;border:1px solid #e5e9f1;background:#f8faff;display:grid;place-items:center;overflow:hidden}
.customer-logo-new img{width:100%;height:100%;object-fit:contain}.customer-logo-new span{font-size:42px;font-weight:800;color:#0a2a7a}
.customer-card-content{min-width:0;display:grid;gap:6px}.method-badge-new{justify-self:start;color:#fff;font-weight:800;font-size:12px;border-radius:999px;padding:7px 14px}
.method-badge-installation{background:#2f66ea}.method-badge-postage{background:#e87516}.method-badge-walk-in,.method-badge-pickup{background:#7b8495}
.customer-business-name{font-size:20px;color:#0a2a7a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.customer-phone-new{font-size:20px;font-weight:800;color:#2464ea;text-decoration:none}
.customer-meta-row{display:flex;align-items:center;gap:8px;color:#67738a;font-size:14px}.customer-meta-row img{width:20px;height:20px;object-fit:contain}
.customer-entry-date{color:#687386;font-size:13px}.multiple-order-btn{position:relative;border:0;background:transparent;padding:8px}.multiple-order-btn img{width:34px;height:34px}.multiple-order-btn span{position:absolute;right:1px;top:1px;background:#0a2a7a;color:#fff;border-radius:999px;font-size:10px;min-width:18px;height:18px;display:grid;place-items:center}
.bulk-summary{background:#f2f6ff;border:1px solid #d9e4ff;border-radius:14px;padding:12px;margin:12px 0;display:grid;gap:4px}.bulk-summary span{font-size:12px;color:#687386}
.qr-box{display:grid;place-items:center;padding:16px;background:#fff;border-radius:16px}
@media(max-width:640px){.customer-card-new{grid-template-columns:92px 1fr 40px;gap:12px;padding:14px}.customer-logo-new{width:92px;height:92px;border-radius:18px}.customer-business-name,.customer-phone-new{font-size:16px}.customer-meta-row{font-size:12px}.multiple-order-btn img{width:30px;height:30px}}

/* V2.6.1 */
.customer-info-card-v261{display:grid;grid-template-columns:150px minmax(0,1fr) 54px;gap:20px;align-items:center;border-radius:24px;padding:22px;background:#fff;border:1px solid #e0e6f0;box-shadow:0 12px 30px rgba(30,51,89,.08)}
.customer-info-logo-v261{width:150px!important;height:150px!important;min-width:150px;border-radius:22px!important;background:#f8faff;overflow:hidden}
.customer-info-logo-v261 img{width:100%;height:100%;object-fit:contain}
.customer-info-main-v261{min-width:0;display:grid;gap:7px}.customer-info-main-v261 h1{font-size:24px;color:#0a2a7a;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.customer-info-main-v261 .method-pill{justify-self:start;margin:0}.customer-info-phone-v261{justify-self:start;font-size:20px!important}
.customer-info-meta-v261{display:flex;align-items:center;gap:9px;color:#657187;font-size:14px}.customer-info-meta-v261 img{width:22px;height:22px;object-fit:contain}
.customer-info-main-v261 p{margin:0;color:#6a7587;font-size:13px}.customer-info-actions-v261{display:flex;flex-direction:column;align-items:center;gap:12px}
.multi-order-svg-v261{display:grid!important;place-items:center}.multi-order-svg-v261 img{width:36px;height:36px;object-fit:contain}
.qr-customer-btn-v261{width:40px;height:40px;border:1px solid #d5deef;background:#f6f9ff;color:#0a2a7a;border-radius:12px;font-weight:900}
.template-download-btn{display:flex;justify-content:center;margin-bottom:12px}.bulk-import-card{max-width:600px}
.public-survey{min-height:100vh;background:#f3f6fb;padding:22px;display:grid;place-items:start center}.public-survey-card{width:min(100%,620px);background:#fff;border-radius:24px;padding:24px;box-shadow:0 14px 36px rgba(25,45,80,.12)}
.public-survey-card>img{height:48px;object-fit:contain}.public-survey-card h1{color:#0a2a7a}.survey-info{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;background:#f6f8fc;padding:14px;border-radius:14px;margin:14px 0}
.public-survey-card form{display:grid;gap:16px}.survey-rating{border:1px solid #e1e7f0;border-radius:14px;padding:12px}.survey-rating legend{font-weight:800;color:#293957;padding:0 5px}
.survey-rating div{display:flex;gap:8px}.survey-rating input{position:absolute;opacity:0}.survey-rating span{font-size:34px;color:#c8cfda;cursor:pointer}.survey-rating input:checked~span{color:#f5ad19}
.survey-confirm{display:flex!important;align-items:flex-start!important;gap:10px!important}.survey-confirm input{width:20px;height:20px;margin-top:2px}.survey-success{text-align:center;padding:28px}.survey-success strong{font-size:24px;color:#0a2a7a}
@media(max-width:640px){.customer-info-card-v261{grid-template-columns:96px minmax(0,1fr) 42px;gap:12px;padding:14px}.customer-info-logo-v261{width:96px!important;height:96px!important;min-width:96px}.customer-info-main-v261 h1{font-size:18px}.customer-info-phone-v261{font-size:16px!important}.customer-info-meta-v261{font-size:12px}.customer-info-meta-v261 img{width:18px;height:18px}.customer-info-actions-v261{gap:8px}.multi-order-svg-v261 img{width:30px;height:30px}}

/* V2.6.2 card overlap correction */
.customer-info-card-v261{grid-template-columns:124px minmax(0,1fr) 46px!important;gap:18px!important;align-items:center!important}
.customer-info-logo-v261{width:124px!important;height:124px!important;min-width:124px!important}
.customer-info-main-v261{overflow:hidden!important}.customer-info-main-v261 h1{white-space:normal!important;line-height:1.15!important}
.customer-info-actions-v261{align-self:center!important}.qr-customer-btn-v261{display:none!important}
@media(max-width:640px){
 .customer-info-card-v261{grid-template-columns:88px minmax(0,1fr) 38px!important;gap:10px!important;padding:14px!important}
 .customer-info-logo-v261{width:88px!important;height:88px!important;min-width:88px!important}
 .customer-info-main-v261 h1{font-size:16px!important;line-height:1.12!important}
 .customer-info-phone-v261{font-size:15px!important}
 .customer-info-meta-v261{font-size:12px!important;line-height:1.25!important}
 .customer-info-main-v261 .method-pill{font-size:11px!important;padding:6px 11px!important}
}
/* V2.6.2 QR page */
.survey-business-name{font-size:clamp(28px,8vw,44px)!important;line-height:1.08!important;word-break:break-word;margin:18px 0!important;text-align:left!important}
.survey-info{grid-template-columns:max-content minmax(0,1fr)!important;align-items:start!important}
.star-row{display:flex!important;gap:8px!important}
.star-row button{border:0;background:transparent;padding:0;font-size:42px;color:#c8cfda;line-height:1;cursor:pointer}
.star-row button.active{color:#f2ad2d}
.feedback-label,.feedback-label textarea{width:100%!important;box-sizing:border-box!important}
.feedback-label textarea{min-height:160px!important}
.signature-field{border:1px solid #dfe6f0;border-radius:16px;padding:14px}
.signature-field legend{font-weight:800;color:#24385f;padding:0 6px}
#signatureCanvas{display:block;width:100%;height:150px;border:1px dashed #aab5c7;border-radius:12px;background:#fff;touch-action:none;margin-bottom:10px}

/* V2.6.3 hotfix */
.star-row button{appearance:none!important;-webkit-appearance:none!important}
.star-row button.active{color:#f2ad2d!important}
.feedback-label{display:block!important;width:100%!important;max-width:none!important}
.feedback-label textarea{display:block!important;width:100%!important;max-width:none!important;min-height:190px!important;box-sizing:border-box!important}
.day.selected .dots{position:absolute!important;left:50%!important;bottom:5px!important;transform:translateX(-50%)!important;display:flex!important;z-index:4!important}
.day.selected .dot{box-shadow:0 0 0 2px rgba(255,255,255,.95)!important}
.installer-panel .row-actions{display:flex!important;flex-wrap:wrap!important;gap:8px!important}

/* V2.6.4 */
.dot.walk-in{background:var(--orange)!important}
.day{position:relative}
.day .dots{min-height:7px}
.day.selected .dot{display:block!important;opacity:1!important}
.star-row button.active{color:#f2ad2d!important}
.star-row button:not(.active){color:#c8cfda!important}
.feedback-label{grid-column:1/-1!important}
.feedback-label textarea{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:210px!important}

/* V2.6.5 */
.star-row{display:flex!important;gap:8px!important}
.star-row button{color:#C8CFDA!important;background:transparent!important;border:0!important;font-size:42px!important;line-height:1!important;padding:2px!important}
.star-row button.active{color:#F2AD2D!important}
.feedback-label{display:block!important;width:100%!important;grid-column:1/-1!important}
.feedback-label textarea{display:block!important;width:100%!important;max-width:none!important;min-height:220px!important;box-sizing:border-box!important}
.day .dots{display:flex!important;justify-content:center!important;align-items:center!important;gap:3px!important;min-height:8px!important}
.dot.walk-in{background:var(--orange)!important}
.day.selected .dots{bottom:3px!important}

/* V2.6.8 Bulk PDF Invoice */
.pdf-import-row{background:#fff;border:1px solid #dde4ef;border-radius:16px;padding:14px;margin:12px 0}
.pdf-import-row.duplicate{border-color:#f3b65c;background:#fffaf1}.pdf-import-row.failed{border-color:#efb4b4;background:#fff5f5}
.pdf-import-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.pdf-import-head span{font-size:12px;font-weight:800;color:#64748b}
.pdf-import-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pdf-import-grid label{font-size:12px;font-weight:700;color:#526079}.pdf-import-grid .full{grid-column:1/-1}
.pdf-import-grid input,.pdf-import-grid select{display:block;width:100%;margin-top:5px}
@media(max-width:640px){.pdf-import-grid{grid-template-columns:1fr}.pdf-import-grid .full{grid-column:auto}}

/* V2.6.9 */
.pdf-import-grid textarea{
 display:block;
 width:100%;
 margin-top:5px;
 min-height:150px;
 resize:vertical;
 box-sizing:border-box;
}

/* V2.7.1 Multiple Packages */
.package-qty-chip{margin-bottom:8px}.package-qty-chip .stepper{flex-shrink:0}

/* V2.7.2 Clean Multiple Order Button */
.multi-order-icon,
.multi-order-svg-v261{
 background:#FFFFFF!important;
 box-shadow:none!important;
 border:1px solid #E6EAF1!important;
}
.multi-order-icon img,
.multi-order-svg-v261 img{
 background:transparent!important;
}

/* V2.8.0 */
.settings-edit-modal,.payroll-settings-modal{width:min(92vw,620px);max-height:88vh;overflow:auto}
.modal-action-stack{display:grid;gap:10px;margin-top:14px}.modal-action-stack .btn{width:100%}
.payroll-history-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;margin-bottom:8px}.payroll-history-row .setting-row{margin:0}.payroll-delete{height:42px}
.professional-payslip{width:min(94vw,820px);max-height:92vh;overflow:auto}
.payslip-company-head{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;padding-bottom:18px;border-bottom:2px solid #1a2438}
.payslip-wordmark{font-size:42px;font-weight:900;color:#0A2A7A;line-height:1}
.payslip-company-head h3{margin:0 0 6px}.payslip-company-head small{line-height:1.55;color:#62718a}
.payslip-employee-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;padding:18px 0}.payslip-employee-grid div{display:grid;gap:4px}.payslip-employee-grid span{font-size:12px;color:#68758b;font-weight:800;text-transform:uppercase}.payslip-employee-grid strong{font-size:15px}
.payslip-columns{display:grid;grid-template-columns:1fr 1fr;border:1px solid #dbe1ea}.payslip-columns section+section{border-left:1px solid #dbe1ea}.payslip-columns h4{margin:0;padding:10px 14px;background:#eef3ff;color:#0A2A7A}
.payslip-line,.payslip-subtotal{display:flex;justify-content:space-between;gap:16px;padding:9px 14px;border-top:1px solid #edf0f5}.payslip-subtotal{font-weight:900;border-top:2px solid #cdd5e2}
@media(max-width:640px){.payslip-columns{grid-template-columns:1fr}.payslip-columns section+section{border-left:0;border-top:1px solid #dbe1ea}.payslip-employee-grid{grid-template-columns:1fr}}

/* V2.8.1 */
.payslip-logo-img{width:150px;max-width:36%;height:auto;object-fit:contain;align-self:start}
.payslip-employee-grid{gap:7px 20px!important;padding:12px 0!important}
.payslip-payment-to{margin:14px 0;border:1px solid #dbe1ea;border-radius:12px;overflow:hidden}
.payslip-payment-to h4{margin:0;padding:9px 12px;background:#eef3ff;color:#0A2A7A}
.payslip-payment-to div{display:flex;justify-content:space-between;gap:16px;padding:8px 12px;border-top:1px solid #edf0f5}
.payslip-payment-to span{color:#68758b;font-weight:700}

/* V2.8.2 Claim Workflow */
.claim-modal-card,.claim-detail-card{width:min(92vw,620px);max-height:88vh;overflow:auto}
.claim-release-modal,.payroll-generate-modal{width:min(94vw,720px);max-height:90vh;overflow:auto}
.claim-select-list{display:grid;gap:8px;max-height:48vh;overflow:auto;margin:12px 0}
.claim-check-row{display:flex;align-items:flex-start;gap:12px;padding:12px;border:1px solid #dce3ee;border-radius:12px;background:#fff}
.claim-check-row input{margin-top:4px;transform:scale(1.2)}
.claim-check-row span{display:grid;gap:3px}.claim-check-row small{color:#68758b}
.claim-release-total{display:flex;justify-content:space-between;align-items:center;padding:12px 0;font-size:16px}
.payroll-hero-actions{display:flex;gap:8px;flex-wrap:wrap}

/* V2.8.3 Claim Receipt Auto Fill */
.claim-smart-import{margin-bottom:14px}
.claim-smart-import .btn{display:inline-flex;align-items:center;justify-content:center}
.claim-smart-import input[type="file"]{display:none}
#claimReadProgress{display:block;margin-top:6px;color:#64748b;font-size:12px}

/* V2.8.4 */
.claim-admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.customer-name-label{display:grid;gap:8px;margin-top:14px}
.public-survey .feedback-label textarea{min-height:130px!important;height:130px!important}
.public-survey .survey-business-name{font-size:clamp(30px,8vw,48px)!important;line-height:1.02!important;margin-bottom:20px!important}

/* V2.8.6 Claim Summary */
.claim-summary-preview{width:min(94vw,760px);max-height:92vh;overflow:auto}
.claim-summary-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.claim-summary-meta>div{padding:12px;border:1px solid #dfe6f1;border-radius:12px;display:grid;gap:4px}
.claim-summary-meta span{font-size:12px;color:#68758b;font-weight:700;text-transform:uppercase}
.claim-summary-table{border:1px solid #dbe3ef;border-radius:14px;overflow:hidden}
.claim-summary-head,.claim-summary-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center}
.claim-summary-head{padding:12px 14px;background:#eef3ff;color:#0A2A7A;font-weight:800}
.claim-summary-row{padding:12px 14px;border-top:1px solid #e7ebf2}
.claim-summary-row>div{display:grid;gap:3px}.claim-summary-row small{color:#68758b}
.claim-summary-totals{margin-top:14px;border-radius:14px;background:#eef3ff;padding:12px 14px}
.claim-summary-totals>div{display:flex;justify-content:space-between;gap:18px;padding:7px 0}
.claim-summary-totals>div:first-child{font-size:19px;border-bottom:1px solid #d4def1;padding-bottom:10px}
.claim-summary-actions{display:grid;gap:9px;margin-top:14px}
@media(max-width:640px){.claim-summary-meta{grid-template-columns:1fr}.claim-summary-preview{width:94vw}}

/* V2.8.7 */
.claim-list-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px}.claim-select-box{width:22px;height:22px;margin-left:6px}.claim-card-row{width:100%}.claim-name-amount{color:#0A2A7A!important}.claim-status{font-weight:800}.claim-status.status-pending{color:#D99A00}.claim-status.status-approved{color:#16803A}.claim-status.status-rejected{color:#C93434}.claim-status.status-paid{color:#1769D2}.claim-status.status-payroll{color:#7B3FB5}.bulk-claim-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 4px 14px}.bulk-claim-toolbar>div{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:640px){.bulk-claim-toolbar{align-items:stretch}.bulk-claim-toolbar>div{display:grid;grid-template-columns:1fr 1fr;width:100%}}

/* V2.9.0 claim card width correction */
.claim-list-row:not(:has(.claim-select-box)){grid-template-columns:1fr!important}
.claim-list-row:not(:has(.claim-select-box)) .claim-card-row{grid-column:1/-1;width:100%!important}
.claim-list-row .setting-row{min-width:0;width:100%}

/* V2.9.0 Time & Attendance */
.second-location-staff{display:grid;gap:8px;padding:12px;border:1px solid #dfe6f1;border-radius:12px}
.attendance-stat-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.attendance-report-controls{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.attendance-report-controls>*{min-width:180px;flex:1}
.attendance-month-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.attendance-month-summary>div{padding:12px;border-radius:12px;background:#eef3ff;display:grid;gap:4px}.attendance-month-summary span{font-size:12px;color:#68758b}.attendance-month-summary strong{color:#0A2A7A;font-size:18px}
.attendance-report-row{display:grid;grid-template-columns:1fr auto;gap:14px;padding:13px 2px;border-bottom:1px solid #e7ebf2}.attendance-report-row>div:first-child{display:grid;gap:4px}.attendance-report-row small{color:#68758b}.attendance-report-numbers{display:grid;text-align:right;gap:3px;font-weight:700}.attendance-report-numbers .positive{color:#16803A}.attendance-report-numbers .negative{color:#C93434}
.ot-summary{display:flex;justify-content:space-between;padding:12px;border-radius:12px;background:#eef3ff;margin-bottom:12px}.ot-summary strong{color:#0A2A7A;font-size:20px}
@media(max-width:720px){.attendance-stat-grid{grid-template-columns:repeat(2,1fr)}.attendance-month-summary{grid-template-columns:1fr}.attendance-report-row{grid-template-columns:1fr}.attendance-report-numbers{text-align:left;grid-template-columns:repeat(3,1fr);font-size:12px}}

/* V2.9.1 Attendance */
.attendance-staff-setting{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.staff-location-btn{white-space:nowrap}
.attendance-selfie-modal{width:min(92vw,520px)}
.camera-capture-box{display:flex;align-items:center;justify-content:center;min-height:100px;border:2px dashed #9eb0cf;border-radius:14px;background:#f5f8ff;color:#0A2A7A;font-weight:800;cursor:pointer;margin:12px 0}
.camera-capture-box input{display:none}
.attendance-selfie-preview{display:block;width:100%;max-height:320px;object-fit:cover;border-radius:14px;margin:10px 0}
.attendance-record-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.timeslip-status{font-weight:800}
.timeslip-status.status-pending{color:#D99A00}
.timeslip-status.status-approved{color:#16803A}
.timeslip-status.status-rejected{color:#C93434}
.attendance-record-modal{width:min(92vw,620px);max-height:90vh;overflow:auto}
@media(max-width:640px){.attendance-staff-setting{grid-template-columns:1fr}.staff-location-btn{width:100%}.modal-bg:has(.attendance-selfie-modal),.modal-bg:has(.ot-reason-modal),.modal-bg:has(.attendance-record-modal){align-items:center!important}}

/* V2.9.2 */
.attendance-more-btn{border:0;background:#eef3ff;color:#0A2A7A;border-radius:10px;width:42px;height:42px;font-size:24px;font-weight:800}
.attendance-action-menu{position:fixed;z-index:99999;background:#fff;border:1px solid #dce3ef;border-radius:12px;box-shadow:0 12px 36px rgba(15,35,70,.18);padding:6px}
.attendance-action-menu button{border:0;background:transparent;padding:12px 14px;font-weight:800}
.attendance-action-menu button.danger{color:#b42318}
.timeslip-apply-modal{width:min(92vw,620px);max-height:90vh;overflow:auto}
.profile-photo,.profile-initials{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;object-fit:cover;background:#edf2ff;color:#0A2A7A;font-weight:800}
.profile-photo.normal,.profile-initials.normal{width:44px;height:44px}
.profile-photo.large,.profile-initials.large{width:110px;height:110px;font-size:34px}
.profile-photo-preview{display:flex;justify-content:center;margin:8px 0 14px}
.profile-photo-upload,.user-profile-photo-field label.btn{display:flex;justify-content:center}
.profile-photo-upload input,.user-profile-photo-field input[type=file]{display:none}
.profile-photo-modal{width:min(92vw,520px);display:grid;gap:10px}
.user-profile-photo-field{display:grid;gap:8px}
.avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}

/* V2.9.3 Owner Profile + Round Crop */
.profile-photo,
.profile-initials,
.profile-photo-preview{
  overflow:hidden;
  border-radius:50%;
}
.profile-photo{
  aspect-ratio:1/1;
  object-fit:cover!important;
  object-position:center top!important;
}
.profile-photo-preview{
  width:120px;
  height:120px;
  margin-left:auto;
  margin-right:auto;
  background:#edf2ff;
  display:flex;
  align-items:center;
  justify-content:center;
}
.profile-photo-preview .profile-photo.large,
.profile-photo-preview .profile-initials.large{
  width:100%!important;
  height:100%!important;
  border-radius:50%!important;
}
.avatar{
  overflow:hidden!important;
  border-radius:50%!important;
}
.avatar-photo-frame{
  display:block;
  width:100%;
  height:100%;
  border-radius:50%;
  overflow:hidden;
}
.avatar-photo-frame img{
  display:block;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center top!important;
  border-radius:50%!important;
}
/* V2.9.4 Profile Crop Hotfix */
.avatar,.avatar-photo-frame,.profile-photo-preview,.profile-photo,.profile-initials{padding:0!important;margin:0;box-sizing:border-box}
.avatar{position:relative;width:54px!important;height:54px!important;min-width:54px!important;min-height:54px!important;aspect-ratio:1/1!important;border-radius:50%!important;overflow:hidden!important;background:#edf2ff}
.avatar-photo-frame{position:absolute;inset:0;width:100%!important;height:100%!important;aspect-ratio:1/1!important;border-radius:50%!important;overflow:hidden!important}
.avatar-photo-frame img,.avatar img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important;object-position:center 20%!important;transform:scale(1.16);transform-origin:center;border-radius:0!important}
.profile-photo-preview{position:relative;width:120px!important;height:120px!important;min-width:120px!important;min-height:120px!important;aspect-ratio:1/1!important;border-radius:50%!important;overflow:hidden!important;background:#edf2ff}
.profile-photo-preview .profile-photo.large{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important;object-position:center 20%!important;transform:scale(1.16);transform-origin:center;border-radius:0!important}
.profile-photo-preview .profile-initials.large{width:100%!important;height:100%!important;border-radius:50%!important}
.profile-photo.large{aspect-ratio:1/1!important}

/* V2.9.5 Notification Center */
.notification-btn{position:relative}
.notification-bell{font-size:20px;line-height:1}
.notification-badge{position:absolute;right:-4px;top:-5px;min-width:19px;height:19px;padding:0 5px;border-radius:12px;background:#d92d20;color:#fff;font-size:10px;display:flex;align-items:center;justify-content:center;border:2px solid #fff}
.notification-center{width:min(94vw,680px);max-height:88vh;overflow:hidden;display:flex;flex-direction:column}
.notification-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.notification-list{overflow:auto;display:grid;gap:8px}
.notification-item{width:100%;display:grid;grid-template-columns:9px 1fr;gap:10px;text-align:left;border:1px solid #e4e8f0;border-radius:14px;padding:12px;background:#fff}
.notification-item i{width:9px;height:100%;min-height:54px;border-radius:8px;background:#98a2b3}
.notification-item span{display:grid;gap:3px}
.notification-item strong{color:#102a56}
.notification-item small{color:#475467}
.notification-item em{font-style:normal;font-size:11px;color:#667085}
.notification-item.unread{box-shadow:0 0 0 2px rgba(10,42,122,.10);background:#f8faff}
.notification-item.critical i{background:#d92d20}
.notification-item.action i{background:#f79009}
.notification-item.info i{background:#1570ef}

/* V2.9.6 modern header */
.clean-header-actions{display:flex;align-items:center;gap:10px}
.header-icon-btn{position:relative;width:42px;height:42px;min-width:42px;border:0;background:transparent;border-radius:12px;display:flex;align-items:center;justify-content:center;padding:0;color:#0A2A7A}
.header-icon-btn:active{background:#eef3ff}
.header-icon-btn svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.compact-avatar{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important}
.notification-badge{right:-2px!important;top:-2px!important}
.push-status-note{font-size:12px;color:#667085;background:#f8fafc;border:1px solid #e4e7ec;border-radius:10px;padding:9px 10px;margin-bottom:10px}
@media(max-width:420px){.clean-header-actions{gap:7px}.header-icon-btn{width:40px;height:40px;min-width:40px}.compact-avatar{width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important}}

/* V2.9.8 compact Notification Center */
.compact-notification-center{padding-top:18px}
.notification-head{align-items:flex-start}
.notification-head-actions{display:flex;align-items:center;gap:6px}
.notification-more{width:42px;height:42px;border:0;background:#f2f5fb;color:#0A2A7A;border-radius:12px;font-size:26px;font-weight:800;line-height:1}
.notification-options-menu{position:fixed;z-index:100000;background:#fff;border:1px solid #dde3ee;border-radius:13px;box-shadow:0 14px 40px rgba(16,42,86,.18);padding:6px;min-width:210px;display:grid}
.notification-options-menu button{border:0;background:transparent;text-align:left;padding:12px 13px;border-radius:9px;color:#102a56;font-weight:750}
.notification-options-menu button:active{background:#f1f5fb}
.notification-options-menu small{padding:8px 13px 7px;color:#667085;border-top:1px solid #eef1f5}
.compact-notification-center .notification-list{margin-top:8px}
