:root{--bg:#f5f7f8;--card:#fff;--ink:#1b2c2a;--muted:#7b8986;--line:#e5ebe8;--brand:#0b6652;--soft:#edf6f1;--danger:#bd4545}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;color:var(--ink);font:14px/1.6 "Segoe UI","Microsoft YaHei",sans-serif;background:var(--bg)}button,input,textarea{font:inherit}button,a,input,textarea{outline-offset:4px}button{cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 16px;border-radius:8px;transition:background .15s}button:hover{background:#f1f5f3}button:disabled{opacity:.5;cursor:wait}button.primary{background:var(--brand);color:white;border-color:var(--brand)}button.primary:hover{background:#084f40}button.danger{color:var(--danger)}button.subtle{border:0;background:transparent;color:var(--muted);padding:6px 9px}input,textarea{width:100%;border:1px solid #dce4df;border-radius:8px;padding:11px 13px;background:#fff;color:var(--ink)}input:focus,textarea:focus{border-color:var(--brand);outline:2px solid #cce4da}label{display:block;margin:17px 0 7px;font-size:13px;font-weight:600}.muted{color:var(--muted)}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;color:inherit;font-size:20px;letter-spacing:-.4px;font-weight:600}.brand img{width:39px;height:39px}.brand b{font-weight:500;font-size:16px;margin-left:3px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:600;color:var(--brand)}h1,h2,h3,p{margin-top:0}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1.06fr 1fr}.intro{background:#e8f0eb;position:relative;padding:46px 8%;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.intro:after{content:"P";position:absolute;font-weight:800;font-size:580px;line-height:1;right:-85px;bottom:-220px;color:#d5e5db;transform:rotate(-14deg);pointer-events:none}.intro-copy,.intro-bottom{position:relative;z-index:1}.intro-copy{margin:80px 0 100px}.intro h1{font-size:43px;line-height:1.5;letter-spacing:-1px;margin:20px 0}.intro-copy p{font-size:15px;line-height:2;color:#627a70}.steps{display:flex;align-items:center;gap:14px;font-size:12px;color:#45675a;margin-top:42px}.steps i{width:22px;height:1px;background:#acc8b7}.intro-bottom{font-size:12px;color:#6a8276}.signal{display:inline-block;width:7px;height:7px;border-radius:50%;background:#62a47f;margin-right:7px}.auth-side{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:45px 30px;position:relative;background:#fff}.auth-card{width:100%;max-width:374px}.auth-card h2{font-size:29px;margin:12px 0 6px;font-weight:600}.auth-card>.muted{font-size:13px}.tabs{display:flex;border-bottom:1px solid var(--line);margin:27px 0 20px;gap:28px}.tabs button{padding:10px 0;border:0;border-radius:0;color:var(--muted);background:none}.tabs .selected{color:var(--brand);border-bottom:2px solid var(--brand)}.wide{width:100%;display:flex;justify-content:space-between}.auth-foot{font-size:12px;color:#8b9791;margin-top:20px}.copyright{margin-top:50px;color:#a0aaa5;font-size:11px}.form-message{min-height:22px;color:var(--danger);font-size:13px;margin:13px 0}.sidebar{width:234px;background:#fff;position:fixed;inset:0 auto 0 0;border-right:1px solid var(--line);padding:30px 21px;display:flex;flex-direction:column}.sidebar .brand{font-size:18px}.sidebar .brand img{width:35px;height:35px}.sidebar .brand b{font-size:14px}.nav-caption{font-size:11px;color:#9aa69f;margin:47px 13px 12px}.nav{display:flex;gap:12px;align-items:center;width:100%;text-align:left;border:0;color:#85938c;margin:6px 0;padding:12px 14px;font-size:17px}.nav span{font-size:13px}.nav.active{color:var(--brand);background:var(--soft);font-weight:600}.nav-badge{margin-left:auto;padding:0 7px;border-radius:5px;background:#d5eadd;font-size:11px!important}.side-foot{margin-top:auto;padding:20px 10px 0;font-size:12px;border-top:1px solid var(--line);color:#657b70}.side-foot small{display:block;color:#9ca9a1;margin:8px 0 0 14px;font-size:10px}.workspace-main{margin-left:234px;min-height:100vh;display:flex;flex-direction:column}header{height:77px;background:white;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 38px;font-size:12px}.header-right{display:flex;align-items:center;gap:12px}.header-right>span{border-right:1px solid var(--line);padding-right:20px}.workspace-main main{padding:35px 38px;flex:1;max-width:1600px;width:100%;margin:0 auto}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.page-heading h1{font-size:27px;margin:6px 0 5px;font-weight:600;letter-spacing:-.5px}.page-heading p{font-size:12px;margin:0}.page-heading>button{font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:26px}.stats article{background:white;border:1px solid var(--line);border-radius:11px;padding:22px 24px;position:relative}.stats article>span{color:#768b7f;font-size:12px}.stats strong{display:block;font-size:32px;font-weight:600;margin:6px 0 2px;line-height:1.4}.stats small{font-size:11px;color:#9aa79f}.stat-dot{position:absolute;right:22px;top:26px;border-radius:50%;height:9px;width:9px}.amber{background:#d7a349;box-shadow:0 0 0 5px #fcf5e8}.green{background:#52a67a;box-shadow:0 0 0 5px #edf7f1}.blue{background:#689ac3;box-shadow:0 0 0 5px #edf4fa}.gray{background:#9aa69f;box-shadow:0 0 0 5px #f2f5f3}.card{background:white;border:1px solid var(--line);border-radius:11px}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 23px}.filters{display:flex;gap:5px;flex-wrap:wrap}.filters button{font-size:12px;padding:6px 12px;border:0;color:#84948a}.filters .selected{background:var(--soft);color:var(--brand);font-weight:600}.search{position:relative;width:220px}.search input{font-size:12px;padding:9px 34px 9px 12px;background:#fafcfb}.search button{position:absolute;right:1px;top:1px;border:0;padding:5px 11px;color:#8f9c94;font-size:19px;background:transparent}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:12px;text-align:left}th{font-weight:500;color:#899990;background:#f8faf9;padding:13px 24px;border-block:1px solid #edf1ee}td{padding:18px 24px;border-bottom:1px solid #eff3f0;color:#6f8277}td strong{color:var(--ink);font-size:13px;font-weight:600}td small{display:block;color:#97a59c;margin-top:3px;font-size:11px}.person{display:flex;align-items:center;gap:12px}.avatar{width:35px;height:35px;display:grid;place-items:center;background:#f0f5f2;color:#52775f;border-radius:9px;font-size:14px}.status{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:5px;font-size:11px}.status:before{content:"";width:4px;height:4px;background:currentColor;border-radius:50%}.status.pending{background:#fbf5e9;color:#af853c}.status.approved{background:#edf7f0;color:#4b9267}.status.rejected,.status.disabled{background:#f6eeee;color:#b17272}.row-actions{display:flex;gap:7px}.row-actions button{font-size:11px;padding:4px 9px;border-color:#e2eae4}.empty{text-align:center;padding:70px 20px;color:#94a399}.empty strong{display:block;color:#60786a;font-size:15px;margin-bottom:6px}.table-footer{display:flex;justify-content:space-between;align-items:center;padding:16px 23px;font-size:11px;color:#9aa89f}.table-footer>div{display:flex;gap:13px;align-items:center}.table-footer button{font-size:11px;padding:4px 8px}.bottom-note{font-size:11px;color:#9ba89f;margin:18px 0}footer{display:flex;justify-content:space-between;padding:20px 38px;color:#a5b0a9;font-size:10px}.employee-panel{text-align:center;max-width:650px;margin:50px auto;padding:55px 40px}.employee-panel .eyebrow{margin:25px 0 12px}.employee-panel h1{font-size:27px}.employee-panel>button{margin-top:20px}dialog{border:1px solid var(--line);border-radius:14px;width:450px;max-width:calc(100% - 30px);padding:26px;box-shadow:0 25px 90px #163b2726;color:var(--ink)}dialog::backdrop{background:#112a224d}.dialog-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.dialog-title h2{margin:0;font-size:20px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#183d2f;color:white;padding:12px 24px;border-radius:9px;box-shadow:0 5px 25px #183d2f33;z-index:10}#auditPanel h3{margin:0;font-size:14px}.note-cell{max-width:200px;white-space:normal;word-break:break-word}@media(min-width:1700px){.intro-copy{margin-left:8%}}@media(max-width:1150px){.sidebar{width:200px;padding-inline:16px}.workspace-main{margin-left:200px}.workspace-main main{padding:28px 24px}header{padding-inline:24px}.stats{gap:12px}.stats article{padding:19px}.table-toolbar{flex-wrap:wrap}th,td{padding:14px 18px}.intro h1{font-size:34px}.steps{gap:7px;font-size:11px}}@media(max-width:760px){.auth-layout{grid-template-columns:1fr}.intro{padding:24px 28px}.intro-copy{margin:35px 0 20px}.intro h1{font-size:28px;line-height:1.4}.intro-copy p,.intro-bottom,.steps{display:none}.intro:after{font-size:300px;bottom:-150px;right:0}.auth-side{padding:35px 25px}.sidebar{position:static;width:auto;padding:15px 20px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{font-size:17px}.sidebar nav{display:flex;gap:10px;margin-top:8px}.nav-caption,.side-foot{display:none}.nav{width:auto;padding:8px 12px}.nav-badge{margin-left:10px}.workspace-main{margin:0}header{height:auto;min-height:65px;padding:15px 20px;gap:12px;flex-wrap:wrap}.header-right{gap:5px}.header-right>span{padding-right:8px}.workspace-main main{padding:24px 16px}.stats{grid-template-columns:1fr 1fr}.stats strong{font-size:28px}.page-heading{gap:12px}.page-heading h1{font-size:23px}.page-heading p{max-width:220px}.page-heading>button{white-space:nowrap}.filters{gap:1px}.filters button{padding:6px 8px}.search{width:100%}.table-toolbar{padding:15px}.employee-panel{padding:35px 20px}footer{padding:15px 20px}.intro .brand img{width:32px;height:32px}}

.download-link{display:inline-block;color:var(--brand);font-size:12px;text-decoration:none;margin-bottom:12px}.download-link:hover{text-decoration:underline}
