:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#1b2530;background:#fff;font-synthesis:none;text-rendering:optimizeLegibility;font-kerning:normal;--primary: oklch(.64 .15 250);--primary-strong: oklch(.57 .17 250);--primary-soft: oklch(.95 .025 250);--primary-faint: oklch(.98 .01 250);--success: oklch(.66 .14 164);--success-soft: oklch(.95 .04 164);--warning: oklch(.74 .15 78);--warning-soft: oklch(.96 .04 78);--danger: oklch(.58 .18 25);--danger-soft: oklch(.96 .035 25);--bg: oklch(1 0 0);--surface: oklch(.975 .006 250);--surface-strong: oklch(.95 .01 250);--ink: oklch(.26 .025 250);--muted: oklch(.51 .02 250);--line: oklch(.91 .012 250);--line-strong: oklch(.84 .018 250);--shadow-panel: 0 4px 8px oklch(.28 .03 250 / .1);--radius-sm: 8px;--radius-md: 12px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--z-sticky: 20;--z-drawer: 40;--z-dialog: 60;--z-toast: 80}*{box-sizing:border-box}html{color-scheme:light}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg)}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid oklch(.72 .12 250 / .75);outline-offset:2px}input,select,textarea{width:100%;color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius-sm);min-height:44px;padding:10px 12px;transition:border-color .18s ease-out,box-shadow .18s ease-out}input:hover,select:hover,textarea:hover{border-color:#92a7bd}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}textarea{min-height:96px;resize:vertical;line-height:1.55}::placeholder{color:#565f68;opacity:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:8px;left:8px;z-index:100;transform:translateY(-160%);color:#fff;background:var(--primary-strong);padding:10px 14px;border-radius:var(--radius-sm)}.skip-link:focus{transform:translateY(0)}.auth-shell{min-height:100dvh;display:grid;grid-template-columns:minmax(360px,1.1fr) minmax(380px,.9fr);grid-template-rows:minmax(0,1fr) auto;gap:20px;align-items:stretch;max-width:1080px;margin:0 auto;padding:32px;background:var(--surface)}.auth-shell>.auth-intro,.auth-shell>.auth-card{grid-row:1}.auth-intro,.auth-card{border-radius:18px}.auth-intro{min-height:640px;display:flex;flex-direction:column;justify-content:space-between;padding:42px;color:#fff;background:var(--primary);box-shadow:var(--shadow-panel)}.auth-brand,.auth-mobile-brand{display:flex;align-items:center;gap:10px}.auth-brand .brand-mark{background:#ffffff2e}.auth-brand strong,.auth-mobile-brand strong{font-size:1.05rem}.auth-eyebrow{display:inline-block;margin-bottom:14px;font-size:.8125rem;font-weight:700;letter-spacing:.08em;opacity:.86}.auth-intro h1{max-width:12ch;margin:0;font-size:clamp(2rem,4vw,3.2rem);line-height:1.12;letter-spacing:-.045em}.auth-intro p{max-width:42ch;margin:20px 0 0;font-size:.9375rem;line-height:1.75;opacity:.86}.auth-intro ul{display:grid;gap:12px;margin:0;padding:0;list-style:none}.auth-intro li{display:flex;align-items:center;gap:9px;font-size:.875rem}.auth-intro li svg{flex:0 0 auto}.auth-card{align-self:center;padding:38px;background:var(--bg);border:1px solid var(--line);box-shadow:0 8px 24px #1d2a3714}.auth-loading{grid-column:1 / -1;justify-self:center;display:flex;align-items:center;gap:12px;min-width:320px}.auth-mobile-brand{display:none;margin-bottom:28px}.auth-heading{display:flex;align-items:flex-start;gap:12px;margin-bottom:24px}.auth-icon{width:42px;height:42px;flex:0 0 auto;display:grid;place-items:center;color:var(--primary-strong);background:var(--primary-soft);border-radius:12px}.auth-heading h2{margin:0;font-size:1.5rem;letter-spacing:-.025em}.auth-heading p{margin:6px 0 0;color:var(--muted);font-size:.8125rem;line-height:1.55}.auth-form{display:grid;gap:16px}.auth-form label{display:grid;gap:7px}.auth-form label>span{font-size:.8125rem;font-weight:650}.auth-submit{width:100%;margin-top:4px}.auth-help{margin:16px 0 0;color:var(--muted);font-size:.75rem;line-height:1.55;text-align:center}.filing-footer{grid-column:1 / -1;grid-row:2;align-self:end;text-align:center;font-size:.75rem;line-height:1.5}.filing-footer a{color:var(--muted);text-decoration:none}.filing-footer a:hover{color:var(--primary-strong);text-decoration:underline;text-underline-offset:3px}.app-shell{min-height:100vh;display:grid;grid-template-columns:176px minmax(0,1fr);grid-template-rows:64px minmax(0,1fr);grid-template-areas:"side top" "side main"}.app-shell.has-detail{grid-template-columns:176px minmax(620px,1fr) 360px;grid-template-areas:"side top top" "side main detail"}.side-nav{grid-area:side;position:sticky;top:0;height:100vh;padding:18px 12px;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:var(--space-xl);z-index:var(--z-sticky)}.brand-lockup{display:flex;align-items:center;gap:10px;min-height:34px;padding:0 6px;white-space:nowrap}.brand-lockup strong{font-size:1.05rem;letter-spacing:-.015em}.brand-mark{width:30px;height:30px;display:grid;place-items:center;flex:0 0 auto;background:var(--primary);border-radius:9px 4px 9px 9px}.brand-mark span{width:12px;height:12px;background:#fff;border-radius:4px 2px 4px 4px;transform:rotate(45deg)}.nav-list{display:grid;gap:6px}.nav-current,.nav-item{border:0;border-radius:var(--radius-sm);min-height:44px;padding:0 12px;display:flex;align-items:center;gap:10px;color:var(--primary-strong);background:var(--primary-soft);font-weight:650;text-align:left}.nav-item{color:var(--muted);background:transparent}.nav-item:hover{color:var(--ink);background:var(--surface-strong)}.scope-note{margin-top:auto;display:flex;align-items:flex-start;gap:9px;padding:12px 8px 4px;border-top:1px solid var(--line);color:var(--muted)}.scope-note svg{flex:0 0 auto;margin-top:2px}.scope-note div{display:grid;gap:3px}.scope-note strong{font-size:.8125rem;color:var(--ink)}.scope-note span{font-size:.75rem;line-height:1.5}.top-bar{grid-area:top;position:sticky;top:0;z-index:var(--z-sticky);min-width:0;background:#fffffff5;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;gap:var(--space-md);padding:0 var(--space-xl)}.icon-button{width:44px;height:44px;padding:0;display:inline-grid;place-items:center;color:var(--muted);background:transparent;border:0;border-radius:var(--radius-sm)}.icon-button:hover{color:var(--ink);background:var(--surface)}.mobile-menu{display:none}.profile-chip{display:flex;align-items:center;gap:9px;min-width:120px;padding:4px 6px;color:inherit;background:transparent;border:0;border-radius:var(--radius-sm);text-align:left}.profile-chip:hover{background:var(--surface)}.profile-chip>span{width:34px;height:34px;display:grid;place-items:center;color:var(--primary-strong);background:var(--primary-soft);border-radius:50%;font-weight:700}.profile-chip div{display:grid;gap:1px}.profile-chip strong{font-size:.875rem}.profile-chip small{color:var(--muted);font-size:.75rem}.settings-page,.members-page,.channels-page,.attendance-page,.deals-page{max-width:1180px;margin:0 auto}.settings-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg)}.profile-card{max-width:720px}.settings-card-header{display:flex;align-items:center;gap:14px;padding:22px;border-bottom:1px solid var(--line)}.settings-card-header h2{margin:0 0 4px;font-size:1.125rem}.settings-card-header p{margin:0;color:var(--muted);font-size:.8125rem}.profile-avatar,.member-person>span{width:46px;height:46px;flex:0 0 auto;display:grid;place-items:center;color:var(--primary-strong);background:var(--primary-soft);border-radius:50%;font-weight:700}.settings-form{display:grid;gap:18px;padding:22px}.settings-form>label{display:grid;gap:7px}.settings-form>label>span{font-size:.8125rem;font-weight:650}.read-only-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.read-only-grid>div{display:grid;gap:5px;padding:13px 14px;background:var(--surface);border-radius:var(--radius-sm)}.read-only-grid span{color:var(--muted);font-size:.75rem}.read-only-grid strong{font-size:.875rem}.settings-actions{display:flex;justify-content:flex-end;padding-top:4px}.account-security{max-width:720px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:16px;padding:18px 22px}.account-security h2{margin:0 0 5px;font-size:1rem}.account-security p{margin:0;color:var(--muted);font-size:.8125rem;line-height:1.5}.account-security .button{flex:0 0 auto}.member-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}.member-toolbar .search-field{width:min(420px,100%)}.member-toolbar .search-field input{padding-left:38px}.member-toolbar .search-field svg{bottom:13px}.member-toolbar>span{color:var(--muted);font-size:.8125rem;white-space:nowrap}.password-notice{display:flex;align-items:center;gap:8px;margin:-4px 0 16px;padding:10px 12px;color:var(--muted);background:var(--surface);border-radius:var(--radius-sm);font-size:.8125rem;line-height:1.5}.password-notice svg{flex:0 0 auto;color:var(--primary-strong)}.member-table table{min-width:960px}.member-person{display:flex;align-items:center;gap:10px}.member-person>span{width:34px;height:34px;font-size:.8125rem}.member-person div{display:grid;gap:3px}.member-person small{color:var(--muted);font-size:.7rem}.status-pill.inactive{color:var(--muted);background:var(--surface-strong)}.row-actions{display:flex;align-items:center;gap:6px}.member-dialog{width:min(600px,calc(100vw - 32px))}.channel-summary{display:flex;flex-wrap:wrap;gap:8px 20px;margin:-4px 0 16px;color:var(--muted);font-size:.8125rem}.channel-summary span:not(:last-child):after{content:"";display:inline-block;width:1px;height:12px;margin-left:20px;vertical-align:-2px;background:var(--line-strong)}.channel-table table{min-width:720px}.channel-name{display:flex;align-items:center;gap:9px}.channel-name svg{color:var(--primary-strong)}.channel-dialog{width:min(520px,calc(100vw - 32px))}.password-input{position:relative;display:block}.password-input input{padding-right:48px}.password-input button{position:absolute;top:4px;right:4px;width:36px;height:36px;display:grid;place-items:center;color:var(--muted);background:transparent;border:0;border-radius:8px}.password-input button:hover{color:var(--ink);background:var(--surface)}.credential-dialog{width:min(480px,calc(100vw - 32px))}.credential-content{padding:22px}.credential-list{display:grid;gap:10px;margin:0}.credential-list>div{display:grid;grid-template-columns:104px 1fr;gap:14px;align-items:center;padding:13px 14px;background:var(--surface);border-radius:var(--radius-sm)}.credential-list dt{color:var(--muted);font-size:.8125rem}.credential-list dd{margin:0;color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.main-content{grid-area:main;min-width:0;padding:var(--space-xl);background:var(--bg);overflow:hidden}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-xl);margin-bottom:20px}.page-heading h1{margin:0;font-size:1.75rem;line-height:1.15;letter-spacing:-.025em}.page-heading p{margin:8px 0 0;color:var(--muted);font-size:.875rem}.button{min-height:44px;border-radius:var(--radius-sm);padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;font-weight:650;transition:background-color .18s ease-out,color .18s ease-out,transform .12s ease-out}.button:active{transform:translateY(1px)}.button-primary{color:#fff;background:var(--primary)}.button-primary:hover{background:var(--primary-strong)}.button-secondary{color:var(--ink);background:var(--bg);border:1px solid var(--line-strong)}.button-secondary:hover{background:var(--surface)}.button-quiet{color:var(--muted);background:transparent}.button-quiet:hover{color:var(--ink);background:var(--surface)}.summary-tabs{display:flex;gap:24px;min-height:44px;border-bottom:1px solid var(--line);overflow-x:auto}.summary-tabs button{position:relative;min-height:44px;padding:0 8px 12px;border:0;color:var(--muted);background:transparent;white-space:nowrap;font-weight:600}.summary-tabs button span{margin-left:6px;color:var(--muted);font-variant-numeric:tabular-nums}.summary-tabs button.is-active{color:var(--primary-strong)}.summary-tabs button.is-active:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;background:var(--primary);border-radius:2px 2px 0 0}.filter-bar{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(3,minmax(128px,.8fr)) auto;gap:var(--space-md);align-items:end;padding:var(--space-lg) 0}.filter-bar label{display:grid;gap:6px;min-width:0}.filter-bar label>span{color:var(--muted);font-size:.75rem;font-weight:600}.search-field{position:relative;align-self:end}.search-field svg{position:absolute;left:12px;bottom:13px;color:var(--muted);pointer-events:none}.search-field input{padding-left:38px}.date-filter{grid-column:1;grid-row:2;width:min(260px,100%)}.date-filter input{color-scheme:light;cursor:pointer}.reset-filter{grid-column:-2;grid-row:2;align-self:end;justify-self:end}.table-section{border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}.table-scroll{overflow:auto}table{width:100%;min-width:1280px;border-collapse:collapse;font-size:.875rem}thead{background:var(--surface)}th{height:44px;padding:0 12px;color:#46515d;text-align:left;font-size:.75rem;font-weight:700;white-space:nowrap;border-bottom:1px solid var(--line)}td{height:68px;padding:9px 12px;border-bottom:1px solid var(--line);color:#2e3945;vertical-align:middle}tbody tr{transition:background-color .16s ease-out}tbody tr:hover{background:var(--primary-faint)}tbody tr.is-active{background:var(--primary-soft)}tbody tr:last-child td{border-bottom:0}.row-customer{display:grid;gap:3px;min-width:116px;padding:0;color:inherit;background:transparent;border:0;text-align:left}.row-customer strong{color:var(--ink);font-weight:650}.row-customer span{color:var(--muted);font-size:.75rem;max-width:17ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabular{font-variant-numeric:tabular-nums;white-space:nowrap}.deal-amount{color:var(--ink);font-weight:650}.deal-amount>span{display:grid;gap:3px}.deal-amount small{color:var(--muted);font-size:.7rem;font-weight:450;white-space:nowrap}.status-pill{display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:3px 9px;border-radius:999px;font-size:.75rem;font-weight:650;white-space:nowrap}.status-pill.success{color:#005f42;color:oklch(.43 .13 164);background:var(--success-soft)}.status-pill.pending{color:#8b6000;color:oklch(.52 .13 78);background:var(--warning-soft)}.status-pill.stage-new{color:var(--primary-strong);background:var(--primary-soft)}.status-pill.stage-intent{color:#805800;color:oklch(.49 .12 78);background:var(--warning-soft)}.status-pill.stage-following{color:#5e499d;background:#eeecff;background:oklch(.95 .035 292)}.status-pill.stage-converted,.status-pill.deal-converted{color:#005f42;color:oklch(.43 .13 164);background:var(--success-soft)}.status-pill.deal-partial_refund{color:#8b6000;color:oklch(.52 .13 78);background:var(--warning-soft)}.status-pill.deal-refunded{color:var(--danger);background:var(--danger-soft)}.status-pill.stage-lost{color:var(--muted);background:var(--surface-strong)}.status-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.cell-note{display:block;max-width:18ch;margin-top:4px;color:var(--muted);font-size:.75rem}.line-clamp{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-button{min-height:40px;padding:0 6px;display:inline-flex;align-items:center;gap:5px;border:0;color:var(--primary-strong);background:transparent;font-weight:650;white-space:nowrap}.text-button:hover{text-decoration:underline;text-underline-offset:3px}.table-footer{min-height:52px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--muted);background:var(--surface);border-top:1px solid var(--line);font-size:.8125rem}.pagination{display:flex;align-items:center;gap:8px}.pagination button{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted);background:var(--bg)}.pagination button:hover:not(:disabled){color:var(--primary-strong);border-color:var(--primary)}.detail-panel{grid-area:detail;position:sticky;top:64px;height:calc(100vh - 64px);min-width:0;background:var(--bg);border-left:1px solid var(--line);z-index:var(--z-drawer)}.detail-header{height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 16px 0 20px;border-bottom:1px solid var(--line)}.detail-header h2{margin:0;font-size:1.125rem}.detail-scroll{height:calc(100% - 56px);overflow:auto;padding:20px}.customer-summary{display:flex;align-items:center;gap:12px;padding-bottom:18px;border-bottom:1px solid var(--line)}.avatar{width:48px;height:48px;flex:0 0 auto;display:grid;place-items:center;color:var(--primary-strong);background:var(--primary-soft);border-radius:50%;font-size:1.2rem;font-weight:700}.customer-summary h3{margin:0 0 4px;font-size:1.125rem}.customer-summary p{margin:0 0 4px;color:var(--muted);font-size:.8125rem}.customer-summary small{color:var(--muted);font-size:.75rem}.contact-list{display:grid;gap:12px;margin:18px 0}.contact-list>div{display:grid;grid-template-columns:110px 1fr;gap:12px;align-items:center}.contact-list dt{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.8125rem}.contact-list dd{margin:0;color:var(--ink);font-size:.875rem;font-weight:600}.contact-list dd small{display:block;margin-top:2px;color:var(--muted);font-size:.7rem;font-weight:400}.edit-section{display:grid;gap:12px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.edit-section h3,.timeline-section h3{margin:0;font-size:1rem}.edit-section label{display:grid;gap:6px}.edit-section label>span{color:var(--muted);font-size:.8125rem;font-weight:600}.checkbox-field{grid-template-columns:20px 1fr;align-items:start;padding:12px;background:var(--surface);border-radius:var(--radius-sm)}.checkbox-field input{width:18px;height:18px;min-height:0;margin:2px 0 0;accent-color:var(--primary)}.checkbox-field span{display:grid;gap:2px}.checkbox-field span strong{color:var(--ink)}.checkbox-field span small{color:var(--muted);font-weight:400}.counter{justify-self:end;margin-top:-28px;margin-right:10px;color:var(--muted);font-size:.7rem;pointer-events:none}.field-error{margin:0;color:var(--danger);font-size:.8125rem}.field-hint{margin:0;color:var(--muted);font-size:.75rem}.save-detail{width:100%;margin-top:4px}.timeline-section{padding-top:18px}.section-heading{display:flex;align-items:center;justify-content:space-between}.section-heading span{color:var(--muted);font-size:.75rem}.timeline{list-style:none;padding:0;margin:16px 0 0}.timeline li{position:relative;display:grid;grid-template-columns:13px 1fr;gap:10px;padding-bottom:18px}.timeline li:before{content:"";width:8px;height:8px;margin-top:5px;border-radius:50%;background:var(--primary)}.timeline li:not(:last-child):after{content:"";position:absolute;left:3px;top:16px;bottom:2px;width:1px;background:var(--line-strong)}.timeline li.activity-refund:before{background:var(--danger)}.timeline li.activity-renewal:before{background:#00865f;background:oklch(.55 .15 164)}.timeline li.activity-assignment:before,.timeline li.activity-status:before{background:#7262b7}.activity-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.activity-meta>span{padding:2px 7px;color:var(--primary-strong);background:var(--primary-soft);border-radius:999px;font-size:.68rem;font-weight:650}.activity-refund .activity-meta>span{color:var(--danger);background:var(--danger-soft)}.activity-renewal .activity-meta>span{color:#00563b;color:oklch(.4 .12 164);background:var(--success-soft)}.activity-assignment .activity-meta>span,.activity-status .activity-meta>span{color:#564692;background:#eeecff}.timeline time{color:var(--muted);font-size:.75rem}.timeline p{margin:6px 0 0;color:#353e47;font-size:.8125rem;line-height:1.55}.timeline p strong{color:inherit;font-weight:700}.inline-empty{padding:14px;color:var(--muted);background:var(--surface);border-radius:var(--radius-sm);font-size:.8125rem;line-height:1.55}.lead-deal-note{display:grid;gap:4px;margin:16px 0 0;padding:12px 14px;color:var(--primary-strong);background:var(--primary-soft);border-radius:var(--radius-sm);font-size:.8125rem;line-height:1.5}.lead-deal-note.converted{color:#00563b;color:oklch(.4 .12 164);background:var(--success-soft)}.lead-deal-note.partial_refund{color:#6a4800;color:oklch(.43 .09 78);background:var(--warning-soft)}.lead-deal-note.refunded{color:var(--danger);background:var(--danger-soft)}.lead-deal-note strong{color:var(--ink)}.lead-deal-note small{color:var(--muted)}.lead-dialog{width:min(640px,calc(100vw - 32px));max-height:calc(100vh - 32px);padding:0;color:var(--ink);background:var(--bg);border:0;border-radius:var(--radius-md);box-shadow:0 8px 24px #101c2833;overflow:auto}.lead-dialog::backdrop{background:#050e186b}.lead-dialog form{padding:22px}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.dialog-header h2{margin:0;font-size:1.375rem}.dialog-header p{margin:6px 0 0;color:var(--muted);font-size:.875rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid label{display:grid;gap:7px;align-content:start}.form-grid label>span{font-size:.8125rem;font-weight:650}.form-grid em{color:var(--danger);font-size:.75rem;font-style:normal;font-weight:500}.full-field{grid-column:1 / -1}.dialog-error{padding:10px 12px;color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);font-size:.8125rem}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.state-panel{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;color:var(--muted);border:1px dashed var(--line-strong);border-radius:var(--radius-md)}.state-panel strong{color:var(--ink);font-size:1rem}.state-panel p{max-width:50ch;margin:0 0 8px;font-size:.875rem;line-height:1.5}.table-skeleton{border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}.skeleton-head{height:44px;background:var(--surface)}.skeleton-row{height:68px;display:grid;grid-template-columns:1.3fr .8fr .9fr 1fr 1fr 1fr 1.4fr .8fr 1fr;gap:20px;align-items:center;padding:0 16px;border-top:1px solid var(--line)}.skeleton-row span{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--surface-strong),var(--surface),var(--surface-strong));background-size:200% 100%;animation:shimmer 1.6s infinite linear}@keyframes shimmer{to{background-position:-200% 0}}.toast{position:fixed;left:50%;bottom:24px;z-index:var(--z-toast);display:flex;align-items:center;gap:8px;padding:11px 14px;color:#fff;background:#1d2a37;border-radius:var(--radius-sm);box-shadow:var(--shadow-panel);opacity:0;transform:translate(-50%,16px);pointer-events:none;transition:opacity .18s ease-out,transform .18s ease-out}.toast.is-visible{opacity:1;transform:translate(-50%)}.deal-summary{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:16px;border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}.deal-summary>div{min-width:0;display:grid;gap:5px;padding:15px 16px;background:var(--bg)}.deal-summary>div:not(:last-child){border-right:1px solid var(--line)}.deal-summary span{color:var(--muted);font-size:.75rem;font-weight:650}.deal-summary strong{color:var(--ink);font-size:1.2rem;line-height:1.25;font-variant-numeric:tabular-nums}.deal-summary small{min-height:2.7em;color:var(--muted);font-size:.7rem;line-height:1.35}.deal-summary .month-refund strong{color:var(--danger)}.deal-summary .month-net strong{color:#005f42;color:oklch(.43 .13 164)}.deal-toolbar{display:grid;grid-template-columns:minmax(240px,1.5fr) minmax(155px,.7fr) minmax(155px,.7fr) minmax(155px,.7fr) auto;gap:12px;align-items:end;margin-bottom:16px}.deal-toolbar label{display:grid;gap:6px;min-width:0}.deal-toolbar label>span{color:var(--muted);font-size:.75rem;font-weight:650}.deal-toolbar .button{justify-self:start}.deal-table table{min-width:1240px}.deal-customer{display:grid;gap:3px}.deal-customer strong{color:var(--ink)}.deal-customer span{color:var(--muted);font-size:.75rem;font-variant-numeric:tabular-nums}.deal-status{width:max-content;min-height:26px;display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:.75rem;font-weight:650;white-space:nowrap}.deal-status i{width:7px;height:7px;border-radius:50%;background:currentColor}.deal-status.converted{color:#005f42;color:oklch(.43 .13 164);background:var(--success-soft)}.deal-status.partial_refund{color:#8b6000;color:oklch(.52 .13 78);background:var(--warning-soft)}.deal-status.refunded{color:var(--danger);background:var(--danger-soft)}.deal-gross,.deal-net{color:var(--ink);font-weight:650}.deal-refund{color:var(--danger)}.refund-cell{display:grid;gap:3px;max-width:190px}.refund-cell small{color:var(--muted);font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.refund-dialog{width:min(600px,calc(100vw - 32px))}.refund-balance{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:18px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.refund-balance>div{display:grid;gap:5px;padding:12px;background:var(--surface)}.refund-balance span{color:var(--muted);font-size:.72rem}.refund-balance strong{font-size:.875rem;font-variant-numeric:tabular-nums}.refund-history{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.refund-history>strong{font-size:.875rem}.refund-history ul{list-style:none;display:grid;gap:9px;margin:10px 0 0;padding:0}.refund-history li{display:grid;grid-template-columns:1fr auto;gap:3px 12px;padding:10px 12px;background:var(--surface);border-radius:var(--radius-sm)}.refund-history li span,.refund-history li small{color:var(--muted);font-size:.72rem}.refund-history li b{color:var(--danger);font-size:.8125rem;font-variant-numeric:tabular-nums}.refund-history li small{grid-column:1 / -1}.deal-loading{min-height:260px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.deal-loading span{height:120px;border-radius:var(--radius-md);background:linear-gradient(90deg,var(--surface-strong),var(--surface),var(--surface-strong));background-size:200% 100%;animation:shimmer 1.6s infinite linear}.heading-actions{display:flex;align-items:center;gap:10px}.attendance-summary{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;padding:12px 16px;background:var(--primary-faint);border:1px solid var(--line);border-radius:var(--radius-md)}.attendance-summary>strong{font-size:.875rem}.attendance-summary>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 18px}.summary-status{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.8125rem;white-space:nowrap}.summary-status i,.attendance-status>span,.calendar-legend i{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:currentColor}.summary-status b{color:var(--ink);font-size:.875rem;font-variant-numeric:tabular-nums}.summary-status.normal,.summary-status.success{color:var(--success)}.summary-status.late,.summary-status.early,.summary-status.warning{color:var(--warning)}.summary-status.missing,.summary-status.danger{color:var(--danger)}.summary-status.rest{color:var(--muted)}.attendance-toolbar{display:grid;grid-template-columns:minmax(180px,230px) minmax(200px,280px) auto;align-items:end;gap:12px;margin-bottom:16px}.attendance-toolbar label{display:grid;gap:6px}.attendance-toolbar label>span{color:var(--muted);font-size:.75rem;font-weight:650}.attendance-toolbar .button{justify-self:start}.attendance-table table{min-width:920px}.attendance-person{display:grid;gap:3px}.attendance-person strong{color:var(--ink)}.attendance-person span,.attendance-device small{color:var(--muted);font-size:.75rem}.attendance-device{display:grid;gap:3px;max-width:220px}.attendance-device span,.attendance-device small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-status{width:max-content;min-height:26px;display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:.75rem;font-weight:650;white-space:nowrap}.attendance-status.success{color:#005f42;color:oklch(.43 .13 164);background:var(--success-soft)}.attendance-status.warning{color:#8b6000;color:oklch(.52 .13 78);background:var(--warning-soft)}.attendance-status.danger{color:var(--danger);background:var(--danger-soft)}.attendance-status.info{color:var(--primary-strong);background:var(--primary-soft)}.attendance-status.neutral,.attendance-status.rest{color:var(--muted);background:var(--surface-strong)}.attendance-settings{display:grid;grid-template-columns:minmax(250px,1.4fr) repeat(3,minmax(130px,.7fr)) auto;gap:14px;align-items:end;margin-bottom:16px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-md)}.settings-inline-heading{grid-column:1 / -1;padding-bottom:12px;border-bottom:1px solid var(--line)}.settings-inline-heading>div{display:grid;gap:4px}.settings-inline-heading strong{font-size:.9375rem}.settings-inline-heading span{color:var(--muted);font-size:.75rem}.attendance-settings fieldset{min-width:0;margin:0;padding:0;border:0}.attendance-settings legend,.attendance-settings>label>span{display:block;margin-bottom:7px;color:var(--muted);font-size:.75rem;font-weight:650}.weekday-picker{display:flex;flex-wrap:wrap;gap:5px}.weekday-picker label{position:relative}.weekday-picker input{position:absolute;width:1px;height:1px;min-height:0;opacity:0}.weekday-picker span{min-width:38px;min-height:36px;display:grid;place-items:center;padding:0 7px;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:7px;font-size:.75rem;cursor:pointer}.weekday-picker label.is-selected span{color:var(--primary-strong);background:var(--primary-soft);border-color:#90bce9;font-weight:650}.weekday-picker input:focus-visible+span{outline:3px solid oklch(.72 .12 250 / .75);outline-offset:2px}.suffix-input{position:relative}.suffix-input input{padding-right:52px}.suffix-input>span{position:absolute;right:12px;top:50%;color:var(--muted);font-size:.75rem;transform:translateY(-50%);pointer-events:none}.attendance-settings .field-error{margin-top:5px}.form-error{grid-column:1 / -1;margin:0;padding:9px 11px;color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);font-size:.8125rem}.attendance-edit-dialog{width:min(580px,calc(100vw - 32px))}.sales-attendance-grid{display:grid;grid-template-columns:minmax(310px,.8fr) minmax(460px,1.35fr);gap:16px}.today-attendance-panel,.personal-attendance-panel{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg);overflow:hidden}.today-attendance-panel>header,.personal-attendance-panel>header{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:var(--surface);border-bottom:1px solid var(--line)}.today-attendance-panel>header>div{display:grid;gap:3px}.today-attendance-panel>header strong,.personal-attendance-panel>header>strong{font-size:.9375rem}.today-attendance-panel>header span{color:var(--muted);font-size:.75rem}.live-clock{display:flex;align-items:center;justify-content:center;gap:10px;padding:26px 16px 20px;color:var(--primary-strong)}.live-clock time{color:var(--ink);font-size:clamp(2rem,4vw,2.75rem);line-height:1;letter-spacing:.015em;font-variant-numeric:tabular-nums;font-weight:680}.clock-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px}.clock-actions .button{width:100%}.attendance-rule-copy{margin:16px 16px 10px;color:var(--muted);text-align:center;font-size:.8125rem}.device-notice{display:flex;align-items:center;gap:9px;margin:0 16px;padding:10px 12px;color:var(--muted);background:var(--primary-faint);border-radius:var(--radius-sm);font-size:.75rem}.device-notice svg{flex:0 0 auto;color:var(--primary-strong)}.clock-timeline{list-style:none;display:grid;gap:0;margin:20px 16px 18px;padding:0}.clock-timeline li{position:relative;display:grid;grid-template-columns:14px 1fr;gap:10px;min-height:70px}.clock-timeline li>span{width:10px;height:10px;margin-top:5px;border:2px solid var(--line-strong);border-radius:50%;background:var(--bg);z-index:1}.clock-timeline li.is-complete>span{border-color:var(--primary);background:var(--primary)}.clock-timeline li:not(:last-child):after{content:"";position:absolute;left:4px;top:14px;bottom:0;width:2px;background:var(--line)}.clock-timeline li>div{display:grid;grid-template-columns:1fr auto;gap:3px 12px;align-content:start}.clock-timeline strong{font-size:.8125rem}.clock-timeline time{color:var(--ink);font-size:.875rem;font-weight:650;font-variant-numeric:tabular-nums}.clock-timeline small{grid-column:1 / -1;color:var(--muted);font-size:.72rem;overflow-wrap:anywhere}.month-switcher{display:flex;align-items:center;gap:4px}.month-switcher button{width:34px;height:34px;display:grid;place-items:center;color:var(--muted);background:transparent;border:0;border-radius:7px}.month-switcher button:hover:not(:disabled){color:var(--primary-strong);background:var(--primary-soft)}.month-switcher span{min-width:94px;color:var(--ink);text-align:center;font-size:.8125rem;font-weight:650;font-variant-numeric:tabular-nums}.attendance-calendar{padding:16px;border-bottom:1px solid var(--line)}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-weekdays{margin-bottom:5px}.calendar-weekdays span{min-height:28px;display:grid;place-items:center;color:var(--muted);font-size:.7rem}.calendar-days>span{position:relative;min-height:38px;display:grid;place-items:center;border-radius:7px;color:var(--ink);font-size:.8125rem;font-variant-numeric:tabular-nums}.calendar-days .calendar-empty{visibility:hidden}.calendar-days .has-status{background:var(--surface)}.calendar-days .has-status i{position:absolute;bottom:5px;width:5px;height:5px;border-radius:50%;background:currentColor}.calendar-days .success{color:#005f42;color:oklch(.43 .13 164);background:var(--success-soft)}.calendar-days .warning{color:#8b6000;color:oklch(.52 .13 78);background:var(--warning-soft)}.calendar-days .danger{color:var(--danger);background:var(--danger-soft)}.calendar-days .info{color:var(--primary-strong);background:var(--primary-soft)}.calendar-days .rest{color:var(--muted);background:var(--surface)}.calendar-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 14px;margin-top:12px}.calendar-legend span{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:.7rem}.calendar-legend .success{color:var(--success)}.calendar-legend .warning{color:var(--warning)}.calendar-legend .danger{color:var(--danger)}.recent-attendance{padding:16px}.recent-attendance ul{list-style:none;margin:10px 0 0;padding:0}.recent-attendance li{min-height:42px;display:grid;grid-template-columns:minmax(86px,1fr) auto minmax(88px,.9fr) minmax(88px,.9fr);align-items:center;gap:10px;border-top:1px solid var(--line);color:var(--muted);font-size:.75rem}.recent-attendance time{color:var(--ink);font-variant-numeric:tabular-nums}.attendance-error{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;padding:12px 14px;color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);font-size:.8125rem}.attendance-loading{min-height:260px;display:grid;grid-template-columns:.8fr 1.2fr;gap:16px}.attendance-loading span{min-height:120px;border-radius:var(--radius-md);background:linear-gradient(90deg,var(--surface-strong),var(--surface),var(--surface-strong));background-size:200% 100%;animation:shimmer 1.6s infinite linear}.attendance-loading span:nth-child(n+3){min-height:70px}@media(max-width:1360px){.app-shell.has-detail{grid-template-columns:176px minmax(0,1fr);grid-template-areas:"side top" "side main"}.detail-panel{position:fixed;top:64px;right:0;width:min(400px,100vw);box-shadow:-4px 0 8px #1b25301a}.attendance-settings{grid-template-columns:minmax(250px,1.3fr) repeat(3,minmax(120px,.7fr))}.attendance-settings .button{grid-column:-2 / -1;justify-self:end}}@media(max-width:860px){.auth-shell{grid-template-columns:1fr;max-width:560px;padding:20px;background:var(--bg)}.auth-intro{display:none}.auth-card{width:100%;padding:32px}.auth-mobile-brand{display:flex}.app-shell,.app-shell.has-detail{grid-template-columns:1fr;grid-template-rows:64px auto minmax(0,1fr);grid-template-areas:"top" "side" "main"}.side-nav{position:sticky;top:64px;width:100%;height:auto;padding:8px 16px;flex-direction:row;align-items:center;border-right:0;border-bottom:1px solid var(--line);transform:none}.brand-lockup{margin-right:auto}.nav-list{display:flex;gap:4px;max-width:calc(100vw - 210px);overflow-x:auto;scrollbar-width:none}.nav-list::-webkit-scrollbar{display:none}.scope-note{display:none}.nav-current,.nav-item{min-height:40px}.top-bar{padding:0 12px}.mobile-menu{display:inline-grid;margin-right:auto}.top-bar .icon-button:not(.mobile-menu){display:none}.main-content{padding:20px 16px}.filter-bar{grid-template-columns:1fr 1fr}.search-field{grid-column:1 / -1}.date-filter{grid-column:1;grid-row:auto;width:100%}.reset-filter{grid-column:1 / -1;grid-row:auto;justify-self:start}.deal-summary{grid-template-columns:1fr 1fr}.deal-summary>div:nth-child(2n){border-right:0}.deal-summary>div:not(:last-child){border-bottom:1px solid var(--line)}.deal-summary>div:last-child{grid-column:1 / -1}.deal-toolbar{grid-template-columns:1fr 1fr}.deal-toolbar .search-field,.deal-toolbar .button{grid-column:1 / -1}.attendance-settings{grid-template-columns:1fr 1fr}.attendance-settings fieldset{grid-column:1 / -1}.attendance-settings .button{grid-column:auto;justify-self:stretch}.sales-attendance-grid{grid-template-columns:1fr}.today-attendance-panel{max-width:none}}@media(max-width:640px){.auth-shell{align-items:start;padding:16px}.auth-card{margin-top:5vh;padding:24px 18px;border:0;box-shadow:none}.app-shell,.app-shell.has-detail{grid-template-rows:56px auto minmax(0,1fr)}.top-bar{height:56px}.side-nav{top:56px;padding:7px 12px}.brand-lockup strong{font-size:.9375rem}.brand-mark{width:28px;height:28px}.nav-current,.nav-item{padding:0 10px}.nav-current span,.nav-item span{display:none}.profile-chip{min-width:auto}.profile-chip div{display:none}.main-content{padding:18px 12px calc(24px + env(safe-area-inset-bottom))}.page-heading{align-items:center;margin-bottom:16px}.page-heading h1{font-size:1.5rem}.page-heading p{display:none}.page-heading .button{padding:0 12px}.heading-actions{gap:6px}.heading-actions .button{min-width:44px}.settings-card-header,.settings-form{padding:16px}.read-only-grid{grid-template-columns:1fr}.settings-actions .button{width:100%}.account-security{align-items:stretch;flex-direction:column;padding:16px}.account-security .button{width:100%}.member-toolbar{align-items:stretch;flex-direction:column;gap:10px}.member-toolbar>span{white-space:normal}.summary-tabs{gap:10px}.summary-tabs button{padding-inline:6px;font-size:.875rem}.filter-bar{grid-template-columns:1fr;padding:12px 0}.filter-bar label,.search-field{grid-column:auto}.filter-bar label:not(.search-field){grid-template-columns:92px 1fr;align-items:center}.filter-bar label:not(.search-field)>span{font-size:.8125rem}.date-filter{max-width:none;padding:4px 0}.reset-filter{width:100%}.deal-summary strong{font-size:1.05rem}.deal-summary>div{padding:13px 12px}.deal-toolbar{grid-template-columns:1fr}.deal-toolbar .search-field,.deal-toolbar .button{grid-column:auto}.deal-toolbar .button{width:100%}.refund-balance{grid-template-columns:1fr}.refund-balance>div:not(:last-child){border-bottom:1px solid var(--line)}.deal-loading{grid-template-columns:1fr 1fr}.attendance-summary{align-items:flex-start;flex-direction:column;gap:10px}.attendance-summary>div{justify-content:flex-start;gap:8px 14px}.attendance-toolbar{grid-template-columns:1fr}.attendance-toolbar .button{width:100%}.attendance-settings{grid-template-columns:1fr;padding:14px}.attendance-settings fieldset,.attendance-settings .settings-inline-heading,.attendance-settings .form-error{grid-column:auto}.attendance-settings .button{width:100%}.clock-actions{grid-template-columns:1fr}.live-clock{padding-top:22px}.attendance-calendar{padding:12px}.calendar-days>span{min-height:34px}.calendar-legend{justify-content:flex-start}.recent-attendance li{grid-template-columns:1fr auto;padding:9px 0}.recent-attendance li>span:nth-last-child(-n+2){font-size:.7rem}.attendance-loading{grid-template-columns:1fr}.attendance-error{align-items:stretch;flex-direction:column}.attendance-error .button{width:100%}.table-section{border-radius:var(--radius-sm);border:0;overflow:visible}.table-scroll{overflow:visible}table,thead,tbody,tr,th,td{display:block;width:100%;min-width:0}thead{display:none}tbody{display:grid;gap:10px}tbody tr{position:relative;padding:14px;border:1px solid var(--line);border-radius:var(--radius-sm)}tbody tr.is-active{border-color:#8ab5e3}td{height:auto;min-height:38px;padding:7px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:88px 1fr;align-items:center;gap:10px;font-size:.875rem}td:before{content:attr(data-label);color:var(--muted);font-size:.75rem;font-weight:600}td:last-child{min-height:44px;border-bottom:0}td:last-child .text-button{justify-self:start;padding:0}.row-customer span{max-width:24ch}.cell-note{max-width:25ch}.table-footer{padding:10px 4px;background:transparent;border-top:0}.detail-panel{top:0;width:100vw;height:100dvh}.detail-header{padding-top:env(safe-area-inset-top);height:calc(56px + env(safe-area-inset-top))}.detail-scroll{height:calc(100% - 56px - env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom))}.form-grid{grid-template-columns:1fr}.full-field{grid-column:auto}.lead-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;border-radius:0;margin:0}.lead-dialog form{padding:max(18px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom))}.dialog-actions{position:sticky;bottom:0;padding-top:12px;background:var(--bg)}.dialog-actions .button{flex:1}.toast{width:calc(100vw - 24px);justify-content:center;bottom:max(12px,env(safe-area-inset-bottom))}}@media(pointer:coarse){.text-button,.summary-tabs button{min-height:44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
