:root{color-scheme:light;font-family:Inter,Arial,sans-serif;background:#f2f5f7;color:#20242a;font-synthesis:none;text-rendering:optimizeLegibility;--bg: #f2f5f7;--surface: #ffffff;--surface-soft: #f7fafb;--line: #d9e1e8;--line-soft: #e9eef2;--text: #20242a;--muted: #687482;--brand: #176b87;--brand-dark: #12566d;--shadow: 0 10px 30px rgba(31, 43, 58, .08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:14px;overflow:hidden}button,input,select,textarea{font:inherit;font-size:14px}button{border:1px solid #cfd6df;background:var(--surface);border-radius:6px;height:34px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;color:#252b33;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}button:hover{border-color:#8aa0b8;background:#f8fbfc;box-shadow:0 3px 10px #1f2b3a14}button:active{transform:translateY(1px)}button:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.62;cursor:not-allowed}input,select,textarea{border:1px solid #cfd6df;background:var(--surface);border-radius:6px;color:var(--text);min-height:34px;padding:6px 8px;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}input:focus,select:focus,textarea:focus{border-color:#5f9eb3;box-shadow:0 0 0 3px #176b871f}textarea{min-height:76px;resize:vertical}.primary{background:var(--brand);color:#fff;border-color:var(--brand)}.primary:hover{background:var(--brand-dark);border-color:var(--brand-dark)}.login-shell{min-height:100vh;display:grid;place-items:center;background:#eef1f3}.login-panel{width:380px;background:#fff;border:1px solid #d9dfe6;border-radius:8px;padding:28px;display:grid;gap:16px;box-shadow:0 18px 50px #242d3a1f}.login-panel h1{margin:0 0 4px;font-size:23px;line-height:1.2}.login-panel label,.form-grid label{display:grid;gap:6px;font-size:12px;color:#596270}.app-shell{height:100vh;padding:18px 22px 28px;display:flex;flex-direction:column;overflow:hidden}.topbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#ffffffeb;box-shadow:var(--shadow)}.topbar h1{margin:0;font-size:21px;line-height:1.2}.topbar p{margin:4px 0 0;color:var(--muted);font-size:13px}.top-actions{display:flex;gap:8px}.toolbar{display:grid;grid-template-columns:minmax(240px,1fr) repeat(4,minmax(140px,190px)) auto;gap:8px;align-items:center;margin-bottom:14px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#ffffffdb;box-shadow:0 6px 22px #1f2b3a0f}.searchbox{display:flex;align-items:center;gap:8px;border:1px solid #cfd6df;background:#fff;border-radius:6px;padding:0 9px;min-height:34px}.searchbox input{border:0;padding:0;width:100%;outline:none}.message{margin:8px 0 12px;color:#176b87}.message.error{color:#a1322e}.form-error{margin:0 18px 14px;padding:10px 12px;border:1px solid #e3ada9;border-radius:6px;background:#fff5f4;color:#8d2d28;font-weight:700}.table-wrap{position:relative;flex:1 1 auto;min-height:220px;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:auto;box-shadow:var(--shadow)}.registry-table{border-collapse:separate;border-spacing:0;width:100%;min-width:1500px;font-size:12px}.registry-table th,.registry-table td{border-bottom:1px solid var(--line-soft);border-right:1px solid #f0f4f7;padding:6px 8px;white-space:nowrap;text-align:left}.registry-table th{position:sticky;top:0;z-index:2;background:#eef4f7;color:#3d4652;font-weight:700}.registry-table input{width:104px;min-height:28px;padding:4px 5px;border-radius:5px;font-size:12px}.fio{font-weight:700;min-width:220px}.iin{font-family:Consolas,monospace;min-width:128px}.next-date{font-weight:700}.row-ok{background:#fff}.row-warning{background:#fff7de}.row-expired{background:#ffe7e3}.row-incomplete{background:#f0f3f6}.employee-maternity{background:#e8f6ed}.employee-dismissed{background:#eceff2;color:#68717d}.missing-cell input,.date-invalid{border-color:#aa4b45;background:#fff5f4}.not-applicable{color:#a3adb8;text-align:center}.pill{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700;color:#25303a}.pill-ok{background:#dff0e5}.pill-warning{background:#ffe8a3}.pill-expired{background:#ffc7c1}.pill-incomplete,.pill-archived{background:#dce2e8}.days{margin-left:7px;color:#596270;font-size:11px}.actions{display:flex;gap:5px}.actions button{width:30px;height:28px;padding:0}.loading,.empty{padding:20px;color:#68717d}.table-footer{position:sticky;bottom:0;min-height:38px;display:flex;align-items:center;padding:8px 12px;border-top:1px solid var(--line);background:#f7fafb;color:#39434f;font-weight:700;font-size:13px;z-index:2}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#141c266b;display:grid;place-items:start center;padding:34px;z-index:5}.modal{width:min(1040px,calc(100vw - 60px));max-height:calc(100vh - 68px);overflow:auto;background:#fff;border-radius:8px;border:1px solid #cdd5de;box-shadow:0 24px 80px #121a2547}.password-modal{width:420px;background:#fff;border-radius:8px;border:1px solid #cdd5de;box-shadow:0 24px 80px #121a2547}.modal header,.modal footer,.password-modal header,.password-modal footer{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid #e3e8ee}.modal footer{border-top:1px solid #e3e8ee;border-bottom:0;justify-content:flex-end}.password-modal footer{border-top:1px solid #e3e8ee;border-bottom:0;justify-content:flex-end}.modal h2,.password-modal h2,.settings-band h2{margin:0;font-size:16px;line-height:1.25}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:18px}.password-form{display:grid;gap:14px;padding:18px}.password-form>button{justify-self:start}.password-form label{display:grid;gap:6px;font-size:12px;color:#596270}.wide{grid-column:1 / -1}.settings-band{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:16px;padding:0;margin:2px 0 14px}.settings-band>div{min-width:0;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 6px 20px #1f2b3a0f}.settings-band h2{display:flex;align-items:center;min-height:26px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line-soft);color:#27313d}.inline-form,.position-form{display:grid;grid-template-columns:minmax(130px,1fr) minmax(116px,140px) minmax(118px,auto) 36px auto;gap:8px;margin:0 0 12px;align-items:center}.position-form input{min-width:0}.inline-form{grid-template-columns:minmax(0,1fr) auto}.check{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 8px;border:1px solid #cfd6df;border-radius:6px;background:#f9fbfc;color:#4d5662;font-size:12px;white-space:nowrap}.check input{width:16px;height:16px;min-height:16px;padding:0;margin:0}.exam-picker{grid-column:1 / -1;display:grid;gap:8px;padding:10px;border:1px solid var(--line-soft);border-radius:8px;background:#f7fafb}.exam-picker>span{color:#4d5662;font-size:12px;font-weight:700}.exam-picker>div{display:flex;flex-wrap:wrap;gap:7px}.exam-check{justify-content:flex-start}.chips{display:flex;flex-wrap:wrap;gap:7px;max-height:210px;overflow:auto}.position-list{display:grid;gap:7px;max-height:250px;overflow:auto}.position-row{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:38px;padding:5px 6px 5px 10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-soft);font-size:12px}.position-row:hover,.user-row:hover{border-color:#cbd8e2;background:#fff}.position-row>span:first-child{display:grid;gap:2px;min-width:0;overflow:hidden;text-overflow:ellipsis}.position-row small{color:#68717d;font-size:11px;font-weight:400}.position-actions{display:flex;gap:5px}.position-actions button{width:30px;height:28px;padding:0}.user-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;gap:8px;margin:0 0 12px}.user-form button{width:36px}.user-list{display:grid;gap:7px;max-height:250px;overflow:auto}.user-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(150px,190px);align-items:center;gap:8px;min-height:42px;padding:6px 8px 6px 10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-soft)}.user-row span:first-child{display:grid;gap:2px;min-width:0}.user-row small{color:#68717d}.role-badge{display:inline-flex;align-items:center;min-height:24px;padding:3px 7px;border-radius:999px;background:#dcecf1;color:#235064;font-size:11px;font-weight:700}.user-password-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px}.user-password-actions input{width:100%;min-height:28px;font-size:12px}.user-password-actions button{width:30px;height:28px;padding:0}.chip{display:inline-flex;min-height:26px;align-items:center;padding:4px 8px;border-radius:999px;background:#eef4f7;color:#39434f;font-size:11px}@media(max-width:980px){.app-shell{padding:12px}.topbar{align-items:flex-start;gap:10px}.toolbar{grid-template-columns:1fr 1fr}.toolbar .searchbox{grid-column:1 / -1}.settings-band{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}}@media(max-width:640px){.topbar,.top-actions{flex-wrap:wrap}.toolbar,.form-grid,.position-form,.user-form{grid-template-columns:1fr}body{overflow:auto}.app-shell{height:auto;min-height:100vh;overflow:visible}.user-row{grid-template-columns:1fr;align-items:stretch}.role-badge{justify-content:center}}
