@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.start{inset-inline-start:var(--spacing)}.contents{display:contents}.table{display:table}.grow{flex-grow:1}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--ink:#14211d;--muted:#66736e;--line:#dfe5e2;--paper:#f5f7f6;--white:#fff;--brand:#095c46;--brand-dark:#063d31;--accent:#dbff68;--soft-green:#eaf4ef;--warning:#d97706;--danger:#b42318;--shadow:0 18px 55px #0f2e2514}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink)}body{background:var(--paper);min-height:100vh;color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #095c463d}.eyebrow{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:800;display:inline-block}.eyebrow-dark{color:var(--brand)}.brand-lockup{align-items:center;gap:11px;display:inline-flex}.brand-lockup>span:last-child{flex-direction:column;gap:2px;display:flex}.brand-lockup strong{letter-spacing:-.02em;font-size:16px}.brand-lockup small{color:#8b9893;font-size:11px}.brand-mark{width:38px;height:38px;color:var(--brand-dark);background:var(--accent);border-radius:11px;place-items:center;font-size:18px;font-weight:900;display:inline-grid;box-shadow:inset 0 0 0 1px #063d3114}.brand-lockup-light{color:#fff;font-size:18px;font-weight:750}.primary-button,.secondary-button,.text-button{cursor:pointer;border:0;transition:transform .16s,background .16s,opacity .16s}.primary-button{color:#fff;background:var(--brand);border-radius:14px;justify-content:center;align-items:center;gap:22px;min-height:48px;padding:0 20px;font-weight:750;display:inline-flex;box-shadow:0 10px 24px #095c4630}.primary-button:hover{background:var(--brand-dark);transform:translateY(-1px)}.primary-button:disabled{cursor:wait;opacity:.58}.secondary-button{border:1px solid var(--line);min-height:44px;color:var(--ink);background:#fff;border-radius:13px;padding:0 18px;font-weight:700}.secondary-button:hover{background:#f7faf8}.secondary-button:disabled{cursor:wait;opacity:.55}.text-button{color:var(--muted);background:0 0;padding:9px 12px}.link-button{justify-content:center;align-items:center;display:inline-flex}.compact-button{border-radius:12px;gap:12px;min-height:42px;padding:0 17px;font-size:14px}.login-page{grid-template-columns:minmax(0,1.14fr) minmax(420px,.86fr);min-height:100vh;display:grid}.login-brand-panel{background:var(--brand-dark);color:#fff;flex-direction:column;justify-content:space-between;min-height:100vh;padding:48px clamp(40px,7vw,112px);display:flex;position:relative;overflow:hidden}.login-brand-panel:before,.login-brand-panel:after{content:"";pointer-events:none;border-radius:50%;position:absolute}.login-brand-panel:before{border:1px solid #dbff6847;width:520px;height:520px;bottom:-260px;left:-230px;box-shadow:0 0 0 70px #dbff6806,0 0 0 140px #dbff6805}.login-brand-panel:after{background:linear-gradient(135deg,#dbff681f,#0000);width:220px;height:220px;top:15%;right:-90px}.login-message{z-index:1;max-width:680px;margin:74px 0;position:relative}.login-message h1{letter-spacing:-.055em;margin:16px 0 22px;font-size:clamp(42px,5.2vw,72px);line-height:1.08}.login-message p{color:#c8d5d0;max-width:570px;margin:0;font-size:17px;line-height:1.85}.login-metrics{z-index:1;border-top:1px solid #ffffff21;gap:clamp(24px,5vw,74px);padding-top:28px;display:flex;position:relative}.login-metrics div{flex-direction:column;gap:5px;display:flex}.login-metrics strong{color:var(--accent);font-size:21px}.login-metrics span{color:#afc0ba;font-size:12px}.login-action-panel{background:#f7f8f7;flex-direction:column;justify-content:center;align-items:center;padding:40px;display:flex}.login-card{border:1px solid var(--line);width:min(420px,100%);box-shadow:var(--shadow);background:#fff;border-radius:26px;padding:46px 42px 38px}.login-card-icon{color:#fff;background:#3370ff;border-radius:16px;place-items:center;width:54px;height:54px;margin-bottom:34px;font-size:21px;font-weight:900;display:grid}.login-card h2{letter-spacing:-.035em;margin:10px 0 15px;font-size:30px}.login-card>p{color:var(--muted);margin:0 0 30px;font-size:14px;line-height:1.8}.feishu-button{background:#3370ff;width:100%;box-shadow:0 10px 24px #3370ff30}.feishu-button:hover{background:#245bdb}.login-security-note{color:#7c8984;justify-content:center;align-items:center;gap:8px;margin-top:20px;font-size:11px;display:flex}.security-dot{background:#2e9d69;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #e8f5ee}.login-footer{color:#94a09b;margin:22px 0 0;font-size:11px}.status-page{background:linear-gradient(145deg,#eef4f1,#f9faf9 55%,#edf2ef);place-items:center;min-height:100vh;padding:28px;display:grid}.status-card{border:1px solid var(--line);text-align:center;width:min(530px,100%);box-shadow:var(--shadow);background:#fff;border-radius:28px;padding:52px}.status-card h1{letter-spacing:-.04em;margin:14px 0 12px;font-size:34px}.status-card>p{color:var(--muted);line-height:1.75}.status-illustration{border-radius:24px;place-items:center;width:76px;height:76px;margin:0 auto 26px;font-size:27px;font-weight:900;display:grid}.pending-mark{color:var(--brand);background:var(--soft-green)}.pending-mark span{letter-spacing:4px;transform:translateY(-5px)}.blocked-mark{color:var(--danger);background:#fff0ef}.status-steps{align-items:center;margin:36px 24px 9px;display:flex}.status-steps span{color:#7d8884;background:#edf0ee;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:12px;font-weight:800;display:grid}.status-steps span.done{background:var(--brand);color:#fff}.status-steps span.current{background:var(--accent);color:var(--brand-dark);box-shadow:0 0 0 5px #f2fbd7}.status-steps i{background:#dfe5e2;flex:1;height:2px}.status-step-labels{color:#7c8883;justify-content:space-between;margin:0 8px 35px;font-size:11px;display:flex}.compact-status-card{width:min(430px,100%)}.compact-status-card .primary-button,.compact-status-card .secondary-button{width:100%;margin-top:16px}.compact-status-card form{margin-top:8px}.app-shell{min-height:100vh}.sidebar{z-index:20;color:#fff;background:#0d2922;flex-direction:column;width:244px;padding:28px 20px 20px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar>.brand-lockup{border-bottom:1px solid #ffffff17;padding:0 7px 28px}.sidebar-nav{flex-direction:column;flex:1;gap:5px;padding:24px 0;display:flex;overflow-y:auto}.sidebar-nav a{color:#bdcbc6;border-radius:11px;align-items:center;gap:12px;padding:10px 12px;font-size:13px;font-weight:650;display:flex}.sidebar-nav a:hover{color:#fff;background:#ffffff12}.nav-mark{color:#d3e5df;background:#ffffff12;border-radius:8px;place-items:center;width:27px;height:27px;font-size:12px;display:grid}.sidebar-user{border-top:1px solid #ffffff17;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:15px 10px 0;display:grid}.sidebar-user>span{flex-direction:column;min-width:0;display:flex}.sidebar-user strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.sidebar-user small{color:#8fa29c;font-size:10px}.sidebar-user button{color:#91a39d;cursor:pointer;background:#ffffff0f;border:0;border-radius:8px;width:29px;height:29px}.user-avatar{object-fit:cover;border-radius:11px;flex:none;width:36px;height:36px}.avatar-fallback{color:var(--brand-dark);background:var(--accent);place-items:center;font-weight:900;display:grid}.app-content{min-height:100vh;margin-left:244px}.mobile-header,.mobile-nav{display:none}.module-page{width:min(1360px,100%);margin:0 auto;padding:46px clamp(28px,4vw,64px) 70px}.page-heading,.dashboard-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:30px;display:flex}.page-heading h1,.dashboard-heading h1{letter-spacing:-.05em;margin:7px 0 6px;font-size:clamp(30px,3.2vw,43px)}.page-heading p,.dashboard-heading p{color:var(--muted);margin:0;font-size:14px}.panel{border:1px solid var(--line);background:#fff;border-radius:20px;box-shadow:0 8px 28px #0f2e250b}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:430px;display:flex}.empty-mark{width:58px;height:58px;color:var(--brand);background:var(--soft-green);border-radius:18px;place-items:center;font-size:20px;font-weight:900;display:grid}.empty-state h2{margin:18px 0 6px;font-size:19px}.empty-state p{color:var(--muted);margin:0;font-size:13px}.summary-grid{grid-template-columns:1.25fr repeat(3,1fr);gap:14px;display:grid}.summary-card{border:1px solid var(--line);background:#fff;border-radius:18px;flex-direction:column;min-height:148px;padding:23px;display:flex}.summary-card>span{color:var(--muted);font-size:12px;font-weight:650}.summary-card strong{letter-spacing:-.04em;margin:18px 0 5px;font-size:28px}.summary-card small{color:#94a09b;font-size:11px}.summary-balance{border-color:var(--brand);color:#fff;background:var(--brand);position:relative;overflow:hidden}.summary-balance:after{content:"";border:25px solid #dbff682b;border-radius:50%;width:130px;height:130px;position:absolute;bottom:-67px;right:-47px}.summary-balance>span,.summary-balance small{color:#c5d7d1}.dashboard-columns{grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:16px;margin-top:16px;display:grid}.recent-panel{padding:26px}.recent-panel header{justify-content:space-between;align-items:flex-start;display:flex}.recent-panel h2,.guide-panel h2{margin:5px 0 0;font-size:20px}.recent-panel header a{color:var(--brand);font-size:12px;font-weight:750}.empty-inline{min-height:208px;color:var(--muted);justify-content:center;align-items:center;gap:14px;display:flex}.empty-inline>span{width:40px;height:40px;color:var(--brand);background:var(--soft-green);border-radius:13px;place-items:center;display:grid}.empty-inline strong{color:var(--ink);font-size:14px}.empty-inline p{margin:4px 0 0;font-size:12px}.guide-panel{color:#fff;background:#14382f;padding:26px}.guide-panel ol{flex-direction:column;gap:18px;margin:23px 0 0;padding:0;list-style:none;display:flex}.guide-panel li{align-items:center;gap:12px;display:flex}.guide-panel li>span{width:27px;height:27px;color:var(--brand-dark);background:var(--accent);border-radius:9px;flex:none;place-items:center;font-size:11px;font-weight:850;display:grid}.guide-panel li p{flex-direction:column;margin:0;display:flex}.guide-panel li strong{font-size:12px}.guide-panel li small{color:#9db3ac;font-size:10px}.user-admin-grid{grid-template-columns:minmax(260px,.7fr) minmax(560px,1.6fr);align-items:start;gap:16px;display:grid}.user-list-panel{overflow:hidden}.user-list-panel>header{justify-content:space-between;align-items:center;padding:21px 22px 14px;display:flex}.user-list-panel>header h2{margin:0;font-size:17px}.user-list-panel>header span{color:var(--muted);font-size:11px}.user-filter-pills{gap:7px;padding:0 22px 14px;display:flex}.user-filter-pills span{color:var(--muted);background:#f2f4f3;border-radius:8px;padding:6px 9px;font-size:10px}.user-filter-pills .active{color:var(--brand);background:var(--soft-green);font-weight:750}.user-list{max-height:620px;padding:0 9px 10px;overflow-y:auto}.user-list button{width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:13px;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:12px 13px;display:grid}.user-list button:hover,.user-list button.selected{background:#edf4f0}.user-list button>span{flex-direction:column;min-width:0;display:flex}.user-list button strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.user-list button strong small{color:var(--brand);font-size:9px;display:inline}.user-list button span>small{color:#8b9792;font-size:10px}.status-dot{background:#b2bbb7;border-radius:50%;width:8px;height:8px}.status-active{background:#2f9e69}.status-pending{background:#e7a32b}.status-disabled{background:#c7cecb}.permission-panel{padding:25px}.permission-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:23px;display:flex}.permission-person{align-items:center;gap:12px;min-width:0;display:flex}.permission-person .user-avatar{border-radius:13px;width:43px;height:43px}.permission-person h2{margin:0;font-size:19px}.permission-person small{text-overflow:ellipsis;color:#8c9893;max-width:290px;font-size:9px;display:block;overflow:hidden}.field-label{color:var(--muted);flex-direction:column;gap:6px;font-size:10px;font-weight:700;display:flex}.field-label select{border:1px solid var(--line);min-width:128px;height:38px;color:var(--ink);background:#fff;border-radius:10px;padding:0 10px}.admin-switch-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:20px 3px;display:flex}.admin-switch-row strong{font-size:13px}.admin-switch-row p{color:var(--muted);margin:3px 0 0;font-size:10px}.switch{width:42px;height:24px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.switch span{cursor:pointer;background:#ccd4d0;border-radius:999px;transition:all .18s;position:absolute;inset:0}.switch span:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:all .18s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0003}.switch input:checked+span{background:var(--brand)}.switch input:checked+span:before{transform:translate(18px)}.switch input:disabled+span{cursor:not-allowed;opacity:.6}.preset-row{align-items:center;gap:7px;padding:17px 0 12px;display:flex}.preset-row>span{color:var(--muted);margin-right:4px;font-size:10px}.preset-row button{border:1px solid var(--line);color:var(--brand);cursor:pointer;background:#fff;border-radius:8px;padding:6px 10px;font-size:10px;font-weight:700}.permission-groups{grid-template-columns:1fr 1fr;gap:10px;display:grid}.permission-groups fieldset{border:1px solid var(--line);border-radius:13px;margin:0;padding:13px}.permission-groups legend{color:var(--ink);padding:0 5px;font-size:11px;font-weight:800}.permission-groups legend small{color:#929d98;margin-left:6px;font-size:8px;font-weight:500}.permission-groups label{cursor:pointer;align-items:center;gap:8px;padding:7px 2px;display:flex}.permission-groups input{width:15px;height:15px;accent-color:var(--brand)}.permission-groups label span{flex-direction:column;display:flex}.permission-groups label strong{font-size:10px;font-weight:650}.permission-groups label small{color:#9aa49f;font-size:8px}.permission-footer{justify-content:space-between;align-items:center;min-height:64px;padding-top:18px;display:flex}.success-message,.error-message{font-size:11px}.success-message{color:var(--brand)}.error-message{color:var(--danger)}.loading-panel{color:var(--muted);text-align:center;padding:40px}.message-panel{text-align:center;padding:24px}.compact-empty{min-height:280px}.form-message{margin:12px 2px 16px;font-size:12px}.edit-form{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:14px;margin-bottom:16px;padding:22px;display:grid}.edit-form label,.review-actions label{color:var(--muted);flex-direction:column;gap:7px;font-size:11px;font-weight:700;display:flex}.edit-form input,.edit-form select,.review-actions input{border:1px solid var(--line);width:100%;height:43px;color:var(--ink);background:#fff;border-radius:11px;padding:0 12px}.edit-form .field-wide{grid-column:span 2}.budget-edit-form{background:#f8fcfa;border-color:#b9d3ca}.form-intro{flex-direction:column;gap:5px;display:flex}.form-intro strong{font-size:15px}.settings-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.data-panel{margin-top:16px;overflow:hidden}.data-panel>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:80px;padding:20px 24px;display:flex}.data-panel>header h2{margin:5px 0 0;font-size:19px}.data-panel>header>span{color:var(--muted);font-size:11px}.record-list{padding:8px 14px}.record-list>article{border-bottom:1px solid #edf0ee;align-items:center;gap:10px;min-height:64px;padding:12px 8px;display:flex}.record-list>article:last-child{border-bottom:0}.record-list>article>div{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.record-list strong{font-size:13px}.record-list small{text-overflow:ellipsis;color:var(--muted);font-size:10px;overflow:hidden}.record-list b{font-size:13px}.badge{width:fit-content;color:var(--brand);background:var(--soft-green);white-space:nowrap;border-radius:8px;padding:5px 8px;font-size:9px;font-weight:800}.badge-ok,.badge-approved{color:#08734f;background:#e8f6ef}.badge-warn,.badge-returned,.badge-submitted{color:#a15a00;background:#fff3db}.badge-rejected{color:var(--danger);background:#fff0ef}.badge-muted,.badge-draft{color:#68746f;background:#eef1ef}.balance-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px;display:grid}.balance-card{flex-direction:column;min-height:130px;padding:23px;display:flex}.balance-card>span{color:var(--muted);font-size:12px}.balance-card strong{color:var(--brand);margin:13px 0 6px;font-size:27px}.balance-card small{color:#8d9994;font-size:10px}.table-panel{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:720px}th,td{text-align:left;border-bottom:1px solid #edf0ee;padding:13px 22px;font-size:11px}th{color:var(--muted);background:#fafbfa;font-size:10px}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.expense-toolbar{justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;padding:12px 14px;display:flex}.filter-pills{flex-wrap:wrap;gap:6px;display:flex}.filter-pills button{min-height:34px;color:var(--muted);cursor:pointer;background:#f2f4f3;border:0;border-radius:9px;padding:0 10px;font-size:10px;font-weight:700}.filter-pills button span{color:#98a29e;margin-left:4px}.filter-pills button.active{color:#fff;background:var(--brand)}.filter-pills button.active span{color:#bdd4cc}.search-field{width:min(260px,100%);position:relative}.search-field>span{color:#8a9691;font-size:9px;font-weight:800;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-field input{border:1px solid var(--line);width:100%;height:38px;color:var(--ink);background:#fff;border-radius:10px;padding:0 11px 0 48px;font-size:11px}.filtered-empty{text-align:center;align-content:center;place-items:center;min-height:180px;padding:30px;display:grid}.filtered-empty strong{font-size:15px}.filtered-empty p{color:var(--muted);margin:7px 0 0;font-size:11px}.expense-list,.review-list{flex-direction:column;gap:14px;display:flex}.expense-card{padding:23px}.expense-card>header,.review-card>header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.expense-card h2,.review-card h2{margin:9px 0 4px;font-size:18px}.expense-card header small,.review-card header p{color:var(--muted);margin:0;font-size:10px}.expense-amount,.review-total{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.expense-amount strong,.review-total strong{letter-spacing:-.03em;font-size:23px}.review-note{color:#8a4c00;background:#fff7e8;border-radius:10px;padding:10px 12px;font-size:11px}.coverage-line{border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-top:15px;padding:10px 12px;display:flex}.coverage-line span{font-size:11px;font-weight:850}.coverage-line small{text-align:right;font-size:9px}.coverage-matched{color:#08734f;background:#e8f6ef}.coverage-explained{color:#775a00;background:#fff8dd}.coverage-short,.coverage-over,.coverage-missing{color:var(--danger);background:#fff0ef}.invoice-strip{border-top:1px solid var(--line);flex-wrap:wrap;gap:9px;margin-top:18px;padding-top:16px;display:flex}.invoice-mini{border:1px solid var(--line);background:#fbfcfb;border-radius:12px;align-items:center;gap:10px;min-width:220px;padding:10px;display:flex}.invoice-mini .file-icon{width:38px;height:38px;color:var(--brand);background:var(--soft-green);border-radius:9px;place-items:center;font-size:8px;font-weight:900;display:grid}.invoice-mini>div{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.invoice-mini strong{text-overflow:ellipsis;white-space:nowrap;max-width:165px;font-size:10px;overflow:hidden}.invoice-mini small{color:var(--muted);font-size:9px}.invoice-mini i{color:#fff;background:var(--warning);border-radius:50%;place-items:center;width:20px;height:20px;font-size:10px;font-style:normal;font-weight:900;display:grid}.no-invoice{color:var(--warning);font-size:11px}.expense-card>footer{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.upload-button{cursor:pointer;position:relative}.upload-button input{opacity:0;width:1px;height:1px;position:absolute}.camera-upload{color:var(--brand);background:#f2f9f5;border-color:#b9d3ca}.review-summary{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px;display:grid}.review-summary article{border:1px solid var(--line);background:#fff;border-radius:15px;flex-direction:column;gap:9px;min-height:90px;padding:17px 19px;display:flex}.review-summary span{color:var(--muted);font-size:10px}.review-summary strong{font-size:19px}.review-summary article.attention{background:#fff8f7;border-color:#f0c8c4}.review-summary article.attention strong{color:var(--danger)}.review-card{overflow:hidden}.review-card>header{border-bottom:1px solid var(--line);padding:23px}.review-total small{color:var(--muted);font-size:9px}.review-total .match{color:var(--brand);font-size:9px}.review-total .difference{color:var(--danger);font-size:9px;font-weight:750}.review-alert{justify-content:space-between;gap:14px;padding:9px 23px;font-size:10px;display:flex}.review-alert span{font-size:9px}.budget-alert{border-top:1px solid var(--line);color:#176449;background:#f0f8f4;justify-content:space-between;align-items:center;gap:18px;padding:12px 23px;display:flex}.budget-alert>div{flex-direction:column;gap:3px;display:flex}.budget-alert strong{font-size:10px}.budget-alert span{color:var(--muted);font-size:9px}.budget-alert b{font-size:15px}.budget-alert.budget-warning{color:#9b4f00;background:#fff6e5}.review-invoices{background:#fafbfa;grid-template-columns:repeat(2,1fr);gap:12px;padding:18px 23px;display:grid}.invoice-detail{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:118px 1fr;gap:14px;padding:12px;display:grid}.invoice-preview{height:118px;color:var(--brand);text-align:center;background:#edf3f0;border-radius:10px;place-items:center;display:grid;overflow:hidden}.invoice-preview img{object-fit:cover;width:100%;height:100%}.invoice-preview span{flex-direction:column;gap:6px;font-size:9px;display:flex}.invoice-preview b{font-size:16px}.invoice-detail dl{min-width:0;margin:0}.invoice-detail dl>div{grid-template-columns:62px 1fr;gap:8px;padding:4px 0;display:grid}.invoice-detail dt{color:var(--muted);font-size:8px}.invoice-detail dd{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:9px;overflow:hidden}.invoice-detail dd.invoice-money{color:var(--brand);font-size:14px;font-weight:850}.invoice-flags{grid-column:1/-1;gap:6px;display:flex}.no-invoice.large{min-height:150px;color:var(--warning);text-align:center;grid-column:1/-1;place-items:center;display:grid}.review-actions{align-items:flex-end;gap:10px;padding:16px 23px;display:flex}.review-actions label{width:140px}.review-actions .grow{flex:1;min-width:190px}.danger-button{color:var(--danger);border-color:#f0c8c4}.invoice-gallery{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.invoice-card{padding:16px}.invoice-card .invoice-detail{border:0;padding:0}.invoice-card>footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:13px;padding-top:13px;font-size:10px;display:flex}.invoice-card>footer>div{flex-direction:column;gap:3px;display:flex}.invoice-card>footer span{color:var(--muted)}.invoice-edit{background:#f5f8f6;border-radius:13px;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px;padding:14px;display:grid}.invoice-edit label{color:var(--muted);flex-direction:column;gap:5px;font-size:9px;font-weight:700;display:flex}.invoice-edit input,.invoice-edit select{border:1px solid var(--line);background:#fff;border-radius:9px;height:38px;padding:0 9px}.report-summary{margin-bottom:16px}.report-filters{grid-template-columns:repeat(4,minmax(120px,1fr)) auto auto;align-items:end;gap:10px;margin-bottom:16px;padding:17px;display:grid}.report-filters label{color:var(--muted);flex-direction:column;gap:6px;font-size:9px;font-weight:750;display:flex}.report-filters input,.report-filters select,.audit-select select{border:1px solid var(--line);height:40px;color:var(--ink);background:#fff;border-radius:10px;padding:0 10px}.budget-cell-warning{color:var(--danger);font-weight:850}.monthly-chart{margin-bottom:16px;padding:23px}.monthly-chart header h2{margin:5px 0 0;font-size:19px}.bar-list{flex-direction:column;gap:11px;margin-top:22px;display:flex}.bar-list>div{grid-template-columns:68px 1fr 100px;align-items:center;gap:12px;display:grid}.bar-list span{color:var(--muted);font-size:9px}.bar-list i{background:#edf1ef;border-radius:999px;height:9px;overflow:hidden}.bar-list b{border-radius:inherit;background:linear-gradient(90deg, var(--brand), #43a77f);height:100%;display:block}.bar-list strong{text-align:right;font-size:10px}.audit-select{align-items:center;gap:10px;display:flex}.audit-select span{color:var(--muted);font-size:9px;font-weight:800}.audit-timeline{padding:10px 24px}.audit-timeline>article{border-bottom:1px solid var(--line);grid-template-columns:155px 1fr;gap:16px;min-height:92px;padding:18px 0 18px 28px;display:grid;position:relative}.audit-timeline>article:last-of-type{border-bottom:0}.audit-timeline>article:before{content:"";background:#cfdbd6;width:1px;position:absolute;top:31px;bottom:-31px;left:6px}.audit-timeline>article:last-of-type:before{display:none}.audit-dot{background:var(--brand);border:3px solid #cce2d9;border-radius:50%;width:11px;height:11px;position:absolute;top:27px;left:1px}.audit-timeline time{color:var(--muted);padding-top:2px;font-size:10px}.audit-timeline article>div{min-width:0}.audit-timeline strong{font-size:12px}.audit-timeline p{color:var(--muted);margin:5px 0;font-size:10px}.audit-timeline small{overflow-wrap:anywhere;color:#8c9792;font-size:8px;line-height:1.6;display:block}@media (max-width:1050px){.login-page{grid-template-columns:1fr 430px}.login-brand-panel{padding:42px}.login-message h1{font-size:48px}.summary-grid{grid-template-columns:1fr 1fr}.user-admin-grid{grid-template-columns:260px 1fr}.permission-groups{grid-template-columns:1fr}.edit-form{grid-template-columns:repeat(2,1fr)}.review-invoices,.invoice-gallery{grid-template-columns:1fr}.report-filters{grid-template-columns:1fr 1fr}}@media (max-width:820px){.login-page{background:#f7f8f7;display:block}.login-brand-panel{min-height:auto;padding:30px 24px 55px}.login-message{margin:64px 0 35px}.login-message h1{font-size:clamp(36px,10vw,52px)}.login-message p{font-size:14px}.login-metrics{flex-wrap:wrap;gap:25px}.login-action-panel{padding:0 18px 32px}.login-card{border-radius:22px;margin-top:-25px;padding:34px 25px 28px}.login-card-icon{margin-bottom:24px}.sidebar{display:none}.app-content{margin-left:0;padding-bottom:78px}.mobile-header{z-index:15;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f5f7f6f0;justify-content:space-between;align-items:center;height:66px;padding:0 18px;display:flex;position:sticky;top:0}.mobile-header .brand-mark{border-radius:10px;width:33px;height:33px;font-size:15px}.mobile-header .brand-lockup{gap:8px}.mobile-header .user-avatar{width:34px;height:34px}.mobile-nav{z-index:30;height:70px;padding:7px 10px max(7px, env(safe-area-inset-bottom));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff5;gap:3px;display:flex;position:fixed;inset:auto 0 0;overflow-x:auto}.mobile-nav a{min-width:57px;color:var(--muted);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 7px;display:flex}.mobile-nav a:hover{color:var(--brand);background:var(--soft-green)}.mobile-nav a>span{font-size:14px;font-weight:800}.mobile-nav small{font-size:9px}.module-page{padding:29px 16px 40px}.page-heading,.dashboard-heading{flex-direction:column;align-items:flex-start}.page-heading .primary-button,.dashboard-heading .primary-button{width:100%}.summary-grid{grid-template-columns:1fr 1fr}.summary-card{min-height:132px;padding:19px}.summary-card strong{font-size:24px}.dashboard-columns,.user-admin-grid{grid-template-columns:1fr}.user-list{max-height:260px}.permission-header{flex-direction:column;align-items:flex-start}.field-label,.field-label select{width:100%}.permission-groups,.settings-grid,.balance-grid{grid-template-columns:1fr}.review-summary{grid-template-columns:1fr 1fr}.expense-toolbar{flex-direction:column;align-items:stretch}.search-field{width:100%}.review-actions{flex-direction:column;align-items:stretch}.review-actions label,.review-actions .grow{width:100%;min-width:0}}@media (max-width:480px){.login-metrics div:nth-child(3){display:none}.status-card{padding:38px 22px}.summary-grid{grid-template-columns:1fr}.summary-card{min-height:118px}.summary-balance{grid-column:auto}.permission-panel{padding:18px 15px}.permission-person small{max-width:210px}.permission-groups legend small{display:none}.preset-row{flex-wrap:wrap}.edit-form{grid-template-columns:1fr}.edit-form .field-wide{grid-column:span 1}.expense-card>header,.review-card>header{flex-direction:column}.expense-amount,.review-total{align-items:flex-start;width:100%}.expense-card>footer{flex-direction:column}.expense-card>footer>*{width:100%}.review-summary{grid-template-columns:1fr}.review-alert{flex-direction:column;align-items:flex-start}.budget-alert{align-items:flex-start}.report-filters{grid-template-columns:1fr}.bar-list>div{grid-template-columns:58px 1fr 82px}.audit-timeline{padding:8px 16px}.audit-timeline>article{grid-template-columns:1fr;gap:6px}.coverage-line{flex-direction:column;align-items:flex-start}.coverage-line small{text-align:left}.invoice-detail{grid-template-columns:90px 1fr}.invoice-preview{height:100px}.invoice-mini{width:100%;min-width:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
