*{box-sizing:border-box}
:root{--bg:#f5f7fa;--card:#fff;--ink:#14181f;--muted:#667085;--line:#e4e7ec;--soft:#f2f4f7;--ok:#12b76a;--warn:#f79009;--err:#f04438;--r:12px;--sh:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08);font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
html,body{margin:0;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.45}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3{margin:0 0 .4em;line-height:1.2}h1{font-size:1.6rem}h2{font-size:1.1rem}h3{font-size:1rem}
.muted{color:var(--muted)}.small,small{font-size:.82rem}.center{text-align:center}.right{text-align:right}.num{text-align:right;white-space:nowrap}.warn{color:var(--err)}
.ic{flex:none;vertical-align:middle}
input,select,textarea{font:inherit;width:100%;padding:.6rem .7rem;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);min-height:42px}
input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--brand) 35%,transparent);border-color:var(--brand)}
input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--brand)}input[type=color]{padding:2px;height:42px}
label{display:block;font-weight:500;font-size:.88rem}label>input,label>select,label>textarea{margin-top:.3rem;font-weight:400}
label.check{display:flex;gap:.5rem;align-items:flex-start;font-weight:400}label.check.sm{align-items:center;font-size:.8rem;white-space:nowrap}
fieldset{border:1px solid var(--line);border-radius:var(--r);padding:.8rem 1rem}legend{font-weight:600;font-size:.88rem;padding:0 .3rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem .95rem;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--ink);font:inherit;font-weight:600;cursor:pointer;min-height:40px;white-space:nowrap;text-decoration:none!important}
.btn:hover{background:var(--soft)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{filter:brightness(.93)}
.btn.danger{color:var(--err);border-color:#fecdca}.btn.danger:hover{background:#fef3f2}.btn.sm{padding:.3rem .65rem;min-height:32px;font-size:.85rem}.btn.lg{padding:.8rem 1.3rem;font-size:1.02rem}.btn.block{width:100%}.btn.disabled{opacity:.6;pointer-events:none}
.icon-btn{background:none;border:0;padding:.4rem;border-radius:8px;cursor:pointer;color:var(--muted);display:inline-flex}.icon-btn:hover{background:var(--soft);color:var(--ink)}
.linkish{background:none;border:0;color:var(--muted);cursor:pointer;font:inherit;text-decoration:underline}
.row{display:flex;align-items:center}.between{justify-content:space-between}.gap{gap:1rem}.gap-sm{gap:.5rem}.wrap-gap{flex-wrap:wrap;gap:.75rem}.grow{flex:1;min-width:0}
.stack{display:flex;flex-direction:column;gap:.85rem}
.grid2,.grid3,.grid4{display:grid;gap:.85rem}@media(min-width:640px){.grid2{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:repeat(3,1fr)}.grid4{grid-template-columns:repeat(4,1fr)}}
.grid2.top{align-items:start}.end{display:flex;align-items:flex-end}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem;box-shadow:var(--sh);margin-bottom:1rem}.stack>.card{margin-bottom:0}
.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem}.card-head h2{margin:0}
.card.chosen{border-color:var(--ok);box-shadow:0 0 0 2px #d1fadf}
.alert{padding:.75rem 1rem;border-radius:10px;margin-bottom:1rem;border:1px solid}.alert.ok{background:#ecfdf3;border-color:#abefc6;color:#05603a}.alert.err{background:#fef3f2;border-color:#fecdca;color:#b42318}.alert ul{margin:0;padding-left:1.1rem}
.badge{display:inline-block;padding:.15rem .55rem;border-radius:99px;font-size:.75rem;font-weight:600;background:var(--soft);color:#344054;white-space:nowrap;text-transform:capitalize}
.b-scheduled,.b-sent,.b-viewed,.b-trial{background:#eff8ff;color:#175cd3}.b-en_route{background:#f4f3ff;color:#5925dc}.b-in_progress,.b-partial{background:#fffaeb;color:#b54708}
.b-completed,.b-approved,.b-paid,.b-converted,.b-active{background:#ecfdf3;color:#067647}.b-cancelled,.b-declined,.b-void,.b-overdue,.b-suspended,.b-past_due{background:#fef3f2;color:#b42318}.b-on_hold{background:#fdf2fa;color:#c11574}
.tag{display:inline-block;padding:.1rem .5rem;border-radius:6px;background:var(--soft);font-size:.75rem;color:#475467}.tag.prio-high{background:#fffaeb;color:#b54708}.tag.prio-emergency{background:#fef3f2;color:#b42318}
.avatar{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#fff;font-weight:700;font-size:.8rem;flex:none}.avatar.xs{width:24px;height:24px;font-size:.62rem}
.avatars{display:flex;gap:.25rem;flex-wrap:wrap;margin-top:.25rem}
.logo-dot{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--brand);color:#fff;font-weight:800;font-size:.8rem}
/* app shell */
.app{display:flex;min-height:100vh}
.sidebar{width:236px;background:#101828;color:#d0d5dd;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;padding:1rem .75rem}
.sidebar .brand{display:flex;align-items:center;gap:.6rem;color:#fff;font-weight:700;padding:.3rem .5rem 1rem;text-decoration:none}.sidebar .brand img{width:32px;height:32px;border-radius:8px;object-fit:cover}
.sidebar nav{flex:1;overflow:auto}.nav{display:flex;align-items:center;gap:.7rem;padding:.55rem .7rem;border-radius:8px;color:#d0d5dd;font-weight:500;text-decoration:none!important}
.nav:hover{background:#1d2939;color:#fff}.nav.active{background:var(--brand);color:#fff}.nav-sep{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#667085;margin:1rem .7rem .3rem}
.side-foot{display:flex;align-items:center;gap:.3rem;border-top:1px solid #1d2939;padding-top:.75rem}.side-foot .icon-btn{color:#98a2b3}
.me{display:flex;gap:.6rem;align-items:center;color:#fff;flex:1;min-width:0;text-decoration:none!important}.me small{display:block;color:#98a2b3}.me b{display:block;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.main{flex:1;margin-left:236px;min-width:0}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:1rem;padding:.8rem 1.5rem;background:rgba(245,247,250,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.page-title{font-size:1.3rem;margin:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-actions{display:flex;gap:.5rem;align-items:center}
.net{font-size:.75rem;padding:.2rem .6rem;border-radius:99px;background:#fef3f2;color:#b42318;font-weight:600}.net.queue{background:#fffaeb;color:#b54708}
.trial-bar{background:#eff8ff;color:#175cd3;text-align:center;font-size:.85rem;padding:.4rem}
.content{padding:1.5rem;max-width:1280px}
.mobile-only,.tabbar{display:none}
.grid-main{display:grid;gap:1rem;align-items:start}@media(min-width:1000px){.grid-main{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr)}}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1rem;box-shadow:var(--sh);color:var(--ink);text-decoration:none!important;display:flex;flex-direction:column}
.stat span{color:var(--muted);font-size:.85rem}.stat b{font-size:1.6rem;margin:.2rem 0}.stat small{color:var(--muted)}
.list{display:flex;flex-direction:column}.list-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .25rem;border-bottom:1px solid var(--soft);color:var(--ink);text-decoration:none!important}
.list-item:last-child{border-bottom:0}a.list-item:hover{background:var(--soft)}.list-item small{display:block}.list-item .time{text-align:center;font-weight:700;min-width:46px}.list-item .time small{color:var(--muted);font-weight:500}
.activity{list-style:none;margin:0;padding:0}.activity li{padding:.4rem 0;border-bottom:1px solid var(--soft);font-size:.87rem}.activity small{display:block}
.bars{display:flex;gap:.6rem;align-items:flex-end;height:180px;padding-top:1.2rem}.bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:.2rem}
.bar i{display:block;width:100%;max-width:48px;height:var(--h);min-height:3px;background:var(--brand);border-radius:6px 6px 0 0}.bar span{font-size:.68rem;color:var(--muted)}.bar small{color:var(--muted)}
.filters{display:flex;gap:.6rem;margin-bottom:1rem;flex-wrap:wrap;align-items:flex-end}.filters select,.filters label{width:auto}
.search{position:relative;flex:1;min-width:220px}.search .ic{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);color:var(--muted)}.search input{padding-left:2.1rem}
.seg{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:10px;padding:3px;margin-bottom:1rem;overflow-x:auto;max-width:100%}
.seg a{padding:.4rem .85rem;border-radius:7px;color:var(--muted);font-weight:600;font-size:.88rem;white-space:nowrap;text-decoration:none!important}.seg a.on{background:var(--brand);color:#fff}
.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;padding:.6rem;border-bottom:1px solid var(--line)}
.table td{padding:.7rem .6rem;border-bottom:1px solid var(--soft);vertical-align:top}.table tr[data-href]{cursor:pointer}.table tr[data-href]:hover td{background:#fafbfc}
.table.compact td{padding:.45rem .3rem}.table tr.total td{font-weight:700;border-top:2px solid var(--line)}.table th.num{text-align:right}tr.inactive{opacity:.5}
.empty{text-align:center;padding:2.5rem 1rem;color:var(--muted)}.empty .ic{color:#98a2b3}.empty h3{color:var(--ink);margin-top:.6rem}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:.9rem}
.job-card{background:#fff;border:1px solid var(--line);border-left:4px solid #d0d5dd;border-radius:var(--r);padding:.9rem;display:flex;flex-direction:column;gap:.3rem;color:var(--ink);box-shadow:var(--sh);text-decoration:none!important}
.job-card:hover{border-color:var(--brand)}.job-card.prio-high{border-left-color:var(--warn)}.job-card.prio-emergency{border-left-color:var(--err)}.job-card .ic{vertical-align:-2px}
.form .form-actions,.form-actions{display:flex;justify-content:flex-end;gap:.6rem}.form.card>*+*{margin-top:.85rem}.narrow-form{max-width:760px}
.inset{background:var(--soft);padding:1rem;border-radius:10px;margin-bottom:1rem}
.note{background:#fffbeb;border:1px solid #fef0c7;padding:.7rem .9rem;border-radius:10px;margin:.7rem 0 0;white-space:normal}
.contact-row{display:flex;gap:.5rem;flex-wrap:wrap;margin:.6rem 0}.portal-link{margin-top:.8rem}input[data-copy]{font-size:.8rem;background:var(--soft);cursor:copy}
.kv-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.kv-grid>div{display:flex;flex-direction:column;gap:.15rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}.chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem .3rem .4rem;border:1px solid var(--line);border-radius:99px;font-weight:500;cursor:pointer;background:#fff}
.chip:has(input:checked){border-color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,#fff)}.chip input{display:none}.chip.static{cursor:default}
.job-hero h2{font-size:1.35rem}.status-steps{display:flex;gap:.4rem;margin-top:1rem;overflow-x:auto}
.step{border:1px solid var(--line);background:#fff;border-radius:99px;padding:.4rem .85rem;font:inherit;font-size:.85rem;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap}.step.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.progress{height:6px;background:var(--soft);border-radius:9px;overflow:hidden;margin:.4rem 0 .8rem}.progress i{display:block;height:100%;background:var(--ok)}
.checklist{list-style:none;padding:0;margin:0 0 .8rem}.checklist li{display:flex;gap:.7rem;align-items:center;padding:.45rem 0;border-bottom:1px solid var(--soft)}.checklist .done{text-decoration:line-through;color:var(--muted)}
.cbox{width:26px;height:26px;border-radius:7px;border:2px solid #d0d5dd;background:#fff;display:grid;place-items:center;color:transparent;cursor:pointer;padding:0}.cbox.on{background:var(--ok);border-color:var(--ok);color:#fff}
.notes{list-style:none;padding:0;margin:.8rem 0 0}.notes li{padding:.6rem 0;border-top:1px solid var(--soft)}.notes p{margin:.2rem 0 0;white-space:pre-wrap}
.big-num{font-size:1.7rem;font-weight:800;margin:.2rem 0}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.5rem}.thumbs a{position:relative;aspect-ratio:1;border-radius:9px;overflow:hidden;background:var(--soft)}
.thumbs img{width:100%;height:100%;object-fit:cover;display:block}.thumb-add{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;border:2px dashed #d0d5dd;color:var(--muted);font-size:.75rem;text-decoration:none!important}
.thumbs.pending:empty{display:none}.thumbs.pending{margin-bottom:1rem}.thumbs.pending div{position:relative;aspect-ratio:1;border-radius:9px;overflow:hidden;opacity:.7}.thumbs.pending img{width:100%;height:100%;object-fit:cover}.thumbs.pending span{position:absolute;inset:auto 0 0;background:rgba(0,0,0,.6);color:#fff;font-size:.65rem;text-align:center}
.ptag{position:absolute;top:6px;left:6px;font-size:.66rem;font-weight:700;padding:.1rem .45rem;border-radius:5px;background:rgba(16,24,40,.75);color:#fff;text-transform:uppercase}.ptag.t-before{background:#175cd3}.ptag.t-after{background:#067647}.ptag.t-issue{background:#b42318}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.8rem;margin-bottom:1rem}.gallery figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;position:relative;box-shadow:var(--sh)}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.gallery figcaption{padding:.5rem .65rem;display:flex;flex-direction:column}.gallery figcaption small{color:var(--muted)}
.pick{position:absolute;top:6px;right:6px;background:#fff;border-radius:6px;padding:4px;line-height:0}.pick input{width:20px;height:20px}
.upload-inline{margin-bottom:1rem}
.photo-stage img{max-width:100%;display:block;border-radius:9px}.annot-wrap{position:relative}.annot-wrap canvas{width:100%;display:block;border-radius:9px;touch-action:none;cursor:crosshair}
.annot-tools{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:.7rem 0}.swatch{width:28px;height:28px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);cursor:pointer}.swatch.on{box-shadow:0 0 0 2px var(--ink)}
#annot-start{margin-top:.7rem}.meta{display:grid;grid-template-columns:auto 1fr;gap:.4rem .9rem;margin:0}.meta dt{color:var(--muted)}.meta dd{margin:0}
.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem}.day{background:#fff;border:1px solid var(--line);border-radius:var(--r);min-height:320px;padding:.5rem;display:flex;flex-direction:column;gap:.4rem}
.day.today{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.day-head{display:flex;justify-content:space-between;align-items:baseline;color:var(--muted);font-size:.8rem;padding:.1rem .2rem}.day-head b{font-size:1.2rem;color:var(--ink)}
.evt{display:flex;flex-direction:column;border-left:3px solid var(--c);background:color-mix(in srgb,var(--c) 10%,#fff);padding:.4rem .5rem;border-radius:7px;font-size:.8rem;color:var(--ink);text-decoration:none!important}.evt b{font-size:.84rem}.day-empty{text-align:center;margin-top:1rem}
.dispatch{display:flex;gap:.8rem;overflow-x:auto;padding-bottom:1rem;align-items:flex-start}.dcol{flex:0 0 270px;background:#eef1f5;border-radius:var(--r);padding:.6rem}
.dcol-head{display:flex;align-items:center;gap:.5rem;padding:.2rem .3rem .6rem}.dcol-head b{flex:1}.dzone{min-height:120px;display:flex;flex-direction:column;gap:.5rem;border-radius:9px;transition:background .15s}.dzone.over{background:color-mix(in srgb,var(--brand) 15%,transparent)}
.dcard{background:#fff;border:1px solid var(--line);border-radius:10px;padding:.6rem;cursor:grab;display:flex;flex-direction:column;gap:.25rem;box-shadow:var(--sh)}.dcard.dragging{opacity:.5}.dcard a{color:var(--ink)}.dassign{min-height:32px;padding:.2rem .4rem;font-size:.8rem}
.date-jump{width:auto;min-height:40px}
.kanban{display:flex;gap:.8rem;overflow-x:auto;align-items:flex-start}.kcol{flex:0 0 260px;background:#eef1f5;border-radius:var(--r);padding:.7rem}.kcol h3 small{color:var(--muted)}
.kcard{display:block;background:#fff;border:1px solid var(--line);border-radius:10px;padding:.65rem;margin-bottom:.5rem;color:var(--ink);text-decoration:none!important}.kcard small{display:block}.kcard p{margin:.3rem 0 0;font-size:.85rem;color:#475467}
.option{display:flex;flex-direction:column;gap:.6rem}.opt-name{font-weight:700;font-size:1.05rem;border-color:transparent;background:var(--soft)}.muted-input{font-size:.88rem}
.item-row{display:grid;grid-template-columns:1fr 70px 100px auto 90px 32px;gap:.4rem;align-items:center;padding:.3rem 0;border-bottom:1px dashed var(--line)}.line-total{font-weight:600}
.opt-total{font-size:1.1rem}.sticky-actions{position:sticky;bottom:0;background:var(--bg);padding:.8rem 0;z-index:5}
.sig-box img,.sig-img{max-width:100%;height:auto;background:#fff;border:1px solid var(--line);border-radius:8px;margin-top:.4rem}
.logo-preview{height:56px;border-radius:8px}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin:1rem 0}.plan{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.4rem;box-shadow:var(--sh);display:flex;flex-direction:column;gap:.5rem}
.plan.featured{border:2px solid var(--brand)}.plan .price{font-size:2.3rem;font-weight:800}.plan .price small{font-size:1rem;color:var(--muted);font-weight:500}.plan ul{list-style:none;padding:0;margin:.4rem 0 1rem;flex:1}.plan li{display:flex;gap:.45rem;padding:.25rem 0}.plan li .ic{color:var(--ok)}
.pill{display:inline-block;background:color-mix(in srgb,var(--brand) 12%,#fff);color:var(--brand);font-weight:700;font-size:.75rem;padding:.25rem .7rem;border-radius:99px;align-self:flex-start}
/* public */
.public{min-height:100vh;display:flex;flex-direction:column}.pub-head{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;max-width:1200px;width:100%;margin:0 auto}
.pub-head .brand,.portal-head .brand{display:flex;align-items:center;gap:.6rem;font-weight:800;color:var(--ink);text-decoration:none!important}.pub-head nav{display:flex;gap:1.1rem;align-items:center}.pub-head nav a:not(.btn){color:var(--ink);font-weight:500}
.pub-main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:1.5rem}.pub-main.narrow{max-width:560px;padding-top:12vh}.pub-main.wide{max-width:1400px}.pub-foot{text-align:center;color:var(--muted);font-size:.8rem;padding:2rem 1rem}
.hero{display:grid;gap:2rem;align-items:center;padding:3rem 0}@media(min-width:900px){.hero{grid-template-columns:1.2fr 1fr}}.hero h1{font-size:clamp(2rem,4.5vw,3.1rem);letter-spacing:-.02em;margin:.6rem 0}.lead{font-size:1.12rem;color:#475467}
.hero-card{background:linear-gradient(135deg,var(--brand),#7c3aed);border-radius:24px;padding:2rem;box-shadow:0 20px 50px rgba(31,111,235,.25)}
.mock-job{background:#fff;border-radius:16px;padding:1.2rem;display:flex;flex-direction:column;gap:.4rem}.mock-job .badge{align-self:flex-start}.mock-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.mock-photos span{aspect-ratio:1;border-radius:10px;background:linear-gradient(135deg,#d0d5dd,#98a2b3);display:grid;place-items:center;color:#fff;font-weight:700;font-size:.8rem}
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;padding-bottom:3rem}.feature{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.4rem}.feature .ic{color:var(--brand)}.feature h3{margin-top:.7rem}.feature p{color:#475467;margin:0}
.center-head{text-align:center;padding:2rem 0 1rem}
.auth-card{max-width:440px;margin:4vh auto}.auth-card h1{font-size:1.5rem}
.card.center{text-align:center}.big{font-size:3rem;color:var(--brand)}
/* portal */
.portal-head{background:#fff;border-bottom:1px solid var(--line)}.wrap{max-width:960px;margin:0 auto;padding:0 1.25rem}.portal-head .wrap{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1.25rem;gap:1rem;flex-wrap:wrap}
.portal-head img{height:36px;border-radius:8px}.portal-main{padding:1.5rem 1.25rem;flex:1;width:100%}.portal-hello{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}
.options-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin:1rem 0}
.opt-card{position:relative;background:#fff;border:2px solid var(--line);border-radius:16px;padding:1.2rem;cursor:pointer;display:flex;flex-direction:column;gap:.5rem;font-weight:400}
.opt-card:has(input:checked),.opt-card.chosen{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 20%,transparent)}.opt-card input{position:absolute;top:1.3rem;left:1.2rem}.opt-card h3{margin:0 0 0 1.6rem}
.price-lg{font-size:1.3rem}.plain{list-style:none;padding:0;margin:0}.plain li{display:flex;justify-content:space-between;gap:1rem;padding:.3rem 0;border-bottom:1px solid var(--soft);font-size:.92rem}
.sig-pad{width:100%;max-width:600px;height:180px;border:2px dashed #d0d5dd;border-radius:10px;background:#fff;touch-action:none;display:block;margin:.3rem 0}
.terms{background:var(--soft);padding:.8rem;border-radius:9px;font-size:.85rem;max-height:160px;overflow:auto}
/* camera */
.camera-body{margin:0;background:#000;color:#fff;overflow:hidden;height:100vh;height:100dvh}
.cam{position:fixed;inset:0}.cam video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#111}
.cam-top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:.6rem;padding:calc(env(safe-area-inset-top) + .7rem) .8rem .7rem;background:linear-gradient(rgba(0,0,0,.65),transparent)}
.cam-title{flex:1;display:flex;flex-direction:column;text-align:center}.cam-title small{opacity:.8}
.cam-btn{width:46px;height:46px;border-radius:50%;background:rgba(0,0,0,.45);color:#fff;border:0;display:grid;place-items:center;cursor:pointer}
.cam-bottom{position:absolute;left:0;right:0;bottom:0;padding:1rem 1rem calc(env(safe-area-inset-bottom) + 1rem);background:linear-gradient(transparent,rgba(0,0,0,.75));display:flex;flex-direction:column;gap:.8rem;align-items:center}
.cam-tags{display:flex;gap:.4rem}.cam-tags button{background:rgba(255,255,255,.18);color:#fff;border:0;border-radius:99px;padding:.4rem .85rem;font-weight:600;font-size:.82rem;cursor:pointer}.cam-tags button.on{background:#fff;color:#000}
.cam-row{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:420px}
.shutter{width:76px;height:76px;border-radius:50%;border:5px solid #fff;background:rgba(255,255,255,.3);cursor:pointer;transition:transform .08s}.shutter:active{transform:scale(.9);background:#fff}
.cam-last{width:52px;height:52px;border-radius:12px;background:rgba(255,255,255,.2) center/cover;display:grid;place-items:center;color:#fff;font-weight:700;border:2px solid #fff;text-decoration:none!important}
.cam-note{opacity:.75;text-align:center;font-size:.75rem}.cam-msg{position:absolute;top:40%;left:1rem;right:1rem;text-align:center;background:rgba(0,0,0,.7);padding:1rem;border-radius:12px}
.cam-flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;transition:opacity .25s}.cam-flash.on{opacity:.8;transition:none}
/* mobile */
@media(max-width:860px){
 .sidebar{display:none}.main{margin-left:0}.mobile-only{display:flex}.topbar{padding:.6rem 1rem;flex-wrap:wrap}.topbar .brand{display:flex;align-items:center;gap:.5rem;font-weight:700;color:var(--ink);font-size:.9rem;width:100%}
 .page-title{font-size:1.15rem}.top-actions .btn span{display:none}.content{padding:1rem 1rem 6rem}
 .tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);z-index:30;padding-bottom:env(safe-area-inset-bottom)}
 .tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:.5rem 0 .45rem;color:var(--muted);font-size:.68rem;font-weight:600;text-decoration:none!important}.tabbar a.active{color:var(--brand)}
 .sheet{position:fixed;inset:0;background:rgba(16,24,40,.45);z-index:40;display:flex;align-items:flex-end}.sheet[hidden]{display:none}
 .sheet-inner{background:#fff;width:100%;border-radius:18px 18px 0 0;padding:1rem 1rem calc(env(safe-area-inset-bottom) + 1rem);display:grid;grid-template-columns:1fr 1fr;gap:.3rem}
 .sheet-inner a,.sheet-inner button{display:flex;gap:.6rem;align-items:center;padding:.8rem;border-radius:10px;color:var(--ink);font-weight:600;text-decoration:none!important;font-size:.95rem}.sheet-inner .linkish{text-decoration:none;color:var(--ink)}
 .table thead{display:none}.table tr{display:block;border-bottom:1px solid var(--line);padding:.5rem 0}.table td{display:flex;justify-content:space-between;gap:1rem;border:0;padding:.25rem .3rem;text-align:right}
 .table td::before{content:attr(data-label);color:var(--muted);font-size:.8rem;text-align:left}.table td:not([data-label])::before{content:none}
 .table.compact tr{display:table-row}.table.compact td{display:table-cell}.table.compact td::before{content:none}
 .week{grid-template-columns:1fr}.day{min-height:0}.day-empty{display:none}
 .item-row{grid-template-columns:1fr 64px 86px;}.item-row .line-total{grid-column:2/3}.item-row label.check{grid-column:1}
 .pub-head nav a:not(.btn){display:none}
}
@media print{.no-print,.portal-head,.pub-foot,.sidebar,.topbar,.tabbar{display:none!important}body{background:#fff}.card{box-shadow:none;border:0}}
@media (min-width:861px){body.app{background:linear-gradient(90deg,#101828 236px,var(--bg,#f5f7fa) 236px)}}
/* v2 marketing visuals */
picture{display:block}picture img{display:block;width:100%;height:auto}
.logo-mark{width:32px;height:32px;border-radius:8px}.wordmark{font-weight:800;letter-spacing:-.01em}.wordmark b{color:var(--brand);margin-left:.18em}
.hero-media{position:relative}.hero-photo img{border-radius:24px;box-shadow:0 24px 60px rgba(16,24,40,.18);aspect-ratio:4/3;object-fit:cover}
.hero-media .mock-job{position:absolute;left:-1rem;bottom:-1.2rem;max-width:300px;box-shadow:0 12px 32px rgba(16,24,40,.18);border:1px solid var(--line)}.hero-media .mock-job p{margin:0}
@media(max-width:899px){.hero-media .mock-job{position:static;margin-top:-2rem;margin-left:1rem;margin-right:1rem}}
.product-shots{display:flex;align-items:flex-end;justify-content:center;gap:2rem;padding:3rem 1rem 2rem;margin:1rem 0 2rem;background:linear-gradient(180deg,color-mix(in srgb,var(--brand) 10%,#fff),transparent);border-radius:28px}
.device{background:#14181f;box-shadow:0 24px 60px rgba(16,24,40,.22)}.device img{border-radius:0}
.device.laptop{flex:0 1 760px;border-radius:14px;padding:0 10px 10px}.device-bar{display:flex;gap:6px;padding:9px 4px}.device-bar i{width:9px;height:9px;border-radius:50%;background:#475467}.device.laptop img{border-radius:4px}
.device.phone{flex:0 0 200px;border-radius:30px;padding:9px}.device.phone img{border-radius:22px}
@media(max-width:640px){.product-shots{gap:1rem;padding:1.5rem .5rem}.device.phone{flex-basis:110px;border-radius:20px;padding:5px}.device.phone img{border-radius:15px}.device.laptop{padding:0 5px 5px}}
.showcase{padding:1rem 0 3rem}.showcase .center-head{font-size:clamp(1.4rem,3vw,2rem);text-align:center;margin-bottom:2rem}
.feat-row{display:grid;gap:1.5rem;align-items:center;margin-bottom:3rem}@media(min-width:800px){.feat-row{grid-template-columns:1fr 1fr;gap:3rem}.feat-row.flip .feat-img{order:2}}
.feat-img img{border-radius:20px;box-shadow:0 14px 40px rgba(16,24,40,.14);aspect-ratio:4/3;object-fit:cover}
.feat-copy h3{font-size:1.5rem;margin:.6rem 0 .4rem}.feat-copy p{font-size:1.05rem;color:var(--muted);margin:0}
.feat-ic{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:12px;background:color-mix(in srgb,var(--brand) 12%,#fff);color:var(--brand)}
.cta-band{text-align:center;background:var(--brand);color:#fff;border-radius:24px;padding:2.5rem 1rem;margin-bottom:2rem}.cta-band h2{font-size:1.5rem;margin-bottom:1rem}
.pricing-art{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:0 0 1.5rem}.pricing-art img{border-radius:16px;aspect-ratio:16/9;object-fit:cover}
@media(max-width:640px){.pricing-art{grid-template-columns:1fr 1fr}.pricing-art picture:last-child{display:none}}
.auth-split{display:grid;gap:2rem;align-items:center;max-width:1000px;margin:2vh auto}@media(min-width:900px){.auth-split{grid-template-columns:1fr 1fr}}.auth-split .auth-card{margin:0 auto;width:100%}
.auth-art img{border-radius:24px;aspect-ratio:4/3;object-fit:cover;box-shadow:0 20px 50px rgba(16,24,40,.16)}@media(max-width:899px){.auth-art{display:none}}
.empty .ic{box-sizing:content-box;padding:16px;border-radius:50%;background:color-mix(in srgb,var(--brand) 10%,#fff);color:var(--brand)}
/* integrations */
.int-cat{font-size:1.05rem;margin:1.4rem 0 .6rem}.int-card h3{margin:0;font-size:1rem}.int-card.disabled{opacity:.72}.int-card details>summary{list-style:none;display:inline-block}.int-card details>summary::-webkit-details-marker{display:none}
.int-form{margin-top:.7rem}.int-meta{display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;font-size:.85rem;margin:.4rem 0 .8rem}.int-meta dt{color:var(--muted,#667085)}.int-meta dd{margin:0;overflow-wrap:anywhere}
.err-text{color:#b42318}.tiny{font-size:.75rem;margin:.6rem 0 0}.b-soon{background:#f2f4f7;color:#667085}.mono{font-family:ui-monospace,Menlo,monospace;width:100%;margin-top:.4rem}.break{overflow-wrap:anywhere}.nowrap{white-space:nowrap}
label.inline{display:inline-flex;gap:.35rem;align-items:center;font-weight:500}.btn.sm{padding:.35rem .7rem;font-size:.85rem}.btn.danger{color:#b42318}
.lead-page{max-width:560px;margin:0 auto;padding:1.2rem}.lead-page.embed{padding:.4rem}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
/* ---- v5: accessibility, platform banners, CMS sections, blog ---- */
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:#111;color:#fff;padding:.6rem 1rem;border-radius:0 0 8px 0}.skip:focus{left:0}
:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 60%,#000);outline-offset:2px}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.preview-bar{background:#111827;color:#fff;padding:.5rem 1rem;font-size:.85rem;text-align:center}.preview-bar a{color:#93c5fd}
.site-banner{padding:.55rem 1rem;text-align:center;font-size:.9rem;font-weight:500}.site-banner a{font-weight:700;text-decoration:underline}
.sb-info{background:#eff8ff;color:#175cd3}.sb-success{background:#ecfdf3;color:#067647}.sb-warning{background:#fffaeb;color:#93370d}
.imp-bar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:center;background:#7a2e0e;color:#fff;padding:.5rem 1rem;font-size:.88rem;position:sticky;top:0;z-index:60}.imp-bar .btn{background:#fff;color:#7a2e0e;border:0}
.announce{display:flex;gap:.8rem;align-items:flex-start;justify-content:space-between;margin:.8rem 1rem 0;padding:.7rem 1rem;border-radius:10px;border:1px solid;font-size:.9rem}
.announce.an-info{background:#eff8ff;border-color:#b2ddff;color:#175cd3}.announce.an-success{background:#ecfdf3;border-color:#abefc6;color:#067647}.announce.an-warning{background:#fffaeb;border-color:#fedf89;color:#93370d}
.quote-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.quote{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.2rem;box-shadow:var(--sh)}.quote blockquote{margin:0 0 .8rem;font-size:1.02rem}.quote figcaption{color:var(--muted);font-size:.88rem}
.faq{max-width:760px;margin:0 auto}.faq details{border-bottom:1px solid var(--line);padding:.9rem 0}.faq summary{font-weight:600;cursor:pointer}.faq details p{margin:.5rem 0 0;color:#344054}
.prose{max-width:720px;margin:0 auto;font-size:1.03rem;line-height:1.65}.prose h2{font-size:1.35rem;margin-top:1.6em}.prose img{max-width:100%;height:auto;border-radius:var(--r)}.prose ul{padding-left:1.2rem}
.post-list{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.post-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);color:var(--ink)}.post-card img{width:100%;height:auto;display:block}.post-card>div{padding:1rem}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
