@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-vietnamese-wght-normal-CtlIRbEm.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-ext-wght-normal-MQgHevqp.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-wght-normal-DdeTHZLK.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:block))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer theme{:root,:host{--font-sans:"Public Sans Variable", ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-display:"Bricolage Grotesque Variable", ui-sans-serif, system-ui, sans-serif;--color-paper:#f4f6f1;--color-ink:#16241c}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.border{border-style:var(--tw-border-style);border-width:1px}}:root{font-family:var(--font-sans);color:var(--color-ink);background:var(--color-paper);font-synthesis:none;text-rendering:optimizelegibility;--paper:#f4f6f1;--paper-deep:#e9eee7;--ink:#16241c;--pine:#1e6b4a;--pine-deep:#154d36;--pine-soft:#e2eee5;--brass:#b37a32;--brass-soft:#f4ead8;--line:#d4dbd2;--line-strong:#b9c6bb;--muted:#68756c;--danger:#a53b35;--danger-soft:#f7e6e3;--white:#fff;--shadow:0 1px 2px #16241c0a, 0 8px 24px #16241c09}*{box-sizing:border-box}html{min-width:320px}body{background:var(--paper);min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}a{color:inherit;text-decoration:none}:focus-visible{outline-offset:2px;outline:3px solid #1e6b4a6b}.font-display{font-family:var(--font-display)}.font-tabular{font-variant-numeric:tabular-nums}.app-shell{grid-template-columns:232px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);z-index:20;background:#f4f6f1f0;flex-direction:column;height:100vh;padding:26px 18px 18px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:11px;padding:0 8px 26px;display:flex}.brand-mark{flex:none;width:37px;height:37px}.brand-name{font-family:var(--font-display);letter-spacing:-.035em;font-size:21px;font-weight:680;line-height:1}.brand-sub{color:var(--muted);letter-spacing:.01em;margin-top:5px;font-size:11px}.nav-section{color:var(--muted);padding:18px 10px 7px;font-size:11px}.nav-link{color:#405046;border-radius:7px;align-items:center;gap:10px;min-height:40px;padding:0 10px;font-size:13px;transition:background .16s,color .16s;display:flex}.nav-link:hover{background:var(--paper-deep);color:var(--ink)}.nav-link.active{background:var(--pine-soft);color:var(--pine-deep);font-weight:640}.nav-link svg{stroke-width:1.8px;width:17px;height:17px}.sidebar-foot{border-top:1px solid var(--line);margin-top:auto;padding:14px 8px 0}.admin-chip{align-items:center;gap:10px;padding:9px 0 13px;display:flex}.avatar{background:var(--pine-soft);width:30px;height:30px;color:var(--pine-deep);border-radius:50%;place-items:center;font-size:11px;font-weight:700;display:grid}.main{min-width:0}.topbar{display:none}.page-wrap{max-width:1440px;margin:0 auto;padding:30px 34px 50px}.page-header{justify-content:space-between;align-items:flex-end;gap:22px;margin-bottom:25px;display:flex}.page-title{font-family:var(--font-display);letter-spacing:-.045em;margin:0;font-size:clamp(29px,3vw,40px);font-weight:670;line-height:1}.page-kicker{color:var(--muted);margin:0 0 9px;font-size:12px}.page-sub{color:var(--muted);max-width:56ch;margin:10px 0 0;font-size:13px;line-height:1.5}.header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.card{background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px}.card-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:14px;padding:18px 20px;display:flex}.card-body{padding:20px}.card-title{font-family:var(--font-display);letter-spacing:-.025em;margin:0;font-size:17px;font-weight:650}.card-note{color:var(--muted);margin:5px 0 0;font-size:12px;line-height:1.5}.overview-grid{grid-template-columns:minmax(0,1.45fr) minmax(270px,.75fr);align-items:start;gap:16px;display:grid}.stack{gap:16px;display:grid}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.metric{background:var(--white);border:1px solid var(--line);border-radius:8px;min-width:0;padding:15px 16px}.metric-label{color:var(--muted);font-size:11px;line-height:1.3}.metric-value{letter-spacing:-.04em;margin-top:8px;font-size:23px;font-weight:650;line-height:1}.metric-value.brass{color:var(--brass)}.metric-value.pine{color:var(--pine)}.session-hero{padding:22px}.session-hero-top{justify-content:space-between;gap:18px;display:flex}.session-date{color:var(--muted);font-size:12px}.session-team{font-family:var(--font-display);letter-spacing:-.035em;margin-top:5px;font-size:22px;font-weight:640}.session-total{letter-spacing:-.055em;color:var(--brass);margin-top:28px;font-size:clamp(30px,4vw,47px);font-weight:650;line-height:1}.session-total-caption{color:var(--muted);margin-top:7px;font-size:12px}.session-progress{gap:8px;margin-top:23px;display:grid}.progress-track{background:var(--paper-deep);border-radius:999px;height:7px;overflow:hidden}.progress-fill{border-radius:inherit;background:var(--pine);height:100%;transition:width .5s}.progress-meta{color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.tally{flex-wrap:wrap;gap:4px;margin-top:20px;display:flex}.tally-dot{background:var(--paper-deep);border:1px solid #e1e7de;border-radius:2px 2px 4px 4px;width:12px;height:18px}.tally-dot.filled{background:var(--pine);border-color:var(--pine)}.tally-dot.nihil{background:var(--brass-soft);border-color:#e4ceb0}.hero-actions{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.hero-actions .btn{white-space:normal;text-align:left;height:auto;padding-block:8px}.week-list{padding:4px 20px 8px;display:grid}.week-row{border-bottom:1px solid #e9eee7;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;font-size:12px;display:flex}.week-row:last-child{border-bottom:0}.week-day{color:var(--muted);flex:none}.week-team{color:var(--muted);text-align:right;overflow-wrap:anywhere;min-width:0}.week-team.assigned{color:var(--ink);font-weight:600}.week-row.today .week-day{color:var(--pine-deep);font-weight:650}.week-row.today{background:linear-gradient(90deg,var(--pine-soft),transparent);margin:0 -20px;padding-inline:20px}.review-list{gap:10px;padding:18px 20px 0;display:grid}.review-link{white-space:normal;text-align:left;justify-content:space-between;width:100%}.review-link>span{align-items:center;gap:8px;min-width:0;display:flex}.review-note{margin:15px 20px 20px}.empty-state{color:var(--muted);padding:28px 20px;font-size:13px;line-height:1.6}.empty-state strong{color:var(--ink);margin-bottom:4px;font-weight:650;display:block}.btn{border:1px solid var(--line-strong);background:var(--white);min-height:37px;color:var(--ink);border-radius:7px;justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s,transform .15s;display:inline-flex}.btn:hover:not(:disabled){background:#f8faf7;border-color:#9eada2}.btn:active:not(:disabled){transform:translateY(1px)}.btn.primary{background:var(--pine);border-color:var(--pine);color:var(--white)}.btn.primary:hover:not(:disabled){background:var(--pine-deep);border-color:var(--pine-deep)}.btn.danger{color:var(--danger);background:snow;border-color:#dfb9b4}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--paper-deep);color:var(--ink)}.btn svg{width:15px;height:15px}.btn.icon-only{width:34px;min-height:34px;padding:0}.search-row{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.search{flex:240px;min-width:0;position:relative}.search svg{width:16px;height:16px;color:var(--muted);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input,.select,.textarea{border:1px solid var(--line-strong);background:var(--white);width:100%;color:var(--ink);border-radius:7px;outline:none;min-height:39px;padding:8px 11px;font-size:13px;transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--pine);box-shadow:0 0 0 3px #1e6b4a1f}.search .input{padding-left:37px}.select{appearance:none;cursor:pointer;background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2368756c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 12px center;padding-right:34px}.textarea{resize:vertical;min-height:86px}.toolbar{border-bottom:1px solid var(--line);background:#fbfcfa;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:13px 16px;display:flex}.toolbar-left{flex-wrap:wrap;flex:380px;align-items:center;gap:9px;min-width:0;display:flex}.toolbar-right{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.toolbar-count{color:var(--muted);white-space:nowrap;font-size:11px}.segmented{border:1px solid var(--line-strong);background:var(--white);border-radius:7px;gap:2px;padding:2px;display:inline-flex}.segmented button{color:var(--muted);background:0 0;border:0;border-radius:5px;padding:6px 9px;font-size:11px;font-weight:600}.segmented button.selected{background:var(--pine-soft);color:var(--pine-deep)}.summary-strip{border:1px solid var(--line);background:var(--white);border-radius:8px;flex-wrap:wrap;display:flex;overflow:hidden}.summary-item{border-right:1px solid var(--line);flex:140px;min-width:0;padding:14px 16px}.summary-item:last-child{border-right:0}.summary-label{color:var(--muted);font-size:11px}.summary-value{font-family:var(--font-display);letter-spacing:-.03em;margin-top:5px;font-size:20px;font-weight:650}.form-grid{gap:15px;display:grid}.field-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.check-field{color:#3c4d43;align-items:center;gap:9px;min-height:39px;font-size:12px;display:flex}.check-field input{width:16px;height:16px;accent-color:var(--pine)}.inline-actions{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.link-quiet{color:var(--pine-deep);border-bottom:1px solid #1e6b4a40;font-weight:600}.link-quiet:hover{border-color:var(--pine)}.household-form{grid-template-columns:minmax(0,1fr) 210px;align-items:start;gap:22px;display:grid}.household-fields{gap:16px;min-width:0;display:grid}.household-error{grid-column:1/-1}.token-row{align-items:stretch;gap:8px;display:flex}.token-row .input{flex:1;min-width:0}.token-row .btn{white-space:nowrap;flex:none}.token-warning{justify-items:start;gap:6px;display:grid}.token-warning .btn{margin-left:-13px}.token-input{background:var(--paper-deep);color:var(--muted);cursor:default}.token-input:focus{box-shadow:none;border-color:var(--line-strong)}.token-input{font-variant-numeric:tabular-nums;letter-spacing:.04em;font-size:12px}.check-field.boxed{border:1px solid var(--line-strong);cursor:pointer;background:#fbfcfa;border-radius:7px;align-items:flex-start;padding:11px 12px}.check-field.boxed input{flex:none;margin:2px 0 0}.check-field.boxed span{color:var(--ink);gap:2px;font-size:13px;font-weight:620;display:grid}.check-field.boxed small{color:var(--muted);font-size:11px;font-weight:400}.qr-placeholder{background:#fff;place-items:center;width:168px;height:168px;display:grid}.qr-preview{text-align:center;border:1px solid var(--line);background:#fbfcfa;border-radius:7px;justify-items:center;gap:10px;padding:18px;display:grid}.qr-preview img{width:168px;height:168px;image-rendering:pixelated;box-shadow:0 0 0 1px var(--line);border:5px solid #fff}.qr-preview-name{font-size:13px;font-weight:650}.qr-preview-token{color:var(--muted);overflow-wrap:anywhere;font-size:10px}.row-link{cursor:pointer}.team-link:hover{color:var(--pine-deep);text-underline-offset:3px;text-decoration:underline}.row-deleted{background:snow}.row-deleted .amount{color:var(--muted);text-decoration:line-through}.row-deleted .name{color:var(--muted)}.session-note{align-items:flex-start;gap:9px;display:flex}.session-note svg{flex:none;margin-top:2px}.detail-summary{grid-template-columns:minmax(0,1.2fr) repeat(2,minmax(0,.65fr));gap:0;display:grid}.detail-summary>div{border-right:1px solid var(--line);padding:16px 18px}.detail-summary>div:last-child{border-right:0}.detail-summary .summary-value.large{color:var(--brass);font-size:clamp(25px,3vw,34px)}.detail-summary .summary-value.pine{color:var(--pine)}.progress{background:var(--paper-deep);border-radius:999px;height:7px;margin-top:9px;overflow:hidden}.progress>span{background:var(--pine);border-radius:inherit;height:100%;display:block}.audit-amounts{color:var(--muted);margin-top:3px;font-size:11px}.schedule-day{gap:10px;display:grid}.schedule-day .select{font-size:12px}.schedule-members{color:var(--muted);min-height:28px;font-size:10px;line-height:1.45}.print-sheet{max-width:980px;margin:0 auto}.print-sheet-head{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;padding-bottom:16px;display:flex}.print-sheet-title{font-family:var(--font-display);letter-spacing:-.04em;margin:0;font-size:28px}.print-sheet-meta{color:var(--muted);text-align:right;font-size:11px;line-height:1.5}.print-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.print-card{border:1px solid var(--line-strong);text-align:center;break-inside:avoid;background:#fff;border-radius:7px;padding:14px}.print-card img{width:100%;max-width:190px;height:auto;image-rendering:pixelated;margin:0 auto;display:block}.print-card-no{color:var(--brass);font-size:10px;font-weight:700}.print-card-name{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 8px;font-size:15px;font-weight:650}.print-card-token{color:var(--muted);overflow-wrap:anywhere;margin-top:5px;font-size:9px}.report-grid{grid-template-columns:minmax(0,1fr);gap:13px;margin-bottom:16px;display:grid}.report-card{align-content:start;gap:11px;padding:18px;display:grid}.report-icon{background:var(--pine-soft);width:32px;height:32px;color:var(--pine-deep);border-radius:7px;place-items:center;display:grid}.report-card h3{font-family:var(--font-display);letter-spacing:-.025em;margin:0;font-size:17px}.report-card p{color:var(--muted);margin:0;font-size:12px;line-height:1.55}.report-card .btn{justify-self:start}.empty-state .btn{margin-top:13px}.field{gap:6px;display:grid}.field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.field label{color:#3c4d43;font-size:12px;font-weight:620}.field-hint{color:var(--muted);font-size:11px;line-height:1.45}.form-error{color:var(--danger);font-size:12px;line-height:1.5}.table-wrap{overflow-x:auto}.ledger{border-collapse:collapse;width:100%;min-width:640px}.ledger th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);background:#fbfcfa;padding:11px 17px;font-size:11px;font-weight:600}.ledger td{vertical-align:middle;border-bottom:1px solid #e9eee7;padding:13px 17px;font-size:12px}.ledger tr:last-child td{border-bottom:0}.ledger tbody tr:hover{background:#fcfdfb}.ledger .name{color:var(--ink);font-weight:620}.ledger .muted{color:var(--muted)}.ledger .amount{color:var(--brass);font-variant-numeric:tabular-nums;font-weight:650}.row-actions{justify-content:flex-end;gap:4px;display:flex}.pagination{border-top:1px solid var(--line);color:var(--muted);background:#fbfcfa;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:13px 16px;font-size:12px;display:flex}.pagination-info{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pagination-info .select{width:auto;min-height:34px;padding-block:4px;font-size:12px}.pagination-pages{align-items:center;gap:6px;display:flex}.pagination-numbers{align-items:center;gap:4px;display:flex}.pagination-numbers .btn{min-width:34px;min-height:34px;padding:0 8px}.pagination-gap{padding:0 4px}.pagination-compact{display:none}.status{color:var(--muted);white-space:nowrap;align-items:center;gap:5px;font-size:11px;font-weight:620;display:inline-flex}.status:before{content:"";background:var(--line-strong);border-radius:50%;width:6px;height:6px}.status.active{color:var(--pine)}.status.active:before{background:var(--pine)}.status.completed{color:#52645a}.status.completed:before{background:#52645a}.status.deleted{color:var(--danger)}.status.deleted:before{background:var(--danger)}.status.brass{color:var(--brass)}.status.brass:before{background:var(--brass)}.login-shell{grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);min-height:100vh;display:grid}.login-intro{background:var(--paper);border-right:1px solid var(--line);flex-direction:column;justify-content:space-between;padding:clamp(32px,7vw,100px);display:flex}.login-art{width:min(100%,460px);margin:auto 0}.login-title{font-family:var(--font-display);letter-spacing:-.07em;max-width:8ch;margin:34px 0 18px;font-size:clamp(42px,6vw,83px);font-weight:690;line-height:.95}.login-copy{color:var(--muted);max-width:39ch;font-size:14px;line-height:1.7}.login-panel{background:#f9faf7;justify-content:center;align-items:center;padding:32px;display:flex}.login-card{width:min(100%,392px)}.login-card h2{font-family:var(--font-display);letter-spacing:-.035em;margin:0 0 6px;font-size:25px}.login-card p{color:var(--muted);margin:0 0 22px;font-size:13px;line-height:1.5}.login-form{gap:15px;display:grid}.login-remember{gap:5px;display:grid}.login-remember .check-field{min-height:auto}.login-note{color:var(--muted);margin-top:19px;font-size:11px;line-height:1.6}.modal-backdrop{z-index:60;background:#16241c61;place-items:center;padding:20px;animation:.14s ease-out fade-in;display:grid;position:fixed;inset:0}.modal{background:var(--white);border:1px solid var(--line);border-radius:10px;flex-direction:column;width:min(100%,540px);max-height:min(90vh,760px);animation:.18s ease-out rise-in;display:flex;overflow:hidden;box-shadow:0 24px 80px #16241c2e}.modal.wide{width:min(100%,700px)}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 22px 15px;display:flex}.modal-head h2{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:20px}.modal-head p{color:var(--muted);margin:5px 0 0;font-size:12px}.modal-head,.modal-foot{flex:none}.modal-body{overscroll-behavior:contain;gap:15px;min-height:0;padding:20px 22px;display:grid;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);background:#fbfcfa;justify-content:flex-end;gap:8px;padding:14px 22px;display:flex}.notice{border:1px solid var(--line);border-left:3px solid var(--brass);color:#4f5e54;background:#fffdf8;border-radius:6px;padding:12px 14px;font-size:12px;line-height:1.55}.notice.danger{border-left-color:var(--danger);background:#fff9f8}.notice strong{color:var(--ink)}.schedule-grid{grid-template-columns:repeat(7,minmax(92px,1fr));gap:8px;display:grid}.day-column{border:1px solid var(--line);background:#fbfcfa;border-radius:7px;min-height:144px;padding:11px}.day-column.has-team{background:#f7fbf7;border-color:#bdd4c2}.day-name{font-size:12px;font-weight:650}.day-team{color:var(--muted);min-height:30px;margin-top:9px;font-size:11px;line-height:1.4}.day-team.assigned{color:var(--pine-deep);font-weight:600}.detail-grid{grid-template-columns:minmax(0,1.5fr) minmax(260px,.75fr);align-items:start;gap:16px;display:grid}.team-facts{margin:0;padding:4px 20px 8px;display:grid}.team-facts>div{border-bottom:1px solid #e9eee7;grid-template-columns:96px minmax(0,1fr);align-items:baseline;gap:12px;padding:12px 0;display:grid}.team-facts>div:last-child{border-bottom:0}.team-facts dt{color:var(--muted);font-size:12px}.team-facts dd{overflow-wrap:anywhere;min-width:0;margin:0;font-size:13px}.team-facts dd.strong{font-weight:650;font-family:var(--font-display);font-size:15px}.team-facts .members{grid-template-columns:1fr;gap:8px}.member-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.member-list li{align-items:center;gap:10px;font-size:13px;display:flex}.member-list .avatar{flex:none;width:26px;height:26px;font-size:10px}.audit-list{gap:0;display:grid}.audit-item{border-bottom:1px solid #e9eee7;padding:13px 0}.audit-item:last-child{border-bottom:0}.audit-top{justify-content:space-between;gap:10px;font-size:12px;display:flex}.audit-action{font-weight:650}.audit-reason{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.5}.audit-meta{color:var(--muted);margin-top:5px;font-size:11px}.qr-card{text-align:center;justify-items:center;gap:12px;padding:20px;display:grid}.qr-card canvas,.qr-card img{width:min(100%,230px);height:auto;image-rendering:pixelated}.token{font-family:var(--font-sans);font-variant-numeric:tabular-nums;letter-spacing:.04em;color:var(--muted);overflow-wrap:anywhere;font-size:11px}.drawer-backdrop,.drawer-close{display:none}.muted{color:var(--muted)}.divider{background:var(--line);height:1px;margin:3px 0}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1050px){.app-shell{grid-template-columns:202px minmax(0,1fr)}.page-wrap{padding:26px 24px 44px}.overview-grid,.detail-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.app-shell{display:block}.sidebar{z-index:70;width:min(84vw,300px);height:100dvh;padding:18px 14px max(14px,env(safe-area-inset-bottom));background:var(--paper);visibility:hidden;transition:transform .22s,visibility 0s linear .22s;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%);box-shadow:0 0 40px #16241c2e}.sidebar.open{visibility:visible;transition:transform .22s,visibility;transform:none}.sidebar-top{justify-content:space-between;align-items:flex-start;display:flex}.sidebar-top .brand{padding-bottom:14px}.drawer-close{display:inline-flex}.nav-link{min-height:46px;font-size:14px}.drawer-backdrop{z-index:65;opacity:0;pointer-events:none;background:#16241c6b;transition:opacity .2s;display:block;position:fixed;inset:0}.drawer-backdrop.show{opacity:1;pointer-events:auto}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:15;background:#f4f6f1f2;justify-content:flex-start;align-items:center;gap:10px;padding:10px 14px;display:flex;position:sticky;top:0}.topbar .btn{width:40px;min-height:40px}.topbar .brand{min-width:0;padding:0}.topbar .brand-sub{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.page-wrap{padding:20px 14px max(34px,env(safe-area-inset-bottom))}.page-header{flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:18px}.header-actions{width:100%}.header-actions .btn{flex:140px}.metric-grid{gap:7px}.metric{padding:12px}.metric-value{font-size:19px}.session-hero{padding:17px}.session-hero-top{flex-direction:column;gap:10px}.card-head{flex-wrap:wrap;padding:15px 14px}.card-body{padding:15px 14px}.toolbar{padding:12px 14px}.pagination{flex-direction:column;align-items:stretch;padding:12px 14px}.pagination-info{justify-content:space-between}.pagination-info .select{min-height:38px;font-size:14px}.pagination-pages{justify-content:space-between}.pagination-numbers{display:none}.pagination-compact{color:var(--ink);font-weight:600;display:inline}.toolbar-left,.toolbar-right{flex:100%}.toolbar-left{grid-template-columns:1fr;align-items:stretch;gap:10px;display:grid}.toolbar-left .search{flex:none;width:100%}.toolbar-left .select,.toolbar-left .segmented{width:100%!important;min-width:0!important}.toolbar-left .select{text-overflow:ellipsis;padding-right:36px}.toolbar-right{justify-content:space-between}.segmented{display:flex}.segmented button{flex:1;padding:8px 6px}.summary-item{border-bottom:1px solid var(--line);flex:45%}.ledger th,.ledger td{padding:11px 12px}.btn{min-height:40px}.btn.icon-only{width:38px;min-height:38px}.input,.select,.textarea{min-height:44px;font-size:16px}.field-row{grid-template-columns:1fr}.modal-backdrop{align-items:end;padding:0}.modal,.modal.wide{border-radius:14px 14px 0 0;width:100%;max-height:92dvh}.modal-head{padding:16px 16px 12px}.household-form{grid-template-columns:1fr;gap:18px}.qr-preview{padding:14px}.qr-preview img,.qr-placeholder{width:148px;height:148px}.modal-body{padding:16px}.modal-foot{padding:12px 16px max(14px,env(safe-area-inset-bottom))}.modal-foot .btn{flex:1}.login-shell{display:block}.login-intro{border-right:0;border-bottom:1px solid var(--line);min-height:39vh;padding:28px 22px}.login-title{margin-top:23px;font-size:48px}.login-art{width:120px;margin:0}.login-panel{padding:27px 20px 38px}.schedule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.field-row.three{grid-template-columns:1fr}.detail-summary{grid-template-columns:1fr 1fr}.detail-summary>div{border-bottom:1px solid var(--line)}.detail-summary>div:first-child{border-right:0;grid-column:1/-1}.report-grid{grid-template-columns:1fr}.print-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.print-sheet-head{flex-direction:column;align-items:flex-start}.print-sheet-meta{text-align:left}.week-list,.team-facts{padding:2px 14px 6px}.team-facts>div{grid-template-columns:84px minmax(0,1fr)}.week-row.today{margin:0 -14px;padding-inline:14px}.review-list{padding:14px 14px 0}.review-note{margin:12px 14px 14px}.hero-actions .btn{flex:100%}.table-wrap{overflow-x:visible}.ledger{min-width:0;display:block}.ledger thead{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}.ledger tbody{display:grid}.ledger tr{border-bottom:1px solid var(--line);gap:9px;padding:14px;display:grid}.ledger tr:last-child{border-bottom:0}.ledger td{text-align:right;overflow-wrap:anywhere;border:0;justify-content:space-between;align-items:center;gap:14px;min-width:0;padding:0;font-size:13px;display:flex}.ledger td:before{content:attr(data-label);color:var(--muted);text-align:left;flex:none;font-size:12px;font-weight:500}.ledger td:first-child{text-align:left;border-bottom:1px dashed var(--line);padding-bottom:10px;font-size:14px;display:block}.ledger td:first-child:before,.ledger td[data-label=""]:before{content:none}.ledger td:first-child .name{font-size:15px;font-family:var(--font-display);letter-spacing:-.02em}.ledger td:first-child .muted{margin-top:3px;font-size:11px}.ledger td:last-child:not(:first-child):has(.btn,.inline-actions,.row-actions){justify-content:stretch;padding-top:4px}.ledger td:last-child .btn{border-color:var(--line-strong);flex:1;min-height:42px}.ledger td:last-child .inline-actions,.ledger td:last-child .row-actions{flex:1;justify-content:stretch}.ledger td:last-child .inline-actions .btn,.ledger td:last-child .row-actions .btn{flex:1}.ledger .row-actions,.ledger .inline-actions{flex-wrap:wrap}}@media(max-width:380px){.metric-grid,.schedule-grid{grid-template-columns:1fr}.page-title{font-size:27px}}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{.sidebar,.topbar,.drawer-backdrop,.no-print{display:none!important}.app-shell{display:block}.page-wrap{max-width:none;padding:0}.card{box-shadow:none;border:0}body{background:#fff}.print-grid{grid-template-columns:repeat(3,1fr);gap:7mm;display:grid}.print-card{break-inside:avoid;text-align:center;border:1px solid #000;padding:7mm}.print-sheet-head{border-bottom-color:#000}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
