
/* EMS 0.9.0 — SaaS application UI */
:root{--ems-bg:#f6f8fb;--ems-surface:#fff;--ems-border:#e5e9f0;--ems-text:#172033;--ems-muted:#6b7485;--ems-primary:#2563eb;--ems-primary-dark:#1d4ed8;--ems-sidebar:#111827;--ems-sidebar-muted:#aab3c2;--ems-shadow:0 10px 30px rgba(17,24,39,.06);--ems-radius:14px}
.ems-app,.ems-auth{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ems-text)}
.ems-app{max-width:1320px;margin:28px auto;padding:0 22px;display:grid;grid-template-columns:235px minmax(0,1fr);column-gap:24px;align-items:start}
.ems-header{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 26px;margin-bottom:18px;background:var(--ems-surface);border:1px solid var(--ems-border);border-radius:var(--ems-radius);box-shadow:var(--ems-shadow)}
.ems-header h2{margin:0 0 5px;font-size:25px;line-height:1.2;font-weight:750;letter-spacing:-.02em}.ems-header p{margin:0;color:var(--ems-muted);font-size:13px}.ems-header>a{display:inline-flex;align-items:center;justify-content:center;padding:9px 15px;border:1px solid var(--ems-border);border-radius:9px;text-decoration:none;color:var(--ems-text);font-size:13px;font-weight:600;background:#fff}.ems-header>a:hover{border-color:#cbd5e1;background:#f8fafc}
.ems-nav{grid-column:1;grid-row:2 / span 20;position:sticky;top:22px;background:var(--ems-sidebar);border-radius:var(--ems-radius);padding:16px 12px;box-shadow:0 12px 30px rgba(17,24,39,.12);min-height:calc(100vh - 170px);box-sizing:border-box;display:flex;flex-direction:column}.ems-nav-label{padding:6px 11px 12px;text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:700;color:#7f8a9c}.ems-nav a{display:flex;align-items:center;gap:11px;margin:2px 0;padding:10px 11px;border:0;border-radius:9px;text-decoration:none;color:var(--ems-sidebar-muted);font-size:13px;font-weight:600;transition:background .15s ease,color .15s ease,transform .15s ease}.ems-nav a:hover{background:rgba(255,255,255,.08);color:#fff;transform:translateX(1px)}.ems-nav a.active{background:rgba(255,255,255,.12);color:#fff}.ems-nav-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;opacity:.9}.ems-nav-footer{margin-top:auto;padding:14px 11px 2px;color:#687487;font-size:10px;border-top:1px solid rgba(255,255,255,.08)}
.ems-app>.ems-cards,.ems-app>.ems-box,.ems-app>.ems-toolbar,.ems-app>.ems-table-wrap,.ems-app>.ems-two-col,.ems-app>.ems-message,.ems-app>.ems-profile-grid,.ems-app>.ems-login-box{grid-column:2;min-width:0}
.ems-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:0 0 18px}.ems-cards>div{position:relative;padding:19px 20px;background:var(--ems-surface);border:1px solid var(--ems-border);border-radius:12px;box-shadow:var(--ems-shadow);min-height:94px;box-sizing:border-box}.ems-cards>div:after{content:"";position:absolute;right:18px;top:18px;width:7px;height:7px;border-radius:50%;background:var(--ems-primary);opacity:.75}.ems-cards span{display:block;color:var(--ems-muted);font-size:12px;font-weight:600}.ems-cards strong{display:block;margin-top:9px;font-size:27px;line-height:1;font-weight:750;letter-spacing:-.03em}
.ems-box{width:100%;padding:23px;background:var(--ems-surface);border:1px solid var(--ems-border);border-radius:var(--ems-radius);box-sizing:border-box;box-shadow:var(--ems-shadow);margin:0 0 18px}.ems-box h3{margin:0 0 8px;font-size:17px}.ems-box p{color:var(--ems-muted);line-height:1.6}.ems-box label,.ems-auth label{display:block;font-weight:650;font-size:13px;margin-bottom:7px;color:var(--ems-text)}
.ems-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 14px}.ems-toolbar h3{margin:0;font-size:18px}.ems-button,.ems-box button,.ems-auth button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:9px;background:var(--ems-primary);color:#fff;padding:10px 15px;text-decoration:none;font-size:13px;font-weight:650;cursor:pointer;box-sizing:border-box}.ems-button:hover,.ems-box button:hover,.ems-auth button:hover{background:var(--ems-primary-dark)}
.ems-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.ems-form-grid p,.ems-box>form>p{margin:0 0 15px}.ems-auth input,.ems-box input,.ems-box select,.ems-box textarea{width:100%;padding:10px 12px;box-sizing:border-box;border:1px solid #d9dee8;border-radius:8px;background:#fff;color:var(--ems-text);font:inherit;font-size:13px;outline:none;transition:border-color .15s,box-shadow .15s}.ems-auth input:focus,.ems-box input:focus,.ems-box select:focus,.ems-box textarea:focus{border-color:#93b4f7;box-shadow:0 0 0 3px rgba(37,99,235,.10)}.ems-box small{display:block;margin-top:6px;color:var(--ems-muted);font-size:11px;line-height:1.45}
.ems-table-wrap{background:var(--ems-surface);border:1px solid var(--ems-border);border-radius:var(--ems-radius);box-shadow:var(--ems-shadow);overflow:auto;margin:0 0 18px}.ems-table{width:100%;border-collapse:collapse;margin:0;font-size:13px}.ems-table th{background:#f8fafc;color:#687386;text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:750}.ems-table th,.ems-table td{padding:12px 14px;border-bottom:1px solid #edf0f4;border-left:0;border-right:0;text-align:left;vertical-align:middle;white-space:nowrap}.ems-table tr:last-child td{border-bottom:0}.ems-table tbody tr:hover{background:#fafcff}.ems-table a{color:var(--ems-primary);font-weight:600;text-decoration:none}.ems-table a:hover{text-decoration:underline}.ems-table select,.ems-table input{min-width:100px}.ems-attendance-table input[type="text"]{min-width:150px}.ems-inline-form{display:inline}.ems-link-button{background:none!important;border:0!important;padding:0!important;margin:0!important;color:#dc2626;cursor:pointer;text-decoration:none;font:inherit;font-size:13px}.ems-link-button:hover{text-decoration:underline}.ems-cancel{margin-left:8px;color:var(--ems-muted);text-decoration:none;font-size:13px}
.ems-two-col{display:grid;grid-template-columns:minmax(280px,370px) minmax(0,1fr);gap:18px}.ems-two-col>.ems-box{margin:0}.ems-two-col select,.ems-two-col input,.ems-two-col textarea{max-width:100%}.ems-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}.ems-profile-grid>div{padding:17px;background:var(--ems-surface);border:1px solid var(--ems-border);border-radius:12px;box-shadow:var(--ems-shadow)}.ems-profile-grid strong,.ems-profile-grid span{display:block}.ems-profile-grid strong{font-size:11px;text-transform:uppercase;color:var(--ems-muted);letter-spacing:.05em}.ems-profile-grid span{margin-top:7px;font-weight:650}
.ems-message{grid-column:2;padding:12px 15px;margin:0 0 15px;background:#f8fafc;border:1px solid var(--ems-border);border-radius:9px;font-size:13px}.ems-message.ems-error{background:#fff7f7;border-color:#fecaca;color:#b91c1c}.ems-login-box{padding:18px;background:#f8fafc;border:1px solid var(--ems-border);border-radius:11px;margin:18px 0}.ems-login-box h3{margin:0 0 6px}.ems-login-box p{margin:7px 0}
.ems-auth{max-width:520px;margin:70px auto;padding:32px;background:var(--ems-surface);border:1px solid var(--ems-border);border-radius:16px;box-shadow:0 18px 50px rgba(17,24,39,.09);box-sizing:border-box}.ems-auth h2{margin:0 0 7px;font-size:25px;letter-spacing:-.02em}.ems-auth:before{content:"EMS";display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;margin-bottom:18px;border-radius:11px;background:var(--ems-primary);color:#fff;font-size:12px;font-weight:800;letter-spacing:.03em}.ems-auth p{margin:0 0 15px}.ems-auth button{width:100%;margin-top:5px}.ems-auth small{color:var(--ems-muted)}
@media(max-width:1050px){.ems-app{grid-template-columns:190px minmax(0,1fr);gap:18px}.ems-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.ems-two-col{grid-template-columns:1fr}.ems-nav a{font-size:12px}}
@media(max-width:760px){.ems-app{display:block;margin:14px auto;padding:0 12px}.ems-header{margin-bottom:12px;padding:17px}.ems-header h2{font-size:20px}.ems-nav{position:static;min-height:0;margin-bottom:14px;padding:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}.ems-nav-label,.ems-nav-footer{display:none}.ems-nav a{margin:0}.ems-app>.ems-cards,.ems-app>.ems-box,.ems-app>.ems-toolbar,.ems-app>.ems-table-wrap,.ems-app>.ems-two-col,.ems-app>.ems-message,.ems-app>.ems-profile-grid,.ems-app>.ems-login-box{grid-column:auto}.ems-toolbar{align-items:flex-start;flex-direction:column}.ems-form-grid,.ems-profile-grid{grid-template-columns:1fr}.ems-auth{margin:35px 14px;padding:25px}.ems-table{min-width:760px}}
@media(max-width:480px){.ems-cards{grid-template-columns:1fr}.ems-header>a{padding:8px 11px}.ems-nav{grid-template-columns:1fr 1fr}.ems-nav a{padding:9px 8px}}

.ems-muted{margin:4px 0 0;color:var(--ems-muted);font-size:13px}.ems-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ems-section-head h3{margin:0}.ems-count-badge{display:inline-flex;min-width:28px;height:28px;padding:0 8px;align-items:center;justify-content:center;border-radius:99px;background:#eef2ff;color:var(--ems-primary);font-size:12px;font-weight:700}.ems-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:180px;border:1px dashed var(--ems-border);border-radius:12px;color:var(--ems-muted);text-align:center}.ems-empty strong{color:var(--ems-text);font-size:15px}.ems-document-form small{display:block;color:var(--ems-muted);font-size:11px;margin-top:6px}.ems-profile-hero{display:flex;align-items:center;gap:17px;padding:24px;background:var(--ems-surface);border:1px solid var(--ems-border);border-radius:var(--ems-radius);box-shadow:var(--ems-shadow);margin-bottom:16px}.ems-avatar{width:64px;height:64px;border-radius:16px;background:var(--ems-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;flex:0 0 64px}.ems-profile-hero h1{margin:2px 0 4px;font-size:25px}.ems-profile-hero p{margin:0;color:var(--ems-muted);font-size:13px}.ems-eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:750;color:var(--ems-primary)}.ems-profile-actions{margin-left:auto}.ems-mini-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.ems-mini-stats>div{padding:15px 17px;background:var(--ems-surface);border:1px solid var(--ems-border);border-radius:12px}.ems-mini-stats span{display:block;color:var(--ems-muted);font-size:11px;font-weight:650}.ems-mini-stats strong{display:block;margin-top:7px;font-size:20px}.ems-quick-links{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.ems-quick-links a{padding:16px;background:var(--ems-surface);border:1px solid var(--ems-border);border-radius:12px;text-decoration:none;box-shadow:var(--ems-shadow)}.ems-quick-links strong{display:block;color:var(--ems-text);font-size:14px}.ems-quick-links span{display:block;color:var(--ems-muted);font-size:12px;margin-top:5px}@media(max-width:800px){.ems-mini-stats{grid-template-columns:1fr 1fr}.ems-quick-links{grid-template-columns:1fr}.ems-profile-hero{align-items:flex-start;flex-wrap:wrap}.ems-profile-actions{margin-left:0;width:100%}}

.ems-destination-employee.ems-is-hidden{display:none!important}.ems-destination-employee:not(.ems-is-hidden){display:block!important}.ems-document-form select,.ems-document-form input[type=file]{min-height:42px}.ems-document-form small{display:block;margin-top:6px;opacity:.7}

/* v1.1.2 typography and document usability */
.ems-app{font-weight:500}.ems-header h2{font-weight:850}.ems-header p{font-weight:550}.ems-nav a{font-weight:700}.ems-nav-label{font-weight:800}.ems-box h3,.ems-toolbar h3{font-weight:800}.ems-box label,.ems-auth label{font-weight:750}.ems-table th{font-weight:850}.ems-table td{font-weight:550}.ems-cards span{font-weight:700}.ems-cards strong{font-weight:850}.ems-button,.ems-box button,.ems-auth button{font-weight:750}.ems-stat-link{padding:0!important;overflow:hidden}.ems-stat-link>a{display:block;height:100%;padding:19px 20px;box-sizing:border-box;color:inherit;text-decoration:none}.ems-stat-link small{display:block;margin-top:9px;color:var(--ems-primary);font-size:11px;font-weight:750}.ems-document-form input[type=file]{padding:9px;background:#fff}.ems-document-form button{width:100%;min-height:44px}.ems-section-head h3{font-weight:850}
/* v1.2.0 Employee Profile */
.ems-profile-main{flex:1;min-width:0}.ems-profile-main h1{margin:4px 0 4px;font-size:30px;line-height:1.15;font-weight:850}.ems-profile-main p{margin:0 0 10px;font-weight:600}.ems-profile-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ems-status-pill{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:800}.ems-status-pill.is-active{background:#e9f8ef;color:#176b3a}.ems-status-pill.is-inactive{background:#f3f4f6;color:#5b6470}.ems-profile-stats{margin-top:18px}.ems-profile-stats>div{min-height:105px}.ems-profile-columns{margin-top:18px}.ems-profile-columns .ems-box{min-width:0}.ems-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid rgba(0,0,0,.08)}.ems-profile-grid>div{padding:14px 10px;border-bottom:1px solid rgba(0,0,0,.08)}.ems-profile-grid strong{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.04em;opacity:.65;margin-bottom:5px}.ems-profile-grid span{display:block;font-weight:650;word-break:break-word}.ems-section-head>a{font-weight:750;text-decoration:none}.ems-profile-columns .ems-table{font-size:13px}.ems-quick-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.ems-quick-links a{display:flex;flex-direction:column;gap:5px;padding:17px 18px;border:1px solid rgba(0,0,0,.1);border-radius:12px;text-decoration:none;background:rgba(255,255,255,.55)}.ems-quick-links strong{font-weight:850}.ems-quick-links span{font-size:13px;opacity:.7}.ems-quick-links a:hover{transform:translateY(-1px)}
@media(max-width:800px){.ems-profile-hero{align-items:flex-start;flex-wrap:wrap}.ems-profile-main h1{font-size:25px}.ems-profile-actions{width:100%;padding-left:0}.ems-profile-grid{grid-template-columns:1fr}.ems-quick-links{grid-template-columns:1fr}.ems-profile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
