:root{--primary: #3492c4;--primary-dark: #2a78a0;--primary-soft: #e6f1fa;--bg: #eef3f9;--card: #ffffff;--border: #e5e9f0;--text: #1a2433;--muted: #6b7a90;--success: #16a34a;--success-soft: #e7f6ec;--warn: #d97706;--warn-soft: #fdf1e0;--danger: #dc2626;--danger-soft: #fce8e8;--radius: 16px;--shadow: 0 1px 2px rgba(16, 40, 68, .05), 0 10px 28px rgba(16, 40, 68, .07);--glass: rgba(255, 255, 255, .62);--glass-strong: rgba(255, 255, 255, .84);--glass-soft: rgba(255, 255, 255, .42);--glass-line: rgba(255, 255, 255, .75);--glass-line-dim: rgba(16, 40, 68, .08);--glass-blur: 18px;--glass-shadow: 0 1px 2px rgba(16, 40, 68, .05), 0 10px 28px rgba(16, 40, 68, .07);--glass-shadow-lg: 0 16px 44px rgba(16, 40, 68, .16);--glass-inner: inset 0 1px 0 rgba(255, 255, 255, .85);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--tabbar-h: 58px}@supports not ((backdrop-filter: blur(2px)) or (-webkit-backdrop-filter: blur(2px))){:root{--glass: rgba(255, 255, 255, .9);--glass-strong: rgba(255, 255, 255, .96);--glass-soft: rgba(255, 255, 255, .78);--glass-line: rgba(16, 40, 68, .08)}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:-apple-system,Segoe UI,Microsoft YaHei,PingFang SC,sans-serif;background:linear-gradient(155deg,#e9f1f8,#f3f6fb 42%,#e8f0f7 72%,#f5f8fc);background-attachment:fixed;color:var(--text);font-size:14px;line-height:1.6;overscroll-behavior:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-text-size-adjust:100%;text-size-adjust:100%}body:before{content:"";position:fixed;top:-15%;right:-15%;bottom:-15%;left:-15%;z-index:-1;pointer-events:none;background:radial-gradient(38vmax 38vmax at 13% 6%,#3492c44d,#3492c400 62%),radial-gradient(32vmax 32vmax at 89% 3%,#677ad633,#677ad600 62%),radial-gradient(40vmax 40vmax at 80% 95%,#16a34a24,#16a34a00 62%),radial-gradient(34vmax 34vmax at 4% 88%,#d9770621,#d9770600 62%)}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:14px}.btn{border:1px solid transparent;border-radius:11px;padding:9px 16px;font-size:14px;font-weight:500;transition:transform .15s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #3492c452}.btn-primary{background:linear-gradient(135deg,#4aa4d6,#2f83b4 55%,#2a78a0);color:#fff;box-shadow:0 4px 14px #2a78a047,inset 0 1px #ffffff47}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#56b0e0,#3492c4 55%,#2a78a0);box-shadow:0 7px 20px #2a78a057,inset 0 1px #ffffff4d;transform:translateY(-1px)}.btn-secondary{background:#3492c41a;color:var(--primary-dark);border-color:#3492c438}.btn-secondary:hover:not(:disabled){background:#3492c42e;border-color:#3492c457}.btn-ghost{background:#1028440a;color:var(--text);border-color:#10284438}.btn-ghost:hover:not(:disabled){background:#10284414;border-color:#10284457}.btn-danger{background:#dc26261a;color:var(--danger);border-color:#dc262638}.btn-danger:hover:not(:disabled){background:#dc26262e;border-color:#dc262657}.btn-block{display:block;width:100%}.btn-sm{padding:5px 11px;font-size:13px;border-radius:9px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:500;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.badge-success{background:#16a34a24;color:#157f3c}.badge-warn{background:#d9770629;color:#a85c06}.badge-info{background:#3492c429;color:var(--primary-dark)}.badge-muted{background:#10284414;color:var(--muted)}.dot{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}.alert{border-radius:12px;padding:10px 14px;font-size:13px;margin:12px 0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid transparent}.alert-error{background:#dc26261a;color:#b42318;border-color:#dc26262e}.alert-success{background:#16a34a1c;color:#157f3c;border-color:#16a34a2e}.alert-info{background:#3492c41c;color:var(--primary-dark);border-color:#3492c42e}.form-error{color:var(--danger);font-size:13px;margin:8px 0}.splash{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--muted)}.spinner{width:28px;height:28px;border:3px var(--primary-soft);border:3px solid rgba(52,146,196,.2);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-wrap{position:relative;overflow:hidden;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:calc(var(--safe-top) + 32px) 20px calc(var(--safe-bottom) + 32px);background:radial-gradient(120% 90% at 50% -10%,rgba(74,164,214,.35),transparent 60%),radial-gradient(80% 70% at 10% 90%,rgba(103,122,214,.3),transparent 65%),radial-gradient(80% 70% at 90% 90%,rgba(255,196,110,.18),transparent 65%),linear-gradient(160deg,#0a2138,#143b5b 45%,#1e5f88)}.login-logo-bg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(72vw,880px);height:auto;opacity:.42;filter:blur(8px) saturate(120%);-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);pointer-events:none;z-index:0}.login-wrap:before,.login-wrap:after{content:"";position:absolute;border-radius:50%;pointer-events:none;z-index:0}.login-wrap:before{width:56vmax;height:56vmax;left:-16vmax;top:-18vmax;background:radial-gradient(closest-side,#4aa4d673,#4aa4d600)}.login-wrap:after{width:50vmax;height:50vmax;right:-12vmax;bottom:-20vmax;background:radial-gradient(closest-side,#677ad65c,#677ad600)}.login-stack{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:26px;width:min(92vw,460px)}.login-brand-top{display:flex;align-items:center;gap:16px;padding:4px 6px;background:transparent;border:none;box-shadow:none;border-radius:0;color:#fff}.brand-mark{display:inline-flex;width:64px;height:64px;border-radius:16px;overflow:hidden;background:transparent;box-shadow:0 8px 24px #00000080;flex:none}.brand-mark img{width:100%;height:100%;object-fit:cover;display:block}.brand-text{display:flex;flex-direction:column;line-height:1.05;gap:4px}.brand-name{font-size:30px;font-weight:700;letter-spacing:6px;background:linear-gradient(135deg,#fff,#b9e8ff,#ffd58a);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 2px 22px rgba(0,0,0,.5)}.brand-sub{font-size:13.5px;letter-spacing:3px;opacity:.92}.login-card{position:relative;width:100%;background:#ffffffeb;-webkit-backdrop-filter:blur(28px) saturate(170%);backdrop-filter:blur(28px) saturate(170%);border:1px solid rgba(255,255,255,.78);border-radius:22px;padding:38px 36px 30px;box-shadow:0 30px 80px #06182c8c,inset 0 1px #fffffff2}.login-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 22px}.login-card-head h2{margin:0;font-size:20px;font-weight:600;color:#143b5b}.login-card-head .login-settings-btn{margin-left:0}.login-card h2{margin:0 0 22px;font-size:20px;font-weight:600;color:#143b5b}.login-card label{display:block;font-size:13px;color:var(--muted);margin:14px 0 6px}.login-card input{width:100%;padding:12px 14px;border:1px solid rgba(16,40,68,.1);border-radius:11px;background:#ffffffb8;font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s}.login-card input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3492c424}.login-card .btn{margin-top:22px;padding:12px;font-size:15px;border-radius:12px}.login-settings-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:transparent;border:1px solid rgba(16,40,68,.1);border-radius:8px;color:var(--muted);cursor:pointer;margin-left:8px;transition:color .15s,border-color .15s,background .15s}.login-settings-btn:hover{color:var(--primary);border-color:var(--primary);background:#3492c414}.base-link{display:none!important}.brand-stack{display:inline-flex;align-items:center;gap:8px;min-width:0}.brand-stack .brand-mark{width:32px;height:32px;border-radius:9px}.brand-stack .brand-name{font-size:17px;font-weight:700;letter-spacing:3px;background:linear-gradient(135deg,#1c4566,#3492c4,#f0c060);-webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap}.brand-stack .brand-sub{font-size:11px;color:var(--muted);letter-spacing:1.5px;white-space:nowrap;border-left:1px solid rgba(16,40,68,.16);padding-left:8px;margin-left:2px}.sidebar-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:8px 6px 22px;color:#fff;text-align:center}.sidebar-brand .logo-mark.side{box-shadow:0 0 0 1px #ffffff2e,0 10px 26px #0000006b}.sidebar-brand .brand-stack{flex-direction:column;align-items:center;gap:4px}.sidebar-brand .brand-stack .brand-name{font-size:22px;letter-spacing:5px;background:linear-gradient(135deg,#fff,#b9e8ff 60%,#ffd58a);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 1px 14px rgba(0,0,0,.4)}.sidebar-brand .brand-stack .brand-sub{border-left:none;padding-left:0;margin-left:0;font-size:11px;letter-spacing:2px;opacity:.78}.logo-mark{width:96px;height:96px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 12px 30px rgba(0,0,0,.32))}.logo-mark img{width:100%;height:100%;object-fit:contain;display:block}.logo-mark.small{width:34px;height:34px;border-radius:10px;background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 8px #10284424,inset 0 1px #ffffffe6}.logo-mark.small img{width:22px;height:22px}.logo-mark.side{width:58px;height:58px;border-radius:15px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:transparent;box-shadow:0 0 0 1px #ffffff29,0 8px 22px #00000061}.logo-mark.side img{width:100%;height:100%;object-fit:cover;display:block}.logo-mark.top{width:44px;height:44px;border-radius:8px;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;background:transparent;box-shadow:0 2px 6px #10284429}.logo-mark.top img{width:100%;height:100%;object-fit:cover;display:block}.topbar-title{display:flex;align-items:center;gap:10px;min-width:0}.topbar-title .logo-mark.top+span{font-size:18px;font-weight:600;color:var(--text);white-space:nowrap;letter-spacing:.5px}.amt-edit{border:none;background:none;padding:2px 0;margin:0;font-family:inherit;font-size:14px;font-weight:600;color:var(--primary-dark);cursor:pointer;border-bottom:1px dashed rgba(52,146,196,.45);font-variant-numeric:tabular-nums;transition:color .12s}.amt-edit i{font-style:normal;font-size:11px;font-weight:400;opacity:.6;margin-left:2px}.amt-edit:hover{color:var(--primary);border-bottom-color:var(--primary)}.amt-edit:hover i{opacity:1}.app{display:flex;min-height:100vh}.sidebar{width:224px;background:linear-gradient(180deg,#12344ddb,#0d283ce6);-webkit-backdrop-filter:blur(22px) saturate(150%);backdrop-filter:blur(22px) saturate(150%);border-right:1px solid rgba(255,255,255,.1);box-shadow:inset 1px 0 #ffffff0f,6px 0 24px #1028441a;color:#c7d7e4;display:flex;flex-direction:column;padding:20px 14px;position:sticky;top:0;height:100vh}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:11px;color:#c7d7e4;font-size:14px;margin-bottom:6px;border:none;background:transparent;text-align:left;width:100%;transition:background .15s,color .15s,box-shadow .15s}.nav-item:hover{background:#ffffff1a;color:#fff}.nav-item.active{background:linear-gradient(135deg,#4aa4d6f2,#2a78a0f2);color:#fff;box-shadow:0 6px 18px #2a78a057,inset 0 1px #ffffff47}@media (min-width: 769px){.sidebar .nav-item>svg:first-child,.sidebar .nav-item>span:first-child{flex:none;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;font-size:15px;line-height:1;transition:background .15s,color .15s}.sidebar .nav-item:nth-child(2)>svg:first-child,.sidebar .nav-item:nth-child(2)>span:first-child{background:#56b4e433;color:#86d2f5}.sidebar .nav-item:nth-child(3)>svg:first-child,.sidebar .nav-item:nth-child(3)>span:first-child{background:#72cd932e;color:#93e5b1}.sidebar .nav-item:nth-child(4)>svg:first-child,.sidebar .nav-item:nth-child(4)>span:first-child{background:#f0b0622e;color:#ffd49c}.sidebar .nav-item:nth-child(5)>svg:first-child,.sidebar .nav-item:nth-child(5)>span:first-child{background:#b294f02e;color:#d2bcff}.sidebar .nav-item.active>svg:first-child,.sidebar .nav-item.active>span:first-child{background:#ffffff3d;color:#fff}.sidebar .nav-item.active:hover{color:#fff}}.sidebar-foot{margin-top:auto;padding:12px 8px 0;border-top:1px solid rgba(255,255,255,.14)}.sidebar-foot .who{font-size:13px;color:#e7eff5;margin-bottom:8px}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:60px;background:#ffffffa8;-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);border-bottom:1px solid rgba(255,255,255,.7);box-shadow:0 1px #1028440a,0 6px 20px #1028440d;display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:10}.topbar-title{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px}.topbar-user{display:flex;align-items:center;gap:14px;color:var(--muted)}.dept-chip{background:#3492c424;color:var(--primary-dark);padding:4px 12px;border-radius:999px;font-size:13px;border:1px solid rgba(52,146,196,.18)}.container{padding:24px;max-width:1100px;width:100%;margin:0 auto}.page-title{font-size:21px;font-weight:600;margin:0 0 4px;letter-spacing:.3px;overflow-wrap:anywhere;min-width:0}.page-sub{color:var(--muted);margin:0 0 18px;font-size:13px}.section-title{font-size:15px;font-weight:600;margin:20px 0 12px}.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stat-card{background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);backdrop-filter:blur(var(--glass-blur)) saturate(160%);border:1px solid var(--glass-line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--glass-shadow),var(--glass-inner);transition:transform .18s ease,box-shadow .18s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--glass-shadow-lg),var(--glass-inner)}.stat-card span{display:block;color:var(--muted);font-size:13px}.stat-card b{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}@media (max-width: 820px){.stat-cards{grid-template-columns:repeat(2,1fr)}}.check-row{display:flex;align-items:center;gap:8px;margin:8px 0;font-size:14px;cursor:pointer}.check-row input[type=checkbox]{width:15px;height:15px;cursor:pointer}.watermark{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;pointer-events:none;background-repeat:repeat;background-size:300px 180px}body.no-copy{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}body.no-copy input,body.no-copy textarea{-webkit-user-select:text;user-select:text}.batch-notice{display:flex;align-items:flex-start;gap:7px;background:#3492c417;border:1px solid rgba(52,146,196,.28);border-radius:10px;padding:7px 10px;margin:2px 0 10px;font-size:12.5px;line-height:1.55;color:#175d82;overflow-wrap:anywhere}.batch-notice>span{flex:none;font-size:11px;font-weight:700;line-height:1.8;color:#1c6ea0;background:#3492c429;border-radius:6px;padding:0 7px}button.batch-notice{width:100%;text-align:left;cursor:pointer;font:inherit;letter-spacing:0}button.batch-notice:hover{background:#3492c426;border-color:#3492c48c}button.batch-notice i{font-style:normal;margin-left:auto;flex:none;font-size:11px;color:#3492c4;opacity:.75}.privacy-notice{display:flex;align-items:center;justify-content:center;gap:7px;padding:6px 16px;-webkit-text-size-adjust:100%;text-size-adjust:100%;background:#ffffff80;-webkit-backdrop-filter:blur(14px) saturate(150%);backdrop-filter:blur(14px) saturate(150%);border-bottom:1px solid rgba(220,38,38,.12);color:#b42318;font-size:12px;font-weight:600;line-height:1.5;letter-spacing:.3px}.privacy-notice b{color:inherit;font-weight:inherit;font-size:12px}.privacy-sep{opacity:.35;margin:0 1px}.privacy-notice-icon{flex:none;width:15px;height:15px;border-radius:50%;background:#dc262624;color:#b42318;font-size:10px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center}.msel{position:relative}.msel-btn{display:inline-flex;align-items:center;gap:6px;min-height:34px;cursor:pointer}.msel-active{border-color:#3492c480;color:var(--primary-dark)}.msel-text{max-width:9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msel-caret{font-size:10px;line-height:1;opacity:.55;transition:transform .18s ease}.msel-caret-up{transform:rotate(180deg)}.msel-panel{position:absolute;top:calc(100% + 6px);left:0;min-width:148px;z-index:70;padding:6px;background:var(--glass-strong);-webkit-backdrop-filter:blur(22px) saturate(170%);backdrop-filter:blur(22px) saturate(170%);border:1px solid rgba(255,255,255,.72);border-radius:14px;box-shadow:0 18px 44px #10284433,inset 0 1px #ffffffe6}.msel-option{display:flex;align-items:center;gap:8px;width:100%;padding:9px 10px;border:none;border-radius:10px;background:transparent;font-size:13.5px;font-family:inherit;color:var(--text);text-align:left;cursor:pointer;transition:background .12s}.msel-option:hover{background:#1028440d}.msel-option-on{color:var(--primary-dark);font-weight:600}.msel-check{flex:none;width:17px;height:17px;border-radius:5px;border:1.5px solid rgba(16,40,68,.22);font-size:11px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;color:#fff}.msel-check-on{background:linear-gradient(135deg,#4aa4d6,#2a78a0);border-color:transparent}.msel-foot{display:flex;gap:6px;padding:6px 4px 2px;margin-top:4px;border-top:1px solid rgba(16,40,68,.08)}.msel-mini{flex:1;padding:6px 0;border:none;border-radius:8px;background:#1028440d;font-size:12px;font-family:inherit;color:var(--muted);cursor:pointer;transition:all .12s}.msel-mini:hover{background:#3492c424;color:var(--primary-dark)}.print-area{display:none}@media print{@page{size:A4 portrait;margin:0}body{background:#fff!important}body:before,.login-wrap:before,.login-wrap:after{display:none!important}*{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important}.login-wrap,.splash,.watermark,.privacy-notice{display:none!important}.app{display:block!important;min-height:0!important}.app *:not(:has(.print-area)):not(.print-area):not(.print-area *){display:none!important}.container{padding:0!important;margin:0!important;max-width:none!important}.print-area{display:block!important;font-family:SimSun,宋体,Microsoft YaHei,sans-serif;color:#000}.print-page{page-break-after:always;break-after:page;padding:16mm 14mm}.print-page:last-child{page-break-after:auto;break-after:auto}.print-area h1{text-align:center;font-size:20px;font-weight:700;margin:0 0 10px;letter-spacing:3px}.print-area .p-batch{font-size:12px;margin-bottom:5px;padding:0 2px}.print-area .p-batch b{font-weight:700}.print-area .p-meta{display:flex;justify-content:space-between;font-size:12px;margin-bottom:8px;padding:0 2px}.print-area .p-meta b{font-weight:700}.print-area .p-table{width:100%;border-collapse:collapse;table-layout:fixed}.print-area .p-table thead{display:table-header-group}.print-area .p-table th,.print-area .p-table td{border:1px solid #000;padding:5px 4px;font-size:11px;text-align:center;vertical-align:middle;word-break:break-all}.print-area .p-table th{font-weight:700;background:#f2f2f2!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-area .p-table td.l{text-align:left}.print-area .p-table td.num{text-align:right;font-variant-numeric:tabular-nums}.print-area .p-table tr.p-sum td{font-weight:700}.print-area .p-note{font-size:11px;color:#333;margin-bottom:6px}.print-area .p-foot{display:flex;justify-content:flex-end;margin-top:46px;font-size:12px;padding:0 6px}}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.card{background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);backdrop-filter:blur(var(--glass-blur)) saturate(160%);border:1px solid var(--glass-line);border-radius:var(--radius);padding:18px;box-shadow:var(--glass-shadow),var(--glass-inner);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.card:hover{transform:translateY(-2px);border-color:#ffffffeb;box-shadow:var(--glass-shadow-lg),var(--glass-inner)}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.card-head-main{min-width:0;flex:1}.card-title{font-size:15px;font-weight:600}.card-sub{color:var(--muted);font-size:13px;margin-top:2px}.card-sub .badge{white-space:nowrap}.card-sub .badge+span,.card-sub .badge+.badge{margin-left:0}.stat-row{display:flex;gap:10px;margin-bottom:16px}.stat{flex:1;background:#1028440b;border:1px solid rgba(255,255,255,.5);border-radius:12px;padding:10px 12px}.stat-label{font-size:12px;color:var(--muted)}.stat-value{font-size:16px;font-weight:600;margin-top:2px}.stat-value.ok{color:#157f3c}.stat-value.warn{color:#b4690a}.table{width:100%;border-collapse:collapse;background:transparent;border-radius:var(--radius);overflow:hidden}.table th,.table td{padding:11px 13px;text-align:left;border-bottom:1px solid var(--glass-line-dim);font-size:14px}.table th{background:#1028440a;color:var(--muted);font-weight:500;font-size:13px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.table td input{width:100%;padding:7px 9px;border:1px solid rgba(16,40,68,.1);border-radius:9px;background:#ffffffb8;outline:none;transition:border-color .15s,box-shadow .15s}.table td input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3492c424}.table .num{text-align:right;font-variant-numeric:tabular-nums}.detail-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:8px 0 2px}.detail-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.detail-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}.summary-bar{display:flex;gap:14px;margin:16px 0}.sum-item{flex:1;background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);backdrop-filter:blur(var(--glass-blur)) saturate(160%);border:1px solid var(--glass-line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--glass-shadow),var(--glass-inner)}.sum-item span{display:block;color:var(--muted);font-size:13px}.sum-item b{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}.sum-item.sum-ok b{color:#157f3c}.sum-item.sum-warn b{color:#b4690a}.editor{background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);backdrop-filter:blur(var(--glass-blur)) saturate(160%);border:1px solid var(--glass-line);border-radius:var(--radius);padding:8px 16px 16px;box-shadow:var(--glass-shadow),var(--glass-inner)}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.editor .table th:nth-child(3),.editor .table td:nth-child(3){width:170px}.hint{color:#b4690a;font-size:13px;text-align:right;margin-top:8px}.empty{color:var(--muted);text-align:center;padding:60px 0;background:#ffffff73;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px dashed rgba(16,40,68,.12);border-radius:var(--radius)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f1e2e57;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--glass-strong);-webkit-backdrop-filter:blur(26px) saturate(170%);backdrop-filter:blur(26px) saturate(170%);border:1px solid rgba(255,255,255,.72);border-radius:18px;width:520px;max-width:92vw;max-height:86vh;overflow:auto;padding:24px;box-shadow:0 30px 70px #06182c47,inset 0 1px #ffffffe6}.modal h3{margin:0 0 18px;font-size:17px;font-weight:600}.form-field{margin-bottom:14px}.form-field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}.form-field input,.form-field select{width:100%;padding:10px 12px;border:1px solid rgba(16,40,68,.1);border-radius:10px;background:#ffffffb8;outline:none;transition:border-color .15s,box-shadow .15s}.form-field input:focus,.form-field select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3492c424}.modal-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.pwd-guard{display:flex;gap:9px;align-items:flex-start;background:#b4690a14;border:1px solid rgba(180,105,10,.22);border-radius:10px;padding:10px 12px;margin-bottom:16px;font-size:13px;line-height:1.55;color:#8a5108}.pwd-guard svg{flex:none;margin-top:2px}.pwd-guard.is-danger{background:#be2d2d12;border-color:#be2d2d3d;color:#a32b2b}.dept-block{background:var(--glass-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-line);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:0 2px 10px #1028440d,var(--glass-inner)}.dept-block .head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dept-block .head b{font-size:15px}.dept-nums{display:flex;gap:16px;color:var(--muted);font-size:13px;margin-bottom:8px}.dept-nums b{color:var(--text)}.dpage .dept-block{background:#ffffffb8;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 1px 3px #1028440d}.dpage-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0 10px}.dpage-bar .sel-divider{height:20px;background:#1028441f;flex:none}.dpage-dept-acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.dpage-stamp{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.detail-remark{font-size:13px;color:var(--muted);overflow-wrap:anywhere}.sub-tabs{display:flex;gap:6px;border-bottom:1px solid rgba(16,40,68,.08);margin-bottom:16px}.sub-tab{background:none;border:none;cursor:pointer;padding:9px 16px;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;font-family:inherit;transition:color .15s}.sub-tab:hover{color:var(--text)}.sub-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.bulk-bar{display:flex;align-items:center;gap:10px}.bulk-bar-actions{display:flex;gap:8px;flex-wrap:wrap}.filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--glass-strong);-webkit-backdrop-filter:blur(14px) saturate(150%);backdrop-filter:blur(14px) saturate(150%);border:1px solid var(--glass-line);border-radius:14px;padding:10px 12px;margin-bottom:12px;box-shadow:0 2px 12px #1028440d,var(--glass-inner);position:sticky;top:var(--topbar-h, 60px);z-index:5}.filter-label{font-size:13px;color:var(--muted)}.filter-search{margin-left:auto;padding:7px 12px;border:1px solid rgba(16,40,68,.1);border-radius:10px;background:#ffffffb8;outline:none;width:190px;font-family:inherit;transition:border-color .15s,box-shadow .15s}.filter-search:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3492c424}@media (min-width: 769px){.filter-row{gap:8px;padding-top:8px;padding-bottom:8px}.filter-row .sel-input,.filter-row .filter-search,.filter-row .msel-btn{height:34px;padding-top:0;padding-bottom:0;box-sizing:border-box}.filter-row .filter-search{width:210px}.filter-row .msel{min-width:110px}.filter-row .msel-btn{min-height:0}.filter-row .btn-sm{min-height:34px;padding-top:7px;padding-bottom:7px}.filter-row .filter-label{line-height:1.2}.sel-divider{height:20px}}.chip{background:#fff9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--muted);border:1px solid var(--glass-line-dim);border-radius:999px;padding:5px 12px;font-size:13px;cursor:pointer;font-family:inherit;transition:all .15s}.chip:hover{border-color:var(--primary);color:var(--primary)}.chip-on{background:linear-gradient(135deg,#4aa4d6,#2a78a0);border-color:transparent;color:#fff;box-shadow:0 4px 12px #2a78a047}.chip-on-warn{background:linear-gradient(135deg,#e2921a,#c06705);border-color:transparent;color:#fff;box-shadow:0 4px 12px #c0670542}.sel-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#3492c41f;-webkit-backdrop-filter:blur(14px) saturate(150%);backdrop-filter:blur(14px) saturate(150%);border:1px solid rgba(52,146,196,.2);color:var(--primary-dark);padding:9px 12px;border-radius:14px;margin-bottom:12px;font-size:13px}.sel-bar b{font-weight:600}.sel-divider{width:1px;height:18px;background:#3492c440;margin:0 2px}.sel-input,.sel-bar select{padding:6px 10px;border:1px solid rgba(16,40,68,.1);border-radius:10px;outline:none;font-family:inherit;font-size:13px;background:#ffffffc7;color:var(--text)}.sel-input:focus{border-color:var(--primary)}.sel-bar button:disabled{opacity:.5;cursor:not-allowed}.panel{background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);backdrop-filter:blur(var(--glass-blur)) saturate(160%);border:1px solid var(--glass-line);border-radius:var(--radius);padding:16px;box-shadow:var(--glass-shadow),var(--glass-inner)}.bulk-text{width:100%;border:1px solid rgba(16,40,68,.1);border-radius:10px;padding:8px;background:#ffffffb8;outline:none;font-family:inherit;resize:vertical;transition:border-color .15s,box-shadow .15s}.bulk-text:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3492c424}.table-wrap{background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);backdrop-filter:blur(var(--glass-blur)) saturate(160%);border:1px solid var(--glass-line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--glass-shadow),var(--glass-inner)}.table-wrap .table{margin:0}.ps-total{color:var(--primary-dark)}.ps-amt{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600;color:var(--primary-dark)}.ps-amt-sub{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.ps-dim{color:var(--muted)}.ps-name{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.ps-tag{font-style:normal;font-size:11px;line-height:1.6;flex:none;padding:1px 7px;border-radius:999px;white-space:nowrap;background:#3492c424;color:var(--primary-dark)}.ps-tag.cross{background:var(--primary);color:#fff}.ps-tag.warn{background:#d9770629;color:#a85c06}.ps-row-open>td{background:#3492c40f}.ps-src-row>td{padding:0!important;background:#3492c408}.ps-src{border-left:3px solid rgba(52,146,196,.5);padding:12px 14px 14px}.ps-src-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--muted);margin-bottom:8px}.ps-src-head b{font-size:15px;color:var(--primary-dark);font-variant-numeric:tabular-nums}.ps-src-table{border:1px solid rgba(16,40,68,.06);border-radius:10px}.ps-src-table th,.ps-src-table td{padding:7px 10px;font-size:12.5px}.ps-caret{display:inline-block;margin-left:4px;transition:transform .18s ease}.ps-caret.open{transform:rotate(90deg)}.ps-note{font-size:12px;line-height:1.75;color:var(--muted);background:#3492c412;border:1px solid rgba(52,146,196,.16);border-radius:10px;padding:8px 12px;margin-bottom:12px}.ps-wrap{overflow-x:auto}.ps-wrap .table{min-width:760px}@media (max-width: 820px){.login-wrap{grid-template-columns:1fr;padding:24px}.login-brand{padding:0;text-align:center}.login-brand h1{font-size:24px}.login-card{width:100%}}.topbar-logout{display:inline-flex}@media (max-width: 768px){:root{--glass-blur: 12px}.app{flex-direction:column;min-height:100vh}.main{min-height:0}.container{padding:14px 12px calc(var(--tabbar-h) + var(--safe-bottom) + 18px);max-width:none}.topbar{height:auto;min-height:56px;padding:14px;gap:10px}.topbar-title{font-size:16px}.topbar-user{gap:8px;font-size:12.5px}.topbar-user>span:not(.dept-chip){display:none}.sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;width:100%;height:auto;flex-direction:row;align-items:stretch;padding:6px 4px calc(var(--safe-bottom) + 4px);background:#ffffffd1;-webkit-backdrop-filter:blur(20px) saturate(170%);backdrop-filter:blur(20px) saturate(170%);border-top:1px solid rgba(255,255,255,.85);border-right:none;box-shadow:0 -4px 20px #1028441a;z-index:60}.sidebar-brand,.sidebar-foot{display:none}.nav-item{flex:1;flex-direction:column;justify-content:center;align-items:center;gap:2px;margin:0;padding:5px 2px;min-height:46px;border-radius:12px;color:var(--muted);font-size:11px}.nav-item>svg:first-child,.nav-item>span:first-child{width:22px;height:22px}.nav-item.active{background:#3492c41f;color:var(--primary);font-weight:600;box-shadow:none}.nav-item:active{background:#3492c42e}.stat-cards{grid-template-columns:repeat(2,1fr);gap:10px}.stat-card{padding:12px 13px}.stat-card:hover{transform:none}.stat-card b{font-size:19px}.card-grid{grid-template-columns:1fr}.card:hover{transform:none}.page-title{font-size:18px}.page-sub{font-size:12.5px;margin-bottom:14px}.btn{min-height:44px;padding:11px 16px}.btn-sm{min-height:40px;padding:8px 12px;font-size:13px}.btn-block{min-height:46px}.chip{min-height:40px;display:inline-flex;align-items:center;padding:8px 14px}.table .btn-sm{min-height:40px}[style*="justify-content: space-between"]{flex-direction:column!important;align-items:stretch!important;gap:12px}[style*="justify-content: space-between"]>[style*="display: flex"]{flex-wrap:wrap;justify-content:flex-start!important}[style*="justify-content: space-between"]>[style*="display: flex"]>*{flex:1;min-width:0}.section-title{word-break:keep-all}input,select,textarea,.bulk-text{font-size:16px!important}.filter-row{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;padding:10px}.filter-row .form-field{width:auto;flex:1 1 140px;min-width:0}.filter-row>*{flex:0 0 auto}.filter-row>input,.filter-row>select,.filter-row>.sel-input,.filter-row>.msel{flex:1 1 130px;min-width:0}.filter-row>input[type=text],.filter-row>input.filter-search{flex:1 1 160px;min-width:0}.filter-search{width:100%;margin-left:0;min-height:40px}.filter-label{display:inline-flex;align-items:center;padding:6px 10px;font-size:12px;background:#3492c41a;color:var(--primary-dark);border-radius:8px;white-space:nowrap}.bulk-bar{flex-direction:column;align-items:stretch}.bulk-bar-actions>*{flex:1}.msel{flex:1 1 130px;min-width:0}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px}.table-wrap .table{min-width:640px;font-size:13px}.table th,.table td{padding:9px 10px;white-space:nowrap}.editor{overflow-x:auto;-webkit-overflow-scrolling:touch}.editor .table{font-size:13px;min-width:540px}.editor .table thead tr,.editor .table tbody tr{display:flex;align-items:stretch;width:100%}.editor .table th,.editor .table td{flex:none;display:flex;align-items:center;padding:8px 9px;white-space:nowrap}.editor .table th:nth-child(1),.editor .table td:nth-child(1){order:1;width:46px!important;justify-content:center}.editor .table th:nth-child(2),.editor .table td:nth-child(2){order:2;width:104px!important;justify-content:flex-start}.editor .table th:nth-child(3),.editor .table td:nth-child(3){order:3;width:78px!important;justify-content:flex-start}.editor .table th:nth-child(4),.editor .table td:nth-child(4){order:4;width:120px!important;justify-content:flex-end}.editor .table th:nth-child(5),.editor .table td:nth-child(5){order:5;flex:1 1 150px;justify-content:flex-start}.editor .table th:nth-child(6),.editor .table td:nth-child(6){order:6;width:64px!important;justify-content:center}.editor .table td input{width:100%;min-height:40px;padding:6px 8px}.modal-overlay{padding:0;align-items:flex-end}.modal{width:100%;max-width:none;max-height:90vh;border-radius:18px 18px 0 0;padding:18px 16px calc(var(--safe-bottom) + 18px)}.modal-foot{flex-wrap:wrap;gap:10px}.modal-foot .btn{flex:1;min-width:120px}.login-wrap{align-items:center;padding-top:0;padding-bottom:calc(var(--safe-bottom) + 40px)}.login-stack{gap:22px;width:min(94vw,380px);padding-top:4px}.login-brand-top{padding:0;gap:12px}.brand-mark{width:54px;height:54px;border-radius:14px}.brand-name{font-size:24px;letter-spacing:5px}.brand-sub{font-size:11.5px;letter-spacing:2px}.login-card{padding:30px 22px 22px;border-radius:18px}.login-card h2{font-size:18px;margin-bottom:16px}.login-card .btn{min-height:46px;font-size:15.5px}.login-logo-bg{width:120vw;opacity:.3;top:auto;bottom:-22vw;left:50%;transform:translate(-50%);-webkit-mask-image:radial-gradient(ellipse 100% 70% at 50% 30%,#000 35%,transparent 85%);mask-image:radial-gradient(ellipse 100% 70% at 50% 30%,#000 35%,transparent 85%)}.summary-bar{gap:8px;margin:12px 0}.sum-item{min-width:0;container-type:inline-size;padding:10px 8px;text-align:center}.sum-item span{font-size:11.5px}.sum-item b{font-size:15px;white-space:nowrap;font-variant-numeric:tabular-nums}@supports (width: 1cqi){.sum-item b{font-size:min(15px,15cqi)}}.stat-row{gap:6px}.stat{min-width:0;container-type:inline-size}.stat-value{white-space:nowrap;font-size:14.5px;font-variant-numeric:tabular-nums}@supports (width: 1cqi){.stat-value{font-size:min(14.5px,15cqi)}}.privacy-notice{padding:7px 14px;font-size:12px}.sub-tab{padding:10px 14px;font-size:14px;min-height:44px;display:inline-flex;align-items:center}.msel-btn{font-size:16px;min-height:44px}.msel-panel{left:0;right:auto;min-width:180px}.msel-option{padding:12px;font-size:15px;min-height:44px}.msel-check{width:20px;height:20px;font-size:12px}.msel-mini{padding:9px 0;font-size:13px;min-height:40px}.dpage-bar{gap:8px;margin:12px 0 10px}.dpage-bar>.btn{flex:1 1 45%;min-width:0}.dpage-bar .sel-divider{display:none}.dpage-stamp{margin-left:0}.dpage-dept-acts{justify-content:flex-start}}.ctl-block{background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);backdrop-filter:blur(var(--glass-blur)) saturate(160%);border:1px solid var(--glass-line);border-radius:var(--radius);padding:2px 16px 14px;box-shadow:var(--glass-shadow),var(--glass-inner);margin-bottom:14px}.ctl-block .actions{margin-top:12px}.tool-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}.tool-row+.tool-row{margin-top:8px}.tool-label{font-size:12px;color:var(--primary-dark);padding:4px 9px;background:#3492c41a;border-radius:8px;white-space:nowrap}.avg-hint{font-size:12.5px;color:var(--muted)}.plan-tabs{display:flex;gap:8px;margin-bottom:14px}.plan-tab{flex:1;min-height:52px;padding:9px 12px;border-radius:12px;border:1px solid var(--border);background:#fff9;font:inherit;font-size:14px;color:var(--text);cursor:pointer;text-align:center;transition:border-color .15s,background .15s}.plan-tab:hover{border-color:var(--primary)}.plan-tab.on{border-color:var(--primary);background:#3492c41a;color:var(--primary-dark);font-weight:600}.plan-tab small{display:block;font-weight:400;font-size:11.5px;color:var(--muted);margin-top:3px}.plan-saved{display:flex;align-items:flex-start;gap:8px;margin:-4px 0 14px;padding:9px 11px;border-radius:10px;border:1px dashed var(--border);background:#3492c40d;font-size:12.5px;line-height:1.5;color:var(--muted)}.plan-saved-label{flex:none;padding:1px 7px;border-radius:6px;font-size:11.5px;background:#3492c424;color:var(--primary-dark);white-space:nowrap}.plan-saved-text{min-width:0}.plan-saved.is-saved{border-style:solid;border-color:#3492c473;background:#3492c41a;color:var(--text)}.plan-saved.is-saved .plan-saved-label{background:var(--primary);color:#fff}.plan-box{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:12px}.plan-box h4{margin:0 0 10px;font-size:13.5px;font-weight:600;color:var(--text)}.plan-cls-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.plan-cls-row input{padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:#fff;outline:none;min-width:0}.plan-cls-row input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3492c424}.plan-cls-row select{padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:#fff;font:inherit;outline:none}.plan-cls-name{width:108px}.plan-cls-off{width:118px}.plan-cls-row .tag{font-size:12px;color:var(--muted);white-space:nowrap}.plan-opt{display:flex;align-items:flex-start;gap:8px;padding:6px 0;cursor:pointer;font-size:13.5px;line-height:1.5}.plan-opt input{margin-top:3px}.plan-x{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-top:4px}.plan-x b{font-size:21px;color:var(--primary-dark);font-variant-numeric:tabular-nums}.plan-people{max-height:34vh;overflow:auto;border:1px solid var(--border);border-radius:12px;background:#fff;margin-top:10px}.plan-person{display:flex;align-items:center;gap:8px;padding:7px 10px;border-bottom:1px solid var(--border)}.plan-person:last-child{border-bottom:none}.plan-person .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-person .amt{font-size:13.5px;font-variant-numeric:tabular-nums;color:var(--text)}.plan-person select{padding:8px 9px;border:1px solid var(--border);border-radius:9px;background:#fff;font:inherit;font-size:13.5px;max-width:132px;outline:none}.plan-person select:focus{border-color:var(--primary)}@media (max-width: 768px){.tool-row{gap:6px}.tool-row>.btn{flex:1 1 44%;min-width:0}.tool-label,.avg-hint{flex:1 1 100%;text-align:center}.ctl-block{padding:2px 12px 12px}.ctl-block .actions{flex-wrap:wrap}.ctl-block .actions>.btn{flex:1 1 44%;min-height:44px}.ctl-block .hint{text-align:center}.plan-tabs,.plan-cls-row{gap:6px}.plan-cls-name{width:84px}.plan-cls-off{width:96px}.plan-people{max-height:40vh}.plan-person{flex-wrap:wrap;padding:9px 10px}.plan-person .nm{flex:1 1 100%}.plan-person select{flex:1;max-width:none;min-height:40px}.plan-tab{min-height:56px;padding:8px 6px}.plan-tab small{font-size:10.5px}.plan-modal .modal-foot .btn-primary{flex:1 1 100%;min-width:0;min-height:44px}.plan-modal .modal-foot .btn-ghost,.plan-modal .modal-foot .btn-secondary{flex:1 1 44%;min-width:0;min-height:44px}.plan-saved{font-size:12px}}@media (max-width: 360px){.stat-cards{grid-template-columns:1fr}.nav-item{font-size:10px}.nav-item>svg:first-child,.nav-item>span:first-child{width:20px;height:20px}}@media (max-width: 768px){.logo-mark.top{width:34px;height:34px;border-radius:7px}.topbar-title{gap:8px}.topbar-title .logo-mark.top+span{font-size:15px;letter-spacing:0;font-weight:600}.topbar-title .brand-stack .brand-name{font-size:17px;letter-spacing:3px}.topbar-title .brand-stack .brand-sub{display:none}.topbar-title .brand-stack .brand-mark{width:28px;height:28px}}.dept-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin:14px 0 16px}.dept-card{position:relative;border-radius:14px;padding:12px 13px 11px;cursor:pointer;border:1.5px solid var(--border);background:#ffffffb8;transition:border-color .15s,box-shadow .15s,transform .15s;min-height:104px;outline:none}.dept-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #12344d1f}.dept-card:focus-visible{border-color:var(--primary)}.dept-card.on{border-color:var(--primary);box-shadow:0 0 0 3px #3492c42e}.dept-card.st-submitted{background:linear-gradient(155deg,#ecfbf3,#d2f3e3 55%,#c4edd9);border-color:#5ecf9e;box-shadow:inset 0 1.5px #ffffffd9,0 2px 10px #16a34a1a}.dept-card.st-submitted .dc-name{color:#0d6b3c}.dept-card.st-submitted .dc-amt{color:#0a5c33}.dept-card.st-draft{background:linear-gradient(155deg,#fffaf0,#fdf0d3 55%,#fbe7bd);border-color:#ecc26f;box-shadow:inset 0 1.5px #ffffffe6,0 2px 10px #d977061a}.dept-card.st-draft .dc-name{color:#92580a}.dept-card.st-draft .dc-amt{color:#7c4a08}.dept-card.st-none{background:#ffffffb3}.dc-print{position:absolute;top:8px;right:8px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:9px;border:1px solid rgba(18,52,77,.14);background:#ffffffeb;color:var(--primary-dark);cursor:pointer;padding:0;opacity:0;transition:opacity .15s,box-shadow .15s}.dept-card:hover .dc-print,.dept-card:focus-within .dc-print{opacity:1}.dc-print:hover{background:#fff;box-shadow:0 2px 8px #12344d40}@media (hover: none){.dc-print{opacity:.8}}.dc-name{font-weight:700;font-size:14px;line-height:1.35;margin:4px 32px 2px 0;min-height:30px;display:flex;align-items:center;word-break:break-all}.dc-amt{font-size:17px;font-weight:800;color:#12344d;margin:6px 0 2px;font-variant-numeric:tabular-nums}.dc-amt-input{width:100%;margin:6px 0 2px;padding:6px 8px;border:1.5px solid var(--primary);border-radius:8px;font-size:15px;font-weight:700;outline:none;font-family:inherit;box-sizing:border-box}.dc-sub{font-size:12px;color:#5d6b78;margin-top:2px}.dc-flag{margin-top:6px;font-size:12px;font-weight:700}.dc-flag.ok{color:var(--success)}.dc-flag.no{color:var(--danger)}.wall-edit-bar{position:sticky;bottom:12px;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;border-radius:12px;background:#12344ded;color:#eaf4fb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 26px #12344d59;font-size:13px}.dept-detail-open{margin-top:4px}@media (max-width: 768px){.dept-wall{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px}.dc-name{font-size:13px}.wall-edit-bar{bottom:8px}}.login-blob{position:absolute;border-radius:50%;pointer-events:none;z-index:0;filter:blur(2px)}.login-blob.b1{width:34vmax;height:34vmax;left:6%;top:12%;background:radial-gradient(closest-side,#ffd58a33,#ffd58a00);animation:blob-drift-1 16s ease-in-out infinite alternate}.login-blob.b2{width:28vmax;height:28vmax;right:8%;top:46%;background:radial-gradient(closest-side,#78c8ff38,#78c8ff00);animation:blob-drift-2 19s ease-in-out infinite alternate}.login-blob.b3{width:20vmax;height:20vmax;left:38%;bottom:6%;background:radial-gradient(closest-side,#9a8eff2e,#9a8eff00);animation:blob-drift-3 22s ease-in-out infinite alternate}@keyframes blob-drift-1{0%{transform:translate(0) scale(1)}to{transform:translate(6vmax,4vmax) scale(1.15)}}@keyframes blob-drift-2{0%{transform:translate(0) scale(1.1)}to{transform:translate(-5vmax,-6vmax) scale(.95)}}@keyframes blob-drift-3{0%{transform:translate(0) scale(.95)}to{transform:translate(4vmax,-5vmax) scale(1.12)}}.card{position:relative}.todo-dot{position:absolute;top:10px;right:10px;width:10px;height:10px;border-radius:50%;background:var(--danger, #e5534b);box-shadow:0 0 0 3px #e5534b2e;animation:todo-dot-pulse 1.8s ease-in-out infinite;pointer-events:none}@keyframes todo-dot-pulse{0%,to{box-shadow:0 0 0 3px #e5534b2e}50%{box-shadow:0 0 0 6px #e5534b0f}}.stat-cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stat-card-link{cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.stat-card-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.stat-card-link .stat-go{position:absolute;right:12px;bottom:10px;font-size:11px;font-style:normal;color:var(--primary);opacity:0;transition:opacity .15s}.stat-card-link:hover .stat-go,.stat-card-link.on .stat-go{opacity:1}.stat-card-link.on{border-color:var(--primary);box-shadow:0 0 0 3px #3492c429,var(--glass-shadow),var(--glass-inner)}.print-preview-list{max-height:300px;overflow:auto;border:1px solid var(--border);border-radius:10px;margin-bottom:6px}.pp-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--border);font-size:13.5px}.pp-item:last-child{border-bottom:none}.near-list{max-height:220px;overflow:auto;border:1px solid var(--border);border-radius:10px;background:#3492c40a}.near-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border);font-size:13.5px;font-variant-numeric:tabular-nums}.near-item:last-child{border-bottom:none}.near-vs{color:var(--muted)}.near-diff{margin-left:auto;color:var(--warn);font-weight:600}.skel{position:relative;overflow:hidden;background:#10284412;border-radius:8px}.skel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translate(-100%);animation:skel-shimmer 1.4s ease-in-out infinite}@keyframes skel-shimmer{to{transform:translate(100%)}}.skel-line{height:14px;margin:7px 0}.pring{display:inline-flex;flex:none;align-self:flex-start}.pbar{height:6px;border-radius:99px;background:#10284414;overflow:hidden;margin:-4px 0 12px}.pbar>i{display:block;height:100%;border-radius:99px;background:var(--primary);transition:width .45s ease}.pbar>i.ok{background:var(--success)}.empty-art{display:flex;flex-direction:column;align-items:center;gap:8px;padding:36px 0;color:var(--muted)}.empty-art svg{opacity:.42}.empty-hint{font-size:12.5px;opacity:.85}.topbar-date{font-size:12.5px;color:var(--muted);margin-left:12px;white-space:nowrap}@media (max-width: 900px){.topbar-date{display:none}}
