:root{--ink:#17231f;--muted:#748078;--green:#173d33;--green2:#245344;--cream:#f4f5f1;--paper:#fff;--line:#e2e7e3;--gold:#c68c43;--red:#ad534d;--shadow:0 12px 38px rgba(22,53,44,.08)}
*{box-sizing:border-box}html{background:var(--cream)}body{margin:0;color:var(--ink);background:var(--cream);font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(198,140,67,.28);outline-offset:2px}.hidden{display:none!important}
.loading-screen,.loading-panel{display:grid;min-height:100vh;place-items:center;align-content:center;color:#73837c}.loading-panel{min-height:420px}.spinner{width:32px;height:32px;border:3px solid #dce6e1;border-top-color:#215343;border-radius:50%;animation:spin .8s linear infinite}.loading-screen p,.loading-panel p{font-size:12px}@keyframes spin{to{transform:rotate(360deg)}}
.auth-shell{display:grid;min-height:100vh;place-items:center;padding:28px;background:radial-gradient(circle at 14% 9%,rgba(36,91,72,.14),transparent 27%),linear-gradient(145deg,#eef1eb,#f8f5ef)}.auth-card{width:min(440px,100%);padding:42px;border:1px solid #dfe5e0;border-radius:22px;background:rgba(255,255,255,.94);box-shadow:0 24px 70px rgba(23,59,50,.12)}.login-mark,.brand-mark{display:grid;width:52px;height:52px;place-items:center;color:#f3eadc;border-radius:15px;background:var(--green);font-family:Georgia,serif;font-size:22px;font-weight:700}.eyebrow{margin:22px 0 0;color:#b17c3e;font-size:9px;font-weight:800;letter-spacing:.18em}.auth-card h1{margin:12px 0 8px;color:#18372e;font-size:28px;letter-spacing:-.045em}.auth-card>p:not(.eyebrow){margin:0;color:#7b8882;font-size:12px;line-height:1.7}.auth-form,.form-stack{display:flex;flex-direction:column;gap:15px;margin-top:26px}.auth-form label,.form-stack label,.expense-form label{display:flex;min-width:0;flex-direction:column;gap:7px}.auth-form label span,.form-stack label span,.expense-form label>span{color:#54645d;font-size:10px;font-weight:700}.auth-form input,.form-stack input,.expense-form input,.expense-form select,.expense-form textarea,.filters input,.filters select{width:100%;min-height:43px;padding:10px 12px;color:#263b33;border:1px solid #dbe2dd;border-radius:9px;background:#fbfcfa;outline:0}.expense-form textarea{resize:vertical}.auth-form input:focus,.form-stack input:focus,.expense-form input:focus,.expense-form select:focus,.expense-form textarea:focus,.filters input:focus,.filters select:focus{border-color:#7ba291;box-shadow:0 0 0 3px rgba(47,103,82,.09)}.form-error{min-height:14px;margin:0;color:#b14d48;font-size:10px}.security-note{margin-top:25px;padding-top:18px;color:#819089;border-top:1px solid #e7ebe7;font-size:9px;text-align:center}.login-note{display:block;margin-top:15px;color:#9aa39f;font-size:9px;text-align:center}
.primary,.secondary,.button-link{display:inline-flex;min-height:41px;align-items:center;justify-content:center;gap:7px;padding:0 16px;border-radius:10px;cursor:pointer;font-size:11px;font-weight:700}.primary{color:#fff;border:1px solid var(--green);background:var(--green);box-shadow:0 7px 18px rgba(22,59,49,.14)}.primary:hover{background:var(--green2)}.primary:disabled{opacity:.55;cursor:not-allowed}.secondary{color:#354a42;border:1px solid #dce3de;background:#fff}.wide{width:100%}
.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;display:flex;width:248px;flex-direction:column;padding:28px 20px 22px;color:#eef3ee;background:radial-gradient(circle at 15% 5%,rgba(255,255,255,.065),transparent 23%),linear-gradient(165deg,#173b32,#0c2620)}.brand{display:flex;align-items:center;gap:12px}.brand .brand-mark{width:40px;height:40px;flex:none;color:#173b32;border-radius:11px;background:#f2eadc;font-size:18px}.brand strong,.brand small{display:block}.brand strong{font-size:15px}.brand small{margin-top:3px;color:#9fb1a9;font-size:8px;font-weight:800;letter-spacing:.16em}.sidebar nav{margin-top:48px}.sidebar nav>p{margin:0 12px 11px;color:#789289;font-size:9px;font-weight:800;letter-spacing:.17em}.nav-button{display:flex;width:100%;align-items:center;gap:12px;margin:3px 0;padding:11px 13px;color:#b9c8c2;border:0;border-radius:10px;background:transparent;cursor:pointer;font-size:12px;text-align:left}.nav-button>span{width:18px;font-size:16px;text-align:center}.nav-button:hover,.nav-button.active{color:#fff;background:rgba(255,255,255,.09)}.nav-button.active{box-shadow:inset 3px 0 #d7a661}.secure-card{display:flex;align-items:flex-start;gap:10px;margin:auto 4px 22px;padding:13px;color:#d4ab70;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:rgba(255,255,255,.045)}.secure-card strong,.secure-card small{display:block}.secure-card strong{color:#e7eeeb;font-size:10px}.secure-card small{margin-top:4px;color:#879c94;font-size:8px}.profile{display:flex;align-items:center;gap:10px;padding:18px 7px 0;border-top:1px solid rgba(255,255,255,.09)}.avatar{display:grid;width:35px;height:35px;place-items:center;color:#183b32;border-radius:50%;background:#e3d0ad;font-size:12px;font-weight:800}.profile>div:nth-child(2){min-width:0;flex:1}.profile strong,.profile small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile strong{font-size:10px}.profile small{margin-top:3px;color:#829990;font-size:8px}.profile button,.mobile-close{padding:6px;color:#99aaa3;border:0;background:transparent;cursor:pointer;font-size:9px}.mobile-close,.mobile-backdrop,.menu-toggle,.mobile-add,.mobile-nav{display:none}
.main-content{min-height:100vh;margin-left:248px;padding:0 38px 54px}.topbar{display:flex;min-height:106px;align-items:center;justify-content:space-between;gap:24px}.title-row{display:flex;align-items:center;gap:12px}.topbar h1{margin:0;color:#17352d;font-size:23px;letter-spacing:-.035em}.topbar p{margin:6px 0 0;color:#829088;font-size:11px}.content-stack{display:flex;flex-direction:column;gap:20px}.stat-grid,.receipt-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat-card{display:flex;min-width:0;align-items:flex-start;gap:13px;padding:19px 17px;border:1px solid #e3e8e4;border-radius:14px;background:rgba(255,255,255,.92);box-shadow:0 4px 18px rgba(30,50,42,.035)}.stat-icon{display:grid;width:38px;height:38px;flex:none;place-items:center;border-radius:11px;font-size:9px}.stat-icon.green{color:#235846;background:#e2eee8}.stat-icon.gold{color:#996329;background:#f3e8d6}.stat-icon.blue{color:#557384;background:#e4edf1}.stat-icon.rose{color:#9c5a51;background:#f2e5e2}.stat-card p{margin:1px 0 6px;color:#78877f;font-size:9px;font-weight:700}.stat-card strong{display:block;overflow:hidden;color:#1c3029;font-size:clamp(16px,1.5vw,21px);letter-spacing:-.04em;text-overflow:ellipsis;white-space:nowrap}.stat-card small{display:block;margin-top:7px;color:#9aa39e;font-size:8px}.panel{overflow:hidden;border:1px solid #e3e8e3;border-radius:14px;background:#fff;box-shadow:0 4px 20px rgba(30,50,42,.028)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(270px,.8fr);gap:16px;margin-bottom:20px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 22px 14px}.panel-head h2{margin:0;color:#1e352d;font-size:14px}.panel-head p{margin:5px 0 0;color:#96a19b;font-size:9px}.link-button{padding:5px;color:#315f51;border:0;background:none;cursor:pointer;font-size:9px;font-weight:700}.bar-list{padding:8px 22px 24px}.bar-row{display:grid;grid-template-columns:80px 1fr 92px;align-items:center;gap:12px;margin:13px 0}.bar-row span{color:#63726b;font-size:9px}.bar-row i{height:8px;overflow:hidden;border-radius:10px;background:#eef1ee}.bar-row b{display:block;height:100%;border-radius:10px;background:linear-gradient(90deg,#8db1a2,#265b4a)}.bar-row strong{color:#364d44;font-size:9px;text-align:right}.status-list{padding:4px 22px 23px}.status-list>div{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid #edf0ed}.status-list>div:last-child{border:0}.status-list span{color:#6f7e77;font-size:9px}.status-list strong{color:#2d6955;font-size:9px}
.table-wrap{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse}th{padding:10px 15px;color:#919c97;border-top:1px solid #eef1ee;border-bottom:1px solid #eef1ee;background:#fafbf9;font-size:8px;font-weight:800;letter-spacing:.035em;text-align:left;white-space:nowrap}td{padding:13px 15px;color:#5f6d67;border-bottom:1px solid #eff1ef;font-size:9px;white-space:nowrap}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfdfb}td>strong{display:block;color:#263b33;font-size:9px}td>small{display:block;margin-top:3px;color:#9aa49f;font-size:8px}.tag{display:inline-block;padding:5px 8px;color:#356556;border-radius:20px;background:#e5eee9;font-size:8px;font-weight:700}.receipt-link{color:#2d6955;font-weight:700}.muted{color:#a7afab}.actions{text-align:right}.actions button{padding:6px;color:#48665b;border:0;border-radius:7px;background:transparent;cursor:pointer;font-size:8px}.actions button:hover{background:#eaf0ed}.actions .danger{color:#a84c49}.actions .danger:hover{background:#f5e9e7}.empty{padding:35px;color:#94a099;font-size:10px;text-align:center}
.filters{display:grid;grid-template-columns:minmax(190px,1fr) 150px 150px auto auto;gap:10px;padding:18px 20px;border-bottom:1px solid #e9edea}.filters input,.filters select{min-height:39px;background:#fff;font-size:9px}.search{position:relative}.search span{position:absolute;top:9px;left:12px;color:#8a9891}.search input{padding-left:32px}.results{padding-bottom:12px}
.receipt-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;padding:4px 20px 22px}.receipt-card{overflow:hidden;border:1px solid #e1e6e2;border-radius:12px;background:#fbfcfa}.receipt-thumb{display:grid;height:150px;place-items:center;overflow:hidden;background:#e9eeea}.receipt-thumb img{width:100%;height:100%;object-fit:cover}.pdf-thumb{display:grid;width:56px;height:68px;place-items:center;color:#9a514c;border-radius:7px;background:#f4e3e0;font-size:12px;font-weight:800}.receipt-copy{padding:13px}.receipt-copy strong,.receipt-copy span,.receipt-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.receipt-copy strong{font-size:10px}.receipt-copy span{margin-top:5px;color:#7d8983;font-size:8px}.receipt-copy small{margin-top:6px;color:#a0aaa5;font-size:8px}.receipt-actions{display:flex;border-top:1px solid #e9ece9}.receipt-actions a{flex:1;padding:9px;color:#346052;font-size:8px;font-weight:700;text-align:center}.receipt-actions a+a{border-left:1px solid #e9ece9}.wide-empty{grid-column:1/-1}
.report-top{display:grid;grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr);gap:16px}.report-total{padding:28px;color:#fff;border-radius:14px;background:linear-gradient(145deg,#214d40,#0f3027);box-shadow:var(--shadow)}.report-total p{margin:0;color:#a8c0b6;font-size:10px}.report-total strong{display:block;margin:13px 0 10px;font-size:30px;letter-spacing:-.045em}.report-total span{color:#9fb5ac;font-size:9px}.audit-list{padding:2px 22px 24px}.audit-row{display:flex;gap:13px;padding:15px 0;border-bottom:1px solid #edf0ed}.audit-dot{width:9px;height:9px;flex:none;margin-top:3px;border:2px solid #d4e5dd;border-radius:50%;background:#2c6b56}.audit-row strong{font-size:9px}.audit-row p{margin:4px 0;color:#5f6f68;font-size:9px}.audit-row small{color:#9aa49f;font-size:8px}.account-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:16px}.create-account .form-stack{margin:0;padding:6px 22px 22px}.create-account input{font-size:9px}
.modal-layer{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:rgba(12,34,28,.55);backdrop-filter:blur(5px)}.modal{width:min(680px,100%);max-height:calc(100vh - 34px);overflow:auto;border-radius:16px;background:#fff;box-shadow:0 30px 80px rgba(0,0,0,.23)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 22px 15px;border-bottom:1px solid #e7ebe8}.modal-head h2{margin:0;font-size:16px}.modal-head p{margin:5px 0 0;color:#8a9791;font-size:9px}.modal-head button{padding:4px 8px;color:#77867f;border:0;background:transparent;cursor:pointer;font-size:22px}.expense-form{padding:20px 22px 22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid .full{grid-column:1/-1}.expense-form input,.expense-form select,.expense-form textarea{font-size:10px}.file-field{padding:13px;border:1px dashed #ccd7d0;border-radius:10px;background:#f7faf7}.file-field input{padding:6px;border:0;background:transparent}.file-field small{color:#89968f;font-size:8px}.converted{display:flex;align-items:center;justify-content:space-between;margin-top:15px;padding:12px 14px;color:#4a6057;border-radius:9px;background:#edf4f0;font-size:10px}.converted strong{color:#1f5342;font-size:14px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:17px}
.staff-shell{min-height:100vh;padding-bottom:55px;background:radial-gradient(circle at 8% 5%,rgba(41,96,77,.08),transparent 27%),#f4f5f1}.staff-header{display:flex;height:78px;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 980px)/2));border-bottom:1px solid #e0e5e1;background:rgba(255,255,255,.9);backdrop-filter:blur(14px)}.staff-header .brand strong{color:#243e35}.staff-header>div:last-child{display:flex;align-items:center;gap:12px;color:#5a6b64;font-size:10px}.staff-header button{padding:7px 10px;color:#718079;border:1px solid #dfe4e0;border-radius:8px;background:#fff;cursor:pointer;font-size:9px}.staff-layout{display:grid;width:min(980px,calc(100% - 38px));grid-template-columns:minmax(250px,.75fr) minmax(420px,1.25fr);align-items:start;gap:42px;margin:52px auto 0}.staff-intro{position:sticky;top:105px;padding:28px 4px}.staff-intro .eyebrow{margin:0}.staff-intro h1{margin:12px 0 10px;color:#193b30;font-size:29px;letter-spacing:-.045em}.staff-intro>p:not(.eyebrow){margin:0;color:#76847d;font-size:11px;line-height:1.75}.staff-intro>span{display:block;margin-top:22px;padding:11px;color:#436357;border:1px solid #d8e4dd;border-radius:9px;background:#edf4f0;font-size:9px}.staff-form-card .expense-form{padding-top:8px}.staff-form-card .form-actions .primary{width:100%;min-height:47px}.success-card{width:min(570px,calc(100% - 38px));margin:64px auto 0;padding:42px;border:1px solid #dfe6e1;border-radius:19px;background:#fff;box-shadow:0 18px 50px rgba(23,59,50,.1);text-align:center}.success-icon{display:grid;width:66px;height:66px;margin:0 auto 18px;place-items:center;color:#fff;border:6px solid #dceae3;border-radius:50%;background:#2d735c;font-size:30px}.success-card .eyebrow{margin:0}.success-card h1{margin:10px 0 7px;color:#1d3d32;font-size:24px}.success-card>p:not(.eyebrow){margin:0;color:#7c8983;font-size:10px}.success-summary{display:grid;grid-template-columns:1fr 1fr;gap:1px;overflow:hidden;margin:27px 0 20px;border:1px solid #e4e9e5;border-radius:11px;background:#e4e9e5;text-align:left}.success-summary>div{min-width:0;padding:13px 15px;background:#fafbf9}.success-summary span,.success-summary strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.success-summary span{margin-bottom:4px;color:#9aa49f;font-size:8px}.success-summary strong{color:#365047;font-size:10px}.success-card>small{display:block;margin-top:15px;color:#84938c;font-size:8px}.toast{position:fixed;right:24px;bottom:24px;z-index:200;padding:13px 17px;color:#fff;border-radius:10px;background:#173d33;box-shadow:0 12px 35px rgba(0,0,0,.2);font-size:10px}
@media(max-width:1050px){.stat-grid,.receipt-stats{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.account-grid{grid-template-columns:1fr}.receipt-grid{grid-template-columns:1fr 1fr}.filters{grid-template-columns:1fr 1fr 1fr}.filters .search{grid-column:1/-1}.report-top{grid-template-columns:1fr}.report-total strong{font-size:25px}}
@media(max-width:760px){body{padding-bottom:66px}.sidebar{width:270px;transform:translateX(-100%);transition:transform .2s ease}.menu-open .sidebar{transform:translateX(0)}.mobile-backdrop{position:fixed;inset:0;z-index:30;background:rgba(11,30,25,.45)}.menu-open .mobile-backdrop{display:block}.mobile-close{display:block;margin-left:auto;font-size:20px}.main-content{margin-left:0;padding:0 16px 34px}.topbar{min-height:88px}.menu-toggle{display:inline-grid;width:38px;height:38px;place-items:center;border:1px solid #dce3de;border-radius:9px;background:#fff}.topbar h1{font-size:19px}.topbar p{font-size:9px}.topbar>.primary{display:none}.mobile-add{position:fixed;right:19px;bottom:78px;z-index:25;display:grid;width:50px;height:50px;place-items:center;color:#fff;border:0;border-radius:50%;background:#173d33;box-shadow:0 8px 22px rgba(23,61,51,.3);font-size:22px}.mobile-nav{position:fixed;inset:auto 0 0;z-index:20;display:flex;height:65px;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid #dfe5e0;background:rgba(255,255,255,.96);backdrop-filter:blur(14px)}.mobile-nav .nav-button{flex:1;flex-direction:column;justify-content:center;gap:2px;margin:0;padding:5px;color:#87948e;border-radius:0;font-size:8px;text-align:center}.mobile-nav .nav-button>span{font-size:16px}.mobile-nav .nav-button.active{color:#245444;background:#eef4f0;box-shadow:inset 0 3px #2a6551}.stat-grid,.receipt-stats{gap:10px}.stat-card{padding:14px 12px}.stat-icon{display:none}.stat-card strong{font-size:15px}.panel-head{padding:17px 15px 12px}.filters{grid-template-columns:1fr 1fr;padding:14px}.filters .search{grid-column:1/-1}.filters a,.filters button{min-height:39px}.receipt-grid{grid-template-columns:1fr;padding:4px 14px 16px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.modal-layer{align-items:end;padding:0}.modal{max-height:92vh;border-radius:18px 18px 0 0}.expense-form{padding:16px}.staff-header{height:66px;padding:0 16px}.staff-layout{display:block;width:calc(100% - 28px);margin:25px auto 0}.staff-intro{position:static;padding:12px 3px 22px}.staff-intro h1{font-size:24px}.success-card{margin-top:30px;padding:31px 21px}.toast{right:14px;bottom:80px;left:14px;text-align:center}}
@media(max-width:430px){.stat-grid,.receipt-stats{grid-template-columns:1fr 1fr}.stat-card p{font-size:8px}.stat-card strong{font-size:13px}.stat-card small{white-space:normal}.filters{grid-template-columns:1fr}.filters .search{grid-column:auto}.auth-card{padding:30px 22px}.success-summary{grid-template-columns:1fr}.bar-row{grid-template-columns:65px 1fr 80px}}

