@font-face{font-family:Manrope;src:url('assets/manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}@font-face{font-family:'DM Sans';src:url('assets/dm-sans.ttf') format('truetype');font-weight:100 1000;font-display:swap}
:root{--bg:#0c1714;--surface:#14231e;--surface2:#1a2e25;--border:#2b3c32;--text:#f2f5ef;--muted:#a7b7ab;--accent:#b8ed7c;--brand:#7dc242;--green:#9ddc81;--yellow:#f1c66c;--red:#f49c91;--shade:#101e18;--shadow:0 16px 55px #0002;color-scheme:dark;font-family:'DM Sans',system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:16px;line-height:1.5}body.light{--bg:#f1f4ed;--surface:#fff;--surface2:#eaf0e4;--border:#d8e0d3;--text:#15271c;--muted:#586b5c;--green:#397b2d;--yellow:#946210;--red:#b63f31;--shade:#e7ecdf;color-scheme:light}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button:disabled{opacity:.45;cursor:not-allowed}a{color:var(--accent)}.light a{color:#357321}svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-lg svg{width:32px;height:32px}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{position:fixed;width:232px;inset:0 auto 0 0;padding:32px 22px;background:var(--shade);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:10px;font-family:Manrope,system-ui,sans-serif;font-weight:800;font-size:19px;line-height:1.25}.brandmark{background:var(--accent);color:#183520;width:40px;height:44px;border-radius:12px;display:grid;place-items:center}.brand small{display:block;font-family:'DM Sans',sans-serif;font-size:10px;letter-spacing:1.8px;color:var(--muted);margin-top:5px;font-weight:500}.client-logo{background:#fff;border-radius:15px;padding:15px;margin:35px 0 10px;display:grid;place-items:center;min-height:116px}.client-logo img{width:150px;max-height:95px;object-fit:contain}.client-name{font-size:11px;text-transform:uppercase;letter-spacing:1.6px;color:var(--muted);margin:11px 0 27px}.nav{display:grid;gap:7px}.nav button{border:0;background:none;text-align:left;display:flex;align-items:center;gap:12px;padding:14px;border-radius:12px;color:var(--muted);min-height:54px;font-size:14px}.nav button.active{background:#b8ed7c18;color:var(--accent)}.light .nav button.active{color:#396f21}.nav button:hover{background:var(--surface2);color:var(--text)}.side-bottom{margin-top:auto;padding-top:25px}.side-bottom p{font-size:10px;color:var(--muted);margin:24px 0 0}.side-bottom button{font-size:12px;min-height:46px}.main{grid-column:2;min-width:0}.topbar{height:92px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 40px;gap:20px}.crumb{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:9px}.crumb strong{color:var(--text);font-weight:500}.top-actions{display:flex;align-items:center;gap:12px}.pill{font-size:10px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:100px;border:1px solid var(--border);color:var(--muted)}.pill i,.status-dot{width:6px;height:6px;background:var(--accent);border-radius:100%;display:inline-block}.icon-btn{border:1px solid var(--border);background:var(--surface);width:48px;height:48px;border-radius:50%;display:grid;place-items:center;position:relative}.unread{position:absolute;right:8px;top:7px;width:7px;height:7px;border-radius:50%;background:var(--accent)}.avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#466046;color:#ecf4dc;font-size:13px;font-weight:700}.content{padding:36px 40px 55px;max-width:1360px;margin:auto}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;text-transform:uppercase;color:var(--accent);margin:0 0 10px}.light .eyebrow{color:#397421}h1,h2,h3{font-family:Manrope,system-ui,sans-serif;line-height:1.18;letter-spacing:-1px;margin:0}h1{font-size:38px;font-weight:700}h2{font-size:24px;font-weight:700;letter-spacing:-.6px}h3{font-size:18px;letter-spacing:-.3px}.muted{color:var(--muted)}.subtitle{color:var(--muted);margin:11px 0 0;font-size:14px}.pagehead{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:26px}.date{font-size:12px;color:var(--muted);text-align:right;padding-top:5px;line-height:1.8}.search-wrap{position:relative;margin:25px 0}.searchbox{display:flex;align-items:center;gap:13px;border:1px solid var(--border);background:var(--surface);border-radius:15px;padding:0 19px;height:62px}.searchbox input{background:none;border:0;outline:0;color:var(--text);width:100%;height:100%;font-size:14px}.searchbox input::placeholder{color:var(--muted)}kbd{border:1px solid var(--border);border-radius:5px;padding:1px 6px;font-size:11px;color:var(--muted)}.search-results{position:absolute;inset:66px 0 auto;z-index:30;padding:8px;background:var(--surface2);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.search-results:empty{display:none}.search-results button{width:100%;border:0;border-radius:8px;background:transparent;display:flex;gap:12px;align-items:center;text-align:left;padding:16px}.search-results button:hover{background:var(--surface)}.hero{background:var(--accent);color:#193021;border-radius:22px;padding:28px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative;overflow:hidden}.hero .eyebrow{color:#34552d}.hero h2{font-size:28px;max-width:360px}.hero p{font-size:14px;margin:12px 0 22px;color:#3b5736;max-width:400px}.hero .btn{background:#193622;color:#edf7e7;border-color:#193622}.hero-art{width:142px;min-width:142px;height:142px;display:grid;place-items:center;border:1px solid #23482135;border-radius:50%;position:relative}.hero-art:before,.hero-art:after{content:'';position:absolute;border:1px solid #23482120;border-radius:50%;inset:-15px}.hero-art:after{inset:-30px}.hero-art svg{width:66px;height:66px;stroke-width:1.1}.btn{min-height:52px;border-radius:12px;border:1px solid var(--border);background:var(--surface2);padding:12px 19px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:600;font-size:14px;text-decoration:none;white-space:normal}.btn.primary{background:var(--accent);border-color:var(--accent);color:#193321}.btn.ghost{background:transparent}.btn.danger{color:var(--red)}.btn.small{min-height:44px;padding:9px 14px;font-size:12px}.btn.full{width:100%}.text-btn{background:transparent;border:0;padding:10px 0;min-height:44px;color:var(--muted);display:inline-flex;gap:8px;align-items:center;font-size:13px}.text-btn:hover{color:var(--text)}.alert{display:flex;gap:13px;align-items:center;border:1px solid #b58b3a4d;background:#b58b3a0b;padding:17px 20px;border-radius:15px;color:var(--yellow);margin:22px 0}.alert p{margin:0;font-size:13px}.alert strong{font-size:14px;font-weight:600}.alert button{margin-left:auto;color:var(--yellow)}.alert svg{width:22px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:29px 0 17px}.section-title h2{font-size:19px}.section-title span{font-size:12px;color:var(--muted)}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.tile{background:var(--surface);border:1px solid var(--border);padding:22px;text-align:left;border-radius:18px;min-height:166px;position:relative;transition:transform .18s,border-color .18s}.tile:hover{transform:translateY(-3px);border-color:var(--brand)}.tile .tileicon{width:43px;height:43px;border-radius:13px;background:#b8ed7c0c;color:var(--accent);display:grid;place-items:center;margin-bottom:20px}.light .tile .tileicon{color:#3b7429;background:#edf4e8}.tile strong{font-family:Manrope,sans-serif;font-size:16px;display:block;font-weight:600;letter-spacing:-.3px}.tile small{font-size:11px;color:var(--muted);display:block;margin-top:6px}.tile>.arrow{position:absolute;right:20px;top:24px;color:var(--muted)}.arrow svg{width:17px;height:17px}.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:7px;font-size:11px;line-height:1.4;background:var(--surface2);color:var(--muted);white-space:nowrap;font-weight:600}.badge.approved{background:#82bf6a16;color:var(--green)}.badge.pending,.badge.soon{background:#d9ab4317;color:var(--yellow)}.badge.expired,.badge.rejected{background:#ea847717;color:var(--red)}.badge.missing{background:#a5b2a010;color:var(--muted)}.badge svg{height:13px;width:13px}.bottom-note{margin:25px 0 0;font-size:11px;color:var(--muted);display:flex;align-items:center;gap:8px}.bottom-note svg{width:15px;height:15px}.card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:25px}.card+.card{margin-top:18px}.two-col{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:22px;align-items:start}.summary-card{display:flex;align-items:center;gap:27px;margin:0 0 24px;padding:27px}.ring{--progress:50;position:relative;width:112px;height:112px;min-width:112px;border-radius:50%;background:conic-gradient(var(--accent) calc(var(--progress)*1%),var(--border) 0);display:grid;place-items:center}.ring:before{content:'';position:absolute;inset:8px;border-radius:50%;background:var(--surface)}.ring span{position:relative;font-size:27px;font-family:Manrope;font-weight:700;letter-spacing:-1px}.ring small{font-size:13px}.summary-card h2{font-size:23px}.summary-card p{margin:8px 0 12px;color:var(--muted);font-size:13px}.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin:18px 0}.legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;background:var(--muted)}.legend i.green{background:var(--green)}.legend i.yellow{background:var(--yellow)}.legend i.red{background:var(--red)}.list{border:1px solid var(--border);border-radius:18px;overflow:hidden;background:var(--surface)}.list-row{padding:20px 23px;display:flex;align-items:center;gap:15px;border-bottom:1px solid var(--border);min-height:87px}.list-row:last-child{border:0}.rowicon{display:grid;place-items:center;min-width:39px;width:39px;height:42px;color:var(--muted);border-radius:12px;background:var(--surface2)}.rowicon.approved{color:var(--green)}.rowicon.expired,.rowicon.rejected{color:var(--red)}.rowicon.pending{color:var(--yellow)}.rowmain{flex:1;min-width:0}.rowmain strong{font-size:14px;display:block;font-weight:600}.rowmain small{font-size:11px;color:var(--muted);display:block;margin-top:4px}.row-actions{display:flex;gap:10px;align-items:center}.list-row .text-btn{font-size:12px}.help-card{border:1px dashed var(--border);padding:23px;border-radius:18px;margin-top:20px}.help-card p{font-size:13px;margin:10px 0 0;color:var(--muted)}.help-card h3{font-size:16px}.steps{display:flex;gap:8px;align-items:center;margin:0 0 27px}.steps span{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);flex:1}.steps b{font-size:11px;width:27px;height:27px;border:1px solid var(--border);border-radius:50%;display:grid;place-items:center}.steps span.active{color:var(--accent)}.light .steps span.active{color:#397421}.steps span.active b{background:var(--accent);color:#1b331e;border-color:var(--accent)}label{display:block;font-size:13px;font-weight:600;margin-bottom:10px}.field{margin-bottom:23px}.field:last-child{margin-bottom:0}input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{width:100%;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:11px;min-height:54px;padding:13px 15px;outline-offset:2px}input[type=date]{min-width:0}textarea{min-height:110px;resize:vertical}.hint{font-size:11px;color:var(--muted);margin:8px 0 0}.fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;column-gap:16px;align-items:start}.fields>*{min-width:0}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px dashed #6c8c56;border-radius:15px;background:#b8ed7c05;padding:27px 15px;position:relative;min-height:170px;font-size:14px;cursor:pointer}.dropzone svg{color:var(--accent);margin:0 0 12px;width:30px;height:30px}.dropzone input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.dropzone small{font-size:11px;color:var(--muted);margin-top:7px}.preview{max-width:100%;max-height:170px;object-fit:contain;display:block;border-radius:8px;margin:12px auto}.auto-result{background:#82bf6a10;border:1px solid #82bf6a40;padding:18px;border-radius:13px;margin-top:15px;display:flex;gap:12px;align-items:flex-start}.auto-result svg{color:var(--accent)}.auto-result strong{font-size:14px;display:block}.auto-result p{color:var(--muted);font-size:12px;margin:4px 0}.auto-result .text-btn{margin-left:auto;white-space:nowrap;min-height:30px;padding:0}.auto-result.updated{animation:glow .7s ease}@keyframes glow{50%{box-shadow:0 0 0 6px #b8ed7c20}}.sidepanel h3{font-size:17px}.sidepanel p{font-size:13px;color:var(--muted)}.sidepanel .feature{display:flex;gap:12px;margin-top:22px;font-size:12px;color:var(--muted)}.sidepanel .feature svg{color:var(--accent);width:20px;height:20px}.sidepanel .feature strong{color:var(--text);font-weight:500;display:block;margin-bottom:4px}.divider{height:1px;background:var(--border);margin:23px 0}.signature{background:#f7f8f1;border-radius:13px;overflow:hidden;position:relative}.signature canvas{width:100%;height:170px;display:block;touch-action:none;cursor:crosshair}.signature:after{content:'SIGN ABOVE THE LINE';pointer-events:none;position:absolute;bottom:12px;left:20px;right:20px;border-top:1px solid #a4afa0;padding-top:6px;color:#7a8774;font-size:9px;letter-spacing:2px}.document-head{background:white;border-radius:12px;padding:20px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px;color:#243822}.document-head img{width:154px}.document-head span{font-size:11px;text-align:right}.document p,.document li{font-size:13px;color:var(--muted)}.document ul{padding-left:20px}.document li{margin-bottom:10px}.check{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--border);border-radius:12px;padding:15px;margin-bottom:10px;min-height:54px;cursor:pointer;font-size:13px;font-weight:500}.check input{width:21px;height:21px;min-width:21px;accent-color:var(--brand);margin:0}.check small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.checks-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.checks-grid .check{margin:0}.hazard-control{padding:0 0 15px 35px}.hazard-control textarea{min-height:65px;font-size:12px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.chip{border:1px solid var(--border);border-radius:100px;min-height:46px;background:transparent;padding:11px 18px;font-size:12px;color:var(--muted)}.chip.active{background:var(--accent);border-color:var(--accent);color:#1b331e;font-weight:700}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:23px 0}.stat{border:1px solid var(--border);border-radius:15px;padding:22px;background:var(--surface)}.stat b{font-size:29px;display:block;font-family:Manrope}.stat span{font-size:12px;color:var(--muted)}.stat.red b{color:var(--red)}.stat.yellow b{color:var(--yellow)}.stat.green b{color:var(--green)}.progress{height:6px;border-radius:4px;background:var(--border);overflow:hidden;margin-top:9px}.progress i{display:block;height:100%;background:var(--accent);border-radius:4px}.company-select{background:var(--surface);padding:12px 16px;font-size:12px;max-width:300px;min-height:48px}.success{display:flex;flex-direction:column;align-items:center;text-align:center;padding:60px 20px}.success .success-icon{width:95px;height:95px;border-radius:50%;background:var(--accent);display:grid;place-items:center;color:#18351f;margin-bottom:25px;animation:pop .5s}.success-icon svg{width:44px;height:44px}@keyframes pop{0%{transform:scale(.6)}70%{transform:scale(1.1)}100%{transform:scale(1)}}.success p{max-width:380px;color:var(--muted);font-size:14px;margin:15px 0 28px}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,20px);background:var(--accent);color:#20351b;border-radius:13px;padding:15px 24px;font-size:13px;box-shadow:var(--shadow);opacity:0;transition:.25s;z-index:100;pointer-events:none;max-width:90vw;text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-visual{background:#0f2a20;position:relative;overflow:hidden;display:flex;flex-direction:column;padding:45px 50px;color:#f1f7e7}.login-visual:before{content:'';position:absolute;left:-250px;top:230px;width:850px;height:850px;border:1px solid #a3d96c18;border-radius:50%;pointer-events:none}.login-visual:after{content:'';position:absolute;left:-180px;top:300px;width:710px;height:710px;border:1px solid #a3d96c18;border-radius:50%;pointer-events:none}.login-visual .brand small{color:#a5b8a6}.login-visual .brand{z-index:1}.login-art{flex:1;display:flex;align-items:center;justify-content:center;padding:15px;z-index:1;min-height:290px}.login-art img{width:330px;max-width:100%;mix-blend-mode:screen}.login-copy{position:relative;z-index:1;padding-bottom:35px}.login-copy h1{font-size:48px;font-weight:600;line-height:1.18;letter-spacing:-1.9px}.login-copy h1 em{font-style:normal;color:#b8ed7c}.login-copy p{font-size:13px;color:#a5b8a6;max-width:310px;line-height:1.8;margin-top:22px}.visual-foot{font-size:10px;color:#a5b8a6;letter-spacing:.7px;z-index:1}.login-formside{padding:45px 55px;display:flex;flex-direction:column;justify-content:center;position:relative}.login-formside .login-top{position:absolute;left:40px;right:40px;top:30px;display:flex;align-items:center;justify-content:space-between}.login-inner{width:100%;max-width:380px;margin:50px auto 15px}.login-inner h2{font-size:30px}.roles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:28px 0 24px}.role{border:1px solid var(--border);background:var(--surface);padding:19px 16px;border-radius:14px;min-height:120px;text-align:left;position:relative}.role svg{color:var(--muted);margin-bottom:10px}.role span{display:block;font-size:14px;font-weight:600}.role small{font-size:11px;color:var(--muted)}.role.active{border-color:var(--accent);background:#b8ed7c0a}.role.active svg{color:var(--accent)}.role.active:after{content:'✓';position:absolute;top:13px;right:14px;font-size:12px;color:var(--accent)}.login-client{font-size:12px;padding:15px;border:1px solid var(--border);border-radius:12px;display:flex;gap:12px;align-items:center;margin-bottom:23px;color:var(--muted)}.login-client svg{width:19px;color:var(--accent)}.login-client strong{color:var(--text);display:block;font-size:12px;font-weight:500}.login-notice{font-size:11px;color:var(--muted);text-align:center;margin:20px 0}.login-footer{font-size:10px;color:var(--muted);text-align:center;margin-top:auto;padding-top:20px}.bottom-nav{display:none}.mobile-brand{display:none}.empty{padding:45px 20px;text-align:center;color:var(--muted)}.empty svg{color:var(--accent);height:40px;width:40px;margin-bottom:10px}.notification{align-items:flex-start}.notification .rowicon{margin-top:3px}.notification .rowmain p{font-size:12px;color:var(--muted);margin:7px 0 0}.notification .rowmain small{font-size:10px}.fake-label{font-size:10px;color:var(--muted);border:1px solid var(--border);padding:3px 7px;border-radius:5px}.review-image{height:150px;background:#f1f2e8;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#31432a;text-align:center;font-size:12px;margin:18px 0;overflow:hidden}.review-image img{width:100%;height:100%;object-fit:contain}.button-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:22px}.article-number{font-family:Manrope;font-size:14px;color:var(--muted);width:35px;min-width:35px}.sop-detail p,.sop-detail li{font-size:14px;color:var(--muted);line-height:1.8}.sop-detail li{margin-bottom:12px}.field-error{color:var(--red);font-size:12px;margin:9px 0}.audit{font-size:11px;color:var(--muted);padding-top:10px}.quiet{font-size:11px;color:var(--muted);line-height:1.8}.offline{color:var(--yellow)}
@media(min-width:1400px){.content{padding-top:45px}.hero{padding:35px}.tiles{gap:20px}.tile{min-height:185px}.tile strong{font-size:18px}.hero h2{font-size:34px}}
@media(max-width:1100px){.sidebar{width:205px;padding:28px 18px}.shell{grid-template-columns:205px 1fr}.brand{font-size:17px}.brandmark{width:35px;height:40px}.topbar{padding:0 28px}.content{padding:30px 28px 40px}.tile{padding:20px 17px}.tile strong{font-size:15px}.tile small{font-size:10px}.two-col{grid-template-columns:1.5fr 1fr;gap:18px}.login-visual{padding:40px 32px}.login-formside{padding:40px 32px}.login-copy h1{font-size:43px}.login-art img{width:280px}}
@media(max-width:850px){.shell{grid-template-columns:175px 1fr}.sidebar{width:175px;padding:25px 14px}.brand{font-size:15px;gap:7px}.brandmark{width:30px;height:36px}.brand small{font-size:8px}.client-logo{padding:12px;min-height:100px}.client-logo img{width:120px}.nav button{padding:13px 10px;font-size:12px;gap:8px}.nav svg{width:20px}.topbar{padding:0 23px;height:82px}.content{padding:28px 23px 40px}h1{font-size:31px}.tiles{grid-template-columns:1fr 1fr}.two-col{grid-template-columns:1fr}.hero-art{width:110px;height:110px;min-width:110px}.hero{padding:25px}.hero h2{font-size:25px}.two-col>.sidepanel{display:none}.date{font-size:10px}.list-row{padding:18px;gap:12px}.row-actions{gap:7px}.stat{padding:18px}.login-visual{padding:40px 28px}.login-copy h1{font-size:39px}.login-formside{padding:40px 25px}.login .login-top{left:25px;right:25px}.login-art{padding:0}.login-art img{width:245px}.login-copy p{font-size:12px}.company-select{max-width:240px}}
@media(max-width:600px){.sidebar{display:none}.shell{display:block}.main{padding-bottom:78px}.topbar{height:78px;padding:0 20px}.crumb{display:none}.mobile-brand{display:flex}.top-actions{gap:9px}.top-actions>.pill,.top-actions>.avatar{display:none}.icon-btn{width:43px;height:43px}.content{padding:25px 20px 30px}.date{display:none}h1{font-size:31px}.pagehead{gap:10px}.pagehead .btn{font-size:11px;padding:9px;min-height:44px}.hero{padding:24px;border-radius:19px;gap:8px}.hero h2{font-size:24px}.hero p{font-size:12px}.hero-art{min-width:70px;width:70px;height:70px;margin-right:8px}.hero-art svg{width:36px;height:36px}.hero-art:after{inset:-20px}.hero-art:before{inset:-10px}.hero .btn{font-size:12px;padding:10px 13px;min-height:48px}.alert{padding:15px 13px;gap:9px}.alert strong{font-size:12px}.alert p{font-size:11px}.alert .text-btn{font-size:10px}.alert .text-btn svg{display:none}.tiles{gap:11px}.tile{min-height:151px;padding:19px 17px}.tile strong{font-size:14px}.tile .tileicon{margin-bottom:17px}.tile small{font-size:10px}.tile>.arrow{right:15px;top:23px}.searchbox{height:57px}.searchbox input{font-size:12px}kbd{display:none}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--shade);border-top:1px solid var(--border);display:flex;z-index:40;padding:9px 9px max(9px,env(safe-area-inset-bottom))}.bottom-nav button{flex:1;background:none;border:0;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:4px;font-size:9px;padding:6px;min-height:52px;border-radius:12px}.bottom-nav button.active{color:var(--accent);background:#b8ed7c0a}.bottom-nav svg{width:21px;height:21px}.summary-card{padding:20px;gap:19px}.ring{width:87px;height:87px;min-width:87px}.ring:before{inset:6px}.ring span{font-size:23px}.summary-card h2{font-size:19px}.summary-card p{font-size:11px}.legend{gap:12px;font-size:10px}.list-row{padding:17px 14px;gap:10px;flex-wrap:wrap}.rowmain strong{font-size:12px}.rowmain small{font-size:10px}.rowicon{min-width:32px;width:32px;height:37px}.rowicon svg{width:20px}.row-actions{margin-left:auto}.row-actions .badge{font-size:9px;padding:5px 7px}.row-actions .btn{font-size:10px;padding:8px 10px;min-height:44px}.onboarding .rowmain{min-width:calc(100% - 50px)}.onboarding .row-actions{margin-left:42px;width:100%;justify-content:space-between}.card{padding:21px}.fields{grid-template-columns:1fr;gap:0;column-gap:0}.steps span{font-size:10px}.steps b{width:23px;height:23px}.stat-grid{gap:9px}.stat{padding:16px 12px}.stat b{font-size:25px}.stat span{font-size:10px}.checks-grid{grid-template-columns:1fr 1fr;gap:8px}.check{font-size:12px;padding:13px 10px;gap:8px}.company-select{max-width:100%;font-size:11px}.admin-company{display:block!important}.admin-company select{margin-top:16px}.document-head img{width:125px}.document-head span{font-size:9px}.toast{bottom:95px;width:90vw}.login{display:block}.login-visual{padding:25px 25px 27px;min-height:250px}.login-visual .brand{font-size:17px}.login-visual .brandmark{width:35px;height:39px}.login-visual .brand small{font-size:9px}.login-art{position:absolute;width:140px;right:10px;top:85px;min-height:0;opacity:.65}.login-art img{width:140px}.login-copy{padding:34px 0 0}.login-copy h1{font-size:30px;max-width:240px}.login-copy p{display:none}.visual-foot{display:none}.login-formside{padding:30px 24px}.login-formside .login-top{position:static;margin-bottom:24px}.login-inner{margin:0 auto}.login-inner h2{font-size:26px}.login-footer{margin-top:15px}.roles{margin-top:22px}.role{min-height:105px;padding:15px}.login-notice{font-size:10px}.login-client{padding:13px}.login-formside>.login-footer{padding-bottom:10px}.chip{padding:10px 14px}.success{padding:40px 10px}.help-card{padding:20px}.article-number{width:25px;min-width:25px}.sop-list .rowmain{min-width:200px}.sop-list .row-actions{margin-left:35px}.bottom-note{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ===== Punch In v2 additions ===== */
body.pi{--bg:#0d1524;--surface:#141e30;--surface2:#1b2840;--border:#2a3953;--text:#f2f5fa;--muted:#9eadc4;--accent:#b8ed7c;--brand:#ffb547;--green:#9ddc81;--yellow:#f5c76a;--red:#f49c91;--shade:#0a111e}
body.pi.light{--bg:#f3f5f9;--surface:#fff;--surface2:#e9eef5;--border:#d5dce8;--text:#14213a;--muted:#56657e;--green:#2f7a2a;--yellow:#8f5d0a;--red:#b3402f;--shade:#e6ebf3}
.pi .avatar{background:#2b3d5c;color:#eef3fb}
.pi .login-visual{background:radial-gradient(120% 90% at 85% 10%,#1d2f52 0%,#0b1426 55%,#081020 100%);color:#eef3fb}
.pi .login-visual:before,.pi .login-visual:after{border-color:#ffb54714}
.pi .login-visual .brand small,.pi .login-copy p,.pi .visual-foot{color:#9eadc4}
.pi .login-copy h1 em{color:var(--accent)}
.pi .login-visual .eyebrow{color:#ffb547}
.pi-art{width:300px;max-width:100%;height:auto;overflow:visible}
.pi-art .ring1{fill:#ffffff06;stroke:#ffb547;stroke-width:3}
.pi-art .ring2{fill:none;stroke:#ffb54733;stroke-width:1.5}
.pi-art .ticks line{stroke:#ffb547aa;stroke-width:3;stroke-linecap:round}
.pi-art .check{fill:none;stroke:#b8ed7c;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:200;stroke-dashoffset:200;animation:draw 0.9s .25s ease forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.brand>span:last-child small{display:block;font-family:'DM Sans',sans-serif;font-size:9.5px;letter-spacing:2.4px;color:var(--muted);margin-top:3px;font-weight:600}
.pi .brandmark{box-shadow:0 0 0 3px #ffb54733}
.text-logo{color:#14213a;font-size:17px;text-align:center;letter-spacing:-.3px;line-height:1.2}
.text-logo small{display:block;font-size:9px;letter-spacing:2px;color:#8a6420;margin-top:6px;font-family:'DM Sans',sans-serif}
.invite-cta{display:flex;align-items:center;gap:12px;border:1px dashed var(--border);border-radius:14px;padding:14px 16px;margin-top:20px;font-size:12px;color:var(--muted)}
.invite-cta>svg{color:var(--brand);width:22px}
.invite-cta strong{display:block;color:var(--text);font-size:13px}
.invite-cta .btn{margin-left:auto;white-space:nowrap}
.demo-tip{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);margin:16px 0 0;justify-content:center}
.demo-tip svg{width:16px;height:16px;color:var(--brand)}
.demo-tip b{font-family:ui-monospace,Menlo,monospace;color:var(--text);letter-spacing:1px}
.code-input{font-family:ui-monospace,Menlo,monospace!important;font-size:26px!important;letter-spacing:6px;text-align:center;text-transform:uppercase;min-height:66px!important}
.code-big{font-family:ui-monospace,Menlo,monospace;font-size:44px;font-weight:700;letter-spacing:8px;text-align:center;padding:18px 10px;border-radius:16px;background:var(--bg);border:2px dashed var(--accent);color:var(--accent);margin:6px 0 10px;word-break:break-all}
.light .code-big{color:#2f6a1f}
.copyrow{display:flex;gap:8px}
.copyrow input{font-size:12px!important}
.mono{font-family:ui-monospace,Menlo,monospace;letter-spacing:1.5px}
.center{text-align:center}
.eyebrow.ok{display:flex;align-items:center;gap:6px}
.eyebrow.ok svg{width:16px;height:16px}
.text-btn.inline{display:inline;padding:0;min-height:0;color:var(--accent);font-weight:600;text-decoration:underline}
.field-error{background:#ea84771a;border:1px solid #ea847755;border-radius:10px;padding:10px 12px}
.field-error[hidden]{display:none}
.invite-made{border-color:var(--accent)}
.narrow{max-width:560px}
input.auto,input[readonly]{background:var(--surface2)!important;color:var(--muted)!important}
.shift{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:5px 10px;border-radius:999px;white-space:nowrap}
.shift svg{width:14px;height:14px}
.shift.days{background:#ffb5471f;color:#f5b84f}
.shift.nights{background:#7ea6ff22;color:#a9c3ff}
.light .shift.days{color:#8a5a00}
.light .shift.nights{color:#2f4fa8}
.shift.none{background:var(--surface2);color:var(--muted);font-weight:500}
.daycount{color:var(--text);font-weight:700}
.toggle2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.toggle2 button{min-height:68px;border-radius:14px;border:2px solid var(--border);background:var(--bg);font-size:17px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px}
.toggle2 button.active{border-color:var(--accent);background:var(--accent);color:#17301f}
.same-btn{width:100%;display:flex;align-items:center;gap:14px;text-align:left;border:2px dashed var(--accent);background:#b8ed7c10;border-radius:16px;padding:16px 18px;margin-bottom:24px;min-height:72px}
.same-btn>svg{width:30px;height:30px;color:var(--accent)}
.same-btn strong{display:block;font-size:16px}
.same-btn small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.same-btn.active{border-style:solid}
.changed-q{border:1px solid var(--brand);background:#ffb5470d;border-radius:16px;padding:18px;margin-bottom:24px}
.changed-q h3{margin-bottom:4px}
.changed-q .toggle2 button{font-size:14px;min-height:58px}
.changed-q textarea{margin-top:12px}
.big-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.big-actions.three{grid-template-columns:repeat(3,1fr);margin:0 0 10px}
.bigbtn{display:flex;align-items:center;gap:14px;text-align:left;border:1px solid var(--border);background:var(--surface2);border-radius:16px;padding:18px;min-height:84px;font-size:17px;font-weight:700}
.bigbtn svg{width:28px;height:28px;color:var(--accent)}
.bigbtn small{display:block;font-size:12px;font-weight:500;color:var(--muted);margin-top:2px}
.bigbtn.primary{background:var(--accent);border-color:var(--accent);color:#17301f}
.bigbtn.primary svg,.bigbtn.primary small{color:#2c4a28}
.bigbtn.done svg{color:var(--green)}
.bigbtn.ghost{background:transparent}
.btn.big{min-height:60px;font-size:16px;padding:14px 24px}
.alert.done{border-color:#82bf6a55;background:#82bf6a10;color:var(--green)}
.alert.report-due{border-color:#ea847766;background:#ea84770d;color:var(--red)}
.alert.report-due .btn{margin-left:auto;color:#17301f}
.tile.due{border-color:#ea847799}
.tile.due small{color:var(--red)}
.stat.duration b small{font-size:15px;font-weight:600;color:var(--muted)}
.stat.duration em{display:block;font-style:normal;font-size:12px;font-weight:700;margin-top:6px;color:var(--text)}
.stat-grid.four{grid-template-columns:repeat(4,1fr)}
.fields.three{grid-template-columns:repeat(3,1fr)}
.rowbtn{width:100%;background:transparent;border:0;border-bottom:1px solid var(--border);text-align:left;color:inherit;font:inherit;cursor:pointer}
.rowbtn:hover{background:var(--surface2)}
.list>.rowbtn:last-child{border-bottom:0}
.rowmain small b{font-weight:700}
.report-table .list-row{display:grid;grid-template-columns:1.3fr 1.1fr .8fr .8fr .8fr auto;min-height:62px;padding:12px 20px;font-size:13px}
.report-table .thead{min-height:44px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);background:var(--surface2)}
.report-view{display:grid;grid-template-columns:minmax(150px,auto) 1fr;gap:0;margin:0 0 18px;border:1px solid var(--border);border-radius:14px;overflow:hidden}
.report-view dt,.report-view dd{margin:0;padding:13px 16px;border-bottom:1px solid var(--border);font-size:14px}
.report-view dt{color:var(--muted);background:var(--surface2);font-size:12px;font-weight:600}
.report-view dd{white-space:pre-line}
.pre{white-space:pre-line}
.admin-company label{font-size:11px;color:var(--muted);margin-bottom:6px}
@media(max-width:850px){.big-actions.three{grid-template-columns:1fr 1fr 1fr}.fields.three{grid-template-columns:1fr 1fr}.stat-grid.four{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.big-actions,.big-actions.three{grid-template-columns:1fr}.fields.three{grid-template-columns:1fr}.pi-art{width:120px}.code-big{font-size:32px;letter-spacing:5px}.report-table .list-row{grid-template-columns:1.2fr 1fr .7fr .7fr;font-size:11px;padding:10px 12px}.report-table .list-row>span:nth-child(5),.report-table .list-row>span:nth-child(6){display:none}.report-view{grid-template-columns:1fr}.report-view dt{border-bottom:0;padding-bottom:4px}.invite-cta{flex-wrap:wrap}.stat-grid{grid-template-columns:1fr 1fr 1fr}}
.login-inner form{margin-top:22px}
.sidebar .brand>span:last-child small{letter-spacing:1.2px;font-size:8.5px;white-space:nowrap}
.invites-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
@media(max-width:900px){.invites-grid{grid-template-columns:1fr}}
.code-input::placeholder{text-transform:none;letter-spacing:.5px;font-size:16px;font-family:"DM Sans",sans-serif}

/* v3 personal paperwork wallet */
.document-intro{display:flex;align-items:center;gap:24px;justify-content:space-between}.document-intro p{max-width:700px}.document-intro>.btn{flex-shrink:0;min-height:60px}.document-actions{display:flex;gap:10px;flex-wrap:wrap}.document-actions .btn{min-height:48px}.document-filename{overflow-wrap:anywhere}.document-row .rowmain{min-width:0}.document-dialog{width:min(960px,94vw);height:85vh;background:var(--surface,#14243a);color:var(--text,#fff);border:1px solid #61758d;border-radius:16px;padding:18px}.document-dialog::backdrop{background:#000b}.document-dialog iframe{width:100%;height:calc(100% - 75px);border:0;background:white}.document-dialog .button-row{justify-content:space-between}.document-dialog strong{overflow-wrap:anywhere}.btn:disabled{opacity:.45;cursor:not-allowed}@media(max-width:650px){.document-intro{display:block}.document-intro>.btn{width:100%;margin-top:16px}.document-row{flex-wrap:wrap;gap:12px}.document-row>.tileicon{display:none}.document-row>.rowmain{flex-basis:100%}.document-actions{width:100%}.document-actions .btn{flex:1;justify-content:center}.document-dialog{padding:10px}.document-dialog .button-row strong{max-width:65%}}
.pw-wrap{position:relative}.pw-wrap input{padding-right:56px!important}.pw-eye{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:44px;height:44px;min-width:44px;border:0;border-radius:9px;background:transparent;color:var(--muted);display:grid;place-items:center;padding:0}.pw-eye:hover,.pw-eye[aria-pressed=true]{color:var(--accent)}.light .pw-eye[aria-pressed=true]{color:#397421}.pw-eye svg{width:22px;height:22px}.pw-eye:focus-visible{outline-offset:0}

/* v6 legal, first client signup, company-local branding and owner console */
.legal-agreement{margin:22px 0 18px;font-size:14px;line-height:1.65}.legal-draft{border:1px solid var(--yellow);border-radius:9px;padding:10px 12px;color:var(--yellow);font-size:12px;line-height:1.6}.legal-check{display:flex;align-items:flex-start;gap:13px}.legal-check input{flex:0 0 24px;width:24px;height:24px;margin:3px 0;accent-color:var(--accent)}.legal-agreement a,.legal-footer a,.login-footer a{display:inline;text-decoration:underline;text-underline-offset:3px}.legal-notice{font-size:13px}.legal-footer{margin:30px 0 15px;font-size:13px;line-height:2}.account-panel{max-width:700px;margin:60px auto;padding:30px}.account-panel form{margin:30px 0}.tenant .brand{font-size:15px}.tenant-brand img{width:46px;height:46px;object-fit:contain;background:white;border-radius:8px}.tenant .client-name{overflow-wrap:anywhere}.tenant .brand span{overflow-wrap:anywhere}.tenant-slate{--bg:#111a27;--surface:#1a283a;--surface2:#22344b;--border:#3c526c;--text:#f6f7fa;--muted:#b0c0d5;--shade:#0d1622}.tenant-slate.light{--bg:#f1f4f8;--surface:#fff;--surface2:#e5edf5;--border:#c7d1df;--text:#15243a;--muted:#4f6078;--shade:#e3eaf2}.tenant.light a,.tenant.light .eyebrow,.tenant.light .nav button.active,.tenant.light .tile .tileicon,.tenant.light .code-big{color:var(--text)}.tenant .hero{color:#142332}.tenant .hero p,.tenant .hero .eyebrow{color:#25354a}.tenant .hero .btn{background:#142332;color:white;border-color:#142332}.tenant .btn.primary,.tenant .bigbtn.primary{color:#142332}.tenant .text-logo{color:#142332}.brand-previews{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.brand-preview{padding:20px;border-radius:12px;background:#111a27;color:#f6f7fa;border:2px solid var(--preview-primary)}.brand-preview.light{background:#f4f6fa;color:#16253a}.brand-preview small{font-size:11px;letter-spacing:1px}.brand-preview h3{margin:14px 0}.preview-primary{display:block;border-left:4px solid var(--preview-primary);padding:8px;font-size:12px}.preview-action{display:inline-block;background:var(--preview-accent);color:#142332;border-radius:7px;padding:9px;font-size:12px;margin-top:13px}input[type=color]{width:100%;min-height:48px;padding:5px}.owner-matrix{background:#020805;color:#e2f8e9;color-scheme:dark;--accent:#80ffac;--brand:#38d577;--border:#27533a;--surface:#06190fef;--surface2:#0b2b1b;--text:#e2f8e9;--muted:#a0c9af;--yellow:#efcf7b;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.owner-matrix #matrix-rain{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.32}.owner-console{position:relative;z-index:1;max-width:1440px;margin:0 auto;padding:38px 28px 70px}.owner-console header{background:#04150cde;border:1px solid #397850;border-radius:16px;padding:26px;margin-bottom:20px}.owner-console h1,.owner-console h2{font-family:inherit;color:#a6ffc5}.owner-console h1{font-size:34px}.owner-console h2{font-size:22px;margin-bottom:20px}.owner-console .card{background:#06190ff2;box-shadow:0 8px 30px #0005}.owner-console .table-scroll{overflow-x:auto;max-width:100%}.owner-console table{border-collapse:collapse;width:100%;font-size:13px}.owner-console th{text-align:left;color:#a6ffc5;font-size:12px;white-space:nowrap}.owner-console td,.owner-console th{padding:15px 10px;border-bottom:1px solid #27533a;vertical-align:top}.owner-console td small{display:block;color:#afd1ba;margin-top:7px;font-size:11px;overflow-wrap:anywhere}.owner-console .field{max-width:600px}.owner-console .btn.primary{color:#052014}.legal-page{background:#f3f5f8;color:#192438;color-scheme:light;font-family:system-ui,sans-serif;line-height:1.8}.legal-page main{max-width:850px;padding:32px 38px 80px;margin:auto;background:white;overflow-wrap:anywhere}.legal-page h1{font-size:32px;margin:25px 0}.legal-page h2{font-size:23px;margin:34px 0 14px;line-height:1.4}.legal-page p,.legal-page li{font-size:17px}.legal-page a{color:#155487}.legal-page .legal-nav{display:flex;gap:22px;flex-wrap:wrap;font-size:16px;border-bottom:1px solid #c9d3df;padding:15px 0}.legal-page .draft-banner{padding:16px;background:#fff4d3;border:1px solid #cba048;border-radius:10px}.legal-page strong{font-weight:700}.legal-page code{font-size:15px}.legal-page ul{padding-left:25px}@media(max-width:800px){.owner-console{padding:24px 16px 50px}.owner-console .card{padding:20px 14px}.brand-previews{grid-template-columns:1fr}.legal-page main{padding:20px 24px 60px}}@media(prefers-reduced-motion:reduce){.owner-matrix #matrix-rain{opacity:.16}}@media print{.legal-page main{max-width:none;padding:0}.legal-nav{display:none!important}.legal-page h2{break-after:avoid}.legal-page p{font-size:11pt}.legal-page{background:white}}


body.tenant-pal2{--bg:#0d142f;--surface:#172044;--surface2:#202d57;--border:#4b5881;--text:#ffffff;--muted:#bec8e4;--shade:#0a1028;--green:#a9dfb1;--yellow:#ffe0a0;--red:#ffb5ac}
body.tenant-pal2.light{--bg:#f1f3f8;--surface:#ffffff;--surface2:#e8ecf5;--border:#bec8df;--text:#1e245e;--muted:#4d597c;--shade:#e5eaf4;--green:#286735;--yellow:#765000;--red:#a4241d}
.tenant-pal2 .hero{background:#1e245e;border:1px solid #7180ad;border-top:4px solid #e5372a;color:white}
.tenant-pal2 .hero h2,.tenant-pal2 .hero p,.tenant-pal2 .hero .eyebrow{color:white}
.tenant-pal2 .hero .btn,.tenant-pal2 .btn.primary,.tenant-pal2 .bigbtn.primary,.tenant-pal2 .preview-action{background:#ba2b22;border-color:#ba2b22;color:#ffffff}
.tenant-pal2 .eyebrow,.tenant-pal2 a,.tenant-pal2 .nav button.active,.tenant-pal2 .tile .tileicon,.tenant-pal2 .pw-eye[aria-pressed=true],.tenant-pal2 .code-big{color:#ffb5ac}
.tenant-pal2.light .eyebrow,.tenant-pal2.light a,.tenant-pal2.light .nav button.active,.tenant-pal2.light .tile .tileicon,.tenant-pal2.light .pw-eye[aria-pressed=true],.tenant-pal2.light .code-big{color:#a4241d}
.tenant-pal2 .nav button.active,.tenant-pal2 .bottom-nav button.active{background:#e5372a20}
.tenant-pal2 .tile .tileicon{background:#e5372a15}.tenant-pal2 .avatar{background:#1e245e;color:#ffffff;border:1px solid #97a4cc}
.tenant-pal2 .brandmark{background:#ba2b22;color:#ffffff}.tenant-pal2 .client-logo{background:transparent;border:0;padding:8px;margin-top:24px;min-height:145px}
.tenant-pal2 .client-logo img{width:148px;max-height:148px;border-radius:50%}.tenant-pal2 .tenant-brand img{background:transparent;border-radius:50%}
.tenant-pal2 .brand-preview.dark{background:#101936;color:white}.tenant-pal2 .brand-preview.light{background:white;color:#1e245e}
.tenant-pal2.light .hero .eyebrow{color:white}.tenant-pal2 :focus-visible{outline-color:#ffb5ac}.tenant-pal2.light :focus-visible{outline-color:#a4241d}
/* v9 client emails (owner console) */
.owner-console .ce-add{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:10px 0 22px}
.owner-console .ce-add input[type=email]{flex:1 1 220px;min-width:0}
.owner-console .ce-compose fieldset{border:0;padding:0;margin:0 0 14px;display:flex;flex-wrap:wrap;gap:6px 18px}
.owner-console .ce-preview{margin-top:16px;border:1px dashed currentColor}
.owner-console .ce-body{white-space:normal;overflow-wrap:anywhere;margin:10px 0}
.owner-console tr.total-row td{border-top:2px solid currentColor}
.login-copy .login-tagline{margin-bottom:6px}
.login-copy .login-tagline strong{font-size:1.15em;font-weight:700}
@media(max-width:600px){.login-copy p.login-tagline{display:block;margin:12px 0 0;font-size:13px;max-width:none;line-height:1.4;white-space:nowrap}}
/* v12 clients, admin codes, preview, demo picker */
.owner-console .client-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.owner-console .gen-code{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.owner-console .gen-code select{width:auto;min-height:44px}
.owner-console .client-status,.owner-console .code-state{font-size:11px;letter-spacing:1px;padding:3px 8px;border:1px solid currentColor;border-radius:6px;display:inline-block}
.owner-console .client-status.paused,.owner-console .code-state.revoked,.owner-console .code-state.expired{opacity:.7}
.owner-console .fresh-code{border:2px dashed currentColor;border-radius:14px;padding:16px;margin:12px 0 18px}
.owner-console .code-big{font-size:30px;letter-spacing:4px;font-weight:700;margin:6px 0;overflow-wrap:anywhere}
.preview-banner{position:sticky;top:0;z-index:60;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;padding:8px 14px;background:#ffb547;color:#1b1406;font-size:13px}
.preview-banner strong{letter-spacing:2px}
.preview-banner .btn{background:#1b1406;color:#fff;border-color:#1b1406;min-height:36px}
.demo-picker{margin:18px 0 6px;padding:14px;border:1px solid var(--border);border-radius:14px}
.demo-co{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--border)}
.demo-co:first-of-type{border-top:0}
.demo-co-name{display:flex;align-items:center;gap:8px;min-width:0;font-size:13px}
.demo-co-name img{width:28px;height:28px;object-fit:contain;border-radius:6px;background:#fff}
.demo-co-name small{font-size:10px;color:var(--muted)}
.demo-co-btns{display:flex;gap:6px;flex-shrink:0}
.demo-co-btns .btn{min-height:40px}
.pay-choice{border:0;padding:0;margin:0 0 14px;display:grid;gap:8px}
.owner-console .client-profile{margin-top:8px;font-size:12px}
.owner-console .client-profile dl{display:grid;gap:4px;margin:8px 0 0}
.owner-console .client-profile dl div{display:grid;grid-template-columns:130px 1fr;gap:8px}
.owner-console .client-profile dt{opacity:.7}.owner-console .client-profile dd{margin:0;overflow-wrap:anywhere}
.owner-console .plan-flag{display:inline-block;margin-left:6px;font-size:10px;letter-spacing:1px;padding:1px 6px;border:1px solid currentColor;border-radius:5px}
.owner-console .plan-flag.paid{color:#ffb547}
.backup-list{list-style:none;padding:0;margin:12px 0;display:grid;gap:8px;font-size:14px}
.backup-list li{display:flex;gap:10px;align-items:center}.backup-list svg{width:18px;height:18px;color:var(--accent)}
/* v12 invoicing */
.inv-lines input{min-width:0;width:100%;padding:8px;font-size:13px}
.inv-lines td:first-child{min-width:240px}.inv-lines td{vertical-align:middle}.inv-lines .amt{white-space:nowrap;font-weight:600}
.inv-totals{display:grid;gap:6px;justify-content:end;margin:14px 0;text-align:right}.inv-totals div{display:flex;gap:24px;justify-content:space-between}.inv-totals .grand{font-size:18px;border-top:1px solid var(--border);padding-top:6px}
.invoice-doc{background:#fff;color:#16202e;border-radius:14px;padding:28px;margin-top:16px;border-top:6px solid var(--brand,var(--accent))}
.invoice-doc h2{color:#16202e}.invoice-doc header{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.invoice-doc p{font-size:13px;color:#33415a;margin:6px 0}
.invoice-doc .inv-title{font-size:20px;letter-spacing:3px;font-weight:800;color:var(--brand,#16202e)}.invoice-doc .inv-meta{text-align:right}
.invoice-doc .inv-billto{margin:18px 0;font-size:14px}.invoice-doc .hint,.invoice-doc .quiet{color:#5a6880}
.inv-table{width:100%;border-collapse:collapse;font-size:13px}.inv-table th,.inv-table td{border-bottom:1px solid #e1e6ee;padding:8px 6px;text-align:left}.inv-table td:last-child,.inv-table th:last-child{text-align:right;white-space:nowrap}
.inv-table tfoot td{font-weight:600}.inv-table tfoot .grand td{font-size:16px;font-weight:800}
.pay-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}
@media(max-width:600px){.invoice-doc{padding:18px}.invoice-doc .inv-meta{text-align:left}.pay-row{grid-template-columns:1fr}}
@media print{.sidebar,.topbar,.bottom-nav,.no-print,.pagehead,.legal-footer,.bottom-note,.preview-banner,.toast{display:none!important}.shell{display:block}.main{margin:0}.content{padding:0}.invoice-doc{border-radius:0;margin:0}body{background:#fff}}
.inv-quick h2{margin:12px 0 6px}.inv-confirm{display:grid;gap:10px;margin:16px 0}.inv-confirm div{display:grid;grid-template-columns:120px 1fr;gap:10px}.inv-confirm dt{color:var(--muted);font-size:13px}.inv-confirm dd{margin:0;font-weight:600}
.inv-review .inv-period-pick{max-width:420px}.inv-actions .btn.big{min-height:56px}
.inv-quick h2{margin:12px 0 6px}.inv-confirm{display:grid;gap:10px;margin:16px 0}.inv-confirm div{display:grid;grid-template-columns:120px 1fr;gap:10px}.inv-confirm dt{color:var(--muted);font-size:13px}.inv-confirm dd{margin:0;font-weight:600}
.inv-review .inv-period-pick{max-width:560px}.inv-actions .btn.big{min-height:56px}
.sched-note{display:flex;gap:8px;align-items:flex-start;font-size:13px;margin:10px 0 0;padding:10px 12px;border-radius:10px;background:var(--surface2);border-left:4px solid var(--accent)}.sched-note svg{width:18px;height:18px;color:var(--accent)}
.invoice-doc .inv-sched{font-size:11px;color:#5a6880;max-width:260px;margin-left:auto}
.inv-cta{margin:0 0 16px}.biz-card summary{cursor:pointer;padding:4px 0}.biz-card form{margin-top:14px}
.inv-split{margin:18px 0 26px}.inv-split-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.inv-split-head .btn{margin-left:auto}
.ec-tag{display:inline-block;padding:6px 12px;border-radius:999px;background:var(--accent);color:#13261a;font-weight:800;font-size:13px;letter-spacing:.5px}
.invoice-doc .inv-ec{margin:10px 0 0;font-size:13px;color:#16202e}
.ec-rows{display:grid;gap:8px;margin:8px 0}.ec-row{display:grid;grid-template-columns:1fr 1.4fr auto;gap:8px;align-items:center}
@media(max-width:600px){.ec-row{grid-template-columns:1fr auto}.ec-row select{grid-column:1/-1;grid-row:2}}
.rate-big{font-size:22px;font-weight:800;margin:6px 0}.rate-offer{margin:14px 0;padding:16px}.rate-hist{margin:8px 0 0;padding-left:18px;font-size:12px;color:var(--muted)}
.rate-form{align-items:end;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:16px;column-gap:16px}.rate-form>.btn{grid-column:1/-1;justify-self:start}
@media(max-width:850px){.rate-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;column-gap:16px}}
@media(max-width:400px){.rate-form{grid-template-columns:1fr;gap:0;column-gap:0}}
.addon-qs{margin:18px 0}.addon-q{padding:12px 0;border-top:1px solid var(--border)}.yn{border:0;padding:0;margin:0 0 8px}.yn legend{font-weight:600;font-size:14px;margin-bottom:8px}
.chip-radio{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;margin-right:8px;border:1px solid var(--border);border-radius:999px;min-height:44px;cursor:pointer}.chip-radio:has(input:checked){border-color:var(--accent);background:#b8ed7c14}
.addon-confirm{margin-left:14px;padding-left:12px;border-left:3px solid var(--accent)}.addon-row{padding:12px 0;border-top:1px solid var(--border)}
.invoice-doc tr.addon-line td{background:#fff7e6}

html body.lash.lash{--bg:#ffffff;--surface:#ffffff;--surface2:#fdf0f3;--border:#f1d3db;--text:#111111;--muted:#5f5559;--accent:#b3122e;--brand:#f29bb2;--green:#2f7a4a;--yellow:#9a6b00;--red:#b3122e;--shade:#fff5f7;--rose:#b3122e;--gold:#e0607e;--plum:#111111;--shadow:0 14px 40px #b3122e14;color-scheme:light}
html body.lash.lash:not(.light){--bg:#0a0a0b;--surface:#151316;--surface2:#211b1f;--border:#3a2a31;--text:#ffffff;--muted:#c7b5bc;--accent:#ff4d6d;--brand:#f29bb2;--rose:#ff4d6d;--gold:#f29bb2;--shade:#000000;--plum:#ffffff;--shadow:0 14px 40px #0008;color-scheme:dark}
body.lash h1,body.lash h2,body.lash h3,body.lash .lash-brand span,body.lash .l-cert h2{font-family:'Playfair Display',Didot,Georgia,'Times New Roman',serif;font-weight:500;letter-spacing:.01em}
body.lash h1{font-size:clamp(30px,4vw,44px)}body.lash .eyebrow{color:var(--gold);letter-spacing:.22em}
body.lash .btn{border-radius:999px}body.lash .btn.primary{background:var(--rose);border-color:var(--rose);color:#fff}body.lash:not(.light) .btn.primary{color:#2a1830}
body.lash .card{border-radius:22px;border-color:var(--border);box-shadow:var(--shadow)}
body.lash .sidebar{background:linear-gradient(180deg,var(--surface),var(--surface2))}
body.lash .nav a.active,body.lash .nav button.active,body.lash .nav [aria-current]{background:color-mix(in srgb,var(--rose) 16%,transparent);color:var(--text)}
.lash-brand{display:flex;align-items:center;gap:12px;color:var(--rose)}.lash-brand span{color:var(--text);font-size:24px;line-height:1.05;display:flex;flex-direction:column}.lash-brand small{font:600 9px/1.5 'DM Sans',sans-serif;letter-spacing:.2em;color:var(--gold);margin-top:4px}
.lash-mark{width:52px;height:34px;flex:none}.mobile-brand .lash-mark{width:38px}
.l-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:6px 0 20px}.l-stats>div{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:16px 18px;box-shadow:var(--shadow)}.l-stats span{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.l-stats strong{display:block;font:500 32px/1.2 'Playfair Display',Georgia,serif;color:var(--rose)}.l-stats small{color:var(--muted)}
.l-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:18px;margin-bottom:18px}.l-card{margin-bottom:18px}.l-card-h{display:flex;justify-content:space-between;align-items:center;gap:10px}.l-h2{margin:22px 0 12px}
.l-appts,.l-classes{list-style:none;padding:0;margin:0}.l-appt,.l-classes li{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--border)}.l-appt:first-child,.l-classes li:first-child{border-top:0}.l-appt time,.l-classes time{min-width:86px;font-weight:700;color:var(--rose);display:flex;flex-direction:column;font-size:14px}.l-appt div,.l-classes li>div{flex:1;display:flex;flex-direction:column}.l-appt span,.l-classes li span{color:var(--muted);font-size:13px}.l-appt.done{opacity:.55}
.l-tag{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface2);color:var(--text);white-space:nowrap}.l-tag.online{background:color-mix(in srgb,var(--rose) 22%,transparent)}.l-tag.gold{background:color-mix(in srgb,var(--gold) 28%,transparent)}.l-seats{font-weight:700;color:var(--gold);white-space:nowrap}.l-classes.card{padding:8px 22px}
.l-bar{height:8px;border-radius:9px;background:var(--surface2);overflow:hidden;min-width:80px}.l-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--rose),var(--gold));border-radius:9px}
.l-table{width:100%;border-collapse:collapse}.l-table th{text-align:left;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:8px}.l-table td{padding:10px 8px;border-top:1px solid var(--border);vertical-align:middle}.l-pcell{min-width:120px}.l-pcell small{color:var(--muted)}
.l-cal-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.l-cal-bar strong{flex:1;text-align:center}
.l-cal{display:grid;grid-template-columns:44px repeat(var(--days),minmax(92px,1fr));max-width:100%;min-width:0;overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:10px;box-shadow:var(--shadow)}.l-cal-times{padding-top:38px;display:flex;flex-direction:column}.l-cal-times span{height:56px;font-size:11px;color:var(--muted)}.l-cal-day h3{font:600 12px 'DM Sans',sans-serif;text-align:center;margin:0 0 6px;height:32px}.l-cal-day.today h3{color:var(--rose)}.l-cal-col{position:relative;height:504px;border-left:1px solid var(--border);background:repeating-linear-gradient(var(--border) 0 1px,transparent 1px 56px)}.l-cal-day.today .l-cal-col{background-color:color-mix(in srgb,var(--rose) 6%,transparent)}
.l-ev{position:absolute;left:3px;right:3px;border-radius:10px;padding:4px 6px;font-size:11px;overflow:hidden;background:color-mix(in srgb,var(--rose) 22%,var(--surface));border-left:3px solid var(--rose);display:flex;flex-direction:column}.l-ev span{color:var(--muted)}.l-ev.a-jess{background:color-mix(in srgb,var(--gold) 24%,var(--surface));border-color:var(--gold)}.l-ev.a-mia{background:color-mix(in srgb,#8a7bb0 24%,var(--surface));border-color:#8a7bb0}.l-ev.online{box-shadow:inset 0 0 0 1.5px var(--rose)}
.l-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted)}.l-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;background:var(--rose)}.l-legend .a-jess i{background:var(--gold)}.l-legend .a-mia i{background:#8a7bb0}.l-legend .online i{background:transparent;box-shadow:inset 0 0 0 2px var(--rose)}
.l-menu{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 24px}.l-menu div{display:flex;gap:10px;padding:10px 0;border-bottom:1px dotted var(--border)}.l-menu strong{flex:1}.l-menu span{color:var(--muted)}.l-menu b{color:var(--rose)}
.l-clients{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.l-client-h{display:flex;gap:12px;align-items:center;margin-bottom:10px}.l-client-h div{display:flex;flex-direction:column}.l-client-h small{color:var(--muted)}.l-client dl{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0;font-size:14px}.l-client dt{color:var(--muted)}.l-client dd{margin:0}.l-new{color:var(--rose)}
.l-courses{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-bottom:18px}.l-course{overflow:hidden;padding-top:0}.l-course-art{margin:0 -22px 14px;height:110px;background:linear-gradient(135deg,var(--cc),color-mix(in srgb,var(--cc) 40%,#f6e7da));display:flex;align-items:center;justify-content:center;position:relative;color:#fff8f2}.l-course-art .lash-mark{width:90px;height:56px}.l-course-art span{position:absolute;left:14px;bottom:10px;font-size:11px;letter-spacing:.16em;text-transform:uppercase}.l-meta{color:var(--muted);font-size:13px}.l-price{font-weight:700;color:var(--rose)}.l-price small{color:var(--muted);font-weight:400}
.l-continue{display:flex;gap:18px;align-items:center}.l-poster{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:16/9;background:#3a1f35}.l-poster svg{width:100%;height:100%;display:block}.l-poster.small{width:200px;flex:none}
.l-pbig{display:flex;align-items:center;gap:14px}.l-pbig .l-bar{flex:1;height:12px}.l-pbig strong{font:500 28px Georgia,serif;color:var(--rose)}
.l-module h2{display:flex;flex-direction:column;font-size:24px}.l-module h2 span{font:600 11px 'DM Sans',sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}.l-module ul{list-style:none;padding:0;margin:0}
.l-lesson-btn{width:100%;display:flex;gap:12px;align-items:center;padding:12px 6px;background:none;border:0;border-top:1px solid var(--border);color:var(--text);font:inherit;text-align:left;cursor:pointer;min-height:48px}.l-lesson-btn i{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:12px;background:var(--surface2);color:var(--rose);flex:none}.l-lesson-btn.done i{background:var(--rose);color:#fff}.l-lesson-btn span{flex:1}.l-lesson-btn small{color:var(--muted)}.l-lesson-btn:hover{background:var(--surface2)}
.l-player{position:relative;border-radius:22px;overflow:hidden;background:#000;margin-bottom:18px;box-shadow:var(--shadow)}.l-player .l-poster{border-radius:0}.l-play{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);width:84px;height:84px;border-radius:50%;border:0;background:#fff8f2e6;color:#7a4a6a;font-size:30px;cursor:pointer;box-shadow:0 10px 40px #0005;transition:.2s}.l-player.playing .l-play{opacity:0;pointer-events:none}.l-caption{pointer-events:none;position:absolute;left:50%;bottom:64px;transform:translateX(-50%);background:#000b;color:#fff;padding:6px 14px;border-radius:8px;font-size:15px;max-width:86%;text-align:center}
.l-controls{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:12px;padding:12px 16px;background:linear-gradient(transparent,#000c);color:#fff}.l-ctl{background:none;border:1px solid #fff6;color:#fff;border-radius:8px;min-width:44px;min-height:36px;cursor:pointer;font-weight:700}.l-ctl.on{background:#fff;color:#3a1f35}.l-track{flex:1;height:5px;background:#fff4;border-radius:5px;overflow:hidden}.l-track i{display:block;height:100%;width:0;background:var(--gold);transition:width .45s linear}#l-time{font-size:12px;font-variant-numeric:tabular-nums}
.l-notes li,.l-kit li{margin:6px 0}.l-comment{background:var(--surface2);border-radius:14px;padding:12px 14px}.l-lesson-nav{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.l-quiz fieldset{border:0;padding:0;margin:0 0 20px}.l-q legend{font:500 20px Georgia,serif;margin-bottom:10px;display:flex;gap:10px}.l-q legend span{width:28px;height:28px;border-radius:50%;background:var(--rose);color:#fff;display:grid;place-items:center;font:700 13px 'DM Sans',sans-serif;flex:none}
.l-opt{display:flex;gap:10px;align-items:center;padding:12px 14px;border:1px solid var(--border);border-radius:14px;margin:8px 0;cursor:pointer;min-height:48px}.l-opt:has(input:checked){border-color:var(--rose);background:color-mix(in srgb,var(--rose) 10%,transparent)}.l-opt.right{border-color:var(--green);background:color-mix(in srgb,var(--green) 14%,transparent)}.l-opt.wrong{border-color:var(--red);background:color-mix(in srgb,var(--red) 12%,transparent)}
.l-score{display:flex;gap:16px;align-items:center;padding:16px;border-radius:18px;background:var(--surface2);margin-bottom:14px}.l-score strong{font:500 44px Georgia,serif;color:var(--rose)}
.l-photo{display:flex;gap:14px;align-items:flex-start;margin-bottom:14px}.l-photo img,.l-photo-ph{width:120px;height:90px;object-fit:cover;border-radius:12px;background:var(--surface2);display:grid;place-items:center;color:var(--rose);flex:none}.l-photo>div{flex:1;display:flex;flex-direction:column}.l-photo small{color:var(--muted)}.l-photo-up{display:grid;gap:8px;border-top:1px solid var(--border);padding-top:14px}
.l-check{list-style:none;padding:0}.l-check li{padding:6px 0 6px 28px;position:relative;color:var(--muted)}.l-check li:before{content:'○';position:absolute;left:4px}.l-check li.ok{color:var(--text)}.l-check li.ok:before{content:'✓';color:var(--rose);font-weight:700}
.l-cert{background:#fffaf5;color:#3a1f35;border-radius:10px;padding:16px;margin:0 auto 16px;max-width:820px;box-shadow:var(--shadow);border:1px solid #ead8cf}.l-cert-in{border:2px solid #c9a46a;outline:1px solid #c9a46a;outline-offset:-8px;padding:40px 36px;text-align:center;color:#b76e79;background:radial-gradient(circle at 50% 0,#f6e7da,transparent 60%)}.l-cert-in .lash-mark{width:80px;height:50px}.l-cert-k{letter-spacing:.3em;font-size:11px;color:#a8803d;margin:6px 0}.l-cert h2{font-size:40px;color:#3a1f35;margin:6px 0 14px}.l-cert p{color:#5d4456;margin:6px 0}.l-cert-name{font:italic 500 42px 'Playfair Display',Georgia,serif!important;color:#7a4a6a!important;border-bottom:1px solid #c9a46a;display:inline-block;padding:0 30px 4px}.l-cert-course{font:600 22px Georgia,serif!important;color:#3a1f35!important}.l-cert-foot{display:flex;justify-content:space-between;align-items:flex-end;margin-top:30px;gap:12px}.l-cert-foot>div{display:flex;flex-direction:column;min-width:150px;color:#3a1f35}.l-cert-foot small{font-size:11px;color:#86697a;border-top:1px solid #c9a46a;padding-top:4px;margin-top:4px}.l-sig{font:italic 30px 'Brush Script MT','Segoe Script',cursive}.l-seal{width:84px!important;min-width:84px!important;height:84px;border-radius:50%;background:radial-gradient(#d8b77c,#a8803d);color:#fff;align-items:center;justify-content:center;font-size:26px}.l-seal small{color:#fff!important;border:0!important;font-size:8px!important}.l-cert-demo{font-size:11px;color:#a0889a!important;margin-top:18px!important}
.l-copy{display:flex;gap:10px;margin-bottom:14px}.l-copy input{flex:1}#l-snip{width:100%;font-family:ui-monospace,monospace;font-size:12px}.l-snip-prev{display:inline-flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}
/* public booking */
body.lash .l-public{min-height:100vh;background:radial-gradient(circle at 85% -10%,color-mix(in srgb,var(--rose) 22%,transparent),transparent 45%),var(--bg)}
.l-pub-head{display:flex;justify-content:space-between;align-items:center;padding:18px clamp(16px,4vw,48px);border-bottom:1px solid var(--border)}.l-pub-main{max-width:880px;margin:0 auto;padding:24px clamp(14px,3vw,28px) 40px}.l-pub-foot{text-align:center;color:var(--muted);font-size:12px;padding:24px}
.l-hero{text-align:center;margin:10px 0 18px}.l-hero .lead{color:var(--muted)}
.l-tabs{display:inline-flex;background:var(--surface2);border-radius:999px;padding:4px;margin-top:8px}.l-tabs button{border:0;background:none;padding:10px 18px;border-radius:999px;font:inherit;font-weight:600;color:var(--muted);cursor:pointer;min-height:44px}.l-tabs button.on{background:var(--surface);color:var(--rose);box-shadow:var(--shadow)}
.l-steps{display:flex;gap:6px;list-style:none;padding:0;margin:0 0 18px;justify-content:center;flex-wrap:wrap}.l-steps li{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);padding:4px 10px;border-radius:999px}.l-steps span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--surface2);font-weight:700}.l-steps li.on{color:var(--text);background:var(--surface)}.l-steps li.on span,.l-steps li.done span{background:var(--rose);color:#fff}
.l-svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.l-svc{display:flex;flex-direction:column;gap:6px;text-align:left;padding:18px;border-radius:20px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;box-shadow:var(--shadow);transition:.15s}.l-svc:hover:not(:disabled){border-color:var(--rose);transform:translateY(-2px)}.l-svc strong{font:600 18px 'Playfair Display',Georgia,serif}.l-svc span{color:var(--muted);font-size:13px}.l-svc em{font-style:normal;font-size:14px}.l-svc b{color:var(--rose)}.l-artist{align-items:center;text-align:center}.l-artist .avatar{width:56px;height:56px;font-size:18px}.l-class-card{border-top:4px solid var(--cc)}.l-svc:disabled{opacity:.5}
.l-days{display:flex;gap:8px;max-width:100%;min-width:0;overflow-x:auto;padding-bottom:6px}.l-day{flex:none;width:68px;padding:10px 0;border-radius:16px;border:1px solid var(--border);background:var(--surface);color:var(--text);display:flex;flex-direction:column;align-items:center;cursor:pointer;font:inherit}.l-day b{font:500 24px Georgia,serif}.l-day i{font-style:normal;font-size:10px;color:var(--muted)}.l-day.on{background:var(--rose);border-color:var(--rose);color:#fff}.l-day.on i{color:#fff}.l-day:disabled{opacity:.4}
.l-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}.l-time{padding:12px;border-radius:14px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer;min-height:46px}.l-time:hover{border-color:var(--rose);color:var(--rose)}
.l-sum{display:flex;flex-direction:column;padding:14px 18px;border-radius:18px;background:var(--surface2);margin:8px 0 14px}.l-sum span{color:var(--muted);font-size:14px}.l-form{display:grid;gap:12px}.l-amt{font:500 28px Georgia,serif;color:var(--rose)}.l-paybox{border:1px dashed var(--border);border-radius:16px;padding:14px}.l-stripe{font-size:12px;letter-spacing:.1em;color:var(--muted)}.l-stripe b{color:#635bff;font-size:15px}.l-policy{background:var(--surface2);border-radius:14px;padding:10px 14px}.l-policy summary{font-weight:700;cursor:pointer}
.l-confirm{text-align:center;padding:34px 22px}.l-confirm-ic{width:70px;height:70px;border-radius:50%;margin:0 auto 10px;display:grid;place-items:center;font-size:32px;background:var(--rose);color:#fff}.button-row.center{justify-content:center}
@media (max-width:700px){.l-continue{flex-direction:column;align-items:stretch}.l-poster.small{width:100%}.l-cal{grid-template-columns:36px repeat(var(--days),88px)}.l-cert-in{padding:26px 14px}.l-cert h2{font-size:28px}.l-cert-name{font-size:30px!important}.l-cert-foot{flex-direction:column;align-items:center}.l-copy{flex-direction:column}.l-table{font-size:13px}.lash-brand span{font-size:20px}}
@media print{body.lash .sidebar,body.lash .topbar,body.lash .bottom-nav,body.lash .pagehead,body.lash .button-row,body.lash .legal-footer,body.lash .bottom-note{display:none!important}}
.demo-co-name .lash-mark{width:30px;height:20px;color:#e0405f}

body.lash .sidebar{background:var(--surface)}body.lash .shell{background:var(--bg)}
@media (max-width:700px){.l-caption{font-size:12px;bottom:50px;padding:4px 10px}.l-play{width:60px;height:60px;font-size:22px}.l-poster text{display:none}}

@font-face{font-family:'Playfair Display';src:url(assets/playfair.ttf) format('truetype');font-weight:400 900;font-display:swap}
@font-face{font-family:'Playfair Display';src:url(assets/playfair-italic.ttf) format('truetype');font-style:italic;font-weight:400 900;font-display:swap}
@font-face{font-family:'Poppins';src:url(assets/poppins-400.ttf) format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'Poppins';src:url(assets/poppins-500.ttf) format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:'Poppins';src:url(assets/poppins-600.ttf) format('truetype');font-weight:600 700;font-display:swap}
body.lash,body.lash button,body.lash input,body.lash textarea,body.lash select{font-family:'Poppins','Helvetica Neue',Arial,sans-serif}
body.lash .lash-brand small,body.lash .l-cal-day h3{font-family:'Poppins',sans-serif}
body.lash h1,body.lash h2,body.lash h3{font-weight:600}
.l-ev.c-0{background:color-mix(in srgb,var(--rose) 16%,var(--surface));border-color:var(--rose)}.l-ev.c-1{background:color-mix(in srgb,var(--brand) 28%,var(--surface));border-color:var(--brand)}.l-ev.c-2{background:color-mix(in srgb,var(--text) 10%,var(--surface));border-color:var(--text)}
.l-legend .c-0 i{background:var(--rose)}.l-legend .c-1 i{background:var(--brand)}.l-legend .c-2 i{background:var(--text)}
.l-course.soon{opacity:.75}
.l-cert{background:#fff;color:#111;border-color:#f1d3db}.l-cert-in{border-color:#b3122e;outline-color:#f29bb2;color:#b3122e;background:radial-gradient(circle at 50% 0,#fde4ea,transparent 60%)}.l-cert-k{color:#b3122e}.l-cert h2,.l-cert-course,.l-cert-foot>div{color:#111!important}.l-cert-name{color:#b3122e!important;border-bottom-color:#f29bb2;font-family:'Playfair Display',Georgia,serif!important}.l-cert-foot small{border-top-color:#f29bb2}.l-seal{background:radial-gradient(#ff4d6d,#b3122e)}
.l-play{color:#b3122e}.l-track i{background:var(--brand)}
.l-pub-foot a{color:var(--rose)}
/* v14: iOS Safari date/time inputs — match other fields, never overflow */
.field,.fields>*,.field>*,form .fields{min-width:0}
input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week]{-webkit-appearance:none;appearance:none;display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;min-height:54px;height:54px;padding:13px 15px;border-radius:11px;font:inherit;line-height:1.5;text-align:left;color:var(--text);background:var(--bg);border:1px solid var(--border)}
input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value,input[type=datetime-local]::-webkit-date-and-time-value{text-align:left;margin:0;min-height:1.5em}
input[type=date]::-webkit-datetime-edit,input[type=time]::-webkit-datetime-edit,input[type=datetime-local]::-webkit-datetime-edit{padding:0}
/* ---------- v14 Marketing + Alfred ---------- */
.m-tabs{display:flex;gap:6px;max-width:100%;min-width:0;overflow-x:auto;padding:4px;background:var(--surface2);border-radius:999px;margin:0 0 18px;scrollbar-width:none}.m-tabs::-webkit-scrollbar{display:none}
.m-tabs button{flex:none;display:inline-flex;align-items:center;gap:8px;border:0;background:none;padding:10px 16px;border-radius:999px;font:inherit;font-weight:600;font-size:14px;color:var(--muted);cursor:pointer;min-height:44px}.m-tabs button.on{background:var(--surface);color:var(--rose);box-shadow:var(--shadow)}.m-tabs .alfred-av{width:24px;height:24px}
.m-row-h{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.m-row-h h2{margin:0}
.m-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px;margin-bottom:16px}.m-camp-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}.m-camp-h strong{font:600 19px 'Playfair Display',Georgia,serif}
.m-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.m-kpis div{background:var(--surface2);border-radius:14px;padding:10px;text-align:center;display:flex;flex-direction:column}.m-kpis b{color:var(--rose);font-size:18px}.m-kpis small{color:var(--muted);font-size:11px}
.m-st-active{background:color-mix(in srgb,var(--rose) 18%,transparent)!important;color:var(--rose)!important}.m-st-scheduled{background:color-mix(in srgb,var(--brand) 30%,transparent)!important}.m-st-ended{opacity:.6}
.m-form{margin-bottom:16px}.m-ideas{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:4px 0 12px}.m-ideas span{font-size:12px;color:var(--muted)}
body.lash .chip{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:8px 12px;font:inherit;font-size:13px;cursor:pointer;min-height:36px}body.lash .chip:hover,body.lash .chip.on{border-color:var(--rose);color:var(--rose);background:color-mix(in srgb,var(--rose) 8%,var(--surface))}
.m-week{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:10px;max-width:100%;min-width:0;overflow-x:auto;padding-bottom:6px}.m-day{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:10px;min-height:160px}.m-day.today{border-color:var(--rose)}.m-day h3{font:600 12px Poppins,sans-serif;margin:0 0 8px;color:var(--muted)}.m-day.today h3{color:var(--rose)}
.m-post{border-radius:12px;background:var(--surface2);padding:8px;margin-bottom:8px;font-size:12px;border-left:3px solid var(--rose)}.m-post.k-story{border-color:var(--brand)}.m-post.k-reel{border-color:var(--text)}.m-post p{margin:4px 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.m-post-h{display:flex;justify-content:space-between}.m-post-h time{color:var(--muted)}.m-post-a{display:flex;gap:10px}.m-post-a .text-btn{font-size:12px;min-height:32px}.m-empty{color:var(--muted);text-align:center}
.m-ba{display:grid;grid-template-columns:1fr 1fr;border-radius:8px;overflow:hidden;height:58px;position:relative;margin-bottom:6px}.m-ba span{display:grid;place-items:center;font-size:10px;letter-spacing:.12em;color:#fff;font-weight:700}.m-ba span:first-child{background:linear-gradient(135deg,#9d8a84,#6f5f5a)}.m-ba span:nth-child(2){background:linear-gradient(135deg,#111,#b3122e)}.m-ba small{position:absolute;left:6px;bottom:3px;font-size:9px;color:#fff;opacity:.85}.m-thumb{width:100%;border-radius:8px;display:block;margin-bottom:6px;aspect-ratio:4/5;object-fit:cover}
.m-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.m-toggle input{position:absolute;opacity:0;width:1px;height:1px}.m-toggle span{width:46px;height:26px;border-radius:99px;background:var(--border);position:relative;transition:.2s}.m-toggle span:after{content:'';position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px #0003}.m-toggle input:checked+span{background:var(--rose)}.m-toggle input:checked+span:after{left:23px}.m-toggle input:focus-visible+span{outline:2px solid var(--rose);outline-offset:2px}.m-toggle em{font-style:normal;font-size:12px;color:var(--muted);min-width:22px}
.m-msg{min-width:0;max-width:100%;overflow:hidden;box-sizing:border-box}.m-msg textarea{width:100%;margin:6px 0 10px;box-sizing:border-box}.m-camp-h{min-width:0}.m-camp-h strong{min-width:0;overflow-wrap:anywhere}.m-bubble{background:var(--rose);color:#fff;border-radius:18px 18px 4px 18px;padding:10px 14px;font-size:14px;max-width:100%;width:100%;box-sizing:border-box;margin:0;overflow-wrap:anywhere;word-break:break-word}.m-bubble small{display:block;opacity:.75;font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:2px}
.m-stars{color:var(--rose);letter-spacing:2px}.m-review p{font-style:italic}.m-review small{color:var(--muted)}
.m-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}.m-hero-pick{display:inline-flex;align-items:center;gap:8px;margin:0 12px 8px 0;cursor:pointer}.m-hero-pick input{accent-color:var(--rose)}.m-hero-pick span{width:44px;height:30px;border-radius:8px;border:1px solid var(--border)}.m-svc-pick{border:0;padding:0;margin:0 0 14px;max-height:260px;overflow:auto}.m-svc-pick .check{display:flex;gap:8px;font-size:14px;margin:4px 0}
.m-site-prev{position:sticky;top:12px;border-radius:24px;overflow:hidden;background:#fff;color:#111;box-shadow:var(--shadow);border:1px solid var(--border)}.m-site-hero{padding:34px 22px;color:#fff;text-align:center}.m-site-hero .lash-mark{width:60px;height:38px;color:#fff}.m-site-hero h3{font:600 26px 'Playfair Display',Georgia,serif;margin:8px 0;color:#fff}.m-site-hero p{opacity:.9;font-size:13px}.m-site-btn{display:inline-block;margin-top:10px;background:#fff;color:#b3122e;padding:11px 26px;border-radius:999px;font-weight:600;text-decoration:none}.m-site-body{padding:18px 22px}.m-site-body h4{font:600 17px 'Playfair Display',Georgia,serif;margin:12px 0 6px}.m-site-svc{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dotted #f1d3db;font-size:14px}.m-site-svc b{color:#b3122e}.m-site-dep,.m-site-ig{font-size:12px;color:#5f5559}.m-site-cap{text-align:center;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#5f5559;margin:0;padding:8px;background:#fdf0f3}
.m-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.m-bars{display:flex;align-items:flex-end;gap:10px;height:160px;padding-top:20px}.m-bar{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.m-bar i{width:100%;max-width:44px;background:linear-gradient(180deg,var(--rose),var(--brand));border-radius:10px 10px 4px 4px;position:relative;min-height:4px}.m-bar b{position:absolute;top:-20px;left:50%;transform:translateX(-50%);font-size:11px;white-space:nowrap}.m-bar span{font-size:10px;color:var(--muted);margin-top:6px;text-align:center}
.a-panel{padding:0;overflow:hidden}.a-head{display:flex;align-items:center;gap:12px;padding:14px 18px;background:#111;color:#fff}.a-head .alfred-av{width:44px;height:44px;flex:none}.a-head div{flex:1;display:flex;flex-direction:column}.a-head strong{font:600 20px 'Playfair Display',Georgia,serif}.a-head small{color:#f29bb2;font-size:12px}.a-demo{font-size:10px;letter-spacing:.08em;color:#bbb;border:1px solid #444;border-radius:99px;padding:3px 9px}
.a-log{max-height:520px;min-height:200px;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px;background:var(--surface2)}.a-msg{max-width:88%}.a-msg p{margin:0;padding:10px 14px;border-radius:18px;font-size:14px;line-height:1.5}.a-msg.a p{background:var(--surface);border:1px solid var(--border);border-radius:4px 18px 18px 18px}.a-msg.u{align-self:flex-end}.a-msg.u p{background:var(--rose);color:#fff;border-radius:18px 18px 4px 18px}.a-att{max-width:180px;border-radius:12px;display:block;margin-bottom:4px}
.a-draft{margin-top:8px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:12px}.a-draft textarea{width:100%;font-size:14px}.a-draft.done{color:var(--green);font-weight:600;font-size:13px}.a-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.a-list{margin:4px 0;padding-left:20px;font-size:14px}.a-list li{margin:4px 0}.a-draft h4{margin:0 0 6px;font:600 16px 'Playfair Display',Georgia,serif}
.a-reel-wrap{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:start}.a-reel{position:relative;aspect-ratio:9/16;border-radius:16px;overflow:hidden;background:#000;color:#fff}.a-reel-half{height:50%;display:grid;place-items:center}.a-reel-half span{font-size:10px;letter-spacing:.2em;font-weight:700;background:#0006;padding:3px 8px;border-radius:99px}.a-reel-half.before{background:linear-gradient(135deg,#9d8a84,#6f5f5a)}.a-reel-half.after{background:linear-gradient(135deg,#7d0c22,#f29bb2)}.a-reel-cap{position:absolute;left:8px;right:8px;bottom:34px;font-size:10px;font-weight:600;text-shadow:0 1px 4px #000}.a-reel-music{position:absolute;left:8px;bottom:12px;font-size:9px;opacity:.9}.a-reel-ig{position:absolute;top:8px;left:8px;font-size:9px;font-weight:600}.a-reel-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:50%;background:#fffd;color:#b3122e;display:grid;place-items:center;font-size:14px}
.ba-slider{position:relative;border-radius:14px;overflow:hidden;max-width:420px;aspect-ratio:4/5;background:#000}.ba-slider img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.ba-after{position:absolute;inset:0;clip-path:inset(0 0 0 var(--p));}.ba-after:before{content:'';position:absolute;left:var(--p);top:0;bottom:0;width:2px;background:#fff;z-index:2;box-shadow:0 0 6px #0008}.ba-slider input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}.ba-l,.ba-r{position:absolute;top:8px;font-size:10px;letter-spacing:.15em;font-weight:700;background:#000a;color:#fff;padding:3px 8px;border-radius:99px;z-index:3;pointer-events:none}.ba-l{left:8px}.ba-r{right:8px}
.a-ai-note{font-size:12px;color:var(--rose);font-style:italic;margin:6px 0}.a-ops{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.a-prompts{display:flex;gap:6px;overflow-x:auto;padding:10px 14px;border-top:1px solid var(--border);scrollbar-width:none}.a-prompts .chip{flex:none}
.a-input{display:flex;gap:8px;align-items:center;padding:12px 14px;border-top:1px solid var(--border);background:var(--surface)}.a-input #a-q{flex:1;min-width:0;height:48px;min-height:48px;border-radius:999px}.a-attach,.a-mic{flex:none;cursor:pointer;font-size:18px}
@media (max-width:700px){.m-split{grid-template-columns:1fr}.m-site-prev{position:static}.m-week{grid-template-columns:repeat(7,150px)}.a-reel-wrap{grid-template-columns:1fr}.a-reel{max-width:180px}.a-msg{max-width:96%}.a-input .btn{padding:0 14px}.a-log{max-height:none}}
/* ---------- v15 Alfred extras ---------- */
.a-ideas-h{display:flex;align-items:center;gap:12px;margin-bottom:8px}.a-ideas-h .alfred-av{width:44px;height:44px;flex:none}.a-ideas-h div{flex:1}.a-ideas-h h2{margin:0}.a-ideas-h .eyebrow{margin:0}
.a-nudge{background:color-mix(in srgb,var(--rose) 10%,var(--surface));border-left:3px solid var(--rose);border-radius:12px;padding:10px 14px;font-size:14px}
.a-idea-list{list-style:none;padding:0;margin:0 0 10px}.a-idea-list li{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--border)}.a-idea-list strong{flex:1;font-weight:500;font-size:14px}
.a-ideas-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:8px 0}.a-ideas-grid h3,.a-ideas h3{font-size:17px;margin:10px 0 6px}.a-ideas-grid ul{padding-left:18px;margin:0;font-size:14px}.a-ideas-grid li{margin:4px 0}
.a-dash{margin-top:18px}.a-ideas.compact .a-idea-list li:first-child{border-top:0}
.a-rc-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:6px 0 12px}.a-rc-kpis div{background:var(--surface2);border-radius:14px;padding:10px;display:flex;flex-direction:column}.a-rc-kpis b{font:600 22px 'Playfair Display',Georgia,serif;color:var(--rose)}.a-rc-kpis small{color:var(--muted);font-size:12px}
.up{color:var(--green);font-weight:600}.down{color:var(--red);font-weight:600}
.a-report{margin-top:8px}.a-report-h{display:flex;gap:14px;align-items:center;border-bottom:2px solid var(--rose);padding-bottom:12px;margin-bottom:14px}.a-report-h .alfred-av{width:54px;height:54px}.a-report-h h2{margin:0}
.a-r-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-bottom:14px}.a-r-grid h3{font-size:18px;margin:4px 0 8px}
.a-funnel div{display:flex;align-items:center;gap:10px;margin:6px 0}.a-funnel span{width:110px;font-size:13px;color:var(--muted);flex:none}.a-funnel i{display:block;height:26px;border-radius:8px;background:linear-gradient(90deg,var(--rose),var(--brand));position:relative}.a-funnel b{position:absolute;right:8px;top:3px;color:#fff;font-size:12px}
.a-r-best{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:8px 0 14px}.a-r-best div{background:var(--surface2);border-radius:14px;padding:12px;display:flex;flex-direction:column}.a-r-best small{color:var(--muted);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.a-tips{padding-left:18px}.a-tips li{margin:6px 0;font-style:italic}.a-emailme{border-top:1px solid var(--border);padding-top:12px;margin-top:12px}
.m-prod img,.m-prod-ph{width:100%;aspect-ratio:1;object-fit:cover;border-radius:14px;margin-bottom:10px;background:var(--surface2);display:grid;place-items:center;color:var(--rose)}.m-prod-ph .lash-mark{width:70px;height:44px}.m-price{color:var(--rose)}
.em-prev{border:1px solid var(--border);border-radius:16px;overflow:hidden;margin:10px 0;background:#fff;color:#111;max-width:520px}.em-top{background:#111;color:#fff;display:flex;align-items:center;gap:10px;padding:14px 18px;font:600 18px 'Playfair Display',Georgia,serif}.em-top .lash-mark{width:40px;height:26px;color:#f29bb2}.em-body{padding:18px;font-size:14px;line-height:1.6}.em-subj{font:600 20px 'Playfair Display',Georgia,serif;margin:0 0 10px}.em-btn{display:inline-block;background:#b3122e;color:#fff!important;padding:11px 24px;border-radius:999px;text-decoration:none;font-weight:600}.em-sig{color:#5f5559}.em-foot{background:#fdf0f3;color:#5f5559;font-size:11px;padding:12px 18px;line-height:1.6}
.em-prods{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:10px}.em-prods div{display:flex;flex-direction:column;gap:2px;font-size:13px}.em-prods img,.em-prods .m-prod-ph{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}.em-prods span{color:#b3122e;font-weight:600}
.a-email .field{margin-bottom:8px}
.a-pf-row{display:grid;grid-template-columns:96px 1fr;gap:12px;margin-bottom:12px}.a-pf-row img{width:96px;height:96px;object-fit:cover;border-radius:12px}.a-pf-row div{display:grid;gap:4px;min-width:0}.a-pf-row label{font-size:12px;color:var(--muted)}
.a-uthumbs{display:flex;gap:6px;justify-content:flex-end;margin-bottom:4px}.a-uthumbs img{width:64px;height:64px;object-fit:cover;border-radius:10px}
.a-tray{display:flex;gap:8px;padding:10px 14px 0;background:var(--surface);flex-wrap:wrap}.a-th{position:relative}.a-th img{width:56px;height:56px;object-fit:cover;border-radius:10px;display:block}.a-th button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:0;background:#111;color:#fff;cursor:pointer;font-size:13px;line-height:1}
.a-plus-wrap{position:relative}.a-plus{font-size:24px;font-weight:300;background:var(--rose)!important;color:#fff!important;border:0}.a-plus-menu{position:absolute;bottom:56px;left:0;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:6px;min-width:190px;z-index:5}.a-plus-menu label{display:flex;gap:10px;align-items:center;padding:12px;border-radius:10px;cursor:pointer;font-size:14px;min-height:44px}.a-plus-menu label:hover{background:var(--surface2)}
.m-site-hero.has-img h3,.m-site-hero.has-img p{text-shadow:0 1px 8px #0008}
/* v15: wrapped date/time fields — visible display matches text inputs; real input is a transparent overlay */
.dt-wrap{position:relative;display:block;width:100%;max-width:100%;min-width:0;overflow:hidden;box-sizing:border-box}
.dt-display{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;box-sizing:border-box;min-height:54px;height:54px;padding:13px 15px;border:1px solid var(--border);border-radius:11px;background:var(--bg);color:var(--text);font:inherit;text-align:left;overflow:hidden}
.dt-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.dt-wrap.empty .dt-text{color:var(--muted)}
.dt-ic{width:20px;height:20px;flex:none;fill:none;stroke:var(--muted);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dt-wrap.focus .dt-display{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent)}
.dt-wrap.disabled .dt-display{opacity:.55}
.dt-wrap>input[type=date],.dt-wrap>input[type=time],.dt-wrap>input[type=datetime-local]{position:absolute!important;inset:0!important;width:100%!important;min-width:0!important;max-width:100%!important;height:100%!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;opacity:0!important;font-size:16px!important;cursor:pointer;-webkit-appearance:none;appearance:none;background:transparent;color:transparent;z-index:1}
.dt-wrap>input::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
/* v15: equal-height academy course cards */
.l-courses{align-items:stretch;grid-auto-rows:1fr}.l-courses>.l-course{height:100%;margin:0!important;display:flex;flex-direction:column;box-sizing:border-box}.l-courses>.l-course>.l-course-art{flex:none;height:110px;margin-top:0}.l-courses>.l-course>.btn:last-child{margin-top:auto;align-self:flex-start}.l-course.soon{opacity:1}.l-course.soon .l-course-art{filter:grayscale(.2)}
/* ===== v16: AI add-on ===== */
.ai-meter .ai-bar{height:12px;border-radius:99px;background:rgba(127,127,127,.2);overflow:hidden;margin:10px 0}.ai-meter .ai-bar i{display:block;height:100%;background:var(--brand,#2f6fed);border-radius:99px}.ai-meter.warn .ai-bar i{background:#e0892b}
.ai-nums{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}.ai-nums small{opacity:.7}.ai-badge{font-size:12px;font-weight:700;padding:4px 10px;border-radius:99px;background:rgba(127,127,127,.15)}.ai-badge.off{opacity:.7}
.ai-warn{background:#fff3e0;color:#7a3d00;border:1px solid #f0b46b;border-radius:10px;padding:10px 12px;margin:8px 0}
.ai-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin:16px 0}.ai-tier{position:relative;border:1px solid rgba(127,127,127,.3);border-radius:16px;padding:22px 18px;display:flex;flex-direction:column;gap:6px;background:var(--panel,rgba(127,127,127,.05))}.ai-tier ul{list-style:none;padding:0;margin:8px 0 14px;flex:1}.ai-tier li{margin:5px 0;font-size:14px}.ai-tier.pop{border:2px solid var(--brand,#2f6fed);box-shadow:0 8px 24px rgba(0,0,0,.12)}.ai-tier.cur{outline:3px solid #3aa76d}.ai-pop{position:absolute;top:-12px;left:18px;background:var(--brand,#2f6fed);color:#fff;font-size:12px;font-weight:700;padding:3px 10px;border-radius:99px}.ai-price b{font-size:32px}.ai-tier h3{margin:0}.ai-note{text-align:center}.ai-plan-note{display:block;margin-top:4px;font-weight:600}

html body.resto.resto{--brand:#c8743a;--accent:#f2c14e}
body.resto .r-brand{display:flex;align-items:center;gap:10px;color:#c8743a;font-weight:800}body.resto .r-brand small{display:block;font-size:10px;letter-spacing:.08em;opacity:.7;color:inherit}.r-mark{width:34px;height:34px;flex:none;color:#c8743a}.demo-co .r-mark{width:22px;height:22px;margin-right:4px}
body.resto .btn.primary{background:#c8743a;border-color:#c8743a;color:#fff}body.resto .nav a.active,body.resto .nav button.active{color:#c8743a}
.r-install{display:flex;align-items:center;gap:12px;background:#fff7ec;color:#4a2a10;border:1px solid #f2c79a;border-radius:14px;padding:12px 14px;margin-bottom:14px}.r-install>div{font-size:24px}.r-install p{flex:1;margin:0}.r-install span{display:block;font-size:13px;opacity:.8}
.r-punch{text-align:center}.r-punch h1{margin:6px 0}.r-punch.on{border:2px solid #3aa76d}.r-punch select{width:100%;margin:6px 0 12px}.btn.big{min-height:56px;font-size:18px}.btn.full{width:100%;justify-content:center}.r-geo{font-weight:600;color:#2d7a4f}.r-geo.bad{color:#b3261e}.r-sim{margin-top:10px;font-size:13px}
.r-chip{display:inline-block;font-size:12px;font-weight:700;padding:3px 9px;border-radius:99px;background:rgba(200,116,58,.15);color:#a85a24;margin:2px}.r-chip.bad{background:#fde3e1;color:#b3261e}.r-chip.ok{background:#dff3e7;color:#22663f}
.r-ann{border-left:3px solid #c8743a;padding:4px 12px;margin:10px 0}.r-ann p{margin:0 0 4px}.r-ann small{opacity:.7}
.r-list{list-style:none;padding:0;margin:0}.r-list li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(127,127,127,.18);flex-wrap:wrap}.r-list li:last-child{border-bottom:0}.r-list time{min-width:110px;font-size:13px}.r-list time b{display:block}.r-list li>div{flex:1;min-width:120px}.r-list li>div span{display:block;font-size:13px;opacity:.75}ul.r-list.card{padding:4px 18px}
.r-alerts{list-style:none;padding:0}.r-alerts li{padding:10px 0;border-bottom:1px solid rgba(127,127,127,.18)}.r-alerts li.bad{color:#b3261e;font-weight:600}
.r-week{overflow-x:auto;max-width:100%;min-width:0;margin-bottom:18px}.r-grid td,.r-grid th{min-width:92px;font-size:12px;vertical-align:top}.r-grid td small{display:block;opacity:.7}.r-shift{display:block;background:rgba(200,116,58,.15);border-radius:6px;padding:3px 6px;margin:2px 0;white-space:nowrap}.r-shift.pend{background:#fde3e1}.r-role-manager{background:rgba(242,193,78,.3)}.r-role-line,.r-role-dishwasher{background:rgba(58,167,109,.18)}
.r-approvals select{max-width:200px}.r-lowrow{background:rgba(179,38,30,.06)}.r-count{width:80px}.r-low{border:1px solid #f0b46b;background:#fff8ef;color:#5a3000}.r-po{border:1px solid rgba(127,127,127,.25);border-radius:12px;padding:12px;margin:10px 0}
.r-snap-btns{display:flex;gap:10px;flex-wrap:wrap}.r-scan{position:relative;max-width:300px;margin:auto;text-align:center}.r-scan img,.r-scan-done img{width:100%;max-width:220px;border-radius:10px;border:1px solid rgba(127,127,127,.3)}.r-scan-bar{position:absolute;left:0;right:0;top:0;height:4px;background:#c8743a;box-shadow:0 0 14px #c8743a;animation:rscan 1.2s linear infinite}@keyframes rscan{to{top:85%}}
.r-scan-done{display:grid;grid-template-columns:200px 1fr;gap:16px;margin-bottom:14px}.r-scan-done input{width:100%;min-width:60px}.r-tot{text-align:right}@media(max-width:700px){.r-scan-done{grid-template-columns:1fr}.r-scan-done img{max-width:140px}}
.r-check{list-style:none;padding:0}.r-check li{padding:8px 0}
.r-bars{display:flex;gap:10px;align-items:flex-end;height:200px;padding-top:20px}.r-bar{flex:1;display:flex;align-items:flex-end;gap:3px;height:100%;position:relative;padding-bottom:36px}.r-bar i{flex:1;border-radius:4px 4px 0 0;display:block}.r-bar i.s{background:#c8743a}.r-bar i.l{background:#3a6e8f}.r-bar b{position:absolute;bottom:16px;left:0;right:0;text-align:center;font-size:12px}.r-bar span{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:11px;opacity:.7}.l-legend .c-s i{background:#c8743a}.l-legend .c-l i{background:#3a6e8f}.l-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px}.l-legend span{margin-right:14px}
.r-chat-log{max-height:340px;overflow:auto;display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.r-msg{max-width:80%;background:rgba(127,127,127,.12);border-radius:14px;padding:8px 12px}.r-msg.me{align-self:flex-end;background:rgba(200,116,58,.18)}.r-msg p{margin:2px 0}.r-msg small{opacity:.6;font-size:11px}.r-chat-in{display:flex;gap:8px}.r-chat-in input{flex:1}
.r-ai-h{display:flex;align-items:center;gap:10px;margin-bottom:10px}.r-ai-h .a-demo{margin-left:auto;font-size:11px;font-weight:700;background:#fff3e0;color:#7a3d00;padding:3px 8px;border-radius:99px}.r-ai-log{display:flex;flex-direction:column;gap:8px;max-height:420px;overflow:auto;margin-bottom:10px}.r-ai-msg{max-width:85%;padding:10px 14px;border-radius:14px;background:rgba(127,127,127,.12)}.r-ai-msg.u{align-self:flex-end;background:#c8743a;color:#fff}.r-ai-msg p{margin:0}
body.resto .a-prompts{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}body.resto .a-input{display:flex;gap:8px}body.resto .a-input input{flex:1}
.r-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px}.r-stats>div{background:var(--panel,rgba(127,127,127,.06));border:1px solid rgba(127,127,127,.2);border-radius:14px;padding:14px}.r-stats span,.r-stats small{display:block;font-size:12px;opacity:.75}.r-stats strong{font-size:24px}
/* ===== v16: Marketing homepage ===== */
body.site-body{background:#0d1524;color:#eef2f8}body.site-body #app{max-width:none}.site{font-family:inherit;max-width:1180px;margin:0 auto;padding:0 20px}
.site-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:16px;padding:14px 0;background:rgba(13,21,36,.94);backdrop-filter:blur(8px)}.site-logo{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-size:18px}.site-logo img{border-radius:8px}.site-logo b{color:#ffb547}.site-links{display:flex;gap:18px;margin-left:auto}.site-links a{color:#c5d0e0;text-decoration:none;font-weight:600}.site-cta{display:flex;gap:8px}
.site .btn{text-decoration:none}.site .btn.primary{background:#ffb547;border-color:#ffb547;color:#1a1200}.site .btn:not(.primary){color:#fff;border-color:rgba(255,255,255,.4);background:transparent}
.site-hero{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center;padding:60px 0}.site-hero h1{font-size:clamp(34px,5vw,56px);line-height:1.05;margin:10px 0}.site-hero h1 span{color:#ffb547}.site-lead{font-size:18px;color:#c5d0e0;max-width:720px}.site-big{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0 8px}.site-big .btn{min-width:180px;justify-content:center}
.site-phone{justify-self:center;width:260px;height:520px;border-radius:40px;border:10px solid #22314b;background:#f6f3ee;padding:22px 16px;color:#1b2333;box-shadow:0 30px 60px rgba(0,0,0,.4)}.sp-eyebrow{font-size:11px;font-weight:800;letter-spacing:.1em;color:#2d7a4f;text-align:center}.sp-big{font-size:22px;font-weight:800;text-align:center;margin:4px 0}.sp-geo{text-align:center;font-size:13px;color:#2d7a4f}.sp-btn{background:#1b2333;color:#fff;border-radius:12px;padding:14px;text-align:center;font-weight:700;margin:14px 0}.sp-card{background:#fff;border-radius:12px;padding:10px 12px;margin:8px 0;font-size:13px}.sp-card b,.sp-card span{display:block}
.site-sec{padding:48px 0;border-top:1px solid rgba(255,255,255,.08)}.site-sec h2{font-size:32px;margin:0 0 16px}.site-sub{margin-top:28px}
.site-grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.site-grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.site-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.site-feat,.site-ind,.site-base{background:#15223a;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:20px}.site-feat span,.site-ind span{font-size:28px}.site-feat h3,.site-ind h3{margin:8px 0 6px}.site-feat p,.site-ind p{color:#c5d0e0;margin:0}
.site-steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.site-steps li{background:#15223a;border-radius:16px;padding:20px}.site-steps b{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#ffb547;color:#1a1200}.site-steps p{color:#c5d0e0}
.site .ai-tier{background:#15223a;border-color:rgba(255,255,255,.12)}.site .ai-tier .quiet,.site .ai-tier li{color:#c5d0e0}.site .ai-tier.pop{border-color:#ffb547}.site .ai-pop{background:#ffb547;color:#1a1200}.site-base .ai-price b{color:#ffb547}
.site-media{aspect-ratio:16/9;border-radius:16px;display:grid;place-content:center;text-align:center;background:#15223a;border:2px dashed rgba(255,255,255,.2)}.site-media span{font-size:46px}.site-media.yt span{color:#ff4b4b}.site-media.ig span{color:#e1306c}.site-media p{margin:6px 0 0;font-weight:700}.site-media small{opacity:.6}
.site-faq{background:#15223a;border-radius:12px;padding:14px 18px;margin:10px 0}.site-faq summary{cursor:pointer;font-weight:700}.site-faq p{color:#c5d0e0}
.site-final{text-align:center;padding:56px 0}.site-final .site-big{justify-content:center}.site-foot{text-align:center;padding:24px 0 40px;color:#8d9bb2;font-size:14px;border-top:1px solid rgba(255,255,255,.08)}.site-foot a{color:#c5d0e0}
@media(max-width:760px){.site-hero{grid-template-columns:1fr;padding:30px 0}.site-links{display:none}.site-cta{margin-left:auto}.site-phone{width:220px;height:440px}.site-big .btn{flex:1;min-width:0}}
.ai-tiers{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
@media(max-width:1100px){.r-scan-done{grid-template-columns:1fr}.r-scan-done img{max-width:160px}}
.r-scan-done td:first-child input{min-width:150px}.r-scan-done table{width:100%}.site-cta .btn{white-space:nowrap}
.site-trust{text-align:center;padding:26px 0;border-top:1px solid rgba(255,255,255,.08)}.site-trust-row{display:flex;justify-content:center;flex-wrap:wrap;gap:16px}.site-trust-co{display:flex;align-items:center;gap:12px;background:#15223a;border-radius:14px;padding:10px 18px;text-align:left}.site-trust-co img{height:44px;width:auto;max-width:90px;object-fit:contain;background:#fff;border-radius:8px;padding:4px}.site-trust-co b,.site-trust-co small{display:block}.site-trust-co small{color:#8d9bb2}
.site-trust-mark{display:grid;place-items:center;width:52px;height:44px;background:#fff;border-radius:8px;color:#c8743a}.site-trust-mark svg{width:34px;height:34px}
@font-face{font-family:'Dancing Script';src:url(assets/dancing-script.ttf) format('truetype');font-weight:400 700;font-display:swap}
.who-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:36px;align-items:start}.who-story p{font-size:18px;line-height:1.6;color:#d5deeb;margin:0 0 14px}
.who-sig{margin-top:22px}.sig-script{display:inline-block;font-family:'Dancing Script','Snell Roundhand','Apple Chancery','Brush Script MT',cursive;font-weight:700;font-size:48px;color:#ffb547;line-height:1.2;padding-right:8px;clip-path:inset(0 100% 0 0);-webkit-clip-path:inset(0 100% 0 0)}.who-sig.in .sig-script{animation:sigdraw 1.8s cubic-bezier(.45,.05,.3,1) .3s forwards}@keyframes sigdraw{to{clip-path:inset(0 0 0 0);-webkit-clip-path:inset(0 0 0 0)}}.sig-svg{display:block;height:1.3em;width:auto;color:#ffb547;overflow:visible}.sig-title{display:block;color:#8d9bb2;font-size:14px;letter-spacing:.04em;border-top:1px solid rgba(255,255,255,.2);padding-top:6px;max-width:280px}
.site .reveal{opacity:0;transform:translate3d(0,18px,0);transition:opacity .6s ease var(--d,0ms),transform .6s ease var(--d,0ms);will-change:opacity,transform}.site .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.site .reveal{opacity:1;transform:none;transition:none}.sig-script{clip-path:none!important;-webkit-clip-path:none!important;animation:none!important}}
@media(max-width:760px){.who-grid{grid-template-columns:1fr}.sig-script{font-size:40px}}
.site-ten h2{font-size:clamp(28px,4vw,42px)}.ten-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:18px 0}.ten-item{display:flex;align-items:center;gap:12px;background:#15223a;border:1px solid rgba(255,181,71,.25);border-radius:14px;padding:14px 16px}.ten-item span{font-size:24px}.ten-item b{font-size:15px}
.site-sec{scroll-margin-top:84px}
.site-who .who-grid{grid-template-columns:1fr;max-width:760px;margin:0 auto}.who-logo{display:flex;flex-direction:column;align-items:center;gap:14px;margin:36px auto 8px;text-align:center}.who-logo img{width:clamp(140px,32vw,220px);height:auto;border-radius:36px;box-shadow:0 18px 50px rgba(255,181,71,.18)}.who-logo span{font-size:clamp(24px,4vw,34px);font-weight:700;color:#fff}.who-logo b{color:#ffb547}.site .who-logo.reveal{transform:scale(.92);transition:opacity .9s ease .2s,transform .9s cubic-bezier(.2,.8,.2,1) .2s}.site .who-logo.reveal.in{transform:none}
.site-soon{text-align:center}.site-soon .site-lead{margin:0 auto}
@media(prefers-reduced-motion:reduce){.site .who-logo.reveal{opacity:1;transform:none;transition:none}}
.site-proud{font-weight:700;color:#eef2f8;font-size:15px;letter-spacing:.02em}
.site-signup{max-width:860px;margin:0 auto}.site-form{background:#15223a;border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:22px}.site-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.site-form label{color:#eef2f8;font-weight:600}.site-form input,.site-form select,.site-form textarea{width:100%;font-size:16px}.site-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}.site-form-err{background:#fde3e1;color:#7a1410;border-radius:10px;padding:10px 12px}.site-form-err a{color:#7a1410;font-weight:700}.site-thanks{background:#15223a;border:2px solid #ffb547;border-radius:18px;padding:26px;text-align:center}.site-thanks h3{color:#ffb547;font-size:24px;margin:0 0 6px}
@media(max-width:700px){.site-form-grid{grid-template-columns:1fr}}
/* v16: owner console Matrix — translucent panels so the rain shows through */
body.owner-matrix{--surface:rgba(10,58,32,.35);--surface2:rgba(14,70,40,.38)}
body.owner-matrix #app .card,body.owner-matrix #app section.card,body.owner-matrix #app .panel,body.owner-matrix #app .ce-preview{background:rgba(10,58,32,.35)!important;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 0 0 1px rgba(56,213,119,.35)}
body.owner-matrix #app header{background:rgba(8,48,26,.35)!important;-webkit-backdrop-filter:none;backdrop-filter:none}
body.owner-matrix #app .btn:not(.primary){background:rgba(20,80,46,.4)}
body.owner-matrix #app input,body.owner-matrix #app select,body.owner-matrix #app textarea,body.owner-matrix #app .dt-display{background:rgba(6,16,12,.5)}
body.owner-matrix #app .card,body.owner-matrix #app header{text-shadow:0 0 3px rgba(0,0,0,.9),0 1px 2px rgba(0,0,0,.8)}
body.owner-matrix #app .btn.primary{text-shadow:none}
body.owner-matrix #app .table-scroll,body.owner-matrix #app table,body.owner-matrix #app th,body.owner-matrix #app td{background:transparent!important}

.table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}


.settings-signout{margin-top:18px}.settings-signout .btn.danger{width:100%;border-color:color-mix(in srgb,var(--red) 45%,var(--border));background:color-mix(in srgb,var(--red) 10%,var(--surface));color:var(--red)}.settings-signout .quiet{margin:10px 0 0;text-align:center}
body.lash .settings-signout .btn.danger{border-radius:999px;background:color-mix(in srgb,var(--rose) 12%,var(--surface));border-color:color-mix(in srgb,var(--rose) 40%,var(--border));color:var(--rose)}
.shell .main,.shell .content,.card,.l-card,.m-msg,.l-students-mobile,.l-student{min-width:0;max-width:100%;box-sizing:border-box}
.shell .content{overflow-x:clip}
/* contain nested horizontal scrollers */
.card .l-cal,.card .m-week,.card .l-days,.m-body .m-week,.m-tabs,.r-week,.table-wrap{max-width:100%}
.l-students-mobile{display:none;flex-direction:column;gap:12px}
.l-student{display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface2)}
.l-student-h{display:flex;flex-direction:column;gap:2px;min-width:0}.l-student-h strong{font-size:15px;overflow-wrap:anywhere}.l-student-h span{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.l-student .l-pcell{display:flex;align-items:center;gap:8px;min-width:0}.l-student .l-bar{flex:1;min-width:0}
.l-student-meta{margin:0;font-size:13px;color:var(--muted)}.l-student-meta b{color:var(--text)}
.l-student-actions{display:flex;flex-wrap:wrap;gap:8px}.l-student-actions .btn{flex:1 1 calc(50% - 4px);justify-content:center;white-space:normal;text-align:center}
@media(max-width:640px){
 .l-students-desktop{display:none}
 .l-students-mobile{display:flex}
 .l-stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr))}
 .l-courses{grid-template-columns:1fr}
 .l-card-h{flex-wrap:wrap}
 .m-camp-h{flex-wrap:wrap;align-items:flex-start}
}

/* v16c: form grid / date inputs — never touch, never overflow grid cells */
.fields,.fields.three,.rate-form,.rate-fields,.checks-grid,.ec-row,.pay-row,.m-split{column-gap:max(12px,16px)}
.fields{row-gap:0}
.field,.fields>*,.field>*,.dt-wrap,.dt-display,form .fields,.rate-form .field{min-width:0;max-width:100%;box-sizing:border-box}
input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week],
input[type=number],input[type=text],input[type=email],input[type=tel],input[type=password],select,textarea{
  width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.dt-wrap{width:100%;max-width:100%;min-width:0;overflow:hidden}
@media(max-width:400px){
  .fields.rate-form,.rate-form{grid-template-columns:1fr!important;column-gap:0!important;gap:0!important}
  .fields:not(.rate-form){grid-template-columns:1fr;column-gap:0}
}
@media(min-width:401px) and (max-width:850px){
  .rate-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;column-gap:16px!important;gap:16px!important}
}

/* v16c: universal account screens */
.account-card .button-row{margin-top:14px}
.account-avatar{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#18351f;font-weight:800;font-size:22px;margin-bottom:12px}
body.lash .account-avatar{background:var(--rose);color:#fff}
.account-help{margin:0;padding-left:20px}.account-help li{margin:8px 0;color:var(--muted);font-size:14px}
.account-tiles{margin-bottom:18px}
.account-owner{max-width:720px;margin:40px auto;padding:20px}
.account-owner .card{background:#06190ff2}

/* v16e: homepage launch countdown */
.site-countdown{margin:8px 0 0;padding:22px 20px 24px;border-radius:20px;background:linear-gradient(145deg,#122038 0%,#0d1524 55%,#152a1c 100%);border:1px solid rgba(255,181,71,.35);box-shadow:0 18px 50px rgba(0,0,0,.35);text-align:center;overflow:hidden;max-width:100%}
.site-countdown .eyebrow{margin-bottom:6px;color:#ffb547}
.cd-tagline{margin:0 0 14px;font-size:clamp(18px,3.2vw,26px);font-weight:700;letter-spacing:-.4px;color:#f2f5fa;font-family:Manrope,system-ui,sans-serif}
.cd-heading{margin:0 0 16px;font-size:clamp(22px,3.5vw,30px);color:#b8ed7c;letter-spacing:-.5px}
.cd-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-width:560px;margin:0 auto}
.cd-box{background:#0a111ecc;border:1px solid rgba(184,237,124,.28);border-radius:14px;padding:14px 6px;min-width:0}
.cd-box b{display:block;font-family:Manrope,ui-monospace,monospace;font-size:clamp(26px,6vw,40px);font-weight:800;line-height:1.05;color:#ffb547;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.cd-box span{display:block;margin-top:6px;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:#9eadc4;font-weight:700}
.cd-live{margin:8px 0 0;font-size:clamp(28px,5vw,42px);font-weight:800;color:#b8ed7c;font-family:Manrope,system-ui,sans-serif}
.cd-sub{margin:14px 0 0;font-size:12px;color:#9eadc4}
@media(max-width:480px){.site-countdown{padding:18px 12px 20px;border-radius:16px}.cd-grid{gap:6px}.cd-box{padding:12px 4px;border-radius:12px}.cd-box span{font-size:10px;letter-spacing:1px}}
@media(prefers-reduced-motion:reduce){.cd-box b{transition:none}}


/* v16f — Website visitors panel (owner console) */
#website-visitors .vis-range{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px}
#website-visitors .vis-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:8px 0 18px}
#website-visitors .vis-kpi{background:rgba(6,40,22,.45);border:1px solid rgba(56,213,119,.35);border-radius:12px;padding:18px 16px;text-align:center}
#website-visitors .vis-num{display:block;font-size:36px;line-height:1.1;font-weight:700;color:#a6ffc5;letter-spacing:.5px}
#website-visitors .vis-lbl{display:block;margin-top:8px;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#afd1ba}
#website-visitors .vis-bars{display:flex;align-items:flex-end;gap:4px;min-height:120px;padding:8px 0 0;overflow-x:auto}
#website-visitors .vis-bar{flex:1 1 18px;min-width:16px;max-width:48px;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:center;gap:2px;height:120px;position:relative}
#website-visitors .vis-bar small{flex:1 0 100%;font-size:9px;color:#afd1ba;letter-spacing:0;white-space:nowrap;text-align:center;margin-top:4px}
#website-visitors .vis-col{display:block;width:40%;align-self:flex-end;border-radius:3px 3px 0 0;min-height:2px}
#website-visitors .vis-col.pv{background:rgba(128,255,172,.35);border:1px solid rgba(128,255,172,.55)}
#website-visitors .vis-col.v{background:rgba(56,213,119,.75);border:1px solid #80ffac}
#website-visitors .vis-legend{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}
#website-visitors .vis-swatch{display:inline-block;width:12px;height:12px;border-radius:2px;margin-right:4px;vertical-align:middle}
#website-visitors .vis-swatch.v{background:rgba(56,213,119,.75);border:1px solid #80ffac}
#website-visitors .vis-swatch.pv{background:rgba(128,255,172,.35);border:1px solid rgba(128,255,172,.55)}
#website-visitors .vis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}
#website-visitors .vis-block h3{font-size:14px;margin:0 0 10px;color:#a6ffc5;letter-spacing:.5px}
#website-visitors .vis-list{list-style:none;padding:0;margin:0}
#website-visitors .vis-list li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #27533a;font-size:13px}
#website-visitors .vis-list li span{overflow-wrap:anywhere}
#website-visitors .vis-list li strong{white-space:nowrap;color:#a6ffc5}
#website-visitors .vis-list li small{color:#afd1ba;font-weight:400}
#website-visitors .vis-empty{border:1px dashed rgba(56,213,119,.45);border-radius:12px;padding:16px;margin:10px 0}
#website-visitors .vis-empty strong{display:block;color:#a6ffc5;margin-bottom:6px}
#website-visitors .vis-note{margin-top:16px}
@media(max-width:700px){
  #website-visitors .vis-grid{grid-template-columns:1fr}
  #website-visitors .vis-num{font-size:28px}
}

/* ---------- v18 bug fixes: top-left Back arrow + in-app reason popup ---------- */
.topbar .app-back{flex:0 0 auto}
.has-back .topbar .crumb,.has-back .topbar .mobile-brand{margin-right:auto}
.ask-overlay{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:20px}
.ask-box{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:20px;padding:24px;width:min(480px,100%);max-height:90vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.45)}
.ask-box h2{font-size:21px;margin-bottom:8px}.ask-box .ask-text{color:var(--muted);font-size:13px;margin:0 0 14px;line-height:1.6}
.ask-box label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}
.ask-box textarea{width:100%;min-height:96px;border:1px solid var(--border);border-radius:12px;background:var(--surface2);color:var(--text);padding:12px;font-size:16px;resize:vertical}
.ask-box .button-row{margin-top:16px}
.btn.danger-solid{background:var(--red);border-color:var(--red);color:#fff}
body.ask-open{overflow:hidden}
.alert.sent-back{align-items:flex-start}.alert.sent-back>div{flex:1;min-width:0}.alert.sent-back p{margin:4px 0 0}
.sent-back-note{display:block;color:var(--red)!important;margin-top:4px}
@media print{.app-back,.ask-overlay{display:none!important}}

.l-appt,.l-classes li{flex-wrap:wrap}.l-appt>div,.l-classes li>div{flex:1 1 140px;min-width:0}.l-appt>.l-tag,.l-classes li>.l-tag{margin-left:auto}

/* ---------- v19 parity with live v3 ---------- */
.pi-artist{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:8px 16px 8px 8px;border-radius:999px;background:var(--surface);border:1px solid var(--border);width:fit-content;max-width:100%}
.pi-artist small{display:block;color:var(--muted);font-size:12px}.pi-artist b{font-size:15px}
.pi-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:none;border:2px solid var(--accent,#f29bb2);background:var(--surface2)}
.pi-avatar.lg{width:96px;height:96px}.pi-avatar.ini{display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:20px}.pi-avatar.lg.ini{font-size:36px}
.pi-about{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.pi-about>div{flex:1;min-width:220px}.pi-about h2{margin:4px 0 6px}
.pi-artist-edit{margin:6px 0 10px}
@media(max-width:600px){.pi-about{flex-direction:column;align-items:flex-start}}

/* v19.1: iOS Safari date/time/file inputs — match live, never overflow cards */
input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week],input[type=file]{
  -webkit-appearance:none;appearance:none;display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;text-align:left
}
input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value,input[type=datetime-local]::-webkit-date-and-time-value,input[type=month]::-webkit-date-and-time-value{text-align:left;margin:0}
.row>*,.row>div,.fields>*,.field,.button-row>*{min-width:0;max-width:100%;box-sizing:border-box}

/* AI email composer (v19.3 / live v4.2) — keeps the app's dark look; accents follow the page (--accent / --brand). */
.aie{border:1px solid var(--border);border-radius:16px;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 9%,var(--surface)),var(--surface));margin:10px 0 18px;overflow:hidden}
.aie-toggle{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:10px;width:100%;padding:14px 16px;cursor:pointer;flex-wrap:wrap}
.aie-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.aie-toggle strong{font-size:16px}.aie-toggle small{color:var(--muted);flex:1;min-width:160px}
.aie-badge{background:var(--accent);color:#0d1524;font-weight:700;font-size:12px;padding:4px 9px;border-radius:999px;letter-spacing:.04em}
.aie-chev{color:var(--muted)}
.aie-body{padding:0 16px 16px}
.aie-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
@media (max-width:640px){.aie-grid{grid-template-columns:1fr}}
.aie-actions .btn[disabled]{opacity:.45}
.aie-done{background:color-mix(in srgb,var(--green) 14%,transparent);border:1px solid color-mix(in srgb,var(--green) 40%,transparent);border-radius:10px;padding:9px 12px;font-size:14px}
.aie-hdrs{border:0;padding:0;margin:6px 0 10px;min-width:0;max-width:100%}
.aie-hdr-row{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 8px;scroll-snap-type:x proximity}
.aie-hdr{position:relative;flex:0 0 132px;display:flex;flex-direction:column;gap:5px;cursor:pointer;scroll-snap-align:start}
.aie-hdr input{position:absolute;opacity:0;pointer-events:none}
.aie-hdr img,.aie-hdr-x{width:132px;height:44px;border-radius:8px;object-fit:cover;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--muted);background:var(--surface2)}
.aie-hdr.on img,.aie-hdr.on .aie-hdr-x{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}
.aie-hdr:has(input:focus-visible) img{outline:2px solid var(--accent)}
.aie-hdr small{font-size:12px;color:var(--muted)}
.aie-photos{border:1px dashed var(--border);border-radius:12px;padding:12px;display:grid;gap:10px}
.aie-photos-head{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.aie-photos-head small{color:var(--muted)}
.aie-photo{display:grid;grid-template-columns:72px 1fr auto;gap:10px;align-items:center}
.aie-photo img{width:72px;height:54px;object-fit:cover;border-radius:8px}
.aie-upload{justify-self:start;cursor:pointer}
.aie-prev{margin-top:18px;border-top:1px solid var(--border);padding-top:14px}
.aie-prev-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.aie-prev-head h3{margin:0}
.aie .seg,.aie-prev .seg{display:inline-flex;border:1px solid var(--border);border-radius:999px;overflow:hidden}
.aie-prev .seg button{all:unset;cursor:pointer;padding:7px 14px;font-size:14px;color:var(--muted)}
.aie-prev .seg button.on{background:var(--accent);color:#0d1524;font-weight:700}
.aie-prev .seg button:focus-visible{outline:2px solid var(--accent)}
.aie-frame{margin:12px auto 0;background:#0d1524;border-radius:14px;border:1px solid var(--border);overflow:hidden}
.aie-frame iframe{display:block;width:100%;height:560px;border:0;background:#0d1524}
.aie-frame.desktop{max-width:680px}
.aie-frame.phone{width:375px;max-width:100%;border:10px solid #05080f;border-radius:34px;box-shadow:0 18px 50px #0006}
.aie-send{margin-top:12px}.aie-from{font-size:14px;color:var(--muted)}.aie-from.ok{color:var(--green)}
.aie-camp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.aie-camp-head h2,.aie-camp-head h3{margin:0}
.aie-cpick{display:grid;gap:8px}
.aie-combo{position:relative;max-width:460px}
.aie-co-list{position:absolute;z-index:30;left:0;right:0;top:100%;margin:4px 0 0;padding:6px;list-style:none;background:var(--surface2);border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 40px #0007;max-height:300px;overflow:auto}
.aie-co-list li{padding:9px 10px;border-radius:8px;cursor:pointer}.aie-co-list li:hover,.aie-co-list li[aria-selected=true]{background:color-mix(in srgb,var(--accent) 18%,transparent)}
.aie-co-list li.none{color:var(--muted);cursor:default}
.aie-crow input{width:100%;max-width:460px}
.aie-pager{align-items:center}
.aie-to-box{max-height:260px;overflow:auto}
.aie-to-q{width:100%;max-width:320px;margin:4px 0 8px}
.aie-sender .aie-conn{border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:12px}
.aie-sender .aie-conn.ok{border-color:color-mix(in srgb,var(--green) 55%,transparent);background:color-mix(in srgb,var(--green) 10%,transparent)}
.aie-opts{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width:760px){.aie-opts{grid-template-columns:1fr}}
.aie-opt{border:1px solid var(--border);border-radius:12px;padding:12px}.aie-opt h4{margin:0 0 4px}
.aie-dns{margin-top:12px}.aie-dns-v{word-break:break-all;font-size:12px}
.aie-fb{margin:8px 0}
body.light .aie-frame{background:#0d1524}
.aie,.aie-body,.aie-prev{min-width:0;max-width:100%}.aie-photo input{min-width:0}
.l-table td small{display:block;color:var(--muted)}
.aie-upload .aie-file{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;padding:0!important;border:0!important}.aie-upload{position:relative}.aie-upload:focus-within{outline:2px solid var(--accent)}

/* ===== Maple Grown Lawncare workspace (sunny yellow primary · fresh green accent · warm dark; red = warnings only) ===== */
body.lawn.lawn{--brand:#f5c518;--accent:#6fbf3a;--g-red:#e5484d;--g-gold:#f5c518;--g-blue:#2f6fe0;--g-green:#5fae34;--g-deep:#1f4d1a;--g-ink:#1b1608;--bg:#17130b;--surface:#221c12;--surface2:#2c2417;--border:#4a3d24;--muted:#c9b98f}
body.lawn.light{--bg:#fff8e6;--surface:#fffdf6;--surface2:#fdf1cf;--border:#ecd99a;--muted:#6b5d36}
body.lawn .g-brand{display:flex;align-items:center;gap:10px}
body.lawn .g-mark,.demo-co .g-mark,.trusted .g-mark{width:44px;height:44px;flex:none}
.demo-co-name .g-mark{width:30px;height:30px}
.g-word{display:flex;flex-direction:column;line-height:1}
.g-word b{font:900 17px/1 'Poppins','DM Sans',system-ui,sans-serif;letter-spacing:.04em;color:#f5c518;-webkit-text-stroke:1.2px #1f4d1a;paint-order:stroke fill;text-shadow:none}
.g-word i{font:800 11px/1.3 'Poppins','DM Sans',system-ui,sans-serif;font-style:normal;letter-spacing:.32em;color:#8fd14f;-webkit-text-stroke:.5px #1f4d1a;paint-order:stroke fill;margin-top:3px}
body.lawn .pagehead h1,body.lawn .g-head h1{color:var(--g-gold);-webkit-text-stroke:1.4px var(--g-deep);paint-order:stroke fill;text-shadow:0 2px 0 rgba(0,0,0,.25)}
body.lawn.light .pagehead h1,body.lawn.light .g-head h1{color:#2f6b1a!important;text-shadow:0 3px 0 rgba(245,197,24,.55)!important}
body.lawn .card h2{color:var(--text)}
body.lawn .card h2::first-letter{color:inherit}
body.lawn .eyebrow{color:#8fd14f;letter-spacing:.14em}
body.lawn.light .eyebrow{color:#3f7f1f}
body.lawn .btn.primary{background:var(--g-gold);border-color:#ffd84a;color:var(--g-ink);font-weight:700;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
body.lawn .btn.primary:hover{background:#ffd84a}
body.lawn .nav button.active{color:#ffd84a;background:linear-gradient(90deg,rgba(245,197,24,.24),rgba(95,174,52,.10));box-shadow:inset 3px 0 0 var(--g-gold)}
body.lawn .sidebar{border-right:2px solid rgba(245,197,24,.3)}
body.lawn .topbar{border-bottom:2px solid rgba(245,197,24,.4)}
body.lawn .avatar{background:var(--g-gold);color:var(--g-ink);border:2px solid var(--g-green)}
body.lawn .a-prompts{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
body.lawn .a-input{display:flex;gap:8px}
body.lawn .a-input input{flex:1}
body.lawn .l-stats strong{color:var(--g-gold);font-family:'Poppins','DM Sans',sans-serif;font-weight:700;font-size:26px}
body.lawn.light .l-stats strong{color:#2f6b1a}
body.lawn .g-bad,body.lawn .l-stats strong.g-bad{color:#ff6b6b}
body.lawn .l-tag.gold{background:rgba(245,197,24,.24);color:var(--text)}
body.lawn .r-chip{background:rgba(245,197,24,.2);color:#ffd84a}
body.lawn.light .r-chip{color:#8a6a00}
body.lawn .r-chip.ok{background:#2f5a17;color:#d6f5bd}
body.lawn .r-chip.bad{background:#5c1a1d;color:#ffd0d0}
body.lawn.light .r-chip.ok{background:#dff3e7;color:#22663f}
body.lawn.light .r-chip.bad{background:#fde3e1;color:#b3261e}
.g-back{margin-right:8px;width:34px;height:34px}
.g-crumb-txt{display:inline-flex;align-items:center;gap:4px}
body.lawn .crumb{display:flex;align-items:center}
/* hero + map */
.g-hero{display:grid;grid-template-columns:1fr minmax(240px,42%);gap:18px;align-items:center;border:2px solid rgba(245,197,24,.45);background:linear-gradient(135deg,rgba(245,197,24,.10),rgba(95,174,52,.06)),var(--surface)}
.g-hero h2{margin:.2em 0}
@media(max-width:760px){.g-hero{grid-template-columns:1fr}}
.g-map{width:100%;height:auto;display:block;border-radius:16px;border:2px solid rgba(245,197,24,.55);background:#201a10}
.g-map .g-land{fill:#2a2416}
body.light .g-map .g-land{fill:#fbf1d2}
.g-map .g-grid{stroke:rgba(255,255,255,.04);stroke-width:1}
.g-map .g-river{fill:none;stroke:#2f6fe0;stroke-width:9;stroke-linecap:round;stroke-linejoin:round;opacity:.75}
.g-map .g-river.thin{stroke-width:5}
.g-map .g-road{fill:none;stroke:#6e5f42;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
body.light .g-map .g-road{stroke:#d9c99a}
.g-map .g-hwy{font:700 18px 'DM Sans',sans-serif;fill:#f5c518}
.g-map .g-rlabel{font:italic 600 18px 'DM Sans',sans-serif;fill:#7fa8ff}
.g-map .g-city{font:800 30px 'Poppins','DM Sans',sans-serif;letter-spacing:.18em;fill:rgba(255,255,255,.16)}
body.light .g-map .g-city{fill:rgba(0,0,0,.14)}
.g-map .g-line{fill:none;stroke-width:5;stroke-linejoin:round;stroke-linecap:round;opacity:.95}
.g-map.mini .g-line{stroke-width:7}
.g-map .g-pin circle{stroke:#17130b;stroke-width:3}
.g-map .g-pin text{font:800 14px 'DM Sans',sans-serif;fill:#17130b;text-anchor:middle}
.g-map.mini .g-pin text{font-size:12px}
.g-map .g-late-ring{fill:none!important;stroke:#ff3b3b!important;stroke-width:4!important;stroke-dasharray:6 4}
.g-map .g-yard rect{fill:#5fae34;stroke:#f5c518;stroke-width:3}
.g-map .g-yard path{fill:#fff}
.g-map .g-ylabel{font:800 18px 'DM Sans',sans-serif;fill:#fff;paint-order:stroke;stroke:#17130b;stroke-width:4}
body.light .g-map .g-ylabel{fill:#17130b;stroke:#fff}
.g-anim .g-line{stroke-dasharray:3000;stroke-dashoffset:3000;animation:gdraw 1.6s ease-out forwards}
@keyframes gdraw{to{stroke-dashoffset:0}}
.g-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--muted)}
.g-legend span{display:inline-flex;align-items:center;gap:6px}
.g-legend i{display:inline-block;width:14px;height:14px;border-radius:50%}
.g-yard-key{background:#5fae34;border-radius:3px!important;border:2px solid #f5c518}
.g-late-key{border:3px dashed #ff3b3b;background:transparent}
.g-route-cta{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.g-opt{font-size:17px;padding:14px 22px;background:linear-gradient(135deg,#f5c518,#ffdf5e)!important;color:#1b1608!important;border:2px solid #5fae34!important;box-shadow:0 0 0 3px rgba(95,174,52,.35)}
.g-saved{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;border:2px solid rgba(245,197,24,.6);background:linear-gradient(135deg,rgba(245,197,24,.16),rgba(95,174,52,.10))}
.g-saved.g-warn{border-color:rgba(229,72,77,.55);background:linear-gradient(135deg,rgba(229,72,77,.14),rgba(245,197,24,.06))}
.g-saved span{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.g-saved strong{display:block;font:700 24px/1.25 'Poppins','DM Sans',sans-serif;color:var(--g-gold,#f5c518)}
body.light .g-saved strong{color:#2f6b1a}
.g-saved small{color:var(--muted)}
.g-toggle{display:flex;gap:6px}
.g-dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:8px;vertical-align:middle}
.g-stops{list-style:none;margin:8px 0 0;padding:0}
.g-stops.card{padding:6px 16px}
.g-stops li{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid rgba(127,127,127,.18);flex-wrap:wrap}
.g-stops li:last-child{border-bottom:0}
.g-stops li>div{flex:1;min-width:160px}
.g-stops li>div span{display:block;font-size:13px;color:var(--muted)}
.g-stops li.late{background:linear-gradient(90deg,rgba(255,59,59,.12),transparent)}
.g-stops li.done{opacity:.6}
.g-stops time{font-size:13px;min-width:86px;text-align:right}
.g-stops time small{display:block;color:var(--muted)}
.g-stops select{max-width:110px;font-size:13px;padding:6px}
.g-num{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:800;color:#17130b;flex:none}
.g-win{display:inline-block!important;margin-top:4px;font-size:12px!important;font-weight:700;padding:2px 8px;border-radius:99px}
.g-win.ok{background:rgba(95,174,52,.25);color:#cdf3b0!important}
.g-win.bad{background:rgba(255,59,59,.2);color:#ffb3b3!important}
body.light .g-win.ok{color:#2f6b1a!important}
body.light .g-win.bad{color:#b3261e!important}
.g-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;align-items:end}
.g-form .field{margin:0}
.g-pair{display:flex;gap:6px}
.g-pair input{min-width:0;flex:1}
.g-end{display:flex;align-items:flex-end}
/* weather + schedule */
.g-wx{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;text-align:center}
.g-wx div{background:var(--surface2);border-radius:14px;padding:10px 4px;border:1px solid var(--border)}
.g-wx div.bad{border-color:#ff6b6b;background:rgba(255,59,59,.12)}
.g-wx b,.g-wx span,.g-wx small{display:block}
.g-wx span{font-size:24px}
.g-wx small{font-size:11px;color:var(--muted)}
.g-rain{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;border:2px solid rgba(47,111,224,.6);background:linear-gradient(135deg,rgba(47,111,224,.16),transparent)}
.g-rain.done{border-color:rgba(95,174,52,.6)}
.g-week td{vertical-align:top;min-width:120px}
.g-week th small{display:block;font-weight:500;color:var(--muted)}
.g-visit{display:block;margin:3px 0;padding:5px 8px;border-radius:9px;background:rgba(95,174,52,.2);border-left:3px solid var(--g-green,#5fae34);font-size:13px;font-weight:600}
.g-visit.rec{border-left-color:var(--g-gold,#f5c518);background:rgba(245,197,24,.16)}
.g-visit small{display:block;font-weight:400;color:var(--muted)}
.g-alerts li.bad{color:#ffc46b}
/* clients, photos */
.g-two{display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:18px;align-items:start}
@media(max-width:860px){.g-two{grid-template-columns:1fr}}
.g-invdoc .g-two{grid-template-columns:1fr 1fr}
.g-clist{max-height:780px;overflow:auto}
.g-clist li.sel{background:rgba(245,197,24,.16);border-radius:10px}
.g-linkbtn{all:unset;cursor:pointer;display:block;width:100%;padding:2px 6px}
.g-linkbtn:focus-visible{outline:2px solid var(--g-gold);border-radius:6px}
.g-linkbtn span{display:block;font-size:13px;color:var(--muted)}
.g-photos{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.g-photos figure{margin:0}
.g-photos img,.g-ph-empty{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:12px;border:2px solid var(--border);display:block}
.g-ph-empty{display:grid;place-items:center;background:var(--surface2);color:var(--muted);font-size:13px}
.g-photos figcaption{font-size:13px;color:var(--muted);margin-top:6px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.g-addons{border:1px solid var(--border);border-radius:14px;padding:12px 14px;margin:12px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.g-addons legend{padding:0 6px;color:var(--muted);font-size:13px}
.g-tot{font-size:16px}
/* client hub */
.g-hubpick{min-width:220px;margin:0}
.g-portal{border:3px solid var(--g-gold,#f5c518);border-radius:26px;overflow:hidden;box-shadow:0 0 0 3px rgba(95,174,52,.4),0 20px 60px rgba(0,0,0,.35);max-width:760px;margin:0 auto 18px}
.g-portal-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;background:linear-gradient(135deg,#f5c518,#ffdf5e);border-bottom:3px solid var(--g-green,#5fae34);flex-wrap:wrap}
.g-portal-user{color:#1b1608;font-weight:700;text-align:right}
.g-portal-user small{display:block;font-weight:400;opacity:.8}
.g-portal-body{padding:16px;background:var(--bg)}
.g-hq{border:1px solid var(--border);border-radius:14px;padding:12px;margin:10px 0}
.g-hq-lines{list-style:none;padding:0;margin:8px 0}
.g-hq-lines li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed rgba(127,127,127,.25)}
.g-hinv{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid rgba(127,127,127,.18);flex-wrap:wrap}
.g-hinv>div{flex:1;min-width:160px}
.g-hinv>div span{display:block;font-size:13px;color:var(--muted)}
.g-pay{border:2px solid var(--g-gold,#f5c518);border-radius:14px;padding:12px;margin:8px 0 14px;background:rgba(245,197,24,.08)}
.g-pay-opts{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
.g-interac code{background:var(--surface2);padding:1px 6px;border-radius:6px}
.g-sms{background:var(--surface2);border-radius:14px 14px 14px 4px;padding:9px 12px;margin:8px 0;max-width:560px;border-left:3px solid var(--g-green,#5fae34)}
.g-sms small{color:var(--muted)}
.g-sms p{margin:4px 0 0}
.g-invdoc{border:2px solid var(--g-gold,#f5c518)}
.g-invdoc-h{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;border-bottom:3px solid var(--g-green,#5fae34);padding-bottom:10px;margin-bottom:12px}
.g-mbar{height:8px;background:var(--surface2);border-radius:99px;overflow:hidden;width:80px;display:inline-block;vertical-align:middle;margin-right:6px}
.g-mbar i{display:block;height:100%;background:var(--g-green,#5fae34)}
.g-mbar i.bad{background:#ff6b6b}
.g-num-in{width:80px}
.g-punch.on{border:2px solid var(--g-green,#5fae34)}
.g-stopcard{border:2px solid rgba(245,197,24,.5)}
.demo-co-name .g-mark+small{margin-left:4px}

.g-form .g-wide{grid-column:span 2}
@media(max-width:520px){.g-form .g-wide{grid-column:auto}}
.g-pair input[type=time]{min-width:110px}
body.lawn input[type=file][hidden]{display:none!important}
.g-word{white-space:nowrap}
@media(max-width:760px){body.lawn .topbar .crumb{display:none}body.lawn .mobile-brand .g-mark{width:34px;height:34px}body.lawn .mobile-brand .g-word b{font-size:14px}body.lawn .mobile-brand .g-word i{font-size:9px;letter-spacing:.26em}body.lawn .top-actions .pill{display:none}}
.g-saved strong.g-sm{font-size:19px}
.g-note{font-size:13px;color:var(--g-gold,#f5c518)}
body.lawn .sidebar{overflow-y:auto;overscroll-behavior:contain}
body.lawn .sidebar .nav button{padding-top:9px;padding-bottom:9px}
/* outlined lettering: blue outline looked muddy on yellow, so dark-green outline (Chuck's fallback) */
.g-word b{-webkit-text-stroke:0;text-shadow:-1.5px -1.5px 0 #1f4d1a,1.5px -1.5px 0 #1f4d1a,-1.5px 1.5px 0 #1f4d1a,1.5px 1.5px 0 #1f4d1a,0 1.8px 0 #1f4d1a,0 -1.8px 0 #1f4d1a,1.8px 0 0 #1f4d1a,-1.8px 0 0 #1f4d1a}
.g-word i{-webkit-text-stroke:0;text-shadow:-1px -1px 0 #1f4d1a,1px -1px 0 #1f4d1a,-1px 1px 0 #1f4d1a,1px 1px 0 #1f4d1a}
body.lawn .pagehead h1,body.lawn .g-head h1{-webkit-text-stroke:0;text-shadow:-2px -2px 0 #1f4d1a,2px -2px 0 #1f4d1a,-2px 2px 0 #1f4d1a,2px 2px 0 #1f4d1a,0 2.4px 0 #1f4d1a,0 -2.4px 0 #1f4d1a,2.4px 0 0 #1f4d1a,-2.4px 0 0 #1f4d1a,0 5px 8px rgba(0,0,0,.35);letter-spacing:.01em}
body.lawn .card h2{text-shadow:none}
body.lawn .sidebar{background:linear-gradient(180deg,#2b2212,#18130b)}
body.lawn.light .sidebar{background:linear-gradient(180deg,#fff1c2,#fffaf0)}
body.lawn .main{background:radial-gradient(1200px 500px at 70% -10%,rgba(245,197,24,.12),transparent),radial-gradient(900px 400px at 0% 110%,rgba(95,174,52,.08),transparent),var(--bg)}

body.lawn.light .g-word b{color:#e0a800}
body.lawn.light .g-portal-body{background:var(--surface)}
body.lawn .card{border-color:var(--border)}
body.lawn .card :is(p,.g-wx,ul,ol,div)+h3{margin-top:20px}
/* ===== v21b: detail views, tappable rows, booked-window form ===== */
.g-detail-top{margin:0 0 12px}
.g-backbtn{display:inline-flex;align-items:center;gap:6px}
.g-detail-status{display:flex;align-items:center}
.g-actions{display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}
.g-linkbtn strong{color:var(--g-gold)}
body.lawn.light .g-linkbtn strong{color:#7a5b00}
.g-linkbtn>span{font-size:12px;color:var(--muted)}
.g-chev{font-weight:800;color:var(--g-green);margin-left:2px}
.g-rowlink td:first-child{min-width:150px}
.g-wirow{flex-wrap:wrap;gap:10px}
.g-wirow>div{flex:1;min-width:180px}
.g-wilink{padding:0}
/* timesheet list (phones) */
.g-tslist{display:none;list-style:none;margin:0;padding:0}
.g-tslist li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid rgba(127,127,127,.18)}
.g-tslist li:last-child{border-bottom:0}
.g-tsrow{all:unset;box-sizing:border-box;flex:1;min-width:0;display:flex;align-items:center;gap:10px;cursor:pointer;padding:8px 10px;border-radius:12px;background:var(--surface2);border:1px solid var(--border);min-height:52px}
.g-tsrow:focus-visible{outline:2px solid var(--g-gold)}
.g-tsrow-main{flex:1;min-width:0}
.g-tsrow-main strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g-tsrow-main small{display:block;color:var(--muted);font-size:12px}
.g-tsrow .g-chev{font-size:22px;line-height:1}
.g-tap-hint{display:none}
@media(max-width:700px){.g-time-table{display:none}.g-tslist{display:block}.g-tap-hint{display:block}}
/* day-by-day timesheet */
.g-days{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.g-days li{border:1px solid var(--border);border-radius:14px;padding:12px 14px;background:var(--surface2)}
.g-days li.off{opacity:.65}
.g-day-h{display:flex;justify-content:space-between;align-items:center;gap:10px}
.g-day-hrs{font-weight:800;color:var(--g-gold)}
body.lawn.light .g-day-hrs{color:#2f6b1a}
.g-day-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px 16px;margin:10px 0 6px}
.g-day-dl div{min-width:0}
.g-day-dl dt{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.g-day-dl dd{margin:2px 0 0;font-weight:600;overflow-wrap:anywhere}
.g-day-jobs{margin:4px 0 0;font-size:13px}
.g-day-jobs span{color:var(--muted)}
.g-ts-total{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding:12px 14px;border-radius:14px;border:2px solid rgba(245,197,24,.55);font-size:17px}
.g-warn-txt{color:#ffb347!important}
body.lawn.light .g-warn-txt{color:#b45309!important}
.g-detail-actions{margin-top:16px;display:flex;flex-wrap:wrap;gap:10px}
/* invoice / quote lines */
.g-wi-lines{border-top:1px solid var(--border);margin-top:6px}
.g-wi-line{display:grid;grid-template-columns:1fr auto auto;gap:6px 16px;align-items:center;padding:10px 0;border-bottom:1px solid rgba(127,127,127,.2)}
.g-wi-line>div:first-child{min-width:0}
.g-wi-line span{display:block;font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.g-wi-line.opt{opacity:.7}
.g-wi-calc{color:var(--muted);font-size:14px;white-space:nowrap}
.g-wi-amt{font-weight:700;text-align:right;white-space:nowrap;min-width:84px}
@media(max-width:520px){.g-wi-line{grid-template-columns:1fr auto}.g-wi-line>div:first-child{grid-column:1/-1}.g-wi-calc{text-align:left}}
.g-wi-tot{margin:12px 0 4px auto;max-width:340px}
.g-wi-tot div{display:flex;justify-content:space-between;gap:12px;padding:5px 0}
.g-wi-tot dt{color:var(--muted)}
.g-wi-tot dd{margin:0;font-weight:600}
.g-wi-tot .grand{border-top:2px solid var(--g-gold);margin-top:4px;padding-top:9px;font-size:18px}
.g-wi-tot .grand dt{color:var(--text)}
.g-wi-tot .grand dd{font-weight:800}
/* booked window: two labelled, equal fields; full time values; iOS-safe */
.g-winset{border:0;margin:0;padding:0;min-width:0;grid-column:1/-1}
@media(min-width:900px){.g-winset{grid-column:span 2}}
.g-winset legend{padding:0;margin:0 0 6px;font-weight:600;font-size:14px}
.g-winset legend small{font-weight:400;color:var(--muted)}
.g-win2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.g-win2 .field{margin:0;min-width:0}
.g-win2 label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
@media(max-width:340px){.g-win2{grid-template-columns:1fr}}
body.lawn input[type=time]::-webkit-calendar-picker-indicator{opacity:.75;cursor:pointer}
body.lawn.lawn input[type=time]{color-scheme:dark}
body.lawn.light input[type=time]{color-scheme:light}
#g-add-stop{align-items:end}
#g-add-stop .g-end{align-self:end}
#g-add-stop .g-addbtn{min-height:54px;width:100%}
@media(min-width:900px){#g-add-stop .g-addbtn{width:auto;min-width:140px}}
.g-tsrow-main strong{white-space:normal;overflow:visible;font-size:16px}
.g-tsrow-main small{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:3px}
.g-tsrow-main small .r-chip{font-size:11px;padding:2px 8px}
.g-tslist li>.btn{flex:none}
.g-wilink strong{display:inline}
.g-wilink .g-chev{display:inline}
.g-addform{margin-top:14px}
.g-day-dl .g-geo{grid-column:1/-1}
.g-invdoc h3{margin-top:22px}
@media(max-width:520px){.g-invdoc .g-two{grid-template-columns:1fr;gap:4px}}
body.lawn.light .g-word b{color:#c99700;text-shadow:none;-webkit-text-stroke:0}
body.lawn.light .g-word i{color:#3f7f1f;text-shadow:none;-webkit-text-stroke:0}
.g-days{margin-top:12px}
/* add-booking form: explicit columns so no field is left alone on a row */
.g-addform{grid-template-columns:1fr}
@media(min-width:560px){.g-addform{grid-template-columns:repeat(2,minmax(0,1fr))}.g-addform .g-winset{grid-column:1/-1}}
@media(min-width:1180px){.g-addform{grid-template-columns:repeat(4,minmax(0,1fr))}.g-addform .g-winset{grid-column:span 2}}
.g-addform select{min-width:0;width:100%}
/* sidebar wordmark fits the narrower tablet sidebar */
@media(max-width:1100px){body.lawn .sidebar .g-word b{font-size:14px}body.lawn .sidebar .g-word i{font-size:9px;letter-spacing:.26em}body.lawn .sidebar .g-mark{width:36px;height:36px}}
.g-mlist{display:none;list-style:none;margin:0;padding:0}
.g-mlist li{padding:5px 0}
.g-mamt{white-space:nowrap}
@media(max-width:700px){.g-wide-table{display:none}.g-mlist{display:block}}
/* v21c: list rows with actions — text first, action buttons always on their own line, left-aligned */
body.lawn .g-alerts li,body.lawn .r-list li.g-stack,body.lawn .r-list li.g-wirow{display:flex;flex-direction:column;align-items:flex-start;gap:8px;flex-wrap:nowrap}
body.lawn .g-alerts li{padding:12px 0}
body.lawn .g-alerts li:last-child{border-bottom:0}
body.lawn .r-list li.g-stack>div,body.lawn .r-list li.g-wirow>div{flex:none;width:100%;min-width:0}
body.lawn .g-wirow>.g-actions{justify-content:flex-start}
.g-al-txt{display:block;line-height:1.45}
body.lawn .g-alerts li.bad{color:inherit;font-weight:inherit}
body.lawn .g-alerts li.bad .g-al-txt{color:#ffc46b;font-weight:600}
body.lawn.light .g-alerts li.bad .g-al-txt{color:#8a5a00}
/* ===================== v22 · Client Hub link view, live crew, history, team photos, worker route ===================== */
/* public client-only page (no sidebar) */
body.g-pubbody{background:var(--bg);color:var(--text)}
.g-pubwrap{min-height:100vh;display:flex;flex-direction:column}
.g-pub-h{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:linear-gradient(135deg,#f5c518,#ffdf5e);border-bottom:3px solid var(--g-green,#5fae34)}
.g-pub-h .g-mark{width:40px;height:40px}
.g-pub-r{display:flex;align-items:center;gap:10px}
.g-pub-r .icon-btn{background:rgba(255,255,255,.55);color:#1b1608;border-color:rgba(31,77,26,.35)}
.g-pub-main{width:100%;max-width:760px;margin:0 auto;padding:16px 14px 8px;flex:1}
.g-pub-main>.card,.g-pub-main>#g-live-wrap>.card,.g-portal-body #g-live-wrap>.card{margin:0 0 16px}
.g-pub-main>.card+.card{margin-top:0}
#g-live-wrap>.card+.card{margin-top:0}
.g-pub-f{text-align:center;color:var(--muted);font-size:12px;padding:14px 16px 28px}
.g-pub-f p{margin:2px 0}
.g-portal-body>.card{margin:0 0 16px}
.g-portal-body>.card+.card{margin-top:0}
/* live card */
.g-live{border:2px solid var(--g-gold,#f5c518)}
.g-live.st-omw{box-shadow:0 0 0 3px rgba(95,174,52,.35)}
.g-live-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.g-live-top h2{margin:2px 0 0}
.g-stchip{font-weight:800;font-size:13px;padding:6px 12px;border-radius:999px;background:rgba(245,197,24,.22);color:var(--text);white-space:nowrap}
.g-stchip.st-omw{background:#5fae34;color:#fff}.g-stchip.st-arrived{background:#f5c518;color:#1b1608}.g-stchip.st-done{background:#2f5a17;color:#e6f7d9}
body.lawn.light .g-stchip.st-done{background:#dff3e7;color:#22663f}
.g-steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:14px 0 6px;padding:0}
.g-steps li{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;color:var(--muted);text-align:center}
.g-steps li i{display:block;width:100%;height:6px;border-radius:6px;background:rgba(127,127,127,.25)}
.g-steps li.done i{background:var(--g-green,#5fae34)}.g-steps li.now i{background:var(--g-gold,#f5c518)}
.g-steps li.now span{color:var(--text);font-weight:800}.g-steps li.done span{color:var(--text)}
.g-eta{margin:12px 0}
.g-eta strong{display:block;font:800 30px/1.15 'Poppins','DM Sans',sans-serif;color:var(--text)}
.g-eta span{display:block;color:var(--muted);margin-top:6px;line-height:1.5}
.g-who{display:flex;align-items:center;gap:14px;padding:12px;border-radius:16px;background:var(--surface2);border:1px solid var(--border);margin:12px 0}
.g-who-avs{display:flex;flex:none}
.g-who-avs .g-av+.g-av{margin-left:-14px}
.g-who-txt{min-width:0;display:flex;flex-direction:column;gap:3px}
.g-who-txt .eyebrow{margin:0}
.g-who-txt strong{font-size:17px}
.g-who-txt strong small{font-weight:500;color:var(--muted);font-size:13px}
.g-who-txt span{font-size:13px;color:var(--muted)}
.g-who-txt span b{color:var(--text)}
.g-av{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid var(--surface);background:#ddd;flex:none;display:inline-block;vertical-align:middle}
.g-av.xs{width:20px;height:20px;border-width:1px}.g-av.sm{width:26px;height:26px}.g-av.lg{width:58px;height:58px;border:3px solid var(--g-gold,#f5c518)}.g-av.xl{width:72px;height:72px;border:3px solid var(--g-gold,#f5c518)}.g-av.xxl{width:112px;height:112px;border:4px solid var(--g-gold,#f5c518)}
/* progress strip */
.g-strip{margin:14px 0 6px}
.g-strip-in{position:relative;height:46px;margin:0 16px}
.g-strip-line,.g-strip-fill{position:absolute;left:0;top:21px;height:4px;border-radius:4px;background:rgba(127,127,127,.3);width:100%}
.g-strip-fill{background:var(--g-green,#5fae34)}
.g-node{position:absolute;top:10px;transform:translateX(-50%);min-width:26px;height:26px;padding:0 4px;border-radius:13px;background:var(--surface);border:2px solid rgba(127,127,127,.45);font:700 12px/22px 'DM Sans',sans-serif;text-align:center;color:var(--muted)}
.g-node.done{background:var(--g-green,#5fae34);border-color:var(--g-green,#5fae34);color:#fff}
.g-node.you{background:var(--g-gold,#f5c518);border-color:#1f4d1a;color:#1b1608;font-weight:800;top:6px;height:34px;line-height:30px;padding:0 8px;border-radius:17px}
.g-node.yard{border:0;background:transparent;font-size:16px}
.g-truck{position:absolute;top:-12px;transform:translateX(-50%) scaleX(-1);font-size:22px;transition:left .8s ease;filter:drop-shadow(0 2px 2px rgba(0,0,0,.3))}
.g-strip-cap{font-size:12px;color:var(--muted);margin:2px 0 0;text-align:center}
.g-mapnote{font-size:13px;color:var(--muted);background:var(--surface2);border-radius:12px;padding:10px 12px;margin:10px 0}
.g-livemap .g-map{width:100%;height:auto;border-radius:14px;margin-top:10px}
.g-livepath{stroke:#5fae34;stroke-width:5;stroke-dasharray:10 8}
.g-livetruck text,.g-pin text{text-anchor:middle;font-size:15px}
.g-pulse{fill:rgba(95,174,52,.35);animation:gpulse 1.6s ease-out infinite;transform-origin:center}
@keyframes gpulse{0%{r:16;opacity:.9}100%{r:34;opacity:0}}
.g-live-actions{margin-top:12px}
.g-democtl{margin-top:14px;padding:10px 12px;border:2px dashed rgba(127,127,127,.4);border-radius:14px}
.g-democtl .eyebrow{margin:0 0 2px}.g-democtl .hint{margin:0 0 8px}
/* today + history */
.g-photos-grid{grid-template-columns:repeat(2,1fr)}
.g-photos img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:12px;display:block}
.g-intph img{outline:3px dashed #e5484d;outline-offset:-3px}
.g-cklist{list-style:none;padding:0;margin:6px 0;display:grid;gap:4px;font-size:14px}
.g-cklist li{color:var(--muted)}.g-cklist li.ok{color:var(--text)}
.g-crewnote{background:rgba(95,174,52,.15);border-left:4px solid var(--g-green,#5fae34);padding:10px 12px;border-radius:10px;margin:12px 0 0}
.g-hist-list{display:grid;gap:10px;margin-top:10px}
.g-hv{border:1px solid var(--border);border-radius:14px;background:var(--surface2);overflow:hidden}
.g-hv summary{list-style:none;display:flex;align-items:center;gap:12px;padding:12px;cursor:pointer}
.g-hv summary::-webkit-details-marker{display:none}
.g-hv-date{display:flex;flex-direction:column;min-width:86px}
.g-hv-date small{color:var(--muted);font-size:12px}
.g-hv-main{flex:1;min-width:0;display:flex;flex-direction:column}
.g-hv-main small{color:var(--muted)}
.g-hv-avs{display:flex}.g-hv-avs .g-av+.g-av{margin-left:-8px}
.g-hv .g-chev{transition:transform .2s}.g-hv[open] .g-chev{transform:rotate(90deg)}
.g-hv-body{padding:0 12px 12px}
.g-hv-body>p{margin:0 0 10px}
.g-hv-meta{font-size:13px;color:var(--muted);margin:10px 0 6px!important}
.g-intnote{font-size:13px;margin:10px 0 0!important;padding:8px 10px;border-radius:10px;border:1px dashed rgba(127,127,127,.5)}
.g-upwho{display:flex!important;align-items:center;gap:4px;margin-top:4px}
.g-quick{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}
.g-flash{animation:gflash 1.6s ease}
@keyframes gflash{0%,60%{box-shadow:0 0 0 4px var(--g-gold,#f5c518)}100%{box-shadow:none}}
.g-codeform{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.g-codeform .field{flex:1;min-width:160px;margin:0}
.g-codeform input{font-size:22px;letter-spacing:.3em;text-align:center}
.g-codehint{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}
.g-expired h2{margin-top:4px}
/* text-message demo screen */
.g-textdemo .l-card-h{flex-wrap:wrap;gap:10px}
.g-phone{max-width:360px;margin:14px auto;border:10px solid #1b1608;border-radius:40px;background:#f2f2f7;color:#111;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.35)}
.g-phone-bar{display:flex;justify-content:space-between;padding:8px 18px 4px;font:600 13px system-ui,sans-serif}
.g-phone-h{display:flex;flex-direction:column;align-items:center;padding:6px 10px 10px;border-bottom:1px solid #d1d1d6;background:#f7f7f9}
.g-phone-h .g-mark{width:44px;height:44px}.g-phone-h b{font:600 14px system-ui,sans-serif;margin-top:4px}.g-phone-h small{color:#6b6b70;font-size:12px}
.g-thread{padding:10px 12px 14px;min-height:300px;background:#fff}
.g-tstamp{text-align:center;color:#8e8e93;font:500 11px system-ui,sans-serif;margin:10px 0 6px}
.g-bub{background:#e9e9eb;color:#111;border-radius:18px 18px 18px 6px;padding:10px 13px;max-width:88%;font:15px/1.4 system-ui,sans-serif}
.g-smslink{display:inline;color:#0a64d6;text-decoration:underline;word-break:break-all;font-weight:600}
.g-phone-in{padding:10px 14px 16px;background:#fff;border-top:1px solid #e5e5ea}
.g-phone-in span{display:block;border:1px solid #d1d1d6;border-radius:18px;padding:7px 12px;color:#8e8e93;font:14px system-ui,sans-serif}
.g-mail-h{display:flex;flex-direction:column;gap:2px;padding:10px 14px;background:#fff;border-bottom:1px solid #e5e5ea;font-family:system-ui,sans-serif}
.g-mail-h small{color:#6b6b70}.g-mail-h b{font-size:16px}
.g-mail-b{background:#fff;padding:16px;min-height:300px;font:15px/1.5 system-ui,sans-serif}
.g-mail-b .g-brand{margin-bottom:10px}.g-mail-b .g-word b{color:#d4a800}
.g-mail-b .btn{display:inline-flex;margin:6px 0}
.g-howsteps{margin:10px 0;padding-left:20px;display:grid;gap:6px}
@media(max-width:520px){.g-phone{border-width:6px;border-radius:28px;max-width:100%}}
/* admin hub page */
.g-howopen code{word-break:break-all}
/* assign + photo editor overlay */
.g-ov{position:fixed;inset:0;z-index:210;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.g-ovbox{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:20px;padding:22px;width:min(480px,100%);max-height:92vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.45)}
.g-ovbox h2{margin:0 0 6px}
.g-aslist{list-style:none;padding:0;margin:12px 0;display:grid;gap:8px}
.g-asrow{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--border);border-radius:14px;cursor:pointer;min-height:52px}
.g-asrow input{width:22px;height:22px;flex:none}
.g-asrow span{display:flex;flex-direction:column}.g-asrow small{color:var(--muted)}
.g-asrow:has(input:checked){border-color:var(--g-gold,#f5c518);background:rgba(245,197,24,.12)}
.g-pe-stage{position:relative;width:240px;height:240px;margin:12px auto;border-radius:16px;overflow:hidden;touch-action:none}
.g-pe-stage canvas{display:block;cursor:grab}
.g-pe-ring{position:absolute;inset:0;pointer-events:none;box-shadow:0 0 0 999px rgba(0,0,0,.45);border-radius:50%}
.g-pe-pick{margin-bottom:6px}
.g-assigned{display:flex!important;align-items:center;gap:4px;flex-wrap:wrap;margin-top:6px}
.g-assigned em{font-style:normal;margin:0 6px 0 2px;color:var(--text)}
button.g-visit{width:100%;text-align:left;color:var(--text);border-top:0;border-right:0;border-bottom:0;cursor:pointer;font-family:inherit}
button.g-visit:hover{filter:brightness(1.08)}
.g-vavs{display:flex;margin-top:4px}.g-vavs .g-av+.g-av{margin-left:-5px}
/* team */
.g-team{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.g-team li{border:1px solid var(--border);border-radius:16px;padding:14px;background:var(--surface2);display:flex;flex-direction:column;gap:10px}
.g-tm-top{display:flex;align-items:center;gap:12px}
.g-tm-top>div{display:flex;flex-direction:column;min-width:0}
.g-tm-top span{color:var(--muted);font-size:14px}.g-tm-top small{color:var(--muted);font-size:12px}
.g-tm-top strong{font-size:17px}
.g-team .button-row{margin:0}
.g-vehf{min-width:220px;margin:0}
.g-prof .g-tm-top strong{font-size:22px}
/* worker route */
.g-wr{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px;align-items:start}
.g-wr>.card{margin:0}
.g-wr+.card{margin-top:18px}
.g-addr{font-size:16px;margin:4px 0}.g-addr small{color:var(--muted);font-size:12px}
.g-flow{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:0;margin:12px 0}
.g-flow li{display:flex;align-items:center;gap:6px;padding:8px;border-radius:12px;background:var(--surface2);font-weight:800;font-size:13px;color:var(--muted)}
.g-flow li span{font-weight:600}
.g-flow li.now{background:rgba(245,197,24,.25);color:var(--text);box-shadow:inset 0 0 0 2px var(--g-gold,#f5c518)}
.g-flow li.done{background:rgba(95,174,52,.22);color:var(--text)}
.g-bigbtn,.g-stopcard .btn.big{min-height:58px;font-size:18px;justify-content:center;margin-top:8px;text-decoration:none}
.btn.full{width:100%}
.g-stopcard .btn.big.full+.btn.big.full{margin-top:10px}
.g-bigcheck .check{min-height:40px;display:flex;align-items:center;gap:10px;font-size:16px}
.g-bigcheck input{width:22px;height:22px}
.g-donemsg{font-weight:700;color:var(--text)}
.g-wr-map .g-map{width:100%;height:auto;border-radius:14px}
.g-wr-btns{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.g-wr-btns .btn.big{min-height:54px;justify-content:center;text-decoration:none;flex-wrap:wrap;gap:6px}
.g-wr-btns .btn small{font-weight:500;opacity:.8}
.g-navpref{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.g-navpref span{font-size:13px;color:var(--muted);margin-right:4px}
.g-wstops li{align-items:flex-start}
.g-wstops li.cur{background:linear-gradient(90deg,rgba(245,197,24,.16),transparent);border-radius:10px}
.g-wstops .g-wst{color:var(--text)!important;font-weight:700;margin-top:4px}
.g-wstops .button-row{margin-top:8px}
.g-wstops .button-row .btn{text-decoration:none}
.g-act{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.g-act li{display:flex;gap:12px;font-size:14px;padding-bottom:8px;border-bottom:1px solid rgba(127,127,127,.18)}
.g-act li:last-child{border-bottom:0}
.g-act time{min-width:72px;color:var(--muted);font-variant-numeric:tabular-nums}
.g-int{font-size:12px;width:100%}
@media(max-width:900px){.g-wr{grid-template-columns:1fr}}
@media(max-width:560px){.g-eta strong{font-size:26px}.g-photos-grid{grid-template-columns:1fr 1fr}.g-hv-avs{display:none}.g-who{align-items:flex-start}.g-av.lg{width:50px;height:50px}.g-pub-h .g-word b{font-size:15px}.g-portal-user small{display:none}}
.g-rfilter{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.g-rfilter .g-dot{margin-right:6px}
.g-cprog{display:flex;flex-direction:column;gap:6px;margin:6px 0 8px;font-size:14px}
.g-cprog i{display:block;height:8px;border-radius:8px;background:rgba(127,127,127,.25);overflow:hidden}
.g-cprog i b{display:block;height:100%;border-radius:8px}
.g-crews.g-one{grid-template-columns:1fr}
.g-bosstog{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;border-radius:16px;background:var(--surface2);border:1px solid var(--border);margin:0 0 16px;max-width:560px}
.g-bosstog button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:12px;border:0;background:transparent;color:var(--muted);font:700 15px 'DM Sans',sans-serif;cursor:pointer;text-align:left;min-height:52px}
.g-bosstog button small{font-weight:500;font-size:12px}
.g-bosstog button.on{background:var(--g-gold,#f5c518);color:#1b1608;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.g-crewsel{margin:0}
body.lawn .g-pub-h .g-word b,body.lawn .g-portal-h .g-word b{color:#1f4d1a;-webkit-text-stroke:0}
body.lawn .g-pub-h .g-word i,body.lawn .g-portal-h .g-word i{color:#2f6b1a;-webkit-text-stroke:0}
.g-smslink,body.lawn .g-smslink{color:#0a64d6!important}
.card+.g-portal{margin-top:18px}
.g-morelist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.g-morebtn{width:100%;display:flex;align-items:center;gap:12px;min-height:54px;padding:12px 14px;border-radius:14px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font:600 16px 'DM Sans',sans-serif;cursor:pointer;text-align:left}
.g-morebtn svg{width:22px;height:22px;flex:none}
.g-morebtn span:first-of-type{flex:1}

/* ===== Shared layout fix (all demos): one spacing system, no stray margins inside grids ===== */
/* Root cause: `.card+.card{margin-top:18px}` is meant for stacked cards, but it also fired on the
   2nd/3rd card INSIDE grid rows, pushing them 18px lower than their neighbour. Grids already space
   their children with `gap`, so children of any grid/row container get no top margin. */
:is([class*="grid"],.l-clients,.g-two,.two-col,.tiles,.l-courses,.m-cards,.r-stats,.l-stats,.g-saved,.g-photos)>*,
:is([class*="grid"],.l-clients,.g-two,.two-col,.tiles,.l-courses,.m-cards,.r-stats,.l-stats,.g-saved,.g-photos)>.card+.card{margin-top:0}
/* Stacked blocks: a card followed by a grid (or a grid followed by a card) also gets the standard gap,
   so e.g. the dashboard hero never sits flush on the row below it. */
.card+:is([class*="grid"],.g-two,.l-stats,.l-clients,.tiles),
:is([class*="grid"],.g-two,.l-stats,.l-clients,.tiles)+:is(.card,[class*="grid"],.g-two,.l-stats){margin-top:18px}
/* Small tiles: same 12px minimum gap everywhere */
.tiles{gap:12px}
.g-wx{gap:12px}
/* Sidebar: long menus scroll inside the sidebar so Sign out is always reachable on short laptop screens */
.sidebar{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
/* Wide data tables scroll inside their card on phones instead of poking past the screen edge */
@media(max-width:600px){table.l-table{display:block;max-width:100%;overflow-x:auto}}
@media(max-width:760px){.stat-grid{gap:12px}}
/* Date/time pickers: the picker wrapper marks itself `.empty` when no value is set, which collided with the
   global empty-state class `.empty{padding:45px 20px;text-align:center}`. Result on iPhone: empty time
   boxes ballooned, text truncated to "S…", huge clock icon, boxes at different heights. Scope it back. */
.dt-wrap.empty{padding:0;text-align:left;color:inherit}
.dt-wrap.empty .dt-ic{width:20px;height:20px}


/* Eight Leg only — standalone entry (not used on the shared demo hub) */
.el-entry-logo{background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px 22px;margin:0 0 22px;display:grid;place-items:center;max-width:280px}
.el-entry-logo img{width:100%;max-width:240px;max-height:96px;object-fit:contain}
.el-roles{margin-top:28px}
.el-roles .role{cursor:pointer}
.el-roles .role:hover,.el-roles .role:focus-visible{border-color:var(--accent);background:#b8ed7c0a}
.el-roles .role:hover svg,.el-roles .role:focus-visible svg{color:var(--accent)}
@media(max-width:600px){
  /* Keep Worker / Admin on the first screen of an iPhone-sized viewport */
  .login-visual{padding:16px 20px 12px;min-height:0}
  .login-copy{padding:16px 0 0}
  .login-copy h1{font-size:24px;max-width:none}
  .login-art{width:96px;top:64px;opacity:.45}
  .login-formside{padding:16px 20px 20px}
  .login-formside .login-top{margin-bottom:14px}
  .login-inner{margin:0 auto 8px}
  .login-inner h2{font-size:24px}
  .login-inner .subtitle{margin-top:8px;font-size:13px}
  .el-entry-logo{max-width:200px;padding:12px 14px;margin:0 0 14px}
  .el-entry-logo img{max-height:64px}
  .el-roles{gap:10px;margin:16px 0 12px}
  .el-roles .role{min-height:96px;padding:14px}
  .login-notice{margin-top:8px}
}
