:root{--blue: #3059ff;--blue-600: #2447d8;--blue-50: #eef3ff;--blue-100: #dce7ff;--ink: #0f1b33;--text: #25324b;--muted: #78859b;--muted-2: #9aa5b8;--line: #e7ebf3;--line-soft: #f0f3f8;--bg: #f5f7fb;--white: #fff;--green: #0e9f6e;--green-bg: #e8f8f1;--red: #e5484d;--red-bg: #fdeeee;--amber: #b77905;--amber-bg: #fff6e4;--violet: #7c5cfc;--nav-w: 208px;--header-h: 92px;--page-max: 100%;--gutter: clamp(18px, 2.2vw, 40px);--radius: 12px;--shadow: 0 8px 26px rgba(19, 39, 92, .055);--shadow-lg: 0 20px 60px rgba(19, 39, 92, .18);--font: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", sans-serif;--num: "Bahnschrift", "DIN Alternate", "Roboto Condensed", "Arial Narrow", "Microsoft YaHei UI", sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-width:960px;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{border:0;background:none;padding:0;cursor:pointer;color:inherit}a{color:var(--blue);text-decoration:none}h1,h2,h3,h4,p{margin:0}ul,ol{margin:0;padding:0;list-style:none}table{border-collapse:separate;border-spacing:0}.icon{width:18px;height:18px;flex:0 0 auto;display:inline-block;vertical-align:-3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid rgba(48,89,255,.45);outline-offset:2px}::selection{background:#dbe5ff;color:var(--ink)}.app{min-height:100vh}.app.collapsed{--nav-w: 72px}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--nav-w);background:#fff;border-right:1px solid #edf0f6;box-shadow:3px 0 16px #162b6009;display:flex;flex-direction:column;z-index:50;transition:width .22s ease}.brand{height:56px;display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--line-soft);flex:0 0 auto;overflow:hidden;white-space:nowrap}.brand-mark{width:30px;height:30px;border-radius:8px;background:linear-gradient(145deg,#4d7cff,#2447d8);color:#fff;display:grid;place-items:center;font-size:15px;font-weight:800;letter-spacing:-.5px;box-shadow:0 6px 14px #3059ff3d;flex:0 0 auto}.brand-text{display:flex;flex-direction:column;line-height:1.15;min-width:0}.brand-text strong{font-size:14px;letter-spacing:.5px;color:var(--ink);font-weight:800}.brand-text span{font-size:9px;letter-spacing:1.6px;color:var(--muted-2);margin-top:3px}.app.collapsed .brand{padding:0 21px}.app.collapsed .brand-text{display:none}.sidebar-nav{flex:1;overflow-y:auto;padding:10px 10px 20px;scrollbar-width:thin}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-thumb{background:#e4e9f2;border-radius:4px}.nav-item{width:100%;min-height:42px;display:flex;align-items:center;gap:10px;padding:0 12px;border-radius:7px;color:#414d63;font-size:13px;font-weight:600;text-align:left;transition:background .16s,color .16s,box-shadow .16s;position:relative;white-space:nowrap}.sidebar-nav>.nav-item+.nav-item{margin-top:2px}.nav-item .icon{width:17px;height:17px;color:#71809a;transition:color .16s}.nav-item:hover{background:#f3f6ff;color:var(--blue)}.nav-item:hover .icon{color:var(--blue)}.nav-item.active{background:var(--blue);color:#fff;box-shadow:0 4px 11px #3059ff2e}.nav-item.active .icon{color:#fff}.nav-group{margin-top:10px;padding-top:8px;border-top:1px solid var(--line-soft)}.nav-group-toggle{width:100%}.nav-group-toggle .caret{margin-left:auto;width:14px;height:14px;color:#a0aabc;transition:transform .18s}.nav-group.open .nav-group-toggle .caret{transform:rotate(180deg)}.nav-group.active>.nav-group-toggle{color:var(--blue)}.nav-group.active>.nav-group-toggle .icon{color:var(--blue)}.nav-sub{display:grid;gap:2px;padding:3px 0 4px}.nav-group:not(.open) .nav-sub{display:none}.nav-sub .nav-item{min-height:34px;padding-left:40px;font-size:12.5px;font-weight:500;color:#68758a}.nav-sub .nav-item:before{content:"";position:absolute;left:23px;top:50%;transform:translateY(-50%);width:4px;height:4px;border-radius:50%;background:#c5cddb}.nav-sub .nav-item.active{background:var(--blue-50);color:var(--blue);font-weight:700;box-shadow:none}.nav-sub .nav-item.active:before{width:3px;height:14px;border-radius:3px;background:var(--blue);left:23px}.app.collapsed .nav-label,.app.collapsed .nav-group-toggle .caret,.app.collapsed .nav-sub{display:none}.app.collapsed .nav-item{justify-content:center;padding:0}.app.collapsed .nav-item .icon{width:19px;height:19px}.app.collapsed .sidebar-nav{padding-left:10px;padding-right:10px}.app.collapsed .nav-group{margin-top:6px}.app.collapsed .nav-group.active>.nav-group-toggle{background:var(--blue-50)}.sidebar-foot{margin:10px;padding:12px;border-radius:10px;background:linear-gradient(145deg,#f3f7ff,#eef3ff);border:1px solid #e2eaff;overflow:hidden}.sidebar-foot .sf-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-foot strong{font-size:11px;color:#41557a;font-weight:700}.sidebar-foot .sf-amount{font-family:var(--num);font-size:17px;font-weight:700;color:var(--blue);margin-top:5px;letter-spacing:-.2px}.sidebar-foot .sf-meta{font-size:10.5px;color:var(--muted);margin-top:2px}.sidebar-foot .sf-bar{height:4px;border-radius:99px;background:#dfe7fa;margin-top:8px;overflow:hidden}.sidebar-foot .sf-bar span{display:block;height:100%;border-radius:inherit;background:var(--blue)}.app.collapsed .sidebar-foot{display:none}.topbar{position:fixed;top:0;right:0;left:var(--nav-w);height:var(--header-h);background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 10px #14275509;z-index:40;transition:left .22s ease}.topbar-main{height:56px;display:flex;align-items:center;gap:14px;padding-left:max(var(--gutter),calc((100% - var(--page-max)) / 2));padding-right:max(var(--gutter),calc((100% - var(--page-max)) / 2));border-bottom:1px solid var(--line-soft)}.icon-btn{width:34px;height:34px;border-radius:7px;display:inline-grid;place-items:center;color:#6d7a91;transition:background .15s,color .15s;position:relative}.icon-btn:hover{background:#f3f6fc;color:var(--blue)}.icon-btn .icon{width:19px;height:19px}.crumbs{display:flex;align-items:center;gap:8px;min-width:0}.crumbs .crumb-root{font-size:12px;color:var(--muted-2);white-space:nowrap}.crumbs .crumb-sep{width:12px;height:12px;color:#c6cedb}.crumbs strong{font-size:13px;color:var(--blue);font-weight:700;white-space:nowrap}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:12px}.clock{font-size:11.5px;color:#8792a6;font-family:var(--num);letter-spacing:.2px;white-space:nowrap}.role-switch{display:flex;align-items:center;gap:2px;padding:3px;background:#f1f4fa;border-radius:9px}.role-switch button{height:27px;padding:0 10px;border-radius:6px;font-size:11.5px;font-weight:600;color:#6e7b91;transition:.15s}.role-switch button:hover{color:var(--blue)}.role-switch button.active{background:#fff;color:var(--blue);box-shadow:0 2px 6px #1e37781f;font-weight:700}.bell-dot{position:absolute;top:8px;right:8px;width:6px;height:6px;border-radius:50%;background:var(--red);border:1.5px solid #fff}.user-chip{display:flex;align-items:center;gap:9px;padding:4px 6px 4px 4px;border-radius:8px;transition:background .15s}.user-chip:hover{background:#f4f7fc}.user-chip .avatar{width:30px;height:30px;font-size:10px}.user-chip-text{display:flex;flex-direction:column;line-height:1.2}.user-chip-text strong{font-size:12px;color:#2b3852;font-weight:700}.user-chip-text span{font-size:10px;color:var(--muted-2);margin-top:2px}.user-chip .icon{width:14px;height:14px;color:#a0aabc}.tags-view{height:35px;display:flex;align-items:center;gap:6px;padding-left:max(var(--gutter),calc((100% - var(--page-max)) / 2));padding-right:max(var(--gutter),calc((100% - var(--page-max)) / 2));overflow-x:auto;scrollbar-width:none}.tags-view::-webkit-scrollbar{display:none}.tag{height:25px;padding:0 9px;display:inline-flex;align-items:center;gap:6px;border-radius:5px;border:1px solid transparent;background:#f4f6fb;color:#66738a;font-size:11.5px;white-space:nowrap;transition:.15s}.tag:hover{background:#eef2fa;color:var(--text)}.tag.active{background:var(--blue-50);border-color:#d6e2ff;color:var(--blue);font-weight:700}.tag .tag-dot{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.65}.tag .tag-close{width:14px;height:14px;border-radius:3px;display:grid;place-items:center;color:#9aa5b8}.tag .tag-close:hover{background:#3059ff1f;color:var(--blue)}.tag .tag-close .icon{width:11px;height:11px}.tags-note{margin-left:auto;font-size:10.5px;color:#a8b2c4;white-space:nowrap}.main{margin-left:var(--nav-w);padding:calc(var(--header-h) + 20px) var(--gutter) 40px;transition:margin-left .22s ease}.page{max-width:var(--page-max);margin:0 auto;animation:pageIn .22s ease both}@keyframes pageIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.page{animation:none}*{scroll-behavior:auto!important}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:14px 20px;margin-bottom:18px}.page-head h1{font-size:25px;line-height:1.2;letter-spacing:-.6px;color:var(--ink);font-weight:800}.page-head .sub{margin-top:6px;font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:7px;flex-wrap:wrap}.page-head .sub .sep{width:3px;height:3px;border-radius:50%;background:#c8d0dd}.page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.btn{height:36px;padding:0 15px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;background:#fff;color:#35425a;font-size:12.5px;font-weight:600;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}.btn .icon{width:15px;height:15px}.btn-primary{background:var(--blue);color:#fff;box-shadow:0 5px 12px #3059ff33}.btn-primary:hover{background:var(--blue-600);box-shadow:0 7px 16px #3059ff42}.btn-ghost{border-color:#dbe2ef;background:#fff;color:#445169}.btn-ghost:hover{border-color:#b9c9ec;color:var(--blue);background:#fbfcff}.btn-soft{background:var(--blue-50);color:var(--blue)}.btn-soft:hover{background:#e2ebff}.btn-danger{background:var(--red-bg);color:var(--red)}.btn-danger:hover{background:#fbdddd}.btn-sm{height:30px;padding:0 10px;font-size:11.5px;border-radius:5px}.btn-sm .icon{width:13px;height:13px}.btn-lg{height:42px;padding:0 20px;font-size:13.5px;border-radius:7px}.btn-text{height:auto;padding:0;border:0;background:none;color:var(--blue);font-weight:600;font-size:12px;display:inline-flex;align-items:center;gap:3px}.btn-text:hover{color:var(--blue-600)}.btn-text .icon{width:12px;height:12px}.btn:disabled,.btn.disabled{opacity:.48;cursor:not-allowed;box-shadow:none}.btn-block{width:100%}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.stat-card{background:#fff;border:1px solid #e9edf4;border-radius:var(--radius);padding:17px 18px 15px;position:relative;overflow:hidden;box-shadow:var(--shadow);min-height:122px}.stat-card:after{content:"";position:absolute;right:-30px;top:-52px;width:120px;height:120px;border-radius:50%;background:var(--tint, #eef3ff);opacity:.5}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative;z-index:1}.stat-label{font-size:12px;color:#6f7d93;font-weight:600;display:flex;align-items:center;gap:5px}.stat-label .dot{width:6px;height:6px;border-radius:50%;background:var(--accent, var(--blue))}.stat-icon{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--tint, #eef3ff);color:var(--accent, var(--blue))}.stat-icon .icon{width:15px;height:15px}.stat-value{position:relative;z-index:1;margin-top:10px;font-family:var(--num);font-size:28px;line-height:1.05;letter-spacing:-.7px;color:var(--ink);font-weight:700;white-space:nowrap}.stat-value .unit{font-family:var(--font);font-size:11px;color:var(--muted-2);font-weight:500;letter-spacing:0;margin-left:3px}.stat-foot{position:relative;z-index:1;display:flex;align-items:center;gap:6px;margin-top:8px;font-size:10.5px;color:var(--muted)}.delta{display:inline-flex;align-items:center;gap:2px;font-family:var(--num);font-weight:700;font-size:11px}.delta.up{color:var(--green)}.delta.down{color:var(--red)}.delta .icon{width:11px;height:11px}.spark{display:none}.stat-card.tone-green{--accent: var(--green);--tint: var(--green-bg)}.stat-card.tone-red{--accent: var(--red);--tint: var(--red-bg)}.stat-card.tone-amber{--accent: var(--amber);--tint: var(--amber-bg)}.stat-card.tone-blue{--accent: var(--blue);--tint: var(--blue-50)}.stat-card.tone-violet{--accent: var(--violet);--tint: #f1edff}.panel{background:#fff;border:1px solid #e9edf4;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid var(--line-soft)}.panel-head.no-border{border-bottom:0}.panel-title{font-size:14.5px;color:var(--ink);font-weight:700;display:flex;align-items:center;gap:8px;letter-spacing:-.1px}.panel-title .icon{width:16px;height:16px;color:var(--blue)}.panel-title .count{font-family:var(--num);font-size:11px;padding:2px 7px;border-radius:99px;background:var(--blue-50);color:var(--blue);font-weight:700}.panel-sub{font-size:11px;color:var(--muted-2);font-weight:400;margin-left:4px}.panel-body{padding:18px}.panel-body.tight{padding:0 18px}.panel-link{font-size:11.5px;color:var(--blue);font-weight:600;display:inline-flex;align-items:center;gap:2px}.panel-link .icon{width:12px;height:12px}.dash-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.82fr);gap:13px;margin-top:13px;align-items:start}.dash-lower{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.88fr);gap:13px;margin-top:13px;align-items:start}.stack{display:grid;gap:13px;align-content:start}.receipt-panel{position:relative}.receipt-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:17px 20px 13px}.receipt-head h2{font-size:17px;color:var(--ink);font-weight:800;letter-spacing:-.3px;display:flex;align-items:center;gap:8px}.receipt-head h2 .month-badge{font-family:var(--num);font-size:11px;font-weight:700;color:var(--blue);background:var(--blue-50);border-radius:5px;padding:3px 7px;letter-spacing:.3px}.receipt-head p{margin-top:5px;font-size:11.5px;color:var(--muted)}.receipt-serial{text-align:right;font-family:var(--num);color:var(--muted-2);font-size:10.5px;line-height:1.55;white-space:nowrap}.receipt-serial strong{display:block;color:#59677d;font-size:11.5px;font-weight:600}.reconcile-form{padding:0 20px 4px;display:grid;grid-template-columns:1.25fr .85fr .95fr;gap:12px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label,.field-label{font-size:11px;color:#6c7a90;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:6px}.field-label .hint{font-weight:400;color:#a1aabd;font-size:10px}.input-shell{position:relative;display:flex;align-items:center}.input-shell>.icon{position:absolute;left:11px;width:15px;height:15px;color:#96a2b5;pointer-events:none}.input-shell input,.input-shell select{width:100%;height:40px;border:1px solid #dce3ef;border-radius:7px;background:#fff;color:var(--ink);padding:0 11px;font-size:13px;transition:border .15s,box-shadow .15s}.input-shell.with-icon input{padding-left:33px}.input-shell input:focus,.input-shell select:focus,.control:focus,.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#8eabff;box-shadow:0 0 0 3px #3059ff17;outline:none}.input-shell.big input{height:46px;font-family:var(--num);font-size:22px;font-weight:700;letter-spacing:-.5px;padding-right:65px}.input-shell .suffix{position:absolute;right:11px;font-size:11px;color:var(--muted);pointer-events:none}.stepper{position:absolute;right:5px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:1px}.stepper button{width:24px;height:17px;border-radius:4px;background:#f1f5fc;color:#61708a;display:grid;place-items:center}.stepper button:hover{background:var(--blue-50);color:var(--blue)}.stepper .icon{width:11px;height:11px}.field-note{font-size:10px;color:#a1abbb;line-height:1.45}.calc-sheet{margin:12px 20px 0;border:1px solid #e1e8f5;border-radius:9px;background:#fbfcff;padding:12px 15px 8px;position:relative;background-image:repeating-linear-gradient(0deg,transparent,transparent 31px,rgba(48,89,255,.035) 31px,rgba(48,89,255,.035) 32px)}.calc-cols{display:grid;grid-template-columns:1fr 1.08fr;gap:22px}.calc-block-title{font-size:10.5px;color:#98a3b6;font-weight:600;margin-bottom:3px;letter-spacing:.3px}.calc-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:5px 0;font-size:12px;color:#5e6c82}.calc-row .k{display:flex;align-items:center;gap:5px;white-space:nowrap}.calc-row .k .dot{width:4px;height:4px;border-radius:50%;background:#b8c4d8}.calc-row .v{font-family:var(--num);font-weight:700;color:#26344e;font-size:13px;white-space:nowrap}.calc-row .v.blue{color:var(--blue)}.calc-row .v.green{color:var(--green)}.calc-row .v.red{color:var(--red)}.calc-row.strong{border-top:1px dashed #dce4f2;margin-top:3px;padding-top:8px}.calc-row.strong .v{font-size:16px;letter-spacing:-.3px}.calc-formula{display:flex;align-items:center;gap:5px;padding:4px 0 6px;font-size:10px;color:#9ba6b8;flex-wrap:wrap}.calc-formula b{color:#6d7b91;font-weight:600}.receipt-actions{display:flex;align-items:center;gap:10px;padding:12px 20px 16px;flex-wrap:wrap}.receipt-actions .note{font-size:10.5px;color:#98a3b6;line-height:1.4;max-width:300px;margin-left:auto}.stamp{position:absolute;right:14px;top:96px;width:78px;height:78px;border-radius:50%;border:2px solid currentColor;color:var(--amber);display:grid;place-items:center;text-align:center;transform:rotate(-12deg);opacity:.52;pointer-events:none;font-size:11px;font-weight:800;letter-spacing:2px;line-height:1.3;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 4px currentColor;background:#ffffff40}.stamp small{font-size:7px;letter-spacing:1.2px;font-weight:600;display:block;margin-top:2px}.stamp.done{color:var(--green)}.stamp.draft{color:var(--amber)}.receipt-panel>.stamp{top:17px;right:180px;width:62px;height:62px;font-size:9px;letter-spacing:1.4px;opacity:.42;z-index:2}.receipt-panel>.stamp small{font-size:6px}.paper{position:relative}.paper>.stamp{right:26px;bottom:58px;top:auto;width:64px;height:64px;font-size:9px;opacity:.25;z-index:0}.paper-title,.paper-customer,.paper-lines,.paper-total,.paper-foot{position:relative;z-index:1}.composition{display:flex;gap:20px;align-items:center}.donut-wrap{position:relative;width:138px;height:138px;flex:0 0 auto}.donut{width:100%;height:100%;border-radius:50%;background:conic-gradient(var(--blue) 0 65%,var(--green) 65% 89%,var(--amber) 89% 100%);position:relative}.donut:after{content:"";position:absolute;top:23px;right:23px;bottom:23px;left:23px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #eef2f9}.donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1;text-align:center}.donut-center span{font-size:9.5px;color:var(--muted-2)}.donut-center strong{font-family:var(--num);font-size:18px;color:var(--ink);letter-spacing:-.4px;margin-top:2px}.donut-center small{font-size:9px;color:var(--muted-2);margin-top:1px}.legend{flex:1;display:grid;gap:9px;min-width:0}.legend-row{display:flex;align-items:center;gap:8px;font-size:11.5px}.legend-row .dot{width:7px;height:7px;border-radius:2px;flex:0 0 auto}.legend-row .lg-name{color:#67758b;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend-row .lg-value{font-family:var(--num);font-weight:700;color:#2d3a51;white-space:nowrap}.legend-row .lg-pct{width:36px;text-align:right;color:#9aa5b8;font-size:10px}.budget-line{margin-top:15px;padding-top:13px;border-top:1px dashed #e7ebf3}.budget-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:#6e7b90}.budget-top strong{font-family:var(--num);color:var(--ink);font-size:12px}.budget-track{height:6px;border-radius:99px;background:#eef2f9;margin-top:7px;overflow:hidden}.budget-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5d88ff,#3059ff)}.budget-foot{font-size:10px;color:#a0aabc;margin-top:5px}.project-list{display:grid}.project-row{display:grid;grid-template-columns:minmax(190px,1.35fr) .62fr .72fr 1fr auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #f1f4f9;cursor:pointer}.project-row:last-child{border-bottom:0}.project-row:hover .p-name{color:var(--blue)}.p-main{display:flex;align-items:center;gap:10px;min-width:0}.p-mark{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:800;flex:0 0 auto}.p-name{font-size:12.5px;font-weight:700;color:#2a3852;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s}.p-meta{font-size:10.5px;color:#9aa5b8;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-col{min-width:0}.p-col .k{font-size:9.5px;color:#a1aabd}.p-col .v{font-family:var(--num);font-size:13px;font-weight:700;color:#2a3852;margin-top:1px;white-space:nowrap}.p-progress{min-width:0}.p-progress .track{height:5px;background:#eef2f9;border-radius:99px;overflow:hidden}.p-progress .track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6b91ff,var(--blue))}.p-progress .cap{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:9.5px;color:#98a3b6;margin-top:5px}.p-progress .cap b{font-family:var(--num);color:#5a6880;font-weight:700}.todo-list{display:grid}.todo{display:flex;gap:10px;padding:11px 0;border-bottom:1px solid #f1f4f9;align-items:flex-start}.todo:last-child{border-bottom:0}.todo-ico{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:0 0 auto}.todo-ico .icon{width:15px;height:15px}.todo-ico.blue{background:var(--blue-50);color:var(--blue)}.todo-ico.red{background:var(--red-bg);color:var(--red)}.todo-ico.amber{background:var(--amber-bg);color:var(--amber)}.todo-ico.green{background:var(--green-bg);color:var(--green)}.todo-body{flex:1;min-width:0}.todo-title{font-size:12px;font-weight:700;color:#2e3b53;display:flex;align-items:center;gap:6px}.todo-meta{font-size:10.5px;color:#98a3b6;margin-top:2px}.todo .btn-text{flex:0 0 auto}.todo-time{font-size:9.5px;color:#b0b9c8;margin-top:3px}.pay-mini{display:flex;align-items:center;gap:18px}.pay-ring{width:88px;height:88px;flex:0 0 auto;position:relative}.pay-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.pay-ring .ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.pay-ring strong{font-family:var(--num);font-size:15px;color:var(--ink)}.pay-ring span{font-size:9px;color:var(--muted-2);margin-top:1px}.pay-info{flex:1;min-width:0}.pay-info .pi-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:#6d7a91;padding:3px 0}.pay-info .pi-row strong{font-family:var(--num);color:#2c3950;font-size:12px}.pay-info .btn{margin-top:8px}.table-wrap{width:100%;overflow-x:auto}.data-table{width:100%;font-size:12px;table-layout:auto}.data-table thead{background:url(/assets/tableHeaderBg-hd073qAc.png) center/cover no-repeat,linear-gradient(100deg,#4b86f7,#2f67f2)}.data-table thead th{color:#fff;font-weight:600;font-size:11.5px;letter-spacing:.2px;padding:11px 12px;text-align:left;white-space:nowrap;vertical-align:middle}.data-table thead th:first-child{padding-left:18px}.data-table thead th:last-child{padding-right:18px}.data-table tbody td{padding:11px 12px;border-bottom:1px solid #f0f3f8;color:#4a5770;vertical-align:middle}.data-table tbody td:first-child{padding-left:18px}.data-table tbody td:last-child{padding-right:18px}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr{transition:background .12s}.data-table tbody tr:hover{background:#f8faff}.data-table .num,.data-table th.num{text-align:right;font-variant-numeric:tabular-nums}.data-table .center,.data-table th.center{text-align:center}.data-table .strong{font-weight:700;color:var(--ink)}.data-table .money{font-family:var(--num);font-size:12.5px;font-weight:700;color:#26344e;white-space:nowrap}.data-table .money.green{color:var(--green)}.data-table .money.red{color:var(--red)}.data-table .money.blue{color:var(--blue)}.data-table .sub{font-size:10.5px;color:#98a3b6;margin-top:2px;white-space:nowrap}.data-table .t-main{display:flex;align-items:center;gap:8px;min-width:0}.data-table .t-title{font-weight:600;color:#2d3a51}.table-actions{display:flex;align-items:center;gap:7px;white-space:nowrap}.table-actions .btn-text{font-size:11.5px}.total-row td{background:#f5f8ff!important;border-top:2px solid #dce6ff!important;font-weight:700;color:var(--ink)!important;padding-top:13px!important;padding-bottom:13px!important}.total-row .money{color:var(--blue)!important}.table-empty{padding:40px 20px;text-align:center;color:#a2acbd;font-size:12px}.table-empty .icon{width:28px;height:28px;color:#c3ccdb;display:block;margin:0 auto 8px}.status{display:inline-flex;align-items:center;gap:4px;height:21px;padding:0 8px;border-radius:99px;font-size:10px;font-weight:700;letter-spacing:.1px;white-space:nowrap}.status:before{content:"";width:4px;height:4px;border-radius:50%;background:currentColor}.status.green{color:#087a54;background:var(--green-bg)}.status.amber{color:#a56a00;background:var(--amber-bg)}.status.red{color:#c0353a;background:var(--red-bg)}.status.blue{color:#234ddb;background:var(--blue-50)}.status.gray{color:#68758a;background:#f1f4f9}.status.violet{color:#6644e8;background:#f1edff}.badge-dot{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;color:#7b879c}.badge-dot i{width:5px;height:5px;border-radius:50%;background:currentColor}.badge-dot.green{color:var(--green)}.badge-dot.amber{color:var(--amber)}.badge-dot.red{color:var(--red)}.avatar{width:30px;height:30px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;font-size:10px;font-weight:800;background:#3059ff;flex:0 0 auto;letter-spacing:-.2px}.avatar.sm{width:24px;height:24px;font-size:8.5px}.avatar.lg{width:42px;height:42px;font-size:13px}.avatar.xl{width:56px;height:56px;font-size:17px}.avatar-stack{display:flex}.avatar-stack .avatar{border:2px solid #fff;margin-left:-7px}.avatar-stack .avatar:first-child{margin-left:0}.filter-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:13px 18px;border-bottom:1px solid var(--line-soft)}.filter-spacer{flex:1}.control,.form-field input,.form-field select,.form-field textarea{height:34px;border:1px solid #dce3ef;border-radius:6px;background:#fff;padding:0 10px;font-size:12px;color:#37445c;transition:border .15s,box-shadow .15s}.control::placeholder,.form-field input::placeholder,.form-field textarea::placeholder{color:#a9b3c3}select.control{padding-right:28px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2378859b' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.search-control{position:relative;display:inline-flex;align-items:center}.search-control .icon{position:absolute;left:9px;width:14px;height:14px;color:#9aa5b8;pointer-events:none}.search-control input{padding-left:29px;width:252px}.filter-label{font-size:11px;color:#7c889c}.range-tabs{display:flex;gap:3px;background:#f2f5fa;padding:3px;border-radius:7px}.range-tabs button{height:27px;padding:0 11px;border-radius:5px;font-size:11px;color:#6f7d93;font-weight:600}.range-tabs button.active{background:#fff;color:var(--blue);box-shadow:0 2px 5px #1e37781a}.tabs{display:flex;gap:3px;background:#f2f5fa;padding:3px;border-radius:8px}.tabs button{height:29px;padding:0 13px;border-radius:6px;font-size:11.5px;font-weight:600;color:#6e7b91}.tabs button:hover{color:var(--blue)}.tabs button.active{background:#fff;color:var(--blue);box-shadow:0 2px 6px #1e37781a;font-weight:700}.seg-tabs{display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding:0 18px}.seg-tabs button{height:44px;font-size:12.5px;font-weight:600;color:#6c7a90;position:relative}.seg-tabs button.active{color:var(--blue)}.seg-tabs button.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:var(--blue)}.workbench{display:grid;grid-template-columns:minmax(360px,.86fr) minmax(440px,1.14fr);gap:13px}.form-panel .panel-body{padding:18px 20px}.form-stack{display:grid;gap:14px}.form-stack .field>label{font-size:11.5px;color:#5f6d83}.hint-box{display:flex;gap:8px;padding:10px 12px;border-radius:8px;background:#f5f8ff;border:1px solid #e4ebfb;font-size:10.5px;color:#6c7a90;line-height:1.55}.hint-box .icon{width:14px;height:14px;color:var(--blue);margin-top:1px}.paper-panel{background:#fff;position:relative}.paper{padding:20px 22px 18px;background:#fff;position:relative}.paper:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--blue),#7ea1ff 55%,#dbe6ff)}.paper-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:13px;border-bottom:1px solid #e9edf5}.paper-brand{display:flex;align-items:center;gap:9px}.paper-brand .brand-mark{width:28px;height:28px;border-radius:7px;font-size:13px}.paper-brand strong{font-size:13px;color:var(--ink);font-weight:800;display:block}.paper-brand span{font-size:9px;color:#9aa5b8;letter-spacing:1.2px}.paper-meta{text-align:right;font-size:10px;color:#9aa5b8;line-height:1.6}.paper-meta strong{display:block;font-family:var(--num);font-size:11px;color:#5c6a80}.paper-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 10px}.paper-title h3{font-size:15px;font-weight:800;color:var(--ink);letter-spacing:-.2px}.paper-title .status{height:22px}.paper-customer{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;font-size:10.5px;color:#8490a4;padding:9px 0 13px;border-bottom:1px dashed #e1e7f2}.paper-customer b{color:#3b4860;font-weight:600;margin-left:4px}.paper-lines{padding:7px 0 4px}.paper-line{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:7px 0;font-size:11.5px;color:#63718a}.paper-line .pl-name{display:flex;align-items:center;gap:6px}.paper-line .pl-name .idx{font-family:var(--num);font-size:9px;color:#a4aec0;width:12px}.paper-line .pl-name .pl-text{display:flex;flex-direction:column;gap:1px;min-width:0}.paper-line .pl-name .pl-text b{font-size:11.5px;color:#35425a;font-weight:600}.paper-line .pl-name .pl-text small{font-size:9px;color:#98a3b6;font-weight:500}.paper-line .pl-amount{font-family:var(--num);font-weight:700;color:#2a3852}.paper-line.muted .pl-amount{color:#6d7b91;font-weight:600}.paper-total{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:15px 0 13px;border-top:2px solid #2a3a58;margin-top:4px}.paper-total .pt-label{font-size:10.5px;color:#8a96aa}.paper-total .pt-label strong{display:block;font-size:12px;color:#344259;margin-top:2px}.paper-total .pt-value{font-family:var(--num);font-size:30px;line-height:1;letter-spacing:-1px;color:var(--ink);font-weight:700;white-space:nowrap}.paper-total .pt-value small{font-family:var(--font);font-size:10px;color:#98a3b6;letter-spacing:0;margin-left:4px;font-weight:500}.paper-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:10px;border-top:1px dashed #e4e9f2;font-size:9.5px;color:#a2acbd}.paper-foot .stamp{position:absolute;right:24px;bottom:74px;top:auto;width:68px;height:68px;font-size:10px}.paper-actions{display:flex;align-items:center;gap:8px;padding:0 22px 18px;flex-wrap:wrap}.paper-actions .note{margin-left:auto;font-size:10px;color:#9ba6b8}.paper-scope{display:flex;align-items:center;gap:6px;font-size:10px;color:#8792a6}.paper-scope label{white-space:nowrap}.paper-scope select{height:30px;width:auto;min-width:128px;max-width:190px;padding:0 8px;font-size:11px}.paper-project-list{margin:-2px 0 9px 18px;padding:6px 10px;border-left:2px solid #e3eaf7;background:#fbfcff;border-radius:0 6px 6px 0}.paper-project{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:3px 0;font-size:10px;color:#5e6c82}.paper-project>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-project small{margin-left:auto;color:#98a3b6;font-size:8.5px;white-space:nowrap}.paper-project b{font-family:var(--num);font-size:10.5px;color:#2d3a51;white-space:nowrap}.mini-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:13px}.mini-stat{background:#fff;border:1px solid #e9edf4;border-radius:10px;padding:13px 15px;box-shadow:var(--shadow)}.mini-stat .ms-label{font-size:10.5px;color:#7b879c;display:flex;align-items:center;gap:5px}.mini-stat .ms-label .icon{width:13px;height:13px;color:var(--blue)}.mini-stat .ms-value{font-family:var(--num);font-size:20px;line-height:1.1;color:var(--ink);font-weight:700;letter-spacing:-.4px;margin-top:5px;white-space:nowrap}.mini-stat .ms-value small{font-family:var(--font);font-size:10px;color:#98a3b6;font-weight:500;margin-left:3px;letter-spacing:0}.mini-stat .ms-foot{font-size:9.5px;color:#9aa5b8;margin-top:4px}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f1b3352;z-index:90;animation:fadeIn .16s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.drawer{position:fixed;top:0;right:0;bottom:0;width:620px;max-width:92vw;background:#f6f8fc;z-index:91;box-shadow:-24px 0 60px #0f1e462e;display:flex;flex-direction:column;animation:drawerIn .24s cubic-bezier(.2,.8,.2,1)}@keyframes drawerIn{0%{transform:translate(40px);opacity:.4}to{transform:none;opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.drawer-head{background:#fff;padding:18px 20px 15px;border-bottom:1px solid var(--line);position:relative}.drawer-head .drawer-close{position:absolute;right:14px;top:14px}.drawer-head .dh-top{display:flex;align-items:center;gap:10px;margin-bottom:8px}.drawer-head h2{font-size:19px;color:var(--ink);font-weight:800;letter-spacing:-.4px;padding-right:30px}.drawer-head .dh-sub{font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.drawer-body{flex:1;overflow-y:auto;padding:14px}.drawer-foot{background:#fff;border-top:1px solid var(--line);padding:12px 18px;display:flex;align-items:center;gap:9px;justify-content:flex-end}.drawer-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.drawer-metric{background:#fff;border:1px solid #e9edf4;border-radius:9px;padding:11px 12px}.drawer-metric span{font-size:9.5px;color:#8a96aa}.drawer-metric strong{display:block;font-family:var(--num);font-size:16px;color:var(--ink);margin-top:3px;letter-spacing:-.3px}.drawer-metric strong.green{color:var(--green)}.drawer-metric strong.red{color:var(--red)}.drawer-metric strong.blue{color:var(--blue)}.drawer-section{background:#fff;border:1px solid #e9edf4;border-radius:10px;overflow:hidden;margin-bottom:12px}.drawer-section .sec-head{padding:12px 15px;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;font-weight:700;color:#2e3b53}.drawer-section .sec-head .count{font-family:var(--num);font-size:10px;color:var(--blue);background:var(--blue-50);padding:2px 6px;border-radius:99px}.drawer-list{padding:4px 15px}.drawer-list .d-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #f2f5f9;font-size:11px;color:#5e6c82}.drawer-list .d-row:last-child{border-bottom:0}.drawer-list .d-row .d-main{min-width:0}.drawer-list .d-row strong{display:block;font-size:11.5px;color:#303d55;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer-list .d-row small{color:#9aa5b8;font-size:9.5px;display:block;margin-top:2px}.drawer-list .d-row .d-amount{font-family:var(--num);font-weight:700;color:#26344e;white-space:nowrap}.drawer-list .d-row .d-amount.red{color:var(--red)}.drawer-list .d-row .d-amount.green{color:var(--green)}.drawer .seg-tabs{background:#fff;border:1px solid #e9edf4;border-radius:10px;margin-bottom:12px}.drawer .seg-tabs button{height:40px}.drawer-empty{padding:26px 15px;text-align:center;color:#a3adbe;font-size:11px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f1b3361;z-index:120;display:grid;place-items:center;padding:20px;animation:fadeIn .16s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{width:520px;max-width:94vw;max-height:calc(100vh - 40px);background:#fff;border-radius:12px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:popIn .18s cubic-bezier(.2,.8,.2,1)}.modal.wide{width:720px}.modal.narrow{width:430px}@keyframes popIn{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}.modal-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-head h3{font-size:16px;color:var(--ink);font-weight:800;letter-spacing:-.3px;display:flex;align-items:center;gap:8px}.modal-head h3 .icon{color:var(--blue);width:18px;height:18px}.modal-head .sub{font-size:10.5px;color:#98a3b6;margin-top:2px;font-weight:400}.modal-body{padding:18px 20px;overflow-y:auto}.modal-foot{padding:13px 20px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;gap:8px}.modal-foot .left{margin-right:auto;font-size:10.5px;color:#98a3b6}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 14px}.form-field{display:flex;flex-direction:column;gap:6px;min-width:0}.form-field>label{font-size:11px;color:#647188;font-weight:600}.form-field>label em{color:var(--red);font-style:normal;margin-left:2px}.form-field input,.form-field select{height:38px;font-size:12.5px}.form-field textarea{height:70px;padding:9px 10px;resize:vertical;line-height:1.5;font-size:12.5px}.form-field .help{font-size:9.5px;color:#a0aabc;line-height:1.45}.form-note{grid-column:1 / -1;display:flex;gap:7px;padding:9px 11px;border-radius:7px;background:#f6f9ff;border:1px solid #e5ecfb;font-size:10.5px;color:#6c7a90;line-height:1.5}.form-note .icon{width:13px;height:13px;color:var(--blue);margin-top:1px}.calc-inline{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f8faff;border:1px dashed #d9e4f9;border-radius:8px;padding:10px 13px;font-size:11px;color:#6b788e}.calc-inline b{font-family:var(--num);font-size:17px;color:var(--blue)}.modal-close{width:30px;height:30px;border-radius:6px;display:grid;place-items:center;color:#9aa5b8}.modal-close:hover{background:#f2f5fa;color:#4a5770}.toast-root{position:fixed;top:18px;left:50%;transform:translate(-50%);z-index:220;display:grid;gap:7px;pointer-events:none}.toast{background:#101d36;color:#fff;border-radius:8px;padding:9px 14px 9px 10px;display:flex;align-items:center;gap:8px;font-size:11.5px;box-shadow:0 10px 30px #0f1b3347;animation:toastIn .2s ease;min-width:230px}.toast .icon{width:16px;height:16px;color:#6ee7b7}.toast.error .icon{color:#fda4af}@keyframes toastIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.staff-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.staff-card{background:#fff;border:1px solid #e9edf4;border-radius:11px;padding:16px;box-shadow:var(--shadow);position:relative}.staff-top{display:flex;align-items:flex-start;gap:11px}.staff-top .avatar{width:42px;height:42px;font-size:12px}.staff-id{flex:1;min-width:0}.staff-id strong{font-size:13.5px;color:var(--ink);font-weight:700;display:flex;align-items:center;gap:6px}.staff-id span{display:block;font-size:10.5px;color:#8c97ab;margin-top:3px}.staff-card .staff-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px;padding-top:12px;border-top:1px solid #f0f3f8}.staff-card .staff-metrics div{text-align:center}.staff-card .staff-metrics span{display:block;font-size:9px;color:#9aa5b8}.staff-card .staff-metrics strong{display:block;font-family:var(--num);font-size:13px;color:#2d3a51;margin-top:3px}.staff-card .staff-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}.staff-card .staff-phone{font-size:9.5px;color:#a0aabc;font-family:var(--num)}.staff-add{border:1px dashed #c9d6ef;background:#f9fbff;display:grid;place-items:center;min-height:196px;border-radius:11px;color:#8a96aa;gap:8px;transition:.15s}.staff-add:hover{border-color:#9db5ff;color:var(--blue);background:#f4f8ff}.staff-add .icon{width:26px;height:26px}.staff-add span{font-size:11.5px;font-weight:600}.perm-panel{background:#fff;border:1px solid #e9edf4;border-radius:11px;overflow:hidden;box-shadow:var(--shadow)}.perm-table{width:100%;font-size:12px}.perm-table th{background:#f7f9fd;color:#68758a;font-weight:700;font-size:11px;padding:11px 14px;text-align:left;border-bottom:1px solid var(--line)}.perm-table th:not(:first-child){text-align:center;width:130px}.perm-table td{padding:11px 14px;border-bottom:1px solid #f1f4f9;color:#4a5770}.perm-table td:not(:first-child){text-align:center}.perm-table tr:last-child td{border-bottom:0}.perm-table .perm-name{font-weight:600;color:#2d3a51}.perm-table .perm-desc{font-size:10px;color:#9aa5b8;margin-top:2px}.perm-check{width:18px;height:18px;border-radius:5px;border:1.5px solid #ccd5e4;display:inline-grid;place-items:center;color:#fff;transition:.15s}.perm-check.on{background:var(--blue);border-color:var(--blue)}.perm-check .icon{width:12px;height:12px}.perm-check:disabled{opacity:1;cursor:default}.payslip{border:1px solid #e3e8f2;border-radius:9px;overflow:hidden}.payslip-head{background:#f7f9fd;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #e8edf5}.payslip-head strong{font-size:13px;color:var(--ink)}.payslip-head span{font-size:10px;color:#8d99ad}.payslip-rows{padding:6px 14px}.payslip-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px dashed #edf1f7;font-size:11.5px;color:#647188}.payslip-row:last-child{border-bottom:0}.payslip-row b{font-family:var(--num);color:#2d3a51;font-weight:700}.payslip-row.total{border-top:1px solid #dfe6f2;border-bottom:0;margin-top:3px;padding-top:10px}.payslip-row.total b{font-size:19px;color:var(--blue)}.payslip-row.minus b{color:var(--red)}.device-switch{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;color:#68758a;padding:5px 9px;border-radius:5px;border:1px solid #e0e6f0;background:#fff}.device-switch:hover{color:var(--blue);border-color:#b9c9ec}.device-switch .icon{width:13px;height:13px}.insight-strip{display:flex;align-items:center;gap:9px;padding:10px 12px;background:#fffaf0;border:1px solid #f7e6c4;border-radius:8px;font-size:11px;color:#8a6113;line-height:1.5;margin-bottom:13px}.insight-strip .icon{width:15px;height:15px;color:#c58a12;flex:0 0 auto}.insight-strip.blue{background:#f5f8ff;border-color:#e0e9ff;color:#50648a}.insight-strip.blue .icon{color:var(--blue)}.muted{color:var(--muted)}.small{font-size:11px}.mono{font-family:var(--num)}.nowrap{white-space:nowrap}.green{color:var(--green)}.red{color:var(--red)}.blue{color:var(--blue)}.amber{color:var(--amber)}.mt-12{margin-top:12px}.mt-14{margin-top:14px}.mb-14{margin-bottom:14px}@media (max-width: 1380px){.stat-value{font-size:25px}.clock{display:none}.staff-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid{gap:11px}.data-table thead th,.data-table tbody td{padding-left:9px;padding-right:9px}.data-table thead th:first-child,.data-table tbody td:first-child{padding-left:16px}.data-table thead th:last-child,.data-table tbody td:last-child{padding-right:16px}}@media (max-width: 1240px){.dash-grid,.dash-lower,.workbench{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.receipt-actions .note{margin-left:0}.topbar-right{gap:8px}.role-switch button{padding:0 8px}}@media (max-width: 1180px){body{min-width:960px}:root{--gutter: 12px}.tags-note,.user-chip-text{display:none}}.month-picker{display:inline-flex;align-items:center;gap:2px;background:#fff;border:1px solid #dce3ef;border-radius:7px;padding:2px;height:34px}.month-picker button{width:28px;height:28px;border-radius:5px;display:grid;place-items:center;color:#7b879c}.month-picker button:hover:not(:disabled){background:var(--blue-50);color:var(--blue)}.month-picker button:disabled{opacity:.35;cursor:not-allowed}.month-picker strong{font-family:var(--num);font-size:11.5px;color:#2f3d55;padding:0 8px;font-weight:700;white-space:nowrap}.month-picker .icon{width:14px;height:14px}.budget-card{padding:20px;display:flex;align-items:center;gap:22px}.budget-ring{width:124px;height:124px;flex:0 0 auto;border-radius:50%;position:relative;background:conic-gradient(var(--blue) 0 calc(var(--pct) * 1%),#eef2f9 calc(var(--pct) * 1%) 100%)}.budget-ring:after{content:"";position:absolute;top:17px;right:17px;bottom:17px;left:17px;background:#fff;border-radius:50%;box-shadow:inset 0 0 0 1px #edf1f8}.budget-ring .br-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1}.budget-ring .br-center strong{font-family:var(--num);font-size:21px;color:var(--ink);letter-spacing:-.5px}.budget-ring .br-center span{font-size:9px;color:#9aa5b8;margin-top:2px}.budget-info{flex:1;min-width:0}.budget-info .bi-label{font-size:10.5px;color:#8a96aa}.budget-info .bi-value{font-family:var(--num);font-size:23px;color:var(--ink);font-weight:700;letter-spacing:-.5px;margin-top:2px}.budget-info .bi-value small{font-family:var(--font);font-size:10px;color:#98a3b6;font-weight:500;margin-left:3px}.budget-info .bi-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10.5px;color:#6f7d93;padding:3px 0}.budget-info .bi-row b{font-family:var(--num);color:#35425a}.budget-track-lg{height:7px;border-radius:99px;background:#eef2f9;overflow:hidden;margin-top:7px}.budget-track-lg span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6b91ff,var(--blue))}.cat-list{display:grid}.cat-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #f2f5f9;font-size:11.5px}.cat-row:last-child{border-bottom:0}.cat-ico{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;background:#f3f6fc;color:#6c7a90;flex:0 0 auto}.cat-ico .icon{width:14px;height:14px}.cat-row .cat-name{flex:1;color:#5c6a80}.cat-row .cat-bar{width:86px;height:4px;border-radius:99px;background:#eef2f9;overflow:hidden}.cat-row .cat-bar span{display:block;height:100%;background:#92aefc;border-radius:inherit}.cat-row .cat-amount{width:82px;text-align:right;font-family:var(--num);font-weight:700;color:#2d3a51}.cat-row .cat-count{width:36px;text-align:right;font-size:9.5px;color:#a0aabc}.activity{display:grid}.act-row{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid #f2f5f9}.act-row:last-child{border-bottom:0}.act-dot{width:7px;height:7px;border-radius:50%;background:#cbd6ea;margin-top:6px;flex:0 0 auto}.act-row.blue .act-dot{background:var(--blue)}.act-row.green .act-dot{background:var(--green)}.act-row.amber .act-dot{background:var(--amber)}.act-body{min-width:0}.act-body p{font-size:11px;color:#59677d;line-height:1.5}.act-body p b{color:#2d3a51;font-weight:600}.act-body time{display:block;font-size:9.5px;color:#a4aec0;margin-top:2px;font-family:var(--num)}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.quick-action{border:1px solid #e8edf5;border-radius:8px;padding:11px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;background:#fbfcff;transition:.15s}.quick-action:hover{border-color:#bfd0f5;background:#f5f8ff;transform:translateY(-1px)}.quick-action .qa-ico{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--blue-50);color:var(--blue)}.quick-action .qa-ico.green{background:var(--green-bg);color:var(--green)}.quick-action .qa-ico.amber{background:var(--amber-bg);color:var(--amber)}.quick-action .qa-ico.violet{background:#f1edff;color:var(--violet)}.quick-action .qa-ico .icon{width:15px;height:15px}.quick-action span{font-size:10px;color:#5e6c82;font-weight:600;white-space:nowrap}.role-note{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:8px;background:#f7f9fd;border:1px solid #e8edf5;font-size:10.5px;color:#748197;line-height:1.5;margin-bottom:13px}.role-note .icon{width:14px;height:14px;color:var(--blue);flex:0 0 auto}.pay-status-row{display:flex;align-items:center;gap:7px}.form-field.is-hidden{display:none}.bill-amount-preview{font-family:var(--num);font-size:22px;color:var(--blue);font-weight:700}@media (max-width: 1240px){.budget-card{flex-direction:column;align-items:flex-start}.quick-actions{grid-template-columns:repeat(2,1fr)}}.workbench{grid-template-columns:minmax(560px,1.1fr) minmax(430px,.9fr)}.merchant-recon-list{margin:10px 20px 0;border:1px solid #e4eaf5;border-radius:9px;overflow:hidden;background:#fff}.merchant-recon-row{display:grid;grid-template-columns:minmax(160px,1.2fr) .5fr .55fr .55fr .8fr;gap:10px;align-items:center;padding:9px 12px;border-bottom:1px solid #f1f4f9}.merchant-recon-row:last-child{border-bottom:0}.merchant-recon-row:hover{background:#fbfcff}.mr-main{display:flex;align-items:center;gap:9px;min-width:0}.mr-main .p-mark{width:28px;height:28px;border-radius:8px;font-size:10px}.mr-name{font-size:12px;font-weight:700;color:#2d3a51;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mr-meta{font-size:9.5px;color:#98a3b6;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mr-col{text-align:right}.mr-col span{display:block;font-size:9px;color:#9aa5b8}.mr-col b{display:block;font-family:var(--num);font-size:12px;color:#2d3a51;margin-top:1px;white-space:nowrap}.mr-col b.green{color:var(--green)}.mr-col b.blue{color:var(--blue)}.merchant-recon-total{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 12px;margin:10px 20px 0;padding:10px 12px;background:#f7faff;border:1px dashed #dbe5f7;border-radius:8px}.merchant-recon-total div{min-width:0}.merchant-recon-total span{display:block;font-size:9px;color:#98a3b6}.merchant-recon-total strong{display:block;font-family:var(--num);font-size:13px;color:#2d3a51;margin-top:2px;white-space:nowrap}.merchant-recon-total strong.green{color:var(--green)}.merchant-recon-total strong.blue{color:var(--blue)}.merchant-recon-total strong.red{color:var(--red)}.merchant-recon-editor{border:1px solid #e3e9f4;border-radius:9px;overflow:hidden;background:#fff}.mre-head{display:grid;grid-template-columns:minmax(150px,1.4fr) .6fr .55fr .8fr;gap:10px;padding:8px 12px;background:#f7f9fd;border-bottom:1px solid #e9eef7;font-size:9.5px;color:#7b879c;font-weight:600}.mre-head span:not(:first-child){text-align:right}.merchant-recon-edit-row{display:grid;grid-template-columns:minmax(150px,1.4fr) .6fr .55fr .8fr;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid #f2f5f9}.merchant-recon-edit-row:last-child{border-bottom:0}.merchant-recon-edit-row:hover{background:#fbfcff}.merchant-recon-edit-row .p-mark{width:27px;height:27px;border-radius:7px;font-size:9px}.mr-input{display:flex;align-items:center;justify-content:flex-end;gap:3px}.mr-input input{width:82px;height:30px;border:1px solid #dce3ef;border-radius:6px;text-align:right;padding:0 8px;font-family:var(--num);font-size:13px;font-weight:700;color:var(--ink);background:#fff}.mr-input input:focus{border-color:#8eabff;box-shadow:0 0 0 3px #3059ff17;outline:none}.mr-input input:disabled{background:#f7f9fd;color:#7b879c}.mr-input span{font-size:9px;color:#98a3b6}.mr-value{text-align:right}.mr-value span{display:block;font-family:var(--num);font-size:12px;font-weight:700;color:#2d3a51;white-space:nowrap}.mr-value small{display:block;font-size:8.5px;color:#9aa5b8;margin-top:1px}@media (max-width: 1340px){.workbench{grid-template-columns:1fr}.workbench .paper-panel{width:100%;max-width:860px;margin-inline:auto}}.project-edit-row{display:grid;grid-template-columns:minmax(200px,1.6fr) minmax(110px,.7fr) 110px 32px;gap:10px;align-items:end;padding:10px;border:1px solid #e7ecf6;border-radius:9px;margin-bottom:8px;background:#fbfcff}.project-edit-row .form-field{gap:4px}.project-edit-row .form-field label{font-size:9.5px}.project-edit-row .form-field input,.project-edit-row .form-field select{height:36px}.project-edit-row .icon-btn{margin-bottom:1px;color:#98a3b6}.project-edit-row .icon-btn:hover{color:var(--red);background:var(--red-bg)}.static-field{height:40px;display:flex;align-items:center;gap:6px;padding:0 11px;border:1px dashed #dbe4f4;border-radius:7px;background:#f8faff;font-size:10.5px;color:#6c7a90}.static-field .icon{width:14px;height:14px;color:var(--blue)}.merchant-recon-group{border:1px solid #e5ebf5;border-radius:10px;overflow:hidden;margin-bottom:9px;background:#fff}.merchant-recon-group-head{display:grid;grid-template-columns:minmax(0,1fr) auto 100px;gap:10px;align-items:center;padding:9px 12px;background:#f7f9fd;border-bottom:1px solid #e9eef7}.merchant-recon-group-head .mr-main .p-mark{width:27px;height:27px;border-radius:7px;font-size:9px}.mre-summary{text-align:right;line-height:1.4}.mre-summary span{display:block;font-size:8.5px;color:#9aa5b8}.mre-summary strong{display:block;font-family:var(--num);font-size:11.5px;color:#2d3a51}.mre-summary small{display:block;font-size:8.5px;color:#7b879c}.mre-amount{text-align:right;font-family:var(--num);font-size:14px;font-weight:700;color:var(--blue);white-space:nowrap}.project-recon-list{display:grid}.project-recon-edit-row{display:grid;grid-template-columns:minmax(160px,1.25fr) 82px 96px 76px 90px;gap:9px;align-items:center;padding:7px 12px;border-bottom:1px solid #f2f5f9}.project-recon-edit-row:last-child{border-bottom:0}.project-recon-edit-row:hover{background:#fbfcff}.pr-name{min-width:0;padding-left:36px;position:relative}.pr-name:before{content:"";position:absolute;left:18px;top:8px;width:5px;height:5px;border-radius:50%;background:#c6d0e0}.pr-name span{display:block;font-size:11px;font-weight:600;color:#35425a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pr-name small{display:block;font-size:9px;color:#98a3b6;margin-top:1px}.project-recon-edit-row .mr-input input{width:72px}.project-recon-edit-row .mr-field{text-align:right}.project-recon-edit-row .mr-field .mr-input{justify-content:flex-end}.project-recon-edit-row .mr-field>small{display:block;font-size:8.5px;color:#9aa5b8;margin-top:1px}@media (max-width: 1240px){.project-recon-edit-row{grid-template-columns:minmax(130px,1.2fr) 78px 90px 70px 84px}}.ico{display:inline-flex;align-items:center;line-height:0}.ico .icon{width:18px;height:18px}.login-wrap{min-height:100vh;display:grid;place-items:center;background:radial-gradient(900px 420px at 10% -10%,rgba(48,89,255,.16),transparent 60%),var(--bg)}.login-card{width:440px;max-width:calc(100vw - 32px);background:#fff;border:1px solid #e9edf4;border-radius:16px;box-shadow:var(--shadow-lg);padding:28px}.login-card h1{font-size:26px;color:var(--ink);letter-spacing:-.4px;margin-top:18px}.login-card .field{margin-top:12px}.login-card input{height:40px;border:1px solid #dce3ef;border-radius:8px;padding:0 12px;width:100%}.pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px 16px;color:#667085;font-size:13px}.dict-list{display:flex;flex-direction:column;gap:8px}.dict-row{display:flex;gap:8px}.dict-row input{flex:1}.banner{background:var(--red-bg);color:var(--red);border-radius:8px;padding:10px 12px;margin:12px 0;font-size:13px}.toast{position:fixed;top:18px;left:50%;transform:translate(-50%);background:#142033;color:#fff;border-radius:8px;padding:10px 14px;z-index:200;font-size:13px;box-shadow:var(--shadow-lg)}.pop{position:absolute;top:46px;right:0;width:280px;background:#fff;border:1px solid #e9edf4;border-radius:12px;box-shadow:var(--shadow-lg);z-index:60;padding:8px}.pop button,.pop a{width:100%;text-align:left;display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:8px;color:var(--text);font-size:13px}.pop button:hover,.pop a:hover{background:#f4f7fc}.user-wrap,.bell-wrap{position:relative}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full{grid-column:1 / -1}.form-field label{font-size:12px;color:#6c7a90;font-weight:600}.form-field input,.form-field select,.form-field textarea{width:100%;height:38px;border:1px solid #dce3ef;border-radius:7px;padding:0 10px;background:#fff}.form-field textarea{height:72px;padding:8px 10px;resize:vertical}.help,.form-note{font-size:12px;color:var(--muted)}.form-note{display:flex;gap:6px;align-items:flex-start;background:#f7f9ff;border-radius:8px;padding:10px}.table-actions{display:flex;gap:10px;align-items:center}html{min-height:100%;background:var(--bg)}body,#app{min-height:100vh}.app{min-height:100vh;background:var(--bg)}.main{min-height:calc(100vh - var(--header-h))}.modal-overlay{inset:var(--header-h) 0 0 var(--nav-w)}.project-editor{display:flex;flex-direction:column;gap:10px;margin-top:12px}.project-editor-empty{padding:24px;background:#fbfcff;border:1px dashed #d9e2f2;border-radius:10px}.project-card{border:1px solid var(--line);background:#fbfcff;border-radius:10px;padding:12px 14px}.project-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:11.5px;font-weight:700;color:#68758a}.project-card .form-grid{gap:10px 12px}.project-card .form-field label{font-size:10.5px}.project-card .form-field input,.project-card .form-field select{height:36px}.btn-text.danger{color:var(--red)}
