html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}html{font-size:1rem}@media(max-width:760px){html{font-size:calc(100vw / 390 * 16px)}body{font-size:1rem}}:root{font-family:Noto Sans SC,system-ui,sans-serif;color:#1c2d28;background:#f5f4ef;font-synthesis:none;--green: #173f34;--green-2: #245f4e;--gold: #bd8d3b;--paper: #fffef9;--muted: #7d8984;--line: #e7e7df;--shadow: 0 14px 40px rgba(29, 50, 43, .065)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button{font:inherit}button:focus-visible{outline:3px solid rgba(189,141,59,.35);outline-offset:2px}.app-shell{min-height:100vh;display:grid;grid-template-columns:232px 1fr;transition:grid-template-columns .25s ease}.app-shell.sidebar-collapsed{grid-template-columns:64px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--green);color:#fff;display:flex;flex-direction:column;z-index:30;box-shadow:8px 0 30px #0d2d251a;overflow:hidden;transition:width .25s ease}.sidebar-collapsed .sidebar{width:64px}.brand{height:86px;padding:0 14px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.09)}.sidebar-collapsed .brand{padding:10px 11px;justify-content:center;flex-direction:column;gap:6px;height:auto;min-height:86px}.brand-seal{width:42px;height:42px;border:1px solid rgba(220,181,112,.8);color:#e5c78e;display:grid;place-items:center;font:700 1.4375rem "Noto Serif SC",serif;transform:rotate(2deg);flex-shrink:0}.sidebar-collapsed .brand-seal{width:38px;height:38px;font-size:1.25rem}.brand div:nth-child(2){display:flex;flex-direction:column}.brand strong{font:700 1.1875rem "Noto Serif SC",serif;letter-spacing:3px}.brand span{color:#ffffff8c;font-size:.6875rem;letter-spacing:2px;margin-top:3px}.sidebar-close{display:none!important;margin-left:auto;color:#fff!important}.sidebar-collapse{display:grid!important;margin-left:auto;color:#ffffff80!important;width:32px!important;height:32px!important}.sidebar-collapse:hover{color:#fff!important;background:#ffffff1a!important}.sidebar-collapsed .sidebar-collapse{margin-left:0;position:static;transform:none}.sidebar nav{padding:20px 12px;flex:1;overflow-y:auto;overflow-x:hidden}.sidebar-collapsed .sidebar nav{padding:16px 8px}.sidebar nav::-webkit-scrollbar{width:4px}.sidebar nav::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.nav-caption{color:#ffffff59;font-size:.6875rem;letter-spacing:2px;padding:8px 12px;margin:7px 0;transition:opacity .2s}.sidebar-collapsed .nav-caption{height:8px;padding:0;margin:12px 0;opacity:0}.nav-item{position:relative;width:100%;height:44px;border:0;border-radius:9px;background:transparent;color:#ffffffad;display:flex;gap:12px;align-items:center;padding:0 13px;cursor:pointer;margin:3px 0;transition:.2s ease;justify-content:flex-start}.sidebar-collapsed .nav-item{justify-content:center;padding:0;gap:0}.nav-item:hover{color:#fff;background:#ffffff0f;transform:translate(2px)}.sidebar-collapsed .nav-item:hover{transform:scale(1.08)}.nav-item.active{background:#ffffff1b;color:#f2d297}.nav-item.active:before{content:"";width:3px;height:22px;border-radius:3px;background:#d8aa59;position:absolute;left:0}.sidebar-collapsed .nav-item.active:before{left:-8px;width:4px;height:28px}.nav-item b{margin-left:auto;border-radius:50%;width:20px;height:20px;display:grid;place-items:center;font-size:.6875rem;background:#c45f4c;color:#fff}.sidebar-collapsed .nav-item b{position:absolute;top:2px;right:2px;width:16px;height:16px;font-size:.625rem;margin-left:0}.sidebar-footer{padding:16px 18px;min-height:76px;display:flex;align-items:center;gap:10px;border-top:1px solid rgba(255,255,255,.09);background:transparent;border-left:0;border-right:0;border-bottom:0;color:#fff;cursor:pointer;width:100%;transition:background .2s}.sidebar-footer:hover{background:#ffffff0f}.sidebar-collapsed .sidebar-footer{padding:12px 0;justify-content:center;min-height:60px}.sidebar-footer .avatar{width:34px;height:34px;border-radius:50%;background:#d1a14e;display:grid;place-items:center;color:#183c32;font-weight:700;flex-shrink:0}.sidebar-footer div:nth-child(2){flex:1;display:flex;flex-direction:column;font-size:.8125rem;text-align:left}.sidebar-footer span{font-size:.6875rem;color:#ffffff73;margin-top:2px}main{min-width:0}.topbar{height:86px;padding:0 34px;background:#fffef9e0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}.topbar-title{display:flex;align-items:center;gap:12px}.topbar-title span{color:var(--muted);font-size:.6875rem;letter-spacing:.7px}.topbar h1{margin:3px 0 0;font:700 1.4375rem "Noto Serif SC",serif}.topbar-actions{display:flex;align-items:center;gap:13px}.icon-button{width:38px;height:38px;display:grid;place-items:center;border:0;background:transparent;border-radius:10px;color:#44554f;cursor:pointer}.icon-button:hover{background:#edeee9}.notification{position:relative}.notification i{width:6px;height:6px;background:#c85a46;border:2px solid white;box-sizing:content-box;border-radius:50%;position:absolute;top:7px;right:7px}.menu-button{display:none}.today{font-size:.8125rem;color:#64716c;padding-left:12px;border-left:1px solid var(--line)}.demo-badge{font-size:.6875rem;color:#936921;background:#f8ecd4;padding:4px 9px;border-radius:99px}.page-content{padding:30px 34px 55px;max-width:1440px;margin:0 auto}.welcome-row{display:flex;align-items:end;justify-content:space-between;gap:24px;margin:4px 0 24px}.welcome-row h2{font:700 1.5rem "Noto Serif SC",serif;margin:0 0 7px}.welcome-row p,.section-heading p{margin:0;font-size:.8125rem;color:var(--muted)}.primary-button{border:0;background:var(--green);color:#fff;height:43px;padding:0 17px;border-radius:9px;display:flex;align-items:center;gap:8px;cursor:pointer;box-shadow:0 7px 18px #173f3430}.primary-button:hover{background:var(--green-2);transform:translateY(-1px)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.metric-card{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:19px;box-shadow:var(--shadow);display:grid;grid-template-columns:1fr auto}.metric-icon{grid-column:2;grid-row:1 / span 2;width:39px;height:39px;display:grid;place-items:center;border-radius:10px}.metric-icon.green{background:#e7f1ed;color:#2b705d}.metric-icon.gold{background:#f6edda;color:#ae7c28}.metric-icon.blue{background:#e9f0f4;color:#42728b}.metric-icon.red{background:#f8e9e6;color:#b85848}.metric-label{color:#718079;font-size:.75rem;margin-bottom:8px}.metric-card>strong{font-size:1.625rem;letter-spacing:-.5px}.metric-foot{grid-column:1 / span 2;margin-top:13px;padding-top:11px;border-top:1px solid #efefe9;display:flex;align-items:center;justify-content:space-between;font-size:.6875rem;color:#8b9591}.metric-foot em{display:flex;align-items:center;font-style:normal;font-weight:600}.metric-foot .up{color:#278162}.metric-foot .down{color:#568197}.alert-text{color:#be5849}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.75fr);gap:15px;margin-top:15px}.attendance-card{margin:15px 0;padding:17px 19px;border:1px solid rgba(23,63,52,.12);border-radius:18px;background:linear-gradient(135deg,#fff,#f0f6f2);box-shadow:0 10px 28px #1d322b0f}.attendance-heading{display:flex;align-items:center;gap:12px}.attendance-heading>div{display:grid;gap:3px}.attendance-heading small{color:var(--muted)}.attendance-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;color:#fff;background:var(--green-2)}.attendance-state{margin-left:auto;display:flex;align-items:center;gap:5px;color:#24705a;font-size:.75rem}.attendance-live-time{display:flex;align-items:baseline;gap:8px;margin:14px 0 5px;color:#62716c;font-size:.75rem}.attendance-live-time b{color:#173f34;font-size:1.5rem;font-variant-numeric:tabular-nums;letter-spacing:.5px}.attendance-live-time small{margin-left:auto;color:#8a9692}.attendance-times{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.attendance-times span{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:10px 12px;border-radius:11px;background:#fffc;color:var(--muted);font-size:.75rem}.attendance-times b{color:#1d1d1f;font-size:1.125rem}.attendance-times small{color:#8a6b2e}.attendance-clock,.attendance-action button{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:42px;border:0;border-radius:12px;background:var(--green-2);color:#fff;font-weight:700;cursor:pointer}.attendance-clock:disabled,.attendance-action button:disabled{opacity:.55;cursor:not-allowed}.attendance-action{margin-top:13px;display:grid;gap:9px;color:#8a6b2e;font-size:.75rem}.attendance-action p,.attendance-message{margin:0}.attendance-message{min-height:16px;padding-top:9px;color:#53645e;font-size:.75rem}.attendance-page{display:grid;gap:16px}.attendance-now-label{margin-left:auto;display:grid;justify-items:end;color:var(--muted);font-size:.625rem}.attendance-clock-now{font-size:1.375rem;font-variant-numeric:tabular-nums;color:#173f34}.attendance-panel{padding:18px;border:1px solid rgba(23,63,52,.1);border-radius:18px;background:#fff;box-shadow:0 9px 28px #1d322b0d}.attendance-panel h3{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:1rem}.attendance-panel-title p{margin:-8px 0 14px;color:var(--muted);font-size:.75rem}.attendance-calendar-head,.attendance-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;text-align:center}.attendance-calendar-head span{padding:4px;color:var(--muted);font-size:.6875rem}.attendance-calendar>span{min-height:49px;display:grid;place-items:center;gap:1px;padding:5px;border-radius:11px;background:#f6f7f6}.attendance-calendar>span b{font-size:.8125rem}.attendance-calendar>span small{min-height:14px;color:#87928e;font-size:.625rem}.attendance-calendar>span.done{background:#eaf5ef;color:#18614d}.attendance-calendar>span.partial{background:#fff5df;color:#8a6118}.attendance-week{min-width:700px}.attendance-panel:has(.attendance-week){overflow-x:auto}.attendance-week-row{display:grid;grid-template-columns:110px repeat(7,minmax(72px,1fr));gap:7px;align-items:center;padding:5px 0}.attendance-week-row>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem}.attendance-week-row.head span{text-align:center;color:var(--muted);font-size:.6875rem}.attendance-week-row button{min-height:35px;border:1px solid #e4e8e6;border-radius:9px;background:#f7f8f7;color:#40504b;cursor:pointer;font-size:.6875rem}.attendance-week-row button.off{border-color:#e7d8ba;background:#fff6e6;color:#825d20}.attendance-week-row button.complete{border-color:#cbe4d8;background:#eaf5ef;color:#176149}.attendance-config-toggle{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:34px;margin-top:10px;border:1px dashed #c9d6d0;border-radius:10px;background:transparent;color:#3f6a5c;font-size:.75rem;cursor:pointer}.attendance-config-toggle:hover{background:#f2f8f5}.attendance-config{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;padding:13px;border-radius:12px;background:#f4f8f5}.attendance-config label{display:grid;gap:5px;font-size:.6875rem;color:#62716c}.attendance-config label.wide{grid-column:1/-1}.attendance-config input{min-width:0;height:34px;padding:0 10px;border:1px solid #d5dfda;border-radius:8px;background:#fff;font-size:.8125rem}.attendance-config-save{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:6px;min-height:36px;border:0;border-radius:9px;background:var(--green-2);color:#fff;font-weight:600;font-size:.8125rem;cursor:pointer}.attendance-config-save:disabled{opacity:.55;cursor:not-allowed}.attendance-panel-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.attendance-month-switch{display:flex;align-items:center;gap:8px;flex-shrink:0}.attendance-month-switch button{width:26px;height:26px;border:1px solid #dde5e1;border-radius:8px;background:#f7f9f8;color:#3f6a5c;font-size:1rem;line-height:1;cursor:pointer}.attendance-month-switch button:hover{background:#eaf5ef}.attendance-month-switch b{min-width:66px;text-align:center;color:#173f34;font-size:.8125rem;font-variant-numeric:tabular-nums}.attendance-stats-wrap{overflow-x:auto}.attendance-stats{width:100%;min-width:520px;border-collapse:collapse;font-size:.8125rem}.attendance-stats th{padding:8px 10px;text-align:left;color:#6b7a75;font-size:.6875rem;font-weight:600;border-bottom:1px solid #e6ece9}.attendance-stats td{padding:9px 10px;border-bottom:1px solid #f0f3f2;color:#243832;font-variant-numeric:tabular-nums}.attendance-stats td.good{color:#176149;font-weight:700}.attendance-stats td.mid{color:#8a6118;font-weight:600}.attendance-stats td.bad{color:#b3402e;font-weight:600}.attendance-stats tr:last-child td{border-bottom:0}.attendance-review-actions{display:flex;align-items:center;gap:12px}.attendance-review-actions select{height:36px;min-width:170px;border:1px solid #dce5e1;border-radius:8px;background:#fff;padding:0 10px;color:#263d35}.attendance-all-clear{display:flex;align-items:center;gap:12px;padding:18px;border:1px solid #d9e9e1;border-radius:12px;background:#f4faf7;color:#216249}.attendance-all-clear div{display:flex;flex-direction:column}.attendance-all-clear span{font-size:.75rem;color:#718079}.attendance-exception-list{display:flex;flex-direction:column;gap:10px}.attendance-person{border:1px solid #eaded7;border-radius:12px;overflow:hidden;background:#fff}.attendance-person.normal{border-color:#dce8e2}.attendance-person-row{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;border:0;background:#fff;padding:14px 16px;cursor:pointer}.attendance-person-row:hover{background:#fafcfb}.attendance-person-row>span{display:flex;flex-direction:column;gap:3px}.attendance-person-row small{color:#b14b3b}.attendance-person.normal .attendance-person-row small{color:#39725e}.attendance-person-row>strong{display:flex;align-items:center;gap:5px;color:#286b54;font-size:.8125rem}.attendance-person-detail{border-top:1px solid #edf1ef;background:#fafcfb;padding:8px 16px 12px}.attendance-detail-head,.attendance-detail-day{display:grid;grid-template-columns:70px 90px 1fr 1fr 60px;gap:10px;align-items:center;padding:8px 4px}.attendance-detail-head{color:#7a8781;font-size:.6875rem}.attendance-detail-day{border-top:1px solid #edf1ef;font-size:.75rem}.attendance-detail-day b{color:#287157}.attendance-detail-day.missing b,.attendance-detail-day.missing span:nth-child(3),.attendance-detail-day.missing span:nth-child(4){color:#b3402e}.attendance-detail-day.late b{color:#96600c}.attendance-detail-day.rest{color:#87918c}.attendance-summary-bar{margin:-4px 0 14px;padding:10px 14px;border:1px solid #f0d9d3;border-radius:10px;background:#fdf5f3;font-size:.8125rem;color:#7a3b2e}.attendance-summary-bar b{color:#b3402e;font-variant-numeric:tabular-nums}.attendance-detail-summary{padding:8px 4px 10px;color:#6b7a75;font-size:.75rem;border-bottom:1px solid #edf1ef;margin-bottom:4px}@media(max-width:720px){.attendance-panel-title{align-items:flex-start}.attendance-review-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.attendance-review-actions select{flex:1;min-width:150px}.attendance-person-detail{overflow-x:auto;padding:8px 10px 12px}.attendance-detail-head,.attendance-detail-day{min-width:560px;grid-template-columns:55px 75px 1fr 1fr 52px}.attendance-person-row{padding:13px 12px}}@media(max-width:700px){.attendance-clock-now{font-size:1.0625rem}.attendance-card,.attendance-panel{padding:14px;border-radius:15px}.attendance-times{grid-template-columns:1fr}.attendance-calendar{gap:4px}.attendance-calendar>span{min-height:43px}.attendance-week{min-width:620px}.attendance-config{grid-template-columns:1fr}.attendance-config label.wide,.attendance-config-save{grid-column:auto}}.attendance-collapsible{padding:0;overflow:hidden}.attendance-fold-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 18px;border:0;background:#fff;text-align:left;color:inherit;cursor:pointer}.attendance-fold-head h3{margin:0 0 4px}.attendance-fold-head p{margin:0;color:var(--muted);font-size:.75rem}.attendance-live-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:0 18px 10px;color:var(--muted);font-size:.6875rem}.attendance-live-toolbar button{display:flex;align-items:center;gap:5px;border:1px solid #dbe5e0;border-radius:8px;padding:7px 10px;background:#fff;color:#286b54;cursor:pointer}.attendance-live-list{max-height:min(52vh,520px);overflow-y:auto;border-top:1px solid #edf1ef}.attendance-live-row{display:grid;grid-template-columns:minmax(110px,.75fr) minmax(190px,1fr) minmax(190px,1fr);gap:10px;align-items:center;padding:11px 18px;border-bottom:1px solid #edf1ef}.attendance-live-row.abnormal{background:#fffaf7}.attendance-live-name{display:flex;flex-direction:column;gap:2px}.attendance-live-name small{color:var(--muted);font-size:.6875rem}.attendance-live-slot{display:grid;grid-template-columns:1fr auto;gap:3px 8px;align-items:center;padding:8px 10px;border-radius:9px;background:#f5f8f6}.attendance-live-slot span{grid-column:1/-1;color:var(--muted);font-size:.6875rem}.attendance-live-slot b{font-size:.75rem}.attendance-live-slot.late,.attendance-live-slot.overdue,.attendance-live-slot.missing{background:#fff0ec;color:#aa4030}.attendance-live-slot.excused{color:#7c8984}.attendance-live-slot button{border:1px solid #bfd8cc;border-radius:7px;padding:5px 9px;background:#fff;color:#216249;cursor:pointer}.attendance-live-slot button.link-danger{border-color:#eccbc5;color:#a64031}.attendance-collapsible>.attendance-review-actions{padding:0 18px 12px}.attendance-collapsible>.attendance-exception-list,.attendance-collapsible>.attendance-all-clear,.attendance-collapsible>.attendance-message{margin:0 18px 16px}.attendance-modal-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px;background:#121f1b75}.attendance-modal{position:relative;width:min(420px,100%);display:grid;gap:13px;padding:22px;border-radius:18px;background:#fff;box-shadow:0 24px 70px #0003}.attendance-modal h3,.attendance-modal p{margin:0}.attendance-modal p,.attendance-modal small{color:var(--muted)}.attendance-modal label{display:grid;gap:6px;font-size:.75rem}.attendance-modal input,.attendance-modal select{height:42px;border:1px solid #d7e1dc;border-radius:9px;padding:0 10px;background:#fff}.attendance-modal-close{position:absolute;right:12px;top:12px;border:0;background:transparent;cursor:pointer}.attendance-modal-submit{height:43px;border:0;border-radius:10px;background:var(--green-2);color:#fff;font-weight:700;cursor:pointer}@media(max-width:760px){.attendance-live-list{max-height:42vh}.attendance-live-row{grid-template-columns:1fr;padding:11px 13px}.attendance-live-name{flex-direction:row;justify-content:space-between}.attendance-live-slot{grid-template-columns:1fr auto}.attendance-fold-head{padding:15px 14px}.attendance-collapsible>.attendance-review-actions{padding:0 14px 12px}.attendance-collapsible>.attendance-exception-list,.attendance-collapsible>.attendance-all-clear,.attendance-collapsible>.attendance-message{margin:0 14px 14px}}.panel{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:21px;box-shadow:var(--shadow)}.panel-heading{display:flex;justify-content:space-between;align-items:start}.panel-heading h3,.section-heading h3{margin:0 0 4px;font-size:.9375rem}.panel-heading p{margin:0;color:var(--muted);font-size:.6875rem}.text-button{border:0;background:transparent;color:#6e7b76;font-size:.75rem;display:flex;align-items:center;cursor:pointer}.bar-list{margin-top:24px;display:flex;flex-direction:column;gap:18px}.bar-row{display:grid;grid-template-columns:34px 75px 1fr 70px;gap:10px;align-items:center}.bar-row strong,.bar-row b{font-size:.75rem}.bar-row b{text-align:right}.bar-icon{width:31px;height:31px;border-radius:8px;display:grid;place-items:center;color:#376c5e;background:#e6efeb}.bar-icon.shade-1{color:#a6702a;background:#f4ead8}.bar-icon.shade-2{color:#4d7084;background:#e8eef2}.bar-icon.shade-3{color:#9c5f56;background:#f4e7e4}.bar-track{height:7px;background:#eeefea;border-radius:99px;overflow:hidden}.bar-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2b6b59,#61a289)}.task-count{background:#edf0ec;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;font-size:.75rem}.task{width:100%;border:0;border-top:1px solid #eeeFe9;background:transparent;padding:14px 0 0;margin-top:14px;display:grid;grid-template-columns:34px 1fr auto;text-align:left;align-items:center;gap:9px;cursor:pointer}.task-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:8px}.task-icon.danger{color:#ba5546;background:#f8e8e4}.task-icon.amber{color:#ae7829;background:#f7eddb}.task-icon.green{color:#347762;background:#e8f1ed}.task span:nth-child(2){display:flex;flex-direction:column;gap:3px}.task strong{font-size:.75rem}.task small{color:var(--muted);font-size:.625rem}.task>svg{color:#a0a9a5}.all-clear{min-height:135px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;color:#30715e;text-align:center}.all-clear strong{font-size:.75rem}.all-clear span{color:var(--muted);font-size:.625rem}.quick-section{margin-top:24px}.section-heading{margin-bottom:12px}.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.quick-card{padding:15px;border:1px solid var(--line);background:#fffef9bd;border-radius:11px;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;text-align:left;cursor:pointer;color:inherit}.quick-card:hover{background:#fff;border-color:#cfd8d3;box-shadow:var(--shadow);transform:translateY(-1px)}.quick-card>span{width:36px;height:36px;display:grid;place-items:center;border-radius:9px;background:#e8efeb;color:#306c5c}.quick-card div{display:flex;flex-direction:column;gap:3px}.quick-card strong{font-size:.75rem}.quick-card small{color:var(--muted);font-size:.625rem}.quick-card>svg{color:#a5ada9}.filter-tabs{display:flex;gap:7px;margin-bottom:14px;overflow-x:auto}.filter-tabs button{border:1px solid var(--line);background:var(--paper);color:#68756f;border-radius:8px;padding:8px 14px;white-space:nowrap;cursor:pointer}.filter-tabs button.active{background:var(--green);color:#fff;border-color:var(--green)}.inventory-panel{padding:0;overflow:hidden}.inventory-head,.inventory-row{display:grid;grid-template-columns:1.5fr .8fr .7fr .7fr auto;align-items:center;gap:14px;padding:13px 20px}.inventory-head{background:#f0f1ec;color:#7d8883;font-size:.6875rem}.inventory-row{border-top:1px solid var(--line);min-height:64px;font-size:.75rem}.inventory-row>div{display:grid;grid-template-columns:36px 1fr;align-items:center;column-gap:9px}.inventory-row>div .item-avatar{grid-row:1 / span 2;width:35px;height:35px;border-radius:9px;background:#e7efeb;color:#276451;display:grid;place-items:center;font-weight:700}.inventory-row small{color:var(--muted)}.inventory-row em{width:fit-content;padding:4px 9px;border-radius:99px;font-style:normal;font-size:.625rem}.stock-ok{background:#e8f2ed;color:#267154}.stock-low{background:#f8e7e3;color:#b64f40}.item-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end}.icon-button{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--paper);color:#6b7a73;display:grid;place-items:center;cursor:pointer;transition:all .15s}.icon-button:hover{background:#eef4f0;color:#2c6b58;border-color:#bcd3c8}.icon-button.danger:hover{background:#fbecea;color:#b64f40;border-color:#e8c5bf}.modal-backdrop{position:fixed;inset:0;background:#1217155c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .18s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-card{background:#fffffffa;border-radius:20px;padding:28px 26px 22px;width:380px;max-width:90vw;box-shadow:0 20px 60px #0000002e;text-align:center;animation:popIn .22s cubic-bezier(.2,.9,.3,1.2)}@keyframes popIn{0%{opacity:0;transform:scale(.92) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-icon{width:52px;height:52px;border-radius:14px;margin:0 auto 14px;display:grid;place-items:center;background:#e8f2ed;color:#245f4e}.modal-card h3{margin:0 0 10px;font-size:1rem;color:#24332d}.modal-card p{margin:0 0 22px;color:#5a6a63;font-size:.8125rem;line-height:1.7}.modal-card p strong{color:#24332d}.modal-actions{display:flex;gap:10px;justify-content:center}.modal-actions button{min-width:96px;justify-content:center}.coming-soon{min-height:55vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.coming-soon>span{width:72px;height:72px;display:grid;place-items:center;background:#e3ece7;color:#2c6b58;border-radius:22px}.coming-soon h2{font:700 1.5rem "Noto Serif SC",serif;margin:18px 0 8px}.coming-soon p{color:var(--muted);max-width:430px;margin:0;font-size:.8125rem}.coming-soon b{margin-top:18px;background:#f4e8d3;color:#906820;border-radius:99px;padding:6px 12px;font-size:.6875rem}.import-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,.55fr);gap:15px}.import-main{min-height:330px}.drop-zone{width:100%;min-height:180px;border:1.5px dashed #aebdb6;border-radius:12px;background:#f5f7f3;color:#38715f;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;cursor:pointer}.drop-zone:hover{border-color:var(--green-2);background:#eef4f0}.drop-zone strong{color:#294a40;font-size:.875rem}.drop-zone span{color:var(--muted);font-size:.6875rem}.file-preview{margin-top:18px;border-top:1px solid var(--line);padding-top:17px}.file-title{display:flex;align-items:center;gap:10px}.file-title>span{width:40px;height:40px;border-radius:9px;display:grid;place-items:center;background:#e7f0eb;color:#2f705d}.file-title>div{min-width:0;display:flex;flex-direction:column;gap:3px}.file-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem}.file-title small{color:var(--muted)}.preview-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:15px 0}.preview-metrics div{background:#f3f4ef;border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:4px}.preview-metrics span{color:var(--muted);font-size:.625rem}.preview-metrics strong{font-size:.9375rem}.warning-box,.import-message{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:8px;font-size:.6875rem;margin:12px 0}.warning-box{background:#fff5df;color:#8d651d}.warning-box p{margin:0 0 3px}.import-message.ok{background:#e7f2ec;color:#267056}.import-message.error{background:#faeae7;color:#ae4e40}.import-submit{margin-left:auto}.import-submit:disabled{opacity:.6;cursor:wait}.import-help h3{margin:0 0 16px;font-size:.9375rem}.import-help ol{padding-left:21px;margin:0;color:#50635c;font-size:.75rem;line-height:2.2}.import-help p{margin:16px 0 0;border-top:1px solid var(--line);padding-top:14px;color:var(--muted);font-size:.6875rem;line-height:1.8}.import-history{margin-top:15px}.history-row{display:grid;grid-template-columns:32px 1fr auto 145px;gap:10px;align-items:center;padding:13px 0;border-top:1px solid var(--line);font-size:.75rem}.history-row:first-of-type{margin-top:14px}.history-row>span{color:#33715f}.history-row>div{min-width:0;display:flex;flex-direction:column;gap:3px}.history-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-row small,.history-row time{color:var(--muted);font-size:.625rem}.history-row em{background:#e7f2ec;color:#267056;font-style:normal;border-radius:99px;padding:4px 9px;font-size:.625rem}.empty-history{padding:28px 0 8px;text-align:center;color:var(--muted);font-size:.75rem}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.month-picker{border:1px solid var(--line);background:var(--paper);height:41px;padding:0 13px;border-radius:9px;color:var(--green)}.report-notice{margin:15px 0;border:1px solid #edd4a7;background:#fff7e8;color:#84601f;border-radius:11px;padding:13px 15px;display:flex;align-items:flex-start;gap:10px}.report-notice div{display:flex;flex-direction:column;gap:3px}.report-notice strong{font-size:.75rem}.report-notice span{font-size:.6875rem;line-height:1.6}.report-actions{display:flex;gap:9px;align-items:center}.report-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,.65fr);gap:15px;margin-top:15px}.report-grid.lower{grid-template-columns:repeat(2,minmax(0,1fr))}.trend-panel{min-width:0}.daily-chart{height:220px;display:flex;align-items:end;gap:5px;padding:25px 4px 0;border-bottom:1px solid var(--line)}.daily-column{position:relative;height:100%;flex:1;min-width:3px;padding:0;border:0;background:transparent;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:5px;cursor:pointer;font:inherit}.daily-column i{width:100%;max-width:20px;min-height:2px;background:linear-gradient(#5c9a83,#255e4e);border-radius:4px 4px 1px 1px}.daily-column span{height:14px;font-size:.5rem;color:var(--muted)}.daily-column:hover i,.daily-column.active i,.daily-column:focus-visible i{filter:brightness(1.13);box-shadow:0 0 0 2px #2d705924}.daily-column .daily-tooltip{position:absolute;z-index:3;left:50%;transform:translate(-50%);width:max-content;height:auto;display:grid;gap:2px;padding:7px 9px;border-radius:8px;background:#183e34;color:#fff;font-size:.625rem;line-height:1.25;box-shadow:0 7px 20px #12302733;pointer-events:none}.daily-column .daily-tooltip strong{color:#fff;font-size:.75rem}.daily-column .daily-tooltip:after{content:"";position:absolute;top:100%;left:50%;margin-left:-4px;border:4px solid transparent;border-top-color:#183e34}.report-summary{padding-bottom:10px}.summary-row{display:grid;grid-template-columns:1fr auto 54px;align-items:center;gap:9px;padding:14px 0;border-top:1px solid var(--line);margin-top:12px;font-size:.6875rem}.summary-row+.summary-row{margin-top:0}.summary-row strong{font-size:.75rem}.summary-row em{padding:4px 7px;border-radius:99px;font-style:normal;font-size:.5625rem;text-align:center}.summary-row .ready{color:#276f55;background:#e6f1eb}.summary-row .waiting{color:#9a6d21;background:#f8ecd7}.category-report{margin-top:17px}.category-report div{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-top:1px solid var(--line);font-size:.75rem}.top-dishes{margin-top:13px}.top-dishes div{display:grid;grid-template-columns:24px 1fr 50px 74px;gap:8px;align-items:center;padding:9px 0;border-top:1px solid var(--line);font-size:.6875rem}.top-dishes b{width:21px;height:21px;display:grid;place-items:center;background:#eef0eb;color:#64716c;border-radius:6px}.top-dishes small{color:var(--muted)}.top-dishes strong{text-align:right}.expenses-panel{margin-top:15px}.expenses-panel .panel-heading>strong{color:var(--green);font-size:1.125rem}.expense-row{display:grid;grid-template-columns:120px 90px 1fr 90px;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--line);font-size:.6875rem}.expense-row small,.expense-row p{color:var(--muted);margin:0}.expense-row>strong{text-align:right}.expense-drawer{width:min(480px,94vw);height:100%;background:#f8f8f4;display:grid;grid-template-rows:auto 1fr auto;box-shadow:-12px 0 35px #0a1e1829}.expense-drawer header{padding:20px 23px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.expense-drawer header span{color:var(--muted);font-size:.625rem}.expense-drawer header h2{margin:3px 0 0;font:700 1.3125rem "Noto Serif SC",serif}.expense-drawer header button{border:0;background:transparent;cursor:pointer;color:#64716c}.expense-drawer footer{padding:14px 23px;border-top:1px solid var(--line);background:var(--paper);display:flex;justify-content:flex-end;gap:9px}.capture-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.55fr);gap:15px}.camera-start{width:100%;min-height:360px;border:1.5px dashed #a9bbb3;background:#f1f5f1;color:#2e705c;border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;cursor:pointer}.camera-start strong{color:#234b3e;font-size:1rem}.camera-start span{color:var(--muted);font-size:.6875rem}.receipt-preview{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,.75fr);gap:16px;align-items:center}.receipt-preview img{width:100%;max-height:430px;object-fit:contain;border-radius:10px;background:#ecece7}.quality-card{border-radius:10px;padding:15px;display:flex;align-items:flex-start;gap:9px}.quality-card.good{color:#286e56;background:#e5f1ea}.quality-card.warning{color:#94691f;background:#fff3dd}.quality-card div{display:flex;flex-direction:column;gap:6px}.quality-card strong{font-size:.8125rem}.quality-card span{font-size:.6875rem;line-height:1.45}.capture-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:16px}.secondary-button{border:1px solid var(--line);background:#fff;color:#52645d;height:43px;padding:0 15px;border-radius:9px;display:flex;align-items:center;gap:7px;cursor:pointer}.capture-done{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#286e56;text-align:center}.capture-done span{color:var(--muted);font-size:.6875rem}.capture-done .primary-button{margin-top:7px}.capture-guide h3{margin:0 0 12px;font-size:.9375rem}.capture-guide>div{display:grid;grid-template-columns:27px 1fr;gap:9px;align-items:start;padding:13px 0;border-top:1px solid var(--line)}.capture-guide b{width:25px;height:25px;display:grid;place-items:center;background:#e8f0eb;color:#2d6d59;border-radius:7px;font-size:.6875rem}.capture-guide span{color:var(--muted);font-size:.6875rem;line-height:1.6}.capture-guide strong{color:#334b43;margin-right:4px}.capture-grid>aside{display:flex;flex-direction:column;gap:15px}.receipt-inbox{padding:17px}.receipt-inbox .panel-heading b{min-width:25px;height:25px;border-radius:99px;display:grid;place-items:center;background:#f3e5cb;color:#8c6424;font-size:.6875rem}.inbox-summary{margin-top:11px;padding:9px 11px;border-radius:10px;display:flex;justify-content:space-between;align-items:baseline;gap:10px;background:#245f4e14;color:#4b6b60;font-size:.6875rem}.inbox-summary strong{color:#1e4c3e;font-size:.8125rem;font-variant-numeric:tabular-nums}.receipt-inbox-list{display:flex;flex-direction:column;gap:8px;margin-top:11px;max-height:360px;overflow-y:auto;overflow-x:hidden;padding-right:2px}.inbox-card{min-width:0;border:1px solid var(--line);border-radius:11px;background:#fff9;overflow:hidden;transition:border-color .18s ease,background .18s ease}.inbox-card:hover{border-color:#245f4e4d;background:#ffffffdb}.inbox-card.active{border-color:#245f4e73;background:#ffffffeb}.inbox-row{width:100%;min-width:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;padding:10px 11px 7px;display:grid;grid-template-columns:9px minmax(0,1fr) auto 74px;gap:8px;align-items:center}.inbox-dot{width:9px;height:9px;border-radius:50%;background:#cfd8d4}.inbox-dot.ready,.inbox-dot.fuzzy{background:#e5484d;box-shadow:0 0 0 3px #e5484d29}.inbox-dot.failed{background:#d0873a}.inbox-main{min-width:0;display:flex;flex-direction:column;gap:3px}.inbox-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:600;color:#243a32}.inbox-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.625rem;line-height:1.4}.inbox-amount{text-align:right;font-size:.8125rem;font-weight:600;color:#1e4c3e;font-variant-numeric:tabular-nums}.inbox-amount.empty{color:#9aa6a0;font-weight:400}.inbox-badge{white-space:nowrap;padding:2px 7px;border-radius:99px;font-size:.625rem;background:#245f4e1a;color:#2d6d59}.inbox-badge.fuzzy{background:#bd8d3b2e;color:#8c6424}.inbox-badge.failed{background:#a94e4021;color:#a94e40}.inbox-badge.waiting{background:#505f5817;color:#7d8984}.inbox-tools{display:flex;align-items:center;gap:8px;padding:0 11px 9px}.inbox-tools label{flex:1;min-width:0;display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.5625rem}.inbox-tools select{flex:1;min-width:0;height:28px;padding:0 6px;border:1px solid var(--line);border-radius:7px;background:#ffffffd9;color:#426057;font-size:.6875rem}.inbox-delete{margin-left:auto;height:28px;padding:0 8px;border:0;border-radius:7px;background:transparent;color:var(--muted);display:inline-flex;align-items:center;gap:4px;cursor:pointer;font-size:.625rem}.inbox-delete:hover{background:#a94e401a;color:#a94e40}.inbox-delete:disabled{opacity:.5;cursor:not-allowed}.receipt-empty{min-height:70px;display:flex;align-items:center;justify-content:center;gap:7px;color:#39715f;font-size:.625rem}.line-editor input.amount-mismatch{border-color:#d07a62;background:#fff5f1}.purchase-tabs{margin:20px 34px -9px;max-width:1372px;display:flex;align-items:center;gap:7px}.purchase-tabs button{height:38px;padding:0 14px;border:1px solid var(--line);background:var(--paper);color:#65736e;border-radius:8px;display:flex;align-items:center;gap:7px;cursor:pointer}.purchase-tabs button.active{background:var(--green);color:#fff;border-color:var(--green)}.purchase-tabs>span{margin-left:auto;color:var(--muted);font-size:.625rem;display:flex;align-items:center;gap:5px}.month-filter{height:40px;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.625rem}.month-filter input{height:38px;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:0 9px;color:#364b44}.month-filter button{height:38px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:#52645e;cursor:pointer}.purchase-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:15px}.purchase-summary-grid article{padding:16px 18px;border-radius:11px;border:1px solid var(--line);background:var(--paper);display:flex;flex-direction:column;gap:5px;box-shadow:var(--shadow)}.purchase-summary-grid span{color:var(--muted);font-size:.625rem}.purchase-summary-grid strong{font-size:1.3125rem}.purchase-summary-grid .warning-number{color:#b45b45}.purchase-history-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(310px,.65fr);gap:15px}.purchase-list-panel{padding:0;overflow:hidden}.purchase-list-panel>.panel-heading{padding:18px 20px}.purchase-list-head,.purchase-list>button{display:grid;grid-template-columns:105px 1fr 60px 100px 18px;gap:10px;align-items:center}.purchase-list-head{padding:9px 20px;color:var(--muted);background:#f1f2ed;font-size:.5625rem}.purchase-list>button{width:100%;min-height:55px;padding:10px 20px;border:0;border-top:1px solid var(--line);background:var(--paper);color:#354b44;text-align:left;cursor:pointer}.purchase-list>button:hover{background:#fafaf6}.purchase-list time,.purchase-list span{font-size:.6875rem}.purchase-list small{color:var(--muted);font-size:.5625rem}.purchase-list strong{text-align:right;font-size:.6875rem}.purchase-list svg{color:#a1aaa6}.history-loading{min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:#6e8079;font-size:.6875rem}.price-alert-list{margin-top:14px;display:flex;flex-direction:column}.price-alert-list>div{display:grid;grid-template-columns:30px 1fr auto;gap:8px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.price-alert-list>div>span{width:28px;height:28px;display:grid;place-items:center;border-radius:8px}.price-alert-list .price-up{color:#b34f41;background:#fae9e5}.price-alert-list .price-down{color:#2c775c;background:#e7f1eb}.price-alert-list p,.price-alert-list>div>div{margin:0;display:flex;flex-direction:column;gap:2px;min-width:0}.price-alert-list strong,.price-alert-list b{font-size:.6875rem}.price-alert-list>div>div{text-align:right}.price-alert-list>div>div b{color:#ad4e41}.price-alert-list small{color:var(--muted);font-size:.5rem;white-space:nowrap}.no-price-alert{min-height:130px!important;display:flex!important;justify-content:center;color:var(--muted);font-size:.625rem}.purchase-drawer{width:min(620px,94vw);height:100%;background:#f8f8f4;box-shadow:-12px 0 35px #0a1e1829;display:grid;grid-template-rows:auto 1fr}.purchase-drawer header{padding:20px 23px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.purchase-drawer header span{color:var(--muted);font-size:.625rem}.purchase-drawer header h2{margin:3px 0 0;font:700 1.3125rem "Noto Serif SC",serif}.purchase-drawer header button{border:0;background:transparent;color:#65736e;cursor:pointer}.purchase-detail-total{padding:15px;background:#e7efea;border-radius:10px;display:flex;align-items:center;justify-content:space-between}.purchase-detail-total span{color:#61756e;font-size:.625rem}.purchase-detail-total strong{color:#24614f;font-size:1.375rem}.purchase-receipt-image{display:block;width:100%;max-height:360px;object-fit:contain;margin:14px 0;border-radius:9px;background:#ecece7}.purchase-detail-lines{margin-top:14px}.purchase-detail-lines>div{display:grid;grid-template-columns:1.4fr .8fr .8fr .8fr;gap:8px;align-items:center;padding:11px 8px;border-bottom:1px solid var(--line);font-size:.625rem}.purchase-detail-lines>div:first-child{color:var(--muted);background:#eeeeea;border-radius:7px 7px 0 0}.purchase-detail-lines b{text-align:right}.purchase-detail-lines small{grid-column:1 / span 4;color:#a06a2d}.receipt-form{margin-top:18px;padding-top:17px;border-top:1px solid var(--line)}.form-heading div{display:flex;flex-direction:column;gap:4px}.form-heading strong{font-size:.9375rem}.form-heading span{color:var(--muted);font-size:.625rem}.receipt-meta{display:grid;grid-template-columns:1fr 180px;gap:10px;margin:14px 0}.receipt-meta label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:.625rem}.receipt-meta input,.line-editor input,.line-editor select{width:100%;min-width:0;height:38px;border:1px solid var(--line);background:#fff;border-radius:7px;padding:0 9px;color:#243a33}.line-editor{overflow-x:auto}.line-editor-head,.line-editor-row{min-width:660px;display:grid;grid-template-columns:1.5fr 105px 80px 70px 95px 30px;gap:7px;align-items:center}.line-editor-head{color:var(--muted);font-size:.5625rem;padding:7px 2px}.line-editor-row{margin-bottom:7px}.line-editor-row>button{width:30px;height:34px;border:0;color:#a35b50;background:transparent;display:grid;place-items:center;cursor:pointer}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:13px}.form-actions .add-line{margin-right:auto;color:#2f705d}.form-actions>strong{font-size:.8125rem}.raw-ocr-section{margin-top:12px;border-top:1px solid #e7e7df;padding-top:10px}.raw-ocr-toggle{display:flex;align-items:center;gap:6px;background:none;border:0;color:#7d8984;font-size:.75rem;cursor:pointer;padding:4px 0}.raw-ocr-toggle:hover{color:#173f34}.raw-ocr-text{margin:8px 0 0;padding:10px 12px;background:#f5f4ef;border:1px solid #e7e7df;border-radius:8px;font-size:.75rem;line-height:1.7;color:#44554f;white-space:pre-wrap;word-break:break-all;max-height:200px;overflow-y:auto}.recipe-progress{display:flex;flex-direction:column;align-items:flex-end}.recipe-progress strong{font-size:1.25rem;color:var(--green-2)}.recipe-progress span{color:var(--muted);font-size:.625rem}.dish-toolbar{display:flex;align-items:start;justify-content:space-between;gap:12px}.filter-tabs small{opacity:.65;margin-left:3px}.dish-search{height:37px;min-width:210px;border:1px solid var(--line);background:var(--paper);border-radius:8px;display:flex;align-items:center;gap:7px;padding:0 10px;color:var(--muted)}.dish-search input{border:0;outline:0;background:transparent;min-width:0}.dish-table{padding:0;overflow:hidden}.dish-head,.dish-row{display:grid;grid-template-columns:1.55fr .65fr .7fr .55fr .7fr 20px;gap:12px;align-items:center;padding:13px 20px}.dish-head{background:#f0f1ec;color:var(--muted);font-size:.625rem}.dish-row{width:100%;min-height:63px;border:0;border-top:1px solid var(--line);background:var(--paper);text-align:left;color:inherit;cursor:pointer}.dish-row:hover{background:#fafaf6}.dish-row>div{display:grid;grid-template-columns:35px 1fr;gap:2px 9px;align-items:center;min-width:0}.dish-row>div>span{grid-row:1 / span 2;width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#e7efe9;color:#2d6b58;font-weight:700}.dish-row strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.75rem}.dish-row small{color:var(--muted);font-size:.5625rem}.dish-row b{font-size:.6875rem}.dish-row em{font-style:normal;font-size:.6875rem}.dish-row .cost-high{color:#b45446}.dish-row i{width:fit-content;border-radius:99px;padding:4px 8px;font-style:normal;font-size:.5625rem}.recipe-ready{background:#e7f1eb;color:#267055}.recipe-empty{background:#f7ecd8;color:#936a24}.dish-row>svg{color:#a0aaa5}.drawer-backdrop{position:fixed;inset:0;z-index:60;background:#0f1e1973;display:flex;justify-content:flex-end}.recipe-drawer{width:min(620px,94vw);height:100%;background:#f8f8f4;box-shadow:-12px 0 35px #0a1e1829;display:grid;grid-template-rows:auto 1fr auto}.recipe-drawer header{padding:20px 23px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.recipe-drawer header span{color:var(--muted);font-size:.625rem}.recipe-drawer header h2{margin:3px 0 0;font:700 1.3125rem "Noto Serif SC",serif}.recipe-drawer header button{border:0;background:transparent;color:#64716c;cursor:pointer}.drawer-body{min-height:0;overflow-y:auto;padding:20px 23px}.recipe-intro{display:flex;gap:10px;padding:13px;border-radius:10px;background:#e7efea;color:#2d6957}.recipe-intro div{display:flex;flex-direction:column;gap:3px}.recipe-intro strong{font-size:.75rem}.recipe-intro span{font-size:.625rem;color:#657c73}.recipe-editor{margin-top:16px;overflow-x:auto}.recipe-editor-head,.recipe-editor-row{min-width:540px;display:grid;grid-template-columns:1.5fr 115px 70px 85px 28px;gap:7px;align-items:center}.recipe-editor-head{padding:6px 2px;color:var(--muted);font-size:.5625rem}.recipe-editor-row{margin-bottom:7px}.recipe-editor-row input,.recipe-editor-row select{min-width:0;width:100%;height:38px;padding:0 8px;border:1px solid var(--line);border-radius:7px;background:#fff}.recipe-editor-row label{position:relative}.recipe-editor-row label input{padding-right:35px}.recipe-editor-row label small{position:absolute;right:7px;top:12px;color:var(--muted);font-size:.5625rem}.recipe-editor-row>button{border:0;background:transparent;color:#a55247;cursor:pointer}.recipe-add{margin-top:5px}.recipe-drawer footer{padding:14px 23px;border-top:1px solid var(--line);background:var(--paper);display:flex;justify-content:flex-end;gap:9px}.inventory-actions{display:flex;gap:9px}.inventory-empty{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#477366;gap:8px}.inventory-empty strong{color:#354b44}.inventory-empty span{color:var(--muted);font-size:.6875rem}.inventory-empty button{margin-top:5px}.inventory-drawer{width:min(540px,94vw);height:100%;background:#f8f8f4;display:grid;grid-template-rows:auto 1fr auto;box-shadow:-12px 0 35px #0a1e1829}.inventory-drawer header{padding:20px 23px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.inventory-drawer header span{color:var(--muted);font-size:.625rem}.inventory-drawer header h2{margin:3px 0 0;font:700 1.3125rem "Noto Serif SC",serif}.inventory-drawer header button{border:0;background:transparent;cursor:pointer;color:#64716c}.inventory-drawer footer{padding:14px 23px;border-top:1px solid var(--line);background:var(--paper);display:flex;justify-content:flex-end;gap:9px}.item-form{display:flex;flex-direction:column;gap:13px}.item-form label{display:flex;flex-direction:column;gap:5px;color:#53635d;font-size:.6875rem}.item-form input,.item-form select{height:40px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 10px}.item-form small{color:var(--muted);line-height:1.5}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stocktake-note{padding:11px;background:#e9f0ec;color:#527268;border-radius:8px;font-size:.625rem;margin-bottom:10px}.stocktake-list label{display:grid;grid-template-columns:1fr 105px 34px;gap:7px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.stocktake-list label>span{display:flex;flex-direction:column;gap:3px}.stocktake-list strong{font-size:.75rem}.stocktake-list small{color:var(--muted);font-size:.5625rem}.stocktake-list input{min-width:0;height:38px;border:1px solid var(--line);border-radius:7px;padding:0 8px}.stocktake-list b{font-size:.625rem;color:var(--muted)}.usage-form{display:flex;flex-direction:column;gap:13px}.usage-form>label{display:flex;flex-direction:column;gap:5px;color:#53635d;font-size:.6875rem}.usage-form>label input,.usage-form>label select{height:40px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 10px}.usage-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px}.usage-meta label{display:flex;flex-direction:column;gap:5px;color:#53635d;font-size:.6875rem}.usage-meta input,.usage-meta select{height:40px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 10px}.usage-lines{display:flex;flex-direction:column;gap:8px}.usage-lines>div{display:grid;grid-template-columns:1fr 90px 35px 30px;gap:6px;align-items:center}.usage-lines select,.usage-lines input{width:100%;min-width:0;height:40px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0 8px}.usage-lines b{color:var(--muted);font-size:.625rem}.usage-lines button{width:30px;height:36px;border:0;background:transparent;color:#a65349;cursor:pointer}.usage-add{color:#2c705b;padding:8px 0}.usage-operation-list{display:grid;gap:10px}.usage-operation{border:1px solid var(--line);border-radius:11px;padding:12px;display:grid;gap:9px;background:#fff}.usage-operation>header{display:flex;justify-content:space-between;align-items:start;gap:10px}.usage-operation>header div{display:grid;gap:3px}.usage-operation strong{font-size:.75rem}.usage-operation small,.usage-operation p{color:var(--muted);font-size:.625rem}.usage-operation p{margin:0}.usage-operation ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.usage-operation li{display:grid;grid-template-columns:1fr auto 72px;gap:8px;padding:7px 0;border-bottom:1px solid var(--line);font-size:.625rem}.usage-operation li small{text-align:right}.usage-reversal-form{display:grid;grid-template-columns:1fr auto;gap:8px}.usage-reversal-form input{min-width:0;height:38px;border:1px solid var(--line);border-radius:8px;padding:0 10px}.usage-reversed{padding:8px 10px;border-radius:8px;background:#f2eee8;color:#806b53;font-size:.625rem}.usage-operation.reversed{opacity:.82}.segment{display:flex;gap:6px;padding:4px;background:#e9ece9;border-radius:10px}.segment button{border:0;background:transparent;padding:9px 12px;border-radius:8px;display:flex;align-items:center;gap:6px;cursor:pointer}.segment button.active{background:#fff;color:#245f4e;box-shadow:0 2px 8px #0000000f}.aux-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.aux-grid .panel{min-width:0}.aux-grid h3{margin:0 0 12px}.compact-form{display:flex;flex-wrap:wrap;gap:7px;padding-bottom:12px;border-bottom:1px solid var(--line)}.compact-form input,.compact-form select{height:36px;min-width:100px;flex:1;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0 8px}.compact-form button,.aux-list button{height:36px;border:0;border-radius:7px;background:#245f4e;color:#fff;padding:0 11px;display:inline-flex;align-items:center;gap:4px;cursor:pointer}.aux-list{display:grid}.aux-list>div{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:9px;border-bottom:1px solid var(--line)}.aux-list>div>span:first-child{display:grid;gap:4px}.aux-list strong{font-size:.6875rem}.aux-list small{font-size:.5625rem;color:var(--muted)}.aux-list b{font-size:.625rem}.row-actions{display:flex;gap:5px}.row-actions button{width:34px;padding:0;justify-content:center}.price-up{color:#b34f42}.aux-grid>article:nth-child(3){grid-column:1/-1}@media(max-width:800px){.aux-grid{grid-template-columns:1fr}.aux-grid>article:nth-child(3){grid-column:auto}.segment{width:100%}.segment button{flex:1;justify-content:center}.compact-form{display:grid;grid-template-columns:1fr 1fr}.compact-form button{justify-content:center}}.compact-form button.ghost{background:transparent;color:var(--ant-color-text);border:1px solid var(--ant-color-border)}.compact-form button.ghost:hover{background:var(--ant-color-fill-tertiary,#f2f3f2)}.movement-list{display:flex;flex-direction:column}.movement-list>div{min-height:69px;display:grid;grid-template-columns:31px 1fr auto;gap:9px;align-items:center;border-bottom:1px solid var(--line)}.review-list{display:flex;flex-direction:column;gap:10px}.review-note{background:#eef3ef;color:#3d5a4e;font-size:.6875rem;padding:10px 12px;border-radius:9px;line-height:1.55}.review-month{display:flex;align-items:center;gap:10px;font-size:.75rem;color:#42514c;font-weight:600}.review-month input{height:38px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:#fff}.review-row{border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;gap:10px}.review-row>div:first-child{display:grid;gap:4px}.review-row strong{font-size:.75rem}.review-row small{color:var(--muted);font-size:.625rem}.review-row em{font-size:.625rem;font-style:normal;padding:2px 8px;border-radius:20px;justify-self:start}.review-done{background:#e6efe9;color:#245f4e}.review-pending{background:#fdf1dc;color:#966b1f}.review-form{display:grid;grid-template-columns:1fr 1fr auto;gap:8px}.review-form select,.review-form input{height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 10px;font-size:.75rem}.movement-list>div>span{width:29px;height:29px;display:grid;place-items:center;border-radius:8px;font-weight:700}.movement-in{color:#287055;background:#e6f1eb}.movement-out{color:#b25748;background:#f8e9e5}.movement-list p,.movement-list>div>div{margin:0;min-width:0;display:flex;flex-direction:column;gap:2px}.movement-list strong,.movement-list b{font-size:.6875rem}.movement-list small{color:var(--muted);font-size:.5625rem}.movement-list em{color:#8b7160;font-size:.5625rem;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.movement-list>div>div{text-align:right}.team-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.team-summary-grid article{min-height:88px;padding:15px 17px;border:1px solid var(--line);border-radius:11px;background:var(--paper);display:grid;grid-template-columns:28px 1fr;align-items:center;box-shadow:var(--shadow)}.team-summary-grid svg{grid-row:1 / span 2;color:#31715e}.team-summary-grid span{color:var(--muted);font-size:.625rem}.team-summary-grid strong{font-size:1.25rem}.team-summary-grid .team-warning svg,.team-summary-grid .team-warning strong{color:#b45646}.task-safety-note{margin-bottom:14px;padding:13px 16px;border:1px solid #d7dfd9;border-radius:10px;background:#edf3ef;color:#2a6754;display:flex;align-items:center;gap:10px}.task-safety-note div{display:flex;flex-direction:column;gap:2px}.task-safety-note strong{font-size:.6875rem}.task-safety-note span{color:#698078;font-size:.5625rem}.publish-locked{opacity:.75;cursor:not-allowed}.team-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.65fr);gap:14px}.area-plan-list{margin-top:14px}.area-plan-list>div{min-height:66px;display:grid;grid-template-columns:32px 1fr auto;gap:9px;align-items:center;border-top:1px solid var(--line)}.area-plan-list>div>span{width:29px;height:29px;display:grid;place-items:center;border-radius:8px}.area-ready{background:#e5f0ea;color:#28705a}.area-missing{background:#f8e8e4;color:#b45546}.area-plan-list p,.area-plan-list>div>div{margin:0;display:flex;flex-direction:column;gap:2px}.area-plan-list strong,.area-plan-list b{font-size:.6875rem}.area-plan-list small{color:var(--muted);font-size:.5625rem}.area-plan-list>div>div{text-align:right}.readiness-panel .panel-heading{margin-bottom:13px}.readiness-row{min-height:48px;display:grid;grid-template-columns:27px 1fr auto;gap:7px;align-items:center;border-top:1px solid var(--line)}.readiness-row>span{width:25px;height:25px;display:grid;place-items:center;border-radius:7px}.readiness-row .ready{background:#e5f0ea;color:#28705a}.readiness-row .waiting{background:#f8e8e4;color:#b45546}.readiness-row strong{font-size:.625rem}.readiness-row em{font-style:normal;color:var(--muted);font-size:.5625rem}.readiness-result{margin-top:13px;padding:12px;border-radius:8px;background:#f4f1e8;display:flex;flex-direction:column;gap:3px}.readiness-result strong{font-size:.6875rem}.readiness-result span{color:var(--muted);font-size:.5625rem}.staff-panel{margin-top:14px;padding:0;overflow:hidden}.staff-panel>.panel-heading{padding:18px 20px}.staff-head,.staff-row{display:grid;grid-template-columns:.6fr .9fr 1.3fr 1fr .6fr;gap:12px;align-items:center;padding:11px 20px}.staff-head{background:#f0f1ec;color:var(--muted);font-size:.5625rem}.staff-row{min-height:53px;border-top:1px solid var(--line);font-size:.625rem}.staff-row .missing-phone{color:#b25244;font-weight:600}.staff-row em{width:fit-content;padding:4px 8px;border-radius:99px;font-style:normal;font-size:.5625rem}.reviewer-role{color:#8b6224;background:#f7ecd7}.contributor-role{color:#2d6c58;background:#e6f0ea}.recipe-match-panel{margin-bottom:14px;padding:0;overflow:hidden}.recipe-match-panel>.panel-heading{padding:17px 20px;background:#fff9e9}.recipe-match-panel>.panel-heading>strong{color:#966b1f}.coverage-panel{margin-bottom:14px;padding:0;overflow:hidden}.coverage-panel>.panel-heading{padding:17px 20px;display:flex;align-items:center;gap:14px}.coverage-panel>.panel-heading>div{flex:1;display:grid;gap:3px}.coverage-panel>.panel-heading>strong{font-size:1.625rem}.coverage-good{color:var(--green-2)}.coverage-bad{color:#b0493c}.coverage-bars{padding:8px 20px 2px;display:grid;gap:9px}.coverage-row{display:grid;grid-template-columns:70px 1fr 58px auto;gap:12px;align-items:center;font-size:.75rem}.coverage-row>span{color:var(--muted)}.coverage-row>b{text-align:right}.coverage-row>em{font-size:.6875rem;font-style:normal;padding:2px 8px;border-radius:20px}.coverage-row .bar-track{height:7px;background:#e7e4da;border-radius:4px;overflow:hidden}.coverage-row .bar-track i{display:block;height:100%;background:linear-gradient(90deg,var(--green-2),#4a8a72);border-radius:4px}.coverage-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px 16px;border-top:1px solid var(--line);margin-top:10px;flex-wrap:wrap}.coverage-foot>span{color:var(--muted);font-size:.75rem}.coverage-actions{display:flex;gap:10px}.coverage-missing{max-height:260px;overflow-y:auto;border-top:1px solid var(--line);padding:4px 20px 14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:2px 18px}.coverage-missing>div{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:8px 0;border-bottom:1px dashed var(--line)}.coverage-missing strong{font-size:.75rem}.coverage-missing span,.coverage-missing small{color:var(--muted);font-size:.625rem}.coverage-missing small{text-align:right}.recipe-match-row{min-height:76px;padding:12px 20px;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(180px,1fr) 145px 105px;gap:12px;align-items:center}.recipe-match-row>div{display:grid;gap:3px}.recipe-match-row span,.recipe-match-row small{color:var(--muted);font-size:.625rem}.recipe-match-row select,.recipe-match-row input{width:100%;height:39px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 10px}.recipe-match-row label{position:relative}.recipe-match-row label small{position:absolute;right:9px;top:14px;pointer-events:none}.recipe-match-row label input{padding-right:58px}.mobile-nav,.backdrop{display:none}.session-loading{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:12px;color:var(--green-2);background:#f3f1e9}.page-loading{min-height:45vh;display:grid;place-content:center;justify-items:center;gap:10px;color:var(--green-2)}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 15%,rgba(212,181,112,.18),transparent 32%),linear-gradient(145deg,#edf1eb,#f8f5ec)}.login-card{width:min(430px,100%);border:1px solid rgba(23,63,52,.13);border-radius:24px;background:#fffffcf5;box-shadow:0 28px 80px #173f3421;padding:34px}.login-brand{display:flex;align-items:center;gap:13px;padding-bottom:24px;border-bottom:1px solid var(--line)}.login-brand>span{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:var(--green-2);color:#fff;font-family:serif;font-size:1.625rem}.login-brand div,.login-title div{display:grid;gap:3px}.login-brand strong{color:var(--green-2);font-size:1.3125rem}.login-brand small,.login-title p{color:var(--muted)}.login-title{display:flex;gap:12px;align-items:center;margin:26px 0 22px;color:var(--green-2)}.login-title h1{margin:0;font-size:1.5rem}.login-title p{margin:3px 0 0;font-size:.75rem}.login-card form{display:grid;gap:17px}.login-card label{display:grid;gap:7px;color:#42514c;font-size:.8125rem;font-weight:600}.login-card input,.login-card select,.permission-editor input,.permission-editor select{height:44px;border:1px solid var(--line);border-radius:10px;padding:0 12px;outline:none;background:#fff}.login-card input:focus,.login-card select:focus,.permission-editor input:focus,.permission-editor select:focus{border-color:#477765;box-shadow:0 0 0 3px #4777651a}.password-input{position:relative}.password-input input{width:100%;padding-right:46px}.password-input button{position:absolute;right:5px;top:5px;width:34px;height:34px;border:0;background:transparent;color:var(--muted)}.login-submit{height:46px;margin-top:3px}.login-error{padding:10px 12px;border-radius:9px;background:#fff0ed;color:#a44638;font-size:.75rem}.login-card footer{margin-top:22px;text-align:center;color:var(--muted);font-size:.6875rem}.registration-entry{width:100%;margin-top:14px;padding:10px;border:0;background:transparent;color:#245f4e;display:flex;align-items:center;justify-content:center;gap:7px;font-weight:650;cursor:pointer}.registration-result{min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px}.registration-result>span{width:66px;height:66px;border-radius:22px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#2e735e,#174c3c);box-shadow:0 12px 30px #174c3c33}.registration-result h1{margin:8px 0 0;font-size:1.5625rem}.registration-result p{max-width:320px;margin:0 0 10px;color:var(--muted);line-height:1.7}.registration-review-panel{margin-bottom:18px;padding:20px}.pending-count{padding:6px 11px;border-radius:999px;color:#8b5d0d;background:#fff2cf;font-size:.75rem;font-weight:700}.registration-review-list{display:grid;gap:10px}.registration-review-row{display:grid;grid-template-columns:minmax(190px,1fr) 190px auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fbfcfb}.registration-person{display:flex;align-items:center;gap:11px}.registration-person>span{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;color:#245f4e;background:#e2efe8;font-weight:750}.registration-person div{display:grid;gap:3px}.registration-person small{color:var(--muted)}.registration-review-row select{height:39px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 9px}.registration-actions{display:flex;gap:8px}.registration-actions button{white-space:nowrap}.guest-entry{margin-top:18px;padding-top:18px;border-top:1px solid var(--line);display:grid;gap:8px;text-align:center}.guest-entry>span{color:var(--muted);font-size:.6875rem}.guest-entry button{height:46px;border:1px solid rgba(23,63,52,.2);border-radius:11px;background:#f4f7f3;color:var(--green-2);display:flex;align-items:center;justify-content:center;gap:8px;font-weight:700;cursor:pointer}.guest-entry button:hover{background:#eaf1ec}.guest-entry button:disabled{opacity:.55;cursor:wait}.guest-entry small{color:var(--muted);font-size:.6875rem}.guest-readonly-badge{padding:9px 13px;border-radius:999px;background:#eef3ef;color:var(--green-2);font-size:.75rem;font-weight:700}.sidebar-footer{width:100%;border:0;border-top:1px solid var(--line);background:transparent;text-align:left;color:inherit;cursor:pointer}.owner-only{display:inline-flex;align-items:center;gap:7px;color:#75511a;background:#f6ead2;padding:9px 13px;border-radius:99px;font-size:.75rem;font-weight:700}.settings-grid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:14px;align-items:start}.user-directory{padding:13px}.user-directory .panel-heading{padding:5px 5px 12px}.user-directory>button{width:100%;border:0;background:transparent;border-radius:11px;padding:10px;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:9px;text-align:left;cursor:pointer}.user-directory>button:hover,.user-directory>button.active{background:#edf3ef}.user-directory>button>span{width:36px;height:36px;border-radius:10px;background:#dfeae4;color:var(--green-2);display:grid;place-items:center;font-weight:800}.user-directory>button div{display:grid;gap:3px;min-width:0}.user-directory>button small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}.user-search{margin:0 14px 10px;height:40px;display:flex;align-items:center;gap:8px;padding:0 11px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted)}.user-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;font:inherit;color:var(--text)}.user-directory>button em{padding:4px 7px;border-radius:99px;font-size:.625rem;font-style:normal}.user-directory>button em.active{background:#e1f1e7;color:#27704f}.user-directory>button em.disabled{background:#eee;color:#777}.user-directory>button em.pending{background:#fff0cf;color:#93691e}.user-groups{display:grid;gap:8px}.user-group{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.user-group-toggle{width:100%;min-height:54px;padding:9px 11px;border:0;background:#fafbf9;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:9px;text-align:left;cursor:pointer;color:var(--text)}.user-group-toggle:hover{background:#f2f6f3}.user-group-toggle>span{display:grid;gap:2px}.user-group-toggle small{color:var(--muted);font-size:.625rem}.user-group-toggle b{color:var(--green-2);font-size:.6875rem;padding:3px 7px;border-radius:99px;background:#e7f1eb}.user-group-members{padding:5px;border-top:1px solid var(--line)}.user-group-members>button,.user-search-results>button{width:100%;border:0;background:transparent;border-radius:9px;padding:9px;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;text-align:left;cursor:pointer}.user-group-members>button:hover,.user-group-members>button.active,.user-search-results>button:hover,.user-search-results>button.active{background:#edf3ef}.user-group-members>button>span,.user-search-results>button>span{width:32px;height:32px;border-radius:9px;background:#dfeae4;color:var(--green-2);display:grid;place-items:center;font-weight:800}.user-group-members>button div,.user-search-results>button div{min-width:0;display:grid;gap:2px}.user-group-members>button small,.user-search-results>button small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-group-members>button em,.user-search-results>button em{padding:4px 7px;border-radius:99px;font-size:.625rem;font-style:normal}.user-group-members>button em.active,.user-search-results>button em.active{background:#e1f1e7;color:#27704f}.user-group-members>button em.disabled,.user-search-results>button em.disabled{background:#eee;color:#777}.user-group-members>button em.pending,.user-search-results>button em.pending{background:#fff0cf;color:#93691e}.user-search-results>p{margin:2px 5px 7px;color:var(--muted);font-size:.6875rem}.user-empty{padding:28px 10px;color:var(--muted);text-align:center}.permission-editor header{display:flex;gap:10px;align-items:center;color:var(--green-2);padding-bottom:15px;border-bottom:1px solid var(--line)}.mobile-back-users{display:none}.permission-edit-button{margin-left:auto}.account-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:16px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--line)}.account-summary>div{min-height:70px;padding:13px 15px;background:#fff;display:grid;align-content:center;gap:6px}.account-summary span{color:var(--muted);font-size:.6875rem}.account-summary strong{color:var(--text);font-size:.875rem}.permission-summary{grid-column:1 / -1;padding:15px;background:#fff}.permission-summary>div{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.permission-summary em{padding:6px 9px;border-radius:8px;background:#edf5f0;color:var(--green-2);font-size:.6875rem;font-style:normal}.permission-editor h3,.permission-editor p{margin:0}.permission-editor p{color:var(--muted);font-size:.6875rem;margin-top:3px}.account-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin-top:17px}.account-fields label{display:grid;gap:6px;color:#56635e;font-size:.75rem;font-weight:600}.permission-title{display:flex;justify-content:space-between;align-items:end;margin:22px 0 10px}.permission-title small{color:var(--muted)}.permission-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.permission-list button{border:1px solid var(--line);background:#fafaf7;color:#6f7875;border-radius:10px;padding:10px;display:flex;align-items:center;gap:8px;text-align:left;cursor:pointer}.permission-list button span{width:22px;height:22px;display:grid;place-items:center;border-radius:6px;background:#eceeea}.permission-list button.checked{color:var(--green-2);border-color:#abc7ba;background:#edf5f0;font-weight:600}.permission-list button.checked span{background:var(--green-2);color:#fff}.job-template{margin-top:16px;padding:13px;border:1px solid #d8e4dd;border-radius:10px;background:#f0f5f2;display:flex;align-items:center;justify-content:space-between;gap:12px}.job-template div{display:grid;gap:3px}.job-template strong{font-size:.75rem;color:var(--green-2)}.job-template span{color:var(--muted);font-size:.625rem}.reset-password{margin-top:18px;display:grid;grid-template-columns:150px 1fr;align-items:center;gap:12px}.reset-password>span{display:flex;align-items:center;gap:7px;font-weight:600;font-size:.75rem}.permission-editor footer{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:#2d6c58;font-size:.75rem}.account-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.secondary-button.danger{border-color:#d8b4a8;color:#b0443a;background:#fdf3f1}.secondary-button.danger:hover{border-color:#b0443a;background:#fbeae6}@media(max-width:1050px){.metric-grid,.quick-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.app-shell{display:block}.sidebar{position:fixed;left:0;transform:translate(-105%);width:252px;transition:transform .24s ease}.sidebar-open{transform:translate(0)}.sidebar-close,.menu-button{display:grid!important}.backdrop{display:block;position:fixed;inset:0;background:#0f1d1980;border:0;z-index:25}.topbar{height:70px;padding:0 16px}.topbar-title span,.today{display:none}.topbar h1{font-size:1.1875rem;margin:0}.page-content{padding:21px 15px 94px}.welcome-row{align-items:start}.welcome-row h2{font-size:1.25rem}.welcome-row p{font-size:.75rem;max-width:240px}.welcome-row .primary-button{width:43px;padding:0;justify-content:center;flex:0 0 auto}.welcome-row .primary-button:not(:focus){font-size:0;gap:0}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.metric-card{padding:14px}.metric-card>strong{font-size:1.3125rem}.metric-icon{width:33px;height:33px}.metric-foot{margin-top:10px;padding-top:9px}.dashboard-grid{grid-template-columns:1fr;gap:10px}.import-grid,.report-grid,.report-grid.lower{grid-template-columns:1fr}.report-actions .secondary-button{width:40px;font-size:0;padding:0;justify-content:center}.expense-row{grid-template-columns:90px 75px 1fr}.expense-row p{display:none}.capture-grid,.receipt-preview{grid-template-columns:1fr}.purchase-tabs{margin:14px 15px -7px;overflow-x:auto}.purchase-tabs>span{display:none}.purchase-tabs button{flex:0 0 auto}.month-filter>span{display:none}.purchase-summary-grid,.team-summary-grid{grid-template-columns:repeat(2,1fr)}.team-grid{grid-template-columns:1fr}.staff-panel{overflow-x:auto}.staff-head,.staff-row{min-width:680px}.purchase-history-grid{grid-template-columns:1fr}.purchase-list-head,.purchase-list>button{grid-template-columns:85px 1fr 48px 80px 14px;min-width:530px}.purchase-list-panel{overflow-x:auto}.camera-start{min-height:300px}.receipt-meta{grid-template-columns:1fr 135px}.form-actions{flex-wrap:wrap}.dish-toolbar{align-items:stretch;flex-direction:column}.dish-search{min-width:0}.dish-table{overflow-x:auto}.dish-head,.dish-row{min-width:720px}.inventory-actions .secondary-button{display:none}.inventory-actions .usage-button{display:inline-flex}.preview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.history-row{grid-template-columns:27px 1fr auto}.history-row time{display:none}.panel{padding:17px}.bar-row{grid-template-columns:31px 64px 1fr 62px;gap:7px}.quick-grid{gap:8px}.quick-card{grid-template-columns:34px 1fr;padding:12px}.quick-card>svg{display:none}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:calc(66px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fffef9f7;border-top:1px solid var(--line);z-index:22;justify-content:space-around;box-shadow:0 -5px 20px #173f340d}.mobile-nav button{width:20%;border:0;background:transparent;color:#84908b;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:.625rem}.mobile-nav button.active{color:var(--green-2);font-weight:700}.inventory-panel{overflow-x:auto}.inventory-head,.inventory-row{min-width:760px}.settings-grid{grid-template-columns:1fr}.user-directory{max-height:330px;overflow-y:auto}.settings-grid .permission-editor,.settings-grid.show-mobile-detail .user-directory{display:none}.settings-grid.show-mobile-detail .permission-editor{display:block}.mobile-back-users{display:inline-flex;flex-basis:100%;border:0;background:transparent;color:var(--green-2);font-weight:700;padding:4px 0;cursor:pointer}.permission-editor header{flex-wrap:wrap}.permission-editor header>div{flex:1}.account-fields,.permission-list,.account-summary,.reset-password{grid-template-columns:1fr}.login-page{padding:12px}.login-card{padding:24px 19px;border-radius:18px}}@media(max-width:900px)and (max-height:500px){.app-shell{display:block}.sidebar{position:fixed;inset:0 auto 0 0;width:min(52vw,310px);height:100vh;height:100dvh;max-height:100dvh;overflow:hidden;transform:translate(-105%);transition:transform .24s ease;border-radius:0 20px 20px 0}.sidebar-open{transform:translate(0)}.sidebar-close,.menu-button{display:grid!important}.sidebar .brand,.sidebar .sidebar-footer{flex:0 0 auto}.sidebar nav{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.backdrop{display:block;position:fixed;inset:0;border:0;z-index:25;background:#13181652}.topbar{height:56px;padding:0 14px}.topbar-title span,.today{display:none}.topbar h1{margin:0;font-size:1.125rem}.page-content{padding:16px 14px 22px}.mobile-nav{display:none}.settings-grid,.dashboard-grid,.team-grid,.import-grid,.report-grid,.report-grid.lower{grid-template-columns:1fr}.staff-panel,.purchase-list-panel,.dish-table,.inventory-panel{overflow-x:auto}}@media(max-width:420px){.metric-grid{grid-template-columns:1fr 1fr}.metric-icon{display:none}.metric-card,.metric-foot{display:block}.metric-foot em{margin-top:4px}}.audit-panel{margin-top:20px}.audit-panel .panel-heading h3{display:flex;align-items:center;gap:8px}.audit-state{padding:28px;text-align:center;color:#6d7873}.audit-state.error{color:#b34238}.audit-list{display:flex;flex-direction:column}.audit-row{display:grid;grid-template-columns:92px minmax(180px,1fr) minmax(130px,.6fr) 170px;align-items:center;gap:16px;padding:14px 4px;border-top:1px solid #e8ece9}.audit-row>div{display:flex;flex-direction:column;min-width:0}.audit-row small{color:#7d8782;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.audit-row time{color:#6d7873;font-size:.8125rem}.audit-action{font-size:.75rem;font-weight:700;border-radius:999px;padding:5px 10px;text-align:center;background:#eef4f1;color:#265e50}.action-delete{background:#fff0ee;color:#a53a32}.action-put{background:#fff7df;color:#806017}@media(max-width:720px){.audit-row{grid-template-columns:80px 1fr}.audit-row>div:nth-of-type(2),.audit-row time{grid-column:2}.audit-row time{font-size:.75rem}}.audit-filters{display:flex;gap:12px;padding:4px 0 16px;align-items:center}.audit-filters label{display:flex;align-items:center;gap:8px;flex:1;max-width:420px;border:1px solid #dfe6e2;border-radius:8px;padding:0 12px;background:#fff}.audit-filters input{width:100%;height:40px;border:0;outline:0;background:transparent}.audit-filters select{min-width:160px;border:1px solid #dfe6e2;border-radius:8px;padding:0 12px;background:#fff;height:40px}.audit-toggle{flex:0 0 auto!important;max-width:none!important;border:0!important;background:transparent!important;padding:0!important;cursor:pointer;font-size:.8125rem;color:#55665f;white-space:nowrap}.audit-toggle input{width:auto!important;height:auto!important;cursor:pointer}.audit-entry>summary{cursor:pointer;list-style:none}.audit-entry>summary::-webkit-details-marker{display:none}.audit-entry[open]{background:#f8faf9;border-radius:10px}.audit-details{margin:0 4px 14px 108px;padding:14px 16px;border-left:3px solid #c8dcd4;background:#fff;border-radius:0 8px 8px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px}.audit-details>div{display:flex;flex-direction:column;min-width:0}.audit-details b{font-size:.75rem;color:#7d8782}.audit-details span{word-break:break-word}.audit-details p{grid-column:1/-1;margin:0;color:#7d8782}.audit-success{color:#247153;font-weight:700}.audit-failed{color:#b34238;font-weight:700}.audit-load-more{align-self:center;margin:18px}.audit-row:hover{background:#f8faf9}.audit-toolbar{display:flex;align-items:center;gap:10px;padding:5px 0 16px}.audit-days{display:flex;gap:5px;padding:4px;background:#f0f3f1;border-radius:9px}.audit-days button{height:34px;padding:0 14px;border:0;border-radius:7px;background:transparent;color:#65736e;cursor:pointer}.audit-days button.active{background:#fff;color:#17634c;font-weight:700;box-shadow:0 1px 5px #143c2f17}.audit-search{height:42px;min-width:220px;max-width:390px;flex:1;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid #dfe6e2;border-radius:8px;background:#fff}.audit-search input{width:100%;min-width:0;border:0;outline:0;background:transparent}.audit-more{position:relative}.audit-more>summary{height:42px;padding:0 13px;display:flex;align-items:center;gap:7px;border:1px solid #dfe6e2;border-radius:8px;background:#fff;cursor:pointer;list-style:none;white-space:nowrap}.audit-more>summary::-webkit-details-marker{display:none}.audit-more>div{position:absolute;z-index:6;right:0;top:48px;width:280px;padding:14px;display:grid;gap:12px;border:1px solid #dfe6e2;border-radius:10px;background:#fff;box-shadow:0 12px 35px #1c382f21}.audit-more label{display:grid;gap:5px;color:#65736e;font-size:.75rem}.audit-more input,.audit-more select{width:100%;height:38px;padding:0 9px;border:1px solid #dfe6e2;border-radius:7px;background:#fff}.audit-more-btn{height:42px;padding:0 13px;display:flex;align-items:center;gap:7px;border:1px solid #dfe6e2;border-radius:8px;background:#fff;cursor:pointer;white-space:nowrap;color:#55665f;font-size:.875rem}.audit-filter-panel{position:absolute;z-index:6;right:0;top:48px;width:380px;padding:14px;display:grid;gap:12px;border:1px solid #dfe6e2;border-radius:10px;background:#fff;box-shadow:0 12px 35px #1c382f21}.audit-filter-panel label{display:grid;gap:5px;color:#65736e;font-size:.75rem}.audit-filter-panel input,.audit-filter-panel select{width:100%;height:38px;padding:0 9px;border:1px solid #dfe6e2;border-radius:7px;background:#fff}.af-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.af-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:2px}.audit-filter-tags{display:flex;flex-wrap:wrap;gap:7px;padding:0 0 12px}.audit-filter-tags button{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid #cfe0d9;border-radius:999px;background:#eef5f2;color:#2c6555;font-size:.75rem;cursor:pointer}.audit-filter-tags button:hover{border-color:#2c6555}.audit-simple-row{grid-template-columns:70px 100px minmax(180px,1fr) 64px}.audit-simple-row>time{font-variant-numeric:tabular-nums}.audit-simple-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-simple-row>b:last-child{text-align:right}.audit-simple .audit-details{margin-left:86px}@media(max-width:720px){.audit-filters{flex-direction:column}.audit-filters label,.audit-filters select{max-width:none;width:100%}.audit-details{margin:0 0 12px 80px;grid-template-columns:1fr}.audit-row small{white-space:normal}.audit-entry .audit-action{align-self:start}}@media(max-width:720px){.audit-toolbar{display:grid;grid-template-columns:auto 1fr}.audit-search{grid-column:1/-1;grid-row:2;max-width:none;width:100%}.audit-more{justify-self:end}.audit-more>div{right:0;width:min(280px,calc(100vw - 34px))}.audit-simple-row{grid-template-columns:58px minmax(72px,auto) 1fr;gap:8px;padding:13px 2px}.audit-simple-row>b:last-child{grid-column:2/-1;text-align:left;font-size:.6875rem}.audit-simple-row>span{white-space:normal;line-height:1.45}.audit-simple .audit-details{margin:0 0 12px 66px}}.credit-page .welcome-row{margin-bottom:18px}.credit-back-row{display:flex;align-items:center;gap:10px}.credit-back-row .icon-button{border:1px solid var(--line);background:var(--paper)}.credit-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:16px}.credit-summary-grid article{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:16px 18px;box-shadow:var(--shadow);display:grid;grid-template-columns:34px 1fr;align-items:center;column-gap:11px}.credit-summary-grid article svg{grid-row:1 / span 3;width:32px;height:32px;padding:7px;border-radius:9px;background:#e7f1ed;color:#2b705d}.credit-summary-grid article span{color:#718079;font-size:.6875rem}.credit-summary-grid article strong{font-size:1.25rem;letter-spacing:-.3px}.credit-summary-grid article small{color:var(--muted);font-size:.625rem}.credit-search{display:flex;align-items:center;gap:9px;background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:0 13px;height:46px;box-shadow:var(--shadow);margin-bottom:14px}.credit-search svg{color:#7d8984;flex:none}.credit-search input{flex:1;border:0;outline:0;background:transparent;min-width:0;font:inherit}.credit-search-clear{border:0;background:#eef0ec;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#6b7873;cursor:pointer}.credit-list{padding:4px 20px}.credit-account{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;display:grid;grid-template-columns:42px 1fr auto 18px;align-items:center;gap:12px;padding:15px 0;text-align:left;cursor:pointer}.credit-account:last-child{border-bottom:0}.credit-avatar{width:40px;height:40px;border-radius:11px;background:#e7efeb;color:#276451;display:grid;place-items:center;font:700 1rem "Noto Serif SC",serif}.credit-account-main{min-width:0;display:flex;flex-direction:column;gap:4px}.credit-account-main strong{font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.credit-account-main small{color:var(--muted);font-size:.6875rem;display:flex;align-items:center;gap:4px}.credit-account-amount{text-align:right;display:flex;flex-direction:column;gap:3px}.credit-account-amount b{font-size:1rem}.credit-account-amount em{font-style:normal;font-size:.625rem;border-radius:99px;padding:3px 8px}.credit-account-arrow{color:#a5ada9}.debt{color:#b24a3b}.settled{color:#278162}.credit-account-amount em.debt{background:#f8e7e3}.credit-account-amount em.settled{background:#e6f1eb}.credit-quick-action{position:fixed;right:24px;bottom:24px;border:0;background:var(--green);color:#fff;height:52px;padding:0 22px;border-radius:99px;display:flex;align-items:center;gap:8px;font-size:.9375rem;cursor:pointer;box-shadow:0 10px 26px #173f3452;z-index:25}.credit-quick-action:hover{background:var(--green-2);transform:translateY(-1px)}.credit-balance-card{background:var(--green);color:#fff;border-radius:15px;padding:20px 22px;display:flex;flex-direction:column;gap:5px;box-shadow:0 12px 28px #173f343d;margin-bottom:15px}.credit-balance-card>span{color:#ffffff9e;font-size:.75rem}.credit-balance-card>strong{font-size:1.875rem;letter-spacing:-.5px;font-weight:700}.credit-balance-card>strong.debt{color:#ffd9c9}.credit-balance-card>strong.settled{color:#cde9d8}.credit-balance-card>div{display:flex;gap:9px;margin-top:12px}.credit-balance-card button{border:1px solid rgba(255,255,255,.35);background:#ffffff1f;color:#fff;height:40px;padding:0 15px;border-radius:9px;display:flex;align-items:center;gap:6px;font-size:.8125rem;cursor:pointer}.credit-balance-card button:hover{background:#ffffff38}.credit-entries{padding:4px 20px}.credit-entry{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:11px;padding:13px 0;border-bottom:1px solid var(--line)}.credit-entry:last-child{border-bottom:0}.credit-entry-badge{font-size:.625rem;font-weight:600;border-radius:7px;padding:5px 0;text-align:center}.credit-entry-badge.charge{background:#f8e7e3;color:#b24a3b}.credit-entry-badge.payment{background:#e6f1eb;color:#278162}.credit-entry-badge.adjustment{background:#f7eddb;color:#9a6d21}.credit-entry-main{display:flex;flex-direction:column;gap:3px;min-width:0}.credit-entry-main strong{font-size:.875rem}.credit-entry-main small{color:var(--muted);font-size:.6875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.credit-entry-note{max-width:420px}.credit-entry-actor{color:#8b9591!important;font-size:.625rem!important;display:flex;align-items:center;gap:4px}.credit-entry-delete{border:0;background:transparent;color:#b0b8b4;width:32px;height:32px;border-radius:8px;display:grid;place-items:center;cursor:pointer}.credit-entry-delete:hover{background:#faeae7;color:#b24a3b}.credit-delete-warning{display:flex;gap:9px;align-items:flex-start;background:#faeae7;color:#a44337;border-radius:10px;padding:12px 14px;font-size:.75rem;line-height:1.6}.credit-delete-warning svg{flex:none;margin-top:1px}.credit-entry time{color:var(--muted);font-size:.625rem;white-space:nowrap}.credit-form{max-width:520px;display:flex;flex-direction:column;gap:14px;padding:24px}.credit-form label,.credit-modal label{display:flex;flex-direction:column;gap:6px;color:#56635e;font-size:.75rem;font-weight:600}.credit-form label em,.credit-modal label em{color:#c05a45;font-style:normal}.credit-form input,.credit-modal input{height:44px;border:1px solid var(--line);border-radius:10px;padding:0 12px;outline:none;background:#fff;font:inherit}.credit-form input:focus,.credit-modal input:focus{border-color:#477765;box-shadow:0 0 0 3px #4777651a}.credit-form .form-actions,.credit-modal .form-actions{margin-top:4px}.primary-button.payment{background:#c05a45}.primary-button.payment:hover{background:#a94d3b}.primary-button:disabled{opacity:.65;cursor:wait}.credit-modal-backdrop{position:fixed;inset:0;background:#12201b73;display:grid;place-items:center;z-index:60;padding:20px}.credit-modal{width:min(440px,100%);background:var(--paper);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:14px;box-shadow:0 22px 55px #0a1e1847}.credit-modal-head{display:flex;justify-content:space-between;align-items:start}.credit-modal-head h3{margin:0 0 4px;font-size:1.0625rem}.credit-modal-head p{margin:0;color:var(--muted);font-size:.6875rem}@media(max-width:760px){.credit-quick-action{right:16px;bottom:calc(74px + env(safe-area-inset-bottom));padding:0 18px;height:48px;font-size:.875rem}.credit-summary-grid{grid-template-columns:1fr;gap:9px}.credit-summary-grid article{padding:12px 15px}.credit-summary-grid article strong{font-size:1.0625rem}.credit-account{grid-template-columns:40px 1fr auto}.credit-account-arrow{display:none}.credit-entry{grid-template-columns:48px 1fr}.credit-entry time{grid-column:2}}:root{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;color:#1d1d1f;background:#f5f5f7;--green: #174c3c;--green-2: #276755;--gold: #a9792b;--paper: rgba(255, 255, 255, .94);--muted: #72727a;--line: rgba(30, 41, 37, .09);--shadow: 0 1px 2px rgba(16, 24, 20, .025), 0 10px 32px rgba(16, 24, 20, .045)}html{background:#f5f5f7}body{color:#1d1d1f;background:radial-gradient(circle at 88% -8%,rgba(39,103,85,.055),transparent 26rem),#f5f5f7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}button,a,input,select{transition:border-color .18s ease,background-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease,opacity .18s ease}button:active:not(:disabled){transform:scale(.975)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0;box-shadow:0 0 0 4px #27675521!important;border-color:#2767558c!important}.app-shell{grid-template-columns:248px minmax(0,1fr)}.sidebar{color:#242927;background:#f8f8fae0;border-right:1px solid rgba(30,41,37,.08);box-shadow:none;-webkit-backdrop-filter:blur(24px) saturate(160%);backdrop-filter:blur(24px) saturate(160%)}.brand{height:92px;padding:0 22px;border-bottom-color:#1e292512}.brand-seal{width:42px;height:42px;border:0;border-radius:13px;color:#fff;background:linear-gradient(145deg,#2f745f,#174c3c);box-shadow:0 8px 20px #174c3c2e;font-family:STKaiti,KaiTi,serif;transform:none}.brand strong{color:#17211e;font-family:inherit;font-size:1.125rem;letter-spacing:.08em}.brand span{color:#8a908d;letter-spacing:.12em}.sidebar nav{padding:18px 12px}.nav-caption{color:#a0a4a2;font-size:.625rem;font-weight:650;letter-spacing:.12em;padding:8px 13px}.nav-item{position:relative;height:46px;margin:3px 0;border-radius:12px;color:#686e6b;font-size:.8125rem;font-weight:560}.nav-item:hover{color:#1e3f35;background:#27675511}.nav-item.active{color:#174c3c;background:#2767551a;font-weight:700}.nav-item.active:before{display:none}.nav-item b{width:19px;height:19px;background:#e65f4f;box-shadow:0 2px 6px #e65f4f33}.sidebar-footer{min-height:82px;padding:15px 18px;border-top-color:#1e292514}.sidebar-footer:hover{background:#2767550b}.sidebar-footer .avatar{border-radius:11px;background:#e4eee9;color:#275f4f}.sidebar-footer strong{color:#272c2a}.sidebar-footer span{color:#8a908d}.sidebar-footer>svg{color:#9a9f9d}.app-shell>main{min-width:0}.topbar{position:sticky;top:0;z-index:20;height:88px;padding:0 36px;background:#f5f5f7c7;border-bottom:1px solid rgba(30,41,37,.065);-webkit-backdrop-filter:blur(22px) saturate(150%);backdrop-filter:blur(22px) saturate(150%)}.topbar-title>div>span{color:#929795;font-size:.6875rem;letter-spacing:.03em}.topbar h1{margin-top:3px;color:#1d1d1f;font-family:inherit;font-size:1.375rem;font-weight:720;letter-spacing:-.02em}.topbar-actions{gap:11px}.today{padding:8px 12px;border:1px solid rgba(30,41,37,.07);border-radius:999px;background:#ffffffb8;color:#6f7572}.icon-button{width:40px;height:40px;border-radius:50%;color:#505653;background:#ffffffbf;border:1px solid rgba(30,41,37,.075)}.icon-button:hover{color:#174c3c;background:#fff;box-shadow:0 5px 16px #10181412}.notification i{border:2px solid #f5f5f7}.page-content{max-width:1440px;padding:34px 36px 52px}.welcome-row{margin-bottom:25px}.welcome-row h2{margin-bottom:7px;color:#1d1d1f;font-family:inherit;font-size:clamp(22px,2.2vw,29px);font-weight:740;letter-spacing:-.035em}.welcome-row p{color:#7a807d;font-size:.75rem;line-height:1.7}.section-heading h3,.panel-heading h3{color:#242826;font-size:.9375rem;font-weight:700;letter-spacing:-.01em}.section-heading p,.panel-heading p{color:#969a98}.panel,.metric-card,.purchase-summary-grid article,.team-summary-grid article,.credit-summary-grid article{border-color:#1e292513;border-radius:18px;background:#ffffffeb;box-shadow:var(--shadow)}.panel{padding:22px}.metric-grid{gap:14px}.metric-card{min-height:156px;padding:20px}.metric-card:hover,.quick-card:hover{transform:translateY(-2px);box-shadow:0 14px 38px #10181413}.metric-label{color:#7b817e;font-size:.75rem;font-weight:600}.metric-card>strong{color:#171a19;font-size:1.6875rem;font-weight:720;letter-spacing:-.045em}.metric-icon{width:38px;height:38px;border-radius:12px}.metric-foot{border-top-color:#1e292512;color:#8a908d}.dashboard-grid{gap:14px}.bar-track{background:#eceeec}.bar-track i{background:linear-gradient(90deg,#2d745e,#68a08c)}.bar-icon,.task-icon{border-radius:10px}.task{border-radius:12px}.task:hover{background:#f6f7f6}.task-count,.owner-only,.guest-readonly-badge{border-radius:999px}.all-clear{border-radius:14px;background:#f2f7f4}.primary-button{min-height:44px;border-radius:12px;background:#174c3c;box-shadow:0 7px 18px #174c3c29;font-weight:650}.primary-button:hover{background:#225f4d;box-shadow:0 9px 22px #174c3c38;transform:translateY(-1px)}.secondary-button{min-height:42px;border-radius:11px;border-color:#1e29251a;color:#4f5753;background:#ffffffe6}.secondary-button:hover{color:#174c3c;border-color:#2767553d;background:#fff}.text-button{color:#477467}.quick-grid{gap:11px}.quick-card{min-height:84px;border-color:#1e292513;border-radius:16px;background:#ffffffe0;box-shadow:0 1px 2px #10181405}.quick-card>span{border-radius:12px;background:#edf4f0}.filter-tabs{gap:6px;padding:3px;width:fit-content;max-width:100%;border-radius:13px;background:#eaeaed}.filter-tabs button{border:0;border-radius:10px;background:transparent;color:#6e7471}.filter-tabs button.active{color:#1f2926;background:#fff;box-shadow:0 1px 4px #1018141a}.purchase-tabs button{border-radius:11px}.purchase-tabs button.active{background:#174c3c}input,select,textarea,.month-picker,.month-filter input,.month-filter button,.dish-search,.credit-search,.receipt-meta input,.line-editor input,.line-editor select,.recipe-editor-row input,.recipe-editor-row select,.item-form input,.item-form select,.stocktake-list input,.usage-form>label input,.usage-form>label select,.usage-lines select,.usage-lines input,.review-month input,.review-form select,.review-form input,.recipe-match-row select,.recipe-match-row input{border-color:#1e29251c;border-radius:11px;background:#fffffff0}input:hover,select:hover,textarea:hover{border-color:#27675547}.drop-zone,.camera-start{border-radius:18px;border-color:#bdc9c4;background:#f7f9f8}.drop-zone:hover,.camera-start:hover{background:#f1f6f3}.import-message,.warning-box,.report-notice,.task-safety-note{border-radius:13px}.inventory-head,.dish-head,.staff-head,.purchase-list-head{background:#f6f6f8}.inventory-row,.dish-row,.staff-row,.purchase-list>button,.credit-account{border-color:#1e292512}.inventory-row:hover,.dish-row:hover,.purchase-list>button:hover,.credit-account:hover{background:#f8faf9}.item-avatar,.dish-row>div>span,.credit-avatar{border-radius:12px!important}.drawer-backdrop,.credit-modal-backdrop{background:#1217155c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.recipe-drawer,.inventory-drawer,.expense-drawer,.purchase-drawer{background:#f5f5f7;border-radius:24px 0 0 24px;overflow:hidden}.recipe-drawer header,.inventory-drawer header,.expense-drawer header,.purchase-drawer header,.recipe-drawer footer,.inventory-drawer footer,.expense-drawer footer{background:#ffffffe6}.credit-modal{border-radius:20px;background:#fffffffa}.credit-balance-card{border-radius:20px;background:linear-gradient(145deg,#225f4d,#123d30)}.login-page{background:radial-gradient(circle at 18% 18%,rgba(67,133,111,.12),transparent 29rem),radial-gradient(circle at 82% 86%,rgba(177,132,55,.09),transparent 26rem),#f5f5f7}.login-card{border-color:#1e292514;border-radius:28px;background:#ffffffd1;box-shadow:0 28px 80px #12221c1f;-webkit-backdrop-filter:blur(24px) saturate(150%);backdrop-filter:blur(24px) saturate(150%)}.login-brand>span{border-radius:14px;background:linear-gradient(145deg,#2e735e,#174c3c);box-shadow:0 8px 20px #174c3c2e}.login-brand strong,.login-title h1{color:#1d1d1f}.guest-entry button{border-radius:12px;background:#f2f6f4d9}@media(hover:hover){.nav-item:hover svg,.quick-card:hover svg{transform:scale(1.04)}}@media(max-width:760px){body{background:#f5f5f7}.sidebar{width:min(84vw,310px);border-radius:0 24px 24px 0;box-shadow:18px 0 50px #0f1c1724}.sidebar-close{color:#505653!important}.backdrop{background:#13181652;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.topbar{height:68px;padding:0 15px}.topbar h1{font-size:1.1875rem}.topbar-actions{gap:6px}.page-content{padding:22px 15px calc(98px + env(safe-area-inset-bottom))}.welcome-row{margin-bottom:19px}.welcome-row h2{font-size:1.375rem;line-height:1.25}.welcome-row p{max-width:290px}.metric-grid{gap:9px}.metric-card{min-height:130px;padding:15px;border-radius:16px}.metric-card>strong{font-size:clamp(20px,6vw,25px)}.metric-label{margin-top:10px}.panel{border-radius:17px}.filter-tabs{width:100%}.filter-tabs button{flex:1}.mobile-nav{left:10px;right:10px;bottom:9px;height:calc(64px + env(safe-area-inset-bottom));padding:0 4px env(safe-area-inset-bottom);border:1px solid rgba(30,41,37,.09);border-radius:20px;background:#fafafbe0;box-shadow:0 12px 38px #10181426;-webkit-backdrop-filter:blur(22px) saturate(165%);backdrop-filter:blur(22px) saturate(165%)}.mobile-nav button{border-radius:15px;color:#858b88}.mobile-nav button.active{color:#174c3c}.mobile-nav button.active svg{filter:drop-shadow(0 2px 4px rgba(23,76,60,.14))}.recipe-drawer,.inventory-drawer,.expense-drawer,.purchase-drawer{width:100%;border-radius:22px 22px 0 0;margin-top:6vh}.drawer-backdrop{align-items:flex-end}.login-card{padding:26px 20px;border-radius:24px}.registration-review-row{grid-template-columns:1fr}.registration-actions button{flex:1}.credit-quick-action{box-shadow:0 12px 26px #174c3c40}}@media(max-width:420px){.metric-icon{display:grid}.metric-card{display:grid;grid-template-columns:minmax(0,1fr) 36px;grid-template-rows:auto auto 1fr;align-content:start}.metric-label{grid-column:1;grid-row:1;white-space:nowrap}.metric-card>strong{grid-column:1;grid-row:2;white-space:nowrap}.metric-icon{grid-column:2;grid-row:1 / span 2}.metric-foot{grid-column:1 / span 2;grid-row:3;display:flex}.metric-foot em{margin-top:0}.quick-card{min-height:76px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--green: var(--ant-color-primary);--green-2: var(--ant-color-primary-hover);--gold: var(--ant-color-warning);--paper: var(--ant-color-bg-container);--muted: var(--ant-color-text-secondary);--line: var(--ant-color-border-secondary);--shadow: var(--ant-box-shadow-tertiary)}html,body{background:var(--ant-color-bg-layout);color:var(--ant-color-text)}.css-var-yys{min-height:100vh}body{font-family:var(--ant-font-family);background:var(--ant-color-bg-layout)}.app-shell{grid-template-columns:240px minmax(0,1fr);background:var(--ant-color-bg-layout)}.sidebar{color:var(--ant-color-text);background:var(--ant-color-bg-container);border-right:1px solid var(--ant-color-border-secondary);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.brand{height:64px;padding:0 20px;border-bottom:1px solid var(--ant-color-border-secondary)}.brand-seal{width:36px;height:36px;border-radius:var(--ant-border-radius);background:var(--ant-color-primary);box-shadow:none}.brand strong{color:var(--ant-color-text);font-size:var(--ant-font-size-lg);letter-spacing:0}.brand span{color:var(--ant-color-text-tertiary);letter-spacing:0}.sidebar nav{padding:16px 12px}.nav-caption{color:var(--ant-color-text-quaternary);font-size:.75rem;letter-spacing:0;padding:8px 12px}.nav-item{height:var(--ant-control-height);border-radius:var(--ant-border-radius);color:var(--ant-color-text-secondary);font-size:var(--ant-font-size);font-weight:400}.nav-item:hover{color:var(--ant-color-primary);background:var(--ant-color-primary-bg)}.nav-item.active{color:var(--ant-color-primary);background:var(--ant-color-primary-bg);font-weight:600}.sidebar-footer{color:var(--ant-color-text);border-top-color:var(--ant-color-border-secondary)}.sidebar-footer .avatar{border-radius:var(--ant-border-radius);background:var(--ant-color-primary-bg);color:var(--ant-color-primary)}.sidebar-footer span{color:var(--ant-color-text-tertiary)}.topbar{height:64px;padding:0 24px;background:var(--ant-color-bg-container);border-bottom:1px solid var(--ant-color-border-secondary);-webkit-backdrop-filter:none;backdrop-filter:none}.topbar-title span,.today{color:var(--ant-color-text-secondary)}.topbar h1{color:var(--ant-color-text-heading);font-family:var(--ant-font-family);font-size:1.25rem}.icon-button{width:var(--ant-control-height);height:var(--ant-control-height);border-radius:var(--ant-border-radius);color:var(--ant-color-text-secondary)}.icon-button:hover{color:var(--ant-color-primary);background:var(--ant-color-primary-bg)}.page-content{max-width:1440px;padding:32px}.welcome-row{margin-bottom:24px}.welcome-row h2{font-family:var(--ant-font-family);color:var(--ant-color-text-heading)}.panel,.metric-card,.attendance-card,.attendance-panel,.purchase-summary-grid article,.team-summary-grid article,.credit-summary-grid article{background:var(--ant-color-bg-container);border-color:var(--ant-color-border-secondary);border-radius:var(--ant-border-radius-lg);box-shadow:var(--ant-box-shadow-tertiary)}.primary-button,.attendance-clock,.attendance-action button,.compact-form button,.aux-list button,.credit-quick-action{min-height:var(--ant-control-height);border-radius:var(--ant-border-radius);background:var(--ant-color-primary);color:var(--ant-color-white);box-shadow:none}.primary-button:hover,.attendance-clock:hover:not(:disabled),.compact-form button:hover,.aux-list button:hover,.credit-quick-action:hover{background:var(--ant-color-primary-hover)}.receipt-source-options{display:grid;gap:12px}.receipt-album-button{width:100%;display:flex;align-items:center;justify-content:center;gap:8px}.secondary-button,.filter-tabs button,.purchase-tabs button,.month-picker,.month-filter input,.month-filter button{min-height:var(--ant-control-height);border-color:var(--ant-color-border);border-radius:var(--ant-border-radius);background:var(--ant-color-bg-container);color:var(--ant-color-text)}.filter-tabs button.active,.purchase-tabs button.active{background:var(--ant-color-primary);border-color:var(--ant-color-primary);color:var(--ant-color-white)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0;border-color:var(--ant-color-primary)!important;box-shadow:0 0 0 var(--ant-control-outline-width) var(--ant-color-primary-border)!important}@media(max-width:760px){.topbar{height:64px}.page-content{padding:24px 16px calc(96px + env(safe-area-inset-bottom))}.mobile-nav{background:var(--ant-color-bg-container);border-color:var(--ant-color-border-secondary);border-radius:var(--ant-border-radius-lg)}.mobile-nav button.active{color:var(--ant-color-primary)}}@media(max-width:760px){.sidebar{height:100vh;height:100dvh;max-height:100dvh;overflow:hidden;padding-bottom:env(safe-area-inset-bottom)}.sidebar .brand,.sidebar .sidebar-footer{flex:0 0 auto}.sidebar nav{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:16px}}.receipt-saved>div{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:8px}.app-update-overlay{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:18px;background:#121a177a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.app-update-card{position:relative;width:min(100%,390px);padding:28px 24px 22px;border-radius:18px;background:var(--ant-color-bg-container,#fff);box-shadow:0 24px 70px #0003;text-align:center}.app-update-card h2{margin:14px 0 5px;font-size:1.25rem;color:var(--ant-color-text-heading,#1d1d1f)}.app-update-icon{width:52px;height:52px;margin:auto;display:grid;place-items:center;border-radius:15px;background:var(--ant-color-primary-bg,#e6f4ff);color:var(--ant-color-primary,#1677ff)}.app-update-close{position:absolute;right:13px;top:13px;width:36px;height:36px;border:0;border-radius:50%;display:grid;place-items:center;background:transparent;color:#7c8581;cursor:pointer}.app-update-close:hover{background:#f1f2f1}.app-update-version{margin:0;color:#8a918e;font-size:.75rem}.app-update-notes{margin:18px 0 12px;padding:13px;border-radius:10px;background:#f6f7f6;color:#3e4743;font-size:.8125rem;line-height:1.65;text-align:left;white-space:pre-line}.app-update-safe{display:flex;align-items:center;justify-content:center;gap:5px;color:#34705c;font-size:.75rem}.app-update-required,.app-update-message{padding:9px 11px;border-radius:8px;background:#fff7e6;color:#8a6118;font-size:.75rem}.app-update-message{background:#f2f7f4;color:#285e4d}.app-update-action{width:100%;justify-content:center;margin-top:14px}.app-update-later{width:100%;justify-content:center;margin-top:10px;min-height:36px}.draft-state{font-size:.75rem;color:#8c8c8c;white-space:nowrap}.draft-state.saved{color:#389e0d}.receipt-review-line{border-bottom:1px solid #f0f0f0;padding:10px 0}.receipt-review-line.needs-check{background:#fffbe6;border:1px solid #ffe58f;border-radius:8px;padding:10px;margin:8px 0}.item-edit{min-width:0}.mobile-field-label,.line-field>span{display:none}.line-field{min-width:0;margin:0}.line-field input,.line-field select{display:block}.item-edit input{width:100%}.item-edit small{display:block;margin-top:4px;color:#ad6800;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.candidate-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 0 0}.candidate-row>span{font-size:.75rem;color:#8c8c8c}.candidate-row button{display:flex;align-items:center;gap:5px;min-height:34px;padding:5px 10px;border:1px solid #91caff;border-radius:8px;background:#e6f4ff;color:#0958d9;cursor:pointer}.candidate-row button:hover{border-color:#1677ff;background:#bae0ff}.candidate-row button small{color:#597ef7;font-size:.6875rem}.candidate-row .candidate-manual{background:#fff;border-color:#d9d9d9;color:#595959}@media(max-width:760px){.capture-grid>article,.capture-grid>aside,.receipt-preview,.receipt-form,.line-editor{min-width:0;max-width:100%}.line-editor{overflow:visible}.line-editor-head{display:none}.receipt-review-line .line-editor-row{min-width:0;width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) 44px;gap:10px 8px;align-items:end}.receipt-review-line .line-editor-row .item-edit{grid-column:1 / -1}.mobile-field-label,.line-field>span{display:block;margin:0 0 5px;color:var(--ant-color-text-secondary);font-size:.75rem;line-height:1}.line-field{display:block}.receipt-review-line .line-editor-row .line-field:nth-of-type(1){grid-column:1 / -1}.receipt-review-line .line-editor-row>button{align-self:end;width:44px;height:40px;border-radius:var(--ant-border-radius);background:#fff1f0}.candidate-row button small{display:none}.candidate-row button{min-height:40px}}@media(max-width:760px){.native-android body{overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent}.native-android .css-var-yys{min-height:100dvh;background:var(--ant-color-bg-layout)}.native-android .topbar{height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0;background:var(--ant-color-bg-container);box-shadow:0 1px 0 var(--ant-color-border-secondary)}.native-android .topbar h1{font-size:1.25rem;font-weight:700}.native-android .menu-button,.native-android .topbar-actions>button{width:44px;height:44px;border-radius:22px}.native-android .page-content{padding:16px 12px calc(88px + env(safe-area-inset-bottom))}.native-android .purchase-tabs{position:sticky;top:calc(56px + env(safe-area-inset-top));z-index:12;margin:0;padding:10px 12px;gap:0;background:var(--ant-color-bg-layout);overflow:visible}.native-android .purchase-tabs button{min-width:0;flex:1 1 50%;justify-content:center;border-radius:0}.native-android .purchase-tabs button:first-child{border-radius:20px 0 0 20px}.native-android .purchase-tabs button:nth-child(2){border-radius:0 20px 20px 0}.native-android .welcome-row{margin-bottom:16px}.native-android .welcome-row h2{font-size:1.5rem}.native-android .panel{padding:14px;border-radius:16px;box-shadow:0 1px 3px #00000014}.native-android .capture-grid{gap:12px}.native-android .camera-start{min-height:190px;border-radius:16px}.native-android .receipt-preview{gap:12px}.native-android .receipt-preview img{width:100%;height:auto;max-height:320px;object-fit:contain;border-radius:12px}.native-android .quality-card{padding:13px;border-radius:12px}.native-android .receipt-inbox{padding:14px}.native-android .receipt-inbox-list{max-height:none;overflow:visible}.native-android .inbox-card{border-radius:14px}.native-android .inbox-row{min-height:68px;padding:12px}.native-android .inbox-tools{padding:0 12px 12px}.native-android .inbox-tools select,.native-android .inbox-delete{height:40px}.native-android .receipt-form{margin-top:14px;padding-top:14px}.native-android .receipt-meta{grid-template-columns:1fr;gap:10px}.native-android .receipt-meta input,.native-android .line-editor input,.native-android .line-editor select{height:44px;font-size:1rem;border-radius:10px}.native-android .receipt-review-line{margin:10px 0;padding:12px;border:1px solid var(--ant-color-border-secondary);border-radius:14px;background:var(--ant-color-bg-container)}.native-android .receipt-review-line.needs-check{padding:12px}.native-android .form-actions{position:sticky;bottom:calc(72px + env(safe-area-inset-bottom));z-index:10;margin:14px -14px -14px;padding:12px 14px;background:var(--ant-color-bg-container);border-top:1px solid var(--ant-color-border-secondary)}.native-android .form-actions .primary-button{flex:1;justify-content:center}.native-android .mobile-nav{left:0;right:0;bottom:0;height:calc(72px + env(safe-area-inset-bottom));padding:4px 2px env(safe-area-inset-bottom);border:0;border-top:1px solid var(--ant-color-border-secondary);border-radius:0;background:var(--ant-color-bg-container);box-shadow:0 -2px 10px #0000000f;-webkit-backdrop-filter:none;backdrop-filter:none}.native-android .mobile-nav button{min-width:0;border-radius:16px;font-size:.6875rem}.native-android .mobile-nav button.active{background:var(--ant-color-primary-bg)}}.modal-overlay{position:fixed;inset:0;background:#13181680;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal-panel{background:#fffef9;border-radius:16px;width:100%;max-width:440px;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0d2d2540;overflow:hidden}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 22px 14px;border-bottom:1px solid #e7e7df;flex-shrink:0}.modal-heading h3{margin:0 0 3px;font:700 1.0625rem "Noto Serif SC",serif;display:flex;align-items:center;gap:8px;color:#1c2d28}.modal-heading p{margin:0;font-size:.75rem;color:#7d8984}.modal-heading .icon-button{color:#8b9591;width:34px;height:34px}.modal-heading .icon-button:hover{background:#f0efe8}.modal-body{padding:16px 22px;display:grid;gap:11px;overflow-y:auto;flex:1}.modal-body label{display:flex;flex-direction:column;gap:5px;font-size:.75rem;color:#44554f;font-weight:600}.modal-body input,.modal-body select{height:38px;border:1px solid #d8d8cf;border-radius:8px;padding:0 11px;font-size:.875rem;background:#fff;color:#1c2d28}.modal-body input:focus,.modal-body select:focus{border-color:#173f34;outline:none;box-shadow:0 0 0 3px #173f341a}.modal-body input::placeholder{color:#b0b8b4}.modal-footer{display:flex;align-items:center;justify-content:space-between;padding:14px 22px 18px;border-top:1px solid #e7e7df;flex-shrink:0;background:#fffef9}.modal-footer span{font-size:.75rem;color:#7d8984;flex:1}.modal-footer .primary-button{background:#173f34;height:38px}.modal-footer .primary-button:hover{background:#245f4e}.modal-footer .secondary-button{height:38px;border:1px solid #d8d8cf;background:#fff;color:#55665f;border-radius:8px;padding:0 16px;cursor:pointer}.modal-footer .secondary-button:hover{background:#f5f4ef}@media(max-width:520px){.modal-panel{max-width:100%}.modal-heading,.modal-body,.modal-footer{padding-left:16px;padding-right:16px}}@media(max-width:760px){body,.page-content input,.page-content select,.page-content textarea,.page-content button{font-size:1rem}.primary-button,.secondary-button,.text-button{min-height:44px}.icon-button{width:44px;height:44px}.native-android .topbar{height:calc(56px + env(safe-area-inset-top))}.mobile-nav button{gap:3px}.mobile-nav button svg{width:22px;height:22px}.capture-page .receipt-preview{grid-template-columns:1fr;align-items:start;gap:8px}.capture-page .receipt-preview img{width:100%;height:250px;object-fit:contain;border-radius:12px;background:#f1f1ec}.capture-page .quality-card{margin-top:2px;display:flex;align-items:flex-start;gap:9px}.capture-page .receipt-form{margin-top:12px;padding-top:12px}.capture-page .form-heading{align-items:flex-start;gap:4px}.capture-page .form-heading>div>strong{font-size:1.125rem}.capture-page .form-heading>div>span{font-size:.8125rem}.capture-page .draft-state{font-size:.75rem}.capture-page .receipt-meta{grid-template-columns:1fr}.capture-page .receipt-meta input,.capture-page .line-editor input,.capture-page .line-editor select{height:46px;font-size:1rem;border-radius:10px}.capture-page .receipt-review-line{margin:10px 0;padding:12px;border:1px solid #e6eae7;border-radius:14px;background:#fbfcfa}.capture-page .receipt-review-line .line-editor-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) 44px;gap:10px 8px;align-items:end}.capture-page .receipt-review-line .line-editor-row .item-edit{grid-column:1 / -1}.capture-page .receipt-review-line .line-editor-row .line-field:nth-of-type(1){grid-column:1 / -1}.capture-page .receipt-review-line .line-editor-row>button{align-self:end;width:44px;height:46px;border-radius:10px;background:#fff1f0}.capture-page .item-edit small{font-size:.75rem;margin-top:6px;white-space:normal}.capture-page .candidate-row{overflow-x:auto;display:flex;gap:8px;padding-top:8px}.capture-page .candidate-row button{flex:0 0 auto;min-height:42px}.capture-page .candidate-row button small{display:none}.capture-page .form-actions{position:sticky;bottom:calc(72px + env(safe-area-inset-bottom));z-index:10;display:flex;flex-wrap:wrap;gap:8px;margin:14px -16px -16px;padding:12px 16px;background:#fff;border-top:1px solid #eceeeb}.capture-page .form-actions .add-line{width:100%;justify-content:flex-start}.capture-page .form-actions .primary-button,.capture-page .form-actions .secondary-button{flex:1;justify-content:center}.capture-page .form-actions>strong{width:100%;text-align:right;font-size:.9375rem}.capture-page .camera-start{min-height:190px;border-radius:16px}.capture-page .receipt-source-options{display:flex;flex-direction:column;gap:10px}.capture-page .receipt-source-options .secondary-button{min-height:46px}.capture-page .inbox-row{min-height:66px;padding:12px}.capture-page .inbox-tools{padding:0 12px 12px}.capture-page .inbox-tools select,.capture-page .inbox-delete{height:42px}.inventory-page .panel{padding:14px}.inventory-page .inventory-head,.inventory-page .inventory-row{min-width:700px;font-size:.9375rem}.inventory-actions .secondary-button{display:inline-flex;min-height:40px}.attendance-page .panel{padding:14px}.attendance-page .attendance-calendar{overflow-x:auto}.audit-panel .panel{padding:14px}.audit-row{grid-template-columns:72px 1fr}.audit-row>div:nth-of-type(2){min-width:0;overflow:hidden}.panel{padding:16px;border-radius:16px}.panel-heading h3{font-size:1.0625rem}.section-heading h2,.panel-heading h3{line-height:1.3}.welcome-row h2{font-size:1.375rem}.dish-table,.staff-panel,.inventory-panel,.purchase-list-panel{-webkit-overflow-scrolling:touch}}.icp-footer{display:flex;align-items:center;justify-content:center;gap:6px;padding:14px 16px 18px;font-size:12px;color:var(--muted, #8a8f98)}.icp-footer a{color:inherit;text-decoration:none}.icp-footer a:hover{text-decoration:underline}.security-card{padding:0}.security-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;background:none;border:0;padding:16px 18px;cursor:pointer;font:inherit;color:inherit;text-align:left}.security-toggle-left{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600}.security-toggle-right{display:flex;align-items:center;gap:10px;font-size:13px}.security-toggle-right .security-ok{color:#16a34a;font-weight:500}.security-toggle-right .security-warn{color:#d97706;font-weight:500}.security-chevron{color:#8e8e93;transition:transform .15s ease}.security-card.open .security-chevron{transform:rotate(180deg)}.security-body{padding:0 18px 16px}.recognition-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 0;padding:9px 12px;background:#f6f5f0;border:1px solid #e6e4da;border-radius:10px;font-size:13px;color:#6b6a63}.recognition-bar span{flex:1;min-width:0}.recognition-bar .secondary-button,.recognition-bar .text-button{flex:none}:root{--glass-thin: rgba(255,255,255,.62);--glass-thick: rgba(255,255,255,.78);--glass-stroke: rgba(255,255,255,.62);--glass-blur: blur(20px) saturate(180%);--glass-blur-thick: blur(28px) saturate(180%)}body{background-color:#f2f3f5;background-image:radial-gradient(1200px 700px at 6% -10%,rgba(22,119,255,.1),transparent 62%),radial-gradient(1000px 620px at 96% -4%,rgba(189,141,59,.09),transparent 60%),radial-gradient(900px 700px at 62% 108%,rgba(93,202,165,.09),transparent 62%);background-attachment:fixed}.app-shell,.app-shell>main{background:transparent}.panel,.metric-card,.attendance-card,.attendance-panel,.purchase-summary-grid article,.team-summary-grid article,.credit-summary-grid article,.topbar,.sidebar,.mobile-nav{background:var(--glass-thin);border-color:var(--glass-stroke);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:0 10px 30px #173f340f,inset 0 1px #ffffff8c}.sidebar{border-right:1px solid var(--glass-stroke)}.topbar{border-bottom:1px solid var(--glass-stroke)}.modal-card,.app-update-card{background:var(--glass-thick);border:1px solid var(--glass-stroke);-webkit-backdrop-filter:var(--glass-blur-thick);backdrop-filter:var(--glass-blur-thick);box-shadow:0 24px 70px #10181438,inset 0 1px #fff9}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){body{background-image:none;background-color:#f5f5f7}.panel,.metric-card,.attendance-card,.attendance-panel,.purchase-summary-grid article,.team-summary-grid article,.credit-summary-grid article,.topbar,.sidebar,.mobile-nav,.modal-card,.app-update-card{background:#fffffff7;-webkit-backdrop-filter:none;backdrop-filter:none}}
