:root{--brand-primary: #1f7a3d;--brand-secondary: #0f3d1f;--bg: #f4f6f5;--surface: #ffffff;--surface-2: #f6f8f7;--line: #e7ebe9;--line-strong: #dbe1de;--ink: #17211d;--ink-2: #46524d;--muted: #6b7772;--tint: color-mix(in srgb, var(--brand-primary) 8%, #fff);--tint-2: color-mix(in srgb, var(--brand-primary) 14%, #fff);--ring: color-mix(in srgb, var(--brand-primary) 22%, transparent);--amber: #b7791f;--amber-bg: #fdf6e3;--amber-line: #f0e3bd;--blue: #2563a8;--blue-bg: #eef4fb;--blue-line: #d5e3f3;--red: #dc2626;--red-hover: #c81e1e;--red-bg: #fef2f2;--red-line: #fbd0d0;--grey-bg: #eef1ef;--grey-line: #e2e7e4;--r-sm: 8px;--r: 12px;--r-lg: 16px;--r-xl: 20px;--shadow-sm: 0 1px 2px rgba(16, 32, 24, .04), 0 1px 3px rgba(16, 32, 24, .05);--shadow: 0 8px 28px rgba(16, 32, 24, .07);--shadow-lg: 0 18px 48px rgba(16, 32, 24, .12);--ease: cubic-bezier(.22, .61, .36, 1);color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font-size:15px;line-height:1.5}a{color:var(--brand-primary);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:1.7rem;font-weight:700;letter-spacing:-.02em;margin:0;color:var(--ink)}h2{font-size:1.05rem;font-weight:650;margin:1.8rem 0 .6rem;color:var(--ink);letter-spacing:-.01em}h3{font-size:.98rem;font-weight:650;margin:0}.app{display:flex;min-height:100dvh}.sidebar{width:244px;flex:none;position:sticky;top:0;align-self:flex-start;height:100dvh;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:1.15rem .85rem .9rem}.sidebar__brand{display:flex;align-items:center;gap:.6rem;padding:.25rem .55rem 1rem;font-weight:750;font-size:1.12rem;letter-spacing:-.02em;color:var(--ink)}.sidebar__brand .logo{height:1.75rem;width:1.75rem;border-radius:7px;object-fit:contain;background:var(--surface-2);border:1px solid var(--line)}.sidebar__brand .mark{height:1.75rem;width:1.75rem;border-radius:8px;flex:none;display:grid;place-items:center;color:#fff;font-weight:800;font-size:.95rem;background:linear-gradient(140deg,var(--brand-primary),var(--brand-secondary))}.sidebar__label{font-size:.66rem;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);font-weight:650;padding:.4rem .6rem .5rem}.sidebar__nav{display:flex;flex-direction:column;gap:.15rem}.sidebar__nav a{display:flex;align-items:center;gap:.7rem;padding:.6rem .65rem;border-radius:10px;color:var(--ink-2);font-weight:550;font-size:.92rem;text-decoration:none;transition:background .15s var(--ease),color .15s var(--ease)}.sidebar__nav a svg{width:18px;height:18px;flex:none;opacity:.85}.sidebar__nav a:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}.sidebar__nav a.active{background:var(--tint);color:var(--brand-primary);font-weight:650}.sidebar__nav a.active svg{opacity:1}.sidebar__nav a .badge{margin-left:auto}.sidebar__foot{margin-top:auto;padding-top:.8rem;border-top:1px solid var(--line);display:grid;gap:.6rem}.sidebar__user{display:flex;align-items:center;gap:.6rem;padding:.1rem .5rem}.sidebar__user .avatar{height:2rem;width:2rem;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--tint-2);color:var(--brand-secondary);font-weight:700;font-size:.8rem}.sidebar__user .who{min-width:0}.sidebar__user .who b{display:block;font-size:.85rem;font-weight:650;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar__user .who span{font-size:.72rem;color:var(--muted);text-transform:capitalize}.sidebar__signout{width:100%;text-align:left;background:none;border:0;color:var(--muted);cursor:pointer;padding:.5rem .55rem;border-radius:8px;font-size:.86rem;font-weight:550}.sidebar__signout:hover{background:var(--surface-2);color:var(--ink);filter:none}main{flex:1;min-width:0;padding:2.1rem clamp(1.1rem,4vw,3rem) 4rem}.page{max-width:74rem;margin:0 auto}.app main,.portal-public main{max-width:none}@media(max-width:820px){.app{flex-direction:column}.sidebar{width:auto;height:auto;position:static;flex-direction:row;align-items:center;flex-wrap:wrap;gap:.3rem;padding:.6rem .8rem;border-right:0;border-bottom:1px solid var(--line)}.sidebar__brand{padding:0 .6rem}.sidebar__label{display:none}.sidebar__nav{flex-direction:row;flex-wrap:wrap;gap:.2rem}.sidebar__nav a{padding:.45rem .6rem}.sidebar__foot{margin:0 0 0 auto;padding:0;border:0;grid-auto-flow:column;align-items:center;gap:.4rem}.sidebar__user .who{display:none}main{padding:1.4rem 1.1rem 3rem}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:0 0 1.4rem;flex-wrap:wrap}.page-head h1{line-height:1.1}.page-sub{color:var(--muted);margin:.35rem 0 0;max-width:60ch;font-size:.95rem}.page-title{min-width:0}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem;margin:0 0 1.5rem}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.05rem 1.15rem;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:.85rem}.stat__icon{height:2.5rem;width:2.5rem;flex:none;border-radius:12px;display:grid;place-items:center;background:var(--tint);color:var(--brand-primary)}.stat__icon svg{width:20px;height:20px}.stat__icon.amber{background:var(--amber-bg);color:var(--amber)}.stat__icon.blue{background:var(--blue-bg);color:var(--blue)}.stat__label{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:650}.stat__value{font-size:1.5rem;font-weight:750;letter-spacing:-.02em;line-height:1.1;margin-top:.15rem}.stat__note{font-size:.76rem;color:var(--muted);margin-top:.1rem}.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;align-items:start}@media(max-width:900px){.dash-grid{grid-template-columns:1fr;gap:1.2rem}}.dash-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:.2rem 0 0}.dash-head h2{margin:0}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.card-head .badge{flex:none}.cards{list-style:none;padding:0;margin:.7rem 0 0;display:grid;gap:.75rem}.cards+a{display:inline-block;margin-top:1.1rem}.page>section>p{margin:0 0 .5rem}.page>section>p.balance{margin:.4rem 0 .8rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.1rem 1.25rem;box-shadow:var(--shadow-sm);transition:box-shadow .18s var(--ease),border-color .18s var(--ease),transform .18s var(--ease)}.cards>.card:hover{box-shadow:var(--shadow);border-color:var(--line-strong)}.card>a strong{color:var(--ink)}.balance{font-size:1.15rem;font-weight:650}.actions{display:flex;gap:.5rem;margin-top:.75rem;flex-wrap:wrap;align-items:center}.muted{color:var(--muted);font-size:.9rem}.notice{background:var(--amber-bg);border:1px solid var(--amber-line);color:#6b4f18;border-radius:var(--r);padding:.7rem 1rem;margin:0 0 1rem;font-size:.92rem}button,.btn{background:var(--brand-primary);color:#fff;border:0;border-radius:10px;padding:.56rem 1.05rem;font-size:.9rem;font-weight:600;cursor:pointer;font-family:inherit;line-height:1.2;letter-spacing:-.005em;box-shadow:0 1px 2px #1020181f,0 4px 12px color-mix(in srgb,var(--brand-primary) 20%,transparent);transition:transform .12s var(--ease),filter .12s var(--ease),box-shadow .15s var(--ease)}button:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 2px 4px #1020181f,0 8px 20px color-mix(in srgb,var(--brand-primary) 26%,transparent)}button:active{transform:translateY(0);filter:brightness(.98)}button:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none;filter:none}button.secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);box-shadow:var(--shadow-sm)}button.secondary:hover{background:var(--surface-2);border-color:#cdd5d1;box-shadow:var(--shadow-sm)}button.danger{background:var(--red);box-shadow:0 1px 2px #1020181f,0 4px 12px color-mix(in srgb,var(--red) 24%,transparent)}button.danger:hover{background:var(--red-hover);filter:none;box-shadow:0 2px 4px #1020181f,0 8px 20px color-mix(in srgb,var(--red) 30%,transparent)}button.linklike{background:none;color:var(--brand-primary);padding:0;box-shadow:none;font-weight:600}button.linklike:hover{text-decoration:underline;transform:none;filter:none;box-shadow:none}button.linklike.light{color:#fff;opacity:.9}input,select,textarea{border:1px solid var(--line-strong);border-radius:10px;padding:.6rem .75rem;font-size:.92rem;font-family:inherit;background:var(--surface);color:var(--ink);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}input::placeholder,textarea::placeholder{color:#a2aca7}input:hover,select:hover,textarea:hover{border-color:#c4ccc8}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-primary);background:var(--surface);box-shadow:0 0 0 3px var(--ring)}label{font-size:.85rem;font-weight:600;color:var(--ink-2)}.row-form{display:flex;gap:.55rem;flex-wrap:wrap;margin:0 0 1.4rem;align-items:center}.row-form>input,.row-form>select{flex:1 1 10rem;min-width:0}.row-form>button{flex:none}.row-form label{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap}.stack-form{display:grid;gap:.8rem;margin:0 0 1.4rem}.address-search{width:100%}input[type=color]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:2.7rem;height:2.3rem;padding:3px;flex:none;cursor:pointer;border-radius:9px;background:var(--surface);border:1px solid var(--line-strong)}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:0;border-radius:6px}input[type=color]::-moz-color-swatch{border:0;border-radius:6px}@media(min-width:760px){.form-props{display:grid;grid-template-columns:1.7fr 1fr .95fr 5.2rem 5.2rem auto;gap:.55rem;align-items:center}.form-job{display:grid;grid-template-columns:1.9fr .9fr 1fr 1.4fr auto;gap:.55rem;align-items:center}.form-props>input,.form-job>input,.form-job>select{flex:none;width:100%;max-width:none}}.field{display:grid;gap:.35rem}.field label,.form-label{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:650}.tabs{display:flex;gap:.3rem;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:0 0 1.4rem}.tabs button,.tab{background:none;color:var(--muted);border:0;border-bottom:2px solid transparent;border-radius:0;padding:.55rem .4rem;margin-bottom:-1px;font-weight:600;box-shadow:none;cursor:pointer}.tabs button:hover,.tab:hover{color:var(--ink);transform:none;filter:none;box-shadow:none;background:none}.tabs button.active,.tab.active{color:var(--brand-primary);border-bottom-color:var(--brand-primary)}.pills{display:flex;gap:.4rem;flex-wrap:wrap}.pill{background:var(--surface);color:var(--ink-2);border:1px solid var(--line-strong);border-radius:999px;padding:.4rem .85rem;font-size:.86rem;font-weight:600;cursor:pointer;box-shadow:none}.pill:hover{background:var(--surface-2);transform:none;filter:none;box-shadow:none}.pill.active{background:var(--brand-primary);color:#fff;border-color:var(--brand-primary)}.badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:650;letter-spacing:.01em;padding:.2rem .6rem;border-radius:999px;text-transform:capitalize;background:var(--grey-bg);color:var(--ink-2);border:1px solid var(--grey-line)}.badge-open,.badge-scheduled,.badge-in_progress,.badge-info{background:var(--blue-bg);color:var(--blue);border-color:var(--blue-line)}.badge-paid,.badge-completed,.badge-active,.badge-ok{background:var(--tint);color:var(--brand-secondary);border-color:color-mix(in srgb,var(--brand-primary) 24%,#fff)}.badge-draft,.badge-quoted,.badge-pending,.badge-invited{background:var(--amber-bg);color:var(--amber);border-color:var(--amber-line)}.badge-void,.badge-cancelled,.badge-no_show,.badge-uncollectible{background:var(--red-bg);color:var(--red);border-color:var(--red-line)}.table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.table th,.table td{text-align:left;padding:.8rem 1rem;border-bottom:1px solid var(--line);font-size:.92rem}.table th{background:var(--surface-2);color:var(--muted);font-weight:650;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{transition:background .12s var(--ease)}.table tbody tr:hover{background:var(--surface-2)}.table .actions{display:flex;gap:.4rem;margin:0}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}@media(max-width:800px){.week{grid-template-columns:1fr 1fr}}.day{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);min-height:9rem;padding:.5rem;box-shadow:var(--shadow-sm);transition:border-color .15s var(--ease),background .15s var(--ease)}.day.drag-over{border-color:var(--brand-primary);background:var(--tint)}.day-head{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:650;margin-bottom:.5rem}.chip{background:var(--brand-primary);color:#fff;border-radius:8px;font-size:.76rem;font-weight:550;padding:.32rem .5rem;margin-bottom:.35rem;cursor:grab;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-shadow:0 1px 2px #1020181f}.chip-time{opacity:.82;margin-right:.35rem}.chip.visit-completed{background:#8a958d;cursor:default;box-shadow:none}.chip.visit-cancelled,.chip.visit-no_show{background:#c2c9c4;text-decoration:line-through;cursor:default;box-shadow:none}.visit-completed strong{color:var(--muted)}.thumbs{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.7rem}.thumbs figure{margin:0;width:6.75rem}.thumbs img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r);border:1px solid var(--line)}.thumbs figcaption{font-size:.72rem;color:var(--muted);margin-top:.25rem}.thumbs .audit-ok{color:var(--brand-primary);font-weight:600}.thumbs.large img{width:11rem;aspect-ratio:4/3}.photo-hint{font-size:.8rem;color:var(--muted);margin:.5rem 0 0}.list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin:0 0 1.1rem;flex-wrap:wrap}.search{position:relative;display:inline-flex;align-items:center}.search svg{position:absolute;left:.7rem;width:16px;height:16px;color:var(--muted);pointer-events:none}.search input{padding-left:2.15rem;min-width:17rem}.search input[type=search]::-webkit-search-cancel-button{cursor:pointer}@media(max-width:560px){.search,.search input{width:100%;min-width:0}}.plan-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem;margin:.9rem 0 .4rem}@media(max-width:780px){.plan-cards{grid-template-columns:1fr}}.plan-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.2rem 1.25rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.55rem}.plan-card.current{border-color:var(--brand-primary);box-shadow:inset 0 0 0 1px var(--brand-primary),var(--shadow-sm)}.plan-name{font-weight:700;font-size:1.05rem;display:flex;align-items:center;gap:.5rem}.plan-price{font-size:1.55rem;font-weight:750;letter-spacing:-.02em;line-height:1}.plan-price span{font-size:.78rem;font-weight:500;color:var(--muted);letter-spacing:0}.plan-card p{flex:1;margin:0}.plan-card button,.plan-card>span:last-child{margin-top:auto}.plan-card>span.muted:last-child{align-self:center;padding:.3rem 0}.brand-scan{display:grid;gap:.5rem;margin:0 0 1.2rem;padding:1rem 1.15rem;background:linear-gradient(135deg,var(--tint),color-mix(in srgb,var(--brand-secondary) 6%,#fff));border:1px solid color-mix(in srgb,var(--brand-primary) 22%,#fff);border-radius:var(--r-lg)}.brand-scan>label{font-weight:650;font-size:.95rem;color:var(--ink);text-transform:none;letter-spacing:0}.brand-scan__row{display:flex;gap:.5rem}.brand-scan__row input{flex:1;min-width:0}.brand-scan__row button{white-space:nowrap}.cam{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000;display:flex;flex-direction:column}.cam-stage{position:relative;flex:1;overflow:hidden;background:#000}.cam-video,.cam-ghost{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.cam-ghost{pointer-events:none}.cam-badge{position:absolute;top:.8rem;left:.8rem;background:#0000008c;color:#fff;font-size:.68rem;letter-spacing:.08em;padding:.3rem .6rem;border-radius:6px}.cam-loading,.cam-error{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:#fff;padding:2rem}.cam-error{background:#000000b8;line-height:1.5}.cam-controls{background:#111;color:#fff;display:grid;gap:.7rem;padding:.8rem 1rem calc(.8rem + env(safe-area-inset-bottom,0px))}.cam-ghostctl{display:flex;align-items:center;gap:1rem;justify-content:center;flex-wrap:wrap}.cam-slider{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:#cbd5cc}.cam-slider input{width:8rem;background:transparent;border:0}.cam-buttons{display:flex;align-items:center;justify-content:center;gap:1rem}.cam-shutter{min-width:9rem;font-size:1rem;padding:.7rem 1.4rem}.portal-public,.report{min-height:100dvh;background:var(--bg)}.topbar{display:flex;align-items:center;gap:.75rem;background:var(--surface);border-bottom:1px solid var(--line);padding:.9rem clamp(1rem,4vw,2rem);position:sticky;top:0;z-index:5}.topbar .brand{font-weight:750;font-size:1.12rem;letter-spacing:-.01em;color:var(--ink)}.topbar .logo{height:1.8rem;width:1.8rem;object-fit:contain;border-radius:7px;border:1px solid var(--line);background:var(--surface)}.topbar .spacer{flex:1}.topbar .muted-light{color:var(--muted);font-size:.82rem;font-weight:550}.portal-public main,.report main{max-width:48rem;margin:0 auto;padding:2rem clamp(1rem,4vw,1.5rem) 4rem}.portal-public h1{font-size:1.7rem}.portal-public h2{margin-top:2rem}.balance{display:inline-flex;align-items:baseline;gap:.5rem;background:var(--amber-bg);border:1px solid var(--amber-line);color:#6b4f18;border-radius:var(--r);padding:.7rem 1.1rem;margin:.9rem 0 0;font-size:1rem;font-weight:600}.balance strong{font-size:1.25rem}.report main{max-width:50rem}.report-hero{margin-bottom:1.6rem}.report-hero .badge{margin-bottom:.7rem}.report h1{color:var(--ink);margin-bottom:.35rem;font-size:2rem}.report-lede{font-size:1.05rem;color:var(--ink-2);margin:.7rem 0 0}.report-groups section{margin-top:1.8rem}.report-groups h2{color:var(--muted);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;margin:0 0 .6rem}.report .thumbs.large{gap:.9rem}.report .thumbs.large img{width:100%;max-width:21rem;aspect-ratio:4 / 3;box-shadow:var(--shadow-sm)}.report-audit{margin-top:1.8rem;background:linear-gradient(135deg,var(--tint),var(--surface));border:1px solid color-mix(in srgb,var(--brand-primary) 22%,#fff)}.report-audit .ledger-head{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.report-audit strong{display:block;color:var(--brand-secondary);margin:.35rem 0 .5rem;font-size:1.05rem}.report-audit ul{list-style:none;padding:0;margin:0;display:grid;gap:.4rem}.report-audit li{display:flex;gap:.55rem;align-items:baseline;color:var(--ink-2)}.report-audit li:before{content:"✓";color:var(--brand-primary);font-weight:700;flex:none}.report-foot{margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid var(--line);color:var(--muted);font-size:.85rem}.empty{text-align:center;padding:2.75rem 1.5rem;background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--r-lg);color:var(--muted)}.empty-ico{width:2.9rem;height:2.9rem;margin:0 auto .8rem;border-radius:14px;display:grid;place-items:center;background:var(--surface-2);color:var(--muted)}.empty-ico svg{width:22px;height:22px}.empty-title{color:var(--ink);font-weight:600;margin:0}.empty-hint{margin:.35rem 0 0;font-size:.9rem;max-width:40ch;margin-inline:auto}.toaster{position:fixed;z-index:1200;right:1rem;bottom:1rem;display:flex;flex-direction:column;gap:.5rem;max-width:min(24rem,calc(100vw - 2rem));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:.6rem;background:var(--surface);border:1px solid var(--line-strong);border-left:3px solid var(--muted);border-radius:var(--r);padding:.7rem .8rem .7rem .75rem;box-shadow:var(--shadow-lg);font-size:.9rem;animation:toast-in .22s var(--ease)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.toast-ico{flex:none;width:1.25rem;height:1.25rem;border-radius:50%;display:grid;place-items:center;font-size:.72rem;font-weight:800;color:#fff;margin-top:1px}.toast-msg{flex:1;color:var(--ink);line-height:1.35}.toast-x{flex:none;background:none;border:0;box-shadow:none;color:var(--muted);font-size:1.1rem;line-height:1;padding:0 .1rem;cursor:pointer}.toast-x:hover{color:var(--ink);transform:none;filter:none;box-shadow:none;background:none}.toast-success{border-left-color:var(--brand-primary)}.toast-success .toast-ico{background:var(--brand-primary)}.toast-error{border-left-color:var(--red)}.toast-error .toast-ico{background:var(--red)}.toast-info{border-left-color:var(--blue)}.toast-info .toast-ico{background:var(--blue)}@media(max-width:560px){.toaster{left:1rem;right:1rem;max-width:none}}.shell{min-height:100dvh;display:grid;place-items:center;padding:2rem;background:var(--bg)}.shell .card{max-width:28rem;width:100%;box-shadow:var(--shadow-lg);border-radius:var(--r-xl);padding:2rem}.login-card{min-width:20rem}.login-card h1{font-size:1.4rem;margin-bottom:.4rem}.login-form{display:grid;gap:.65rem;margin:1.1rem 0 .85rem}.login-form input{padding:.65rem .8rem}.demo-cta{position:fixed;left:50%;bottom:16px;transform:translate(-50%);z-index:60;display:inline-flex;align-items:center;gap:.6rem;max-width:calc(100vw - 24px);padding:.5rem .9rem .5rem .5rem;border-radius:999px;background:var(--surface);color:var(--ink);text-decoration:none;border:1px solid var(--line);box-shadow:var(--shadow-lg);font-size:.9rem;line-height:1.2;transition:transform .16s ease,box-shadow .16s ease}.demo-cta:hover{transform:translate(-50%) translateY(-2px);box-shadow:0 22px 54px #10201829}.demo-cta__tag{flex:none;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.28rem .55rem;border-radius:999px;background:var(--brand-primary);color:#fff}.demo-cta__text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.demo-cta__text b{color:var(--brand-primary);font-weight:700;white-space:nowrap}@media(max-width:560px){.demo-cta{bottom:12px;font-size:.82rem;padding:.45rem .7rem .45rem .45rem}}
