:root{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Segoe UI Variable Text,Segoe UI,Microsoft YaHei UI,Microsoft YaHei,sans-serif;color:#1d2520;background:#eef0eb;font-synthesis:none;text-rendering:optimizeLegibility}:root[data-platform=macos]{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,sans-serif;-webkit-font-smoothing:antialiased}:root[data-platform=windows]{font-family:Segoe UI Variable Text,Segoe UI,Microsoft YaHei UI,Microsoft YaHei,Arial,sans-serif;text-rendering:auto;-webkit-font-smoothing:auto}*{box-sizing:border-box}body{margin:0;min-width:1100px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-loading{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:14px;background:#f4f6f1;color:#556159;font-size:12px}.app-loading .secondary-button{margin-top:8px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:40px;background:radial-gradient(circle at 18% 12%,#d8f2572b,transparent 34%),linear-gradient(145deg,#111c16,#203329)}.login-card{width:min(520px,100%);padding:34px;border:1px solid #ffffff1f;border-radius:24px;background:#fbfcf9;box-shadow:0 35px 100px #0308067a}.compact-login-card{width:min(500px,100%)}.login-brand{display:flex;align-items:center;gap:12px;padding-bottom:24px;border-bottom:1px solid #e3e7e0}.login-brand>span{width:43px;height:43px;display:grid;place-items:center;border-radius:13px;background:#1a2920;color:#d8f257;font-size:13px;font-weight:800}.login-brand strong,.login-brand small{display:block}.login-brand strong{color:#202b24;font-size:14px}.login-brand small{margin-top:3px;color:#89938c;font-size:9px;letter-spacing:.08em}.login-copy{margin:28px 0 22px}.login-copy h1{margin:6px 0 8px;color:#1b261f;font-size:25px;letter-spacing:-.04em}.login-copy p{margin:0;color:#778179;font-size:11px;line-height:1.7}.login-form{display:grid;gap:15px}.login-form label>span{display:block;margin-bottom:7px;color:#5d6860;font-size:10px;font-weight:700}.login-form input{width:100%;height:44px;padding:0 13px;border:1px solid #d8ded5;border-radius:10px;outline:0;background:#fff;color:#202b24;font-size:12px}.login-form input:focus{border-color:#849e38;box-shadow:0 0 0 3px #d8f25738}.login-submit{height:44px;margin-top:3px}.login-error{padding:10px 12px;border:1px solid #f0c9c2;border-radius:9px;background:#fff1ee;color:#a84639;font-size:10px;line-height:1.5}.login-security{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:23px;padding-top:18px;border-top:1px solid #e4e8e1}.login-security>div{min-width:0;padding:10px;border:1px solid #e2e8d7;border-radius:11px;background:#f5f8ee}.login-security>div>span{width:22px;height:22px;display:grid;place-items:center;margin-bottom:8px;border-radius:7px;background:#dfe9bf;color:#536728;font-size:8px;font-weight:800}.login-security p,.login-security strong,.login-security small{display:block;margin:0}.login-security strong{color:#435035;font-size:9px}.login-security small{margin-top:4px;color:#829071;font-size:8px;line-height:1.45}.app-shell{min-height:100vh;display:flex;background:#f5f6f2}.sidebar{position:fixed;inset:0 auto 0 0;width:246px;padding:28px 18px 22px;display:flex;flex-direction:column;background:#17231c;color:#f8faf6;border-right:1px solid #24372b}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 28px;border-bottom:1px solid #2a3a30}.brand-mark{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#d8f257;color:#17231c;font-weight:800;letter-spacing:-.05em}.brand strong,.brand span{display:block}.brand strong{font-size:15px}.brand span{margin-top:3px;color:#94a398;font-size:11px;letter-spacing:.08em}.nav-list{display:grid;gap:7px;margin-top:26px}.nav-item{border:0;border-radius:12px;padding:11px 12px;display:flex;align-items:center;gap:12px;background:transparent;color:#b8c3bb;text-align:left;transition:.18s ease}.nav-item:hover{background:#213228;color:#fff}.nav-item.active{background:#d8f257;color:#17231c;box-shadow:0 8px 24px #08110c55}.nav-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#ffffff0b;border:1px solid #ffffff14;font-size:12px;font-weight:700}.nav-item.active .nav-icon{background:#17231c;color:#d8f257;border-color:transparent}.nav-item strong,.nav-item small{display:block}.nav-item strong{font-size:14px;font-weight:600}.nav-item small{margin-top:2px;font-size:10px;opacity:.7}.db-status{margin-top:auto;padding:13px;display:flex;align-items:center;gap:10px;border:1px solid #304238;border-radius:12px;background:#1c2a22}.db-status strong,.db-status small{display:block}.db-status strong{font-size:11px}.db-status small{color:#87958b;font-size:9px;margin-top:2px}.status-dot{width:8px;height:8px;border-radius:50%;background:#f2b657;box-shadow:0 0 0 4px #f2b6571a}.db-status.ok .status-dot{background:#d8f257;box-shadow:0 0 0 4px #d8f2571a}.db-status.error .status-dot{background:#ef806e;box-shadow:0 0 0 4px #ef806e1a}.main-area{width:calc(100% - 246px);margin-left:246px}.topbar{height:100px;padding:22px 34px;display:flex;justify-content:space-between;align-items:center;background:#fff;border-bottom:1px solid #e5e8e1}.page-kicker{display:block;color:#8b958e;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.topbar h1{margin:5px 0 0;font-size:25px;letter-spacing:-.035em}.today-block{padding-left:20px;border-left:1px solid #e4e7e1;text-align:right}.today-block span,.today-block strong{display:block}.today-block span{color:#909992;font-size:10px}.today-block strong{margin-top:3px;font-size:13px}.topbar-actions{display:flex;align-items:center;gap:14px}.data-source-switcher{min-width:178px;padding:6px 8px 7px;border:1px solid #dfe5d9;border-radius:11px;background:#f8faf5}.data-source-switcher>span{display:block;margin:0 0 4px 2px;color:#89938b;font-size:8px;font-weight:700;letter-spacing:.08em}.data-source-switcher .select-trigger{height:28px;padding:0 7px;border:0;background:transparent;font-size:10px;font-weight:700}.data-source-switcher .select-control.open .select-trigger{box-shadow:none}.data-source-switcher .select-popover{right:0;left:auto;min-width:210px}.data-source-switcher.production{border-color:#e7bdb7;background:#fff5f2}.data-source-switcher.production>span{color:#b45a4d}.account-trigger{min-width:180px;padding:7px 9px;display:flex;align-items:center;gap:9px;border:1px solid transparent;border-radius:12px;background:transparent;color:#263029;text-align:left;transition:.16s ease}.account-trigger:hover{border-color:#dfe5d9;background:#f5f7f2}.account-avatar{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;background:#1c2a22;color:#d8f257;font-size:12px;font-weight:800;box-shadow:0 5px 13px #1c2a2225}.account-copy{min-width:0;flex:1}.account-copy strong,.account-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-copy strong{font-size:11px}.account-copy small{margin-top:3px;color:#909991;font-size:9px}.account-trigger>svg{width:15px;height:15px;fill:none;stroke:#829087;stroke-width:1.5}.content{padding:26px 34px 42px;max-width:1700px;margin:0 auto}.intro{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}.intro h2{margin:0;font-size:19px;letter-spacing:-.02em}.intro p{margin:7px 0 0;color:#768078;font-size:12px}.intro>span{padding:7px 11px;border:1px solid #dbe1d7;border-radius:999px;background:#fff;color:#657067;font-size:10px;white-space:nowrap}.filter-card{display:flex;align-items:end;flex-wrap:wrap;gap:13px;padding:18px;margin-bottom:18px;background:#fff;border:1px solid #e2e5df;border-radius:16px;box-shadow:0 5px 20px #1c2b2110}.field{min-width:170px;flex:1}.field>span{display:block;margin-bottom:7px;color:#667169;font-size:10px;font-weight:700}.field input{width:100%;height:38px;padding:0 11px;border:1px solid #d9ded7;border-radius:9px;outline:none;background:#fafbf9;color:#1d2520;font-size:12px;transition:.15s ease}.field input:focus{border-color:#759429;box-shadow:0 0 0 3px #d8f25733;background:#fff}.field textarea{width:100%;min-height:96px;padding:10px 11px;resize:vertical;border:1px solid #d9ded7;border-radius:9px;outline:none;background:#fafbf9;color:#1d2520;font-size:12px;line-height:1.6;transition:.15s ease}.field textarea:focus{border-color:#759429;box-shadow:0 0 0 3px #d8f25733;background:#fff}.select-control{position:relative;min-width:0}.select-trigger{width:100%;height:38px;padding:0 10px 0 11px;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #d9ded7;border-radius:9px;outline:none;background:#fafbf9;color:#1d2520;font-size:12px;text-align:left;transition:.15s ease}.select-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-trigger>svg{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:#77837a;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5;transition:transform .16s ease}.select-control.open .select-trigger{border-color:#759429;background:#fff;box-shadow:0 0 0 3px #d8f25733}.select-control.open .select-trigger>svg{transform:rotate(180deg)}.select-trigger:disabled{cursor:not-allowed;opacity:.55}.select-popover{position:absolute;z-index:80;top:calc(100% + 6px);left:0;width:max-content;min-width:100%;max-width:min(380px,70vw);max-height:280px;overflow-y:auto;padding:6px;border:1px solid #dce2d9;border-radius:11px;background:#fff;box-shadow:0 18px 45px #17231c28;animation:select-in .12s ease-out}@keyframes select-in{0%{transform:translateY(-3px);opacity:.6}}.select-popover>button{width:100%;min-height:36px;padding:8px 9px;display:flex;align-items:center;justify-content:space-between;gap:14px;border:0;border-radius:8px;background:transparent;color:#3d4840;font-size:11px;text-align:left}.select-popover>button:hover,.select-popover>button.active{background:#f3f6ec}.select-popover>button.selected{background:#edf4db;color:#425822;font-weight:700}.select-popover>button span{min-width:0;white-space:normal}.select-popover>button svg{width:15px;height:15px;flex:0 0 auto;fill:none;stroke:#68811e;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.field-error{display:block;margin-top:5px;color:#ad493c;font-size:9px}.primary-button,.secondary-button,.danger-button{height:38px;padding:0 18px;border-radius:9px;border:0;font-size:12px;font-weight:700}.primary-button{background:#1c2a22;color:#fff;box-shadow:0 5px 12px #16251c24}.primary-button:hover{background:#2d4034}.primary-button:disabled{cursor:wait;opacity:.6}.secondary-button{background:#eef1ec;color:#3a453e}.danger-button{background:#b74d40;color:#fff}.danger-button:hover{background:#9f3f34}.danger-button:disabled,.secondary-button:disabled{cursor:wait;opacity:.55}.data-source-dialog{max-width:430px}.data-source-symbol{width:44px;height:44px;display:grid;place-items:center;margin:0 auto 12px;border-radius:13px;background:#eaf1d8;color:#536927;font-size:11px;font-weight:800;letter-spacing:.08em}.data-source-symbol.production{background:#fff0ed;color:#ad493c}.data-source-dialog .confirm-copy p{margin:7px 0}.data-source-dialog .field-error{margin-top:10px;padding:8px 9px;border-radius:7px;background:#fff0ed}.department-picker,.picker-input{position:relative}.picker-input .department-picker-trigger{position:static;width:100%;height:38px;padding:0 38px 0 11px;display:flex;align-items:center;justify-content:space-between;gap:8px;overflow:hidden;border:1px solid #d9ded7;border-radius:9px;outline:0;background:#fafbf9;color:#1d2520;text-align:left}.picker-input .department-picker-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-input .department-picker-trigger>svg{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:#77837a;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.department-picker:focus-within .department-picker-trigger{border-color:#759429;box-shadow:0 0 0 3px #d8f25733;background:#fff}.picker-input>button:not(.department-picker-trigger){position:absolute;top:5px;right:5px;width:28px;height:28px;border:0;border-radius:7px;background:#edf0eb;color:#667169}.picker-input:has(>button:not(.department-picker-trigger)) .department-picker-trigger{padding-right:72px}.picker-input:has(>button:not(.department-picker-trigger)) .department-picker-trigger>svg{margin-right:30px}.picker-menu{position:absolute;z-index:82;top:calc(100% + 6px);left:0;width:min(480px,80vw);max-height:380px;overflow:hidden;padding:6px;border:1px solid #dbe0d8;border-radius:12px;background:#fff;box-shadow:0 18px 50px #18251d26}.picker-menu>button{width:100%;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:#263029;text-align:left}.picker-menu>button:hover,.picker-menu>button[aria-selected=true]{background:#f0f6dc}.picker-menu strong,.picker-menu small{display:block}.picker-menu strong{font-size:11px}.picker-menu small{margin-top:3px;color:#8b948d;font-size:9px;white-space:normal}.picker-message{padding:14px 10px;color:#8b948d;font-size:10px;text-align:center}.organization-tree{min-width:0;display:flex;flex-direction:column}.organization-tree-search{height:38px;margin-bottom:8px;padding:0 9px;display:flex;align-items:center;gap:7px;border:1px solid #dce1da;border-radius:9px;background:#fafbf9}.organization-tree-search>svg{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:#7b867e;stroke-linecap:round;stroke-width:1.5}.organization-tree-search input{min-width:0;height:34px;flex:1;border:0;outline:0;background:transparent;color:#2f3932;font-size:11px}.organization-tree-search>button{width:24px;height:24px;border:0;border-radius:6px;background:#edf0eb;color:#667169}.organization-tree-scroll{min-height:160px;max-height:510px;overflow:auto;padding-right:3px}.organization-tree-row{min-width:max-content;display:flex;align-items:center;border-radius:8px}.organization-tree-row:hover{background:#f4f6f1}.organization-tree-row.selected{background:#edf4db}.organization-tree-toggle{width:28px;height:32px;padding:7px;flex:0 0 auto;border:0;background:transparent}.organization-tree-toggle:disabled{cursor:default}.organization-tree-toggle svg{width:14px;height:14px;fill:none;stroke:#7d887f;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6;transition:transform .15s ease}.organization-tree-toggle[aria-expanded=true] svg{transform:rotate(90deg)}.organization-tree-node{min-width:0;min-height:32px;padding:4px 9px 4px 2px;display:flex;align-items:center;gap:7px;flex:1;border:0;background:transparent;color:#445047;font-size:11px;text-align:left}.organization-tree-node>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.organization-tree-node-icon{width:20px;height:20px;display:grid;place-items:center;flex:0 0 auto;border-radius:6px;background:#edf0eb}.organization-tree-row.selected .organization-tree-node{color:#40571e;font-weight:700}.organization-tree-row.selected .organization-tree-node-icon{background:#dce9b8}.organization-tree-node-icon svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4}.organization-tree-branch [role=list]{padding-left:18px}.organization-tree-message{min-height:150px;display:flex;align-items:center;justify-content:center;gap:9px;color:#5f6b62;font-size:10px}.organization-tree-message .loading-spinner{width:18px;height:18px;border-width:2px}.organization-tree.compact .organization-tree-scroll{max-height:320px}.data-card{position:relative;overflow:hidden;min-height:310px;background:#fff;border:1px solid #e2e5df;border-radius:16px;box-shadow:0 5px 20px #1c2b210d}.data-header{height:58px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eaede8}.data-header h3{display:inline;margin:0 9px 0 0;font-size:14px}.data-header span{color:#8b948d;font-size:10px}.query-empty-state{min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#8a938c}.query-empty-state>span{width:44px;height:44px;display:grid;place-items:center;margin-bottom:12px;border-radius:14px;background:#f0f2ed;font-size:22px}.query-empty-state strong{color:#515b54;font-size:12px}.query-empty-state p{margin:6px 0 0;font-size:10px}.list-loading-overlay{position:absolute;z-index:10;inset:58px 0 0;display:grid;place-items:center;background:#f9faf7cc;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.list-loading-dialog{min-width:180px;padding:18px 22px;display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid #dfe4da;border-radius:13px;background:#fff;color:#38433b;box-shadow:0 16px 45px #17231c22;font-size:11px}.loading-spinner{width:22px;height:22px;border:3px solid #e4e9dc;border-top-color:#759429;border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{height:42px;padding:0 14px;background:#f7f8f5;color:#778179;font-size:9px;font-weight:700;letter-spacing:.06em;text-align:left;text-transform:uppercase}th.wide{min-width:240px}td{height:62px;padding:0 14px;border-top:1px solid #eef0ed;color:#465048;font-size:11px}tbody tr:hover{background:#fbfcf9}.person-cell{display:flex;align-items:center;gap:9px}.person-cell>span{width:30px;height:30px;display:grid;place-items:center;flex:0 0 auto;border-radius:9px;background:#edf1e7;color:#4b5c4f;font-size:11px;font-weight:700}.person-cell strong,.person-cell small{display:block}.person-cell strong{color:#263029;font-size:11px}.person-cell small{max-width:250px;overflow:hidden;margin-top:2px;color:#929a94;font-size:9px;text-overflow:ellipsis}.tag{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:9px;font-weight:700}.tag.green{color:#4a6617;background:#edf7d5}.tag.blue{color:#315e74;background:#e1f0f5}.tag.amber{color:#815b21;background:#faf0d5}.mono{color:#313b34;font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.row-actions{display:flex;gap:9px}.text-button{padding:0;border:0;background:none;color:#4f6e1e;font-size:10px;font-weight:700}.text-button.danger{color:#b95345}.positive{color:#55751e}.negative{color:#bd4f40}.empty-state,.error-state{min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#7f8982}.empty-state>span{width:42px;height:42px;display:grid;place-items:center;margin-bottom:12px;border-radius:13px;background:#f0f2ed;color:#8c958e;font-size:11px}.empty-state strong,.error-state strong{color:#515b54;font-size:12px}.empty-state p,.error-state p{margin:6px 0 0;font-size:10px}.error-state{color:#a64c40;background:#fff8f6}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:14px;color:#7c867e;font-size:10px}.pagination div{display:flex;gap:7px}.pagination button{padding:7px 12px;border:1px solid #dce1da;border-radius:8px;background:#fff;color:#455047;font-size:10px}.pagination button:disabled{cursor:not-allowed;opacity:.45}.notice{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding:11px 14px;border:1px solid #d7e6b2;border-radius:10px;background:#f4fadf;color:#49621c;font-size:11px}.notice button{border:0;background:none;color:inherit;font-size:17px}.dialog-backdrop{position:fixed;z-index:30;inset:0;display:grid;place-items:center;padding:30px;background:#0c1510aa;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.dialog{width:min(620px,100%);padding:22px;border-radius:18px;background:#fff;box-shadow:0 30px 80px #0007}.attendance-dialog{width:min(880px,100%);max-height:calc(100vh - 50px);overflow-y:auto}.dialog-header{display:flex;justify-content:space-between;align-items:flex-start}.dialog-header h2{margin:5px 0 0;font-size:19px}.close-button{width:30px;height:30px;border:0;border-radius:8px;background:#f0f2ef;color:#536057;font-size:19px}.record-summary{margin:18px 0;padding:12px;border-radius:11px;background:#f6f8f3}.dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.dialog-grid .field:last-child{grid-column:1 / -1}.dialog-footer{display:flex;justify-content:flex-end;gap:9px;margin-top:22px;padding-top:17px;border-top:1px solid #e8ebe6}.inline-error{margin-bottom:14px;padding:9px 11px;border-radius:8px;background:#fff0ed;color:#a94134;font-size:10px}.sync-hint{display:grid;grid-template-columns:88px 1fr;gap:10px;margin:0 0 17px;padding:11px 13px;border:1px solid #dfe8c7;border-radius:10px;background:#f6fae9;color:#53623e;font-size:10px;line-height:1.6}.sync-hint strong{color:#344124}.dialog-detail{margin-top:20px;padding-top:17px;border-top:1px solid #e8ebe6}.dialog-detail>h3{margin:0 0 12px;font-size:13px}.confirm-dialog{width:min(430px,100%);padding:27px;border-radius:18px;background:#fff;text-align:center;box-shadow:0 30px 80px #0007}.confirm-dialog h2{margin:13px 0 9px;font-size:19px}.danger-symbol{width:46px;height:46px;display:grid;place-items:center;margin:0 auto;border-radius:14px;background:#fff0ed;color:#b74d40;font-size:22px;font-weight:800}.confirm-copy{color:#667169;font-size:11px;line-height:1.7}.confirm-dialog .dialog-footer{justify-content:center}.drawer-backdrop{position:fixed;z-index:25;inset:0;background:#0c15107a;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.drawer{position:absolute;inset:0 0 0 auto;width:min(680px,92vw);display:flex;flex-direction:column;background:#f8f9f6;box-shadow:-20px 0 70px #07110b48;animation:drawer-in .2s ease-out}@keyframes drawer-in{0%{transform:translate(25px);opacity:.75}}.drawer-header{min-height:86px;padding:20px 24px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #e1e5de;background:#fff}.drawer-header h2{margin:5px 0 0;font-size:20px}.drawer-body{overflow-y:auto;padding:22px 24px 40px}.account-drawer{width:min(450px,92vw);background:#f4f6f1}.account-drawer .drawer-body{display:grid;align-content:start;gap:15px}.account-profile-card{position:relative;padding:18px;display:flex;align-items:center;gap:13px;overflow:hidden;border-radius:15px;background:#1b2921;color:#fff;box-shadow:0 12px 28px #14201922}.account-profile-card:after{content:"";position:absolute;right:-28px;bottom:-48px;width:130px;height:130px;border:26px solid #d8f25712;border-radius:50%}.account-profile-avatar{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border-radius:14px;background:#d8f257;color:#19261e;font-size:17px;font-weight:800}.account-profile-card>div{min-width:0;flex:1}.account-profile-card>div strong,.account-profile-card>div span{display:block}.account-profile-card>div strong{font-size:14px}.account-profile-card>div span{margin-top:4px;color:#a8b4ab;font-size:9px}.account-state{z-index:1;display:inline-flex;align-items:center;gap:5px;color:#b7c4b9;font-size:9px;white-space:nowrap}.account-state i{width:6px;height:6px;border-radius:50%;background:#d8f257;box-shadow:0 0 0 4px #d8f25718}.account-section{padding:16px;border:1px solid #e0e5dc;border-radius:14px;background:#fff}.account-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.account-section-title span{color:#3d4941;font-size:10px;font-weight:800}.account-section-title small{color:#969f98;font-size:8px}.account-role-list{display:flex;flex-wrap:wrap;gap:7px}.account-role-list>span{padding:7px 10px;display:inline-flex;align-items:center;gap:7px;border:1px solid #dce5c6;border-radius:9px;background:#f3f7e8;color:#50632c;font-size:10px;font-weight:700}.account-role-list small{color:#8d9b70;font-size:8px;font-weight:500}.account-session-card{display:grid;grid-template-columns:1fr 1fr;gap:1px;padding:0;overflow:hidden;background:#e3e7e0}.account-session-card>div{min-width:0;padding:14px;background:#fff}.account-session-card span,.account-session-card strong{display:block}.account-session-card span{color:#919a93;font-size:8px}.account-session-card strong{margin-top:5px;overflow:hidden;color:#3e4941;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.account-actions{display:grid;gap:8px}.account-action{width:100%;padding:12px;display:flex;align-items:center;gap:11px;border:1px solid #e0e5dc;border-radius:13px;background:#fff;color:#354039;text-align:left;transition:.15s ease}.account-action:hover{border-color:#b9c98f;box-shadow:0 6px 18px #17231c0d;transform:translateY(-1px)}.account-action-icon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:10px;background:#edf2e4;color:#60752c;font-size:10px;font-weight:800}.account-action>span:nth-child(2){min-width:0;flex:1}.account-action strong,.account-action small{display:block}.account-action strong{font-size:10px}.account-action small{margin-top:4px;color:#929b94;font-size:8px}.account-action>b{color:#a1aaa4;font-size:20px;font-weight:400}.account-action.danger .account-action-icon{background:#fff0ed;color:#b14e40}.account-action.danger:hover{border-color:#e8c2bc}.detail-stack{display:grid;gap:18px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;overflow:hidden;margin:0;border:1px solid #e1e5de;border-radius:12px;background:#e1e5de}.detail-grid>div{min-width:0;padding:11px 13px;background:#fff}.detail-grid dt{margin-bottom:5px;color:#89938b;font-size:9px;font-weight:700}.detail-grid dd{overflow-wrap:anywhere;margin:0;color:#303a33;font-size:11px;line-height:1.5;white-space:normal}.device-id-value{display:grid;gap:6px;justify-items:start}.device-id-value .mono{word-break:break-all}.detail-section{display:grid;gap:10px}.section-title{display:flex;align-items:center;justify-content:space-between}.section-title h3{margin:0;font-size:13px}.section-title>span:not(.tag){color:#8b948d;font-size:9px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.metric{min-width:0;padding:11px;border:1px solid #e3e7df;border-radius:11px;background:#fff}.metric span,.metric strong{display:block}.metric span{color:#8a948c;font-size:9px}.metric strong{margin-top:6px;overflow-wrap:anywhere;color:#334037;font-size:12px}.metric.danger-metric{border-color:#f0cec8;background:#fff8f6}.metric.danger-metric strong{color:#ad493c}.subrecord,.leave-record{padding:14px;border:1px solid #e1e5de;border-radius:12px;background:#fff}.subrecord>strong{font-size:11px}.subrecord>p{margin:7px 0 5px;color:#4a554d;font-size:10px}.subrecord>small{color:#89938b;font-size:9px}.subrecord .detail-grid{margin-top:10px}.muted-panel,.loading-detail{padding:18px;border:1px dashed #d7ddd4;border-radius:11px;background:#f5f7f2;color:#869088;font-size:10px;text-align:center}.detail-state{min-height:180px;border-radius:12px}.balance-hero{padding:20px;border-radius:15px;background:#1c2a22;color:#fff}.balance-hero span,.balance-hero strong,.balance-hero small{display:block}.balance-hero span{color:#b8c3bb;font-size:10px}.balance-hero strong{margin:7px 0;color:#d8f257;font-size:31px}.balance-hero small{color:#a6b2a9;font-size:9px}.legend{display:flex;align-items:center;gap:7px;color:#7e8981;font-size:9px}.balance-note{padding:10px 12px;border:1px solid #dfe8c7;border-radius:10px;background:#f6fae9;color:#617048;font-size:9px;line-height:1.6}.device-record-toolbar{display:grid;grid-template-columns:minmax(150px,180px) minmax(150px,180px) 1fr;gap:12px;align-items:end}.device-record-toolbar label{display:grid;gap:6px;color:#66705c;font-size:10px;font-weight:700}.device-record-toolbar .select-control{width:100%}@media(max-width:720px){.device-record-toolbar{grid-template-columns:1fr}}.batch-toolbar{display:flex;flex-wrap:wrap;gap:7px}.filter-chip{padding:7px 10px;border:1px solid #dbe0d8;border-radius:999px;background:#fff;color:#68736b;font-size:9px;font-weight:700}.filter-chip:hover{border-color:#b8ca85}.filter-chip.active{border-color:#1c2a22;background:#1c2a22;color:#fff}.batch-summary{display:flex;justify-content:space-between;color:#8b948d;font-size:9px}.batch-pagination{display:flex;justify-content:flex-end;gap:7px}.batch-pagination button{padding:7px 12px;border:1px solid #dce1da;border-radius:8px;background:#fff;color:#455047;font-size:10px}.batch-pagination button:disabled{cursor:not-allowed;opacity:.45}.leave-record.active{border-color:#d8e8ad;box-shadow:inset 3px 0 #a6c63c}.leave-record-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.leave-record-head strong,.leave-record-head span{display:block}.leave-record-head strong{font-size:13px}.leave-record-head span{margin-top:2px;color:#929b95;font-size:9px}.linked-flow-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid #dbe6bd;border-radius:12px;background:#f5f9e8}.linked-flow-card strong,.linked-flow-card span{display:block}.linked-flow-card strong{color:#334126;font-size:11px}.linked-flow-card span{margin-top:4px;color:#778268;font-size:9px}.linked-flow-card .primary-button{flex:0 0 auto}.workflow-filter-card{display:grid;grid-template-columns:repeat(6,minmax(125px,1fr));align-items:end}.workflow-filter-card .field{min-width:0}.workflow-date-range{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:13px}.workflow-filter-card>.primary-button{grid-column:6;justify-self:end}.truncate-title{display:block;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sensitive-value{display:inline-flex;align-items:center;gap:7px}.sensitive-value button{width:24px;height:24px;display:inline-grid;place-items:center;border:1px solid #dce2d8;border-radius:7px;background:#f4f6f1;color:#647157;font-size:10px}.admin-intro{margin-bottom:17px}.admin-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 18px}.admin-tab{position:relative;min-width:0;padding:12px 14px;display:flex;align-items:center;gap:10px;border:1px solid #e0e4de;border-radius:13px;background:#fff;color:#4f5a53;text-align:left;transition:.16s ease}.admin-tab:hover{border-color:#b8c88a;transform:translateY(-1px)}.admin-tab.active{border-color:#1c2a22;background:#1c2a22;color:#fff;box-shadow:0 8px 20px #17231c1d}.admin-tab-icon{width:32px;height:32px;display:grid;place-items:center;flex:0 0 auto;border-radius:9px;background:#eef2e9;color:#5d6e4c;font-size:10px;font-weight:800}.admin-tab.active .admin-tab-icon{background:#d8f257;color:#1c2a22}.admin-tab>span:nth-child(2){min-width:0;flex:1}.admin-tab strong,.admin-tab small{display:block}.admin-tab strong{font-size:11px}.admin-tab small{margin-top:3px;color:#909991;font-size:8px}.admin-tab.active small{color:#9eaba2}.admin-tab>b{min-width:24px;padding:4px 6px;border-radius:999px;background:#f0f2ed;color:#768078;font-size:8px;text-align:center}.admin-tab.active>b{background:#ffffff12;color:#d8f257}.admin-stack{display:grid;gap:18px}.role-catalog-card,.admin-create-card{padding:18px;border:1px solid #e1e5df;border-radius:16px;background:#fff;box-shadow:0 5px 20px #1c2b210d}.admin-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:14px}.admin-section-heading h3{margin:5px 0 0;font-size:14px}.fixed-role-note{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #e1e6d6;border-radius:9px;background:#f6f8f1;color:#768269;font-size:9px}.fixed-role-note i{width:7px;height:7px;border:2px solid #738534;border-radius:50%}.role-catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.role-card{min-width:0;padding:14px;border:1px solid #e2e6df;border-radius:13px;background:#fafbf8}.role-card header{display:flex;align-items:center;gap:9px}.role-card header>span{width:33px;height:33px;display:grid;place-items:center;flex:0 0 auto;border-radius:9px;background:#1c2a22;color:#d8f257;font-size:11px;font-weight:800}.role-card header>div{min-width:0;flex:1}.role-card header strong,.role-card header small{display:block}.role-card header strong{font-size:11px}.role-card header small{margin-top:2px;color:#979f99;font-size:8px}.role-card header>b{padding:4px 7px;border-radius:999px;background:#eef2e7;color:#68765a;font-size:8px}.role-card>p{min-height:30px;margin:10px 0;color:#7d877f;font-size:9px;line-height:1.55}.permission-chip-list{display:flex;flex-wrap:wrap;gap:5px}.permission-chip-list>span{padding:4px 6px;border-radius:6px;background:#eef1eb;color:#69736c;font-size:8px}.role-edit-button{width:100%;height:29px;margin-top:11px;border:1px solid #dce3d4;border-radius:8px;background:#fff;color:#5d702f;font-size:9px;font-weight:700}.role-edit-button:hover{border-color:#aac16c;background:#f4f8e9}.role-attendance_maintainer header>span{background:#526e2b}.role-viewer header>span{background:#445860;color:#cbe8f2}.admin-create-card{display:grid;gap:15px}.admin-create-heading{display:flex;align-items:center;gap:11px}.admin-create-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#eaf2d6;color:#526d20;font-size:20px}.admin-create-heading h3,.admin-create-heading p{margin:0}.admin-create-heading h3{font-size:13px}.admin-create-heading p{margin-top:4px;color:#89928b;font-size:9px}.admin-create-fields{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px}.admin-create-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:13px;border-top:1px solid #ebede9}.admin-create-footer>span{color:#8a938c;font-size:9px}.admin-users-card{min-height:260px}.admin-users-card .data-header{height:auto;min-height:66px}.admin-users-card .data-header .page-kicker,.audit-card .data-header .page-kicker{margin-bottom:4px;font-size:8px}.admin-users-card .data-header h3,.audit-card .data-header h3{display:block;margin:0 0 4px}.user-card-list{display:grid;gap:10px;padding:14px;background:#f6f7f4}.user-manage-card{overflow:hidden;border:1px solid #e0e5dc;border-radius:13px;background:#fff;transition:.16s ease}.user-manage-card:hover{border-color:#ccd7bd;box-shadow:0 6px 17px #1c2a220b}.user-manage-card.disabled{opacity:.78}.user-manage-header{padding:13px 15px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ecefeb}.person-cell strong em{margin-left:6px;padding:3px 6px;border-radius:999px;background:#edf5da;color:#5d7625;font-size:7px;font-style:normal;vertical-align:1px}.status-switch{padding:6px 8px;display:flex;align-items:center;gap:7px;border:1px solid #e2e5e0;border-radius:9px;background:#f6f7f5;color:#79827c}.status-switch>i{width:25px;height:14px;padding:2px;display:flex;border-radius:999px;background:#cbd1cc;transition:.16s ease}.status-switch>i span{width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:.16s ease}.status-switch>strong{font-size:8px}.status-switch.active{border-color:#dce5c4;background:#f4f8ea;color:#60782c}.status-switch.active>i{justify-content:flex-end;background:#88a934}.status-switch:disabled{cursor:not-allowed;opacity:.6}.user-account-editor{padding:12px 15px;display:grid;grid-template-columns:minmax(180px,320px) 1fr;align-items:end;gap:14px;border-bottom:1px solid #ecefeb;background:#fcfdfb}.user-account-editor>small{padding-bottom:8px;color:#8a938c;font-size:8px;line-height:1.5}.user-role-editor{padding:13px 15px}.user-card-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.user-card-label span{color:#57625a;font-size:9px;font-weight:800}.user-card-label small{color:#969e98;font-size:8px}.role-toggle-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.role-toggle-list>button{min-width:0;padding:8px;display:flex;align-items:center;gap:8px;border:1px solid #e2e5e0;border-radius:9px;background:#fafbf9;color:#59645c;text-align:left}.role-toggle-list>button:hover{border-color:#b8c88d}.role-toggle-list>button.selected{border-color:#bacc89;background:#f1f6e4;color:#4f6425}.role-toggle-list>button>i{width:20px;height:20px;display:grid;place-items:center;flex:0 0 auto;border:1px dashed #bdc4be;border-radius:6px;color:#8d9690;font-size:9px;font-style:normal}.role-toggle-list>button.selected>i{border-style:solid;border-color:#92ad4d;background:#78932f;color:#fff}.role-toggle-list>button>span{min-width:0;flex:1}.role-toggle-list strong,.role-toggle-list small{display:block}.role-toggle-list strong{font-size:9px}.role-toggle-list small{margin-top:2px;overflow:hidden;color:#939b95;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.role-toggle-list b{padding:3px 5px;border-radius:5px;background:#dce8be;font-size:7px}.user-manage-footer{padding:10px 15px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #ecefeb;background:#fafbf9}.user-meta{display:flex;align-items:center;gap:18px}.user-meta>span small,.user-meta>span strong{display:block}.user-meta>span small{color:#9aa19c;font-size:7px}.user-meta>span strong{margin-top:3px;color:#626d65;font-size:8px}.password-change-flag{padding:5px 7px;border-radius:7px;background:#fff1d9;color:#856321;font-size:8px}.unsaved-hint{align-self:center;color:#826522;font-size:8px}.compact-button{height:31px;padding:0 11px;font-size:9px}.admin-empty{min-height:145px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#939c95;text-align:center}.admin-empty.compact{grid-column:1 / -1;min-height:90px}.admin-empty strong,.admin-empty span{display:block}.admin-empty strong{color:#59635c;font-size:10px}.admin-empty span{margin-top:5px;font-size:8px}.audit-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.audit-summary-grid article{padding:14px;border:1px solid #e0e4de;border-radius:13px;background:#fff}.audit-summary-grid span,.audit-summary-grid strong,.audit-summary-grid small{display:block}.audit-summary-grid span{color:#818a84;font-size:9px}.audit-summary-grid strong{margin:7px 0 4px;color:#263129;font-size:20px}.audit-summary-grid small{color:#9aa29c;font-size:8px}.audit-summary-grid article.success{border-color:#dce8c1;background:#f9fbf4}.audit-summary-grid article.success strong{color:#668229}.audit-summary-grid article.warning{border-color:#f0d8bd;background:#fffaf4}.audit-summary-grid article.warning strong{color:#ad6d2b}.audit-card .data-header{height:auto;min-height:66px}.audit-card .data-header>b,.data-header>b{color:#879087;font-size:8px;font-weight:600}.audit-header{gap:18px;padding-block:11px}.audit-header>div:first-child{min-width:210px}.audit-filters{display:flex;align-items:flex-end;gap:9px}.audit-filters>label{width:145px;display:grid;gap:5px}.audit-filters>label>span{color:#89928c;font-size:8px;font-weight:700}.audit-filters .select-control{width:100%}.audit-list{display:grid;background:#f7f8f5}.audit-event{position:relative;padding:15px 18px;display:grid;grid-template-columns:31px minmax(0,1fr);gap:11px;border-top:1px solid #e5e8e3;background:#fff}.audit-event:first-child{border-top:0}.audit-event:hover{background:#fcfdfa}.audit-event-icon{width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:#edf5dc;color:#648026;font-size:10px;font-weight:800}.audit-event.failed .audit-event-icon{background:#fff0ed;color:#b64e40}.audit-event-main{min-width:0}.audit-event-main>header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.audit-event-main header strong,.audit-event-main header code{display:block}.audit-event-main header strong{color:#303a33;font-size:10px}.audit-event-main header code{margin-top:3px;color:#99a19b;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:7px}.audit-event-code{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.review-status{margin-top:3px;padding:3px 6px;border-radius:999px;background:#eef1ed;color:#6f7971;font-size:7px}.review-status.pending{background:#fff0ed;color:#ad4e42}.review-status.investigating{background:#fff2dd;color:#906426}.review-status.resolved{background:#edf5dc;color:#5f7926}.review-status.ignored{background:#edf0f1;color:#66747a}.audit-event-main time{color:#7f8981;font-size:8px;white-space:nowrap}.audit-event-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:11px}.audit-event-meta>span{min-width:0;padding-left:9px;border-left:2px solid #edf0eb}.audit-event-meta small,.audit-event-meta b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-event-meta small{color:#9aa19c;font-size:7px}.audit-event-meta b{margin-top:4px;color:#5d6860;font-size:8px;font-weight:600}.audit-event-meta b.success{color:#637e28}.audit-event-meta b.failed{color:#b64e40}.audit-device{min-width:0;margin-top:10px;padding:7px 9px;display:flex;align-items:center;gap:9px;border-radius:7px;background:#f5f7f3}.audit-device span{flex:0 0 auto;color:#8f9891;font-size:7px}.audit-device p{min-width:0;overflow:hidden;margin:0;color:#77817a;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.audit-review-summary{margin-top:10px;padding:10px 11px;display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #eadfd6;border-radius:10px;background:#fffbf7}.audit-review-summary>div{min-width:0}.audit-review-summary span,.audit-review-summary strong,.audit-review-summary small{display:block}.audit-review-summary span{color:#987f6c;font-size:7px}.audit-review-summary strong{margin-top:4px;overflow:hidden;color:#594a40;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.audit-review-summary small{margin-top:4px;color:#a09287;font-size:7px}.audit-review-summary .secondary-button{flex:0 0 auto;height:30px;padding-inline:10px;font-size:8px}.role-permission-drawer{width:min(560px,92vw)}.role-permission-drawer .drawer-body{display:grid;align-content:start;gap:14px}.role-permission-hero{padding:15px;display:flex;align-items:center;gap:11px;border-radius:14px;background:#1c2a22;color:#fff}.role-permission-hero>span{width:39px;height:39px;display:grid;place-items:center;border-radius:11px;background:#d8f257;color:#1c2a22;font-size:13px;font-weight:800}.role-permission-hero>div{min-width:0;flex:1}.role-permission-hero strong,.role-permission-hero small{display:block}.role-permission-hero strong{font-size:12px}.role-permission-hero small{margin-top:4px;color:#a8b4ab;font-size:8px}.role-permission-hero>b{padding:5px 8px;border-radius:999px;background:#ffffff12;color:#d8f257;font-size:8px}.role-permission-note{padding:10px 12px;border:1px solid #dce6c3;border-radius:10px;background:#f5f9e9;color:#65734f;font-size:9px;line-height:1.65}.permission-editor-groups{display:grid;gap:16px}.permission-editor-groups section>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.permission-editor-groups h3{margin:0;font-size:11px}.permission-editor-groups header span{color:#8f9891;font-size:8px}.permission-option-list{display:grid;gap:7px}.permission-option-list>button{width:100%;padding:10px;display:flex;align-items:center;gap:10px;border:1px solid #e0e4de;border-radius:10px;background:#fff;color:#59645c;text-align:left}.permission-option-list>button:hover{border-color:#b8c98a}.permission-option-list>button.selected{border-color:#b5c981;background:#f3f7e9;color:#4d6225}.permission-option-list>button>i{width:23px;height:23px;display:grid;place-items:center;flex:0 0 auto;border:1px solid #cdd3cd;border-radius:7px;background:#f7f8f6;font-size:9px;font-style:normal}.permission-option-list>button.selected>i{border-color:#78942e;background:#78942e;color:#fff}.permission-option-list>button>span{min-width:0;flex:1}.permission-option-list strong,.permission-option-list small,.permission-option-list code{display:block}.permission-option-list strong{font-size:10px}.permission-option-list small{margin-top:3px;color:#8b948e;font-size:8px}.permission-option-list code{margin-top:4px;color:#9ca39e;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:7px}.permission-option-list>button>b{padding:4px 6px;border-radius:6px;background:#dce8bd;font-size:7px}.permission-option-list>button:disabled{cursor:not-allowed;opacity:.72}.role-permission-footer{position:sticky;bottom:-40px;padding:14px 0 0;display:flex;justify-content:flex-end;gap:8px;border-top:1px solid #e5e8e2;background:#f8f9f6}.reset-password-dialog{width:min(520px,100%)}.reset-password-dialog .record-summary{color:#68736b;font-size:10px;line-height:1.6}.audit-review-dialog{width:min(540px,100%)}.audit-review-dialog .dialog-header p{max-width:430px;overflow:hidden;margin:6px 0 0;color:#7c8780;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.audit-review-context{margin:17px 0 14px;padding:12px 13px;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;border:1px solid #eadfd6;border-radius:11px;background:#fffbf7}.audit-review-context span{color:#937d6c;font-size:8px}.audit-review-context strong{color:#a94c40;font-size:10px}.audit-review-context small{grid-column:1 / -1;color:#9a8d83;font-size:8px}.audit-review-dialog .field+.field{margin-top:13px}.sensitive-value button:hover{border-color:#b7ca82;background:#f0f6dc}.sensitive-value button:disabled{cursor:wait;opacity:.55}.workflow-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px;border-radius:14px;background:#1c2a22;color:#fff}.workflow-hero span:not(.tag),.workflow-hero small{display:block;color:#aab6ad;font-size:9px}.workflow-hero h3{margin:7px 0;color:#fff;font-size:17px;line-height:1.4}.workflow-progress{display:grid;gap:8px;padding:14px;border:1px solid #e1e5de;border-radius:12px;background:#fff}.workflow-progress>div:first-child{display:flex;justify-content:space-between}.workflow-progress strong{font-size:11px}.workflow-progress span,.workflow-progress small{color:#849087;font-size:9px}.progress-track{height:8px;overflow:hidden;border-radius:999px;background:#e9ede6}.progress-track span{display:block;height:100%;border-radius:inherit;background:#a9c934}.workflow-timeline{display:grid}.workflow-step{position:relative;padding:0 0 14px 24px}.workflow-step:before{content:"";position:absolute;top:13px;bottom:-2px;left:6px;width:1px;background:#d8ddd5}.workflow-step:last-child:before{display:none}.timeline-dot{position:absolute;z-index:1;top:9px;left:1px;width:11px;height:11px;border:2px solid #fff;border-radius:50%;background:#91b128;box-shadow:0 0 0 1px #b9c99b}.workflow-step.pending .timeline-dot{background:#e5a944;box-shadow:0 0 0 1px #e3c48e}.step-card{padding:13px;border:1px solid #e1e5de;border-radius:12px;background:#fff}.step-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:11px}.step-head strong,.step-head small{display:block}.step-head strong{font-size:11px}.step-head small{margin-top:3px;color:#89938b;font-size:9px}.step-card .detail-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.workflow-descriptions{display:grid;gap:8px}.workflow-descriptions article{padding:13px 14px;border:1px solid #dfe5da;border-radius:11px;background:#fff}.workflow-descriptions strong{color:#68746a;font-size:9px}.workflow-descriptions p{margin:7px 0 0;color:#303a33;font-size:11px;line-height:1.7;white-space:pre-wrap}.approval-opinion{margin-top:10px;padding:10px 12px;border:1px solid #dde7c7;border-radius:8px;background:#f5f8ee}.approval-opinion strong{color:#68745c;font-size:9px}.approval-opinion p{margin:5px 0 0;color:#39443b;font-size:10px;line-height:1.65;white-space:pre-wrap}.attendance-view-switch,.module-view-switch{width:fit-content;max-width:100%;display:flex;flex-wrap:wrap;gap:4px;margin:-8px 0 18px;padding:4px;border:1px solid #dde2da;border-radius:11px;background:#eaede7}.attendance-view-switch button,.module-view-switch button{height:32px;padding:0 14px;border:0;border-radius:8px;background:transparent;color:#6e7971;font-size:10px;font-weight:700}.attendance-view-switch button.active,.module-view-switch button.active{background:#fff;color:#243029;box-shadow:0 3px 10px #1c2a2217}.overview-summary{margin:-2px 0 18px;display:grid;gap:9px}.overview-summary .metric{background:#fbfcfa}.analysis-strip{min-height:38px;padding:8px 12px;display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;border:1px solid #e1e6dc;border-radius:10px;background:#f8faf5;color:#6f7a71;font-size:9px}.analysis-strip span{white-space:nowrap}.analysis-strip strong{margin-right:3px;color:#344039;font-size:11px}.analysis-strip small{margin-left:auto;color:#8b958d;font-size:9px}.warning-value{color:#9b6c1d}.inline-error{margin:-7px 0 15px;padding:9px 11px;border:1px solid #edccc6;border-radius:9px;background:#fff5f2;color:#a8483d;font-size:10px}.batch-filter-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.batch-warning-filter{width:132px;flex:0 0 auto}.batch-warning-filter>span{display:block;margin-bottom:5px;color:#667169;font-size:9px;font-weight:700}.batch-warning-filter .select-trigger{height:32px;padding:0 8px 0 9px;gap:7px;border-radius:8px;font-size:10px}.batch-warning-filter .select-trigger>svg{width:14px;height:14px}.detail-export-row{padding:9px 11px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #e1e6dc;border-radius:10px;background:#f8faf5}.detail-export-row span{color:#758078;font-size:9px;line-height:1.5}.detail-export-row .secondary-button{flex:0 0 auto}.person-calendar-link{margin:-5px;padding:5px;border:0;border-radius:10px;background:transparent;text-align:left}.person-calendar-link:hover{background:#f0f5e5}.person-calendar-link:focus-visible{outline:2px solid #759429;outline-offset:2px}.people-attendance-layout{min-height:570px;display:grid;grid-template-columns:minmax(250px,300px) minmax(0,1fr);gap:16px}.organization-panel,.department-people-panel{min-width:0;border:1px solid #e0e4de;border-radius:16px;background:#fff;box-shadow:0 5px 20px #1c2b210d}.organization-panel{padding:16px 13px 13px}.organization-panel-heading,.department-people-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.organization-panel-heading{margin-bottom:13px;padding:0 3px 12px;border-bottom:1px solid #e8ebe6}.organization-panel-heading h3,.department-people-header h3{margin:0;color:#2b352e;font-size:14px}.organization-panel-heading span,.department-people-header span{display:block;margin-top:4px;overflow:hidden;color:#5f6b62;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.organization-panel-heading b,.department-people-header>b{padding:4px 7px;border-radius:7px;background:#edf2e4;color:#5d712e;font-size:9px}.department-people-panel{position:relative;padding:18px}.department-people-header{min-height:44px}.department-people-header>div{min-width:0}.people-attendance-filters{margin:13px -18px 0;padding:13px 18px;display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,.6fr) auto;align-items:end;gap:10px;border-block:1px solid #e8ebe6;background:#fafbf9}.people-attendance-filters .field{min-width:0}.people-attendance-empty{min-height:370px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#5f6b62;text-align:center}.people-attendance-empty>span{width:42px;height:42px;display:grid;place-items:center;margin-bottom:12px;border-radius:13px;background:#edf1e7;color:#60705f;font-size:10px;font-weight:800}.people-attendance-empty strong{color:#4b564e;font-size:12px}.people-attendance-empty p{max-width:360px;margin:6px 0 0;font-size:11px;line-height:1.6}.department-person-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px}.department-person-card{min-width:0;min-height:66px;padding:10px 11px;display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,.65fr) auto;align-items:center;gap:10px;border:1px solid #e2e6df;border-radius:11px;background:#fff;color:#344038;text-align:left;transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease,transform .14s ease}.department-person-card:hover{border-color:#bdca9d;background:#fbfdf7;box-shadow:0 6px 16px #2130210d;transform:translateY(-1px)}.department-person-card:focus-visible{outline:2px solid #759429;outline-offset:2px}.department-person-card .person-cell{min-width:0}.department-person-card .person-cell>div{min-width:0}.department-person-meta strong,.department-person-meta small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.department-person-meta strong{font-size:10px}.department-person-meta small{margin-top:4px;color:#5f6b62;font-size:10px}.department-person-action{display:inline-flex;align-items:center;gap:3px;color:#536d1f;font-size:10px;font-weight:700;white-space:nowrap}.department-person-action svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6}.department-people-panel>.list-loading-overlay{inset:116px 0 0;border-radius:0 0 16px 16px}.attendance-calendar-drawer{width:min(1100px,96vw)}.calendar-toolbar{margin-bottom:14px;padding:12px 14px;display:flex;align-items:end;gap:10px;border:1px solid #e0e4de;border-radius:12px;background:#fff}.calendar-toolbar .field{max-width:240px}.attendance-calendar-card.embedded{min-height:520px;box-shadow:none}.attendance-calendar-card{position:relative;min-height:420px;padding:18px;border:1px solid #e0e4de;border-radius:16px;background:#fff;box-shadow:0 5px 20px #1c2b210d}.attendance-calendar-card .list-loading-overlay{inset:0;border-radius:inherit}.calendar-empty{min-height:380px;display:grid;place-content:center;justify-items:center;color:#5f6b62}.calendar-empty strong{color:#505b53;font-size:12px}.calendar-empty span{margin-top:6px;font-size:10px}.calendar-header{min-height:48px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.calendar-header>strong{color:#344038;font-size:15px}.calendar-weekdays,.attendance-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.calendar-weekdays{margin:12px 0 7px}.calendar-weekdays span{color:#5f6b62;font-size:10px;font-weight:700;text-align:center}.calendar-spacer{min-height:112px;border-radius:11px;background:#fafbf9}.calendar-day{min-width:0;min-height:112px;padding:9px;display:flex;flex-direction:column;gap:7px;overflow:hidden;border:1px solid #e4e7e2;border-radius:11px;background:#fff;color:#364139;text-align:left;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.calendar-day:hover{border-color:#aabd76;box-shadow:0 6px 16px #27392013;transform:translateY(-1px)}.calendar-day.status-leave{background:#fbfdfe}.calendar-day.status-late,.calendar-day.status-early,.calendar-day.status-missing,.calendar-day.status-absent{background:#fffdf9}.calendar-day.status-rest,.calendar-day.status-no_schedule{color:#89928c;background:#f8f9f7}.calendar-day-number{display:flex;align-items:center;justify-content:space-between;color:#263129;font-size:14px;font-weight:800}.calendar-day-number small{padding:3px 5px;border-radius:6px;background:#eef2e9;color:#526047;font-size:9px}.calendar-day.status-normal .calendar-day-number small{background:#edf3dc;color:#5b7127}.calendar-day.status-leave .calendar-day-number small{background:#e5f1f5;color:#48778a}.calendar-day.status-late .calendar-day-number small,.calendar-day.status-early .calendar-day-number small,.calendar-day.status-missing .calendar-day-number small,.calendar-day.status-absent .calendar-day-number small{background:#fff0da;color:#8d6323}.calendar-shift{overflow:hidden;color:#5f6b62;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.calendar-punch{display:flex;align-items:center;gap:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.calendar-punch i{color:#59645c;font-style:normal}.calendar-leave,.calendar-alert{overflow:hidden;padding:4px 6px;border-radius:6px;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.calendar-leave{background:#eaf4f7;color:#48778a}.calendar-alert{background:#fff0da;color:#8d6323}.day-status-hero{padding:13px;display:flex;align-items:center;gap:9px;border-radius:12px;background:#f0f3ed}.day-status-hero strong{color:#303c34;font-size:11px}.day-status-hero>span:last-child{margin-left:auto;color:#5f6b62;font-size:10px}.day-sign-timeline{display:grid}.day-sign-timeline article{position:relative;padding:9px 0 9px 22px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #edf0eb}.day-sign-timeline article:last-child{border-bottom:0}.day-sign-timeline article>i{position:absolute;left:3px;width:8px;height:8px;border-radius:50%;background:#8daa36;box-shadow:0 0 0 4px #edf3dd}.day-sign-timeline article>div{min-width:0;flex:1}.day-sign-timeline strong,.day-sign-timeline span,.day-sign-timeline small{display:block}.day-sign-timeline strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.day-sign-timeline span{margin-top:3px;color:#59665d;font-size:10px}.day-sign-timeline small{margin-top:3px;overflow:hidden;color:#657168;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.drawer-sticky-actions{position:sticky;bottom:-40px;padding:13px 0 0;display:flex;justify-content:flex-end;gap:8px;border-top:1px solid #e4e8e1;background:#f8f9f6}.correction-fields{margin:0;padding:0;border:0}.correction-fields:disabled{opacity:.62}.correction-preview{margin-top:16px;padding:14px;border:1px solid #dfe5d7;border-radius:13px;background:#f9fbf5}.correction-diff-list{display:grid;margin-top:10px;border:1px solid #e0e5dc;border-radius:10px;background:#fff}.correction-diff-list>div{min-width:0;padding:8px 10px;display:grid;grid-template-columns:120px minmax(0,1fr) 18px minmax(0,1fr);align-items:center;gap:7px;border-top:1px solid #edf0eb;font-size:8px}.correction-diff-list>div:first-child{border-top:0}.correction-diff-list strong{color:#667168}.correction-diff-list span{overflow:hidden;color:#3d4840;text-overflow:ellipsis;white-space:nowrap}.correction-diff-list b{color:#91a087;text-align:center}.correction-diff-list .danger span:last-child{color:#ac4c3f}.calculation-trace{margin-top:10px;padding:10px 12px;border:1px solid #dce7c2;border-radius:9px;background:#f1f6e5}.calculation-trace strong{display:block;margin-bottom:5px;color:#59694b;font-size:9px}.calculation-trace p{margin:3px 0;color:#68745e;font-size:8px;line-height:1.55}.inline-warning{margin-top:8px;padding:8px 10px;border-radius:8px;background:#fff2df;color:#876428;font-size:8px;line-height:1.55}.affected-dates{margin:9px 0 0;color:#768179;font-size:8px}.operation-json{max-height:360px;overflow:auto;margin:0;padding:12px;border-radius:10px;background:#1d2922;color:#d9e5d2;font:9px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;word-break:break-word}.operation-target-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.operation-target-list>div{display:grid;gap:3px;padding:10px 12px;border:1px solid #e1e5de;border-radius:10px;background:#f8faf7}.operation-target-list strong{color:#303a33;font-size:11px}.operation-target-list span{color:#7b867e;font:9px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}.table-secondary{display:block;margin-top:3px;color:#959d97;font-size:8px;font-weight:400}@media(max-width:1250px){.sidebar{width:220px}.main-area{width:calc(100% - 220px);margin-left:220px}.content,.topbar{padding-inline:24px}.workflow-filter-card{grid-template-columns:repeat(3,minmax(150px,1fr))}.workflow-filter-card>.primary-button{grid-column:3}.admin-create-fields{grid-template-columns:repeat(2,minmax(150px,1fr))}.calendar-day{min-height:104px}.calendar-weekdays,.attendance-calendar-grid{gap:5px}.department-person-list{grid-template-columns:1fr}}@media(max-width:1180px){.data-source-switcher{min-width:150px}.account-trigger{min-width:145px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.role-catalog-grid{grid-template-columns:1fr}.role-toggle-list{grid-template-columns:repeat(3,minmax(0,1fr))}}:root[data-platform=windows] .page-kicker,:root[data-platform=windows] th,:root[data-platform=windows] .tag,:root[data-platform=windows] .field-error{font-size:10px}:root[data-platform=windows] .field>span,:root[data-platform=windows] .nav-item small,:root[data-platform=windows] .data-header span,:root[data-platform=windows] .person-cell small{font-size:11px}:root[data-platform=windows] td,:root[data-platform=windows] .field input,:root[data-platform=windows] .select-trigger{font-size:12px}:root[data-platform=windows] .batch-warning-filter .select-trigger{font-size:10px}@media(max-width:680px){.operation-target-list{grid-template-columns:1fr}.batch-filter-row,.detail-export-row{align-items:stretch;flex-direction:column}.batch-warning-filter{width:100%}}@media(max-width:980px){.people-attendance-layout{grid-template-columns:1fr}.organization-tree-scroll{max-height:270px}.attendance-calendar-drawer{width:100vw;max-width:100vw}}
