:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#182230;background:#f4f7fb;font-synthesis:none;text-rendering:optimizeLegibility;--blue:#2168df;--blue-dark:#174fb6;--line:#e7ebf1;--muted:#788393;--green:#14805e;--amber:#a75c12;--red:#bd4242}
*{box-sizing:border-box}body{margin:0;min-height:100vh}.shell{max-width:1040px;margin:0 auto;padding:0 28px 40px}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand,.profile{display:flex;align-items:center;gap:12px}.brand img{width:40px;height:40px;object-fit:cover;border-radius:11px}.brand strong,.profile b{display:block;font-size:15px}.brand span,.profile small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#e6efff;color:var(--blue);font-weight:700}.profile-copy{min-width:80px}.quiet-button,.icon-button{border:0;background:transparent;color:var(--muted);cursor:pointer}.quiet-button{font-size:13px}.welcome{display:flex;justify-content:space-between;align-items:center;padding:36px 0 28px}.eyebrow{font-size:10px;letter-spacing:.14em;color:#8a9ab2;font-weight:700;margin:0 0 8px}.welcome h1{font-size:30px;letter-spacing:-.03em;margin:0}.muted,.section-heading p{color:var(--muted)}.welcome .muted{font-size:14px;margin:9px 0 0}.welcome-mark{display:grid;place-items:center;width:70px;height:70px;border-radius:22px;background:linear-gradient(145deg,#e8f0ff,#d7e6ff);color:#3675dc;font-size:28px;font-weight:700}.tabs{display:flex;gap:28px;border-bottom:1px solid var(--line);margin-bottom:26px}.tab{padding:0 0 14px;border:0;border-bottom:2px solid transparent;background:none;color:#778394;font:inherit;font-size:14px;cursor:pointer}.tab.active{color:var(--blue);border-color:var(--blue);font-weight:650}.count{display:inline-grid;place-items:center;min-width:19px;height:19px;margin-left:5px;padding:0 5px;border-radius:10px;background:#fff1e7;color:#b76616;font-size:11px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 17px}.section-heading h2{margin:0;font-size:19px}.section-heading p{margin:6px 0 0;font-size:13px}.status-pill{padding:6px 10px;border-radius:20px;font-size:12px}.neutral{background:#eef4ff;color:var(--blue)}.form-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:25px 27px;box-shadow:0 5px 18px #18345b08}.date-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:9px;margin-bottom:19px}.field>span{font-size:13px;font-weight:650;color:#394557}.field i{color:var(--red);font-style:normal}.field em{font-size:11px;color:#9aa4b2;font-style:normal;font-weight:400}.field input,.field textarea{width:100%;border:1px solid #dce2ea;border-radius:9px;padding:12px 13px;color:#273346;background:#fff;font:inherit;font-size:14px;outline:none}.field input:focus,.field textarea:focus{border-color:#76a4f4;box-shadow:0 0 0 3px #2168df15}.field textarea{resize:vertical;line-height:1.6}.field-hint{color:#a1aab7;font-size:11px;text-align:right;margin-top:-5px}.halfday-row{display:flex;align-items:center;gap:11px;padding:13px 0 17px;border-bottom:1px solid #f0f2f5;margin-bottom:18px;cursor:pointer}.halfday-row input{position:absolute;opacity:0}.checkmark{width:18px;height:18px;border:1px solid #cbd3df;border-radius:5px}.halfday-row input:checked+.checkmark{border-color:var(--blue);background:var(--blue);box-shadow:inset 0 0 0 4px white}.halfday-row b,.halfday-row small{display:block;font-size:13px}.halfday-row small{color:var(--muted);font-size:11px;margin-top:4px}.segmented{display:flex;padding:4px;background:#f2f5f9;border-radius:9px}.period{flex:1;border:0;border-radius:7px;padding:9px;background:transparent;color:#788393;cursor:pointer;font:inherit;font-size:13px}.period.active{background:#fff;color:var(--blue);box-shadow:0 1px 4px #162a4418}.duration{display:flex;align-items:center;justify-content:space-between;padding:14px 15px;margin:0 0 20px;background:#f7f9fc;border-radius:9px;color:#596577;font-size:13px}.duration strong{color:var(--blue);font-size:20px}.duration small{font-size:12px;font-weight:500}.form-footer{display:flex;align-items:center;justify-content:space-between;padding-top:4px}.form-footer p{font-size:12px;color:#98a1ae}.primary-button,.outline-button{border:0;border-radius:9px;padding:11px 16px;font:inherit;font-weight:650;font-size:13px;cursor:pointer}.primary-button{background:var(--blue);color:#fff;box-shadow:0 3px 8px #2168df24}.primary-button:hover{background:var(--blue-dark)}.primary-button:disabled{opacity:.6;cursor:wait}.primary-button span{margin-left:12px}.outline-button{border:1px solid #dce2ea;background:#fff;color:#536071}.filters{display:flex;gap:7px;margin:20px 0 15px}.filter{padding:7px 12px;border:0;border-radius:18px;background:transparent;color:#788393;font:inherit;font-size:12px;cursor:pointer}.filter.active{background:#eaf1ff;color:var(--blue);font-weight:650}.records-list{display:grid;gap:11px}.record{padding:17px 19px;background:#fff;border:1px solid var(--line);border-radius:12px;display:grid;grid-template-columns:1fr auto;gap:15px;cursor:pointer}.record:hover{border-color:#b9cff5}.record h3{font-size:14px;margin:0 0 8px}.record p{font-size:12px;color:#7d8795;margin:4px 0}.record-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:16px}.badge{padding:5px 9px;border-radius:18px;font-size:11px;white-space:nowrap}.badge.pending{background:#fff3e7;color:var(--amber)}.badge.approved{background:#e8f6f0;color:var(--green)}.badge.rejected{background:#fff0f0;color:var(--red)}.record-days{color:#425168;font-size:12px}.record-actions{display:flex;gap:7px}.small-button{border:1px solid #dce2ea;background:white;border-radius:7px;padding:7px 10px;color:#536071;font-size:12px;cursor:pointer}.small-button.ok{color:var(--green);border-color:#bce4d3}.small-button.no{color:var(--red);border-color:#f1cccc}.empty{background:#fff;border:1px dashed #dce2ea;border-radius:12px;padding:38px 16px;text-align:center;color:#929cab;font-size:13px}.empty b{display:block;color:#596577;font-size:14px;margin-bottom:6px}footer{text-align:center;color:#a4acb8;font-size:11px;padding:34px 0 0}.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,12px);opacity:0;pointer-events:none;padding:11px 16px;background:#1f2937;color:white;border-radius:9px;font-size:13px;transition:.2s;z-index:9}.toast.show{opacity:1;transform:translate(-50%,0)}.detail-dialog{width:min(560px,calc(100% - 28px));max-height:85vh;overflow:auto;border:0;border-radius:15px;padding:22px;background:#fff;box-shadow:0 20px 60px #0e1e3680}.detail-dialog::backdrop{background:#14203370}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.dialog-head h2{font-size:18px;margin:0}.icon-button{font-size:25px;line-height:1}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:4px 0 12px}.detail-item small{display:block;color:#8b95a3;font-size:11px;margin-bottom:5px}.detail-item b{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.detail-block{padding:13px 0;border-top:1px solid #f0f2f5}.detail-block small{color:#8b95a3;font-size:11px}.detail-block p{font-size:13px;line-height:1.65;white-space:pre-wrap;margin:6px 0 0}.review-dialog form{margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:17px}.hidden{display:none!important}
@media(max-width:650px){.shell{padding:0 17px 30px}.topbar{height:65px}.brand img{width:35px;height:35px}.brand strong{font-size:14px}.profile{gap:8px}.profile-copy{min-width:65px}.profile b{font-size:12px}.profile small{font-size:10px}.quiet-button{font-size:12px}.welcome{padding:27px 0 22px}.welcome h1{font-size:26px}.welcome .muted{font-size:12px}.welcome-mark{width:55px;height:55px;border-radius:18px}.tabs{gap:21px;margin-bottom:22px}.tab{font-size:13px}.section-heading h2{font-size:17px}.section-heading p{font-size:12px}.form-card{padding:19px 16px}.date-grid{gap:10px}.field input{padding:11px 9px;font-size:13px}.form-footer{align-items:flex-end;gap:12px}.form-footer p{max-width:145px;line-height:1.5;margin:0}.primary-button,.outline-button{padding:10px 12px;font-size:12px}.record{padding:14px;gap:8px}.record h3{font-size:13px}.record p{font-size:11px}.record-side{gap:9px}.filters{gap:2px}.filter{padding:7px 9px}.detail-dialog{padding:18px}.detail-grid{gap:12px}}
