:root{--bg:#eef2f7;--bg-tint:#e7edf5;--surface:#ffffff;--surface-2:#f6f9fc;--surface-3:#eef3f9;--ink:#0f1b2d;--ink-soft:#51647c;--ink-faint:#7a8aa0;--line:#e3e9f1;--line-strong:#cdd7e4;--navy-900:#0b1d36;--navy-800:#102a4c;--navy-700:#16365e;--navy-600:#1e4474;--brand:#2563eb;--brand-600:#1d4ed8;--brand-700:#1e40af;--brand-050:#eaf1ff;--brand-100:#d7e5ff;--side-bg:#0e2747;--side-bg-2:#0a1f3a;--side-ink:#c8d4e6;--side-ink-soft:#8294ae;--side-hover:rgba(255,255,255,0.07);--side-active:rgba(56,124,235,0.22);--side-active-bar:#4d8bf5;--pending-bg:#fdf0d9;--pending-fg:#92600a;--approved-bg:#dcf2e3;--approved-fg:#157347;--rejected-bg:#fbe1de;--rejected-fg:#b42318;--cancelled-bg:#e9edf3;--cancelled-fg:#51647c;--type-sick:#d0584c;--type-personal:#c2893a;--type-vacation:#2f8a76;--type-other:#7c89a0;--radius-lg:16px;--radius:12px;--radius-sm:9px;--shadow-sm:0 1px 2px rgba(15,27,45,0.06),0 1px 3px rgba(15,27,45,0.04);--shadow:0 1px 2px rgba(15,27,45,0.05),0 10px 28px -18px rgba(15,27,45,0.32);--shadow-lg:0 18px 48px -22px rgba(15,27,45,0.45);--ring:0 0 0 3px rgba(37,99,235,0.22);--sidebar-w:256px;--topbar-h:60px;--font-display:"Bai Jamjuree","Anuphan",system-ui,-apple-system,sans-serif;--font-body:"Anuphan",system-ui,-apple-system,"Segoe UI",sans-serif}:root[data-theme=dark]{--bg:#0d1521;--bg-tint:#0a111c;--surface:#151f2e;--surface-2:#1b2737;--surface-3:#223144;--ink:#e9eef6;--ink-soft:#a3b3c7;--ink-faint:#6f8197;--line:#25344a;--line-strong:#33455d;--brand-050:#16263f;--brand-100:#1b3052;--pending-bg:#3a2e12;--pending-fg:#e6b454;--approved-bg:#16321f;--approved-fg:#5cc985;--rejected-bg:#3a1d1a;--rejected-fg:#ef8b80;--cancelled-bg:#232c38;--cancelled-fg:#9fb0c4;--shadow-sm:0 1px 2px rgba(0,0,0,0.3);--shadow:0 1px 2px rgba(0,0,0,0.3),0 12px 30px -18px rgba(0,0,0,0.7);--shadow-lg:0 18px 48px -22px rgba(0,0,0,0.8)}:root[data-theme=dark] .topbar{background:rgba(21,31,46,.85)}:root[data-theme=dark] select{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='%23a3b3c7' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}*{box-sizing:border-box}body,html{padding:0;background:var(--bg);font-family:var(--font-body);font-size:15.5px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body,h1,h2,h3,h4,html{margin:0;color:var(--ink)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;letter-spacing:-.012em}a{color:inherit;text-decoration:none}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:6px}.shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);flex-shrink:0;position:-webkit-sticky;position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--side-bg),var(--side-bg-2));color:var(--side-ink);display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.06);z-index:40}.sidebar .brand{display:flex;align-items:center;gap:11px;padding:18px 20px 16px;font-family:var(--font-display);font-weight:600;font-size:18px;color:#fff}.sidebar .brand .mark{width:36px;height:36px;border-radius:10px;overflow:hidden;background:linear-gradient(145deg,var(--brand),var(--brand-700));color:#fff;display:grid;place-items:center;flex-shrink:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 6px 16px -8px rgba(37,99,235,.9)}.sidebar .brand .mark img{width:100%;height:100%;object-fit:cover}.sidebar .brand .brand-text{min-width:0}.sidebar .brand .brand-text .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar .brand .brand-text{display:flex;flex-direction:column;line-height:1.15}.sidebar .brand small{color:var(--side-ink-soft);font-weight:500;font-size:11.5px;letter-spacing:.04em}.nav{display:flex;flex-direction:column;gap:2px;padding:8px 12px;overflow-y:auto}.nav .nav-group{color:var(--side-ink-soft);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:16px 12px 6px}.nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:var(--side-ink);font-weight:500;font-size:14.5px;position:relative;transition:background .15s,color .15s}.nav a svg{flex-shrink:0;color:var(--side-ink-soft);transition:color .15s}.nav a:hover{background:var(--side-hover);color:#fff}.nav a:hover svg{color:var(--side-ink)}.nav a.active{background:var(--side-active);color:#fff}.nav a.active svg{color:#fff}.nav a.active:before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--side-active-bar)}.nav a .nav-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;background:var(--brand);color:#fff;border-radius:999px;font-size:11px;font-weight:700;display:grid;place-items:center;line-height:1}.sidebar .side-foot{margin-top:auto;padding:12px;border-top:1px solid rgba(255,255,255,.07)}.sidebar .userchip{display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border-radius:10px;color:var(--side-ink);transition:background .15s}.sidebar .userchip:hover{background:var(--side-hover);color:#fff}.sidebar .userchip .who{min-width:0;flex:1 1}.sidebar .userchip .who .nm{font-weight:600;font-size:14px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar .userchip .who .rl{font-size:12px;color:var(--side-ink-soft)}.sidebar .logout{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:6px;padding:9px;border-radius:9px;cursor:pointer;background:transparent;border:1px solid rgba(255,255,255,.14);color:var(--side-ink);font-family:var(--font-body);font-weight:500;font-size:13.5px;transition:background .15s,border-color .15s}.sidebar .logout:hover{background:var(--side-hover);border-color:rgba(255,255,255,.28);color:#fff}.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(145deg,var(--brand),var(--brand-700));color:#fff;display:grid;place-items:center;font-weight:600;font-family:var(--font-display);flex-shrink:0;font-size:14px}.content{flex:1 1;min-width:0;display:flex;flex-direction:column}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;height:var(--topbar-h);display:flex;align-items:center;gap:14px;padding:0 24px;background:rgba(255,255,255,.85);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}.topbar .menu-btn{display:none}.topbar .crumb{font-weight:600;font-size:15px;color:var(--ink)}.topbar .spacer{flex:1 1}.icon-btn{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;cursor:pointer;background:transparent;border:1px solid transparent;color:var(--ink-soft);transition:background .15s,color .15s}.icon-btn:hover{background:var(--surface-3);color:var(--ink)}.bell-badge{position:absolute;top:5px;right:5px;min-width:17px;height:17px;padding:0 4px;background:var(--brand);color:#fff;border-radius:999px;font-size:10.5px;font-weight:700;display:grid;place-items:center;line-height:1;border:2px solid var(--surface)}.user-menu{position:relative}.user-menu .user-btn{display:flex;align-items:center;gap:9px;cursor:pointer;padding:5px 10px 5px 6px;border-radius:999px;background:transparent;border:1px solid var(--line);color:var(--ink);transition:background .15s,border-color .15s}.user-menu .user-btn:hover{background:var(--surface-3);border-color:var(--line-strong)}.user-menu .user-btn .avatar{width:30px;height:30px;font-size:13px}.user-menu .user-btn .nm{font-size:14px;font-weight:600;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu .user-btn svg{color:var(--ink-faint)}.menu-scrim{position:fixed;inset:0;z-index:49}.user-menu .menu{position:absolute;right:0;top:calc(100% + 8px);width:250px;z-index:50;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);padding:7px;animation:rise .16s ease both}.user-menu .menu .mhead{display:flex;gap:11px;align-items:center;padding:8px 10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}.user-menu .menu .mhead .who{min-width:0}.user-menu .menu .mhead .who .nm{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu .menu .mhead .who .rl{font-size:12px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.user-menu .menu a,.user-menu .menu button.item{display:flex;align-items:center;gap:10px;width:100%;box-sizing:border-box;padding:9px 10px;border-radius:8px;color:var(--ink);font-size:14px;font-weight:500;background:transparent;border:none;cursor:pointer;font-family:var(--font-body);text-align:left}.user-menu .menu a svg,.user-menu .menu button.item svg{color:var(--ink-soft)}.user-menu .menu a:hover,.user-menu .menu button.item:hover{background:var(--surface-2)}.user-menu .menu .danger,.user-menu .menu .danger svg{color:var(--rejected-fg)}.page{width:100%;max-width:1080px;margin:0 auto;padding:32px 28px 80px}.page>header{margin-bottom:24px;display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.page>header .head-main{flex:1 1;min-width:0}.page>header .eyebrow{color:var(--brand-600);font-weight:600;font-size:12px;letter-spacing:.07em;text-transform:uppercase;display:flex;align-items:center;gap:6px}.page>header h1{font-size:27px;margin-top:5px}.page>header p{color:var(--ink-soft);margin:5px 0 0;font-size:14.5px}.page>header .head-actions{display:flex;gap:10px;align-items:center}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card.pad{padding:22px 24px}.card-head{padding:16px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}.card-head h3{font-size:16px;flex:1 1}.card-head .link{color:var(--brand-600);font-size:13.5px;font-weight:600;display:inline-flex;align-items:center;gap:4px}.card-head .link:hover{color:var(--brand-700)}.grid{display:grid;grid-gap:16px;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.stat{padding:18px 20px;display:flex;flex-direction:column;gap:0}.stat .name{font-size:13.5px;color:var(--ink-soft);display:flex;align-items:center;gap:8px;font-weight:500}.stat .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.stat .big{font-family:var(--font-display);font-size:28px;font-weight:600;margin-top:10px;color:var(--ink)}.stat .big span{font-size:14px;color:var(--ink-faint);font-weight:500}.stat .bar{height:7px;border-radius:999px;background:var(--surface-3);margin-top:13px;overflow:hidden}.stat .bar>i{display:block;height:100%;border-radius:999px;transition:width .6s cubic-bezier(.2,.7,.2,1)}.field{display:grid;grid-gap:7px;gap:7px;margin-bottom:18px}.field>label{font-weight:600;font-size:13.5px;color:var(--ink)}.field .hint{color:var(--ink-soft);font-size:12.5px;display:inline-flex;align-items:center;gap:5px}input:where(:not([type=checkbox],[type=radio],[type=file],[type=color],[type=range],[type=submit],[type=button])),select,textarea{font-family:var(--font-body);font-size:14.5px;line-height:1.4;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 12px;width:100%;height:42px;transition:border-color .15s,box-shadow .15s}textarea{height:auto;min-height:88px;resize:vertical}input::placeholder,textarea::placeholder{color:var(--ink-faint);opacity:1}input:where(:not([type=checkbox],[type=radio],[type=file],[type=color])):hover,select:hover,textarea:hover{border-color:#b9c5d6}input:where(:not([type=checkbox],[type=radio],[type=file],[type=color])):focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring)}input:disabled,select:disabled,textarea:disabled{background:var(--surface-2);color:var(--ink-faint);cursor:not-allowed}select{-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='%2351647c' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:34px}input[type=checkbox],input[type=radio]{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;width:17px;height:17px;margin:0;flex-shrink:0;accent-color:var(--brand);cursor:pointer}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{box-shadow:var(--ring)}input[type=color]{width:46px;height:42px;padding:4px;cursor:pointer;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm)}input[type=color]:hover{border-color:#b9c5d6}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:none;border-radius:5px}.choices{flex-wrap:wrap}.choice,.choices{display:flex;gap:10px}.choice{flex:1 1;min-width:150px;cursor:pointer;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:12px 14px;align-items:center;transition:border-color .15s,background .15s,box-shadow .15s}.choice:hover{border-color:var(--brand);background:var(--surface-2)}.choice.sel{border-color:var(--brand);background:var(--brand-050);box-shadow:inset 0 0 0 1px var(--brand)}.choice .t{font-weight:600;font-size:14px}.choice .d{color:var(--ink-soft);font-size:12.5px}.btn{font-family:var(--font-body);font-weight:600;font-size:14px;cursor:pointer;border-radius:var(--radius-sm);padding:10px 16px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;white-space:nowrap}.btn svg{margin:0 -2px}.btn.primary{background:var(--brand);color:#fff;box-shadow:0 1px 2px rgba(37,99,235,.3)}.btn.primary:hover{background:var(--brand-600)}.btn.ghost{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn.ghost:hover{background:var(--surface-2);border-color:#b9c5d6}.btn.subtle{background:var(--surface-3);color:var(--ink)}.btn.subtle:hover{background:var(--bg-tint)}.btn.danger{background:var(--surface);border-color:#e7b0a9;color:var(--rejected-fg)}.btn.danger:hover{background:var(--rejected-bg);border-color:var(--rejected-fg)}.btn.approve{background:var(--approved-fg);color:#fff}.btn.approve:hover{filter:brightness(.93)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.sm{padding:7px 12px;font-size:13px}.btn.block{width:100%}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px 4px 9px;border-radius:999px;font-size:12.5px;font-weight:600;line-height:1.3}.badge svg{width:13px;height:13px}.badge.PENDING{background:var(--pending-bg);color:var(--pending-fg)}.badge.APPROVED{background:var(--approved-bg);color:var(--approved-fg)}.badge.REJECTED{background:var(--rejected-bg);color:var(--rejected-fg)}.badge.CANCELLED{background:var(--cancelled-bg);color:var(--cancelled-fg)}.badge.RETURNED{background:var(--brand-050);color:var(--brand-700)}.badge.neutral{background:var(--surface-3);color:var(--ink-soft)}.badge .typedot{width:8px;height:8px;border-radius:50%}.rows{flex-direction:column}.row,.rows{display:flex}.row{align-items:center;gap:16px;padding:15px 22px;border-bottom:1px solid var(--line);transition:background .12s}.row:last-child{border-bottom:none}.row:hover{background:var(--surface-2)}.row .lead{width:4px;align-self:stretch;border-radius:999px;flex-shrink:0}.row .main{flex:1 1;min-width:0}.row .main .title{font-weight:600}.row .main .sub{color:var(--ink-soft);font-size:13px;margin-top:2px}.row .days{font-family:var(--font-display);font-weight:600;font-size:16px;white-space:nowrap;color:var(--ink)}.row .actions{display:flex;gap:8px}.table-wrap{width:100%;overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:14px}table.tbl th{text-align:left;font-weight:600;font-size:12px;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-soft);padding:12px 16px;background:var(--surface-2);white-space:nowrap}table.tbl td,table.tbl th{border-bottom:1px solid var(--line)}table.tbl td{padding:13px 16px;vertical-align:middle}table.tbl tr:last-child td{border-bottom:none}table.tbl tbody tr{transition:background .12s}table.tbl tbody tr:hover{background:var(--surface-2)}table.tbl .num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.tbl td.actions{text-align:right;white-space:nowrap}table.tbl td.actions .btn{vertical-align:middle}table.tbl td.actions .btn+.btn{margin-left:6px}table.tbl th.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:color .15s;white-space:nowrap}table.tbl th.sortable:hover{color:var(--ink)}table.tbl th.sortable .th-in{display:inline-flex;align-items:center;gap:5px}table.tbl th .sort-ico{opacity:.35;transition:opacity .15s,transform .15s}table.tbl th.sorted .sort-ico{opacity:1;color:var(--brand-600)}table.tbl th.desc .sort-ico{transform:rotate(180deg)}.toolbar select.filter{width:auto;min-width:130px;height:38px;padding:7px 30px 7px 12px;font-size:13.5px}.toolbar .search-box input{height:38px}.pagination{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:13px 18px;border-top:1px solid var(--line);color:var(--ink-soft);font-size:13.5px}.pagination .pg-info{white-space:nowrap}.pagination .grow{flex:1 1}.pagination select{width:auto;height:34px;padding:5px 28px 5px 10px;font-size:13px}.pagination .pg-btn,.pagination .pg-btns{display:inline-flex;gap:4px}.pagination .pg-btn{min-width:34px;height:34px;padding:0 9px;border-radius:8px;cursor:pointer;background:var(--surface);border:1px solid var(--line-strong);color:var(--ink);align-items:center;justify-content:center;font-family:var(--font-body);font-weight:600;font-size:13px;transition:background .15s,border-color .15s}.pagination .pg-btn:hover:not(:disabled){background:var(--surface-2);border-color:#b9c5d6}.pagination .pg-btn.on{background:var(--brand);border-color:var(--brand);color:#fff}.pagination .pg-btn:disabled{opacity:.45;cursor:not-allowed}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.toolbar .grow{flex:1 1}.search-box{position:relative;min-width:220px}.search-box svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--ink-faint);pointer-events:none}.search-box input{padding-left:36px}.subnav{display:flex;gap:4px;margin-bottom:22px;padding-bottom:2px;overflow-x:auto;border-bottom:1px solid var(--line);scrollbar-width:thin}.subnav a{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:9px 13px;border-radius:9px 9px 0 0;margin-bottom:-1px;color:var(--ink-soft);font-weight:500;font-size:13.5px;border-bottom:2px solid transparent;transition:color .15s,background .15s,border-color .15s}.subnav a svg{color:var(--ink-faint);transition:color .15s}.subnav a:hover{color:var(--ink);background:var(--surface-2)}.subnav a:hover svg{color:var(--ink-soft)}.subnav a.active{color:var(--brand-700);border-bottom-color:var(--brand)}.subnav a.active svg{color:var(--brand-600)}.alert{padding:11px 14px;border-radius:var(--radius-sm);font-size:14px;margin-bottom:16px;display:flex;align-items:flex-start;gap:9px}.alert svg{flex-shrink:0;margin-top:1px}.alert.err{background:var(--rejected-bg);color:var(--rejected-fg)}.alert.ok{background:var(--approved-bg);color:var(--approved-fg)}.alert.info{background:var(--brand-050);color:var(--brand-700)}.empty{text-align:center;padding:56px 20px;color:var(--ink-soft);display:flex;flex-direction:column;align-items:center;gap:6px}.empty .ico{width:52px;height:52px;border-radius:14px;background:var(--surface-3);color:var(--ink-faint);display:grid;place-items:center;margin-bottom:6px}.empty .ico svg{width:26px;height:26px}.empty p{margin:0;font-weight:500;color:var(--ink)}.empty .sub{font-size:13.5px;color:var(--ink-soft);font-weight:400}.empty .btn{margin-top:12px}.hint,.muted{color:var(--ink-soft)}.hint{font-size:12.5px}.modal-scrim{position:fixed;inset:0;z-index:60;background:rgba(11,29,54,.5);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px 16px;overflow-y:auto;animation:scrim-in .18s ease both}@keyframes scrim-in{0%{opacity:0}to{opacity:1}}.modal{width:100%;max-width:560px;margin:auto 0;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--line);display:flex;flex-direction:column;max-height:88vh;animation:modal-in .22s cubic-bezier(.2,.7,.2,1) both}.modal.lg{max-width:720px}.modal.sm{max-width:440px}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}.modal-head{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line);flex-shrink:0}.modal-head .mh-icon{width:38px;height:38px;border-radius:10px;flex-shrink:0;background:var(--brand-050);color:var(--brand-600);display:grid;place-items:center}.modal-head .mh-title{flex:1 1;min-width:0}.modal-head .mh-title h3{font-size:17px}.modal-head .mh-title p{margin:2px 0 0;font-size:13px;color:var(--ink-soft)}.modal-head .mh-close{width:34px;height:34px;border-radius:9px;cursor:pointer;flex-shrink:0;background:transparent;border:none;color:var(--ink-soft);display:grid;place-items:center;transition:background .15s,color .15s}.modal-head .mh-close:hover{background:var(--surface-3);color:var(--ink)}.modal-body{padding:22px;overflow-y:auto}.modal-body .field:last-child{margin-bottom:0}.modal-foot{display:flex;align-items:center;gap:10px;justify-content:flex-end;padding:16px 22px;border-top:1px solid var(--line);flex-shrink:0;background:var(--surface-2);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.modal-foot .grow{flex:1 1}@media (max-width:720px){.modal-scrim{padding:0}.modal{max-height:100dvh;max-width:none;min-height:100dvh}.modal,.modal-foot{border-radius:0}}.sk{position:relative;overflow:hidden;background:var(--surface-3);border-radius:7px}.sk:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);transform:translateX(-100%);animation:shimmer 1.3s infinite}@keyframes shimmer{to{transform:translateX(100%)}}.sk-line{height:13px}.sk-row{display:flex;align-items:center;gap:16px;padding:16px 22px;border-bottom:1px solid var(--line)}.sk-row:last-child{border-bottom:none}.avatar{overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.lg{width:56px;height:56px;font-size:22px;border-radius:14px}.avatar.xl{width:88px;height:88px;font-size:34px;border-radius:20px}.segmented{display:inline-flex;background:var(--surface-3);border-radius:10px;padding:3px;gap:2px}.segmented button{display:inline-flex;align-items:center;gap:7px;cursor:pointer;border:none;background:transparent;color:var(--ink-soft);font-family:var(--font-body);font-weight:600;font-size:13.5px;padding:7px 14px;border-radius:8px;transition:background .15s,color .15s}.segmented button:hover{color:var(--ink)}.segmented button.on{background:var(--surface);color:var(--brand-700);box-shadow:var(--shadow-sm)}.orgtree{padding:6px 2px}.org-card{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:11px 14px;box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}.org-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow)}.org-card .org-main{flex:1 1;min-width:0}.org-card .org-name{font-weight:600;font-size:14.5px;display:flex;align-items:center;gap:8px}.org-card .org-sub{color:var(--ink-soft);font-size:12.5px;margin-top:1px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.org-card .org-count{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;background:var(--brand-050);color:var(--brand-700);font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px}.org-card .org-toggle{width:26px;height:26px;border-radius:7px;flex-shrink:0;cursor:pointer;display:grid;place-items:center;background:transparent;border:none;color:var(--ink-soft);transition:background .15s,transform .15s}.org-card .org-toggle:hover{background:var(--surface-3);color:var(--ink)}.org-card .org-toggle.open{transform:rotate(90deg)}.org-card.is-dept{background:linear-gradient(180deg,var(--surface),var(--surface-2));border-color:var(--line-strong)}.org-card.is-dept .org-name{font-family:var(--font-display)}.org-kids{margin-left:22px;padding-left:20px;border-left:1.5px solid var(--line-strong);display:flex;flex-direction:column;gap:10px;margin-top:10px}.org-kids>.org-node{position:relative}.org-kids>.org-node:before{content:"";position:absolute;left:-20px;top:24px;width:16px;border-top:1.5px solid var(--line-strong)}.org-node{margin-top:0}.orgtree>.org-node+.org-node{margin-top:10px}.split{display:grid;grid-template-columns:320px 1fr;grid-gap:16px;gap:16px;align-items:start}@media (max-width:860px){.split{grid-template-columns:1fr}}.picker{display:flex;flex-direction:column;max-height:70vh}.picker .picker-search{padding:12px;border-bottom:1px solid var(--line)}.picker .picker-list{overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:2px}.picker-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:9px 10px;border-radius:9px;cursor:pointer;border:none;background:transparent;font-family:var(--font-body);transition:background .12s}.picker-item:hover{background:var(--surface-2)}.picker-item.sel{background:var(--brand-050)}.picker-item.sel .pi-name{color:var(--brand-700)}.picker-item .pi-main{min-width:0;flex:1 1;display:flex;flex-direction:column}.picker-item .pi-name{font-weight:600;font-size:14px}.picker-item .pi-name,.picker-item .pi-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.picker-item .pi-sub{font-size:12px;color:var(--ink-soft)}.picker .picker-foot{padding:9px 12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-soft)}.profile-head{display:flex;align-items:center;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:18px}.profile-head .ph-info{min-width:0}.profile-head .ph-info h2{font-size:21px}.profile-head .ph-info .ph-pos{color:var(--ink-soft);font-size:14px;margin-top:2px}.profile-head .ph-info .ph-badges{display:flex;gap:7px;margin-top:9px;flex-wrap:wrap}.pf-section{margin-bottom:20px}.pf-section:last-child{margin-bottom:0}.pf-section>.pf-title{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--brand-600);display:flex;align-items:center;gap:7px;margin-bottom:10px}.pf-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px 22px;gap:12px 22px}.pf-row{display:flex;align-items:flex-start;gap:10px}.pf-row>svg{color:var(--ink-faint);flex-shrink:0;margin-top:2px}.pf-row .pf-k{font-size:12px;color:var(--ink-faint)}.pf-row .pf-v{font-size:14px;color:var(--ink);font-weight:500}@media (max-width:560px){.pf-grid{grid-template-columns:1fr}}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 700px at 80% -20%,var(--brand-050),transparent 55%),linear-gradient(180deg,var(--bg),var(--bg-tint))}.auth-card{width:100%;max-width:400px}.auth-card .head{text-align:center;margin-bottom:24px}.auth-card .head .mark{width:56px;height:56px;border-radius:16px;margin:0 auto 16px;background:linear-gradient(145deg,var(--brand),var(--brand-700));color:#fff;display:grid;place-items:center;box-shadow:0 14px 32px -14px rgba(37,99,235,.85),inset 0 1px 0 rgba(255,255,255,.3)}.auth-card h1{font-size:24px}.auth-card .head p{color:var(--ink-soft);margin:6px 0 0}.doc-wrap{min-height:100vh;background:var(--bg-tint);padding:28px 16px 60px;display:flex;flex-direction:column;align-items:center;gap:16px}.doc-actions{display:flex;gap:10px}.sheet{width:210mm;max-width:100%;background:#fff;color:#16202e;padding:20mm 18mm;box-shadow:var(--shadow-lg);border-radius:4px;font-size:15px;line-height:1.6}.sheet .doc-head{display:flex;align-items:center;gap:14px;border-bottom:2px solid #16202e;padding-bottom:14px}.sheet .doc-head .logo{width:52px;height:52px;border-radius:10px;object-fit:cover}.sheet .doc-head .logo-fallback{width:52px;height:52px;border-radius:10px;background:var(--brand);color:#fff;display:grid;place-items:center}.sheet .doc-head .co{font-size:20px}.sheet .doc-head .co,.sheet .doc-title{font-family:var(--font-display);font-weight:700}.sheet .doc-title{text-align:center;font-size:22px;margin:22px 0 18px}.sheet .doc-meta{color:#5b6b80;font-size:13px}.sheet .doc-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px 28px;gap:10px 28px;margin:14px 0}.sheet .doc-grid .k{color:#5b6b80;font-size:13px}.sheet .doc-grid .v{font-weight:600}.sheet .doc-block{margin:16px 0}.sheet .doc-block .lbl{color:#5b6b80;font-size:13px;margin-bottom:3px}.sheet .doc-reason{border:1px solid #d3dae6;border-radius:8px;padding:12px 14px;min-height:48px}.sheet .doc-signs{display:flex;justify-content:space-around;gap:24px;margin-top:48px;text-align:center}.sheet .doc-signs .sign{flex:1 1}.sheet .doc-signs .line{border-top:1px dotted #16202e;margin:40px 12px 8px}.sheet .doc-signs .who{font-size:13px;color:#5b6b80}@media print{.doc-wrap{padding:0;background:#fff;gap:0}.doc-actions{display:none!important}.sheet{box-shadow:none;width:auto;max-width:none;padding:0;border-radius:0}@page{size:A4;margin:16mm}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.rise{animation:rise .45s cubic-bezier(.2,.7,.2,1) both}.rise:nth-child(2){animation-delay:.04s}.rise:nth-child(3){animation-delay:.08s}.rise:nth-child(4){animation-delay:.12s}.scrim{display:none}@media (max-width:1023px){.sidebar{position:fixed;left:0;top:0;bottom:0;height:100dvh;transform:translateX(-100%);transition:transform .26s cubic-bezier(.2,.7,.2,1);box-shadow:var(--shadow-lg)}.shell.nav-open .sidebar{transform:translateX(0)}.shell.nav-open .scrim{display:block;position:fixed;inset:0;z-index:35;background:rgba(11,29,54,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:rise .2s ease both}.topbar .menu-btn{display:grid}}@media (max-width:720px){.page{padding:22px 16px 72px}.page>header h1{font-size:23px}.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}.grid.cols-4.keep-2{grid-template-columns:repeat(2,1fr)}.row{flex-wrap:wrap;gap:10px 14px}.card.pad{padding:18px 16px}}@media (prefers-reduced-motion:reduce){*,:after{animation:none!important;transition:none!important}}