:root{--primary:#0F766E;--primary-d:#0B3B36;--primary-soft:#E8F5F2;--accent:#14B8A6;--gold:#D6A13C;--gold-soft:#FBF3E5;--gold-ink:#845D10;--bg:#F4F7F8;--card:#fff;--ink:#152A38;--ink2:#63798B;--line:#E6ECEF;--red:#C2274B;--green:#137A4B;--sidebar-w:248px;--radius:18px;--shadow:0 2px 8px rgba(15,42,67,.06),0 10px 28px rgba(15,42,67,.05);--font-main:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",Inter,Arial,sans-serif;--font-number:"SF Pro Display",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-main);background:radial-gradient(1100px 520px at 88% -10%,rgba(20,184,166,.11),transparent),radial-gradient(900px 480px at 0 0,rgba(214,161,60,.08),transparent),var(--bg);color:var(--ink);font-size:14px;line-height:1.55;letter-spacing:.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,strong,.card-title,.entry-section-title{letter-spacing:.015em}.num,.kpi-value,input[type=number],.date-input{font-family:var(--font-number);font-variant-numeric:tabular-nums}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:linear-gradient(180deg,#082f2b,#0b3b36 44%,#0f5a50);color:#e9f5f3;display:flex;flex-direction:column;z-index:60;transition:transform .28s ease;box-shadow:6px 0 28px #0626232e}.brand{display:flex;gap:12px;align-items:center;padding:24px 20px 18px}.brand-logo{flex:0 0 auto;width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--gold),#F0D6A0);color:#082f2b;display:grid;place-items:center;font-weight:850;box-shadow:0 6px 18px #d6a13c3d}.brand-name{font-weight:780;font-size:17px;letter-spacing:.035em}.brand-sub{font-size:11px;color:#9dc6c0;margin-top:4px;letter-spacing:.03em}.nav{flex:1;overflow:auto;padding:6px 0 16px;overscroll-behavior:contain}.nav-group-t{padding:15px 20px 7px;color:#8fbdb7;font-size:11px;font-weight:720;letter-spacing:.14em}.nav a{display:flex;align-items:center;gap:9px;padding:11px 18px;margin:2px 10px;color:#ddeeeb;text-decoration:none;border-radius:10px;font-size:14px;white-space:nowrap;transition:all .16s ease}.nav a:hover{background:#ffffff14;color:#fff;transform:translate(2px)}.nav a.active{background:linear-gradient(90deg,#d6a13c3d,#ffffff0d);color:#fff;font-weight:650;box-shadow:inset 2px 0 0 var(--gold)}.sidebar-foot{padding:14px 20px;border-top:1px solid rgba(255,255,255,.1)}.sidebar-user{font-size:12px;color:#8fb8b2;overflow-wrap:anywhere}.sidebar-foot .btn{width:100%;margin-top:8px}.main{flex:1;min-width:0;margin-left:var(--sidebar-w);display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 24px;background:#ffffffe6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.topbar h1{margin:0;font-size:19px;font-weight:800;color:#0b3b36;letter-spacing:.02em}.crumb{color:var(--ink2);font-size:12.5px;margin-top:4px}.top-right{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.badge{padding:6px 11px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:12px;font-weight:700;max-width:100%;overflow-wrap:anywhere}.badge.gold{background:var(--gold-soft);color:var(--gold-ink)}.content{padding:20px 24px 32px;width:100%;max-width:1560px;margin:0 auto;min-width:0}.card{background:#fffffff5;border:1px solid rgba(229,235,240,.85);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px;margin-bottom:18px;min-width:0}.card-title{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:760;color:#17323f;margin-bottom:14px}.card-title:before{content:"";flex:0 0 4px;width:4px;height:16px;border-radius:2px;background:linear-gradient(180deg,var(--primary),var(--gold))}.card-title .sub{margin-left:auto;color:var(--ink2);font-weight:450;font-size:12.5px;text-align:right}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.kpi{position:relative;background:#fffffff5;border:1px solid rgba(229,235,240,.9);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);overflow:hidden;min-width:0}.kpi:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--accent),var(--gold))}.kpi-label{color:var(--ink2);font-size:12.5px;font-weight:680}.kpi-value{font-size:26px;font-weight:820;color:#10282f;margin-top:9px;letter-spacing:-.35px}.kpi-foot{margin-top:8px;color:var(--ink2);font-size:12.5px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.toolbar strong{font-size:17px;font-weight:760;color:#17323f}.inp,.sel{width:100%;min-width:0;border:1px solid #D8E2E6;border-radius:10px;background:#fff;padding:9px 12px;font-size:14px;color:var(--ink);transition:border-color .15s,box-shadow .15s}.inp:focus,.sel:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #0f766e1c}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:10px;padding:9px 14px;background:#fff;color:#2f4553;cursor:pointer;font-size:14px;font-weight:640;transition:all .16s ease;min-height:38px}.btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary);transform:translateY(-1px);box-shadow:0 5px 14px #0f766e1a}.btn:active:not(:disabled){transform:translateY(0)}.btn:focus-visible{outline:2px solid rgba(15,118,110,.35);outline-offset:2px}.btn.primary{background:linear-gradient(135deg,var(--primary),#10857C);border-color:var(--primary);color:#fff;box-shadow:0 4px 12px #0f766e29}.btn.primary:hover:not(:disabled){color:#fff;border-color:var(--primary)}.btn.danger{background:#fff1f5;border-color:#fbd0dd;color:#be185d}.btn.danger:hover:not(:disabled){border-color:var(--red);color:var(--red);box-shadow:0 5px 14px #c2274b1a}.btn.small{padding:6px 10px;font-size:12.5px;min-height:33px}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 13px;cursor:pointer;font-size:13px;font-weight:620;color:var(--ink2);transition:all .16s ease;min-height:34px}.tab:hover{border-color:var(--primary);color:var(--primary)}.tab.active{background:linear-gradient(135deg,var(--primary),#10857C);color:#fff;border-color:var(--primary);box-shadow:0 4px 12px #0f766e29}.table-wrap{overflow:auto;border-radius:12px;border:1px solid var(--line);background:#fff;max-width:100%;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;min-width:720px;background:#fff}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;vertical-align:middle;font-size:13.5px}th{color:#5a6f7f;font-size:12.5px;font-weight:730;background:#f7fafc;position:sticky;top:0}tbody tr:nth-child(2n){background:#fbfcfd}tbody tr:hover{background:#f2f9f8}.num{text-align:right;font-variant-numeric:tabular-nums}.total td{background:#eff8f5!important;font-weight:760;color:#0b3b36}.muted{color:var(--ink2)}.ok{color:var(--green)}.down{color:var(--red)}.dept-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:14px;background:#fff;box-shadow:0 2px 8px #0f2a430a}.dept-head{display:flex;align-items:center;gap:10px;background:#f8fafc;padding:12px 16px;flex-wrap:wrap}.dept-body{padding:16px;min-width:0}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}label.field{display:block;min-width:0}.field span{display:block;margin-bottom:6px;color:var(--ink2);font-size:12.5px;font-weight:650}.status{display:inline-flex;align-items:center;font-size:12px;border-radius:999px;padding:4px 10px;font-weight:680;white-space:nowrap}.status.saved{background:#dcfce7;color:#15803d}.status.unsaved{background:#ffedd5;color:#c2410c}.chart{width:100%;min-width:0}.login-page{min-height:100vh;display:grid;place-items:center;padding:18px;background:linear-gradient(135deg,#082f2b,#0f766e 56%,#14b8a6)}.login-card{width:min(430px,94vw);background:#fff;border-radius:20px;padding:30px;box-shadow:0 24px 60px #0000003d}.login-title{margin:0 0 6px;font-size:24px}.login-sub{color:var(--ink2);margin:0 0 20px}.login-error{background:#fff1f5;color:#be185d;padding:10px 11px;border-radius:10px;margin-bottom:12px;font-size:13px}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#091e288c;display:grid;place-items:center;z-index:120;padding:18px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(680px,96vw);max-height:88vh;overflow:auto;background:#fff;border-radius:18px;padding:22px}.menu-toggle{display:none}.toast{position:fixed;right:22px;bottom:22px;background:#0f172a;color:#fff;padding:10px 14px;border-radius:10px;opacity:0;pointer-events:none;transition:.2s;z-index:200}.toast.show{opacity:1}.expense-table{table-layout:fixed;min-width:820px}.expense-table .dept-col{width:210px}.expense-table .amount-col{width:88px}.expense-table .total-col{width:104px}.expense-table th,.expense-table td{padding:10px 14px}.expense-input{width:100%;padding:7px 0;border:1px solid transparent;background:transparent;text-align:right;font-variant-numeric:tabular-nums;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.expense-input:hover{border-color:#d9e1e9}.expense-input:focus{outline:none;background:#fff;border-color:var(--primary);box-shadow:0 0 0 3px #0f766e1a}.expense-input::-webkit-inner-spin-button,.expense-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.expense-table .total-cell{font-weight:700}.compact-table th,.compact-table td{padding:9px 10px}.compact-table .amount-col{width:92px}.entry-section{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.entry-section+.entry-section{margin-top:14px}.entry-section-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}.entry-section-head.revenue{background:linear-gradient(90deg,#ebf9f4,#fff);border-left:4px solid var(--green)}.entry-section-head.expense{background:linear-gradient(90deg,#fff8ec,#fff);border-left:4px solid var(--gold)}.entry-section-head.attendance{background:linear-gradient(90deg,#eff6ff,#fff);border-left:4px solid #2563EB}.monthly-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}.month-select{width:176px;min-height:38px;padding:8px 10px;background:#fff}.entry-section-title{font-weight:780;font-size:15px;color:#17323f}.entry-section-desc{color:var(--ink2);font-size:12.5px}.entry-section-body{padding:16px;background:#fff;min-width:0}.entry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.entry-grid .field{margin:0}.daily-expense-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.daily-expense-grid .field{margin:0}.entry-message{width:100%;padding:10px 12px;border-radius:10px;background:#e8f5f2;color:#0f766e;font-size:13px;font-weight:650}.entry-dept-card{border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.entry-dept-card .dept-head{align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;background:linear-gradient(90deg,#f7fafc,#fff);border-bottom:1px solid var(--line)}.dept-title{display:flex;align-items:center;gap:8px;min-width:0}.dept-title strong{font-size:16px;color:#17323f;white-space:nowrap}.dept-tag{padding:4px 9px;border-radius:999px;background:#e8f5f2;color:#0f766e;font-size:11.5px;font-weight:700;white-space:nowrap}.dept-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.dept-filler{color:#63798b;font-size:12.5px;white-space:nowrap}.entry-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:var(--line);border-bottom:1px solid var(--line)}.entry-summary .summary-item{background:#fff;padding:12px 16px;min-width:0}.entry-summary span{display:block;color:#63798b;font-size:11.5px;font-weight:680;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-summary strong{display:block;margin-top:5px;color:#10282f;font-size:16px;overflow-wrap:anywhere}.entry-summary em{margin:0 2px;color:#63798b;font-style:normal;font-size:11px;font-weight:650}.auto-field input{background:#f7fafc;color:#0f766e;font-weight:700}.empty-note{padding:12px;background:#f8fafc;border:1px dashed #D7E1E8;border-radius:10px;color:#63798b;font-size:13px}.entry-table-wrap{border-radius:12px}.entry-table{min-width:640px}.entry-table th,.entry-table td{padding:10px 12px}.entry-table .inp{padding:8px 10px}.entry-table .calc{color:#0f766e;font-weight:720}.entry-grid.expense-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.attendance-grid{grid-template-columns:repeat(2,minmax(0,180px))}.monthly-save{flex:0 0 auto}.progress-track{height:12px;border-radius:999px;background:#e5ebf0;overflow:hidden}.progress-bar{height:12px;border-radius:999px;background:linear-gradient(90deg,var(--primary),var(--accent),var(--gold));transition:width .3s ease}.global-filter{position:sticky;top:70px;z-index:24;margin:-2px 0 16px;padding:10px 0}.global-filter-inner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fffffff2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(229,235,240,.9);border-radius:14px;padding:10px 12px;box-shadow:0 6px 20px #0f2a4312}.filter-select{position:relative;min-width:184px;max-width:100%}.filter-trigger{display:flex;align-items:center;gap:8px;width:100%;min-height:42px;border:1px solid #D7E1E8;border-radius:10px;background:#fff;padding:8px 11px;color:var(--ink);cursor:pointer;font-size:14px;transition:all .16s ease;text-align:left}.filter-trigger:hover,.filter-trigger.open{border-color:var(--primary);box-shadow:0 0 0 3px #0f766e1a}.filter-trigger>span:nth-child(2){color:var(--ink2)}.filter-trigger strong{margin-left:auto;color:var(--primary)}.filter-arrow{color:var(--ink2);font-size:12px}.filter-check{width:16px;color:var(--primary);font-weight:800}.filter-menu{position:absolute;top:calc(100% + 7px);left:0;min-width:184px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 35px #0f2a4329;padding:6px;z-index:40}.filter-menu-title{padding:7px 10px;color:var(--ink2);font-size:12px;font-weight:650;border-bottom:1px solid var(--line);margin-bottom:4px}.filter-option{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;border-radius:9px;padding:9px 10px;color:var(--ink);cursor:pointer;font-size:13.5px;text-align:left;transition:background .15s}.filter-option:hover{background:#f2f9f8}.filter-option.active{background:#eff8f5;color:var(--primary);font-weight:650}.filter-inputs{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.date-range{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid #D7E1E8;border-radius:10px;padding:8px 11px;min-width:272px;max-width:100%}.date-input{border:0;background:transparent;padding:0;font-size:14px;color:var(--ink);font-variant-numeric:tabular-nums;min-width:0;width:122px;-moz-appearance:none;appearance:none;-webkit-appearance:none;outline:none}.date-input:focus{outline:none}.date-range:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #0f766e1a}.filter-apply{min-width:78px}.filter-card .sel{width:240px;max-width:100%}@media (max-width:760px){.filter-card .sel{width:100%}}.page-toolbar{align-items:flex-start;gap:12px}.toolbar-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.toolbar-main strong{white-space:nowrap;font-size:17px;color:#17323f}.toolbar-actions{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0}.state-card{display:flex;align-items:center;gap:14px;background:#fffffff5;border:1px solid var(--line);border-radius:var(--radius);padding:22px;color:var(--ink2);margin-bottom:18px;box-shadow:var(--shadow)}.state-card strong{color:var(--ink);font-size:16px}.state-card p{margin:5px 0 0;font-size:13.5px}.state-card.error-card{border-color:#fbd0dd;background:#fff8fa;color:#be185d}.state-card.error-card strong{color:#be185d}.state-card.error-card .btn{margin-left:auto}.loading-card{color:var(--ink2)}.spinner{width:20px;height:20px;border:2px solid rgba(15,118,110,.2);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.chart-empty{height:300px;display:grid;place-content:center;justify-items:center;text-align:center;color:var(--ink2);background:#fafcfd;border:1px dashed #D7E1E8;border-radius:12px;padding:18px}.chart-empty strong{color:var(--ink);font-size:15px}.chart-empty span{font-size:12.5px;margin-top:7px}@keyframes spin{to{transform:rotate(360deg)}}.identity-list{display:grid;gap:8px;max-height:58vh;overflow:auto;margin-top:12px}.identity-btn{justify-content:space-between;gap:12px;text-align:left;min-width:0}.identity-main{display:flex;align-items:center;gap:8px;min-width:0;overflow-wrap:anywhere}.identity-btn>span:last-child{color:var(--ink2);font-size:12.5px;text-align:right;max-width:46%;overflow-wrap:anywhere}.identity-btn.primary>span:last-child{color:#ffffffd1}.date-field{width:160px;max-width:100%}.monthly-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;min-width:0}@media (max-width:1180px){.kpi-grid,.entry-grid,.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-expense-grid,.monthly-grid,.entry-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.entry-grid.expense-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.grid-2{grid-template-columns:1fr}.content{padding:16px}.topbar{padding:12px 16px}.global-filter{position:static;padding:0}.filter-inputs{width:100%}.filter-inputs .inp{flex:1 1 130px;width:auto}.filter-inputs .btn{flex:0 0 auto}}@media (max-width:760px){html{-webkit-text-size-adjust:100%}:root{--sidebar-w:min(74vw,300px);--radius:16px}body{font-size:14px}.sidebar{transform:translate(-102%)}.sidebar.open{transform:none}.main{margin-left:0}.menu-toggle{display:inline-flex}.content{padding:12px 12px 88px}.card{padding:15px;margin-bottom:12px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi{padding:13px 12px}.kpi-value{font-size:18px;overflow-wrap:anywhere}.kpi-foot{line-height:1.35;overflow-wrap:anywhere}.grid-2{gap:12px}.chart,.chart-empty{height:250px!important}.inp,.sel{min-height:44px;padding:10px 12px;font-size:16px}.btn{min-height:44px;font-size:15px}.btn.small{min-height:38px;font-size:13px}.table-wrap table{min-width:680px}.date-field{width:100%}.date-input{width:min(44vw,132px);font-size:16px}.toolbar{align-items:stretch;gap:8px}.toolbar strong{width:100%;font-size:16px}.toolbar .muted{width:100%;font-size:12px}.toolbar .inp,.toolbar .sel{max-width:100%}.toolbar-actions{margin-left:0;width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar-actions .inp,.toolbar-actions .sel,.toolbar-actions .btn{width:100%!important}.toolbar-actions .date-pair{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.toolbar-actions [data-mobile-full=true]{grid-column:1/-1!important;width:100%!important}.page-toolbar{align-items:stretch}.page-toolbar .toolbar-actions .btn.full{grid-column:1/-1}.dept-head{align-items:flex-start}.dept-head strong{font-size:15px}.dept-head>div{width:100%;display:flex!important;margin-left:0!important}.dept-head .btn{flex:1}.entry-section-body{padding:12px}.entry-grid,.daily-expense-grid{grid-template-columns:1fr}.entry-section-head{align-items:flex-start}.monthly-controls{margin-left:0;width:100%}.month-select{width:100%;min-height:44px}.entry-section-head .btn{width:100%}.entry-dept-card .dept-head{align-items:flex-start}.dept-title,.dept-actions{width:100%}.dept-filler{width:100%;white-space:normal}.entry-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-summary .summary-item{padding:10px 12px}.entry-summary strong{font-size:15px}.entry-summary span{white-space:normal}.attendance-grid{grid-template-columns:1fr}.entry-grid.expense-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-table{min-width:540px}.filter-select{flex:1 1 100%}.filter-menu{position:static;box-shadow:none}.filter-inputs{flex-wrap:wrap}.date-range{flex:1 1 100%;min-width:0}.filter-apply{flex:1 1 100%}.modal{padding:16px}.top-right .btn,.top-right .badge{font-size:11px}}@media (max-width:560px){.kpi-grid{grid-template-columns:1fr}.topbar h1{font-size:16px}.crumb{display:none}.toolbar-actions,.toolbar-actions .date-pair{grid-template-columns:1fr}.login-card{padding:22px}.brand{padding:16px 12px 12px;gap:10px}.brand-logo{width:34px;height:34px;border-radius:10px}.brand-name{font-size:15px}.brand-sub{font-size:10px}.nav{padding:4px 0 12px}.nav-group-t{padding:12px 13px 5px;font-size:10px;letter-spacing:.1em}.nav a{gap:7px;padding:9px 12px;margin:2px 8px;font-size:13px}.sidebar-foot{padding:12px 13px}.top-right .badge.date-badge{display:none}}@media (max-width:420px){:root{--sidebar-w:min(68vw,270px)}.content{padding:10px}.brand-name{font-size:14px}}html{-webkit-text-size-adjust:100%}img,svg,canvas{max-width:100%}.card,.kpi,.table-wrap,.dept-card,.entry-section,.toolbar,.toolbar-main,.toolbar-actions,.global-filter-inner,.filter-select,.filter-inputs,.date-range{min-width:0}.page-toolbar{display:flex;flex-wrap:wrap}.card-title .sub{min-width:0;overflow-wrap:anywhere}.kpi-label,.kpi-foot,.muted,.dept-filler,.entry-section-desc{overflow-wrap:anywhere}.chart{min-height:230px}.chart canvas{max-width:none!important}@media (max-width:920px){.filter-card .sel{width:100%}.toolbar-main strong,.toolbar .muted{white-space:normal}}@media (max-width:760px){.topbar{gap:8px;padding:10px 12px}.topbar h1{font-size:16px}.crumb{display:none}.top-right{width:100%;margin-left:0;justify-content:flex-end}.top-right .btn,.top-right .badge{font-size:11px;padding:5px 9px;min-height:32px}.content{padding:10px 10px 86px}.card{padding:13px;margin-bottom:11px;border-radius:15px}.card-title{flex-wrap:wrap;row-gap:4px}.card-title .sub{margin-left:0;width:100%;text-align:left;white-space:normal}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}.kpi{padding:11px 12px;border-radius:14px}.kpi-label{font-size:11.5px}.kpi-value{font-size:17px;margin-top:5px}.kpi-foot{font-size:11px;margin-top:5px}.grid-2{grid-template-columns:1fr;gap:11px}.toolbar{gap:8px}.toolbar-main strong{font-size:16px;white-space:normal}.toolbar .muted{font-size:12px;white-space:normal}.page-toolbar{align-items:stretch}.toolbar-actions{margin-left:0;width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.toolbar-actions>*:not(.records-filters){width:100%;min-width:0}.toolbar-actions .records-filters{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.toolbar-actions .records-filters .sel{width:100%!important}.filter-card{padding:12px}.filter-card .toolbar-main,.filter-card .sel,.filter-card .btn{width:100%}.table-wrap{-webkit-overflow-scrolling:touch;scrollbar-width:thin}.table-wrap table{min-width:680px}.chart,.chart-empty{height:250px!important;min-height:250px}.chart-empty{padding:14px}.chart-empty strong{font-size:14px}.entry-section-body{padding:11px}.entry-grid,.daily-expense-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.attendance-grid,.entry-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-summary .summary-item{padding:10px 11px}.entry-summary span{white-space:normal;overflow:visible;text-overflow:clip;font-size:11px}.entry-summary strong{font-size:15px}.entry-table{min-width:540px}.entry-table th,.entry-table td{padding:9px 10px}.monthly-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.expense-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.modal{width:min(680px,96vw);padding:14px}.form-grid{grid-template-columns:1fr}}@media (max-width:560px){body{font-size:14px}.content{padding:8px 8px 82px}.card{padding:12px;margin-bottom:10px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.toolbar-actions{grid-template-columns:1fr}.toolbar-actions .records-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.chart,.chart-empty{height:240px!important;min-height:240px}.entry-grid,.daily-expense-grid,.monthly-grid,.expense-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-summary span{font-size:10.5px}.entry-summary strong{font-size:14px}}@media (max-width:360px){.kpi-grid,.entry-grid,.daily-expense-grid,.monthly-grid,.toolbar-actions .records-filters{grid-template-columns:1fr}}@media print{.sidebar,.topbar,.global-filter,.btn,.toolbar{display:none!important}.main{margin:0}.card{box-shadow:none;border:1px solid var(--line)}}.records-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0}.records-filters .sel{width:172px;min-width:0;flex:1 1 136px}.records-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.records-table-wrap{box-shadow:none}.records-table{min-width:920px}.records-table thead th{position:sticky;top:0;z-index:2;background:#f7fafc;color:#53677a;font-size:12.5px;font-weight:700;white-space:nowrap}.records-table td,.records-table th{padding:12px 14px;vertical-align:middle}.records-table .date-cell{white-space:nowrap;color:#53677a;font-variant-numeric:tabular-nums}.records-table .dept-cell{display:flex;flex-direction:column;gap:3px;min-width:118px}.records-table .dept-cell strong{font-size:14px;color:#17323f}.records-table .dept-cell span{font-size:12px;color:#748494}.records-table .revenue{color:#0f766e;font-weight:750}.records-table .time-cell{color:#63798b;font-size:12px;white-space:nowrap}.records-table .action-col{width:104px;text-align:right}.records-table tr.expanded td{background:#f8fbf9}.records-table .detail-row td{background:#fbfdfc;border-top:0}.expense-detail-title{font-size:13px;font-weight:750;color:#17323f;margin-bottom:10px}.expense-detail-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px}.expense-detail-item{background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 10px;min-width:0}.expense-detail-item span{display:block;font-size:11.5px;color:#748494;margin-bottom:3px;white-space:nowrap}.expense-detail-item strong{display:block;font-size:13px;color:#17323f;overflow-wrap:anywhere}.records-mobile-list,.records-total-mobile{display:none}.records-total-mobile{gap:10px}@media (max-width:860px){.records-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.records-table-wrap{display:none}.records-mobile-list{display:grid;gap:12px}.records-total-mobile{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}.record-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:13px;box-shadow:0 4px 14px #102a340a}.record-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:11px}.record-head strong{display:block;font-size:15px;color:#17323f}.record-head span{display:block;margin-top:3px;font-size:12px;color:#748494}.record-date{flex:0 0 auto;font-size:12px;color:#53677a;background:#f2f7f6;border-radius:8px;padding:4px 8px}.record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:11px}.record-grid>div{background:#f8fbf9;border-radius:10px;padding:9px 10px;min-width:0}.record-grid span{display:block;font-size:11.5px;color:#748494;margin-bottom:3px}.record-grid strong{font-size:13.5px;color:#17323f;overflow-wrap:anywhere}.record-grid .revenue{color:#0f766e}.record-expense{margin-bottom:10px}.record-expense .btn{width:100%}.record-expense .expense-detail-grid{margin-top:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.record-time{font-size:11.5px;color:#748494}.records-total-mobile>div{background:#f7fafc;border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:0}.records-total-mobile span{display:block;font-size:11.5px;color:#748494;margin-bottom:3px}.records-total-mobile strong{font-size:14px;color:#17323f}}@media (max-width:560px){.records-kpis{grid-template-columns:1fr}.record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.ind-table{min-width:1080px}.ind-table .dept-cell{white-space:normal;color:#5a6f7f;font-size:12.5px;min-width:150px}.ind-table .muted-row{background:#fbfcfd}.tag-none{display:inline-block;margin-left:7px;padding:2px 7px;border-radius:999px;background:#eef2f5;color:#7b8a98;font-size:11px;font-weight:650;vertical-align:middle}.ind-accordion{display:flex;flex-direction:column;gap:10px}.ind-block{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.ind-block.open{border-color:#0f766e52;box-shadow:0 4px 16px #0f766e12}.ind-head{width:100%;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:13px 15px;background:#f8fafc;border:0;cursor:pointer;text-align:left;font-size:14px;color:#17323f;transition:background .16s ease}.ind-head:hover{background:#f1f7f6}.ind-block.open .ind-head{background:#eff8f5}.ind-arrow{flex:0 0 14px;color:var(--primary);font-size:12px}.ind-head strong{font-size:15px;font-weight:760}.ind-area{color:#7b8a98;font-size:12.5px}.ind-metrics{margin-left:auto;display:flex;gap:16px;flex-wrap:wrap;justify-content:flex-end;font-size:12.5px;color:var(--ink2)}.ind-metrics b{color:#0f766e;font-weight:760;font-variant-numeric:tabular-nums}.ind-body{padding:15px;border-top:1px solid var(--line);background:#fff}.ind-tip{margin:0 0 12px;padding:9px 12px;background:var(--primary-soft);border-radius:10px;color:#0b5b53;font-size:12.5px}.ind-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;margin-bottom:13px}.ind-kv>div{background:#f8fafc;border:1px solid var(--line);border-radius:11px;padding:10px 12px;min-width:0}.ind-kv span{display:block;font-size:11.5px;color:#748494;margin-bottom:4px}.ind-kv strong{display:block;font-size:14px;color:#10282f;font-weight:760;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.ind-kv strong.down{color:var(--red)}.ind-depts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.chip{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:#f2f7f6;border:1px solid var(--line);color:#3c5666;font-size:12px;font-weight:620}@media (max-width:860px){.ind-metrics{margin-left:0;width:100%;justify-content:flex-start;gap:12px}.ind-kv{grid-template-columns:repeat(2,minmax(0,1fr))}.ind-head{padding:12px}.ind-arrow{flex:0 0 12px}}@media (max-width:560px){.ind-kv{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ind-kv>div{padding:9px 10px}.ind-kv strong{font-size:13px}.ind-metrics{gap:10px;font-size:12px}}.dash-table{min-width:1180px}.filter-card{padding:14px 18px}@media (max-width:860px){.filter-card .toolbar-main{flex-wrap:wrap}}.empty-card{display:flex;align-items:center;gap:16px}.empty-illust{width:52px;height:52px;flex:0 0 52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:24px;background:linear-gradient(135deg,#0f766e1a,#d6a13c24);border:1px solid rgba(15,118,110,.16)}.empty-card strong{display:block;font-size:15px;color:#1f3b44;margin-bottom:4px}.empty-card p{margin:0;color:#6c8291;font-size:13px;line-height:1.6}.sel-label{display:inline-flex;align-items:center;padding:8px 14px;border-radius:10px;background:#0f766e14;border:1px solid rgba(15,118,110,.18);color:#0f766e;font-size:13px;font-weight:600}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}@media (max-width:900px){.grid-3{grid-template-columns:1fr}.empty-card{align-items:flex-start}}.row-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.records-table .action-col{width:auto;min-width:160px;white-space:normal}.records-table .action-col .row-actions{flex-wrap:wrap}@media (min-width:1281px){.records-table .action-col{min-width:190px;white-space:nowrap}.records-table .action-col .row-actions{flex-wrap:nowrap}}.danger-text{color:#be185d;font-weight:600}.confirm-modal{width:min(480px,94vw)}.btn.small{padding:5px 10px;font-size:12.5px;border-radius:9px}.records-table .btn.small{white-space:nowrap}@media (max-width:760px){.row-actions{justify-content:flex-start}.records-table .action-col{min-width:0}.modal{padding:16px}}.backfill-badge{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--gold-soft);color:var(--gold-ink);font-size:11px;font-weight:700;vertical-align:middle}.backfill-batch{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.backfill-notice{display:flex;gap:10px;align-items:flex-start;margin:0 0 16px;padding:12px 16px;border-radius:12px;background:#fff7e6;border:1px solid #F0D9A8;color:#7a5a17;font-size:13.5px;line-height:1.6}.backfill-notice.subtle{background:#f7fafc;border-color:#e2e9ef;color:#53677a}.backfill-notice strong{flex:0 0 auto;font-weight:800}.backfill-notice span{min-width:0;overflow-wrap:anywhere}@media (max-width:900px){.backfill-batch{width:100%}.backfill-batch .date-field{width:100%;min-width:0}.backfill-batch .btn{flex:1 1 calc(50% - 8px);min-width:0}}@media (max-width:640px){.backfill-notice{flex-direction:column;gap:4px;font-size:12.5px;padding:10px 12px}.backfill-batch{width:100%}.backfill-batch .date-field{flex:1 1 120px;min-width:0}.backfill-batch .btn{flex:1 1 100%}}.bulk-row{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}.bulk-row .field{min-width:180px;flex:0 1 220px}.bulk-row .inp{width:100%}.bulk-locked{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border-radius:12px;background:#0f766e12;border:1px solid rgba(15,118,110,.18);min-width:220px}.bulk-locked strong{font-size:14px;color:#0f766e}.bulk-locked span{font-size:12px;color:#6c8291}.bulk-file{font-size:12.5px;color:#5b7488;font-variant-numeric:tabular-nums}.bulk-mode{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line)}.bulk-mode-label{font-size:13px;font-weight:640;color:#3c5666}.bulk-radio{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:11px;border:1px solid var(--line);background:#fff;font-size:13px;color:#3c5666;cursor:pointer;transition:.15s}.bulk-radio.active{border-color:#0f766e80;background:#0f766e12;color:#0f766e;font-weight:660}.bulk-radio input{accent-color:#0F766E}.bulk-sub-title{margin:4px 0 10px;font-size:13.5px;font-weight:700;color:#1f3b44}.bulk-table{min-width:900px}.bulk-range{font-size:12.5px;color:#5b7488;white-space:nowrap;font-variant-numeric:tabular-nums}.bulk-dup{display:inline-block;padding:1px 8px;border-radius:999px;background:#fff4e0;color:#8a6414;font-size:12px;font-weight:700}.bulk-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.bulk-errors{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow:auto}.bulk-error-item{display:flex;gap:10px;padding:9px 12px;border-radius:10px;background:#fff1f2;border:1px solid #FBD5DA;font-size:13px;color:#9f1239}.bulk-error-item span{flex:0 0 auto;font-weight:700}.bulk-error-card{background:#fffbfb}@media (max-width:760px){.bulk-row{flex-direction:column;align-items:stretch}.bulk-row .field{flex:1 1 auto;min-width:0}.bulk-locked{min-width:0}.bulk-mode{gap:10px}.bulk-radio{flex:1 1 100%}.bulk-actions .btn{flex:1 1 auto}.bulk-errors{max-height:260px}}.cmp-accordion{display:flex;flex-direction:column;gap:10px}.cmp-block{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.cmp-block.open{border-color:#0f766e52;box-shadow:0 4px 16px #0f766e12}.cmp-head{width:100%;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:13px 15px;background:#f8fafc;border:0;cursor:pointer;text-align:left;font-size:14px;color:#17323f;transition:background .16s ease}.cmp-head:hover{background:#f1f7f6}.cmp-block.open .cmp-head{background:#eff8f5}.cmp-head strong{font-size:15px;font-weight:760}.cmp-metrics{margin-left:auto;display:flex;gap:16px;flex-wrap:wrap;justify-content:flex-end;font-size:12.5px;color:var(--ink2)}.cmp-metrics b{color:#0f766e;font-weight:760;font-variant-numeric:tabular-nums}.cmp-metrics b.down{color:var(--red)}.cmp-body{padding:0;border-top:1px solid var(--line);background:#fff}.cmp-body .table-wrap{padding:14px 15px}@media (max-width:860px){.cmp-head{padding:11px 12px;gap:8px}.cmp-head strong{font-size:14px}.cmp-metrics{margin-left:0;width:100%;justify-content:flex-start;gap:10px 14px;font-size:12px}.cmp-body .table-wrap{padding:12px}}.cmpbars{padding:16px 15px 6px}.cmpbars-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px dashed var(--line)}.cmpbars-lg{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:#33455a;font-weight:700}.cmpbars-lg i{width:11px;height:11px;border-radius:3px;display:inline-block;flex:0 0 11px}.cmpbars-lg em{font-style:normal;font-weight:500;color:#8a97a4;font-size:11.5px}.cmprow{display:grid;grid-template-columns:88px 1fr 132px;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid #F1F5F7}.cmprow:last-child{border-bottom:0}.cmprow-label{font-size:12.5px;color:#5a6f7f;font-weight:700;white-space:nowrap}.cmprow-bars{display:flex;flex-direction:column;gap:6px;min-width:0}.cmpbar{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;min-width:0}.cmpbar-track{height:15px;background:#f2f5f7;border-radius:999px;overflow:hidden;min-width:0}.cmpbar-track span{display:block;height:100%;border-radius:999px;transition:width .35s ease}.cmpbar-track span.win{box-shadow:0 0 0 1px #0f766e2e inset}.cmpbar-val{font-size:12.5px;font-weight:760;color:#10282f;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:74px;text-align:right}.cmprow-gap{font-size:12px;font-weight:700;text-align:right;color:#8a97a4;white-space:nowrap}.cmprow-gap.up{color:#0f766e}.cmprow-gap.flat{color:#b0bac4;font-weight:500}.cmp-body{padding-bottom:14px}.sec-title{font-size:12.5px;font-weight:760;color:#0f766e;letter-spacing:.03em;margin:4px 0 10px;padding-left:9px;border-left:3px solid var(--primary)}.sec-title:not(:first-child){margin-top:18px}.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:10px}.proj-grid.rooms{grid-template-columns:repeat(auto-fill,minmax(148px,1fr))}.proj-card{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:11px 13px;min-width:0;transition:border-color .15s ease,box-shadow .15s ease}.proj-card:hover{border-color:#0f766e47;box-shadow:0 3px 10px #0f766e0f}.proj-card.hl{background:#f1f8f6;border-color:#0f766e38}.proj-card.total{background:#fff8ec;border-color:#d6a13c52}.proj-card.neg .proj-val{color:var(--red)}.proj-name{font-size:11.5px;color:#748494;margin-bottom:5px;font-weight:600;overflow-wrap:anywhere}.proj-val{font-size:17px;font-weight:780;color:#10282f;font-variant-numeric:tabular-nums;line-height:1.25;overflow-wrap:anywhere}.proj-card.hl .proj-val{color:#0b5b53}.proj-card.total .proj-val{color:#9a6b12}.proj-unit{font-size:10.5px;color:#9aa7b2;margin-top:4px}.proj-sub{font-size:11px;color:#8a97a4;margin-top:5px;overflow-wrap:anywhere}@media (max-width:860px){.cmpbars{padding:12px 12px 4px}.cmprow{grid-template-columns:1fr;gap:6px;padding:11px 0}.cmprow-label{font-size:12px}.cmprow-gap{text-align:left;font-size:11.5px}.cmpbar-val{min-width:66px;font-size:12px}.proj-grid,.proj-grid.rooms{grid-template-columns:repeat(auto-fill,minmax(142px,1fr));gap:9px}.proj-val{font-size:16px}.cmp-metrics{font-size:11.5px;gap:8px 12px}}@media (max-width:400px){.proj-grid,.proj-grid.rooms{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.proj-card{padding:10px 11px}.proj-val{font-size:15px}}.sys-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.sys-tab{border:1px solid var(--line);background:#fff;color:#33455a;font-size:14px;font-weight:600;padding:8px 18px;border-radius:10px;cursor:pointer;transition:all .15s ease}.sys-tab:hover{border-color:#0f766e59}.sys-tab.on{background:var(--primary);border-color:var(--primary);color:#fff}.sys-group{border:1px solid var(--line);border-radius:12px;padding:14px 15px;margin-bottom:14px;background:#fcfdfe}.sys-group.off{opacity:.55;background:#f7f8fa}.sys-group-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:11px;border-bottom:1px dashed var(--line)}.sys-inp-title{max-width:200px;font-weight:700}.sys-group-ops{display:flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:wrap}.sys-items{display:flex;flex-direction:column;gap:8px}.sys-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.sys-item.off{opacity:.55}.sys-item .inp{flex:1 1 150px;min-width:0}.sys-add-row{display:flex;gap:8px;margin-top:2px}.sys-area{border:1px solid var(--line);border-radius:14px;padding:14px 15px;margin-bottom:16px;background:#fff}.sys-area-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.sys-area-head .btn{margin-left:auto}.sys-dept{border:1px solid var(--line);border-radius:12px;padding:12px 13px;margin-bottom:11px;background:#fbfcfd}.sys-dept-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:9px}.sys-dept-head .inp{flex:1 1 140px;min-width:0}.sys-dept-meta{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.chip{display:inline-flex;align-items:center;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;background:#eef3f5;color:#4a5a6a;white-space:nowrap}.chip-warn{background:#fff4e5;color:#9a6b12}.role-picker{display:flex;gap:5px;flex-wrap:wrap}.role-chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:3px 9px;border:1px solid var(--line);border-radius:999px;cursor:pointer;background:#fff;color:#7a8798;white-space:nowrap}.role-chip.on{border-color:#0f766e73;background:#f1f8f6;color:#0b5b53}.role-chip input{display:none}.switch{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;color:#4a5a6a;cursor:pointer;white-space:nowrap}.btn.xs{font-size:12.5px;padding:5px 11px}.btn.danger{border-color:#c83c3c59;color:#b03a3a}.btn.danger:hover:not(:disabled){background:#fdf3f3}.btn:disabled{opacity:.45;cursor:not-allowed}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}@media (max-width:760px){.form-grid{grid-template-columns:1fr}.sys-inp-title{max-width:none;flex:1 1 100%}.sys-group-ops{margin-left:0;width:100%}.sys-tab{flex:1 1 calc(50% - 4px);text-align:center;padding:8px 10px}}:root{--ink-strong:#0C2027;--ink-title:#16323D;--ink-body:#1B3440;--ink-muted:#6B7F8D;--line-soft:#E9EFF2;--line-strong:#DCE5E9;--shadow-1:0 1px 2px rgba(12,32,39,.05),0 4px 14px rgba(12,32,39,.05);--shadow-2:0 2px 6px rgba(12,32,39,.06),0 14px 34px rgba(12,32,39,.07);--shadow-3:0 4px 10px rgba(12,32,39,.07),0 22px 52px rgba(12,32,39,.09);--ring:0 0 0 3px rgba(15,118,110,.12)}body{letter-spacing:.008em}.num,.kpi-value,input[type=number],.date-input,.expense-input,td.num,th.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.sidebar{background:linear-gradient(180deg,#07231f,#0a322d 46%,#0d5148);box-shadow:8px 0 34px #051c1938}.sidebar:after{content:"";position:absolute;top:0;right:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,rgba(214,161,60,.34) 22%,rgba(214,161,60,.14) 62%,transparent)}.brand-logo{border-radius:13px;background:linear-gradient(140deg,#f2d9a4,#d6a13c 46%,#b8842a);box-shadow:0 7px 20px #d6a13c4d,inset 0 1px #ffffff8c;font-size:19px}.brand-name{font-weight:800;letter-spacing:.05em}.brand-sub{color:#8fb8b1;letter-spacing:.05em}.nav-group-t{color:#7fada6;font-size:10.5px;font-weight:760;letter-spacing:.18em;text-transform:uppercase}.nav a{position:relative;font-size:13.5px;font-weight:520;color:#cfe4e0;border-radius:11px;letter-spacing:.012em}.nav a:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%) scaleY(0);width:3px;height:18px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,#F2D9A4,var(--gold));transition:transform .2s ease}.nav a:hover{background:#ffffff13;color:#fff;transform:none}.nav a.active{background:linear-gradient(90deg,rgba(214,161,60,.22),rgba(214,161,60,.05) 62%,transparent);box-shadow:none;font-weight:660;letter-spacing:.02em}.nav a.active:before{transform:translateY(-50%) scaleY(1)}.sidebar-foot{border-top:1px solid rgba(255,255,255,.07);background:#0000001a}.sidebar-user{font-weight:600;color:#b9d4cf}.topbar{padding:13px 26px;background:#ffffffdb;-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);border-bottom:1px solid rgba(233,239,242,.9);box-shadow:0 1px 3px #0c202708}.topbar h1{font-size:18.5px;font-weight:790;color:#0b3b36;letter-spacing:.012em}.crumb{font-size:12px;color:var(--ink-muted);margin-top:3px;letter-spacing:.01em}.badge{font-size:11.5px;font-weight:720;letter-spacing:.02em;padding:5px 11px}.badge.gold{background:linear-gradient(135deg,#fbf3e5,#f7e9ce);color:#7a5510;box-shadow:inset 0 0 0 1px #d6a13c38}.card{background:#fff;border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:20px 22px;margin-bottom:18px;transition:box-shadow .22s ease,border-color .22s ease}.card:hover{box-shadow:var(--shadow-2);border-color:var(--line-strong)}.card-title{font-size:15.5px;font-weight:770;color:var(--ink-title);letter-spacing:.012em;gap:10px;margin-bottom:16px}.card-title:before{width:4px;height:17px;background:linear-gradient(180deg,var(--primary) 0%,var(--accent) 55%,var(--gold) 100%)}.card-title .sub{font-size:12px;font-weight:500;color:var(--ink-muted);letter-spacing:.01em}.kpi-grid{gap:16px;margin-bottom:20px}.kpi{border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:17px 19px 16px;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow-2);border-color:var(--line-strong)}.kpi:before{height:3px;background:linear-gradient(90deg,var(--primary),var(--accent) 52%,var(--gold))}.kpi-label{font-size:12px;font-weight:700;color:var(--ink-muted);letter-spacing:.05em}.kpi-value{font-size:28px;font-weight:830;color:var(--ink-strong);margin-top:10px;letter-spacing:-.7px;line-height:1.14;font-family:var(--font-number);overflow-wrap:anywhere}.kpi-value.down{color:var(--red)}.kpi-foot{margin-top:9px;font-size:12px;color:var(--ink-muted);letter-spacing:.01em;line-height:1.45}.table-wrap{border:1px solid var(--line-soft);border-radius:13px;box-shadow:inset 0 1px #fff9}th,td{padding:12px 14px;font-size:13px;border-bottom:1px solid #EEF3F5}th{background:#f8fbfc;color:#5b7080;font-size:11.5px;font-weight:750;letter-spacing:.06em;text-transform:none;border-bottom:1px solid var(--line-strong)}td{color:var(--ink-body)}tbody tr:nth-child(2n){background:#fcfdfe}tbody tr:hover{background:#f4faf9}tbody tr:last-child td{border-bottom:0}.num{font-weight:600;color:var(--ink-strong)}.total td{background:linear-gradient(90deg,#eff8f5,#f6fbfa)!important;font-weight:780;color:#0b3b36;border-top:1px solid rgba(15,118,110,.22)}.total td.num{font-weight:800}.btn{border-radius:11px;font-size:13.5px;font-weight:660;letter-spacing:.01em;padding:9px 15px;border-color:var(--line-strong);color:#2e4551;background:#fff;box-shadow:0 1px 2px #0c20270a}.btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary);transform:translateY(-1px);box-shadow:0 6px 16px #0f766e21}.btn.primary{background:linear-gradient(135deg,#128078,#0f766e 58%,#0c6a63);border-color:#0e6e67;box-shadow:0 2px 6px #0f766e33,0 8px 22px #0f766e29;font-weight:700}.btn.primary:hover:not(:disabled){color:#fff;box-shadow:0 4px 10px #0f766e3d,0 12px 28px #0f766e33}.btn.small{border-radius:10px}.btn.danger{box-shadow:0 1px 2px #c2274b0d}.tab{font-size:12.5px;font-weight:660;border-color:var(--line-strong);color:#5b7080;padding:7px 14px;letter-spacing:.012em}.tab.active{background:linear-gradient(135deg,#128078,#0f766e);box-shadow:0 2px 6px #0f766e33,0 8px 20px #0f766e24;font-weight:700}.filter-trigger,.date-range{border-color:var(--line-strong);box-shadow:0 1px 2px #0c20270a}.global-filter-inner{box-shadow:0 2px 8px #0c20270d,0 14px 34px #0c202712;background:#ffffffed;border-color:var(--line-soft)}.filter-menu{box-shadow:0 8px 20px #0c20271a,0 24px 52px #0c202721;border-color:var(--line-soft)}.filter-option.active{background:linear-gradient(90deg,#eaf7f4,#f5fbfa);font-weight:680}.inp,.sel{border-color:var(--line-strong);border-radius:11px;background:#fff;box-shadow:0 1px 2px #0c202708;transition:border-color .16s,box-shadow .16s,background .16s}.inp:hover:not(:disabled):not(:focus),.sel:hover:not(:disabled):not(:focus){border-color:#c6d3da}.inp:focus,.sel:focus{border-color:var(--primary);box-shadow:var(--ring);background:#fff}.field span{font-size:12px;font-weight:690;color:#5b7080;letter-spacing:.03em}.entry-section{border:1px solid var(--line-soft);border-radius:15px;box-shadow:var(--shadow-1)}.entry-section-head{padding:13px 17px}.entry-section-head.revenue{background:linear-gradient(90deg,#e9f8f3,#fbfefd 62%,#fff);border-left:4px solid #0E9F6E}.entry-section-head.expense{background:linear-gradient(90deg,#fff7e9,#fffcf7 62%,#fff);border-left:4px solid var(--gold)}.entry-section-head.attendance{background:linear-gradient(90deg,#edf4fe,#fafcff 62%,#fff);border-left:4px solid #2563EB}.entry-section-title{font-size:14.5px;font-weight:780;color:var(--ink-title);letter-spacing:.015em}.entry-section-desc{font-size:12px;color:var(--ink-muted)}.entry-dept-card{box-shadow:var(--shadow-2);border:1px solid var(--line-soft)}.entry-dept-card .dept-head{padding:15px 19px;background:linear-gradient(90deg,#f6fafb,#fff)}.dept-title strong{font-size:16.5px;font-weight:800;color:var(--ink-title);letter-spacing:.015em}.dept-tag{background:linear-gradient(135deg,#e4f5f1,#effaf7);color:#0b6a61;font-weight:750;letter-spacing:.02em;border:1px solid rgba(15,118,110,.14)}.dept-filler{font-size:12px;color:var(--ink-muted)}.entry-summary{background:var(--line-soft)}.entry-summary .summary-item{padding:13px 17px;background:#fff}.entry-summary span{font-size:11px;color:var(--ink-muted);font-weight:700;letter-spacing:.04em}.entry-summary strong{font-size:17px;font-weight:800;color:var(--ink-strong);margin-top:6px;letter-spacing:-.3px}.auto-field input{background:#f5faf9;color:#0b6a61;font-weight:730;border-color:#0f766e33}.entry-message{background:linear-gradient(90deg,#e9f8f3,#f4fbfa);color:#0b6a61;font-weight:700;border:1px solid rgba(15,118,110,.16);box-shadow:0 1px 3px #0f766e0f}.state-card{border-radius:var(--radius);box-shadow:var(--shadow-2);border-color:var(--line-soft)}.state-card strong{font-size:15.5px;color:var(--ink-title);font-weight:780}.empty-illust{width:44px;height:44px;border-radius:13px;background:linear-gradient(135deg,#eaf7f4,#f7fcfb);display:grid;place-items:center;font-size:20px;box-shadow:inset 0 0 0 1px #0f766e1a}.chart-empty{background:linear-gradient(180deg,#fbfdfe,#f7fafb);border:1px dashed #D3DEE4;border-radius:13px}.chart-empty strong{color:var(--ink-title);font-weight:760}.modal{border-radius:19px;box-shadow:0 30px 80px #091e2847;border:1px solid rgba(255,255,255,.6)}.modal-mask{background:#081c2485;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.toast{background:linear-gradient(135deg,#0e2c29,#0b3b36);border-radius:12px;box-shadow:0 16px 40px #091e2847;font-weight:600}.records-table thead th{background:#f8fbfc;font-size:11.5px;font-weight:750;letter-spacing:.05em;color:#5b7080}.records-table .revenue{color:#0b7a6f;font-weight:780}.records-table .dept-cell strong{font-weight:740;color:var(--ink-title)}.ind-block{border:1px solid var(--line-soft);box-shadow:var(--shadow-1)}.ind-block.open{border-color:#0f766e57;box-shadow:0 4px 18px #0f766e17}.ind-head{background:#f8fbfc;font-weight:600}.ind-block.open .ind-head{background:linear-gradient(90deg,#ecf8f5,#f8fcfb)}.ind-head strong{font-weight:780;color:var(--ink-title)}.ind-kv>div{background:linear-gradient(180deg,#fafcfd,#f7fafb);border-color:var(--line-soft)}.ind-kv span{font-size:11px;font-weight:690;color:var(--ink-muted);letter-spacing:.03em}.ind-kv strong{font-size:15px;font-weight:800;color:var(--ink-strong)}.sec-title{font-size:12px;font-weight:780;color:#0b6a61;letter-spacing:.06em}.chip{background:linear-gradient(135deg,#f5f9fa,#fafcfd);font-weight:660;border-color:var(--line-soft);color:#3a5260}.progress-track{background:#e9eff2;height:10px}.progress-bar{height:10px;background:linear-gradient(90deg,#0f766e,#14b8a6 52%,#d6a13c)}.sel-label{background:linear-gradient(135deg,#eaf7f4,#f6fbfa);font-weight:700;color:#0b6a61;box-shadow:inset 0 0 0 1px #0f766e24}.login-page{background:radial-gradient(900px 520px at 82% 8%,rgba(214,161,60,.2),transparent),radial-gradient(760px 480px at 12% 96%,rgba(20,184,166,.24),transparent),linear-gradient(140deg,#06201d,#0b3b36 48%,#0f766e)}.login-card{border-radius:22px;box-shadow:0 34px 90px #00000057,inset 0 1px #ffffffb3;padding:34px}.login-title{font-size:25px;font-weight:820;color:var(--ink-strong);letter-spacing:.01em}.sys-tabs .tab{min-width:104px}.sys-group,.sys-block{border-color:var(--line-soft);box-shadow:var(--shadow-1)}.role-chip{font-weight:700}@media (max-width:760px){.kpi-value{font-size:19px;letter-spacing:-.4px}.card{padding:14px;box-shadow:var(--shadow-1)}.card-title{font-size:14.5px;margin-bottom:13px}.card-title:before{height:15px}.kpi{border-radius:15px}.kpi-label{font-size:11px;letter-spacing:.03em}.kpi-foot{font-size:11px}.entry-summary strong,.dept-title strong{font-size:15.5px}.entry-section-title{font-size:13.5px}.btn.primary{box-shadow:0 2px 6px #0f766e33}.card:hover,.kpi:hover{transform:none}}@media (max-width:560px){.kpi-value{font-size:18px}.card{padding:12px;border-radius:14px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation-duration:.01ms!important}.card:hover,.kpi:hover{transform:none}}@media (min-width:1181px){.kpi-grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (min-width:1420px){.kpi-grid-6{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (min-width:1181px) and (max-width:1419px){.kpi-grid-6{grid-template-columns:repeat(3,minmax(0,1fr))}}.readonly-notice{margin:0 0 14px;padding:11px 16px;border-radius:12px;background:#0f766e0f;border:1px solid rgba(15,118,110,.18);color:#0f5c56;font-size:13px;line-height:1.6}.monthly-table-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.monthly-table-head-total{font-size:12.5px;color:#5b7488}.monthly-table-head-total strong{color:#17323f;font-family:var(--font-number);font-size:14px}.monthly-table-head-total em{font-style:normal;color:#b9c6d0;margin:0 2px}.monthly-table{min-width:1080px;border-collapse:separate;border-spacing:0}.monthly-table thead th{position:sticky;top:0;z-index:3;background:#f7fafc;color:#53677a;font-size:12.5px;font-weight:700;white-space:nowrap;padding:11px 14px;border-bottom:1px solid var(--line)}.monthly-table td{padding:11px 14px;font-size:13.5px;color:#33455a;font-family:var(--font-number);font-variant-numeric:tabular-nums;white-space:nowrap;border-bottom:1px solid var(--line-soft)}.monthly-table tbody tr:last-child td{border-bottom:0}.monthly-table .sticky-col{position:sticky;left:0;z-index:2;background:#fff;font-family:inherit;box-shadow:1px 0 0 var(--line-soft)}.monthly-table thead .sticky-col{z-index:4;background:#f7fafc}.monthly-table .dept-cell{display:flex;flex-direction:column;gap:2px;min-width:150px}.monthly-table .dept-cell strong{font-size:13.5px;color:#17323f}.monthly-table .dept-cell span{font-size:11.5px;color:#7c8b99}.monthly-table .total-cell{font-weight:800;color:#0f766e}.monthly-table .avg-cell{color:#5b7488}.monthly-table .group-total-row td{background:#f8fbf9;font-weight:800;color:#17323f;border-top:1px solid var(--line)}.monthly-table .group-total-row .sticky-col{background:#f8fbf9}.monthly-table tbody tr:hover td,.monthly-table tbody tr:hover .sticky-col{background:#fbfdfc}.monthly-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.monthly-scroll-hint{display:none;margin-top:8px;font-size:12px;color:#8a99a6;text-align:right}.monthly-mobile-list{display:none}.mexp-card{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;transition:box-shadow .18s ease,border-color .18s ease}.mexp-card+.mexp-card{margin-top:9px}.mexp-card.open{border-color:#0f766e59;box-shadow:0 6px 18px #0f766e14}.mexp-head{width:100%;display:flex;align-items:center;gap:10px;padding:13px 14px;background:transparent;border:0;text-align:left;cursor:pointer;font:inherit;-webkit-tap-highlight-color:transparent}.mexp-name{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}.mexp-name strong{font-size:15px;color:#17323f;line-height:1.3}.mexp-name em{font-style:normal;font-size:11.5px;color:#7c8b99}.mexp-amount{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:0 0 auto}.mexp-amount strong{font-size:16px;font-weight:800;color:#0f766e;font-family:var(--font-number);font-variant-numeric:tabular-nums}.mexp-amount em{font-style:normal;font-size:11px;color:#8a99a6;font-family:var(--font-number)}.mexp-caret{flex:0 0 auto;font-size:11.5px;font-weight:700;color:#0f766e;background:#0f766e14;border:1px solid rgba(15,118,110,.16);border-radius:999px;padding:4px 9px}.mexp-card.open .mexp-caret{background:#0f766e24}.mexp-body{padding:2px 14px 14px;border-top:1px dashed var(--line-soft)}.mexp-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 10px;padding:9px 0;border-bottom:1px solid var(--line-soft)}.mexp-row:last-of-type{border-bottom:0}.mexp-row-label{font-size:13.5px;color:#33455a}.mexp-row-value{font-size:14px;font-weight:700;color:#17323f;font-family:var(--font-number);font-variant-numeric:tabular-nums}.mexp-bar{grid-column:1/-1;height:5px;border-radius:999px;background:#eef3f5;overflow:hidden}.mexp-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#0f766ebf,#d6a13cbf)}.mexp-foot{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding:11px 12px;border-radius:11px;background:#f0f7f5;font-size:13.5px;color:#3c5666}.mexp-foot strong{font-size:16px;font-weight:800;color:#0f766e;font-family:var(--font-number)}.mexp-foot.subtle{background:#f7fafc;margin-top:8px;color:#5b7488}.mexp-foot.subtle strong{color:#17323f;font-size:14.5px}.mexp-area-total{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding:12px 14px;border-radius:12px;background:#f8fbf9;border:1px solid var(--line-soft);font-size:13.5px;font-weight:700;color:#33455a}.mexp-area-total strong{font-size:16px;font-weight:800;color:#17323f;font-family:var(--font-number)}@media (max-width:900px){.monthly-table-head{flex-direction:column;align-items:flex-start;gap:6px}.monthly-table{min-width:940px}.monthly-table thead th,.monthly-table td{padding:10px 12px;font-size:13px}.monthly-table .dept-cell{min-width:120px}.monthly-scroll-hint{display:block}.monthly-table-wrap,.monthly-scroll-hint{display:none}.monthly-mobile-list{display:block}}@media (max-width:560px){.readonly-notice{font-size:12.5px;padding:10px 12px}.mexp-head{padding:12px}.mexp-amount strong{font-size:15.5px}.mexp-body{padding:2px 12px 12px}.mexp-row{padding:8px 0}}.entry-section-head{padding:13px 18px;gap:12px}.entry-section-head.revenue{background:linear-gradient(90deg,#0f766e17,#0f766e00 62%);border-left:3px solid var(--green)}.entry-section-head.expense{background:linear-gradient(90deg,#d6a13c21,#d6a13c00 62%);border-left:3px solid var(--gold)}.entry-section-head.attendance{background:linear-gradient(90deg,#2563eb14,#2563eb00 62%);border-left:3px solid #2563EB}.entry-section-head.monthly{background:linear-gradient(90deg,#7c3aed12,#7c3aed00 62%);border-left:3px solid #7C3AED}.entry-section-title{display:flex;align-items:center;gap:8px;font-size:14.5px;font-weight:750}.entry-section-title:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor;opacity:.55;flex:0 0 auto}.entry-section-head.revenue .entry-section-title{color:#0f5c56}.entry-section-head.expense .entry-section-title{color:#8a6412}.entry-section-head.attendance .entry-section-title{color:#1d4ed8}.entry-section-head.monthly .entry-section-title{color:#6d28d9}.entry-section-desc{font-size:12px;color:#7c8b99;line-height:1.5}.entry-section-body{padding:16px 18px 18px}.entry-grid{gap:12px 14px}.field span{margin-bottom:5px;font-size:12px;color:#63798b;font-weight:650}.field .inp{min-height:42px}.attendance-grid .field .inp{font-size:16px;font-weight:700;font-family:var(--font-number)}.attendance-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}.auto-field input{background:#f4f8f7;color:#0f766e;font-weight:750;border:1px dashed rgba(15,118,110,.28)}.entry-table{min-width:640px;border-collapse:separate;border-spacing:0}.entry-table thead th{position:sticky;top:0;z-index:2;background:#f7fafc;color:#53677a;font-size:12.5px;font-weight:700;white-space:nowrap;border-bottom:1px solid var(--line)}.entry-table td{border-bottom:1px solid var(--line-soft);font-size:13.5px;color:#33455a;vertical-align:middle}.entry-table tbody tr:last-child td{border-bottom:0}.entry-table tbody tr:hover td{background:#fbfdfc}.entry-table .inp{padding:8px 11px;min-height:40px}.entry-table .calc{color:#0f766e;font-weight:750;font-family:var(--font-number);font-variant-numeric:tabular-nums}.entry-table tr.total td{background:#f8fbf9;font-weight:800;color:#17323f;border-top:1px solid var(--line)}.entry-table tr.total td:first-child{color:#0f5c56}.entry-table td:first-child{font-weight:600;color:#33455a}.monthly-grid{gap:12px 14px}.monthly-grid .field .inp{text-align:right;font-family:var(--font-number);font-weight:650}.monthly-grid-total{display:flex;align-items:center;justify-content:space-between;gap:10px;grid-column:1/-1;padding:12px 14px;border-radius:12px;background:#f0f7f5;border:1px solid rgba(15,118,110,.18)}.monthly-grid-total span{font-size:13px;color:#0f5c56;font-weight:650}.monthly-grid-total strong{font-size:17px;font-weight:800;color:#0f766e;font-family:var(--font-number)}.dept-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.status{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700}.status.saved{background:#0f766e1a;color:#0f5c56}.status.unsaved{background:#d6a13c29;color:#8a6412}.dept-filler{font-size:12px;color:#7c8b99}.entry-summary .summary-item{padding:12px 14px}.entry-summary span{font-size:11.5px;color:#7c8b99;font-weight:650}.entry-summary strong{font-size:16.5px;font-weight:800;color:#12303a;font-family:var(--font-number);font-variant-numeric:tabular-nums}.entry-dept-card .dept-head .btn.primary,.entry-section-head .btn.primary{min-height:42px;padding:0 18px;font-weight:750}.empty-note{padding:14px 16px;border-radius:12px;background:#f7fafc;border:1px dashed var(--line);color:#6c8291;font-size:13px;text-align:center}@media (max-width:900px){.entry-section-head{padding:12px 14px}.entry-section-body{padding:13px 14px 15px}.entry-summary .summary-item{padding:11px 12px}.entry-summary strong{font-size:15.5px}}@media (max-width:560px){.entry-section-title{font-size:14px}.entry-section-desc{font-size:11.5px}.entry-section-body{padding:12px}.entry-grid,.attendance-grid,.entry-grid.expense-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.field .inp{min-height:44px}.entry-dept-card .dept-head .btn.primary{width:100%}.monthly-grid-total strong{font-size:16px}}@media (max-width:380px){.entry-grid,.attendance-grid,.entry-grid.expense-grid{grid-template-columns:1fr}}@media (max-width:760px){.entry-dept-card{border-radius:14px;margin-bottom:12px}.entry-dept-card .dept-head{padding:12px 14px;gap:8px}.dept-title{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.dept-title strong{font-size:15px;white-space:normal}.dept-actions{width:100%;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.dept-actions .btn.primary{flex:1 1 100%;min-height:44px}.entry-dept-card .dept-head .btn.primary{width:100%}.entry-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1px}.entry-summary .summary-item{padding:10px 12px}.entry-summary span{white-space:normal;font-size:11px;letter-spacing:0}.entry-summary strong{font-size:15px;line-height:1.25}.entry-table-wrap{overflow:visible;border:0;background:transparent}.entry-table{min-width:0;width:100%;display:block}.entry-table thead{display:none}.entry-table tbody{display:block}.entry-table tr{display:grid;grid-template-columns:1fr auto;gap:8px 10px;padding:11px 12px;margin-bottom:9px;border:1px solid var(--line);border-radius:12px;background:#fff;align-items:center}.entry-table tr.total{background:#f8fbf9;border-color:#0f766e38}.entry-table td{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0;border:0;font-size:13.5px}.entry-table td:first-child{grid-column:1/-1;font-size:14px;font-weight:700;color:#17323f;padding-bottom:8px;border-bottom:1px dashed var(--line-soft);margin-bottom:2px}.entry-table td:not(:first-child):before{font-size:11.5px;color:#7c8b99;font-weight:650;flex:0 0 auto}.entry-table td:nth-child(2):before{content:"收入金额（元）"}.entry-table td:nth-child(3):before{content:"接待人次"}.entry-table td:nth-child(4):before{content:"人均消费"}.entry-table td .inp{width:min(46vw,180px);min-height:42px;text-align:right;font-family:var(--font-number);font-weight:650}.entry-table td.calc{font-size:14.5px;font-weight:750;color:#0f766e}.entry-table tr.total td:first-child{border-bottom:0;padding-bottom:0;margin-bottom:0}.entry-table tr.total td{font-weight:750}.entry-grid.room-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.monthly-grid .field .inp{text-align:right}.monthly-controls{width:100%;display:flex;flex-wrap:wrap;gap:8px}.monthly-controls .month-select{flex:1 1 140px;min-width:0}.monthly-controls .btn{flex:1 1 100%;min-height:44px}}@media (max-width:380px){.entry-table td .inp{width:min(40vw,140px)}}.entry-grid .field .inp,.entry-grid .auto-field input,.monthly-grid .field .inp,.monthly-grid .monthly-grid-total{width:min(100%,160px)}.monthly-grid .monthly-grid-total{box-sizing:border-box}.entry-table .inp{width:min(100%,140px);min-width:112px}.entry-table td.calc{font-family:var(--font-number);font-variant-numeric:tabular-nums}@media (max-width:760px){.entry-grid .field .inp,.entry-grid .auto-field input,.monthly-grid .field .inp{width:min(100%,150px)}.entry-table .inp{width:min(46vw,150px)}}@media (max-width:380px){.entry-grid .field .inp,.entry-grid .auto-field input,.monthly-grid .field .inp{width:100%}}.entry-table{min-width:600px}.entry-table th:nth-child(2),.entry-table td:nth-child(2){width:200px;min-width:180px}.entry-table th:nth-child(3),.entry-table td:nth-child(3){width:190px;min-width:170px}.entry-table th:nth-child(4),.entry-table td:nth-child(4){width:150px;min-width:120px}.entry-table .inp{width:100%;max-width:160px;min-width:0;margin-left:auto;text-align:right}.entry-table td.calc{text-align:right}.entry-grid,.monthly-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.attendance-grid{grid-template-columns:repeat(auto-fill,minmax(190px,240px))}.entry-grid .field .inp,.entry-grid .auto-field input,.monthly-grid .field .inp,.attendance-grid .field .inp{width:100%;max-width:140px;min-width:0}.monthly-grid-total{max-width:280px;margin-left:auto}@media (max-width:760px){.entry-grid,.monthly-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.entry-grid .field .inp,.monthly-grid .field .inp,.attendance-grid .field .inp{max-width:132px}.entry-table th:nth-child(2),.entry-table td:nth-child(2){width:170px;min-width:150px}.entry-table th:nth-child(3),.entry-table td:nth-child(3){width:160px;min-width:140px}.entry-table th:nth-child(4),.entry-table td:nth-child(4){width:130px;min-width:110px}.entry-table .inp{max-width:140px}}@media (max-width:380px){.entry-grid,.monthly-grid{grid-template-columns:1fr}.entry-grid .field .inp,.monthly-grid .field .inp,.attendance-grid .field .inp{max-width:100%}}.entry-grid .field,.monthly-grid .field,.attendance-grid .field{display:flex;align-items:center;gap:10px;padding:6px 10px;background:#fff;border:1px solid var(--line);border-radius:10px;min-width:0}.entry-grid .field>span,.monthly-grid .field>span,.attendance-grid .field>span{flex:1 1 auto;margin:0;font-size:12.5px;color:#53677a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-grid .field .inp,.monthly-grid .field .inp,.attendance-grid .field .inp{flex:0 0 108px;width:108px;max-width:108px;min-width:0;min-height:38px;padding:6px 9px;text-align:right;font-family:var(--font-number);font-weight:650}.entry-grid .auto-field input{background:#f4f8f7}.entry-grid,.monthly-grid{grid-template-columns:repeat(auto-fill,minmax(215px,1fr))}.attendance-grid{grid-template-columns:repeat(auto-fill,minmax(230px,300px))}@media (max-width:760px){.entry-grid,.monthly-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.entry-grid .field .inp,.monthly-grid .field .inp,.attendance-grid .field .inp{flex-basis:96px;width:96px;max-width:96px}}.entry-grid .field,.monthly-grid .field,.attendance-grid .field{display:block;padding:0;background:transparent;border:0;border-radius:0}.entry-grid .field>span,.monthly-grid .field>span,.attendance-grid .field>span{display:block;flex:none;margin:0 0 6px;font-size:12.5px;color:#53677a;font-weight:650;white-space:normal;overflow:visible;text-overflow:clip}.entry-grid .field .inp,.monthly-grid .field .inp,.attendance-grid .field .inp{display:block;flex:none;width:100%;max-width:150px;min-width:0;min-height:40px;padding:8px 11px;text-align:right;font-family:var(--font-number);font-weight:650}.entry-grid .auto-field input{width:100%;max-width:150px;text-align:right}.entry-grid,.monthly-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.attendance-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}@media (max-width:760px){.entry-grid,.monthly-grid,.attendance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-grid .field .inp,.monthly-grid .field .inp,.attendance-grid .field .inp,.entry-grid .auto-field input{max-width:100%}}@media (max-width:380px){.entry-grid,.monthly-grid,.attendance-grid{grid-template-columns:1fr}}.entry-grid.attendance-grid,.entry-grid.expense-grid,.monthly-grid{display:block;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.entry-grid.attendance-grid .field,.entry-grid.expense-grid .field,.monthly-grid .field{display:grid;grid-template-columns:1fr 168px;align-items:center;gap:12px;padding:0;border:0;border-radius:0;border-bottom:1px solid var(--line-soft);min-height:52px;background:#fff}.entry-grid.attendance-grid .field:last-of-type,.entry-grid.expense-grid .field:last-of-type,.monthly-grid .field:last-of-type{border-bottom:0}.entry-grid.attendance-grid .field:nth-child(2n),.entry-grid.expense-grid .field:nth-child(2n),.monthly-grid .field:nth-child(2n){background:#fafcfc}.entry-grid.attendance-grid .field>span,.entry-grid.expense-grid .field>span,.monthly-grid .field>span{display:flex;align-items:center;height:100%;padding:0 14px;margin:0;font-size:13.5px;color:#33455a;font-weight:650;white-space:normal}.entry-grid.attendance-grid .field .inp,.entry-grid.expense-grid .field .inp,.monthly-grid .field .inp{width:100%;max-width:none;min-height:40px;margin:6px 14px 6px 0;padding:8px 12px;text-align:right;border-radius:9px;font-family:var(--font-number);font-weight:700;font-size:14.5px;border:1px solid var(--line);background:#fff}.entry-grid.attendance-grid .field .inp:focus,.entry-grid.expense-grid .field .inp:focus,.monthly-grid .field .inp:focus{border-color:var(--green);box-shadow:0 0 0 3px #0f766e1a}.entry-grid.attendance-grid .auto-field,.entry-grid.expense-grid .auto-field{background:#f4f8f7!important}.entry-grid.expense-grid .auto-field input,.entry-grid.attendance-grid .auto-field input{background:transparent;border:0;color:#0f766e;font-weight:800;margin:6px 14px 6px 0;padding:8px 12px}.monthly-grid .monthly-grid-total{grid-column:auto;max-width:none;margin:0;border-radius:0;border-top:1px solid var(--line);background:#f0f7f5;min-height:56px;padding:0 14px}.entry-grid.room-grid{display:block;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.entry-grid.room-grid .field{display:grid;grid-template-columns:1fr 168px;align-items:center;gap:12px;padding:0;border:0;border-radius:0;border-bottom:1px solid var(--line-soft);min-height:52px}.entry-grid.room-grid .field:last-of-type{border-bottom:0}.entry-grid.room-grid .field:nth-child(2n){background:#fafcfc}.entry-grid.room-grid .field>span{display:flex;align-items:center;height:100%;padding:0 14px;margin:0;font-size:13.5px;color:#33455a;font-weight:650}.entry-grid.room-grid .field .inp{width:100%;max-width:none;min-height:40px;margin:6px 14px 6px 0;padding:8px 12px;text-align:right;border-radius:9px;font-family:var(--font-number);font-weight:700;font-size:14.5px;border:1px solid var(--line)}.entry-grid.room-grid .auto-field{background:#f4f8f7!important}.entry-grid.room-grid .auto-field input{background:transparent;border:0;color:#0f766e;font-weight:800;margin:6px 14px 6px 0;padding:8px 12px}@media (max-width:760px){.entry-grid.attendance-grid .field,.entry-grid.expense-grid .field,.monthly-grid .field,.entry-grid.room-grid .field{grid-template-columns:1fr 132px;min-height:50px}.entry-grid.attendance-grid .field>span,.entry-grid.expense-grid .field>span,.monthly-grid .field>span,.entry-grid.room-grid .field>span{padding:0 12px;font-size:13px}.entry-grid.attendance-grid .field .inp,.entry-grid.expense-grid .field .inp,.monthly-grid .field .inp,.entry-grid.room-grid .field .inp{margin:6px 12px 6px 0;font-size:14px;min-height:44px}.entry-grid.expense-grid .auto-field input,.entry-grid.attendance-grid .auto-field input,.entry-grid.room-grid .auto-field input{margin:6px 12px 6px 0}}.login-wecom-tip{margin:6px 0 10px;padding:9px 12px;border-radius:10px;background:#0f766e14;color:#0f5c56;font-size:13px;font-weight:650;text-align:center}.login-wecom-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:14px 0 6px}.login-wecom-loading .btn.ghost{margin-top:2px}.login-spinner{width:34px;height:34px;border-radius:50%;border:3px solid rgba(15,118,110,.18);border-top-color:#0f766e;animation:lms-spin .8s linear infinite}@keyframes lms-spin{to{transform:rotate(360deg)}}.btn.ghost{background:transparent;border:1px solid rgba(15,118,110,.35);color:#0f5c56}.btn.ghost:hover{background:#0f766e0f}
