/* Customer reference layout. Loaded after app.css; admin styles are untouched. */
.customer-body{--teal:#015466;--aqua:#06dcce;--turquoise:#06dcce;--ink:#17201f;--paper:#f9fbfa;--outside:#dfe4e7;--line:#dbdedd;--muted:#6b7570;height:100vh;height:100dvh;overflow:hidden;background:var(--outside);font-family:Poppins,Arial,sans-serif;font-size:13px;line-height:1.3;-webkit-font-smoothing:antialiased}
.customer-body .phone{width:100%;max-width:440px;height:100vh;height:100dvh;min-height:0;overflow:hidden;background:var(--paper);display:flex;flex-direction:column;box-shadow:0 0 18px #0c4a4b08}
.customer-body .phone-content{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:14px 20px 24px;overscroll-behavior-y:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.customer-body .phone-content::-webkit-scrollbar{display:none}
.customer-body .phone-content h1{font-size:21px;line-height:1.15;letter-spacing:-.035em;margin:0 0 18px;font-weight:700}
.customer-body h2,.customer-body h3{letter-spacing:-.02em}
.customer-body p{line-height:1.3}
.customer-body svg{display:block;width:24px;height:24px;flex:none}
.customer-body :focus-visible{outline:3px solid #06a99d;outline-offset:3px}
.customer-body .btn-primary,.customer-body .button-outline,.customer-body .btn-white{min-height:42px;border-radius:999px;font-size:14px;font-weight:600;line-height:1.15;padding:10px 18px;box-shadow:none}
.customer-body .btn-primary{background:var(--teal);border:1px solid transparent;color:#fff}
.customer-body .btn-primary:hover{background:#013e4b;color:#fff}
.customer-body .button-outline{border:1px solid #17201f;background:#fff;color:var(--ink)}
.customer-body button:disabled{background:#eee;color:#aaa;opacity:1;cursor:default;border-color:transparent}
.customer-body a,.customer-body button{-webkit-tap-highlight-color:transparent}
.customer-body .white-card{margin:0 0 14px;padding:16px;border:1px solid #e5e7e6;border-radius:12px;background:#fff;box-shadow:0 1px 2px #1028250d,0 1px 3px #10282508}
.customer-body .white-card h2{font-size:15px;margin:0 0 10px;font-weight:600;line-height:1.2}
.customer-body .section-label{font-size:12px;font-weight:600;margin:20px 0 10px;line-height:1.2;letter-spacing:-.015em}
.customer-body .heading-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}
.customer-body .heading-row h1{margin:0}
.customer-body .heading-row>a{font-size:12px;font-weight:600;color:var(--teal);white-space:nowrap}
.customer-body .customer-topbar{display:flex;align-items:center;height:30px;margin-bottom:10px}
.customer-body .back{display:inline-flex;align-items:center;justify-content:center;width:32px;height:30px;margin:0 0 0 -7px;color:var(--ink);font-size:inherit;line-height:1}
.customer-body .back svg{width:24px;height:24px}
.customer-body .customer-close{display:grid;place-items:center;width:32px;height:32px;margin-left:auto;margin-right:-5px;color:var(--ink)}
.customer-body .customer-close svg{width:24px;height:24px}
.customer-body .customer-nav{position:static;inset:auto;transform:none;width:100%;height:auto;min-height:50px;flex:none;display:flex;background:#fff;border-top:1px solid #e8eae9;padding:6px 8px calc(4px + env(safe-area-inset-bottom,0px));z-index:2;box-shadow:none}
.customer-body .customer-nav a{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;color:var(--ink);font-size:9px;line-height:1.2;font-weight:400;min-height:37px;padding:0}
.customer-body .customer-nav a>span{font-size:inherit;line-height:inherit;display:block}
.customer-body .customer-nav svg{width:23px;height:23px}
.customer-body .customer-nav .active{color:#00cfc1}

/* UK registration plates use real SVG flag artwork, independent of emoji fonts. */
.customer-body .plate{display:inline-flex;vertical-align:middle;align-items:stretch;gap:0;width:auto;max-width:100%;height:28px;min-height:0;padding:0;overflow:hidden;border:1px solid #dfe3e1;border-radius:5px;background:#fff;margin:0;color:#17201f}
.customer-body .plate .plate-gb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;flex:0 0 23px;width:23px;padding:3px 2px;background:var(--teal);color:#fff}
.customer-body .plate-gb svg{width:16px;height:11px}
.customer-body .plate-gb small{font:600 6px/1 Poppins,Arial,sans-serif;letter-spacing:.4px}
.customer-body .plate .plate-reg{display:flex;flex-direction:row;align-items:center;padding:0 8px;background:#fff;color:var(--ink);font-family:'Arial Narrow',Arial,sans-serif;font-size:15px;line-height:1;font-weight:800;letter-spacing:.4px;transform:translate(0,2px)}
.customer-body .plate-input{height:39px;flex:1;min-width:0;border-radius:6px}
.customer-body .plate-input .plate-gb{flex-basis:27px}
.customer-body .plate-input input{display:block;flex:1;min-width:0;width:100%;min-height:0;height:100%;border:0;border-radius:0;background:none;box-shadow:none;padding:0 7px;font-family:'Arial Narrow',Arial,sans-serif;font-weight:700;font-size:17px;letter-spacing:.6px;text-transform:uppercase;line-height:1}
.customer-body #home-reg{transform:translate(5px,2px)}
.customer-body #home-reg::placeholder{color:#a9acaa;opacity:1;letter-spacing:1.3px}
.customer-body .plate-input:focus-within{outline:2px solid var(--aqua);outline-offset:1px}
.customer-body .plate-input input:focus-visible{outline:none}

/* Get Quote / home: the narrow, centred desktop screen is intentional. */
.customer-body .dashboard-content{padding:0 0 22px}
.customer-body .customer-hero{position:relative;overflow:visible;margin:0;padding:5px 20px 55px;background:var(--teal);color:#fff}
.customer-body .customer-hero:before{content:"";position:absolute;left:-39px;bottom:-79px;width:88px;height:115px;border-radius:25px;background:#06dcce;transform:rotate(12deg);pointer-events:none}
.customer-body .customer-hero h1{position:relative;color:#fff;font-size:22px;letter-spacing:-.025em;line-height:1.25;margin:0 0 21px}
.customer-body .customer-hero p{position:relative;color:#fff;font-size:13px;font-weight:600;margin:0;line-height:1.3}
.customer-body .home-body{position:relative;margin-top:-20px;padding:0 20px;z-index:1}
.customer-body .insure-card{position:relative;margin:0;padding:16px;border-color:transparent;border-radius:14px;box-shadow:0 6px 22px #0d282e1a}
.customer-body .insure-card h2{font-size:12px;margin:0 0 10px;font-weight:600;line-height:1.1}
.customer-body .registration-form{display:flex;align-items:center;gap:9px}
.customer-body .registration-form .btn-primary{flex:none;min-height:39px;padding:0 14px;font-size:14px}
.customer-body .previous-cars{margin-top:34px}
.customer-body .previous-cars>.section-label{margin:0 0 13px}
.customer-body .cars-swiper{width:100%;overflow:visible;margin:0}
.customer-body .cars-swiper .swiper-wrapper{align-items:stretch}
.customer-body .car-card{height:auto;width:91%;padding:14px;margin:0;flex-shrink:0;border-radius:13px}
.customer-body .car-card h3{font-size:15px;font-weight:600;line-height:1.15;margin:0 0 12px;overflow-wrap:anywhere}
.customer-body .car-card .button-outline{display:flex;margin-top:20px;min-height:38px;font-size:12px;padding:8px 14px}
.customer-body .car-pagination{display:flex;align-items:center;justify-content:center;gap:8px;min-height:10px;margin-top:14px}
.customer-body .car-pagination.swiper-pagination-lock{display:flex}
.customer-body .car-pagination .swiper-pagination-bullet,.customer-body .car-dot{display:block;margin:0!important;width:8px;height:8px;min-height:0;border:1px solid var(--ink);border-radius:50%;padding:0;background:transparent;opacity:1;box-sizing:border-box}
.customer-body .car-pagination .swiper-pagination-bullet-active,.customer-body .car-dot[aria-current=true]{background:var(--ink)}
.customer-body .car-empty p{font-size:13px;color:var(--muted);margin:0}
.customer-body .cars-swiper.is-native{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.customer-body .cars-swiper.is-native .swiper-wrapper{gap:16px;transform:none!important}
.customer-body .cars-swiper.is-native .car-card{scroll-snap-align:start}
.customer-body .help-banner{display:flex;align-items:center;gap:15px;margin:27px 0 0;padding:16px;border:0;border-radius:11px;background:var(--teal);color:#fff;min-height:70px}
.customer-body .promo-dark .promo-icon{color:var(--turquoise);flex:none}
.customer-body .promo-icon svg{width:36px;height:36px}
.customer-body .promo-copy{display:block;min-width:0;color:#fff}
.customer-body .promo-copy strong{display:block;font-size:13px;font-weight:600;line-height:1.2}
.customer-body .promo-copy small{display:block;font-size:9px;line-height:1.35;margin-top:5px;letter-spacing:-.1px}
.customer-body .two-cards{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:20px}
.customer-body .info-card{position:relative;display:block;padding:16px 14px 21px;min-height:120px;margin:0}
.customer-body .info-card .chevron{position:absolute;right:12px;top:15px;color:var(--turquoise)}
.customer-body .info-card .chevron svg{width:19px;height:19px}
.customer-body .feedback-sparkles{position:absolute;left:14px;top:13px;color:var(--teal)}
.customer-body .feedback-sparkles svg{width:26px;height:23px}
.customer-body .info-card h2{font-size:13px;font-weight:600;line-height:1.2;margin:24px 0 8px}
.customer-body .info-card p{font-size:11px;line-height:1.3;color:#3b4543;margin:0}

/* Policy list and detail use existing policy data and download routes. */
.customer-body .segmented{background:#fff;border:1px solid #e5e7e6;border-radius:999px;padding:3px;gap:0;margin:0 0 18px}
.customer-body .segmented button{font-size:13px;border-radius:999px;min-height:34px;padding:6px 12px;line-height:1.1;background:none;color:var(--ink)}
.customer-body .segmented .selected{background:var(--teal);color:#fff}
.customer-body .policy-card{display:block;padding:15px 16px 13px;margin-bottom:15px;border:1px solid #dfe3e1;border-radius:13px;background:#fff;box-shadow:0 1px 2px #1028250d}
.customer-body .policy-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.customer-body .cover-label{display:inline-flex;align-items:center;gap:6px;margin:0;padding:5px 10px;max-width:100%;border-radius:6px;color:var(--ink);background:#cff7f5;font-size:12px;font-weight:600;line-height:1.1}
.customer-body .cover-label svg{width:14px;height:14px}
.customer-body .policy-state-icon{display:grid;place-items:center;border-radius:50%;width:28px;height:28px;background:#cff7f5;color:#015466}
.customer-body .policy-state-icon.is-completed{background:#f7e1ee;color:#d62f5c}
.customer-body .policy-state-icon svg{width:16px;height:16px}
.customer-body .policy-card h2{font-size:14px;font-weight:600;line-height:1.15;margin:12px 0 8px}
.customer-body .policy-start{display:flex;gap:10px;font-size:12px;line-height:1.25;margin:10px 0 7px;color:#3b4543}
.customer-body .policy-start time{color:var(--ink)}
.customer-body .policy-card-footer{display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:8px;margin-top:6px;font-size:11px;line-height:1.2;font-weight:600}
.customer-body .policy-card-footer time{text-align:right}
.customer-body .policy-filters{font-size:12px;margin:18px 0;padding:12px;border:1px solid #e5e7e6;border-radius:10px;background:#fff}
.customer-body .policy-filters summary{cursor:pointer;font-weight:600}
.customer-body .policy-filters[open] summary{margin-bottom:16px}
.customer-body .pagination-bar{padding:10px 0;font-size:11px}
.customer-body .pagination-bar button{border-color:#dfe3e1}
.customer-body .pink-banner{display:flex;align-items:center;gap:10px;margin-top:16px;border:0;background:#f7e1ee;border-radius:10px;padding:13px 14px;font-size:11px;font-weight:600}
.customer-body .pink-banner .inline-chevron{margin-left:auto}
.customer-body .policy-detail-card{padding:16px 16px 13px}
.customer-body[data-page="policy"] .phone-content{padding-top:6px}
.customer-body[data-page="policy"] .phone-content>h1{margin-bottom:11px}
.customer-body[data-page="policy"] .section-label{margin-top:18px}
.customer-body .policy-detail-card h2{font-size:20px;line-height:1.1;font-weight:600;margin-bottom:8px}
.customer-body .policy-cover-tag{display:flex;margin-top:11px}
.customer-body .date-box{background:#f4f6f5;border:1px solid #e4e7e5;border-radius:9px;padding:5px 12px;margin:14px 0 10px;text-align:center;line-height:1.15;font-size:11px;color:var(--ink)}
.customer-body .date-box>span,.customer-body .date-box>strong{display:block}
.customer-body .date-box>strong{font-size:13px;font-weight:600;margin:2px 0}
.customer-body .policy-detail-card .date-box{padding:4px 12px;margin:12px 0 8px}
.customer-body .value-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:11px;line-height:1.2;margin:0;padding:6px 0;border:0}
.customer-body .value-row b{font-size:12px;font-weight:600;text-align:right;overflow-wrap:anywhere;max-width:64%}
.customer-body .policy-detail-card .value-row{font-size:12px;padding:4px 0}
.customer-body .policy-detail-card .value-row b{font-size:13px}
.customer-body .policy-end{border-top:1px solid var(--line);margin-top:5px;padding-top:8px}
.customer-body .policy-progress{height:6px;overflow:hidden;border-radius:999px;background:#e2e7e5;margin-top:5px}
.customer-body .policy-progress>span{display:block;height:100%;width:0;background:var(--turquoise);border-radius:inherit}
.customer-body .remaining-row{padding:6px 0 0}
.customer-body .policy-detail-card .remaining-row{padding:4px 0 0}
.customer-body .policy-number-card{padding:12px 16px}
.customer-body .policy-number-card p{font-size:12px;margin:0 0 6px}
.customer-body .policy-number-row{display:flex;justify-content:space-between;align-items:center;gap:14px}
.customer-body .policy-number-row>b{font-size:11px;font-weight:600;overflow-wrap:anywhere}
.customer-body .policy-number-row .btn-primary{flex:none;font-size:11px;min-height:31px;padding:5px 15px}
.customer-body .policy-action-note{font-size:13px;color:#3b4543;margin:0 0 17px}
.customer-body .policy-document-list{display:flex;flex-direction:column;gap:9px}
.customer-body .row-link{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;color:var(--ink);border:1px solid #e4e7e5;border-radius:11px;min-height:54px;margin:0 0 10px;padding:15px 16px;box-shadow:0 1px 2px #1028250d;font-size:14px;font-weight:600;line-height:1.2}
.customer-body .row-link .inline-chevron{margin-left:auto}
.customer-body .inline-chevron{flex:none;display:flex;color:var(--teal)}
.customer-body .inline-chevron svg{width:18px;height:18px}
.customer-body .document-row{min-height:54px;margin:0;padding:13px 15px;justify-content:flex-start;gap:12px}
.customer-body .document-icon{flex:none;color:var(--teal)}
.customer-body .document-icon svg{width:18px;height:18px}
.customer-body .document-label{flex:1;color:var(--ink);font-size:11px;font-weight:600;line-height:1.25}

/* Account, licence summary and support screens. */
.customer-body .account-content{display:flex;flex-direction:column;padding-bottom:8px}
.customer-body .account-content .account-name{text-align:center;font-size:13px;font-weight:600;margin:18px 0 30px}
.customer-body .account-content .section-label{margin:0 0 10px;font-size:11px}
.customer-body .account-content .row-link,.customer-body .account-content .grouped-list{margin-bottom:21px;flex-shrink:0}
.customer-body .grouped-list{padding:0}
.customer-body .grouped-list .row-link{background:transparent;box-shadow:none;border:0;border-radius:0;margin:0;padding:17px 16px;min-height:54px;position:relative}
.customer-body .grouped-list .row-link+.row-link:before{content:"";position:absolute;top:0;left:16px;right:16px;height:1px;background:var(--line)}
.customer-body .account-content .grouped-list .row-link{margin:0}
.customer-body .account-version{font-size:14px;font-weight:400;color:#7b827f}
.customer-body .account-logout{margin-top:auto;padding:30px 0 0}
.customer-body .account-logout .btn-primary{min-height:43px}
.customer-body .profile-card h2{display:flex;align-items:center;gap:10px;font-size:15px;margin-bottom:12px}
.customer-body .profile-card h2 svg{width:20px;height:20px;color:var(--teal)}
.customer-body .profile-card p{font-size:13px;line-height:1.6;margin:0 0 10px;overflow-wrap:anywhere}
.customer-body .profile-card p:last-child{margin-bottom:0}
.customer-body .licence-type{display:flex;align-items:center;gap:9px;font-size:13px;line-height:1.2}
.customer-body .licence-type>span{display:grid;place-items:center;width:23px;height:23px;flex:none;border:1.5px solid var(--turquoise);color:var(--teal);font-size:11px;font-weight:600;border-radius:50%}
.customer-body .profile-edit-toggle{border:0;background:none;color:var(--teal);font-size:12px;font-weight:600;padding:3px 0}
.customer-body .claim-intro{font-size:13px;line-height:1.25;margin:0 0 32px;color:#3b4543}
.customer-body .claim-list .inline-chevron{color:var(--turquoise)}
.customer-body .claim-body{font-size:13px;color:#3b4543;line-height:1.2;margin-top:28px}
.customer-body .claim-body p{font-size:13px;line-height:1.2;margin-bottom:14px}
.customer-body .claim-body p strong{font-size:12px;color:var(--ink)}
.customer-body .claim-body li{margin-bottom:10px;line-height:1.25}
.customer-body .claim-actions{position:sticky;bottom:-24px;margin:24px -20px -24px;padding:14px 20px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid #e9ecea;background:#fff;display:flex;flex-direction:column;gap:9px}
.customer-body[data-page^="claims/"] .phone-content{display:flex;flex-direction:column}
.customer-body[data-page^="claims/"] .claim-actions{margin-top:auto}
.customer-body .claim-actions .btn-primary,.customer-body .claim-actions .button-outline{min-height:48px}

/* Existing authentication endpoints retain their forms and validation. */
.customer-body .auth-phone{max-width:480px}
.customer-body .auth-content{display:flex;flex-direction:column;padding:20px 22px 18px}
.customer-body .auth-content>.back{margin:0 0 14px -5px;flex:none}
.customer-body .auth-content>h1{font-size:23px;line-height:1.15;margin:0 0 20px}
.customer-body .auth-form{flex:1;min-height:0;display:flex;flex-direction:column}
.customer-body .auth-form label{font-size:14px;line-height:1.15;margin-bottom:25px;font-weight:600}
.customer-body .auth-form label input{font-size:16px;height:59px;min-height:59px;margin-top:9px;border:1px solid #dfe3e1;border-radius:11px;padding:12px 16px;box-shadow:0 1px 2px #10282505}
.customer-body .auth-form .password-field{margin-top:9px}
.customer-body .auth-form .password-field input{margin-top:0;padding-right:56px}
.customer-body .auth-form .eye{height:31px;width:38px;right:11px;border-radius:9px;padding:5px 7px;background:#d7dcda;color:#697a77;top:50%}
.customer-body .auth-form .eye svg{width:24px;height:21px}
.customer-body .auth-form .forgot{font-size:14px;font-weight:600;margin:3px 0 20px;line-height:1.2}
.customer-body .auth-form .auth-submit{margin-top:auto;min-height:57px;font-size:17px;font-weight:600}
.customer-body .welcome{position:relative;background:var(--teal);color:#fff;min-height:0;height:100%;overflow-y:auto;padding:54px 22px 23px;display:flex;flex-direction:column;flex:1}
.customer-body .welcome .logo{display:block;width:208px;height:auto;margin:0 auto 36px;flex:none}
.customer-body .welcome h1{color:#fff;font-size:38px;line-height:1.17;margin:0 0 0 18px;letter-spacing:-.035em}
.customer-body .welcome mark{position:relative;isolation:isolate;color:var(--teal);background:none;padding:0;display:inline-block;margin:4px 0}
.customer-body .welcome mark:before{content:"";position:absolute;z-index:-1;inset:-2px -14px -4px -12px;background:#f1b2e4;clip-path:polygon(0 9%,94% 0,94% 17%,100% 27%,97% 98%,51% 89%,2% 95%)}
.customer-body .welcome>p{color:#f0f7f6;font-size:16px;line-height:1.4;margin:24px 0 0 18px;max-width:19em;font-weight:400}
.customer-body .welcome ul{list-style:none;margin:29px 0 50px 18px;padding:0;display:flex;flex-direction:column;gap:22px}
.customer-body .welcome li{display:flex;align-items:center;font-size:16px;font-weight:600;line-height:1.3;margin:0}
.customer-body .welcome li:before{content:'✓';display:grid;place-items:center;flex:none;width:24px;height:24px;font-size:16px;font-weight:400;padding:0;background:#f1b2e4;color:var(--teal);border-radius:50%;margin-right:16px}
.customer-body .welcome .btn-white{margin-top:auto;min-height:57px;font-size:17px;font-weight:600}
.customer-body .welcome>p.welcome-guest{margin:17px 0 0;max-width:none;text-align:center;font-size:14px;font-weight:600;color:#fff}
.customer-body .welcome .welcome-guest a{color:#fff}
.customer-body .customer-splash{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;flex-direction:column;background:var(--teal);color:#fff;opacity:1;transition:opacity .18s ease;pointer-events:none}
.customer-body .customer-splash.is-leaving{opacity:0}
.customer-body .customer-splash img{width:180px;height:auto}
.customer-body .splash-endorsement{font-size:13px;line-height:1;margin-top:0;margin-left:65px}
.customer-body .splash-endorsement b{font-size:20px;font-weight:700;font-style:italic}
.customer-body .splash-spinner{width:30px;height:30px;margin-top:43px;border:3px dotted #e7f3f0;border-radius:50%;animation:customer-spin 1.2s linear infinite}
@keyframes customer-spin{to{transform:rotate(360deg)}}
.customer-body .row-link:active,.customer-body .info-card:active,.customer-body .policy-card:active{background:#f0f8f6}
@media(max-width:359px){.customer-body .phone-content{padding-left:16px;padding-right:16px}.customer-body .home-body{padding-left:16px;padding-right:16px}.customer-body .customer-hero{padding-left:16px;padding-right:16px}.customer-body .promo-copy small{font-size:8px}.customer-body .welcome{padding-left:18px;padding-right:18px}.customer-body .welcome h1{font-size:31px;margin-left:8px}.customer-body .welcome>p,.customer-body .welcome ul{margin-left:8px}.customer-body .welcome li{font-size:14px}}
@media(max-height:700px){.customer-body .welcome{padding-top:28px}.customer-body .welcome .logo{width:170px;margin-bottom:22px}.customer-body .welcome h1{font-size:32px}.customer-body .welcome>p{font-size:14px;margin-top:18px}.customer-body .welcome ul{margin-top:22px;margin-bottom:26px;gap:16px}.customer-body .welcome li{font-size:14px}}
@media(prefers-reduced-motion:reduce){.customer-body *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
