:root{
  --navy:#0b1b32;--navy-2:#10233f;--navy-3:#173455;--green:#4fff91;--green-dark:#1fd66b;
  --bg:#dfe9e7;--card:#edf3f1;--surface:#f3f7f5;--surface-2:#e6eeec;--input:#f7faf8;--text:#12243b;--muted:#647585;--border:#c5d3d0;--danger:#d64545;
  --yellow:#f2c94c;--orange:#f2994a;--blue:#2f80ed;--purple:#9b51e0;--shadow:0 10px 32px rgba(7,20,38,.10);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);
}
*{box-sizing:border-box}body{margin:0;background:var(--bg);min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.loading-screen{position:fixed;inset:0;background:linear-gradient(145deg,#071426,#102c4d);display:grid;place-items:center;gap:20px;z-index:100}.loading-screen img{width:min(430px,78vw)}.spinner{width:42px;height:42px;border:4px solid rgba(255,255,255,.22);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.auth-screen{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);background:linear-gradient(145deg,#071426,#102c4d);padding:5vw;gap:5vw;align-items:center}.auth-brand{color:#fff}.auth-brand img{width:min(500px,90%)}.auth-brand h1{font-size:clamp(36px,5vw,72px);line-height:1.03;margin:42px 0 18px}.auth-brand p{font-size:clamp(17px,2vw,24px);color:#c6d3e0;max-width:780px}.auth-card{background:var(--card);padding:34px;border-radius:24px;box-shadow:0 24px 80px rgba(0,0,0,.28);max-width:560px;width:100%}.tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:26px}.tab{background:transparent;border:0;padding:14px 18px;font-weight:700;color:var(--muted);border-bottom:3px solid transparent}.tab.active{color:var(--navy);border-color:var(--green-dark)}
.stack{display:grid;gap:18px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{display:grid;gap:7px;font-weight:700;font-size:14px}label small{font-weight:400;color:var(--muted)}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:10px;padding:11px 12px;color:var(--text);background:var(--input);outline:none}textarea{min-height:96px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#65d995;box-shadow:0 0 0 3px rgba(79,255,145,.15)}
.btn{border:0;border-radius:10px;padding:11px 16px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn.primary{background:var(--green);color:var(--navy)}.btn.primary:hover{background:#74ffaa}.btn.secondary{background:#e8edf2;color:var(--navy)}.btn.danger{background:#ffe3e3;color:#a92727}.btn.flash{background:linear-gradient(135deg,#ffe66b,#f2994a);color:#3b2800;box-shadow:0 5px 18px rgba(242,153,74,.28)}.btn.small{padding:7px 10px;font-size:13px}.link-btn{border:0;background:transparent;color:#1565c0;font-weight:700;padding:4px}.icon-button{border:0;background:transparent;width:42px;height:42px;border-radius:10px;font-size:23px}.icon-button:hover{background:#e8edf2}.alert{padding:12px 14px;border-radius:10px;margin-bottom:16px}.alert.warning{background:#fff4cf;color:#604900;border:1px solid #f0d67b}.alert.danger{background:#fee7e7;color:#852626}.alert.info{background:#e7f2ff;color:#1c4c7c}
.app-shell{display:grid;grid-template-columns:270px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--navy),#071426);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:30}.logo-link{padding:20px 18px 13px;display:block}.logo-link img{width:100%;max-height:58px}.sidebar nav{overflow:auto;padding:8px 12px;display:grid;gap:4px}.nav-section{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:#8ea2b9;padding:16px 12px 7px}.nav-button{width:100%;display:flex;align-items:center;gap:11px;border:0;border-radius:10px;background:transparent;color:#dce6ef;text-align:left;padding:10px 12px;font-weight:650}.nav-button:hover,.nav-button.active{background:#163757;color:#fff}.nav-button.active{box-shadow:inset 3px 0 0 var(--green)}.nav-icon{width:23px;text-align:center}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding:12px}.tenant-pill{padding:10px 12px;background:rgba(255,255,255,.08);border-radius:10px;margin-bottom:6px}.tenant-pill strong,.tenant-pill span{display:block}.tenant-pill span{font-size:12px;color:#9fb1c4;margin-top:3px}
.app-column{min-width:0}.topbar{height:83px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px;padding:13px 24px;position:sticky;top:0;z-index:20}.topbar h1{margin:0;font-size:24px}.topbar p{margin:2px 0 0;color:var(--muted);font-size:13px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:7px}.top-actions .icon-button{position:relative}.top-actions #notification-badge:not(:empty){position:absolute;right:3px;top:3px;background:var(--danger);color:#fff;border-radius:999px;font-size:10px;min-width:17px;height:17px;display:grid;place-items:center}.content{padding:24px;max-width:1700px;margin:0 auto}.mobile-nav{display:none}
.page-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.page-toolbar .search-box{min-width:250px;max-width:520px;flex:1}.page-toolbar .spacer{flex:1}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:18px}.card h2,.card h3{margin-top:0}.grid{display:grid;gap:16px}.grid.cards{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{position:relative;overflow:hidden}.metric::after{content:"";position:absolute;width:100px;height:100px;border-radius:50%;right:-35px;bottom:-45px;background:rgba(79,255,145,.18)}.metric .label{color:var(--muted);font-weight:700;font-size:13px}.metric .value{font-size:32px;font-weight:850;margin:6px 0}.metric .detail{font-size:12px;color:var(--muted)}
.table-card{background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.table-scroll{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th{background:var(--surface-2);text-transform:uppercase;letter-spacing:.4px;font-size:11px;color:#657386;text-align:left;padding:12px;border-bottom:1px solid var(--border);position:sticky;top:0}.data-table td{padding:12px;border-bottom:1px solid #edf1f4;vertical-align:top}.data-table tbody tr:hover{background:#e9f1ef}.row-title{font-weight:800}.row-sub{font-size:12px;color:var(--muted);margin-top:3px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;background:#e8edf2;color:#3c4e61}.badge.open,.badge.blue{background:#dcecff;color:#15549c}.badge.completed,.badge.green,.badge.paid{background:#daf7e5;color:#17693a}.badge.dead,.badge.red,.badge.overdue,.badge.expired{background:#ffe2e2;color:#9d2c2c}.badge.quote,.badge.yellow{background:#fff2bf;color:#775b00}.badge.po,.badge.orange{background:#ffe5ce;color:#8c4207}.badge.purple{background:#eee2ff;color:#5b2a98}.actions{display:flex;gap:6px;flex-wrap:wrap}.empty{text-align:center;padding:55px 25px;color:var(--muted)}
.modal{border:0;padding:0;border-radius:16px;box-shadow:0 30px 90px rgba(0,0,0,.35);width:min(860px,calc(100vw - 28px));max-height:92vh}.modal::backdrop{background:rgba(4,15,28,.66);backdrop-filter:blur(3px)}.modal-frame{margin:0}.modal-frame>header{display:flex;align-items:center;padding:17px 20px;border-bottom:1px solid var(--border)}.modal-frame>header h2{margin:0;flex:1}.modal-frame>header .icon-button{font-size:29px}.modal-frame>#modal-body{padding:20px;overflow:auto;max-height:calc(92vh - 145px)}.modal-frame>footer{display:flex;gap:10px;justify-content:flex-end;padding:14px 20px;border-top:1px solid var(--border);background:var(--surface-2)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid .full{grid-column:1/-1}.form-section{grid-column:1/-1;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:800;padding-top:6px;border-bottom:1px solid var(--border);padding-bottom:8px}
.toast-region{position:fixed;right:18px;bottom:18px;display:grid;gap:9px;z-index:100}.toast{background:#10233f;color:#fff;padding:12px 16px;border-radius:11px;box-shadow:var(--shadow);min-width:250px;max-width:420px}.toast.success{border-left:4px solid var(--green)}.toast.error{border-left:4px solid #ff6b6b}.toast.warning{border-left:4px solid var(--yellow)}
.job-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:17px}.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px}.timeline{display:grid;gap:10px}.timeline-item{border-left:3px solid var(--green-dark);padding:8px 12px;background:var(--surface);border-radius:0 10px 10px 0}.timeline-item time{font-size:11px;color:var(--muted)}.line-items{width:100%;border-collapse:collapse}.line-items td,.line-items th{padding:8px;border-bottom:1px solid var(--border);text-align:left}.line-items input{min-width:80px;padding:7px}.totals{margin-left:auto;max-width:330px}.totals div{display:flex;justify-content:space-between;padding:6px 0}.totals .grand{font-weight:900;font-size:18px;border-top:2px solid var(--navy)}
.scheduler{display:grid;grid-template-columns:220px repeat(var(--staff-count,3),minmax(190px,1fr));overflow:auto;border:1px solid var(--border);border-radius:13px;background:var(--card)}.scheduler-head,.scheduler-cell{padding:10px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-height:58px}.scheduler-head{font-weight:800;background:#f6f8fa;position:sticky;top:0}.scheduler-job{padding:8px;border-radius:9px;background:#dcecff;border-left:4px solid var(--blue);margin-bottom:6px;font-size:13px}.scheduler-job.completed{background:#daf7e5;border-color:#27ae60}.scheduler-job.dead{background:#ffe2e2;border-color:#eb5757}.compliance-list{display:grid;gap:8px}.compliance-item{display:flex;gap:12px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:10px}.compliance-item .who{flex:1}.compliance-item strong{display:block}.settings-nav{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}.settings-nav button.active{background:var(--navy);color:#fff}.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.check-option{display:flex;gap:8px;align-items:flex-start;padding:10px;border:1px solid var(--border);border-radius:10px}.check-option input{width:auto;margin-top:3px}
@media(max-width:1000px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-285px;width:270px;transition:left .2s}.sidebar.open{left:0}.grid.three{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr}.topbar{padding:12px 15px}.content{padding:16px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;height:67px;background:var(--surface);border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(5,1fr);z-index:25;padding-bottom:env(safe-area-inset-bottom)}.mobile-nav button{border:0;background:var(--surface);display:grid;place-items:center;font-size:11px;color:#526274}.mobile-nav button span{font-size:20px}.mobile-nav button.active{color:#0b7040;font-weight:800}.content{padding-bottom:91px}}
@media(max-width:760px){.auth-screen{grid-template-columns:1fr;padding:20px;align-content:center}.auth-brand{display:none}.auth-card{padding:24px}.topbar h1{font-size:20px}.topbar p{display:none}.top-actions #global-search-btn{display:none}.top-actions .flash{font-size:0;padding:11px}.top-actions .flash::after{content:'⚡';font-size:20px}.grid.two,.grid.three{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full,.form-section{grid-column:auto}.page-toolbar .search-box{min-width:100%;order:10}.modal-frame>#modal-body{padding:16px}.two-col{grid-template-columns:1fr}.card{padding:14px}.data-table{min-width:650px}}

/* v1.0.8: All platform-controlled wording is shown in full uppercase.
   User-entered information keeps the exact capitalisation entered by the user. */
button,.tab,.nav-section,.sidebar nav .nav-button,.mobile-nav button,.form-section,.badge,
.data-table th,.line-items th,.metric .label,.metric .detail,.settings-nav button,
.empty,.topbar h1,.topbar p,label,.system-text,.auth-brand h1,.auth-brand p,
.auth-card small,.card h2:not(.user-entered),.card h3:not(.user-entered),
.card p:not(.user-entered),.alert,.totals span,.scheduler-head:not(.user-entered),
.quick-customer-header h3,.quick-customer-header p{
  text-transform:uppercase;
}
input::placeholder,textarea::placeholder{ text-transform:uppercase; }
.user-entered,label input,label textarea,label select,.data-table td,.row-title,.row-sub:not(.system-text){
  text-transform:none!important;
}
.relation-create-button{justify-self:start;margin-top:2px}
.quick-customer-panel{grid-column:1/-1;border:1px solid #9eddb9;background:#f1fff6;border-radius:13px;padding:16px;margin-top:4px}
.quick-customer-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.quick-customer-header>div{flex:1}.quick-customer-header h3{margin:0 0 4px}.quick-customer-header p{margin:0;color:var(--muted);font-size:13px}
.quick-customer-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}
@media(max-width:760px){.quick-customer-panel{grid-column:auto;padding:13px}.quick-customer-actions{position:sticky;bottom:-16px;background:#f1fff6;padding:10px 0 2px}}

/* v1.0.10: separate, reliable customer creation dialog */
.quick-customer-dialog{width:min(900px,calc(100vw - 28px));max-height:94vh}
.quick-customer-dialog .quick-customer-body{padding:20px;overflow:auto;max-height:calc(94vh - 145px)}
.quick-customer-dialog .quick-customer-body>p{margin:0 0 16px;color:var(--muted);font-size:13px;font-weight:700}
.quick-customer-dialog footer{display:flex;gap:10px;justify-content:flex-end;padding:14px 20px;border-top:1px solid var(--border);background:var(--surface-2)}

/* v1.0.10: clearer job workspace and staff-row assignment board */
.job-editor-modal .modal-frame>#modal-body{padding:0;background:#eef2f6;max-height:calc(94vh - 145px)}
.job-workspace-form{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(280px,.8fr);gap:16px;padding:16px;align-items:start}
.job-workspace-main{display:grid;gap:14px}.job-workspace-side{position:sticky;top:0}
.job-editor-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:17px;box-shadow:0 5px 18px rgba(7,20,38,.06)}
.job-editor-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding-bottom:12px;margin-bottom:15px}
.job-editor-heading>div{display:flex;align-items:center;gap:10px}.job-editor-heading h3{margin:0}.job-editor-heading>span{font-size:11px;color:var(--muted);max-width:400px;text-align:right;font-weight:700}
.job-editor-step{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:var(--navy);color:var(--green);font-weight:900}
.job-customer-picker{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin-bottom:14px}
.job-create-customer{min-height:43px;white-space:nowrap;box-shadow:0 5px 16px rgba(31,214,107,.2)}
.compact-grid textarea{min-height:78px}.job-control-card{display:grid;gap:13px;border-top:5px solid var(--green)}
.job-number-chip{background:var(--navy);color:#fff;border-radius:11px;padding:13px 14px;font-size:18px;font-weight:900;text-align:center}
.job-number-chip span{color:var(--green)}
.job-live-summary{display:grid;border:1px solid var(--border);border-radius:11px;overflow:hidden}.job-live-summary>div{padding:11px;border-bottom:1px solid var(--border)}.job-live-summary>div:last-child{border-bottom:0}.job-live-summary span{display:block;color:var(--muted);font-size:10px;font-weight:850;margin-bottom:3px}.job-live-summary strong{display:block;font-size:13px;overflow-wrap:anywhere}.job-editor-tip{margin:0;font-size:11px}
.work-day-picker{display:flex;gap:6px;flex-wrap:wrap}.work-day-picker label{display:flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:9px;padding:8px 10px;background:var(--surface)}.work-day-picker input{width:auto}.work-day-picker span{font-size:12px;font-weight:850}
.assignment-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.assignment-date-nav{display:flex;align-items:center;gap:7px}.assignment-date-nav input{width:auto;min-width:150px}
.unassigned-panel{margin-bottom:15px}.assignment-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.assignment-section-heading h3{margin:0}.assignment-section-heading p{margin:4px 0 12px;color:var(--muted);font-size:11px;font-weight:700}.unassigned-job-list{display:flex;gap:9px;overflow:auto;padding-bottom:4px}.unassigned-job-card{min-width:270px;max-width:330px;border:1px solid var(--border);border-left:5px solid var(--blue);border-radius:11px;padding:10px;background:var(--card);display:flex;align-items:center;gap:10px}.unassigned-job-card>div{min-width:0;flex:1}.unassigned-job-card strong,.unassigned-job-card span,.unassigned-job-card small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unassigned-job-card span{font-size:12px;margin-top:3px}.unassigned-job-card small{color:var(--muted);margin-top:3px}.unassigned-job-card.dragging{opacity:.45}
.assignment-board-card{background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.assignment-board-scroll{overflow:auto;max-height:calc(100vh - 315px)}.assignment-board{display:grid;grid-template-columns:190px minmax(1050px,1fr);min-width:1240px;position:relative}.assignment-corner{position:sticky;top:0;left:0;z-index:8;background:var(--navy);color:#fff;padding:13px;border-right:1px solid #29405e}.assignment-time-header{height:47px;position:sticky;top:0;z-index:6;background:var(--navy);color:#fff;border-bottom:1px solid #29405e}.assignment-time-header>div{position:absolute;top:0;bottom:0;transform:translateX(-1px);padding:13px 6px;border-left:1px solid rgba(255,255,255,.18);font-size:11px;font-weight:800}.assignment-staff-cell{position:sticky;left:0;z-index:5;background:var(--surface-2);border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:13px 12px;min-height:82px}.assignment-staff-cell strong,.assignment-staff-cell span{display:block}.assignment-staff-cell span{font-size:11px;color:var(--muted);margin-top:5px;font-weight:700}.staff-timeline{position:relative;min-height:82px;border-bottom:1px solid var(--border);background:linear-gradient(to right,#dfe7e5 0 var(--work-start),var(--surface) var(--work-start) var(--work-end),#dfe7e5 var(--work-end) 100%)}.staff-timeline.not-working{background:repeating-linear-gradient(135deg,#f1f3f5,#f1f3f5 8px,#e8ebee 8px,#e8ebee 16px)}.time-grid-line{position:absolute;top:0;bottom:0;border-left:1px solid #e4e9ee;pointer-events:none}.staff-timeline.drop-ready{outline:3px solid var(--green);outline-offset:-3px;background:#eafff2}.assignment-block{position:absolute;left:var(--left);width:var(--width);top:10px;bottom:10px;min-width:48px;border:0;border-left:5px solid var(--blue);border-radius:9px;background:#dcecff;color:#123f75;text-align:left;padding:7px 8px;overflow:hidden;z-index:3;box-shadow:0 3px 9px rgba(7,20,38,.12)}.assignment-block strong,.assignment-block span,.assignment-block small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assignment-block span{font-size:11px;margin-top:2px}.assignment-block small{font-size:10px;margin-top:3px}.assignment-block.completed{background:#daf7e5;border-color:#27ae60;color:#17693a}.assignment-block.dead{background:#ffe2e2;border-color:#eb5757;color:#8d2727}.assignment-block.awaiting_parts,.assignment-block.awaiting_customer{background:#fff0cf;border-color:var(--orange);color:#80500b}.assignment-block.travelling,.assignment-block.in_progress{background:#dff6ff;border-color:#20a4d8;color:#0d5c78}.assignment-block.leave-block{background:#eee7f7;border-color:var(--purple);color:#573080;z-index:2}.assignment-no-staff{grid-column:1/-1}
@media(max-width:900px){.job-workspace-form{grid-template-columns:1fr}.job-workspace-side{position:static;order:-1}.job-customer-picker{grid-template-columns:1fr}.job-create-customer{width:100%}.job-editor-heading>span{display:none}.assignment-board-scroll{max-height:calc(100vh - 380px)}}
@media(max-width:600px){.job-workspace-form{padding:10px;gap:10px}.job-editor-card{padding:13px}.job-editor-modal{width:calc(100vw - 10px)!important;max-height:98vh}.job-editor-modal .modal-frame>#modal-body{max-height:calc(98vh - 140px)}.assignment-date-nav{width:100%}.assignment-date-nav input{flex:1}.unassigned-job-card{min-width:240px}}

/* v1.0.11: searchable select-or-create customer control */
.customer-select-source{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;margin:0!important;padding:0!important;border:0!important}
.customer-combobox{position:relative;display:block;min-width:0}
.customer-combobox-input{padding-right:42px;background:#f7fbf9;border-color:#b9cfca}
.customer-combobox::after{content:'⌕';position:absolute;right:13px;top:9px;color:var(--navy-3);font-size:20px;pointer-events:none}
.customer-combobox-menu{position:absolute;z-index:70;left:0;right:0;top:calc(100% + 6px);max-height:330px;overflow:auto;background:#f7fafb;border:1px solid #b7c8d0;border-radius:12px;box-shadow:0 18px 42px rgba(7,20,38,.18);padding:6px}
.customer-search-result,.customer-search-create{width:100%;border:0;border-radius:9px;text-align:left;padding:11px 12px;background:transparent;color:var(--text);display:block}
.customer-search-result:hover,.customer-search-result:focus{background:#e4f1ec;outline:none}
.customer-search-result strong,.customer-search-result span{display:block;white-space:normal}
.customer-search-result strong{font-size:14px}.customer-search-result span{font-size:11px;color:var(--muted);margin-top:3px;font-weight:600}
.customer-search-create{margin-top:5px;border-top:1px solid var(--border);border-radius:0 0 8px 8px;color:#0a6539;font-weight:900;background:#e7f7ed}
.customer-search-create:hover,.customer-search-create:focus{background:#d8f2e2;outline:none}
.customer-search-empty{padding:14px 12px;color:var(--muted);font-size:12px;font-weight:800}
.job-customer-picker{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin-bottom:14px}.job-customer-select{width:100%}.job-create-customer{min-height:43px;white-space:nowrap}

/* v1.0.11: softer washed-out Locksmithy surfaces */
:root{
  --bg:#e7edf1;
  --card:#f3f7f8;
  --border:#cbd7de;
  --muted:#627486;
  --shadow:0 8px 25px rgba(7,20,38,.08);
  --surface-soft:#edf3f5;
  --surface-muted:#e3ebef;
  --surface-input:#f7faf9;
}
body,.content{background:var(--bg)}
.topbar,.card,.table-card,.modal,.auth-card,.assignment-board-card,.unassigned-job-card,.job-editor-card{background:var(--card)}
input,select,textarea{background:var(--surface-input)}
.modal-frame>header,.modal-frame>footer,.quick-customer-dialog footer,.mobile-nav,.mobile-nav button{background:var(--surface-soft)}
.modal-frame>#modal-body,.job-editor-modal .modal-frame>#modal-body{background:var(--surface-muted)}
.data-table th,.scheduler-head,.assignment-staff-cell,.work-day-picker label{background:#e8eff2}
.data-table tbody tr:hover{background:#eaf3ef}
.data-table td{border-bottom-color:#dbe4e8}
.timeline-item{background:#eaf1f3}
.quick-customer-body,.quick-customer-panel{background:#edf6f0}
.unassigned-panel,.page-toolbar{background:transparent}
.staff-timeline{background:linear-gradient(to right,#dfe7eb 0 var(--work-start),#f3f7f8 var(--work-start) var(--work-end),#dfe7eb var(--work-end) 100%)}
.staff-timeline.not-working{background:repeating-linear-gradient(135deg,#dfe6e9,#dfe6e9 8px,#d6dfe3 8px,#d6dfe3 16px)}
.assignment-staff-cell{color:var(--text)}
.job-control-card{background:#eef5f2}
.job-live-summary>div{background:var(--surface-2)}
.btn.secondary{background:#dce5ea}
.icon-button:hover{background:#dbe5e9}
@media(max-width:1000px){.customer-combobox-menu{position:fixed;left:12px;right:12px;top:auto;bottom:82px;max-height:min(50vh,390px)}}

/* v1.0.12: guaranteed Job customer search/create control */
@media(max-width:900px){.job-customer-picker{grid-template-columns:1fr}.job-create-customer{width:100%}}

/* v1.0.13: job workspace history, note composer, private file controls and Xero status */
.job-detail-workspace{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(340px,.85fr);gap:16px;align-items:start}
.job-main-column{display:grid;gap:16px;min-width:0}.job-history-column{min-width:0;position:sticky;top:100px;max-height:calc(100vh - 120px)}
.job-history-card{padding:0;overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 120px);background:#edf4f2}
.job-history-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:17px 17px 13px;border-bottom:1px solid var(--border);background:#dfeae7}
.job-history-heading h2{margin:0}.job-history-heading p{margin:4px 0 0;color:var(--muted);font-size:11px;font-weight:800}
.job-note-composer{display:grid;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);background:#e8f1ee}
.job-note-composer textarea{min-height:82px}.note-visible-control{display:flex;align-items:center;gap:8px}.note-visible-control input{width:auto}
.job-history-list{overflow:auto;padding:8px 14px 18px;display:grid;gap:0}
.job-history-item{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;padding:13px 0;border-bottom:1px solid #cfdadd}.job-history-item:last-child{border-bottom:0}
.job-history-icon{width:34px;height:34px;border-radius:10px;background:#d8e5e1;display:grid;place-items:center;font-size:17px}.history-payment .job-history-icon{background:#dff4e6}.history-message .job-history-icon{background:#ddeaf7}.history-time .job-history-icon{background:#e5e2f5}.history-file .job-history-icon{background:#f4ead8}
.job-history-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.job-history-meta strong{font-size:12px;letter-spacing:.2px}.job-history-meta time{font-size:10px;color:var(--muted);white-space:nowrap}
.job-history-actor{font-size:11px;color:#42566b;font-weight:750;margin-top:3px}.job-history-detail,.job-history-message{font-size:13px;line-height:1.42;margin-top:6px;white-space:pre-wrap;overflow-wrap:anywhere}.job-history-message{padding:8px 10px;background:var(--surface-2);border-radius:8px}
.job-history-tags{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:7px}.job-history-tags span{font-size:9px;font-weight:850;border-radius:999px;background:#dce6e9;padding:3px 7px;text-transform:uppercase}.history-file-button{border:0;border-radius:999px;background:var(--navy);color:#fff;font-size:9px;font-weight:850;padding:4px 8px}
.compact-job-summary{gap:12px}.compact-job-summary h3{font-size:12px}.xero-status-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.xero-status-card>div{padding:12px;background:#e5eeec;border:1px solid var(--border);border-radius:10px}.xero-status-card span{display:block;color:var(--muted);font-size:10px;font-weight:850;margin-bottom:4px}.xero-status-card strong{display:block;overflow-wrap:anywhere}
@media(max-width:1100px){.job-detail-workspace{grid-template-columns:1fr}.job-history-column{position:static;max-height:none}.job-history-card{max-height:none}.job-history-list{max-height:600px}}
@media(max-width:600px){.job-history-meta{display:block}.job-history-meta time{display:block;margin-top:3px}.xero-status-card{grid-template-columns:1fr}}


/* V1.0.14 WASHED-OUT LOCKSMITHY SURFACES */
html,body,.app-column,.content{background:var(--bg)}
.card,.table-card,.job-editor-card,.assignment-board-card,.unassigned-job-card,.auth-card,
.modal,.modal-frame,.modal-frame>#modal-body,.compliance-item,.check-option,.xero-status-card>div,
.customer-search-results,.quick-customer-dialog,.job-history-panel,.job-history-list{
  background:var(--card);
}
.topbar,.modal-frame>header,.modal-frame>footer,.mobile-nav,.mobile-nav button,
.data-table th,.scheduler-head,.assignment-staff-cell{background:var(--surface-2)}
input,select,textarea,.customer-combobox-input{background:var(--input)}
.data-table td,.line-items td,.line-items th{background:transparent}
.data-table tbody tr:nth-child(even){background:rgba(255,255,255,.18)}
.data-table tbody tr:hover{background:#dfeae7}
.staff-timeline{background:linear-gradient(to right,#d7e1df 0 var(--work-start),var(--surface) var(--work-start) var(--work-end),#d7e1df var(--work-end) 100%)}
.scheduler,.scheduler-cell{background:var(--card)}
.empty{background:transparent}


/* V1.0.17 QUICK PRICE + DEFINITIVE WASHED BLUE THEME */
:root{
  --bg:#d7e5f0;
  --card:#eaf2f8;
  --surface:#edf5fa;
  --surface-2:#dfeaf2;
  --input:#f1f6fa;
  --border:#9eb3c4;
  --surface-soft:#e4eef5;
  --surface-muted:#dce8f1;
  --surface-input:#f1f6fa;
  --shadow:0 10px 30px rgba(25,57,82,.10);
}
html,body,.app-shell,.app-column{background:#d7e5f0!important}
.app-column{min-height:100vh;background:linear-gradient(145deg,#d2e1ec 0%,#e4eef5 48%,#d5e4ef 100%)!important}
.content{
  background:linear-gradient(145deg,rgba(232,242,249,.96),rgba(216,231,242,.96))!important;
  border:1px solid #6f8da5!important;
  border-radius:18px!important;
  box-shadow:inset 0 0 32px rgba(40,75,103,.18),0 8px 24px rgba(31,61,84,.08)!important;
  min-height:calc(100vh - 111px);
  margin:14px auto 24px;
  width:calc(100% - 28px);
}
.topbar{background:#dce8f1!important;border-bottom-color:#8da6b9!important}
.card,.table-card,.job-editor-card,.assignment-board-card,.unassigned-job-card,.auth-card,.modal-frame,
.compliance-item,.check-option,.job-history-card,.quick-customer-panel,.xero-status-card>div{
  background:#eaf2f8!important;border-color:#a8bbc9!important;
}
.modal-frame>#modal-body,.job-editor-modal .modal-frame>#modal-body{background:#dce8f1!important}
input,select,textarea,.customer-combobox-input{background:#f1f6fa!important;border-color:#9fb4c4!important}
.data-table th,.scheduler-head,.assignment-staff-cell,.modal-frame>header,.modal-frame>footer,.mobile-nav,.mobile-nav button{background:#dce8f1!important}
.data-table tbody tr:nth-child(even){background:rgba(110,143,168,.07)!important}.data-table tbody tr:hover{background:#d4e4ef!important}
.timeline-item,.job-history-message{background:#e1edf5!important}.btn.secondary{background:#d7e4ed!important}.icon-button:hover{background:#cfdee9!important}
.btn.quick-price-top{background:#d7e9f7;color:#123b5b;border:1px solid #82a7c1;box-shadow:0 4px 13px rgba(35,79,111,.12)}.btn.quick-price-top:hover{background:#c8e0f1}
.quick-price-modal .modal-frame>#modal-body{padding:14px;max-height:calc(96vh - 145px)}
.quick-price-workspace{display:grid;grid-template-columns:minmax(420px,.9fr) minmax(600px,1.35fr);gap:14px;align-items:start}
.quick-price-workspace>.card{box-shadow:none}.quick-price-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:13px}.quick-price-title h3{margin:0}.quick-price-title p{margin:4px 0 0;color:var(--muted);font-size:11px;font-weight:750}.quick-price-title>span{font-size:10px;font-weight:850;border-radius:999px;padding:5px 9px;background:#d5e6f2;color:#315b77;white-space:nowrap}
.quick-price-results{margin-top:10px;display:grid;gap:6px;max-height:410px;overflow:auto;padding-right:3px}.quick-price-result{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;width:100%;border:1px solid #b0c2cf;border-radius:10px;background:#edf5fa;color:var(--text);padding:10px;text-align:left}.quick-price-result:hover,.quick-price-result:focus{background:#dcecf6;border-color:#6e96b2;outline:none}.quick-price-result span strong,.quick-price-result span small{display:block}.quick-price-result span small{margin-top:3px;color:var(--muted)}.quick-price-result-price{text-align:right;font-weight:900;white-space:nowrap}.quick-price-result-price small{font-size:9px!important}.quick-price-result>b{font-size:10px;border-radius:8px;padding:6px 8px;background:var(--green);color:var(--navy)}
.quick-price-one-off{border-top:1px solid #afc1ce;margin-top:15px;padding-top:14px}.quick-price-one-off h3{font-size:12px}.quick-price-one-off-grid{display:grid;grid-template-columns:2fr .7fr 1fr 1fr;gap:8px;margin-bottom:10px}.quick-price-one-off-grid label{font-size:10px}.quick-price-one-off-grid input{padding:9px}
.quick-price-basket{min-width:0}.quick-price-table{width:100%;border-collapse:collapse;min-width:680px}.quick-price-table th{font-size:10px;text-align:left;color:#536b7e;background:#dce8f1;padding:9px;border-bottom:1px solid #a7bbc9}.quick-price-table td{padding:9px;border-bottom:1px solid #c4d3de;vertical-align:middle}.quick-price-table td:first-child strong,.quick-price-table td:first-child span,.quick-price-table td:first-child small{display:block}.quick-price-table td:first-child span{font-size:11px;margin-top:2px}.quick-price-table td:first-child small{font-size:9px;color:#416884;margin-top:3px}.quick-price-table input{min-width:90px;padding:8px}.quick-price-remove{color:#9b2f2f}.quick-price-empty{padding:80px 20px}
.quick-price-totals{margin:16px 0 0 auto;max-width:420px;border:1px solid #98afc0;border-radius:12px;background:#dce9f2;padding:12px}.quick-price-totals>div{display:flex;justify-content:space-between;padding:5px 3px}.quick-price-totals span{font-size:11px;font-weight:800;color:#52697a}.quick-price-totals strong{font-size:14px}.quick-price-totals .grand{border-top:2px solid #547791;margin-top:6px;padding-top:10px}.quick-price-totals .grand strong{font-size:22px;color:#123b5b}
.quick-price-job-items{display:grid;gap:5px;padding:12px;border:1px solid #6e96b2;background:#d8e9f4;border-radius:10px}.quick-price-job-items strong{font-size:12px}.quick-price-job-items span{font-size:11px;line-height:1.4;color:#31556f}
@media(max-width:1050px){.quick-price-workspace{grid-template-columns:1fr}.quick-price-results{max-height:300px}.content{width:calc(100% - 18px);margin:9px auto 18px}}
@media(max-width:700px){.top-actions{gap:4px}.top-actions .btn{padding:9px 10px;font-size:11px}.quick-price-one-off-grid{grid-template-columns:1fr 1fr}.quick-price-workspace{display:block}.quick-price-basket{margin-top:12px}.content{border-radius:12px;padding:12px}}


/* v1.0.19: definitive washed-blue application shell, GST pricing and bulk invoice UI */
:root{
  --bg:#d9e8f2;
  --card:#eaf3f8;
  --surface:#e5f0f6;
  --surface-2:#dceaf2;
  --input:#f1f7fa;
  --border:#9fb7c8;
  --muted:#526b7d;
  --shadow:0 10px 28px rgba(20,54,82,.11),inset 0 1px 0 rgba(255,255,255,.48);
}
html{background:#b8cedd}
body{background:linear-gradient(145deg,#c4d9e7 0,#dceaf3 42%,#cddfec 100%);}
.app-shell{background:transparent}
.app-column{margin:8px 8px 8px 0;border:1px solid #597c96;border-radius:17px;overflow:hidden;background:linear-gradient(145deg,#d7e7f1,#e8f2f7 55%,#d6e6f0);box-shadow:inset 0 0 36px rgba(42,83,112,.18),0 9px 30px rgba(7,28,46,.16)}
.content{background:transparent!important;min-height:calc(100vh - 83px)}
.topbar{background:rgba(229,240,246,.94);border-bottom-color:#91aabd;box-shadow:inset 0 -8px 18px rgba(55,91,116,.06)}
.card,.table-card,.assignment-board-card,.job-editor-card,.modal,.auth-card{background:linear-gradient(145deg,#edf6fa,#e3eff5);border-color:#9eb6c7;box-shadow:var(--shadow)}
input,select,textarea{background:#f0f6f9;border-color:#9fb6c6}
.data-table th,.line-items th,.quick-price-table th{background:#d5e5ef;color:#38576d;border-color:#91aabd}
.data-table td,.line-items td,.quick-price-table td{border-bottom-color:#bacbd7}
.data-table tbody tr:hover{background:#dcebf3}
.modal-frame>header,.modal-frame>footer,.settings-nav{background:#d9e8f1}
.modal-frame>#modal-body,.job-editor-modal .modal-frame>#modal-body{background:#d3e3ed}
.job-history-card,.job-overview-card{background:linear-gradient(145deg,#eaf4f8,#e0edf4)}
.job-history-heading{background:#d1e3ed}
.job-note-composer{background:#dcebf2}
.btn.secondary{background:#d5e4ed;border:1px solid #9ab1c1}
.settings-nav{padding:10px;border:1px solid #9eb6c7;border-radius:13px;box-shadow:inset 0 0 18px rgba(38,77,104,.10);margin-bottom:15px}
.optional-label{font-size:9px;color:var(--muted);font-weight:800}
.pac-container{z-index:100000!important;border:1px solid #6f91aa;border-radius:10px;box-shadow:0 16px 36px rgba(10,39,60,.25);font-family:inherit}
.pac-item{padding:8px 10px;font-size:13px}.pac-item:hover{background:#e0edf4}.pac-item-query{font-size:13px}
.bulk-setting-card{background:#dceaf2;border:1px solid #9db5c6;border-radius:12px;padding:15px}
.bulk-field-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.bulk-invoice-modal{width:min(1250px,calc(100vw - 24px))!important}
.bulk-invoice-groups{display:grid;gap:13px}.bulk-customer-group{border:1px solid #91aabd;background:#e7f1f6;border-radius:12px;overflow:hidden}.bulk-customer-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#d2e4ee}.bulk-customer-heading h3{margin:0}.bulk-customer-heading span{font-size:12px;color:var(--muted)}
.bulk-invoice-row{display:grid;grid-template-columns:36px 1fr 1.4fr .8fr .8fr;gap:10px;align-items:center;padding:10px 14px;border-top:1px solid #b5c8d4}.bulk-invoice-row:hover{background:#dbeaf2}.bulk-invoice-row input{width:auto}.bulk-invoice-row strong,.bulk-invoice-row span{overflow-wrap:anywhere}.bulk-invoice-summary{position:sticky;bottom:0;background:#d3e4ee;border:1px solid #88a4b8;border-radius:12px;padding:13px;margin-top:14px;box-shadow:0 -8px 24px rgba(20,54,82,.12)}
.document-layout{margin-bottom:16px}.document-lines-card{margin-top:16px}.document-note{margin-top:14px;padding:12px;background:#dbeaf2;border-radius:10px;white-space:pre-wrap}.document-line-description{white-space:pre-wrap;max-width:650px}.bulk-invoice-links{margin-top:16px}.bulk-job-link{width:100%;display:flex;justify-content:space-between;gap:12px;border:1px solid #9db5c6;background:#dceaf2;border-radius:10px;padding:10px 12px;margin-top:7px;color:var(--text);text-align:left}.bulk-job-link:hover{background:#cfe2ed}.bulk-job-link span{color:var(--muted)}
.job-bulk-invoices{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.job-bulk-invoices>.row-sub{width:100%}.bulk-invoice-chip{display:flex;gap:8px;align-items:center;border:1px solid #6f91aa;border-radius:999px;background:#d3e7f2;color:#173c56;padding:7px 11px}.bulk-invoice-chip span{font-size:11px;color:#496a80}
@media(max-width:900px){.app-column{margin:0;border:0;border-radius:0}.bulk-invoice-row{grid-template-columns:32px 1fr}.bulk-invoice-row>*:nth-child(n+3){grid-column:2}.document-layout{grid-template-columns:1fr}}


/* v1.0.20: Geoapify address autocomplete */
.address-autocomplete-shell{position:relative;display:block;width:100%}
.address-autocomplete-shell>input{width:100%}
.address-autocomplete-menu{position:absolute;z-index:190;left:0;right:0;top:calc(100% + 5px);max-height:340px;overflow:auto;background:#e9f2f8;border:1px solid #7897ae;border-radius:11px;box-shadow:0 16px 38px rgba(20,49,73,.22);padding:6px}
.address-autocomplete-menu[hidden]{display:none!important}
.address-autocomplete-option{display:block;width:100%;border:0;border-bottom:1px solid rgba(87,117,139,.20);border-radius:7px;background:transparent;color:var(--text);padding:10px 11px;text-align:left;cursor:pointer}
.address-autocomplete-option:hover,.address-autocomplete-option:focus{background:#d5e7f3;outline:none}
.address-autocomplete-option strong,.address-autocomplete-option span{display:block;white-space:normal;overflow-wrap:anywhere}
.address-autocomplete-option strong{font-size:13px}.address-autocomplete-option span{margin-top:3px;color:var(--muted);font-size:10px;font-weight:700}
.address-autocomplete-empty{padding:12px;color:var(--muted);font-size:11px;font-weight:800;line-height:1.35}
.address-autocomplete-attribution{padding:7px 9px 4px;color:#526d80;font-size:8px;font-weight:800;letter-spacing:.25px;text-align:right}
@media(max-width:700px){.address-autocomplete-menu{position:fixed;left:10px;right:10px;top:auto;bottom:76px;max-height:min(48vh,360px)}}


/* v1.0.21: reliable inline customer creation and catalogue reset */
.quick-customer-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(12,34,61,.55);backdrop-filter:blur(3px)}
.quick-customer-panel{width:min(900px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto;border:1px solid rgba(38,79,118,.7);border-radius:18px;background:linear-gradient(145deg,rgba(225,237,247,.99),rgba(210,228,242,.99));box-shadow:0 28px 80px rgba(9,34,62,.4),inset 0 0 30px rgba(55,104,148,.12)}
.quick-customer-panel>header,.quick-customer-panel>footer{display:flex;align-items:center;gap:12px;padding:16px 18px;border-color:rgba(38,79,118,.25)}
.quick-customer-panel>header{justify-content:space-between;border-bottom:1px solid rgba(38,79,118,.25)}
.quick-customer-panel>footer{justify-content:flex-end;border-top:1px solid rgba(38,79,118,.25)}
.quick-customer-panel h2{margin:0}.quick-customer-body{padding:18px}
.catalogue-reset-card{border-color:rgba(159,44,44,.45);background:linear-gradient(145deg,rgba(236,226,228,.92),rgba(218,231,241,.92))}
.customer-search-empty{padding:12px 14px;color:#526a80;font-size:12px;font-weight:700}
@media(max-width:700px){.quick-customer-overlay{padding:8px;align-items:flex-start}.quick-customer-panel{width:100%;max-height:calc(100vh - 16px)}}

/* v1.0.22: valid non-form modal shell and customer workflow safeguards */


/* v1.0.26: compact Service-style records, stable searches and product activity */
.service-record-shell{display:grid;gap:10px}.service-top-actions{display:flex;align-items:stretch;gap:2px;min-height:58px;padding:0 6px;background:linear-gradient(180deg,#d7e7f1,#c9dce8);border:1px solid #7999af;border-radius:12px;box-shadow:inset 0 0 18px rgba(40,79,107,.12);overflow:auto}.service-icon-action{min-width:74px;border:0;border-right:1px solid rgba(73,109,134,.24);background:transparent;color:#173e5b;padding:7px 10px;font-size:22px;display:grid;place-items:center;gap:2px}.service-icon-action span{font-size:9px;font-weight:900;white-space:nowrap}.service-icon-action:hover{background:#e7f2f7}.service-icon-action:disabled{opacity:.45}.job-secondary-actions{margin:0;padding:7px 9px;border:1px solid #9ab2c2;border-radius:10px;background:#dceaf2}
.service-record-grid{display:grid;grid-template-columns:minmax(0,2.25fr) minmax(300px,.75fr);gap:10px;align-items:start}.service-record-main{display:grid;gap:10px;min-width:0}.service-header-panel,.service-items-card,.service-history-panel{background:linear-gradient(145deg,#edf6fa,#e0edf4);border:1px solid #8faabd;border-radius:12px;box-shadow:0 6px 18px rgba(25,57,80,.08),inset 0 0 14px rgba(64,105,135,.06);padding:12px}.service-header-panel{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.service-header-panel h2{margin:0 0 8px}.service-detail-strip{display:flex;gap:8px;flex-wrap:wrap}.service-detail-strip span{min-width:130px;padding:7px 9px;border:1px solid #aac0ce;border-radius:8px;background:#e4eff5;font-size:11px}.service-detail-strip b{display:block;font-size:8px;color:#587186;margin-bottom:2px}.service-total-panel{min-width:185px;text-align:right;padding:10px;border-left:3px solid #315e7c}.service-total-panel span,.service-total-panel small{display:block;color:#526d80;font-size:9px;font-weight:850}.service-total-panel strong{display:block;font-size:25px;color:#143e5b;margin:3px 0}.service-items-heading{display:flex;align-items:center;gap:10px;margin-bottom:6px}.service-items-heading h3{margin:0}.service-items-heading .btn{margin-left:auto}.service-items-wrap{overflow-x:auto;overflow-y:hidden;border:1px solid #a3b8c6;border-radius:8px;background:#edf5f8}.service-items-table,.product-history-table{width:100%;border-collapse:collapse;min-width:820px}.service-items-table th,.product-history-table th{padding:7px 9px;text-align:left;font-size:9px;background:#d5e5ef;color:#38576d;border-bottom:1px solid #91aabd;white-space:nowrap}.service-items-table td,.product-history-table td{padding:6px 9px;border-bottom:1px solid #c0d0da;font-size:11px;vertical-align:middle}.service-items-table tr:last-child td,.product-history-table tr:last-child td{border-bottom:0}.service-items-table tbody tr:hover,.product-history-table tbody tr:hover{background:#dcebf3}.service-compact-totals{display:flex;justify-content:flex-end;gap:18px;padding:9px 5px 0;font-size:11px}.service-compact-totals strong{font-size:14px}.service-history-panel{position:sticky;top:8px;max-height:calc(100vh - 120px);overflow:auto}.service-history-panel>h3{margin:0 0 8px}.service-note-composer{display:grid;gap:6px;padding:8px;border:1px solid #9fb6c5;border-radius:9px;background:#dcebf2}.service-note-row{display:grid;grid-template-columns:120px 1fr;gap:6px}.service-note-row select,.service-note-row textarea{padding:7px;font-size:11px}.service-note-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.service-note-actions label{font-size:9px}.service-history-list{display:grid;gap:6px;margin-top:8px}.service-history-entry{display:grid;grid-template-columns:28px 1fr;gap:7px;padding:8px;border-bottom:1px solid #b8cad5}.service-history-entry strong,.service-history-entry time{display:block}.service-history-entry strong{font-size:10px}.service-history-entry time{font-size:8px;color:#617b8e}.service-history-entry p{font-size:11px;margin:4px 0;white-space:pre-wrap}.service-history-icon{font-size:17px}.service-payment-list>div{display:flex;justify-content:space-between;gap:12px;padding:7px;border-bottom:1px solid #bdd0db}.service-payment-list span{font-size:10px;color:#536d80}
.service-document-edit-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 260px}.service-edit-form{display:grid;gap:10px}.service-edit-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1.2fr) 270px;gap:10px;padding:10px}.service-form-panel,.service-side-panel{border:1px solid #91aabd;border-radius:10px;padding:11px;background:#e8f2f7}.service-form-panel h3,.service-side-panel h3{margin:0 0 8px}.service-two-col{display:grid;grid-template-columns:1fr 1fr;gap:8px}.inline-control{display:grid;grid-template-columns:1fr auto;gap:5px}.service-save-summary{padding:10px;background:#d6e7f0;border:1px solid #95afc0;border-radius:9px}.service-save-summary span,.service-save-summary strong{display:block}.service-save-summary span{font-size:9px;color:#597286}.service-save-summary strong{font-size:12px;margin-top:3px}.catalogue-picker{grid-column:1/-1}.catalogue-search-results{max-height:260px;overflow:auto;display:grid;gap:4px;padding:5px;border:1px solid #9fb5c4;border-radius:8px;background:#e9f3f7;margin:6px 0}.catalogue-result{display:grid;grid-template-columns:150px 1fr auto;gap:8px;align-items:center;border:0;border-bottom:1px solid #bed0da;background:transparent;text-align:left;padding:7px;color:#173d59}.catalogue-result:hover{background:#d7e8f1}.catalogue-result strong,.catalogue-result span{font-size:11px}.catalogue-result b{background:#2ecb75;color:#103e2a;padding:5px 7px;border-radius:7px;font-size:9px}.service-line-editor{display:grid;gap:8px}.compact-empty{padding:22px}.record-tabs{display:flex;gap:6px;margin-bottom:10px}.record-tabs .active{background:#315e7c;color:#fff}.product-history-card{padding:10px}.product-history-pager{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px}.workflow-preset-row{display:flex;align-items:center;gap:7px;padding:7px;border-bottom:1px solid #bdd0da}.workflow-order{width:24px;height:24px;border-radius:7px;background:#315e7c;color:#fff;display:grid;place-items:center;font-size:10px}.page-search-control{display:flex;gap:5px;min-width:min(520px,50vw)}.page-search-control input{min-width:0;flex:1}
@media(max-width:1050px){.service-record-grid,.service-document-edit-grid,.service-edit-grid{grid-template-columns:1fr}.service-history-panel{position:static;max-height:none}.service-side-panel{order:-1}.service-record-grid{display:block}.service-history-panel{margin-top:10px}}
@media(max-width:700px){.service-header-panel{display:block}.service-total-panel{border-left:0;border-top:2px solid #315e7c;margin-top:10px;text-align:left}.service-two-col,.service-note-row{grid-template-columns:1fr}.service-top-actions{border-radius:8px}.service-icon-action{min-width:62px;padding:6px;font-size:19px}.page-search-control{min-width:100%;width:100%}.page-toolbar{flex-wrap:wrap}.catalogue-result{grid-template-columns:100px 1fr}.catalogue-result b{display:none}}


/* v1.0.28 — Locksmithy dark-blue and green brand refresh */
:root{
  --navy:#081d33;--navy-2:#0d2b49;--navy-3:#123d61;--green:#4fff91;--green-dark:#20ce6a;
  --bg:#d6e6f1;--card:#e7f1f7;--surface:#dceaf3;--surface-2:#cfdfeb;--input:#edf5f9;
  --text:#0c263c;--muted:#48677d;--border:#89a7bb;--shadow:0 12px 30px rgba(7,35,58,.14),inset 0 1px 0 rgba(255,255,255,.52);
}
html,body{background:#a9c2d4!important}
body{background:linear-gradient(135deg,#9eb9cc 0%,#d8e8f2 32%,#bfd4e2 100%)!important}
.sidebar{background:linear-gradient(180deg,#061a2e 0%,#0a2945 62%,#061728 100%);border-right:1px solid rgba(79,255,145,.25)}
.logo-link{border-bottom:1px solid rgba(79,255,145,.22)}
.nav-button:hover,.nav-button.active{background:linear-gradient(90deg,#123d61,#174d75);color:#fff}.nav-button.active{box-shadow:inset 4px 0 0 var(--green)}
.app-column{border:1px solid #416b88!important;background:linear-gradient(145deg,#cbdeeb 0%,#e3eff6 55%,#c8ddea 100%)!important;box-shadow:inset 0 0 42px rgba(31,76,108,.20),0 12px 34px rgba(5,31,51,.20)!important}
.topbar{background:linear-gradient(100deg,#08223b,#0d3557 68%,#104060)!important;border-bottom:3px solid var(--green)!important;color:#fff;box-shadow:0 5px 18px rgba(4,28,47,.22)!important}
.topbar h1{color:#fff}.topbar p{color:#a9c7d9}.topbar .icon-button{color:#fff}.topbar .icon-button:hover{background:rgba(255,255,255,.12)}
.card,.table-card,.modal,.assignment-board-card,.job-editor-card{background:linear-gradient(145deg,#eaf3f8,#dceaf2)!important;border-color:#83a3b8!important}
.page-toolbar{padding:10px;border:1px solid #789bb2;border-radius:13px;background:linear-gradient(105deg,#d8e8f2,#c8ddea);box-shadow:inset 0 0 18px rgba(35,80,110,.10)}
.data-table th,.line-items th,.quick-price-table th{background:linear-gradient(100deg,#0a2945,#123f65)!important;color:#fff!important;border-bottom:3px solid var(--green)!important}
.data-table td,.line-items td,.quick-price-table td{border-bottom-color:#adc2d0}.data-table tbody tr:hover{background:#d1e5f0!important}
.btn.primary{background:linear-gradient(135deg,#4fff91,#2ee779);color:#071d31;box-shadow:0 4px 12px rgba(32,206,106,.22)}
.btn.secondary{background:#cfe2ee!important;border:1px solid #789cb4!important;color:#0a2945!important}.btn.secondary:hover{background:#bed8e7!important}
.metric{background:linear-gradient(145deg,#09243e,#104466)!important;border-color:#1f6486!important;color:#fff!important}.metric .label,.metric .detail{color:#b7d0df!important}.metric .value{color:var(--green)!important}.metric::after{background:rgba(79,255,145,.14)}
.settings-nav{background:linear-gradient(100deg,#0a2945,#123f65)!important;border-color:#1d5879!important}
.settings-nav button{background:#d8e9f3!important;color:#0b263d!important;border:1px solid #86a8bd!important}
.settings-nav button.active{background:#a9d2e8!important;color:#061d31!important;border-color:#4fff91!important;box-shadow:inset 0 0 0 2px rgba(79,255,145,.40)!important}
.settings-nav button:hover{background:#c2dfed!important;color:#061d31!important}
.report-card{border-top:5px solid var(--green)!important}.report-card>h2{margin:-18px -18px 15px;padding:14px 18px;background:linear-gradient(100deg,#08243e,#10486c);color:#fff;border-radius:13px 13px 0 0}.report-grid .data-table{min-width:520px}
body[data-section="vehicles"] .page-toolbar,body[data-section="reports"] .page-toolbar,body[data-section="stock_items"] .page-toolbar,body[data-section="service_items"] .page-toolbar,body[data-section="grouped_items"] .page-toolbar{border-left:6px solid var(--green);background:linear-gradient(100deg,#0b2d4b,#15587d);color:#fff}
body[data-section="vehicles"] .page-toolbar .btn.secondary,body[data-section="reports"] .page-toolbar .btn.secondary,body[data-section="stock_items"] .page-toolbar .btn.secondary,body[data-section="service_items"] .page-toolbar .btn.secondary,body[data-section="grouped_items"] .page-toolbar .btn.secondary{background:#d9eaf3!important;color:#0a2945!important}
.numbering-settings>p{max-width:900px;color:var(--muted)}.numbering-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin:18px 0}.numbering-card{display:grid;gap:12px;padding:16px;border:1px solid #7196ae;border-radius:13px;background:linear-gradient(145deg,#dcebf4,#cbdfea);box-shadow:inset 0 0 18px rgba(34,78,108,.09)}.numbering-card>div:first-child strong,.numbering-card>div:first-child span{display:block}.numbering-card>div:first-child span,.numbering-card small{color:var(--muted);font-size:11px}.number-preview{display:flex;align-items:center;justify-content:space-between;padding:10px;border-radius:9px;background:#0a2945;color:#fff}.number-preview b{color:var(--green);font-size:19px}.catalogue-result small{font-size:9px;color:#3f667f;font-weight:800}
@media(max-width:700px){.topbar{border-bottom-width:2px!important}.numbering-grid{grid-template-columns:1fr}.settings-nav{background:#0a2945!important}}

/* Locksmithy v2 unified login and urgent workflow UI */
.tools-page{display:grid;gap:18px}.tool-intro{display:flex;align-items:center;justify-content:space-between;gap:18px}.tool-intro h2{margin:0 0 4px}.idle-badge{padding:9px 12px;border-radius:999px;background:#e8f3ff;color:#143a61;font-weight:800;font-size:12px}.tool-group>h3{margin:0 0 10px}.tool-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.website-tool-card{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;background:rgba(255,255,255,.78);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow-sm)}.website-tool-card>.btn{grid-column:1/-1}.website-tool-card.disabled{opacity:.7}.tool-card-icon{font-size:28px}.website-tool-card h3{margin:0 0 5px}.website-tool-card p{margin:0 0 10px;color:var(--muted)}.record-link{appearance:none;border:0;background:transparent;padding:0;color:var(--navy);text-decoration:underline;text-underline-offset:3px;font:inherit;font-weight:800;cursor:pointer}.collected-control{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;font-weight:800}.global-search-shell{display:grid;gap:12px}.global-search-tabs{display:flex;gap:6px;flex-wrap:wrap}.global-search-tabs button.active{background:var(--navy);color:#fff}.global-search-results{max-height:62vh;overflow:auto}.global-search-result{width:100%;display:flex;justify-content:space-between;gap:12px;text-align:left;padding:12px;border:0;border-bottom:1px solid var(--line);background:#fff;cursor:pointer}.global-search-result:hover{background:#eff7ff}.global-search-result small{display:block;color:var(--muted);margin-top:3px}.line-inline-input{width:88px;min-width:70px;padding:7px 8px}.service-items-table td:nth-child(2){min-width:220px}.assignment-view-controls{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.assignment-view-controls label{margin:0;min-width:120px}.staff-order-buttons{display:flex;gap:3px;margin-top:5px}.staff-order-buttons button{padding:3px 7px}.collection-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.merge-field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px}.merge-field-grid code{display:block;padding:8px;border-radius:8px;background:#edf3f8;user-select:all}.quick-customer-overlay{z-index:10020!important}.quick-customer-panel{z-index:10021!important}@media(max-width:700px){.collection-settings-grid{grid-template-columns:1fr}.tool-intro{align-items:flex-start;flex-direction:column}}


/* Locksmithy Business v2 urgent workflow/UI refinements */
.record-link{border:0;background:transparent;padding:0;color:var(--navy,#123a63);font:inherit;font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer;text-align:left}.clickable-record{width:100%;border:0;background:transparent;text-align:left;cursor:pointer}.clickable-record:hover{background:rgba(31,113,173,.08)}
.inline-items-table .inline-line-input{width:92px;min-width:72px;padding:7px 8px;border:1px solid #b9c9d6;border-radius:7px;background:#fff;font-weight:700}.inline-items-table .inline-line-input.qty{width:76px}.inline-items-table .inline-line-input:focus{outline:3px solid rgba(53,173,115,.2);border-color:#26945f}
.collected-control{display:inline-flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid #7bc89f;border-radius:9px;background:#e7f8ef;color:#135b39;font-weight:900}.collected-control input{width:20px;height:20px}
.assignment-view-settings{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.assignment-view-settings label{font-size:11px;font-weight:900}.assignment-view-settings input{display:block;padding:8px}.staff-order-buttons{display:flex;gap:3px;float:right}.staff-order-buttons button{border:1px solid #c7d3dc;background:#fff;border-radius:5px;cursor:pointer}.staff-order-buttons button:disabled{opacity:.3}
.merge-field-help h3{margin-top:0}.merge-field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:7px}.merge-field-chip{border:1px solid #c6d5df;background:#f5f9fb;border-radius:8px;padding:9px;text-align:left;cursor:pointer}.merge-field-chip:hover{background:#e8f5ee;border-color:#61b78a}.merge-field-chip code{display:block;font-weight:900;color:#174c70}.merge-field-chip span{display:block;font-size:11px;margin-top:4px;color:#526777}
.global-search-input{width:100%;font-size:19px;padding:14px 16px;border:2px solid #87aabd;border-radius:10px}.global-search-tabs{display:flex;gap:5px;overflow:auto;padding:12px 0}.global-search-tabs button{white-space:nowrap;border:1px solid #bfd0da;background:#edf3f6;border-radius:20px;padding:8px 13px;font-weight:900;cursor:pointer}.global-search-tabs button.active{background:#123d63;color:#fff;border-color:#123d63}.global-search-results{max-height:58vh;overflow:auto;display:grid;gap:5px}.global-search-result{display:grid;grid-template-columns:150px minmax(180px,1fr) 2fr;align-items:center;gap:12px;text-align:left;border:1px solid #d6e0e6;background:#fff;border-radius:8px;padding:11px;cursor:pointer}.global-search-result:hover{border-color:#65af88;background:#f2fbf6}.global-search-type{font-size:11px;font-weight:900;color:#526b7c}
@media(max-width:760px){.assignment-view-settings{width:100%}.global-search-result{grid-template-columns:1fr}.inline-items-table{min-width:780px}}

/* v2.0.1 support links and Site Owner support inbox */
.auth-support-links{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid #a8bbc9;font-size:12px}.auth-support-links span{font-weight:850;color:#526b7d}.auth-support-links a{font-weight:850;color:#174c70}.sidebar-support-link{text-decoration:none}.support-admin-card{margin-bottom:16px}.support-admin-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.support-admin-heading h2{margin:0 0 5px}.support-admin-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:14px}.support-admin-meta>div{background:#dce9f2;border:1px solid #a8bbc9;border-radius:10px;padding:10px}.support-admin-meta span,.support-admin-meta strong{display:block}.support-admin-meta span{font-size:10px;font-weight:850;color:#526b7d}.support-admin-meta strong{margin-top:4px}.support-request-message{white-space:pre-wrap;line-height:1.55;max-height:48vh;overflow:auto;background:#f1f6fa;border:1px solid #a8bbc9;border-radius:10px;padding:13px}.support-status-select{min-width:130px;padding:7px}.support-request-subject{max-width:360px}.support-request-subject strong,.support-request-subject small{display:block}.support-request-subject small{margin-top:4px;color:#526b7d}@media(max-width:700px){.sidebar-support-link{display:flex}.support-admin-heading{display:block}}


/* Tool launcher recovery 9 */
.tool-launch-card{
  position:relative;
  z-index:1;
  cursor:pointer;
}
.tool-launch-card:hover{
  border-color:#2ee779;
  box-shadow:0 7px 22px rgba(32,206,106,.18);
}
.tool-launch-card:focus{
  outline:3px solid #2ee779;
  outline-offset:3px;
}
.tool-launch-button{
  position:relative;
  z-index:5;
  pointer-events:auto!important;
  cursor:pointer!important;
  width:100%;
}
.tool-launch-card>*{
  pointer-events:none;
}
.tool-launch-card .tool-launch-button{
  pointer-events:auto!important;
}


/* Locksmithy v2.1.0 linked workflow and rapid-entry UX */
.linked-records-panel{margin-bottom:14px}.linked-records-heading{display:flex;align-items:center;gap:14px;justify-content:space-between}.linked-records-heading h3{margin:0}.linked-records-heading p{margin:4px 0 0}.linked-record-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.linked-record-chip{display:flex;align-items:center;gap:7px;padding:9px 11px;border:1px solid #8fb3ca;border-radius:10px;background:#eff8fd;color:#0d3856;cursor:pointer}.linked-record-chip:hover{border-color:#23d875;box-shadow:0 4px 14px rgba(35,216,117,.18)}.linked-record-chip small{font-size:9px}.rapid-entry-hint{font-size:11px;font-weight:800;color:#277093}.rapid-add-row td{padding:0!important;overflow:visible}.rapid-item-search{position:relative;display:flex;align-items:center;background:#f7fcff;border:2px dashed #7aa9c5;border-radius:8px;margin:6px;padding:2px}.rapid-item-search:focus-within{border-style:solid;border-color:#21dc79;box-shadow:0 0 0 3px rgba(33,220,121,.14)}.rapid-plus{font-size:24px;font-weight:900;padding:0 9px;color:#18bc67}.rapid-item-search input{border:0!important;box-shadow:none!important;background:transparent!important;font-weight:800;min-width:240px}.rapid-item-results{position:absolute;z-index:300;left:0;right:0;top:100%;background:white;border:1px solid #6e9ab6;border-radius:10px;box-shadow:0 16px 35px rgba(0,35,60,.25);max-height:390px;overflow:auto}.rapid-result{width:100%;display:grid;grid-template-columns:150px 1fr 160px 100px;gap:10px;align-items:center;text-align:left;padding:10px;border:0;border-bottom:1px solid #d6e5ee;background:white;color:#0c3552;cursor:pointer}.rapid-result:hover,.rapid-result.active{background:#dff8eb}.rapid-result small{font-size:10px}.rapid-result b{text-align:right}.group-component-row td:nth-child(2){padding-left:28px;color:#50758c}.draft-save-status{position:absolute;right:70px;top:15px;font-size:10px;font-weight:900;color:#16894e}.draft-save-status.error{color:#c43d3d}.health-grid,.integration-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.health-card,.integration-card{border:1px solid #94b7cc;border-radius:13px;padding:16px;background:#eaf5fb;color:#0c3652;text-align:left}.health-card{cursor:pointer}.health-card strong{display:block;font-size:32px;margin:10px 0}.health-card.warning{border-left:6px solid #ffad33}.health-card.healthy{border-left:6px solid #23dc79}.integration-card dl{display:grid;grid-template-columns:95px 1fr;gap:5px;margin:12px 0}.integration-card dt{font-size:9px;font-weight:900}.integration-card dd{margin:0}.profitability-card{margin-top:16px}.import-preview-summary{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:12px 0}.import-preview-summary div{background:#eaf5fb;border:1px solid #a0bed0;border-radius:8px;padding:8px;text-align:center}.import-preview-summary strong{display:block;font-size:22px}.pagination-bar{display:flex;align-items:center;justify-content:center;gap:14px;padding:14px}.offline-launch-card{max-width:760px}.hidden{display:none!important}
@media(max-width:720px){.rapid-result{grid-template-columns:95px 1fr}.rapid-result small,.rapid-result b{display:none}.linked-records-heading{align-items:flex-start;flex-direction:column}.import-preview-summary{grid-template-columns:repeat(3,1fr)}}


/* Locksmithy v2.1.0 Install 10 */
.linked-records-panel{margin-bottom:14px}.linked-records-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.linked-records-heading h3{margin:0}.linked-record-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.linked-record-chip{display:flex;align-items:center;gap:7px;border:1px solid #87a8bf;background:#edf7fd;color:#0b3658;border-radius:11px;padding:8px 10px;cursor:pointer}.linked-record-chip:hover{border-color:#32e88b}.linked-record-chip small{font-size:10px}.rapid-add-row td{padding:7px!important}.rapid-item-search{position:relative;display:flex;align-items:center;gap:8px}.rapid-item-search input{width:100%;font-weight:700}.rapid-plus{font-size:22px;color:#19cb72}.rapid-item-results{position:absolute;left:30px;right:0;top:calc(100% + 3px);z-index:80;background:#fff;border:1px solid #8aaabd;border-radius:10px;box-shadow:0 14px 35px rgba(6,31,50,.24);max-height:330px;overflow:auto}.rapid-result{width:100%;border:0;border-bottom:1px solid #d8e6ef;background:#fff;padding:10px;text-align:left;display:grid;grid-template-columns:110px 1fr auto auto;gap:9px;align-items:center;cursor:pointer}.rapid-result.active,.rapid-result:hover{background:#e6fff2}.rapid-result small{font-size:10px}.inline-line-input{min-width:75px;width:100%;padding:7px}.group-component-row{opacity:.72}.group-component-row td:nth-child(2){padding-left:24px}.draft-save-status{display:inline-flex;margin:0 0 8px auto;padding:4px 9px;border-radius:20px;background:#e6fff2;color:#085c35;font-size:11px;font-weight:900}.draft-save-status.error{background:#ffe9e9;color:#8c1414}.health-grid,.integration-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.health-card,.integration-card{border:1px solid #89aabd;border-radius:13px;padding:15px;background:#eaf5fb;text-align:left}.health-card{cursor:pointer}.health-card strong{display:block;font-size:30px;color:#0e3c5c}.health-card.warning{border-color:#e09c35;background:#fff4df}.health-card.healthy{border-color:#35d88b;background:#e9fff4}.integration-card dl{display:grid;grid-template-columns:95px 1fr;gap:5px;margin:12px 0}.integration-card dt{font-size:10px;font-weight:900}.integration-card dd{margin:0}.import-preview-summary{display:grid;grid-template-columns:repeat(6,minmax(90px,1fr));gap:7px;margin:12px 0}.import-preview-summary div{padding:10px;border:1px solid #9bb6c8;border-radius:9px;text-align:center}.import-preview-summary span{display:block;font-size:10px}.import-preview-summary strong{font-size:22px}.offline-launch-card{text-align:center;padding:35px}.build-number{font-size:10px;opacity:.72;padding:7px 12px}
@media(max-width:800px){.rapid-result{grid-template-columns:80px 1fr}.rapid-result small,.rapid-result b{display:none}.import-preview-summary{grid-template-columns:repeat(3,1fr)}}


/* Install 10 draft recovery and diagnostics */
.draft-save-tools{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-bottom:10px;position:sticky;top:0;z-index:4;background:inherit;padding:6px 0}
.draft-history-select{max-width:230px;padding:7px 10px;border-radius:8px;border:1px solid #8eb1c9;background:#fff;color:#0b3556;font-weight:800;font-size:12px}
.draft-history-select:disabled{opacity:.55}
.diagnostic-output{width:100%;min-height:420px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;white-space:pre}


/* Install 10C: rapid catalogue overlay, per-record descriptions and statements */
.rapid-item-results-portal{position:absolute!important;z-index:10000!important;max-height:none!important;overflow:visible!important;background:#fff;border:1px solid #6e9ab6;border-radius:10px;box-shadow:0 18px 42px rgba(0,35,60,.30)}
.rapid-item-results-portal .rapid-result:last-child{border-bottom:0;border-radius:0 0 10px 10px}
.line-description-editor{display:flex;align-items:center;gap:5px;min-width:280px}
.line-description-editor .group-arrow{font-weight:900;color:#50758c;flex:0 0 auto}
.inline-items-table .inline-line-input.description{width:100%;min-width:250px;padding:7px 8px}
.statement-summary-grid{display:grid;grid-template-columns:minmax(260px,1.7fr) repeat(3,minmax(150px,.7fr));gap:12px;margin-bottom:12px}
.statement-total{display:flex;flex-direction:column;justify-content:center;min-height:120px}
.statement-total span{font-size:10px;font-weight:900;color:#526d80;letter-spacing:.07em}
.statement-total strong{font-size:28px;color:#123a63;margin-top:8px}
.statement-total.overdue{border-left:6px solid #d65757}.statement-total.current{border-left:6px solid #3a94c5}.statement-total.due{border-left:6px solid #23c974}
.statement-lines-table td{vertical-align:top}.statement-lines-table small{display:block;margin-top:3px;color:#627d90}
@media(max-width:1000px){.statement-summary-grid{grid-template-columns:1fr 1fr}.rapid-item-results-portal{max-width:calc(100vw - 20px)}}
@media(max-width:600px){.statement-summary-grid{grid-template-columns:1fr}.rapid-result{grid-template-columns:90px minmax(0,1fr)}.rapid-result small,.rapid-result b{display:none}}

/* Locksmithy v2.1.4 Install 10F — unified Job / Quote / Invoice workspace */
.unified-record-shell{--record-accent:#35c86f;display:grid;gap:10px;min-width:0}
.unified-record-header{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:76px;padding:10px 14px;background:linear-gradient(100deg,var(--record-accent),color-mix(in srgb,var(--record-accent) 74%,#08223b));border:1px solid color-mix(in srgb,var(--record-accent) 75%,#08223b);border-radius:14px;color:#fff;box-shadow:0 9px 24px rgba(6,31,50,.22),inset 0 1px 0 rgba(255,255,255,.22)}
.unified-record-heading{display:flex;align-items:center;gap:13px;min-width:0}.unified-record-heading>div{min-width:0}.unified-record-kind{display:block;font-size:9px;font-weight:950;letter-spacing:.13em;opacity:.82}.unified-record-heading h2{margin:2px 0 0;font-size:23px;line-height:1.05;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.unified-record-heading h2 small{font-size:13px;font-weight:750;max-width:660px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unified-close{border:1px solid rgba(255,255,255,.45);border-radius:9px;background:rgba(5,25,42,.22);color:#fff;padding:9px 11px;font-weight:900;cursor:pointer;white-space:nowrap}.unified-close:hover{background:rgba(5,25,42,.38)}
.unified-header-actions{display:flex;align-items:stretch;justify-content:flex-end;gap:3px;overflow-x:auto}.unified-header-actions .service-icon-action{color:#fff;border-color:rgba(255,255,255,.23);min-width:68px;border-radius:7px}.unified-header-actions .service-icon-action:hover{background:rgba(255,255,255,.15)}.unified-status-pill{align-self:center;display:inline-flex;align-items:center;min-height:38px;padding:8px 12px;border:1px solid rgba(255,255,255,.48);border-radius:20px;background:rgba(5,25,42,.26);font-size:10px;font-weight:950;white-space:nowrap}
.unified-operational-actions{display:flex;align-items:center;gap:7px;padding:8px;border:1px solid #7f9fb4;border-radius:11px;background:linear-gradient(105deg,#d9e9f2,#c8dce9);overflow-x:auto}.unified-operational-actions .btn{white-space:nowrap}.unified-operational-actions .collected-control{display:flex;align-items:center;gap:6px;white-space:nowrap;padding:8px 10px;background:#e8f4fa;border:1px solid #82a7be;border-radius:8px;font-size:10px;font-weight:900}
.unified-record-layout{display:grid;grid-template-columns:108px minmax(0,1fr) minmax(285px,330px);gap:10px;align-items:start;min-width:0}.unified-side-tabs{display:grid;gap:8px;position:sticky;top:8px}.unified-tab{position:relative;display:grid;place-items:center;gap:6px;min-height:78px;padding:10px 7px;border:1px solid #789bb2;border-left:5px solid transparent;border-radius:10px;background:linear-gradient(145deg,#e7f2f8,#cfe2ed);color:#103b59;font-size:10px;font-weight:950;text-align:center;cursor:pointer;box-shadow:0 5px 13px rgba(12,49,73,.10)}.unified-tab:hover{border-color:var(--record-accent)}.unified-tab.active{border-left-color:var(--record-accent);background:linear-gradient(145deg,#0b2b47,#124d72);color:#fff;box-shadow:0 7px 18px rgba(7,37,58,.22)}.unified-tab b{font-size:9px;padding:3px 6px;border-radius:10px;background:rgba(79,255,145,.18);color:inherit}
.unified-record-main{display:grid;gap:10px;min-width:0}.unified-section{display:grid;gap:10px;min-width:0}.unified-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:11px 13px;border:1px solid #759ab2;border-left:6px solid var(--record-accent);border-radius:11px;background:linear-gradient(105deg,#e8f3f8,#d2e5ef)}.unified-section-heading.compact{padding:0 0 9px;border:0;border-bottom:1px solid #adc4d2;border-radius:0;background:transparent}.unified-section-heading h3,.unified-section-heading h4{margin:0}.unified-section-heading p{margin:4px 0 0;color:#506e82;font-size:10px;font-weight:750;line-height:1.35}.unified-details-form{display:grid;grid-template-columns:minmax(260px,.82fr) minmax(260px,.82fr);gap:10px}.unified-form-card{border:1px solid #88a8bc;border-radius:11px;background:linear-gradient(145deg,#edf6fa,#dbeaf2);padding:12px;box-shadow:0 5px 14px rgba(17,52,76,.08);min-width:0}.unified-form-card h4{margin:0 0 10px;color:#123d5d;font-size:12px}.unified-form-card-wide{grid-column:1/-1}.unified-form-card label,.unified-work-done-card label{display:grid;gap:5px;color:#355b73;font-size:9px;font-weight:900;letter-spacing:.035em}.unified-form-card input,.unified-form-card select,.unified-form-card textarea,.unified-work-done-card textarea{width:100%;border:1px solid #87a7bb;border-radius:8px;background:#f4fafd;color:#0b2d47;padding:8px 9px;font:inherit;font-size:12px}.unified-form-card textarea,.unified-work-done-card textarea{resize:vertical;line-height:1.45}.unified-customer-picker{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:6px;margin-bottom:9px}.unified-customer-picker .customer-select-source{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important}.unified-customer-picker .customer-combobox{margin-top:5px}.unified-customer-picker .compact-create{height:36px}.unified-billing-note{padding:9px;border:1px dashed #7d9fb4;border-radius:8px;color:#4e6e83;font-size:9px;font-weight:800;line-height:1.45}.unified-linked-job{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:8px;padding:9px;margin-top:10px;border-radius:8px;background:#d7e9f2}.unified-linked-job span{font-size:9px;font-weight:900}.unified-linked-job small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unified-work-done-card{border:1px solid #85a6ba;border-radius:11px;background:#e8f3f8;padding:12px}.unified-work-done-card form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px}.unified-work-done-card textarea{min-height:120px}.unified-flat-card{box-shadow:none!important}.unified-pricing-footer{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding-top:10px}.unified-pricing-footer>div{min-width:115px;padding:8px 10px;border:1px solid #9bb4c4;border-radius:8px;background:#e6f0f6;text-align:right}.unified-pricing-footer span,.unified-pricing-footer strong{display:block}.unified-pricing-footer span{font-size:8px;font-weight:900;color:#567287}.unified-pricing-footer strong{margin-top:3px;font-size:14px}.unified-pricing-footer .grand,.unified-pricing-footer .balance{border-color:var(--record-accent);background:color-mix(in srgb,var(--record-accent) 13%,#edf7fb)}.unified-pricing-footer .grand strong,.unified-pricing-footer .balance strong{font-size:18px}
.unified-notes-panel{position:sticky;top:8px;max-height:calc(100vh - 105px);overflow:auto;border:1px solid #789bb2;border-top:6px solid var(--record-accent);border-radius:11px;background:linear-gradient(145deg,#e9f4f9,#d8e9f1);padding:11px;box-shadow:0 8px 20px rgba(8,42,65,.12)}.unified-notes-panel>h3{margin:0 0 9px}.unified-notes-heading{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.unified-notes-heading h3{margin:0}.unified-notes-heading p{margin:3px 0 8px;color:#5a7385;font-size:8px;font-weight:900}.unified-notes-panel .job-note-composer{padding:8px}.unified-notes-panel .job-history-list{margin-top:8px}.unified-notes-panel .service-history-entry{padding-left:3px;padding-right:3px}
.unified-invoice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:9px}.unified-invoice-card{display:grid;gap:9px;border:1px solid #8aabba;border-left:5px solid #0ea5e9;border-radius:10px;background:#f0f8fc;padding:10px}.unified-invoice-card>div:first-child{display:flex;align-items:center;gap:7px}.unified-invoice-card>div:first-child>span{font-size:9px;font-weight:900}.unified-invoice-card dl{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:0}.unified-invoice-card dl>div{padding:7px;border-radius:7px;background:#dcebf3}.unified-invoice-card dt{font-size:7px;font-weight:900;color:#5a7487}.unified-invoice-card dd{margin:3px 0 0;font-size:13px;font-weight:900}.unified-payment-history{display:grid;gap:3px;padding-top:5px;border-top:1px solid #b8ceda}.unified-payment-history span{font-size:9px;color:#506f83}.unified-lower-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.unified-order-stack{display:grid;gap:10px}.unified-order-card{display:grid;gap:10px;border:1px solid #8aa7bb;border-left:6px solid var(--order-accent,#8b5cf6);border-radius:11px;background:linear-gradient(145deg,#eef7fb,#dae9f2);padding:12px}.unified-order-card>header{display:flex;align-items:center;justify-content:space-between}.unified-order-card>header>div{display:flex;align-items:center;gap:8px}.unified-order-card>header span{font-size:9px;font-weight:900}.unified-order-meta{display:flex;gap:7px;flex-wrap:wrap}.unified-order-meta span{min-width:110px;padding:7px;background:#d9e8f1;border-radius:7px;font-size:10px}.unified-order-meta b{display:block;font-size:7px;color:#597487;margin-bottom:3px}.unified-order-lines{display:grid;border:1px solid #a0bac9;border-radius:8px;overflow:hidden}.unified-order-lines>div{display:grid;grid-template-columns:110px 1fr auto;gap:8px;align-items:center;padding:8px;background:#f3f9fc;border-bottom:1px solid #c4d5df;font-size:10px}.unified-order-lines>div:last-child{border-bottom:0}.unified-order-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.record-colour-settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:10px}.record-colour-card{display:grid;gap:8px;padding:12px;border:1px solid #86a6ba;border-left:7px solid var(--swatch);border-radius:10px;background:#eaf4f9}.record-colour-card strong{font-size:11px}.record-colour-card input[type=color]{width:100%;height:44px;padding:3px}.record-colour-card input[type=text]{width:100%}
@media(max-width:1220px){.unified-record-layout{grid-template-columns:92px minmax(0,1fr)}.unified-notes-panel{position:static;max-height:none;grid-column:2}.unified-side-tabs{grid-row:1/span 2}.unified-header-actions{max-width:54vw}}
@media(max-width:850px){.unified-record-header{align-items:flex-start;flex-direction:column}.unified-header-actions{max-width:100%;width:100%;justify-content:flex-start}.unified-record-layout{grid-template-columns:1fr}.unified-side-tabs{position:static;display:flex;overflow-x:auto;grid-row:auto}.unified-tab{min-width:105px;min-height:58px}.unified-record-main,.unified-notes-panel{grid-column:1}.unified-details-form,.unified-lower-grid{grid-template-columns:1fr}.unified-form-card-wide{grid-column:auto}.unified-work-done-card form{grid-template-columns:1fr}.unified-operational-actions .spacer{display:none}.unified-invoice-card dl{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.unified-record-heading h2{font-size:18px}.unified-record-heading h2 small{max-width:80vw}.unified-close{padding:7px}.unified-section-heading{display:grid}.unified-customer-picker{grid-template-columns:1fr}.unified-customer-picker .compact-create{width:100%}.unified-order-lines>div{grid-template-columns:80px 1fr}.unified-order-lines>div b{grid-column:1/-1}.unified-pricing-footer{display:grid;grid-template-columns:1fr 1fr}.unified-pricing-footer>div{min-width:0}.unified-invoice-card dl{grid-template-columns:1fr}.unified-header-actions .service-icon-action{min-width:60px}}

/* Locksmithy v2.2.0 Install 11A — generated DOC preview */
body.document-preview-open{overflow:hidden}
.document-preview-overlay{position:fixed;inset:0;z-index:30000;background:rgba(3,18,31,.88);display:grid;place-items:stretch;padding:12px}
.document-preview-shell{min-width:0;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);border:1px solid #4e7894;border-radius:15px;overflow:hidden;background:#b9cfdd;box-shadow:0 22px 70px rgba(0,0,0,.42)}
.document-preview-toolbar{display:flex;align-items:center;gap:8px;padding:10px 12px;background:linear-gradient(100deg,#061c31,#0d3d61);border-bottom:3px solid var(--green);color:#fff}
.document-preview-toolbar>div:first-child{display:grid;gap:2px;min-width:220px;margin-right:auto}.document-preview-toolbar>div:first-child strong{font-size:14px}.document-preview-toolbar>div:first-child span{font-size:9px;color:#b8d4e4;font-weight:800;letter-spacing:.02em}.document-preview-toolbar .icon-button{color:#fff}
.document-preview-notice{padding:7px 12px;background:#fff4cf;border-bottom:1px solid #c5a554;color:#664b00;font-size:9px;font-weight:900;text-align:center}
.document-preview-stage{min-width:0;min-height:0;overflow:auto;padding:24px;background:linear-gradient(135deg,#7692a5,#c6d8e3)}
.document-preview-loading,.document-preview-error{max-width:760px;margin:80px auto;padding:30px;border:1px solid #89a6b8;border-radius:14px;background:#edf6fb;text-align:center;color:#103b59;font-weight:900}
.document-preview-paper{position:relative;width:210mm;min-height:297mm;margin:0 auto;padding:15mm 14mm 13mm;background:#fff;color:#17242d;box-shadow:0 12px 34px rgba(5,25,42,.36);font-family:Arial,Helvetica,sans-serif;font-size:10.5pt;line-height:1.35}
.document-preview-document-header{display:grid;grid-template-columns:minmax(0,1fr) 72mm;gap:12mm;align-items:start;padding-bottom:9mm;border-bottom:2.5mm solid #123f65}.document-preview-document-header h1{margin:0 0 3mm;font-size:24pt;line-height:1;color:#0b3455}.document-preview-document-header p{margin:1.5mm 0;color:#415663}.document-preview-number{display:grid;gap:2mm;text-align:right}.document-preview-number>span{font-size:12pt;font-weight:900;color:#2a5f80}.document-preview-number>strong{font-size:22pt;color:#0b3455}.document-preview-number small{display:block}.document-preview-number small b{margin-right:2mm;color:#56717f}
.document-preview-party-grid{display:grid;grid-template-columns:1fr 1fr;gap:7mm;margin:7mm 0}.document-preview-party{display:grid;gap:1.4mm;padding:4mm;border:1px solid #a9becb;border-left:2.2mm solid #2e8ab5;border-radius:2mm;background:#f4f9fc;min-height:30mm}.document-preview-party h3{margin:0 0 1mm;font-size:9pt;color:#31627c}.document-preview-party>strong{font-size:12pt}.document-preview-party>span,.document-preview-contact span{color:#536773}.document-preview-contact{display:grid;gap:1mm;margin-top:2mm;padding-top:2mm;border-top:1px solid #c7d6df}
.document-preview-summary{display:flex;flex-wrap:wrap;gap:3mm;margin:5mm 0;padding:3.5mm;border:1px solid #b8cbd6;border-radius:2mm;background:#eef6fa}.document-preview-summary>div{display:grid;gap:1mm;min-width:38mm;flex:1}.document-preview-summary b{font-size:7.5pt;color:#597583}.document-preview-work{margin:5mm 0;padding:4mm;border:1px solid #bdced8;border-radius:2mm}.document-preview-work h3{margin:0 0 2mm;color:#174a69;font-size:9pt}.document-preview-work p{margin:0;white-space:normal}
.document-preview-table{width:100%;border-collapse:collapse;margin:6mm 0;font-size:9pt}.document-preview-table th{padding:2.5mm;background:#0c3859;color:#fff;text-align:left;border-bottom:1.4mm solid #4fff91}.document-preview-table td{padding:2.4mm;border-bottom:1px solid #c6d4dc;vertical-align:top}.document-preview-table td:first-child{width:17mm}.document-preview-table td:nth-last-child(-n+2),.document-preview-table th:nth-last-child(-n+2){text-align:right;white-space:nowrap}.document-preview-table.statement th:nth-last-child(-n+4),.document-preview-table.statement td:nth-last-child(-n+4){text-align:right}.document-preview-table small{font-size:7.5pt;color:#536b79}
.document-preview-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(34mm,1fr));gap:2.5mm;margin:6mm 0 8mm 45%}.document-preview-totals>div{display:grid;gap:1mm;padding:3mm;border:1px solid #b8cad5;border-radius:2mm;text-align:right;background:#f4f9fc}.document-preview-totals span{font-size:7.5pt;font-weight:900;color:#526c7b}.document-preview-totals strong{font-size:11pt}.document-preview-totals .grand{border-color:#21aa69;background:#e9f8f0}.document-preview-totals .grand strong{font-size:15pt;color:#0b6842}
.document-preview-paper>footer{position:absolute;left:14mm;right:14mm;bottom:7mm;padding-top:2mm;border-top:1px solid #bfcdd5;color:#667a86;font-size:7.5pt;text-align:center}.document-preview-paid{position:absolute;top:25mm;left:50%;transform:translateX(-50%) rotate(-8deg);z-index:2;padding:2mm 7mm;border:1.5mm solid #c00000;border-radius:2mm;color:#c00000;font-size:27pt;font-weight:950;opacity:.82;pointer-events:none}
@media(max-width:900px){.document-preview-overlay{padding:0}.document-preview-shell{border-radius:0}.document-preview-toolbar{flex-wrap:wrap}.document-preview-toolbar>div:first-child{width:100%;margin-right:0}.document-preview-toolbar .btn{flex:1;min-width:120px}.document-preview-stage{padding:10px}.document-preview-paper{transform-origin:top left}.document-preview-party-grid{grid-template-columns:1fr}.document-preview-totals{margin-left:0}}
@media print{
  body.document-preview-printing{background:#fff!important}
  body.document-preview-printing>*:not(.document-preview-overlay){display:none!important}
  body.document-preview-printing .document-preview-overlay{position:static;display:block;padding:0;background:#fff}
  body.document-preview-printing .document-preview-shell{display:block;border:0;border-radius:0;box-shadow:none;background:#fff}
  body.document-preview-printing .document-preview-toolbar,body.document-preview-printing .document-preview-notice{display:none!important}
  body.document-preview-printing .document-preview-stage{display:block;overflow:visible;padding:0;background:#fff}
  body.document-preview-printing .document-preview-paper{width:auto;min-height:0;margin:0;padding:10mm 11mm 12mm;box-shadow:none}
  body.document-preview-printing .document-preview-paper>footer{position:static;margin-top:8mm}
  @page{size:A4;margin:0}
}

/* Locksmithy v2.2.0 Install 11A — mobile-first operations */
.order-status-chip{display:inline-flex;align-items:center;justify-content:center;min-width:86px;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:.35px;white-space:nowrap}.order-status-chip.draft{background:#dcecff;color:#15549c}.order-status-chip.pending{background:#fff2bf;color:#775b00}.order-status-chip.ordered{background:#ffe5ce;color:#8c4207}.order-status-chip.received{background:#daf7e5;color:#17693a}.order-status-chip.cancelled{background:#ffe2e2;color:#9d2c2c}.order-part-list{display:grid;gap:4px}.order-part-list span,.order-part-list button{display:block;text-align:left}.record-link{border:0;background:transparent;color:#135fa7;font:inherit;font-weight:850;padding:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.record-link:hover{color:#0b3f72}
.numbering-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.numbering-preview-grid>div{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);display:grid;gap:4px}.numbering-preview-grid span{font-size:11px;color:var(--muted);font-weight:850}.numbering-preview-grid b{font-size:18px}.settings-steps{padding-left:22px;line-height:1.6}.compact-empty{padding:24px}.mobile-card-table td[data-label]::before{content:none}

@media(max-width:760px){
  html{scroll-padding-top:72px}body{min-width:0;overflow-x:hidden;-webkit-text-size-adjust:100%;overscroll-behavior-y:none}button,a,input,select,textarea{touch-action:manipulation}input,select,textarea{font-size:16px!important;min-height:46px;border-radius:12px}textarea{min-height:118px}.btn{min-height:44px;padding:10px 13px;border-radius:11px}.btn.small{min-height:38px;padding:8px 10px}.icon-button{width:44px;height:44px}
  .app-shell{display:block;min-height:100dvh}.app-column{min-height:100dvh;padding-bottom:76px}.content{padding:12px 10px 20px;max-width:none}.card,.table-card{border-radius:13px;box-shadow:0 5px 18px rgba(7,20,38,.08)}.card{padding:14px}
  .topbar{height:auto;min-height:64px;padding:8px 9px;gap:7px;align-items:center}.topbar>div:nth-child(2){min-width:0;flex:1}.topbar h1{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar p{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-actions{gap:2px;margin-left:0}.top-actions .quick-price-top,.top-actions .flash{display:none}.top-actions .icon-button{font-size:20px}
  .sidebar{position:fixed;left:0;top:0;bottom:0;width:min(88vw,330px);height:100dvh;transform:translateX(-105%);transition:transform .18s ease;z-index:80;box-shadow:14px 0 40px rgba(0,0,0,.28)}.sidebar.open{transform:translateX(0)}.sidebar nav{padding-bottom:22px}.logo-link{padding-top:max(14px,env(safe-area-inset-top))}
  .mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:55;background:#071426;border-top:1px solid rgba(255,255,255,.13);padding:6px max(5px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(5px,env(safe-area-inset-left));box-shadow:0 -8px 24px rgba(5,18,32,.2)}.mobile-nav button{border:0;background:transparent;color:#d9e5ef;min-height:54px;border-radius:9px;font-size:10px;font-weight:800;display:grid;place-items:center;gap:1px;padding:4px}.mobile-nav button span{font-size:20px}.mobile-nav button.active{background:#163757;color:#fff;box-shadow:inset 0 3px 0 var(--green)}
  .page-toolbar{gap:8px;margin-bottom:12px;align-items:stretch}.page-toolbar>.btn{flex:1 1 auto}.page-toolbar .spacer{display:none}.page-search-control{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:6px;flex:1 1 100%;width:100%}.page-toolbar .search-box{min-width:0;max-width:none;width:100%}
  .grid.two,.grid.three,.detail-grid,.two-col,.form-grid{grid-template-columns:1fr}.form-grid .full,.form-section{grid-column:1}.grid.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.metric .value{font-size:25px}.job-actions,.actions{gap:6px}.job-actions .btn{flex:1 1 calc(50% - 6px)}
  .settings-nav{display:flex!important;overflow-x:auto;gap:6px;margin:0 -10px 12px;padding:2px 10px 8px;scroll-snap-type:x proximity;position:sticky;top:64px;z-index:16;background:var(--bg);-webkit-overflow-scrolling:touch}.settings-nav .btn{flex:0 0 auto;white-space:nowrap;scroll-snap-align:start}.numbering-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .modal{width:100vw!important;max-width:none!important;height:100dvh;max-height:100dvh;margin:0;border-radius:0}.modal-frame{height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.modal-frame>header{padding:calc(10px + env(safe-area-inset-top)) 13px 10px;background:var(--surface);position:sticky;top:0;z-index:3}.modal-frame>header h2{font-size:18px}.modal-frame>#modal-body{padding:12px;max-height:none;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.modal-frame>footer{padding:9px 10px calc(9px + env(safe-area-inset-bottom));position:sticky;bottom:0;z-index:3;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:var(--surface-2)}.modal-frame>footer .btn{width:100%}.quick-price-modal .modal-frame>#modal-body{padding:8px}
  .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.mobile-card-table{min-width:0!important;display:block;background:transparent}.mobile-card-table thead{display:none}.mobile-card-table tbody{display:grid;gap:9px;padding:9px}.mobile-card-table tr{display:grid;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px rgba(7,20,38,.04)}.mobile-card-table td{display:grid!important;grid-template-columns:minmax(88px,35%) minmax(0,1fr);gap:8px;align-items:start;padding:9px 11px;border-bottom:1px solid var(--border);min-width:0}.mobile-card-table td:last-child{border-bottom:0}.mobile-card-table td[data-label]::before{content:attr(data-label);display:block;font-size:10px;line-height:1.25;font-weight:900;letter-spacing:.35px;color:var(--muted);text-transform:uppercase}.mobile-card-table td>.actions{justify-content:flex-start}.mobile-card-table .empty{display:block!important;padding:24px}.order-list-card .table-scroll{overflow:visible}.order-list-table td[data-label="PART NUMBERS"],.order-list-table td[data-label="PO NUMBER"]{align-items:start}.order-part-list{min-width:0}.order-part-list span,.order-part-list button{overflow-wrap:anywhere}
  .data-table:not(.mobile-card-table){font-size:13px;min-width:650px}.data-table th,.data-table td{padding:9px}.line-items{min-width:650px}.service-items-table{min-width:720px}.service-items-table input{min-width:76px}.pagination-bar{display:grid;grid-template-columns:1fr 1fr;gap:7px}.pagination-bar span{grid-column:1/-1;grid-row:1;text-align:center;font-size:11px}
  .unified-record-shell{margin:-2px}.unified-record-header{padding:13px;border-radius:13px}.unified-record-header h2{font-size:21px}.unified-header-actions{width:100%;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.unified-header-actions .btn{width:100%}.unified-record-tabs{overflow-x:auto;white-space:nowrap;scroll-snap-type:x proximity;position:sticky;top:64px;z-index:15;background:var(--bg);padding:5px 0}.unified-record-tabs button{min-height:44px;scroll-snap-align:start;flex:0 0 auto}.unified-section{padding:12px}.unified-section-heading{align-items:flex-start;gap:8px}.unified-section-heading .actions{width:100%}.unified-section-heading .actions .btn{flex:1}
  .rapid-item-results-portal{position:absolute!important;left:8px!important;width:calc(100vw - 16px)!important;max-height:48dvh!important;overflow:auto;z-index:120}.rapid-result{grid-template-columns:minmax(0,1fr) auto!important;min-height:58px}.global-search-input{font-size:16px!important}.global-search-tabs{overflow-x:auto;display:flex;white-space:nowrap}.global-search-tabs button{flex:0 0 auto;min-height:42px}
  .toast-region{left:9px;right:9px;bottom:calc(74px + env(safe-area-inset-bottom));z-index:130}.toast{min-width:0;max-width:none;width:100%}
  .document-preview-toolbar{padding-top:max(10px,env(safe-area-inset-top))}.document-preview-toolbar .btn{min-width:0!important;flex:1 1 calc(50% - 6px)}.document-preview-stage{padding:7px}.document-preview-paper{font-size:8.5pt}.document-preview-totals{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quick-price-workspace{grid-template-columns:1fr!important}.quick-price-results{max-height:36dvh}.quick-price-one-off-grid{grid-template-columns:1fr!important}.quick-price-basket{min-height:0}.quick-price-table{min-width:610px}
  .scheduler{font-size:12px}.assignment-toolbar{align-items:stretch}.assignment-toolbar>*{flex:1 1 auto}.compliance-item{gap:8px}.compliance-item .who{min-width:0}.compliance-item .who strong,.compliance-item .who span{overflow-wrap:anywhere}
}

@media(max-width:420px){.grid.cards{grid-template-columns:1fr}.job-actions .btn{flex-basis:100%}.unified-header-actions{grid-template-columns:1fr}.numbering-preview-grid{grid-template-columns:1fr}.mobile-card-table td{grid-template-columns:82px minmax(0,1fr)}}
@media(max-width:760px){.top-actions #global-search-btn{display:inline-grid}.modal-frame>footer .btn:only-child{grid-column:1/-1}.mobile-nav button[data-mobile-more]{color:#d9e5ef}.mobile-nav button[data-mobile-more]:active{background:#163757}.top-actions .quick-price-top,.top-actions .flash{display:none!important}}

/* Locksmithy v2.2.1 Install 11B — mobile visual polish */
@media(max-width:760px){
  /* Strip away the heavy desktop frame on phones so records feel like a native app. */
  .content{width:100%!important;max-width:none!important;margin:0!important;padding:10px 10px 18px!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:linear-gradient(180deg,#dce8f1 0%,#eef5f9 100%)!important}
  .unified-record-shell{gap:9px!important;margin:0!important}

  /* Compact record hero: dark shell + status colour accent instead of a full saturated block. */
  .unified-record-header{display:grid!important;grid-template-columns:1fr!important;align-items:stretch!important;gap:11px!important;min-height:0!important;padding:11px!important;border:1px solid #1d5476!important;border-top:5px solid var(--record-accent)!important;border-radius:14px!important;background:linear-gradient(145deg,#08243d 0%,#0d3b5e 100%)!important;color:#fff!important;box-shadow:0 7px 18px rgba(8,35,57,.18)!important}
  .unified-record-heading{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;align-items:center!important;gap:10px!important;width:100%!important}
  .unified-close{min-height:43px!important;padding:8px 10px!important;border-radius:10px!important;background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.28)!important;font-size:12px!important}
  .unified-record-kind{font-size:8px!important;letter-spacing:.16em!important;color:#c8ddea!important;opacity:1!important}
  .unified-record-heading h2{display:block!important;margin:2px 0 0!important;font-size:22px!important;line-height:1.02!important;min-width:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .unified-record-heading h2 small{display:block!important;max-width:100%!important;margin-top:4px!important;font-size:12px!important;line-height:1.2!important;color:#e2edf4!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

  /* Primary actions become a two-row launch pad instead of one very tall vertical strip. */
  .unified-header-actions{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;align-items:stretch!important;justify-content:stretch!important;gap:6px!important;width:100%!important;max-width:none!important;overflow:visible!important}
  .unified-header-actions .service-icon-action{display:grid!important;place-items:center!important;align-content:center!important;gap:3px!important;min-width:0!important;width:100%!important;min-height:62px!important;padding:6px 3px!important;border:1px solid rgba(255,255,255,.17)!important;border-radius:10px!important;background:rgba(255,255,255,.065)!important;color:#fff!important;font-size:21px!important;line-height:1!important}
  .unified-header-actions .service-icon-action:active{background:rgba(79,255,145,.18)!important;transform:translateY(1px)}
  .unified-header-actions .service-icon-action span{display:block!important;max-width:100%!important;font-size:8px!important;line-height:1.08!important;letter-spacing:.015em!important;text-align:center!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .unified-status-pill{grid-column:1/-1!important;width:100%!important;min-height:34px!important;justify-content:center!important;padding:7px 10px!important;border-radius:9px!important;background:rgba(0,0,0,.18)!important;border:1px solid rgba(255,255,255,.25)!important;font-size:9px!important;letter-spacing:.05em!important}

  /* Field actions wrap cleanly and never run off the right side of the screen. */
  .unified-operational-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:stretch!important;gap:6px!important;padding:7px!important;overflow:visible!important;border:1px solid #9bb2c2!important;border-radius:12px!important;background:#e7f0f6!important;box-shadow:none!important}
  .unified-operational-actions .btn,.unified-operational-actions .collected-control{display:flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;min-width:0!important;width:100%!important;min-height:44px!important;padding:7px 5px!important;border-radius:9px!important;white-space:normal!important;text-align:center!important;font-size:10px!important;line-height:1.08!important}

  /* Linked records: remove the large explanatory block and use compact tappable rows. */
  .linked-records-panel{margin:0!important;padding:11px!important;border-radius:12px!important;box-shadow:0 3px 10px rgba(8,35,57,.06)!important}
  .linked-records-heading{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;flex-direction:row!important}
  .linked-records-heading h3{margin:0!important;font-size:15px!important;line-height:1.15!important}
  .linked-records-heading p{display:none!important}
  .linked-records-heading .btn{flex:0 0 auto!important;min-height:38px!important;padding:7px 9px!important;font-size:9px!important}
  .linked-record-chips{display:grid!important;grid-template-columns:1fr!important;gap:6px!important;margin-top:8px!important}
  .linked-record-chip{display:flex!important;align-items:center!important;width:100%!important;min-height:43px!important;padding:8px 10px!important;border-radius:9px!important;background:#f4f9fc!important;box-shadow:none!important;font-size:12px!important}
  .linked-record-chip small{margin-left:auto!important;font-size:8px!important;white-space:nowrap!important}

  /* Job / Work Done / Order becomes a proper segmented mobile tab bar. */
  .unified-record-layout{gap:7px!important}
  .unified-side-tabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;position:sticky!important;top:64px!important;z-index:18!important;overflow:visible!important;margin:0!important;padding:5px!important;border:1px solid #9eb5c4!important;border-radius:11px!important;background:rgba(228,238,245,.96)!important;box-shadow:0 5px 13px rgba(8,35,57,.08)!important;backdrop-filter:blur(8px)}
  .unified-tab{min-width:0!important;min-height:45px!important;padding:6px 3px!important;border:1px solid #a8bbc8!important;border-left-width:1px!important;border-radius:8px!important;background:#f4f8fb!important;box-shadow:none!important;color:#173d59!important;font-size:8px!important;line-height:1.1!important}
  .unified-tab.active{border-color:#0f476d!important;background:linear-gradient(145deg,#0a2b47,#124e73)!important;color:#fff!important;box-shadow:inset 0 3px 0 var(--record-accent)!important}
  .unified-tab b{font-size:8px!important;padding:2px 5px!important}

  /* Lighter cards and less visual noise within the record. */
  .unified-section{gap:8px!important}
  .unified-section-heading{padding:10px 11px!important;border-left-width:4px!important;border-radius:10px!important;background:#e8f1f6!important}
  .unified-section-heading h3,.unified-section-heading h4{font-size:14px!important}
  .unified-form-card,.unified-work-done-card,.unified-order-card,.unified-invoice-card,.unified-notes-panel{border-radius:11px!important;background:#f0f6fa!important;box-shadow:0 2px 8px rgba(8,35,57,.05)!important}
  .unified-form-card{padding:11px!important}
  .unified-details-form,.unified-lower-grid{gap:8px!important}

  /* Mobile list cards use less padding and clearer hierarchy. */
  .mobile-card-table tbody{gap:7px!important;padding:6px 0!important}
  .mobile-card-table tr{border-radius:11px!important;box-shadow:0 2px 7px rgba(7,20,38,.045)!important}
  .mobile-card-table td{padding:8px 10px!important}

  /* Fix the old theme !important that was forcing the bottom nav back to pale blue. */
  .mobile-nav{height:auto!important;min-height:66px!important;background:#07182a!important;border-top:1px solid #1e4866!important;box-shadow:0 -7px 22px rgba(4,20,35,.22)!important}
  .mobile-nav button{background:transparent!important;color:#c8d9e5!important;border-radius:9px!important;font-size:9px!important;line-height:1.05!important}
  .mobile-nav button span{font-size:19px!important}
  .mobile-nav button.active{background:#103958!important;color:#fff!important;box-shadow:inset 0 3px 0 var(--green)!important}
}

@media(max-width:420px){
  .unified-header-actions{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px!important}
  .unified-header-actions .service-icon-action{min-height:59px!important;font-size:20px!important}
  .unified-operational-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .unified-record-heading h2{font-size:20px!important}
}

/* Locksmithy v2.2.2 Install 11C — My Day, demo mode and physical stock bins */
.demo-company-banner{display:none;position:fixed;left:0;right:0;top:0;z-index:120;background:#8a2d00;color:#fff;border-bottom:3px solid #ffd466;padding:7px 16px;text-align:center;box-shadow:0 3px 14px rgba(0,0,0,.24);font-size:12px;letter-spacing:.04em}.demo-company-banner.visible{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}.demo-company-banner strong{font-size:13px}.demo-company-active .topbar{top:37px}.demo-company-active .sidebar{padding-top:37px}.demo-company-active .mobile-nav{bottom:0}.demo-company-active .content{padding-top:30px}.demo-mode-chip{background:#8a2d00;color:#fff;border-radius:999px;padding:6px 10px;font-weight:900;font-size:11px}.demo-settings-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.demo-settings-heading span:first-child{font-size:11px;font-weight:900;color:#8a2d00}.demo-settings-heading h2{margin:3px 0 0}.demo-record-count{margin-top:14px;padding:9px 12px;border-radius:9px;background:var(--surface-soft);font-size:11px;font-weight:800}.danger-check{border-color:#e5a37e!important;background:#fff7f2!important}
.stock-bin-location{margin:14px 0 18px;padding:13px 15px;border:2px solid #78a8c7;border-radius:12px;background:#eef7fc;display:grid;grid-template-columns:1fr auto;gap:3px 12px;align-items:center}.stock-bin-location span{font-size:11px;font-weight:850;color:#526b7d;letter-spacing:.04em}.stock-bin-location strong{font-size:28px;color:#0b1b32;letter-spacing:.05em}.stock-bin-location small{grid-column:1/-1;color:#617787;font-size:10px;font-weight:700}.stock-bin-location.missing{border-style:dashed;opacity:.8}.stock-bin-location.missing strong{font-size:18px;color:#718697}
.my-day-shell{max-width:1050px;margin:0 auto;display:grid;gap:14px}.my-day-hero{background:linear-gradient(135deg,#081a2e,#123f5e);color:#fff;border-radius:18px;padding:20px;display:flex;align-items:center;justify-content:space-between;gap:16px;box-shadow:0 10px 26px rgba(9,31,50,.16)}.my-day-hero span{font-size:10px;letter-spacing:.12em;color:#8debbb;font-weight:900}.my-day-hero h2{margin:3px 0;font-size:30px}.my-day-hero p{margin:0;color:#c8d9e5;font-size:12px}.my-day-count{min-width:88px;text-align:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:14px;padding:10px}.my-day-count strong{display:block;font-size:28px;color:#fff}.my-day-count span{color:#c8d9e5}.my-day-filter-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:10px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.my-day-periods,.my-day-scope{display:flex;gap:6px;flex-wrap:wrap}.my-day-staff{background:var(--surface);border:1px solid var(--border);border-radius:15px;overflow:hidden;box-shadow:0 5px 15px rgba(15,42,62,.07)}.my-day-staff>summary{list-style:none;cursor:pointer;padding:13px 15px;background:#edf4f8;display:flex;justify-content:space-between;align-items:center}.my-day-staff>summary::-webkit-details-marker{display:none}.my-day-staff>summary>div{display:flex;align-items:center;gap:10px}.my-day-staff summary strong{display:block;font-size:15px}.my-day-staff summary small{display:block;color:#657c8c;margin-top:2px}.my-day-avatar{width:38px;height:38px;border-radius:50%;background:#123f5e;color:#fff!important;display:grid!important;place-items:center;font-size:15px!important}.my-day-chevron{font-size:24px!important;color:#315e7c!important;transition:transform .15s}.my-day-staff[open] .my-day-chevron{transform:rotate(180deg)}.my-day-bookings{display:grid;gap:9px;padding:10px}.my-day-booking{border:1px solid #c7d7e1;border-left:5px solid #2d789f;border-radius:11px;padding:12px;background:#fff;cursor:pointer}.my-day-booking.quote{border-left-color:#e5a312;background:#fffdf6}.my-day-booking-top{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.my-day-kind{font-size:9px;font-weight:900;border-radius:999px;padding:4px 7px;background:#dcedf6;color:#155479}.my-day-kind.quote{background:#fff0bd;color:#775400}.my-day-time{margin-top:8px;font-weight:900;color:#0b1b32}.my-day-customer{margin-top:4px;font-weight:850}.my-day-description,.my-day-location,.my-day-note{margin-top:4px;color:#506878;font-size:12px}.my-day-booking .btn{margin-top:9px}
@media(max-width:760px){.demo-company-banner{padding:5px 8px;font-size:9px}.demo-company-banner span{display:none}.demo-company-active .topbar{top:29px}.demo-company-active .sidebar{padding-top:29px}.my-day-shell{gap:9px}.my-day-hero{border-radius:12px;padding:13px 14px}.my-day-hero h2{font-size:23px}.my-day-hero p{font-size:10px}.my-day-count{min-width:64px;padding:7px}.my-day-count strong{font-size:22px}.my-day-filter-card{position:sticky;top:83px;z-index:12;border-radius:10px;padding:7px}.demo-company-active .my-day-filter-card{top:112px}.my-day-periods,.my-day-scope{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.my-day-periods{grid-template-columns:repeat(4,minmax(0,1fr))}.my-day-filter-card .btn{padding:8px 4px;font-size:9px;min-height:37px}.my-day-staff{border-radius:10px}.my-day-staff>summary{padding:10px}.my-day-bookings{padding:7px;gap:7px}.my-day-booking{padding:10px}.my-day-booking .btn{width:100%;min-height:38px}.stock-bin-location{margin:8px 0 12px;padding:11px 12px;display:block}.stock-bin-location strong{display:block;font-size:30px;margin-top:2px}.stock-bin-location small{display:block;margin-top:2px}.data-table tr td[data-label="BIN / SHELF"]{background:#eef7fc!important}.data-table tr td[data-label="BIN / SHELF"]::before{color:#315e7c}.data-table tr td[data-label="BIN / SHELF"]{font-size:18px!important;font-weight:900!important;color:#0b1b32!important}.demo-company-card .btn{width:100%}}
.demo-company-active .document-preview-paper{position:relative}.demo-company-active .document-preview-paper::before{content:'TEST';position:absolute;inset:34% auto auto 12%;font-size:110px;font-weight:950;letter-spacing:.08em;color:rgba(170,35,0,.10);transform:rotate(-24deg);pointer-events:none;z-index:0}.demo-company-active .document-preview-paper>*{position:relative;z-index:1}

/* Install 11C — make physical building bin/shelf codes visible while picking/using parts */
.line-bin-location{display:block;margin-top:4px;width:max-content;max-width:100%;padding:3px 7px;border-radius:999px;background:#e6f7ee;color:#0b6842;font-size:11px;font-weight:900;letter-spacing:.04em;white-space:nowrap}
.inline-bin-chip{display:inline-flex;margin-left:5px;padding:2px 6px;border-radius:999px;background:#e6f7ee;color:#0b6842;font-size:10px;font-weight:900;vertical-align:middle}
@media(max-width:760px){.line-bin-location{font-size:12px;padding:4px 8px}.service-items-table td:first-child strong{font-size:14px}.inline-bin-chip{font-size:11px;padding:3px 7px;margin:3px 0 0;display:flex;width:max-content}}
.my-day-card-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.my-day-card-actions .btn{flex:1 1 120px}

/* Locksmithy v2.2.3 Install 11D — Xero review queue and admin payment corrections */
.xero-review-page{display:grid;gap:16px}.xero-review-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#102d46,#173d5d);color:#fff;border:0}.xero-review-hero h2{margin:3px 0 5px;font-size:clamp(1.6rem,3vw,2.35rem)}.xero-review-hero p{margin:0;max-width:820px;color:#d7e8f3;line-height:1.5}.xero-review-hero .eyebrow{font-size:.74rem;font-weight:900;letter-spacing:.15em;color:#62f49b}.xero-review-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.xero-review-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.xero-review-metrics article{padding:16px 18px;border:1px solid #d5e1e9;border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(16,45,70,.06)}.xero-review-metrics article span{display:block;color:#65788a;font-size:.73rem;font-weight:900;letter-spacing:.08em}.xero-review-metrics article strong{display:block;margin-top:5px;font-size:1.45rem;color:#102d46}.xero-review-metrics article.attention{border-color:#f6c66f;background:#fff9ed}.xero-review-metrics article.attention strong{color:#9a5c00}.xero-review-list-card{padding:0;overflow:hidden}.xero-review-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #dce6ed;background:#f7fafc;color:#516778;font-size:.78rem;font-weight:900;letter-spacing:.05em}.xero-select-all{display:inline-flex!important;align-items:center;gap:8px;margin:0!important}.xero-select-all input{width:19px;height:19px}.xero-review-table td{vertical-align:top}.xero-review-failed-row{background:#fffaf1}.xero-inline-error{max-width:360px;padding:8px 10px;border-left:3px solid #ef9e26;background:#fff4df;border-radius:6px;color:#794800;font-size:.82rem;line-height:1.35}.xero-row-actions{display:flex;gap:7px;flex-wrap:wrap}.xero-review-empty{padding:42px 20px;display:flex;flex-direction:column;gap:6px;text-align:center}.xero-review-empty strong{font-size:1.35rem;color:#17834d}.xero-result-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.xero-result-summary>div{padding:13px;border:1px solid #d9e4eb;border-radius:12px;background:#f8fbfd}.xero-result-summary span{display:block;font-size:.72rem;font-weight:900;color:#647889;letter-spacing:.08em}.xero-result-summary strong{font-size:1.5rem;color:#102d46}.xero-result-list{display:grid;gap:12px;max-height:64vh;overflow:auto;padding-right:3px}.xero-result-card{border:1px solid #d8e3ea;border-radius:13px;padding:13px;background:#fff}.xero-result-card.success{border-left:5px solid #35c86f}.xero-result-card.failed{border-left:5px solid #e55454}.xero-result-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.xero-result-card>header div span{display:block;font-size:.7rem;font-weight:900;color:#6a7c8b;letter-spacing:.08em}.xero-result-card>header div strong{font-size:1.15rem;color:#102d46}.xero-issue{margin-top:9px;padding:10px 12px;border-radius:10px;border:1px solid #eed39e;background:#fff9ec}.xero-issue.blocking{border-color:#f0b4b4;background:#fff4f4}.xero-issue>div:first-child{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.xero-issue-level{font-size:.65rem;font-weight:900;letter-spacing:.08em;color:#8c5600}.xero-issue.blocking .xero-issue-level{color:#a82e2e}.xero-issue p{margin:6px 0 0;line-height:1.42}.xero-issue-quantities{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.xero-issue-quantities span{padding:7px 8px;border-radius:7px;background:rgba(255,255,255,.72);font-size:.7rem;font-weight:800;color:#657381}.xero-issue-quantities strong{display:block;font-size:1rem;color:#102d46}.payment-admin-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.payment-admin-list>div>div{display:flex;flex-direction:column;gap:2px}.reversed-payment-history{margin-top:12px;border-top:1px solid #dbe5ec;padding-top:10px}.reversed-payment-history summary{cursor:pointer;color:#6c7882;font-weight:900;font-size:.76rem;letter-spacing:.04em}.reversed-payment-history .service-payment-list{opacity:.74;margin-top:8px}.payment-delete-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:13px}.payment-delete-summary>div{padding:12px;border:1px solid #dbe5ec;border-radius:10px;background:#f7fafc}.payment-delete-summary span{display:block;font-size:.69rem;font-weight:900;color:#647889;letter-spacing:.07em}.payment-delete-summary strong{display:block;margin-top:3px;color:#102d46}.invoice-xero-review-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;margin:0 0 12px;border-radius:10px;background:#eef7fc;border:1px solid #cce1ef}.invoice-xero-review-banner.failed{background:#fff7e8;border-color:#f2cf8b}.invoice-xero-review-banner p{margin:3px 0 0;font-size:.8rem;color:#587082}.invoice-xero-review-banner.failed p{color:#825500}
@media(max-width:900px){.xero-review-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.xero-review-hero{align-items:flex-start;flex-direction:column}.xero-review-actions{width:100%;justify-content:stretch}.xero-review-actions .btn{flex:1}.xero-review-table .xero-row-actions{justify-content:flex-end}.payment-delete-summary{grid-template-columns:1fr}}
@media(max-width:520px){.xero-review-metrics{grid-template-columns:1fr 1fr}.xero-review-metrics article{padding:12px}.xero-review-metrics article strong{font-size:1.15rem}.xero-result-summary{grid-template-columns:1fr 1fr 1fr}.xero-issue-quantities{grid-template-columns:1fr}.payment-admin-list>div{align-items:flex-start}.invoice-xero-review-banner{align-items:flex-start;flex-direction:column}}

/* Locksmithy v2.2.3 Install 11D — combined Stock / Xero / Reporting expansion */
.stock-management-hero,.reporting-hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;background:linear-gradient(145deg,#08243d,#0f476d);color:#fff;border-color:#1b5276}.stock-management-hero h2,.reporting-hero h2{margin:5px 0 7px;font-size:clamp(24px,3vw,38px)}.stock-management-hero p,.reporting-hero p{max-width:850px;margin:0;color:#cfe0eb;line-height:1.55}.stock-management-hero .eyebrow,.reporting-hero .eyebrow{color:#4fff91}.stock-management-filters,.stock-transfer-locations,.report-range-controls{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:14px}.stock-management-filters label,.stock-transfer-locations label,.report-range-controls label,.stock-batch-footer label{display:grid;gap:5px;font-size:9px;font-weight:900;letter-spacing:.05em;color:#577184}.stock-management-filters input,.stock-management-filters select,.stock-transfer-locations select,.report-range-controls input,.stock-batch-footer input{min-height:39px}.stock-management-filters label:has([data-stock-search]){flex:1 1 280px}.stock-mass-table{max-height:62vh;border:1px solid #d7e2e9;border-radius:11px}.stock-mass-table thead{position:sticky;top:0;z-index:2}.stock-mass-input,.stock-mass-table input[type=number]{min-width:90px;width:100%;max-width:130px;padding:7px 8px}.stock-batch-footer{position:sticky;bottom:0;z-index:4;display:flex;gap:10px;align-items:flex-end;margin:14px -4px -4px;padding:11px;background:rgba(245,249,251,.96);border:1px solid #d7e2e9;border-radius:11px;backdrop-filter:blur(8px)}.stock-batch-footer .grow{flex:1}.stock-needs-order{background:#fff7e9!important}.stock-needs-order td:first-child{box-shadow:inset 4px 0 0 #e19418}.report-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:13px 0}.report-kpis article{padding:15px;border:1px solid #d6e2e9;background:#fff;border-radius:12px}.report-kpis span{display:block;font-size:9px;font-weight:900;color:#62798a;letter-spacing:.06em}.report-kpis strong{display:block;margin-top:4px;font-size:23px;color:#0d304b}.xero-account-settings{margin-top:16px;padding:15px;border:1px solid #d6e2e9;border-radius:12px;background:#f7fafc}.xero-review-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.xero-review-tabs .btn span{display:inline-grid;place-items:center;min-width:21px;height:21px;margin-left:5px;padding:0 6px;border-radius:999px;background:rgba(15,71,109,.1)}.xero-review-tabs .active{background:#0f476d;color:#fff}.inline-line-input.xero-account{min-width:145px;max-width:210px;font-size:10px}.credit-edit-table input,.credit-edit-table select{min-width:90px}.credit-edit-table input[name=description]{min-width:260px}
@media(max-width:900px){.report-kpis{grid-template-columns:repeat(2,1fr)}.stock-management-hero,.reporting-hero{display:block}.report-range-controls{margin-top:12px}.stock-batch-footer{position:static;display:grid;grid-template-columns:1fr}.stock-batch-footer .btn{width:100%}}
@media(max-width:520px){.report-kpis{grid-template-columns:1fr 1fr}.report-kpis strong{font-size:18px}.stock-management-filters,.stock-transfer-locations{display:grid;grid-template-columns:1fr;width:100%}.stock-management-filters label{width:100%}}
/* Install 11D combined supplier-invoice line review */
.supplier-invoice-edit-table input,.supplier-invoice-edit-table select{min-width:115px;width:100%}.supplier-invoice-edit-table td:first-child input{min-width:260px}.supplier-credit-totals{display:flex;justify-content:flex-end;gap:18px;flex-wrap:wrap;margin-top:14px;padding:12px 14px;border-radius:10px;background:var(--surface-soft,#f4f7f9);font-size:.78rem;font-weight:800}.supplier-credit-totals strong{font-size:.95rem}
@media(max-width:720px){.supplier-credit-totals{justify-content:flex-start}.supplier-invoice-edit-table td:first-child input{min-width:210px}}

/* Install 11D2 — trial/payment gate and SMS preference controls */
.trial-banner{position:sticky;top:0;z-index:55;padding:9px 18px;background:#fff2c9;border-bottom:1px solid #e7ca69;color:#5f4700;font-size:.78rem;font-weight:900;letter-spacing:.02em;display:flex;align-items:center;justify-content:center;gap:12px;text-align:center}.trial-banner.hidden{display:none}.trial-banner .btn{padding:6px 11px;font-size:.7rem}.billing-lock-screen{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 80% 10%,rgba(79,255,145,.13),transparent 32%),linear-gradient(145deg,#071b2c,#123c59)}.billing-lock-screen.hidden{display:none}.billing-lock-card{width:min(640px,100%);background:#fff;border-radius:24px;padding:38px;box-shadow:0 30px 90px rgba(0,0,0,.28);text-align:center}.billing-lock-card img{width:min(300px,80%);margin:0 auto 26px}.billing-lock-kicker{display:inline-flex;padding:7px 11px;border-radius:999px;background:#fff1d7;color:#855900;font-size:.7rem;font-weight:1000;letter-spacing:.08em}.billing-lock-card h1{margin:16px 0 10px;color:#102f46;font-size:clamp(2rem,5vw,3.1rem)}.billing-lock-card p{color:#617887;line-height:1.65}.billing-lock-detail{margin:22px 0;padding:16px;border:1px solid #dce6eb;background:#f6fafb;border-radius:13px;color:#345369}.billing-lock-actions{justify-content:center;margin-bottom:18px}.sms-compliance-lock{padding:15px 16px;border:1px solid #bad4c5;background:#effaf3;border-radius:12px;color:#244d36;line-height:1.55}.sms-compliance-lock strong{display:block;margin-bottom:5px}.sms-blocked-table td:first-child{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.sms-status-pill{display:inline-flex;padding:4px 8px;border-radius:999px;background:#ffe3e1;color:#93261e;font-size:.68rem;font-weight:900}@media(max-width:620px){.billing-lock-card{padding:26px 19px;border-radius:18px}.trial-banner{position:relative;flex-direction:column;gap:7px}}

/* Install 11D2A — Square platform subscription billing */
.platform-square-overlay{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:24px;background:rgba(4,18,30,.78);backdrop-filter:blur(8px);overflow:auto}.platform-square-panel{width:min(760px,100%);max-height:calc(100vh - 30px);overflow:auto;background:#fff;border:1px solid #d4e2e9;border-radius:20px;box-shadow:0 32px 100px rgba(0,0,0,.36);padding:24px}.platform-square-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.platform-square-panel h2{margin:3px 0 0;color:#102f46;font-size:1.7rem}.platform-square-panel .eyebrow{font-size:.68rem;font-weight:1000;letter-spacing:.09em;color:#19854d}.platform-square-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0 12px}.platform-square-summary>div{padding:13px 14px;border:1px solid #d8e4ea;background:#f7fafc;border-radius:11px}.platform-square-summary span,.platform-square-card-wrap>span{display:block;margin-bottom:4px;color:#637889;font-size:.68rem;font-weight:1000;letter-spacing:.07em}.platform-square-summary strong{color:#102f46;font-size:1rem}.platform-square-trial-note{margin:0 0 15px;padding:11px 13px;border:1px solid #b9dcc7;background:#effaf3;border-radius:10px;color:#28523a;line-height:1.45}.platform-square-card-wrap{padding:12px;border:1px solid #d8e4ea;border-radius:11px;background:#fff}.platform-square-card-wrap #platform-square-card{min-height:92px}.platform-square-consent{display:flex!important;align-items:flex-start;gap:10px;padding:12px 13px;border:1px solid #d8e4ea;border-radius:10px;background:#f7fafc;line-height:1.45}.platform-square-consent input{width:20px!important;height:20px!important;min-height:20px!important;flex:0 0 auto;margin-top:1px}.platform-square-consent span{font-size:.8rem;font-weight:700;color:#36576a}.platform-square-status{min-height:20px;font-size:.8rem;font-weight:850}.platform-square-status.success{padding:10px 12px;border-radius:9px;background:#eaf9ef;color:#176c3c}.platform-square-status.error{padding:10px 12px;border-radius:9px;background:#fff0f0;color:#9a2b2b}.platform-square-fine{display:block;margin-top:14px;color:#6b7e8a;line-height:1.45}.billing-lock-card #billing-lock-pay{min-width:190px}
@media(max-width:620px){.platform-square-overlay{padding:0;place-items:stretch}.platform-square-panel{max-height:none;min-height:100vh;border-radius:0;padding:20px 16px}.platform-square-summary{grid-template-columns:1fr}.platform-square-panel .form-grid{grid-template-columns:1fr}.platform-square-panel .form-grid .full{grid-column:1}.platform-square-panel .actions{display:grid}.platform-square-panel .actions .btn{width:100%}}

/* v2.3.0 / Install 11D3 — platform commercial/security controls */
.site-owner-security-kicker{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid rgba(255,255,255,.18);border-radius:999px;font-size:12px;font-weight:900;letter-spacing:.08em}
.support-mode-banner{position:sticky;top:0;z-index:38;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 18px;background:#7a3300;color:#fff;border-bottom:2px solid #ffb15c;box-shadow:0 4px 15px rgba(0,0,0,.18)}
.support-mode-banner.hidden{display:none}
.support-mode-banner strong{font-weight:950;letter-spacing:.04em}.support-mode-banner .support-company{font-weight:800}.support-mode-banner .support-mode-state{padding:4px 8px;border:1px solid rgba(255,255,255,.45);border-radius:999px;font-size:11px;font-weight:900}.support-mode-banner .spacer{flex:1}.support-mode-banner button{border-color:rgba(255,255,255,.5)}
.platform-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px;margin:0 0 16px}.platform-metric{background:var(--panel,#fff);border:1px solid var(--border,#dce4ec);border-radius:12px;padding:14px}.platform-metric span{display:block;font-size:11px;font-weight:800;letter-spacing:.05em;opacity:.68}.platform-metric strong{display:block;font-size:26px;margin-top:4px}.platform-metric.warn strong{color:#a34b00}.platform-metric.danger strong{color:#a51616}
.billing-tier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:12px}.billing-tier-card{border:1px solid var(--border,#dce4ec);border-radius:13px;padding:16px;background:var(--panel,#fff)}.billing-tier-card.current{outline:2px solid #2f7a56}.billing-tier-card h3{margin:0 0 4px}.billing-tier-price{font-size:28px;font-weight:950}.billing-tier-card small{display:block;margin-top:7px;opacity:.7}.billing-tier-card .tier-sms{font-weight:850;margin-top:8px}
.sms-meter{height:12px;background:rgba(100,110,130,.16);border-radius:99px;overflow:hidden;margin:9px 0}.sms-meter>span{display:block;height:100%;background:currentColor;border-radius:99px;max-width:100%}.sms-usage-summary{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px;font-weight:800}
.billing-history{display:grid;gap:9px}.billing-history-item{border-left:3px solid var(--border,#dce4ec);padding:8px 10px}.billing-history-item strong{display:block}.billing-history-item small{opacity:.7}
.platform-company-tools{display:flex;gap:6px;flex-wrap:wrap}.platform-status-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.platform-health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.platform-health-item{border:1px solid var(--border,#dce4ec);border-radius:12px;padding:14px}.platform-health-item strong{display:block;font-size:18px;margin-top:4px}
.onboarding-checklist{display:grid;gap:8px}.onboarding-step{display:flex;align-items:flex-start;gap:10px;padding:10px;border:1px solid var(--border,#dce4ec);border-radius:10px}.onboarding-step input{margin-top:3px}.onboarding-step.done{opacity:.65}.onboarding-step strong{display:block}.onboarding-step small{display:block;opacity:.68;margin-top:2px}
.security-danger-zone{border-color:#e4b0b0!important}.security-danger-zone h2{color:#9f1c1c}.support-readonly-notice{background:#fff4d8;color:#6b4800;padding:10px 14px;border-bottom:1px solid #ebc979;font-size:12px;font-weight:850}
@media(max-width:720px){.support-mode-banner{padding:9px 11px}.support-mode-banner .spacer{display:none}.platform-metric strong{font-size:22px}}

/* Install 11D3 billing + SMS allowances */
.billing-tier-card.selected{outline:2px solid #2f7e5d;box-shadow:0 0 0 4px rgba(47,126,93,.10)}
.sms-usage-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.sms-usage-summary>div,.sms-usage-inline{border:1px solid var(--line,#d8e2e8);border-radius:10px;padding:12px;background:#f7fafb}.sms-usage-summary span,.sms-usage-inline span{display:block;color:#667c8a;font-size:11px;font-weight:800}.sms-usage-summary strong,.sms-usage-inline strong{display:block;font-size:18px;color:#173a52}.sms-usage-meter{height:12px;border-radius:999px;background:#dce6eb;overflow:hidden;margin:10px 0 14px}.sms-usage-meter i{display:block;height:100%;background:currentColor;color:#2f7e5d;border-radius:inherit}.sms-usage-inline{display:grid;gap:3px;margin:0 0 14px}
@media(max-width:600px){.sms-usage-summary{grid-template-columns:1fr}}


/* v12.0.11 scheduling + company DOC preview + PO email hotfix */
.assignment-block[draggable="true"]{cursor:grab;user-select:none}.assignment-block[draggable="true"]:active{cursor:grabbing}.assignment-block.dragging{opacity:.42;outline:2px dashed var(--green);z-index:20}.staff-timeline.drop-ready::after{content:'DROP HERE · CONFIRM STAFF & TIME';position:absolute;inset:4px;z-index:25;display:grid;place-items:center;border:2px dashed var(--green);border-radius:8px;background:rgba(234,255,242,.88);color:#12623d;font-size:10px;font-weight:950;letter-spacing:.04em;pointer-events:none}
.document-preview-docx-styles{display:none}.document-preview-docx{min-width:max-content;margin:0 auto}.document-preview-docx .docx-wrapper{padding:0!important;background:transparent!important}.document-preview-docx .docx-wrapper>section.docx{margin:0 auto 22px!important;box-shadow:0 12px 34px rgba(5,25,42,.36)!important}.document-preview-fallback-warning{max-width:900px;margin:0 auto 14px;padding:12px 15px;border:1px solid #b78820;border-radius:9px;background:#fff4cf;color:#664b00;font-size:10px;font-weight:800}.document-preview-fallback-warning small{font-weight:600}.document-preview-toolbar button:disabled{opacity:.48;cursor:wait}
@media(max-width:900px){.document-preview-docx{transform-origin:top left}.document-preview-docx .docx-wrapper{padding:0!important}}
@media print{body.document-preview-printing .document-preview-docx{margin:0!important}body.document-preview-printing .document-preview-docx .docx-wrapper{background:#fff!important;padding:0!important}body.document-preview-printing .document-preview-docx .docx-wrapper>section.docx{margin:0 auto!important;box-shadow:none!important}}


/* ===== V12 MOBILE RULES MERGED INTO APP.CSS FOR V13.0.2 ===== */
/* Locksmithy V12 mobile-first layer. Desktop depth is preserved; phones prioritise field work. */
:root{--v12-safe-bottom:env(safe-area-inset-bottom,0px)}
.v12-network-badge{position:fixed;right:12px;bottom:calc(74px + var(--v12-safe-bottom));z-index:1200;background:#0d6b45;color:#fff;padding:5px 9px;border-radius:999px;font:700 10px/1 system-ui;letter-spacing:.05em;opacity:.78;pointer-events:none}.v12-network-badge.offline{background:#9d5b00;opacity:1}
.v12-card-head,.v12-page-actions,.v12-list-row,.v12-stock-ai,.v12-knowledge header{display:flex;align-items:center;gap:12px;justify-content:space-between}.v12-page-actions{margin:0 0 14px;flex-wrap:wrap}.v12-page-actions p{margin:0;color:var(--muted,#627083)}.v12-list-row{padding:13px 0;border-bottom:1px solid rgba(120,140,160,.2)}.v12-list-row:last-child{border-bottom:0}.v12-list-row>div:first-child{display:flex;flex-direction:column;gap:3px}.v12-list-row span,.v12-list-row small{color:var(--muted,#627083)}
.v12-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.v12-kanban{display:grid;grid-template-columns:repeat(6,minmax(210px,1fr));gap:12px;overflow:auto;padding-bottom:12px}.v12-kanban>section{background:rgba(120,140,160,.08);border:1px solid rgba(120,140,160,.18);border-radius:14px;min-height:220px}.v12-kanban>section>header{display:flex;justify-content:space-between;padding:12px;font-weight:800;font-size:12px;letter-spacing:.06em}.v12-kanban>section>div{padding:8px}.v12-lead{display:flex;flex-direction:column;gap:5px;background:var(--card,#fff);border:1px solid rgba(120,140,160,.18);border-radius:10px;padding:11px;margin-bottom:8px;cursor:pointer}.v12-lead span,.v12-lead small{font-size:12px;color:var(--muted,#627083)}
.v12-stock-ai{display:grid;grid-template-columns:minmax(240px,2fr) repeat(4,minmax(80px,.6fr));padding:12px 0;border-bottom:1px solid rgba(120,140,160,.2)}.v12-stock-ai>div{display:flex;flex-direction:column}.v12-stock-ai small{font-size:10px;color:var(--muted,#627083);font-weight:700}.v12-knowledge{cursor:pointer}.v12-knowledge header{margin-bottom:8px}.v12-knowledge p{margin-bottom:0}.v12-secret{width:100%;min-height:110px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}.v12-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:15px}.v12-metrics article{padding:18px;border-radius:14px;background:var(--card,#fff);border:1px solid rgba(120,140,160,.2);display:flex;flex-direction:column}.v12-metrics strong{font-size:28px}.v12-metrics span{font-size:11px;font-weight:700;color:var(--muted,#627083)}
.v12-sheet-backdrop{position:fixed;inset:0;z-index:3000;background:rgba(4,12,24,.68);display:flex;align-items:flex-end;justify-content:center;padding:10px}.v12-sheet{width:min(620px,100%);background:var(--card,#fff);border-radius:22px 22px 12px 12px;padding:16px;box-shadow:0 -20px 60px rgba(0,0,0,.28)}.v12-sheet header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.v12-sheet header button{border:0;background:transparent;font-size:28px}.v12-sheet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.v12-sheet-grid button,.v12-sheet-grid a{min-height:86px;border:1px solid rgba(120,140,160,.25);border-radius:14px;background:rgba(120,140,160,.06);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-decoration:none;color:inherit;font-size:22px}.v12-sheet-grid b{font-size:11px;letter-spacing:.04em}
.v12-search-hit{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid rgba(120,140,160,.2);padding:12px;background:transparent;color:inherit}.v12-offline-link{display:block;text-align:center;padding:14px;border-radius:12px;background:rgba(60,160,120,.1);font-weight:800;text-decoration:none;color:inherit}.v12-meter{display:flex;justify-content:space-between;gap:10px;align-items:end}.v12-meter strong{font-size:24px}.v12-meter span{color:var(--muted,#627083)}
@media(max-width:820px){
  body{padding-bottom:calc(72px + var(--v12-safe-bottom))}.content{padding:12px 10px 95px}.topbar{padding:9px 10px;min-height:58px}.topbar h1{font-size:18px}.topbar p{font-size:11px}.top-actions .quick-price-top,.top-actions .flash{display:none!important}.mobile-nav{height:calc(64px + var(--v12-safe-bottom));padding-bottom:var(--v12-safe-bottom);grid-template-columns:repeat(5,1fr);z-index:1500}.mobile-nav button{min-height:58px;font-size:9px;gap:2px}.mobile-nav button span{font-size:20px}.mobile-nav .v12-nav-plus{transform:translateY(-11px);border-radius:50%;width:56px;height:56px;min-height:56px;margin:auto;background:#38e58c;color:#062419;box-shadow:0 8px 24px rgba(40,220,130,.35)}.mobile-nav .v12-nav-plus span{font-size:30px}.v12-network-badge{bottom:calc(70px + var(--v12-safe-bottom));right:8px}
  .v12-mobile-home{display:flex;flex-direction:column;gap:12px}.v12-mobile-hero{background:linear-gradient(135deg,#0b1b32,#143a58);color:#fff;border-radius:18px;padding:18px}.v12-mobile-hero span{color:#4fff91;font-size:10px;font-weight:800;letter-spacing:.12em}.v12-mobile-hero h2{margin:5px 0;font-size:25px}.v12-mobile-hero p{margin:0;color:#bfd0df}.v12-next-job{background:var(--card,#fff);border:1px solid rgba(120,140,160,.2);border-radius:16px;padding:15px;display:flex;gap:12px;justify-content:space-between;align-items:center}.v12-next-job>div{display:flex;flex-direction:column;min-width:0}.v12-next-job small{color:#2bbf76;font-weight:800}.v12-next-job strong{font-size:21px}.v12-next-job p,.v12-next-job span{margin:3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v12-quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.v12-quick-grid button{min-height:58px;border-radius:13px;border:1px solid rgba(120,140,160,.2);background:var(--card,#fff);color:inherit}.v12-quick-grid button.accent{background:#37e28a;color:#052417;border:0}.v12-run-card{width:100%;border:0;border-bottom:1px solid rgba(120,140,160,.18);background:transparent;color:inherit;display:grid;grid-template-columns:64px 1fr;text-align:left;padding:12px 0}.v12-run-card time{font-weight:800;color:#2bbf76}.v12-run-card div{display:flex;flex-direction:column;min-width:0}.v12-run-card span,.v12-run-card small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted,#627083)}
  .v12-two{grid-template-columns:1fr}.v12-kanban{grid-template-columns:repeat(6,82vw)}.v12-stock-ai{grid-template-columns:1.6fr repeat(2,.6fr);gap:8px}.v12-stock-ai>div:nth-child(4),.v12-stock-ai>div:nth-child(5){display:none}.v12-metrics{grid-template-columns:1fr 1fr}.v12-metrics article:last-child{grid-column:1/-1}.v12-sheet-grid{grid-template-columns:repeat(2,1fr)}
  #v12-job-dock{position:fixed;left:6px;right:6px;bottom:calc(68px + var(--v12-safe-bottom));z-index:1450;background:#0b1b32;border:1px solid rgba(255,255,255,.12);border-radius:15px;display:grid;grid-template-columns:repeat(5,1fr);padding:6px;box-shadow:0 10px 30px rgba(0,0,0,.35)}#v12-job-dock button{border:0;background:transparent;color:#dce8f3;min-height:50px;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:18px;gap:2px}#v12-job-dock button span{font-size:8px;font-weight:800}#v12-job-dock button.primary{background:#36e18a;color:#052417;border-radius:10px}#v12-job-dock button:disabled{opacity:.35}
  body[data-section="jobs"] .content{padding-bottom:160px}
}
@media(min-width:821px){#v12-job-dock{display:none}.v12-mobile-home{display:none}}


/* ===== V13 NOVA RULES MERGED INTO APP.CSS FOR V13.0.2 ===== */
/* Locksmithy Business V13 Nova — dark production theme.
   Loaded after the existing V12 styles so functionality/layout rules remain intact. */
:root{
  --nova-bg:#020b18;
  --nova-bg-2:#06152a;
  --nova-sidebar:#031226;
  --nova-panel:#071b34;
  --nova-panel-2:#0a2341;
  --nova-panel-3:#0d2b4f;
  --nova-input:#061a32;
  --nova-line:#17466d;
  --nova-line-soft:#0e3559;
  --nova-text:#f2f7ff;
  --nova-muted:#91a9c1;
  --nova-blue:#1683ff;
  --nova-cyan:#18d8ff;
  --nova-green:#25e68a;
  --nova-purple:#8a56ff;
  --nova-warn:#ffbd3e;
  --nova-danger:#ff5d65;
  --nova-shadow:0 18px 46px rgba(0,0,0,.34);
  --bg:var(--nova-bg-2);
  --card:var(--nova-panel);
  --surface:var(--nova-panel);
  --surface-2:var(--nova-panel-2);
  --input:var(--nova-input);
  --text:var(--nova-text);
  --muted:var(--nova-muted);
  --border:var(--nova-line);
  --navy:#06162b;
  --navy-2:#0a2341;
  --navy-3:#0f335b;
  --green:var(--nova-green);
  --green-dark:#13bb69;
  --blue:var(--nova-blue);
  --purple:var(--nova-purple);
  --yellow:var(--nova-warn);
  --danger:var(--nova-danger);
  --shadow:var(--nova-shadow);
}
html,body{background:radial-gradient(circle at 75% -10%,rgba(19,126,255,.13),transparent 34%),linear-gradient(155deg,#010712,#041429 45%,#020b18)!important;color:var(--nova-text)!important;color-scheme:dark}
body::before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(24,216,255,.025) 1px,transparent 1px),linear-gradient(rgba(24,216,255,.02) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.28),transparent 68%)}
.app-shell{grid-template-columns:240px minmax(0,1fr)!important;background:transparent!important}
.app-column{margin:0!important;border:0!important;border-radius:0!important;overflow:visible!important;background:linear-gradient(155deg,rgba(4,18,37,.98),rgba(2,12,25,.98))!important;box-shadow:none!important;min-height:100vh!important}
.sidebar{background:linear-gradient(180deg,#03142a 0%,#020b18 100%)!important;border-right:1px solid #123a61!important;box-shadow:12px 0 34px rgba(0,0,0,.17)}
.logo-link{padding:14px 14px 9px!important;border-bottom:1px solid rgba(40,121,181,.18)}
.logo-link img{width:100%!important;height:92px!important;max-height:92px!important;object-fit:contain!important;object-position:left center!important;filter:drop-shadow(0 0 14px rgba(49,160,255,.23))}
.sidebar nav{padding:8px!important;gap:2px!important;scrollbar-width:thin;scrollbar-color:#1b4f77 transparent}
.nav-section{color:#6e92b2!important;font-size:9px!important;letter-spacing:1.45px!important;padding:13px 10px 5px!important}
.nav-button{color:#c9dbeb!important;padding:9px 10px!important;border:1px solid transparent!important;border-radius:9px!important;font-size:12px!important;min-height:38px}
.nav-button:hover{background:#0a294a!important;border-color:#164c78!important;color:#fff!important}
.nav-button.active{background:linear-gradient(100deg,#0b51be,#126fff)!important;border-color:#258aff!important;box-shadow:0 7px 18px rgba(15,104,255,.23)!important;color:#fff!important}
.nav-button.active::before{display:none!important}.nav-button.active{box-shadow:0 7px 18px rgba(15,104,255,.23)!important}
.nav-icon{width:21px!important;font-size:15px}
.sidebar-footer{border-top:1px solid #123a61!important;background:rgba(1,8,17,.45);padding:9px!important}.sidebar-footer .nav-button{font-size:10px!important;min-height:32px;padding:6px 8px!important}.build-number{color:#5e83a4!important;font-size:9px!important;padding:8px 8px 2px}
.tenant-pill{background:#071d36!important;border:1px solid #123f66!important}.tenant-pill strong{color:#eaf5ff!important}.tenant-pill span{color:#74a3c8!important}
.topbar{height:72px!important;background:rgba(3,15,31,.94)!important;border-bottom:1px solid #123b61!important;box-shadow:0 8px 28px rgba(0,0,0,.18)!important;backdrop-filter:blur(16px);padding:10px 18px!important}
.topbar h1{color:#f4f8ff!important;font-size:21px!important}.topbar p{color:#6f94b4!important}.top-actions .icon-button{color:#bcd2e7!important}.top-actions .icon-button:hover{background:#0a2948!important;color:#fff!important}.top-actions .btn{border:1px solid #1b5c8e!important}
.btn.quick-price-top{background:#092b51!important;color:#8fdfff!important;border-color:#1d73b2!important}.btn.flash{background:linear-gradient(135deg,#0e8b55,#20d887)!important;color:#fff!important;border-color:#2ce797!important;box-shadow:0 5px 18px rgba(29,226,135,.18)!important}
.content{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;width:100%!important;max-width:1780px!important;margin:0 auto!important;padding:18px!important;min-height:calc(100vh - 72px)!important;color:var(--nova-text)!important}
.card,.table-card,.job-editor-card,.assignment-board-card,.unassigned-job-card,.auth-card,.modal-frame,.compliance-item,.check-option,.job-history-card,.quick-customer-panel,.xero-status-card>div,.unified-section,.unified-form-card,.service-form-panel,.service-items-card,.service-history-card,.unified-record-shell,.stocktake-card,.report-card{background:linear-gradient(150deg,rgba(8,30,57,.98),rgba(5,22,43,.98))!important;border:1px solid #15466f!important;box-shadow:0 14px 38px rgba(0,0,0,.24)!important;color:var(--nova-text)!important}
.card h1,.card h2,.card h3,.card h4,.table-card h1,.table-card h2,.table-card h3,.service-form-panel h3,.unified-section h3,.unified-form-card h4{color:#f4f8ff!important}
.metric::after{background:rgba(24,216,255,.08)!important}.metric .label,.metric .detail{color:#7fa2bf!important}.metric .value{color:#fff!important}
input,select,textarea,.customer-combobox-input,.global-search-input{background:#061a31!important;border:1px solid #1b527c!important;color:#f1f7ff!important;box-shadow:none!important}input::placeholder,textarea::placeholder{color:#567d9d!important}input:focus,select:focus,textarea:focus,.customer-combobox-input:focus{border-color:#20a5ff!important;box-shadow:0 0 0 3px rgba(22,131,255,.15)!important}
label{color:#aac2d6!important}label small,.muted,.row-sub,.detail,.rapid-entry-hint{color:#789ab7!important}
.btn{border:1px solid transparent!important;border-radius:8px!important}.btn.primary{background:linear-gradient(135deg,#0b62e8,#138cff)!important;color:#fff!important;box-shadow:0 7px 20px rgba(16,112,244,.19)}.btn.primary:hover{background:linear-gradient(135deg,#1577fa,#27a3ff)!important}.btn.secondary{background:#0a2948!important;border-color:#174f79!important;color:#d9e9f7!important}.btn.secondary:hover{background:#10385e!important;border-color:#2372a8!important}.btn.danger{background:#401720!important;border-color:#8c2d3b!important;color:#ffb6bd!important}.link-btn{color:#55baff!important}.icon-button{color:#bdd3e5!important}.icon-button:hover{background:#0b2d4f!important}
.alert.info{background:#092b4d!important;color:#bfe3ff!important;border:1px solid #175b8c!important}.alert.warning{background:#392d0c!important;color:#ffe1a1!important;border:1px solid #80651e!important}.alert.danger{background:#411820!important;color:#ffc1c6!important;border:1px solid #8c2b39!important}
.table-card{overflow:hidden!important}.data-table th,.quick-price-table th,.line-items th{background:#061a31!important;color:#7fa6c7!important;border-bottom:1px solid #1b527c!important}.data-table td,.quick-price-table td,.line-items td{border-bottom-color:#103b61!important;color:#dbe9f5!important}.data-table tbody tr:nth-child(even){background:rgba(16,60,96,.16)!important}.data-table tbody tr:hover{background:#0b2948!important}.row-title{color:#f6f9ff!important}.data-table a,.record-link{color:#54b9ff!important}
.badge{background:#102f4d!important;color:#b8d3e7!important;border:1px solid #1b527c!important}.badge.open,.badge.blue,.badge.scheduled{background:#0b3a79!important;color:#8dc3ff!important;border-color:#1766bc!important}.badge.completed,.badge.green,.badge.paid,.badge.successful{background:#073d2b!important;color:#66f2ab!important;border-color:#118a58!important}.badge.dead,.badge.red,.badge.overdue,.badge.expired,.badge.unsuccessful{background:#481923!important;color:#ff949c!important;border-color:#922f3d!important}.badge.quote,.badge.yellow,.badge.waiting{background:#3d2f0c!important;color:#ffd979!important;border-color:#85671b!important}.badge.po,.badge.orange{background:#40260d!important;color:#ffc173!important;border-color:#84531d!important}.badge.purple{background:#271850!important;color:#b995ff!important;border-color:#55369b!important}
.modal{background:transparent!important;color:var(--nova-text)!important}.modal::backdrop{background:rgba(0,5,12,.82)!important;backdrop-filter:blur(6px)!important}.modal-frame>header,.modal-frame>footer{background:#071c35!important;border-color:#15466f!important}.modal-frame>#modal-body{background:#041326!important;color:#eef6ff!important}
.quick-customer-overlay,#workflow-overlay{background:rgba(0,5,13,.72)!important;backdrop-filter:blur(7px)!important;z-index:2147483000!important}.quick-customer-panel,.workflow-overlay-panel{z-index:2147483001!important;position:relative!important;background:linear-gradient(155deg,#092342,#041326)!important;border-color:#2373a9!important;box-shadow:0 34px 100px rgba(0,0,0,.68)!important}.quick-customer-body{background:transparent!important}.quick-customer-panel>header,.quick-customer-panel>footer{border-color:#174d77!important;background:rgba(4,19,38,.78)!important}
/* Ensure nested workflow/customer overlays always sit above the native record dialog. */
dialog[open]{z-index:100000!important}.quick-customer-overlay{position:fixed!important;inset:0!important}
.page-toolbar{padding:2px 0 0}.page-toolbar .search-box{background:#061a31!important}.page-toolbar .spacer{min-width:6px}
.job-actions,.unified-operational-actions{background:#061a31!important;border:1px solid #164a74!important;border-radius:11px!important;padding:8px!important}
.unified-record-header,.service-record-header{background:linear-gradient(120deg,#071f3c,#05172d)!important;border:1px solid #17527e!important}.unified-side-tabs{background:#041326!important;border-color:#164a74!important}.unified-side-tabs button{color:#8faccc!important}.unified-side-tabs button.active{background:#0b5bd1!important;color:#fff!important}.unified-linked-job{background:#071d38!important;border-color:#164a74!important}
.service-edit-grid{gap:12px!important}.service-form-panel{box-shadow:none!important}.service-quickbar{background:#061a31!important;border-color:#174f79!important}.service-quick-button{background:#0a2948!important;color:#d9e9f7!important;border-color:#174f79!important}.service-quick-button:hover{background:#0d3a65!important}.service-quick-number{color:#78bfff!important}
.job-history-item{border-color:#123b60!important}.job-history-icon{background:#0c3154!important}.job-history-message,.timeline-item{background:#071f3a!important;border-color:#155178!important}.job-history-actor{color:#90adc5!important}.history-file-button{background:#0b5fd5!important}
.customer-combobox-menu,.customer-search-results,.rapid-entry-results{background:#071b34!important;border:1px solid #1a5b89!important;box-shadow:0 18px 50px rgba(0,0,0,.5)!important}.customer-combobox-menu button,.customer-search-results button,.rapid-entry-results button{color:#dcebf7!important;border-color:#123f66!important;background:#071b34!important}.customer-combobox-menu button:hover,.customer-search-results button:hover,.rapid-entry-results button:hover{background:#0c3155!important}
.assignment-toolbar,.assignment-view-settings{background:transparent!important}.assignment-board-card{padding:0!important;overflow:hidden!important}.assignment-board{background:#041326!important}.assignment-corner,.assignment-time-header,.assignment-staff-cell{background:#061a31!important;border-color:#164a74!important;color:#d7e8f5!important}.staff-timeline{background:linear-gradient(to right,#031020 0 var(--work-start),#061a31 var(--work-start) var(--work-end),#031020 var(--work-end) 100%)!important;border-color:#123c61!important}.assignment-time-header>div{color:#7199b8!important}.assignment-block{box-shadow:0 6px 15px rgba(0,0,0,.28)!important}.assignment-block.open,.assignment-block.in_progress{background:#0a3c80!important;border-color:#1683ff!important;color:#fff!important}.assignment-block.completed{background:#06422d!important;border-color:#20cc7a!important;color:#d5ffea!important}.assignment-block.awaiting_parts{background:#3a2808!important;border-color:#e3a52f!important;color:#ffe5aa!important}.assignment-block.leave-block{background:#311d64!important;border-color:#8a56ff!important}.staff-timeline.drop-ready{outline:2px dashed #1bdcff!important;outline-offset:-3px!important;background:#073053!important}.unassigned-panel{background:#061a31!important}.unassigned-job-card{box-shadow:none!important;background:#08213d!important}.unassigned-job-card.dragging{opacity:.5}
.quick-price-workspace>.card{background:#071b34!important}.quick-price-result{background:#071f3a!important;border-color:#164e77!important;color:#e9f3fb!important}.quick-price-result:hover{background:#0b3359!important;border-color:#2382bd!important}.quick-price-result-price{color:#55c4ff!important}.quick-price-result>b{background:#0b62e8!important;color:#fff!important}.quick-price-table input{background:#06162b!important}.quick-price-totals{background:#061a31!important;border-color:#18547f!important}.quick-price-totals span{color:#769cba!important}.quick-price-totals .grand{border-color:#1768a7!important}.quick-price-totals .grand strong{color:#5dd7ff!important}.quick-price-one-off{border-color:#15466f!important}
.document-preview-shell{background:#031021!important;color:#eaf3fb!important}.document-preview-toolbar{background:#061a31!important;border-color:#19547f!important}.document-preview-notice{background:#092b4d!important;color:#bfe3ff!important}.document-preview-stage{background:#1d2631!important}
.auth-screen,.loading-screen{background:radial-gradient(circle at 20% 20%,rgba(15,107,255,.18),transparent 35%),linear-gradient(145deg,#010710,#04182f)!important}.auth-brand img,.loading-screen img{object-fit:contain;max-height:260px;filter:drop-shadow(0 0 28px rgba(50,155,255,.27))}.auth-card{background:rgba(6,25,48,.96)!important}.tab{color:#7c9bb7!important}.tab.active{color:#fff!important;border-color:#21e68b!important}
/* Nova desktop quick-create */
.nova-quick-wrap{position:relative;display:flex;align-items:center}.nova-quick-button{width:42px;height:42px;border-radius:10px;border:1px solid #1c67a1;background:linear-gradient(135deg,#0b62e8,#138cff);color:#fff;font-size:24px;font-weight:500;display:grid;place-items:center;box-shadow:0 7px 20px rgba(16,112,244,.2)}.nova-quick-menu{position:absolute;right:0;top:49px;width:min(330px,calc(100vw - 24px));padding:10px;background:#061a31;border:1px solid #1d6091;border-radius:13px;box-shadow:0 22px 60px rgba(0,0,0,.56);z-index:5000;display:grid;gap:6px}.nova-quick-menu.hidden{display:none}.nova-quick-menu button{display:flex;align-items:center;gap:11px;width:100%;padding:11px;border:1px solid #123f66;border-radius:9px;background:#08213d;color:#e8f3fc;text-align:left}.nova-quick-menu button:hover{background:#0d3358;border-color:#2382bd}.nova-quick-menu button span:first-child{width:26px;font-size:19px}.nova-quick-menu small{display:block;color:#6f97b7;font-size:10px;margin-top:2px}
/* Business Tools disclosure */
.business-tools-shell{margin:8px 0}.business-tools-toggle{justify-content:space-between!important;background:#071f3a!important;border-color:#154b75!important}.business-tools-toggle .business-tools-chevron{margin-left:auto;transition:transform .18s}.business-tools-shell.open .business-tools-chevron{transform:rotate(180deg)}.business-tools-body{display:none;padding-left:4px}.business-tools-shell.open .business-tools-body{display:block}.business-tools-body .nav-section{padding-top:10px!important}.business-tools-body .nav-button{font-size:11px!important}
/* Store / on-road + collected */
.nova-job-mode{display:flex;gap:5px;align-items:center;padding:5px;border:1px solid #174f79;background:#061a31;border-radius:9px}.nova-job-mode button{border:0;border-radius:6px;padding:7px 10px;background:transparent;color:#83a9c6;font-weight:800;font-size:10px}.nova-job-mode button.active{background:#0b5fd7;color:#fff}.nova-job-mode button[data-mode="store"].active{background:#0d9e62}.nova-collected-button{background:linear-gradient(135deg,#0c8b58,#18c97b)!important;color:#fff!important;border-color:#28df91!important}.nova-customer-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.nova-customer-card{background:#061a31;border:1px solid #15466f;border-radius:10px;padding:11px}.nova-customer-card span{display:block;color:#6e94b2;font-size:9px;font-weight:850;letter-spacing:.08em}.nova-customer-card strong{display:block;color:#eef7ff;margin-top:4px}.nova-customer-card small{display:block;color:#91aac0;margin-top:4px}
/* Avatar presets */
.staff-avatar{width:38px;height:38px;border-radius:50%;display:inline-grid;place-items:center;overflow:hidden;background:#0b3155;border:2px solid #1f6d9f;vertical-align:middle;flex:0 0 auto}.staff-avatar img{width:100%;height:100%;object-fit:cover}.staff-avatar-fallback{font-size:12px;font-weight:900;color:#d9efff}.avatar-picker-grid{display:grid;grid-template-columns:repeat(10,minmax(42px,1fr));gap:7px;max-height:420px;overflow:auto;padding:5px}.avatar-preset{aspect-ratio:1;border-radius:50%;border:2px solid #16466c;background:#09213d;padding:0;overflow:hidden;position:relative}.avatar-preset img{width:100%;height:100%;object-fit:cover}.avatar-preset.selected{border-color:#28e992;box-shadow:0 0 0 3px rgba(40,233,146,.18)}
/* Item without an image: do not reserve an empty thumbnail. */
.nova-item-row:not(.has-image) .nova-item-image{display:none!important}
/* Responsive / mobile: keep all functionality, simplify presentation. */
@media(max-width:1100px){.app-shell{grid-template-columns:220px minmax(0,1fr)!important}.nova-customer-cards{grid-template-columns:1fr}.avatar-picker-grid{grid-template-columns:repeat(8,minmax(40px,1fr))}}
@media(max-width:820px){
  .app-shell{display:block!important}.sidebar{position:fixed!important;left:0;top:0;bottom:0;width:min(320px,86vw)!important;height:100dvh!important;transform:translateX(-105%);transition:transform .2s;z-index:5000!important}.sidebar.open{transform:translateX(0)}.logo-link img{height:82px!important}
  .app-column{min-height:100dvh!important}.topbar{min-height:58px!important;height:auto!important;padding:8px 9px!important}.topbar h1{font-size:17px!important}.topbar p{display:none}.content{padding:10px 9px 92px!important;min-height:calc(100dvh - 58px)!important}
  .mobile-nav{background:rgba(3,15,30,.97)!important;border-top:1px solid #16466f!important;box-shadow:0 -12px 30px rgba(0,0,0,.35)!important}.mobile-nav button{background:transparent!important;color:#7fa5c3!important}.mobile-nav button.active{color:#56c8ff!important}.mobile-nav .v12-nav-plus{background:linear-gradient(135deg,#0b62e8,#13a8ff)!important;color:#fff!important;box-shadow:0 8px 24px rgba(16,112,244,.4)!important}
  .modal-frame>header,.modal-frame>footer{background:#061a31!important}.modal-frame>#modal-body{background:#031225!important}.service-edit-grid,.unified-record-layout{display:block!important}.unified-side-tabs{display:flex!important;overflow:auto!important;position:static!important;margin-bottom:8px!important}.unified-side-tabs button{min-width:max-content!important}.unified-notes-panel{margin-top:10px!important}.service-form-panel{margin-bottom:9px!important}
  .assignment-board-scroll{overflow:auto!important}.assignment-board{min-width:920px!important}.avatar-picker-grid{grid-template-columns:repeat(5,minmax(42px,1fr))}
  .nova-quick-menu{position:fixed;top:62px;right:8px;left:8px;width:auto}.nova-quick-wrap{display:none!important}
}
@media(max-width:520px){.nova-customer-cards{grid-template-columns:1fr}.avatar-picker-grid{grid-template-columns:repeat(4,minmax(42px,1fr))}.card,.service-form-panel,.unified-section,.unified-form-card{border-radius:11px!important}.content{padding-left:7px!important;padding-right:7px!important}}

/* Nested workflow dialogs must enter the browser top-layer above the open Job/Quote dialog. */
dialog.quick-customer-overlay[open]{width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;margin:0!important;border:0!important;padding:18px!important;box-sizing:border-box!important;display:flex!important;color:inherit!important}
dialog.quick-customer-overlay::backdrop{background:rgba(0,5,13,.72);backdrop-filter:blur(7px)}
@media(max-width:700px){dialog.quick-customer-overlay[open]{padding:8px!important;align-items:flex-start!important}}

/* ========================================================================== */
/* V13.0.1 NOVA UI HOTFIX — preserve business status colours, remove washout */
/* ========================================================================== */
:root{
  --nova-record-panel:#061a31;
  --nova-record-panel-2:#08233f;
  --nova-record-line:#18547f;
  --nova-record-input:#031427;
  --nova-record-muted:#8eabc2;
}

/* Record accent comes from Management → Job, Quote & Invoice Colours. */
.unified-record-header{
  background:
    linear-gradient(110deg,color-mix(in srgb,var(--record-accent) 52%,#06182e) 0%,#071d36 48%,#041326 100%)!important;
  border:1px solid color-mix(in srgb,var(--record-accent) 68%,#164b73)!important;
  border-top:5px solid var(--record-accent)!important;
  box-shadow:0 14px 36px rgba(0,0,0,.28),inset 0 1px 0 color-mix(in srgb,var(--record-accent) 42%,transparent)!important;
  color:#fff!important;
}
.unified-status-pill{
  background:color-mix(in srgb,var(--record-accent) 22%,#031427)!important;
  border:1px solid color-mix(in srgb,var(--record-accent) 72%,#18547f)!important;
  color:#fff!important;
}

/* Every internal job/quote/invoice surface stays dark. */
.unified-section-heading,
.unified-form-card,
.unified-work-done-card,
.unified-notes-panel,
.unified-order-card,
.unified-invoice-card,
.unified-pricing-footer>div,
.unified-tab,
.record-colour-card{
  background:linear-gradient(150deg,var(--nova-record-panel-2),var(--nova-record-panel))!important;
  border-color:var(--nova-record-line)!important;
  color:#eef7ff!important;
  box-shadow:0 8px 24px rgba(0,0,0,.18)!important;
}
.unified-section-heading{border-left:5px solid var(--record-accent)!important}
.unified-section-heading.compact{background:transparent!important;border:0!important;border-bottom:1px solid #17496f!important;box-shadow:none!important}
.unified-section-heading h3,.unified-section-heading h4,.unified-form-card h4,.unified-notes-panel h3,.unified-work-done-card h3{color:#f5fbff!important}
.unified-section-heading p,.unified-notes-heading p,.unified-billing-note,.unified-form-card label,.unified-work-done-card label{color:var(--nova-record-muted)!important}

.unified-form-card input,.unified-form-card select,.unified-form-card textarea,
.unified-work-done-card input,.unified-work-done-card select,.unified-work-done-card textarea,
.unified-notes-panel input,.unified-notes-panel select,.unified-notes-panel textarea{
  background:var(--nova-record-input)!important;
  border-color:#1a5c89!important;
  color:#f5fbff!important;
}
.unified-form-card input:focus,.unified-form-card select:focus,.unified-form-card textarea:focus,
.unified-work-done-card textarea:focus,.unified-notes-panel textarea:focus{
  border-color:color-mix(in srgb,var(--record-accent) 78%,#35cfff)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--record-accent) 17%,transparent)!important;
}
.unified-linked-job,.unified-billing-note{background:#071d37!important;border-color:#1a547e!important;color:#b7cee0!important}
.unified-pricing-footer>div.grand,.unified-pricing-footer>div.balance{
  background:color-mix(in srgb,var(--record-accent) 16%,#061a31)!important;
  border-color:var(--record-accent)!important;
}
.unified-pricing-footer span{color:#89a8bf!important}
.unified-pricing-footer strong{color:#f7fbff!important}

/* Side record tabs no longer use the pale blue V12 cards. */
.unified-side-tabs{background:transparent!important;border-color:transparent!important}
.unified-tab{border-left:4px solid #174b70!important;color:#8eabc2!important}
.unified-tab:hover{border-color:color-mix(in srgb,var(--record-accent) 74%,#1e6c9e)!important;color:#fff!important}
.unified-tab.active{
  border-color:color-mix(in srgb,var(--record-accent) 78%,#1e6c9e)!important;
  border-left-color:var(--record-accent)!important;
  background:linear-gradient(145deg,color-mix(in srgb,var(--record-accent) 32%,#08213d),#061a31)!important;
  color:#fff!important;
  box-shadow:inset 0 3px 0 var(--record-accent),0 8px 22px rgba(0,0,0,.18)!important;
}

/* Colour settings should preview the actual business-selected accent on dark UI. */
.record-colour-settings{gap:12px!important}
.record-colour-card{
  border-left:8px solid var(--swatch)!important;
  background:linear-gradient(150deg,color-mix(in srgb,var(--swatch) 9%,#08213d),#051427)!important;
}
.record-colour-card strong{color:#f5fbff!important}
.record-colour-card input[type=text]{background:#031427!important;color:#fff!important;border-color:#1a577f!important}
.record-colour-card input[type=color]{background:#031427!important;border:2px solid #1a577f!important;border-radius:8px!important}
.record-colour-card small,.record-colour-card p{color:#8eabc2!important}

/* Email/SMS document attachment selector. */
.message-attachment-option{
  display:grid!important;gap:5px!important;padding:12px 13px!important;border:1px solid #1b5c87!important;border-radius:10px!important;
  background:linear-gradient(145deg,#092442,#06182f)!important;color:#eaf6ff!important;
}
.message-attachment-option>span{display:flex;align-items:center;gap:9px;font-weight:900!important;color:#f5fbff!important}
.message-attachment-option input[type=checkbox]{width:19px!important;height:19px!important;min-height:19px!important;accent-color:#22d98a!important}
.message-attachment-option small{color:#78a4c2!important;font-size:10px!important;font-weight:800!important}
.message-attachment-option.disabled{opacity:.5!important;filter:saturate(.4)}

/* Mobile rules in app.css used pale surfaces; override them after every V12 rule. */
@media(max-width:850px){
  .unified-side-tabs{background:#041326!important;border:1px solid #154b73!important;box-shadow:0 8px 22px rgba(0,0,0,.2)!important}
  .unified-section-heading,.unified-form-card,.unified-work-done-card,.unified-order-card,.unified-invoice-card,.unified-notes-panel{background:linear-gradient(150deg,#08213d,#051427)!important;color:#eef7ff!important}
}
@media(max-width:520px){
  .unified-record-header{background:linear-gradient(145deg,color-mix(in srgb,var(--record-accent) 35%,#08213d),#041326)!important;border-top-color:var(--record-accent)!important}
  .unified-side-tabs{background:#041326!important}
}


/* V13.0.2 NOVA VISUAL HARDENING
   Kept at the very end of the consolidated stylesheet so old pale V12 rules can never win. */
:root{
  --nova-record-panel:#041326;
  --nova-record-panel-2:#08213d;
  --nova-record-input:#031427;
  --nova-record-line:#18547f;
  --nova-record-muted:#9db8cc;
}
.unified-record-shell,
.unified-record-main,
.unified-tab-panel,
#settings-content,
#content{color:#eef7ff}
.unified-section-heading,
.unified-form-card,
.unified-work-done-card,
.unified-notes-panel,
.unified-order-card,
.unified-invoice-card,
.record-colour-card,
.feature-detail-card{
  background:linear-gradient(150deg,#08213d,#051427)!important;
  border-color:#18547f!important;
  color:#eef7ff!important;
}
.unified-section-heading{border-left-color:var(--record-accent,#1683ff)!important}
.unified-section-heading h2,.unified-section-heading h3,.unified-section-heading h4,
.unified-form-card h2,.unified-form-card h3,.unified-form-card h4,
.unified-notes-panel h2,.unified-notes-panel h3,.record-colour-card strong{color:#f6fbff!important}
.unified-section-heading p,.unified-form-card label,.unified-billing-note,.unified-notes-panel label,
.record-colour-card small,.record-colour-card p{color:#9db8cc!important}
.unified-form-card input,.unified-form-card select,.unified-form-card textarea,
.unified-work-done-card input,.unified-work-done-card select,.unified-work-done-card textarea,
.unified-notes-panel input,.unified-notes-panel select,.unified-notes-panel textarea,
.record-colour-card input[type=text]{background:#031427!important;color:#f7fbff!important;border-color:#1a5c89!important}
.record-colour-card{border-left:8px solid var(--swatch)!important;background:linear-gradient(150deg,color-mix(in srgb,var(--swatch) 11%,#08213d),#051427)!important}
.record-colour-card input[type=color]{background:#031427!important;border:2px solid #1a577f!important}
.inline-line-input.markup{min-width:78px!important;max-width:96px!important;text-align:right!important;font-weight:900!important;color:#5ee8ac!important;border-color:#168a67!important;background:#04231f!important}
.inline-line-input.markup:focus{border-color:#42f0ad!important;box-shadow:0 0 0 3px rgba(66,240,173,.12)!important}
/* Make company-selected record state colour visually obvious without tinting the whole form unreadably. */
.unified-record-header{border-top:5px solid var(--record-accent,#1683ff)!important;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--record-accent,#1683ff) 42%,transparent),0 10px 30px rgba(0,0,0,.20)!important}
.unified-status-pill{border-color:var(--record-accent,#1683ff)!important;background:color-mix(in srgb,var(--record-accent,#1683ff) 24%,#071d37)!important;color:#fff!important}
@media(max-width:850px){
  .unified-section-heading,.unified-form-card,.unified-work-done-card,.unified-notes-panel,.record-colour-card{background:linear-gradient(150deg,#08213d,#051427)!important}
}

/* ========================================================================== */
/* V13.0.3 NOVA FINAL SURFACE + MOBILE CONTAINMENT                            */
/* ========================================================================== */
/* These selectors deliberately sit last: older V12 components used pale      */
/* #edf5f8/#d5e5ef surfaces and must not override Nova.                       */
.service-header-panel,.service-items-card,.service-history-panel,.service-items-wrap,
.service-note-composer,.rapid-add-row>td,.rapid-item-search,.rapid-item-results,
.rapid-item-results-portal,.catalogue-picker,.catalogue-search-results,
.quick-price-catalogue,.quick-price-basket,.quick-price-one-off,
.product-history-table,.table-scroll,.unified-linked-job,.unified-billing-note{
  background:#05172d!important;color:#eef7ff!important;border-color:#18547f!important;
}
.service-items-wrap{box-shadow:inset 0 0 0 1px rgba(37,111,160,.13)!important}
.service-items-table,.inline-items-table,.product-history-table,.quick-price-table{background:#061a31!important;color:#eef7ff!important}
.service-items-table thead,.service-items-table th,.inline-items-table thead,.inline-items-table th,
.product-history-table thead,.product-history-table th,.quick-price-table thead,.quick-price-table th{
  background:#0a2948!important;color:#b9d2e5!important;border-color:#1b557d!important;
}
.service-items-table td,.inline-items-table td,.product-history-table td,.quick-price-table td{
  background:#061a31!important;color:#eef7ff!important;border-color:#143f61!important;
}
.service-items-table tbody tr:hover td,.inline-items-table tbody tr:hover td,.product-history-table tbody tr:hover td{
  background:#0a2440!important;
}
.rapid-add-row td{background:#071d36!important}
.rapid-item-search input,.service-items-table input,.service-items-table select,.inline-items-table input,.inline-items-table select,
.quick-price-table input,.quick-price-table select,.catalogue-picker input{
  background:#031427!important;color:#f7fbff!important;border-color:#1b5d89!important;
}
.rapid-item-results-portal,.catalogue-search-results{box-shadow:0 22px 54px rgba(0,0,0,.48)!important}
.rapid-result,.catalogue-result,.quick-price-result{
  background:#071d37!important;color:#edf7ff!important;border-color:#174f77!important;
}
.rapid-result:hover,.rapid-result.active,.catalogue-result:hover,.quick-price-result:hover{
  background:#0b2c4d!important;border-color:#248bd0!important;
}
.rapid-result.favourite,.catalogue-result.favourite,.quick-price-result.favourite{
  background:linear-gradient(135deg,#0c3150,#09253f)!important;border-color:#22d98a!important;
  box-shadow:inset 3px 0 0 #22d98a!important;
}
.catalogue-favourites-label{padding:8px 10px;color:#53edb1!important;font-weight:950;font-size:11px;letter-spacing:.07em;background:#05251f!important;border:1px solid #147755!important;border-radius:8px;margin-bottom:7px}
.favourite-admin-card>label{display:block;margin:14px 0;color:#a8c1d4!important}.favourite-admin-card>label input{margin-top:6px}
.favourite-admin-results{display:grid;gap:7px;margin-top:12px;max-height:62vh;overflow:auto}
.favourite-admin-row{display:grid;grid-template-columns:28px 30px minmax(90px,160px) minmax(180px,1fr) 130px;align-items:center;gap:10px;padding:10px 12px;border:1px solid #174d74;border-radius:9px;background:#061a31;color:#eaf6ff;cursor:pointer}
.favourite-admin-row:hover{background:#092640;border-color:#2587c7}.favourite-admin-row.selected{border-color:#22d98a;background:#062b25;box-shadow:inset 3px 0 0 #22d98a}
.favourite-admin-row input{width:18px!important;height:18px!important;min-height:18px!important;accent-color:#22d98a}.favourite-star{font-size:19px;color:#55eab4}.favourite-admin-row small{color:#83a7c1;font-weight:800}

/* Prevent the unified Job/Work Done workspace from widening the whole phone. */
@media(max-width:850px){
  html,body,#app-shell,.app-column,.content,#content,.unified-record-shell,.unified-record-layout,
  .unified-record-main,.unified-tab-panel,.unified-section,.unified-work-done-card,.service-items-card{
    max-width:100%!important;min-width:0!important;box-sizing:border-box!important;
  }
  body,.app-column,.content,#content,.unified-record-shell,.unified-record-layout,.unified-record-main{overflow-x:hidden!important}
  .unified-record-layout{display:block!important;width:100%!important}
  .unified-record-layout>*{min-width:0!important;max-width:100%!important}
  .unified-section-heading{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;flex-wrap:wrap!important;gap:8px!important}
  .unified-section-heading .actions{width:100%!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
  .unified-section-heading .actions .btn{width:100%!important;min-width:0!important;white-space:normal!important}
  .unified-work-done-card,.unified-work-done-card form,.unified-work-done-card .stack,.unified-work-done-card .form-grid{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important}
  .unified-work-done-card textarea,.unified-work-done-card input,.unified-work-done-card select{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
  .unified-work-done-card textarea{min-height:140px!important;resize:vertical!important}
  .unified-work-done-card .btn{max-width:100%!important}
  .service-items-wrap{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:auto!important;overflow-y:visible!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-inline:contain!important}
  .service-items-table,.inline-items-table{width:720px!important;min-width:720px!important;max-width:none!important}
  .rapid-item-search{min-width:0!important;width:100%!important;max-width:100%!important}
  .rapid-item-search input{min-width:0!important;width:100%!important;max-width:100%!important}
  .unified-notes-panel{max-width:100%!important;min-width:0!important}
  .favourite-admin-row{grid-template-columns:24px 24px minmax(80px,115px) 1fr}.favourite-admin-row small{grid-column:3/-1}
}
@media(max-width:520px){
  .content{padding-left:6px!important;padding-right:6px!important}
  .unified-section-heading .actions{grid-template-columns:1fr!important}
  .service-items-table,.inline-items-table{width:660px!important;min-width:660px!important}
  .favourite-admin-row{grid-template-columns:24px 24px 1fr}.favourite-admin-row>strong{grid-column:3}.favourite-admin-row>span.user-entered,.favourite-admin-row small{grid-column:3}
}

/* ========================================================================== */
/* V13.0.5 NOVA XERO CONTRAST HOTFIX                                          */
/* Xero Review / batch-result components were authored before the Nova dark    */
/* palette and retained light card backgrounds while inheriting Nova light     */
/* text. Keep the whole Xero workflow readable in the dark theme.              */
/* ========================================================================== */
.xero-review-metrics article,
.xero-result-summary>div,
.xero-result-card,
.payment-delete-summary>div{
  background:linear-gradient(150deg,#08213d,#06182e)!important;
  border-color:#18547f!important;
  color:#eaf4fc!important;
  box-shadow:none!important;
}
.xero-review-metrics article span,
.xero-result-summary span,
.payment-delete-summary span,
.xero-result-card>header div span{
  color:#8fb0c9!important;
}
.xero-review-metrics article strong,
.xero-result-summary strong,
.payment-delete-summary strong,
.xero-result-card>header div strong,
.xero-result-card .user-entered{
  color:#f4f9ff!important;
}
.xero-review-metrics article.attention{
  background:#33260a!important;
  border-color:#80651e!important;
}
.xero-review-metrics article.attention strong{color:#ffd979!important}
.xero-review-list-heading{
  background:#071c35!important;
  border-color:#18547f!important;
  color:#9bb9d0!important;
}
.xero-review-failed-row{background:rgba(120,71,0,.13)!important}
.xero-inline-error{
  background:#392d0c!important;
  border-left-color:#ffbd3e!important;
  color:#ffe1a1!important;
}
.xero-result-card.success{border-left-color:#35d986!important}
.xero-result-card.failed{border-left-color:#ff6d75!important}
.xero-result-card>p{
  color:#c8dbea!important;
  margin:4px 0 8px!important;
}
.xero-issue{
  background:#392d0c!important;
  border-color:#80651e!important;
  color:#ffe1a1!important;
}
.xero-issue.blocking{
  background:#411820!important;
  border-color:#8c2b39!important;
  color:#ffc1c6!important;
}
.xero-issue-level{color:#ffd979!important}
.xero-issue.blocking .xero-issue-level{color:#ff9da5!important}
.xero-issue p,
.xero-issue p.user-entered{
  color:#ffe8b8!important;
}
.xero-issue.blocking p,
.xero-issue.blocking p.user-entered{
  color:#ffd1d5!important;
}
.xero-issue strong,
.xero-issue .user-entered{
  color:#ffffff!important;
}
.xero-issue-quantities span{
  background:#1e210f!important;
  border:1px solid #65531b!important;
  color:#d8c99a!important;
}
.xero-issue.blocking .xero-issue-quantities span{
  background:#2b1218!important;
  border-color:#6d2934!important;
  color:#e7adb2!important;
}
.xero-issue-quantities strong{color:#ffffff!important}
.invoice-xero-review-banner{
  background:#082947!important;
  border-color:#195b89!important;
  color:#d8ecfb!important;
}
.invoice-xero-review-banner p{color:#a9c6dc!important}
.invoice-xero-review-banner.failed{
  background:#392d0c!important;
  border-color:#80651e!important;
}
.invoice-xero-review-banner.failed p{color:#ffe1a1!important}
.reversed-payment-history{border-top-color:#18547f!important}
.reversed-payment-history summary{color:#9ab8cf!important}
