*,*::before,*::after{box-sizing:border-box}
:root{font-family:"DM Sans",Arial,sans-serif;color:#102c36;background:#f1f6f5;--dark:#081e2a;--ink:#102c36;--muted:#47626a;--accent:#c9fc76;--teal:#106958;--line:#d7e4e1;--mono:"DM Mono",monospace}
body{margin:0;min-height:100vh}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{line-height:1.12;letter-spacing:-.035em}
a{color:#126153;text-underline-offset:.22em}
a:hover{text-decoration-thickness:2px}
button,input,select,textarea{font:inherit}
button,summary{cursor:pointer}
:focus-visible{outline:3px solid #269f83;outline-offset:4px}
[hidden]{display:none!important}
.home-wrap,.wrap{width:min(100% - 56px,1180px);margin-inline:auto}
.header-inner{min-height:75px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;font-weight:800;font-size:27px;line-height:1;letter-spacing:-.065em;color:inherit;white-space:nowrap}
.brand-hp{color:#77ccac}
.brand-mark{display:grid;grid-template-columns:repeat(2,7px);grid-template-rows:repeat(2,7px);gap:3px;padding:8px;border-radius:9px;background:#c9fc76;transform:rotate(-8deg)}
.brand-mark i{border:2px solid #153428;border-radius:2px}
.brand-mark i:nth-child(3){background:#153428}
.button{border:1px solid transparent;border-radius:10px;min-height:48px;padding:0 17px;display:inline-flex;align-items:center;justify-content:center;gap:14px;font-weight:800;text-decoration:none;line-height:1.2;font-size:.92rem;transition:background .15s}
.button:hover{text-decoration:none}
.button:disabled{opacity:.6;cursor:wait}
.button-quiet{background:transparent;color:inherit;border-color:currentColor}
.button-quiet:hover{background:#83bca924}
.button-accent{background:var(--accent);color:#112b22}
.button-accent:hover{background:#dafea1}
.button-primary{background:#103c3d;color:white}
.button-primary:hover{background:#195652}
.button-success{background:#146b47;color:white}
.button-success:hover{background:#0b5234}
.button-outline{background:white;color:#164f43;border-color:#c8dbd6}
.button-outline:hover{background:#edf6f3}
.button-danger{background:#98352d;color:white}
.home-header,.home-hero{background:var(--dark);color:#f5fff8}
.home-header{border-bottom:1px solid #25414b}
.home-header .button-quiet{border-color:#49636b;min-height:43px}
.hero-inner{min-height:565px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:20px;padding-block:66px}
.eyebrow{font-family:var(--mono);font-size:.75rem;font-weight:500;letter-spacing:.1em;color:#347568;margin-bottom:13px}
.home .eyebrow{color:#a5dbce;display:flex;align-items:center;gap:9px;margin-bottom:26px}
.eyebrow span{width:8px;height:8px;background:var(--accent);border-radius:50%;box-shadow:0 0 13px #c9fc76}
.hero-copy{position:relative;z-index:1}
.hero-copy h1{font-size:clamp(2.7rem,5.55vw,5.35rem);line-height:.99;letter-spacing:-.075em;margin-bottom:24px;font-weight:800}
.hero-copy h1 em{color:var(--accent);font-style:normal;white-space:nowrap}
.initiative{font-size:clamp(1rem,1.75vw,1.37rem);font-weight:600;color:#f1faf6;margin-bottom:15px}
.hero-detail{color:#b9ced0;font-size:1rem;line-height:1.65;max-width:400px;margin:10px 0 0}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px}
.hero-actions .button{min-height:52px}
.hero-prize{display:grid;gap:2px;padding-left:16px;border-left:1px solid #49636b;color:var(--accent)}
.hero-prize small{color:#b9ced0;font:500 .68rem var(--mono);text-transform:uppercase;letter-spacing:.08em}
.hero-prize strong{font-size:1.65rem;line-height:1;letter-spacing:-.05em}
.new-dealer-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:#e5f4ee;font-weight:700}
.hero-visual{height:430px;position:relative;isolation:isolate;overflow:hidden;border:1px solid #29434b;border-radius:26px;background:radial-gradient(ellipse at 61% 62%,#1a6c61 0%,#103d43 38%,#0c2c36 65%,#0b2531 100%)}
.visual-grid{position:absolute;inset:0;opacity:.33;background-image:linear-gradient(#7ea69b32 1px,transparent 1px),linear-gradient(90deg,#7ea69b32 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(to bottom,transparent,#000 44%,#000)}
.visual-orbit{position:absolute;width:77%;height:84%;left:12%;top:8%;border:1px solid #87baaa33;border-radius:50%;transform:rotate(-15deg);box-shadow:0 0 0 24px #8fccbc0b,0 0 0 49px #8fccbc0a}
.laptop{position:absolute;width:73%;left:11%;top:17%;transform:rotate(-9deg);filter:drop-shadow(10px 24px 18px #001510a0)}
.laptop-screen{position:relative;width:83%;aspect-ratio:1.54;margin-inline:auto;background:#061319;border:3px solid #50666d;border-bottom-width:6px;border-radius:13px 13px 5px 5px;box-shadow:inset 0 0 0 5px #051318;overflow:hidden}
.screen-wallpaper{position:absolute;inset:6px;background:linear-gradient(125deg,#0f433f,#102c43 65%);overflow:hidden}
.screen-wallpaper::before,.screen-wallpaper::after{content:"";position:absolute;inset:-26%;background:repeating-radial-gradient(ellipse at 63% 52%,#5bd39b50 0 1px,transparent 3px 10px),radial-gradient(ellipse at 40% 67%,#5ac683 0,#136965 43%,transparent 72%);transform:skew(-19deg) rotate(-20deg);opacity:.77}
.screen-wallpaper::after{transform:rotate(37deg) translate(-30%,45%);opacity:.65}
.screen-badge{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;color:#e0ffb1;font:500 clamp(8px,1vw,13px) var(--mono);letter-spacing:.15em;text-shadow:0 2px 8px #002017}
.scan-frame{width:80px;height:56px;position:relative;display:flex;gap:3px;justify-content:center;align-items:center;filter:drop-shadow(0 0 5px #c9fc76a0)}
.scan-frame i{position:absolute;width:12px;height:12px;border:2px solid #cbff86}
.scan-frame i:nth-child(1){top:0;left:0;border-right:0;border-bottom:0}
.scan-frame i:nth-child(2){top:0;right:0;border-left:0;border-bottom:0}
.scan-frame i:nth-child(3){bottom:0;left:0;border-right:0;border-top:0}
.scan-frame i:nth-child(4){bottom:0;right:0;border-left:0;border-top:0}
.scan-frame b{width:2px;height:22px;background:#d7ff98}
.scan-frame b:nth-child(odd){width:4px}
.laptop-deck{height:38px;background:linear-gradient(170deg,#849695,#586f73 65%,#92a19b);clip-path:polygon(8.5% 0,91.5% 0,100% 100%,0 100%);display:grid;place-items:center}
.laptop-deck::before{content:"";display:block;width:72%;height:57%;background:repeating-linear-gradient(90deg,#2b4147 0 7px,#658084 7px 9px);border:2px solid #344b50;transform:perspective(65px) rotateX(24deg);border-radius:4px}
.laptop-edge{height:8px;background:linear-gradient(#adbcba,#3f585d);border-radius:0 0 55% 55%;border-top:1px solid #c2d3d1}
.home-steps{background:#f0f6f1;padding:39px 0 46px}
.home-new-dealer{background:#f8fcf9;padding:32px 0;border-top:1px solid #d7e4e1;scroll-margin-top:16px}
.home-new-dealer h2{font-size:1.55rem;margin-bottom:10px}
.home-new-dealer p{max-width:56ch;color:var(--muted);line-height:1.55}
.home-steps h2{font-size:1.55rem;margin-bottom:25px}
.step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.step-grid>div{border-top:1px solid #afc7bd;padding-top:16px}
.step-grid span{font:500 .75rem var(--mono);color:#3f776b}
.step-grid h3{margin:8px 0 7px;font-size:1.12rem}
.step-grid p{margin:0;color:#47626a;font-size:.93rem;line-height:1.55}
.home-footer{background:#e6efea;font-size:.88rem;color:#375952}
.home-footer a{margin-left:17px}
.portal-header{background:#0c2834;color:white}
.portal-header a{color:inherit}
.portal-header .brand-hp{color:#91e3bf}
.admin-name{margin-left:auto}
.dealer-main,.admin-main{padding-block:31px 52px}
.dealer-main>h1,.admin-main>h1{font-size:clamp(2rem,5vw,3.1rem);margin-bottom:19px}
.card{background:white;border:1px solid var(--line);border-radius:16px;padding:22px;margin-bottom:16px;min-width:0}
.card h2{font-size:1.35rem;margin-bottom:12px}
.card p:last-child{margin-bottom:0}
.muted,.portal-foot{color:var(--muted);line-height:1.5;font-size:.92rem}
.portal-foot{margin:20px 0}
.auth-wrap{width:min(100% - 36px,460px);margin:clamp(35px,9vh,96px) auto}
.auth-card{padding:clamp(22px,5vw,37px)}
.auth-card h1{font-size:2.3rem;margin-bottom:14px}
.stack,.form-grid{display:grid;gap:13px}
.stack .button,.compact .button{justify-self:start}
.auth-card .button{width:100%}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.inline-form{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin-bottom:13px}
.inline-form label{flex:1;min-width:150px}
.claim-card .inline-form input{flex:1 1 220px;font:500 1.08rem var(--mono);min-height:54px;text-transform:uppercase}
.claim-card .inline-form button{min-height:54px}
label{display:grid;gap:5px;font-weight:700;font-size:.9rem}
input:not([type=checkbox]):not([type=hidden]),select,textarea{min-height:48px;width:100%;min-width:0;border:1px solid #a9c1ba;border-radius:9px;background:#fbfdfc;color:var(--ink);padding:10px 12px}
input[type=file]{max-width:100%}
textarea{resize:vertical}
.checkbox{display:flex;align-items:center;gap:8px}
.checkbox input{width:20px;height:20px}
.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.serial-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.stat{display:grid;gap:3px}
.stat span{color:var(--muted);font-size:.85rem}
.stat strong{font-size:clamp(1.15rem,3vw,1.85rem);letter-spacing:-.055em}
.dealer-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}
.winner-mini{background:#e8f7e9}
.winner-mini p:last-child{color:#31584c}
.prize-line{font-weight:700;color:#285e45}
.table-scroll{overflow:auto}
table{border-collapse:collapse;width:100%;text-align:left;font-size:.88rem}
th,td{padding:10px 9px;border-bottom:1px solid #e1ebe8;vertical-align:top}
th{background:#eef6f3;color:#31574c;font-weight:800;white-space:nowrap}
td{overflow-wrap:anywhere}
td .button{margin-top:6px}
.num{text-align:right}
summary{font-weight:800;color:#205c4e;min-height:32px}
details[open]>summary{margin-bottom:6px}
.admin-shell{display:grid;grid-template-columns:168px minmax(0,1fr);gap:22px}
.admin-nav{align-self:start;display:grid;gap:4px;padding-top:35px}
.admin-nav a{display:flex;align-items:center;padding:11px;min-height:44px;border-radius:8px;text-decoration:none;font-weight:700}
.admin-nav a[aria-current],.admin-nav a:hover{background:#d9ebe4}
.text-button{background:none;border:0;padding:7px 0;color:#126153;text-decoration:underline}
.notice,.draw-result{border-radius:9px;padding:11px 12px;margin-top:10px}
.notice.success,.draw-result{background:#e3f5e8;color:#175737}
.notice.error{background:#fbe9e5;color:#843125}
.pagination{display:flex;gap:15px;margin-top:12px}
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.error-page main{padding-top:42px}
.confetti{position:fixed;inset:0;pointer-events:none;z-index:10}
.dealer-shortcuts,.request-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.dealer-shortcuts a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:white;font-weight:700;text-decoration:none}
.dealer-tools,.claim-card{scroll-margin-top:12px}
.dealer-tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}
.dealer-tool-grid>details,.dealer-request-history{padding:12px;border:1px solid var(--line);border-radius:9px}
.dealer-tool-grid summary,.dealer-request-history summary{padding-top:5px}
.dealer-request-history{margin-top:12px}
.request-filters [aria-current="page"]{background:#d9ebe4}
.request-item{padding:16px 0;border-top:1px solid var(--line)}
.request-details{white-space:pre-wrap;overflow-wrap:anywhere}
.tracked-request{padding:10px 0;border-top:1px solid var(--line)}
.tracked-request summary{overflow-wrap:anywhere}
.request-status{display:inline-block;background:#e4f4ec;color:#205447;padding:2px 8px;border-radius:6px;font-size:.8rem}
.request-timeline{padding-left:20px;color:var(--muted);font-size:.9rem}
.request-fields{display:grid;grid-template-columns:minmax(100px,max-content) minmax(0,1fr);gap:4px 12px}
.request-fields dt{font-weight:700}
.request-fields dd{margin:0;overflow-wrap:anywhere}
.request-reply{border-left:3px solid #609b84;padding:10px 12px;margin:10px 0;background:#f1f8f4;overflow-wrap:anywhere}
.request-reply small{display:block;color:var(--muted);margin:4px 0}
.request-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.creative-list{list-style:none;margin:0;padding:0}
.creative-list li{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:10px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}
@media(max-width:640px){.dealer-tool-grid{grid-template-columns:1fr}}
@media(max-width:860px){.hero-inner{min-height:480px;gap:12px}.hero-visual{height:345px}.laptop{top:24%}.admin-shell{grid-template-columns:1fr;gap:0}.admin-nav{display:flex;flex-wrap:wrap;padding-top:16px}.admin-main{padding-top:15px}}
@media(max-width:640px){.home-wrap,.wrap{width:calc(100% - 32px)}.header-inner{min-height:62px}.brand{font-size:23px}.hero-inner{grid-template-columns:1fr;padding-block:39px 29px;gap:28px}.hero-copy h1{font-size:clamp(2.2rem,9.3vw,3.75rem);margin-bottom:18px}.home .eyebrow{margin-bottom:17px}.hero-visual{height:clamp(222px,65vw,350px)}.laptop{top:16%;width:min(69%,355px);left:13%}.hero-actions{gap:10px 12px}.hero-prize{padding-left:10px}.home-steps{padding-block:30px}.step-grid{grid-template-columns:1fr;gap:17px}.home-footer .header-inner{align-items:flex-start;flex-direction:column;padding-block:16px;gap:7px}.home-footer a{margin-left:0;margin-right:15px}.dealer-grid,.form-grid{grid-template-columns:1fr;gap:8px}.card{padding:15px}.stat-grid{gap:6px}.stat{padding:9px}.serial-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-nav a{font-size:.82rem;padding:5px 8px}.admin-name{display:none}.claim-card button{width:100%}}
@media(max-width:360px){.hero-copy h1{font-size:2rem}.hero-copy h1 em{white-space:normal}.scan-frame{transform:scale(.7)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

.install-panel{margin:12px 0 16px;max-width:34rem}
.install-panel summary{display:list-item;min-height:44px;line-height:1.4;padding:10px 0}
.install-panel ul{margin:4px 0 0;padding-left:20px;line-height:1.5}
.install-panel li+li{margin-top:6px}
.install-button{background:#e7f5ed;color:#17573e;border-color:#bedbca}
.home .install-panel summary,.home .install-panel ul{color:#d2e6df}
.assigned-date-label{display:none}

@media(max-width:640px){
    .dealer-main,.admin-main{padding-bottom:calc(32px + env(safe-area-inset-bottom))}
    .dealer-main>h1,.admin-main>h1{overflow-wrap:anywhere}
    .auth-wrap{margin:24px auto}
    .portal input:not([type=checkbox]):not([type=hidden]),.portal select,.portal textarea{font-size:16px}
    .dealer-shortcuts{gap:6px}
    .dealer-shortcuts a,.admin-nav a{min-height:44px}
    .portal .stack .button,.portal .inline-form .button{width:100%}
    .portal .inline-form label{flex-basis:100%}
    .dealer-tool-grid summary,.dealer-request-history summary{min-height:44px;padding:10px 0}
    .assigned-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
    .assigned-table,.assigned-table tbody{display:block}
    .assigned-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;padding:10px 12px;margin-bottom:8px;border:1px solid var(--line);border-radius:10px}
    .assigned-table td{display:block;padding:0;border:0}
    .assigned-table .assigned-number{font-weight:800}
    .assigned-date-label{display:inline;color:var(--muted)}
    .assigned-action{margin-top:4px}
    .assigned-action .button{margin:0}
}
/* Public offer cards and customer enquiry inboxes */
.customer-home .customer-main{padding-block:clamp(28px,5vw,64px)}
.customer-main h1{font-size:clamp(2rem,6vw,3.8rem);margin-bottom:12px}
.customer-main>p:not(.eyebrow){max-width:62ch;color:var(--muted)}
.customer-home .customer-main .eyebrow,.customer-home .install-panel summary,.customer-home .install-panel ul{color:#276459}
.customer-nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.customer-nav .button-primary{background:var(--accent);color:#112b22}
.customer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:14px;margin-block:20px}
.customer-grid .card{margin-bottom:0;overflow-wrap:anywhere}
.customer-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.customer-card h2,.customer-card p{margin-bottom:0}
.customer-card>.button{margin-top:auto}
.customer-card .stack{width:100%}
.customer-tag{display:inline-block;font-size:.76rem;font-weight:800;color:#155846;background:#e4f4eb;border-radius:6px;padding:4px 8px}
.customer-check{display:flex;align-items:flex-start;gap:8px}
.customer-check input{margin-top:.23em;flex-shrink:0}
.customer-dealer,.enquiry-form{margin-top:24px}
.enquiry-form{max-width:560px}
.customer-home .home-footer{padding-block:18px}
@media(max-width:440px){
  .customer-home .header-inner{flex-wrap:wrap;justify-content:space-between;padding-block:12px;gap:10px}
  .customer-nav{justify-content:flex-start}
  .customer-nav .button{min-height:44px;padding-inline:10px;font-size:.83rem}
  .customer-home input:not([type=checkbox]),.customer-home textarea{font-size:16px}
}
