/* Stage 7.8 visual system: presentation-only overrides shared across portals. */
:root{--ui-ink:#172b3f;--ui-muted:#68788c;--ui-line:#dfe7ef;--ui-surface:#fff;--ui-canvas:#f4f7fb;--ui-brand:#3158d4;--ui-brand-dark:#2347bd;--ui-focus:#4778ef;--ui-radius:18px;--ui-shadow:0 18px 48px #172b3f12}
html{scroll-behavior:smooth}body{color:var(--ui-ink);font-family:Inter,"Avenir Next",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,a,input,select,textarea{transition:color .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #4778ef70;outline-offset:2px}button{touch-action:manipulation}img{max-width:100%}

/* Shared sign-in and registration surfaces */
body.adminbody.admin-login-page{background:radial-gradient(ellipse at 12% 10%,#dce9ff 0,transparent 38%),linear-gradient(145deg,#f5f8fc,#edf2f8);padding:clamp(18px,4vw,52px)}
.admin-login-main{width:min(100%,520px)}.admin-login-card{padding:clamp(26px,5vw,48px);border:1px solid #e1e8f0;border-radius:24px;background:#fffffffa;box-shadow:0 26px 72px #1b355312}
.admin-login-brand{color:#3558bd;font-size:10px;letter-spacing:.16em}.admin-login-card h1{color:#172a42;font-size:clamp(28px,4vw,38px);letter-spacing:-.045em}.admin-login-card h2{margin:0 0 20px;color:#34445b;font-size:17px;font-weight:600}.admin-login-card>p:not(.admin-login-brand){color:var(--ui-muted);line-height:1.6}
.admin-login-form{gap:16px}.admin-login-form label{gap:7px;color:#3d4e64;font-size:13px;font-weight:700}.admin-login-form input,.admin-login-form select,.admin-login-form textarea{min-height:50px;padding:12px 14px;border:1px solid #d8e1eb;border-radius:11px;background:#fbfcfe;color:#172b3f;box-shadow:inset 0 1px 2px #14243a08}.admin-login-form input:hover,.admin-login-form select:hover{border-color:#aebed2}.admin-login-form input:focus-visible{border-color:#4778ef;box-shadow:0 0 0 4px #4778ef20;outline:0}.admin-login-form small{color:#718197;font-size:12px;line-height:1.5;font-weight:450}.admin-login-form>button,.admin-login-card>.button{display:flex;align-items:center;justify-content:center;min-height:50px;padding:12px 18px;border-radius:11px;background:linear-gradient(135deg,#3158d4,#2347bd);color:#fff;box-shadow:0 10px 22px #3158d42a;font-size:14px;text-decoration:none}.admin-login-form>button:hover,.admin-login-card>.button:hover{transform:translateY(-1px);box-shadow:0 14px 28px #3158d438}.admin-login-card [role=alert]{margin:0 0 14px;padding:12px 14px;border:1px solid #f1c9c9;border-radius:11px;background:#fff3f2;color:#9f3434;line-height:1.45}.admin-login-links{gap:12px 22px}.admin-login-links a{color:#3158d4;font-size:13px;font-weight:650;text-decoration:none}.admin-login-links a:hover{text-decoration:underline}.admin-login-card .admin-login-form .check-label{display:flex;align-items:flex-start;gap:10px}.admin-login-form input[type=checkbox]{width:18px;min-height:18px;accent-color:#3158d4}
.auth-layout,.signup-layout{display:grid;grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr);gap:clamp(22px,5vw,64px);align-items:center;width:min(1180px,100%);margin:auto}.auth-aside,.signup-aside{position:relative;overflow:hidden;min-height:420px;padding:clamp(28px,4vw,52px);border:1px solid #ffffff28;border-radius:28px;background:radial-gradient(circle at 85% 16%,#94b7ff55,transparent 30%),linear-gradient(145deg,#172b4d,#243f75 66%,#3158a8);color:#fff;box-shadow:0 24px 60px #152d501f}.auth-aside:after,.signup-aside:after{position:absolute;right:-70px;bottom:-140px;width:300px;height:300px;border:1px solid #ffffff20;border-radius:50%;content:"";box-shadow:0 0 0 35px #ffffff08,0 0 0 72px #ffffff06}.auth-aside .auth-kicker,.signup-aside .auth-kicker{color:#c2d3ff;font-size:10px;font-weight:800;letter-spacing:.16em}.auth-aside h2,.signup-aside h2{position:relative;z-index:1;margin:20px 0 12px;color:#fff;font-size:clamp(30px,4.3vw,48px);line-height:1.05;letter-spacing:-.05em}.auth-aside p,.signup-aside p{position:relative;z-index:1;max-width:390px;color:#d3def1;font-size:15px;line-height:1.7}.auth-aside .auth-points,.signup-aside .auth-points{position:relative;z-index:1;display:grid;gap:13px;margin:28px 0 0;padding:0;list-style:none;color:#e7eefb;font-size:13px}.auth-points li{display:flex;align-items:center;gap:10px}.auth-points li:before{display:grid;place-items:center;width:21px;height:21px;border:1px solid #a7c6ff60;border-radius:50%;background:#ffffff10;color:#b8d0ff;content:"✓";font-size:11px;font-weight:800}
.signup-layout{grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr)}.signup-aside{min-height:580px}.signup-aside .signup-steps{position:relative;z-index:1;display:grid;gap:18px;margin:32px 0 0;padding:0;list-style:none}.signup-steps li{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:center;color:#d3def1;font-size:12px}.signup-steps i{display:grid;place-items:center;width:32px;height:32px;border:1px solid #ffffff40;border-radius:50%;font-style:normal;font-weight:800}.signup-steps li:first-child i{background:#fff;color:#294e9d}.signup-steps b{display:block;color:#fff;font-size:13px}.signup-layout .admin-login-main{max-width:720px}.signup-layout .admin-register-card{padding:clamp(24px,4vw,42px)}.admin-register-form{column-gap:16px;row-gap:15px}.admin-register-form label{min-width:0}.registration-errors{display:grid;gap:8px;margin:12px 0 18px}.registration-errors [role=alert]{margin:0}
body.adminbody.registration-result,body.adminbody.setup-page{display:block;min-height:100vh;background:radial-gradient(ellipse at 14% 8%,#e4edff,transparent 38%),var(--ui-canvas)}.registration-result .dashboard{width:min(760px,100%);margin:0 auto;padding:clamp(30px,9vh,100px) 20px}.registration-result .tablecard{padding:clamp(28px,6vw,52px);border:1px solid var(--ui-line);border-radius:24px;box-shadow:var(--ui-shadow)}.registration-result h1{font-size:clamp(30px,5vw,42px);letter-spacing:-.04em;color:#192d48}.registration-result p{color:var(--ui-muted);line-height:1.65}.registration-result form{display:grid;gap:15px;margin:22px 0}.registration-result form label{display:grid;gap:8px;font-weight:650}.registration-result form input{min-height:48px}.registration-result form button{min-height:48px;border-radius:11px;background:var(--ui-brand)}

/* Workshop operations shell, tables and calendar */
body.adminbody:not(.admin-login-page):not(.registration-result){grid-template-columns:250px minmax(0,1fr);background:#f3f6fa;color:#24354a}body.adminbody:not(.admin-login-page):not(.registration-result)>aside{position:sticky;top:0;align-self:start;display:flex;flex-direction:column;min-height:100vh;padding:28px 18px;background:linear-gradient(180deg,#142541,#1e365b);box-shadow:8px 0 30px #172b3f0b}body.adminbody:not(.admin-login-page):not(.registration-result)>aside h2{font-size:20px;letter-spacing:-.04em}body.adminbody:not(.admin-login-page):not(.registration-result)>aside>small{color:#aebbd0;font-size:12px}body.adminbody:not(.admin-login-page):not(.registration-result)>aside nav{display:grid;gap:5px;margin-top:30px}body.adminbody:not(.admin-login-page):not(.registration-result)>aside nav a{padding:11px 12px;border-radius:10px;color:#d1dced;font-size:13px;font-weight:570}body.adminbody:not(.admin-login-page):not(.registration-result)>aside nav a:hover,body.adminbody:not(.admin-login-page):not(.registration-result)>aside nav a:focus-visible{background:#ffffff14;color:#fff}body.adminbody:not(.admin-login-page):not(.registration-result)>aside nav form{margin-top:auto}body.adminbody:not(.admin-login-page):not(.registration-result)>aside nav form button{width:100%;background:#ffffff13;color:#e8eff9;text-align:left;font-size:13px}body.adminbody:not(.admin-login-page):not(.registration-result)>.dashboard{min-width:0;max-width:1600px;width:100%;margin:0 auto;padding:clamp(22px,3.2vw,46px)}.dashboard header{align-items:center;padding-bottom:20px;border-bottom:1px solid #e3e9f0}.dashboard header small,.dashboard>header small{color:#71819a;font-size:10px;letter-spacing:.14em}.dashboard header h1{margin:6px 0 0;color:#1b2f49;font-size:clamp(25px,3vw,34px);letter-spacing:-.045em}.dashboard header>.button{border-radius:11px;background:var(--ui-brand);box-shadow:0 8px 18px #3158d426}.tablecard,.card{border:1px solid #e4eaf1;border-radius:17px;box-shadow:0 10px 28px #192f4809}.dashboard-kpis article{border-color:#e4eaf1;border-radius:15px;box-shadow:0 9px 24px #192f4808}.calendar-toolbar{padding:12px;border:1px solid #e4eaf1;border-radius:14px;background:#fff}.calendar-toolbar button,.view-tabs button{min-height:40px;border-color:#dce4ed;border-radius:9px}.calendar-board{border-color:#e0e7ef;border-radius:16px;box-shadow:0 8px 24px #192f4808}.calendar-column{background:#fff}.calendar-column-head{font-size:12px;font-weight:700}.event{border-radius:9px;line-height:1.4}.dashboard-analytics .tablecard,.admin-lists .tablecard{padding:20px}.tablecard h2{color:#263b55}.tablewrap{max-width:100%;overscroll-behavior-x:contain}table{min-width:760px}th{background:#f7f9fc;color:#64748b}td,th{border-color:#e8edf3}td input,td select,td button,.inline-form select,.inline-form button{border-radius:8px}body.setup-page .setup-wrap{width:min(1060px,calc(100% - 32px));margin:36px auto}body.setup-page .setup-card{border:1px solid #e1e8f0;border-radius:22px;box-shadow:var(--ui-shadow)}body.setup-page .setup-progress a{border-top-width:4px;font-weight:700}
@media(max-width:900px){.auth-layout,.signup-layout{grid-template-columns:minmax(0,1fr);width:min(720px,100%)}.auth-aside{display:none}.signup-aside{min-height:0;padding:25px 28px}.signup-aside h2{margin:12px 0 8px;font-size:30px}.signup-aside>p{margin:0;font-size:13px}.signup-aside .signup-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:20px}.signup-steps li{grid-template-columns:26px 1fr;gap:7px;font-size:10px}.signup-steps i{width:25px;height:25px}.signup-steps b{font-size:11px}.signup-layout .admin-login-main{max-width:none}.signup-layout .admin-register-card{padding:28px}body.adminbody:not(.admin-login-page):not(.registration-result){grid-template-columns:210px minmax(0,1fr)}body.adminbody:not(.admin-login-page):not(.registration-result)>aside{padding:22px 13px}body.adminbody:not(.admin-login-page):not(.registration-result)>.dashboard{padding:22px}}
@media(max-width:680px){body.adminbody:not(.admin-login-page):not(.registration-result){display:block}body.adminbody:not(.admin-login-page):not(.registration-result)>aside{position:relative;min-height:0;padding:15px 16px;border-radius:0 0 18px 18px}body.adminbody:not(.admin-login-page):not(.registration-result)>aside h2{font-size:17px}body.adminbody:not(.admin-login-page):not(.registration-result)>aside nav{display:flex;gap:5px;margin:10px -4px 0;padding:0 4px 3px;overflow-x:auto;overscroll-behavior-x:contain}body.adminbody:not(.admin-login-page):not(.registration-result)>aside nav a{flex:0 0 auto;padding:9px 11px;background:#ffffff0b;font-size:11px}body.adminbody:not(.admin-login-page):not(.registration-result)>aside nav form{flex:0 0 auto;margin:0}body.adminbody:not(.admin-login-page):not(.registration-result)>aside nav form button{width:auto;min-height:36px;padding:8px 11px;font-size:11px}body.adminbody:not(.admin-login-page):not(.registration-result)>.dashboard{padding:17px 13px 28px}.dashboard header{align-items:flex-start}.dashboard header h1{font-size:25px}.dashboard header>.button{padding:10px 12px;font-size:12px}.dashboard-kpis{gap:8px}.dashboard-kpis article{min-width:0}.calendar-toolbar{align-items:stretch}.calendar-toolbar>div:last-child{flex-wrap:wrap}.calendar-board{min-height:300px}.calendar-column{min-width:112px}.tablecard,.card{padding:16px}.signup-layout{gap:14px}.signup-aside{padding:20px;border-radius:20px}.signup-aside h2{font-size:25px}.signup-aside .signup-steps{gap:5px}.signup-steps li{grid-template-columns:23px 1fr;gap:5px;font-size:9px}.signup-steps i{width:22px;height:22px;font-size:10px}.signup-layout .admin-register-card{padding:23px 18px;border-radius:20px}}
@media(max-width:420px){.signup-aside .signup-steps{grid-template-columns:1fr;gap:8px}.signup-steps li{grid-template-columns:26px 1fr;font-size:11px}.signup-steps i{width:24px;height:24px}.signup-steps b{font-size:12px}.dashboard header{gap:8px}.dashboard header>.button{max-width:45%;text-align:center}.calendar-toolbar .view-tabs{max-width:100%;overflow:auto}.calendar-toolbar .view-tabs button{padding:8px 9px}}

/* Service photography uses one steady frame and a focal point, not a shallow crop. */
.service-choice{grid-template-rows:auto auto auto;min-height:0}.service-art{height:auto;aspect-ratio:1.78;max-height:150px}.service-art img{object-fit:cover;object-position:center 48%;}.service-art img[src*="service-brakes"]{object-position:center 44%}.service-art img[src*="service-diagnostics"]{object-position:center 52%}.service-art img[src*="service-repairs"]{object-position:center 48%}.service-art img[src*="service-tyres"]{object-position:center 56%}.service-choice:hover .service-art img{transform:scale(1.015)}
@media(max-width:900px){.service-art{max-height:138px}}
@media(max-width:680px){.service-choice{grid-template-rows:auto auto auto;min-height:0}.service-art{width:calc(100% + 18px);height:auto;max-height:none;aspect-ratio:1.72;margin:-9px -9px 8px}.service-copy{grid-row:2}.service-meta{grid-row:3}}
@media(max-width:390px){.service-art{aspect-ratio:1.65}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* Keyboard-operable password reveal controls. */
.password-control{position:relative;display:block;width:100%;min-width:0}.password-control>input{width:100%;padding-right:54px!important}.password-visibility{position:absolute;z-index:2;top:50%;right:8px;display:grid;place-items:center;width:38px;height:38px;min-height:38px;padding:8px;transform:translateY(-50%);border:0;border-radius:9px;background:transparent;color:#687a91;cursor:pointer}.password-visibility:hover{background:#edf2f8;color:#294e9d}.password-visibility:focus-visible{outline:3px solid #4778ef70;outline-offset:1px}.password-visibility svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.login-form .password-control{display:block}.login-form .password-visibility{color:#8f9ab0}.login-form .password-visibility:hover{background:#ffffff15;color:#fff}
.recovery-shell{display:grid;place-items:center;width:min(100%,560px);min-height:100vh;margin:auto;padding:24px}.recovery-card{width:100%;padding:clamp(24px,5vw,46px);border:1px solid #e0e6ef;border-radius:24px;background:#fff;box-shadow:0 24px 76px #17243a17}.recovery-brand{display:flex;align-items:center;gap:12px;margin-bottom:36px;color:#1b2d49;text-decoration:none}.recovery-brand>span:last-child{display:grid;gap:4px}.recovery-brand b{font-size:15px}.recovery-brand small{color:#78859a;font-size:9px;letter-spacing:.13em}.recovery-card h1{margin:5px 0 12px;color:#1b2d49;font-size:clamp(27px,5vw,36px);line-height:1.1;letter-spacing:-.04em}.recovery-intro{margin:0 0 22px;color:#66768c;font-size:14px;line-height:1.65}.recovery-form{display:grid;gap:11px}.recovery-form label{margin-top:7px;color:#364960;font-size:13px;font-weight:700}.recovery-form input{width:100%;min-height:49px;padding:11px 14px;border:1px solid #d8e1eb;border-radius:11px;background:#fbfcfe}.recovery-form input:focus-visible{outline:0;border-color:#4778ef;box-shadow:0 0 0 4px #4778ef20}.recovery-form small{color:#718197;font-size:12px;line-height:1.5}.recovery-form button{min-height:49px;margin-top:9px;border-radius:11px;background:linear-gradient(135deg,#3158d4,#2347bd);box-shadow:0 9px 20px #3158d42a}.recovery-back{display:inline-block;margin-top:21px;color:#3158d4;font-size:13px;font-weight:650;text-decoration:none}.recovery-back:hover{text-decoration:underline}.recovery-message{padding:12px 14px;border:1px solid #d9e5f7;border-radius:10px;background:#f4f8ff;color:#345177;font-size:13px;line-height:1.5}.recovery-message[role=alert]{border-color:#efd3d0;background:#fff5f3;color:#9b3d37}
.super-admin-forgot{display:inline-block;margin-top:16px;color:#5868d8;font-size:11px;font-weight:700;text-decoration:none}.super-admin-forgot:hover{text-decoration:underline}
.mfa-card{max-width:560px}.mfa-kicker{display:block;margin:0 0 10px;color:#4f65c6;font-size:10px;font-weight:800;letter-spacing:.14em}.mfa-secret{overflow-wrap:anywhere;margin:18px 0;padding:16px;border:1px dashed #9aaed3;border-radius:12px;background:#f5f8fe;color:#1c3152;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(17px,4vw,22px);font-weight:800;letter-spacing:.08em;text-align:center;user-select:all}.mfa-help{color:#718197;font-size:12px;line-height:1.6}.mfa-recovery-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px;margin:20px 0;padding:0;list-style:none}.mfa-recovery-codes li{padding:10px;border:1px solid #e0e7f0;border-radius:8px;background:#f8fafd;color:#213958;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:750;text-align:center}.mfa-continue{display:flex;justify-content:center;align-items:center;min-height:48px;margin-top:20px;border-radius:11px;background:linear-gradient(135deg,#3158d4,#2347bd);color:white;font-weight:700;text-decoration:none}
@media(max-width:740px){.recovery-shell{padding:18px}.recovery-card{border-radius:20px}.recovery-brand{margin-bottom:28px}}
@media(max-width:390px){.mfa-card{padding:22px 18px}.mfa-recovery-codes{gap:7px}.mfa-recovery-codes li{padding:9px 5px;font-size:12px}}
