@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";:root{--sand-50:#fff9ee;--sand-100:#f7edda;--sand-200:#efddbe;--sand-800:#3e2f1f;--ink-900:#0f1a22;--ink-700:#334552;--teal-500:#198f8a;--teal-700:#0d6460;--red-500:#b5332f;--green-600:#237b41;--line:#14222c26;--card:#fffc;--shadow:0 18px 40px #12202a24;--font-body:"Sora", "Trebuchet MS", sans-serif;--font-heading:"Sora", "Trebuchet MS", sans-serif}*{box-sizing:border-box}html{font-size:93.75%}body{font-family:var(--font-body);color:var(--ink-900);background:radial-gradient(circle at 10% 10%, #198f8a38, transparent 38%), radial-gradient(circle at 90% 5%, #b5332f26, transparent 35%), linear-gradient(150deg, var(--sand-50), #fffdf7);min-height:100vh;margin:0;line-height:1.35}#root{min-height:100vh}h1,h2,h3{font-family:var(--font-heading);letter-spacing:-.03em;margin:0}p{color:var(--ink-700);margin:0}a{color:inherit;text-decoration:none}label{color:var(--ink-700);gap:.45rem;font-size:.88rem;display:grid}input,select,button{font:inherit}input,select{border:1px solid var(--line);width:100%;color:var(--ink-900);background:#fff;border-radius:.8rem;padding:.62rem .78rem}button{cursor:pointer}.primary-btn,.ghost-btn{border:1px solid #0000;border-radius:999px;padding:.58rem 1.05rem;font-weight:600;transition:transform .2s,box-shadow .2s,background-color .2s}.primary-btn{background:linear-gradient(120deg, var(--teal-700), var(--teal-500));color:#fff;box-shadow:0 10px 18px #198f8a47}.primary-btn:hover{transform:translateY(-2px)}.ghost-btn{border-color:var(--line);color:var(--ink-900);background:#fff9}.ghost-btn:hover{background:#fff}.button-with-icon{align-items:center;gap:.45rem;display:inline-flex}.icon-only-btn{justify-content:center;width:3.2rem;min-width:3.2rem;height:3.2rem;padding:0}.btn-icon{place-items:center;width:1.32rem;height:1.32rem;display:inline-grid}.btn-icon svg{fill:none;stroke:currentColor;stroke-width:2.7px;stroke-linecap:round;stroke-linejoin:round;width:1.32rem;height:1.32rem}.screen-center,.auth-page{box-sizing:border-box;justify-content:center;align-items:center;height:100dvh;min-height:100dvh;padding:1.25rem 1rem;display:flex;overflow-y:auto}.auth-card{background:var(--card);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:min(480px,100%);box-shadow:var(--shadow);border-radius:1.2rem;gap:1rem;margin:auto 0;padding:1.7rem;animation:.4s rise;display:grid}.auth-card h1{font-size:clamp(1.7rem,3.3vw,2.4rem)}.muted-row{font-size:.9rem}.muted-row a{color:var(--teal-700);font-weight:600}.marketing-page{gap:1.25rem;width:min(1120px,100% - 2rem);margin:1.2rem auto 2.5rem;display:grid}.marketing-header{border:1px solid var(--line);box-shadow:var(--shadow);background:linear-gradient(135deg,#ffffffe6,#f7eddad9);border-radius:1.6rem;gap:1rem;padding:clamp(1.2rem,3vw,2.6rem);animation:.45s rise;display:grid}.marketing-header h1{max-width:14ch;font-size:clamp(2rem,5vw,3.9rem)}.brand-eyebrow{text-transform:uppercase;letter-spacing:.2em;color:var(--teal-700);font-size:.75rem;font-weight:700}.brand-logo{align-items:center;gap:.82rem;display:inline-flex}.brand-logo.is-compact{gap:.7rem}.brand-logo-mark{background:radial-gradient(circle at 30% 30%, #fffffff5, transparent 32%), linear-gradient(135deg, var(--teal-700), var(--teal-500));border-radius:.95rem;place-items:center;width:2.8rem;height:2.8rem;display:grid;box-shadow:0 12px 22px #198f8a47}.brand-logo-mark-core{background:#fffffff2;border-radius:999px;width:1.2rem;height:1.2rem;box-shadow:0 0 0 .28rem #ffffff38,inset 0 -.22rem #198f8a47}.brand-logo-copy{gap:.12rem;display:grid}.brand-logo-name{color:#fff;font-family:var(--font-heading);letter-spacing:-.04em;font-size:1.5rem;line-height:1}.brand-logo-tagline{color:#b7cad5;font-size:.84rem;line-height:1.2}.brand-logo.is-sidebar{text-align:center;justify-items:center;gap:.5rem;width:100%;display:grid}.brand-logo-image{object-fit:contain;width:min(148px,100%);height:auto;display:block}.brand-logo-slogan{color:#2f5e9a;font-size:.84rem;line-height:1.2}.marketing-header .brand-logo-name,.auth-card .brand-logo-name{color:var(--ink-900)}.marketing-header .brand-logo-tagline,.auth-card .brand-logo-tagline{color:var(--ink-700)}.marketing-header .brand-logo-mark,.auth-card .brand-logo-mark{transform:translateY(0)}.marketing-header .brand-logo-mark{width:3rem;height:3rem}.auth-card .brand-logo{margin-bottom:.2rem}.auth-logo-row{justify-content:flex-start;align-items:center;gap:.75rem;display:flex}.auth-logo-image{object-fit:contain;width:68px;height:68px}.auth-logo-right{color:var(--ink-900);font-size:1.15rem}.auth-secondary-actions{justify-content:flex-start;margin-top:-.35rem}.auth-secondary-split{justify-content:space-between;width:100%}.auth-inline-action{color:var(--teal-700);background:0 0;border:0;padding:0;font-weight:600}.auth-inline-action:hover{text-decoration:underline}.cta-row{flex-wrap:wrap;gap:.6rem;display:flex}.table-actions-compact{flex-wrap:nowrap;gap:.35rem}.table-action-btn{justify-content:center;width:2.25rem;min-width:2.25rem;height:2.25rem;padding:0}.table-action-btn .btn-icon,.table-action-btn .btn-icon svg{width:1rem;height:1rem}.table-row-menu-popover{border:1px solid var(--line);background:#fff;border-radius:.8rem;flex-direction:column;gap:.25rem;width:max-content;min-width:175px;max-width:260px;padding:.4rem;display:flex;top:calc(100% + .35rem);right:0;box-shadow:0 12px 28px -4px #00000029,0 8px 12px -6px #0000001a;z-index:900!important}.table-row-menu-popover .menu-item{white-space:nowrap;color:var(--ink-900);text-align:left;cursor:pointer;box-sizing:border-box;background:0 0;border:0;border-radius:.55rem;align-items:center;gap:.65rem;width:100%;padding:.55rem .75rem;font-size:.86rem;font-weight:500;transition:background .15s,color .15s;display:flex}.table-row-menu-popover .menu-item .btn-icon{flex-shrink:0;justify-content:center;align-items:center;width:1.1rem;height:1.1rem;display:inline-flex}.table-row-menu-popover .menu-item .btn-icon svg{width:1.05rem;height:1.05rem;display:block}.table-row-menu-popover .menu-item:hover{color:var(--primary);background:#198f8a1a}.table-row-menu-popover .table-row-menu-item-danger{color:var(--red-500)}.table-row-menu-popover .table-row-menu-item-danger:hover{color:var(--red-600);background:#b5332f1a}.employees-data-table{table-layout:fixed;width:100%}.employees-data-table .col-sl{width:58px}.employees-data-table .col-code{width:92px}.employees-data-table .col-name{width:auto}.employees-data-table .col-gender{width:114px}.employees-data-table .col-id{width:150px}.employees-data-table .col-status{width:120px}.employees-data-table .col-actions{width:228px}.employees-data-table td:nth-child(3){word-break:break-word}.employee-name-cell span{display:none}.companies-data-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%}.companies-data-table .col-sl{width:58px}.companies-data-table .col-name{width:auto}.companies-data-table .col-status{width:120px}.companies-data-table .col-actions{width:142px}.companies-data-table td:nth-child(2){word-break:break-word}.companies-data-table th:nth-child(4),.companies-data-table td:nth-child(4){width:142px;min-width:142px;max-width:142px}.companies-data-table thead tr th:last-child{border-top-right-radius:.85rem}.companies-data-table tbody tr:last-child td:last-child{border-bottom-right-radius:.85rem}.employees-data-table th:nth-child(7),.employees-data-table td:nth-child(7){width:228px;min-width:228px;max-width:228px;box-shadow:-1px 0 0 var(--line), -10px 0 12px #0f1a220d;background:#fff;position:sticky;right:0}.employees-data-table th:nth-child(7){z-index:4}.employees-data-table td:nth-child(7){z-index:2}.entity-data-table{table-layout:fixed;width:100%}.entity-data-table .col-sl{width:58px}.entity-data-table .col-actions{width:142px}.entity-data-table td{word-break:break-word}.entity-data-table th:last-child,.entity-data-table td:last-child{box-shadow:-1px 0 0 var(--line), -10px 0 12px #0f1a220d;background:#fff;position:sticky;right:0}.entity-data-table th:last-child{z-index:4}.entity-data-table td:last-child{z-index:2}.plans-data-table .col-name{width:auto}.plans-data-table .col-max,.plans-data-table .col-price{width:140px}.plans-data-table .col-active{width:110px}.subscriptions-data-table .col-company,.subscriptions-data-table .col-plan,.subscriptions-data-table .col-status{width:140px}.subscriptions-data-table .col-start,.subscriptions-data-table .col-due,.subscriptions-data-table .col-expire{width:172px}.payments-data-table .col-company,.payments-data-table .col-subscription{width:190px}.payments-data-table .col-amount,.payments-data-table .col-currency,.payments-data-table .col-gateway,.payments-data-table .col-status{width:110px}.payments-data-table .col-paid-at{width:172px}.payments-data-table th:last-child,.payments-data-table td:last-child{box-shadow:none;position:static}.feature-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.9rem;display:grid}.feature-card{border:1px solid var(--line);background:#ffffffc7;border-radius:1rem;gap:.65rem;padding:1.2rem;display:grid}.app-shell{-webkit-backdrop-filter:none;backdrop-filter:none;width:100%;box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:210px minmax(0,1fr);height:100vh;margin:0;display:grid;overflow:hidden}.side-panel{color:#1f4d88;background:#ffffffa8;grid-template-rows:auto minmax(0,1fr);align-content:stretch;gap:1rem;min-height:0;padding:1.4rem 1rem;display:grid;overflow:hidden}.side-panel-brand{z-index:2;background:0 0;padding-bottom:.4rem;position:sticky;top:0}.side-panel-nav-scroll{scrollbar-width:none;min-height:0;overflow:hidden auto}.side-panel-nav-scroll::-webkit-scrollbar{width:0;height:0}.brand-logo.is-sidebar{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.45rem;padding:.35rem .25rem .6rem;display:flex}.brand-logo-image{object-fit:contain;filter:drop-shadow(0 4px 12px #0066ff2e);width:100%;max-width:100px;height:auto;margin:0 auto;display:block}.brand-logo-slogan{letter-spacing:.04em;background:linear-gradient(135deg,#00b4f8 0%,#06f 48%,#00249e 100%);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.22rem;font-weight:800;line-height:1.2;display:inline-block}.brand-title{color:#fff;margin-top:.45rem;font-size:1.85rem}.brand-copy{color:#b7cad5;margin-top:.7rem}.nav-links{gap:.4rem;display:grid}.nav-link{color:#3666a4;border:1px solid #0000;border-radius:.7rem;padding:.65rem .8rem;transition:background-color .2s}.nav-link:hover{background:#2e6fbe1a}.nav-link.is-active{color:#0f3f75;background:#2e6fbe2e;border-color:#2e6fbe42}.nav-separator{background:var(--line,#2e6fbe26);opacity:.8;height:1px;margin:.5rem .4rem}.main-panel{grid-template-rows:auto 1fr;min-width:0;min-height:0;display:grid;overflow:hidden}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.6rem;padding:.62rem .95rem;display:flex}.topbar-main{align-items:center;gap:.55rem;min-width:0;display:inline-flex}.topbar-actions{align-items:center;gap:.35rem;display:flex}.topbar-brand-title{display:none}.mobile-nav-trigger{min-height:2.2rem;padding:.38rem .78rem;display:none}.mobile-nav-backdrop{display:none}.menu-wrap{position:relative}.menu-trigger{white-space:nowrap;align-items:center;gap:.4rem;min-height:2.1rem;padding:.4rem .75rem;font-size:.88rem;line-height:1;display:inline-flex}.menu-trigger-content{justify-items:start;gap:.18rem;min-width:0;display:grid}.menu-trigger-name{text-overflow:ellipsis;max-width:20ch;color:var(--ink-900);font-size:.96rem;font-weight:700;overflow:hidden}.menu-trigger-email{text-overflow:ellipsis;max-width:22ch;color:var(--ink-700);font-size:.76rem;font-weight:500;overflow:hidden}.menu-trigger-chevron{opacity:.75;margin-left:.05rem;font-size:.72rem}.menu-popover{border:1px solid var(--line);min-width:180px;box-shadow:var(--shadow);z-index:5;background:#fffffffa;border-radius:.9rem;gap:.2rem;padding:.45rem;display:grid;position:absolute;top:calc(100% + .5rem);right:0}.menu-item{color:var(--ink-900);text-align:left;border-radius:.7rem;padding:.7rem .8rem;font-weight:400}.menu-account{border-bottom:1px solid var(--line);gap:.15rem;margin-bottom:.15rem;padding:.5rem .65rem .6rem;display:grid}.menu-account-name{color:var(--ink-900);font-size:.9rem;font-weight:700}.menu-account-email{color:var(--ink-700);font-size:.8rem}.menu-item:hover{background:#198f8a1a}.menu-item-button{width:100%;font:inherit;background:0 0;border:0}.topbar-kicker{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}.topbar-user{font-family:var(--font-heading);color:var(--ink-900);font-size:1.2rem}.page-wrap{min-height:0;padding:1rem;overflow:auto}.stack-gap{gap:.9rem;display:grid}.surface-card{border:1px solid var(--line);background:#ffffffd9;border-radius:1rem;gap:.7rem;padding:.82rem;animation:.35s rise;display:grid}.page-wrap .surface-card{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;animation:none}.page-wrap .surface-card.subscription-item-card{border:1px solid var(--line);background:#ffffffe6;border-radius:1rem;padding:1rem;animation:.25s rise;box-shadow:0 8px 20px #12202a14}.page-wrap .surface-card.modal-card,.page-wrap .surface-card.employee-modal-card,.page-wrap .surface-card.employee-modal-card--view,.page-wrap .surface-card.attendance-mark-modal-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:1rem;padding:1rem;animation:.25s rise}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.65rem;display:grid}.stat-item{border:1px solid var(--line);background:#fff;border-radius:.8rem;padding:.8rem}.stat-kicker{font-size:.82rem}.stat-value{font-family:var(--font-heading);color:var(--ink-900);margin-top:.35rem;font-size:1.3rem}.dashboard-live-card{padding-top:.72rem;position:relative}.dashboard-controls{z-index:4;align-items:center;display:inline-flex;position:absolute;top:.62rem;right:.62rem}.dashboard-capsule{border:1px solid var(--line,#14222c26);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffeb;border-radius:999px;align-items:center;padding:.18rem .22rem .18rem .5rem;transition:all .18s;display:inline-flex;box-shadow:0 1px 4px #0000000a}.dashboard-capsule:hover{border-color:#0066ff59;box-shadow:0 2px 8px #0066ff14}.dashboard-capsule-btn{color:var(--ink-700);cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:.42rem;padding:.2rem .35rem .2rem .1rem;font-size:.76rem;font-weight:600;line-height:1;transition:color .15s;display:inline-flex}.dashboard-capsule-btn:hover,.dashboard-capsule-btn.is-active{color:#0056cc}.auto-refresh-dot{background:#94a3b8;border-radius:50%;width:7px;min-width:7px;height:7px;transition:background-color .2s;display:inline-block}.dashboard-capsule-btn.is-active .auto-refresh-dot{background:#10b981;animation:2s infinite pulse-live-dot;box-shadow:0 0 0 2px #10b98140}@keyframes pulse-live-dot{0%{box-shadow:0 0 #10b98180}70%{box-shadow:0 0 0 5px #10b98100}to{box-shadow:0 0 #10b98100}}.dashboard-capsule-divider{background:#14222c24;flex-shrink:0;width:1px;height:13px;margin:0 .18rem}.dashboard-capsule-refresh-btn{width:1.85rem;min-width:1.85rem;height:1.85rem;color:var(--ink-700);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:all .15s;display:inline-flex}.dashboard-capsule-refresh-btn:hover:not(:disabled){color:#0056cc;background:#0066ff14}.dashboard-capsule-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.dashboard-refresh-btn:hover:not(:disabled){color:#0056cc;background:#fff;border-color:#0066ff59;transform:translateY(-1px);box-shadow:0 2px 6px #0066ff1f}.icon-spin{animation:.85s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dashboard-empty-state{text-align:center;background:linear-gradient(#ffffffbf 0%,#f0f6ff80 100%);border:1px dashed #0066ff40;border-radius:1.1rem;flex-direction:column;justify-content:center;align-items:center;margin:.75rem 0;padding:3.2rem 1.5rem;display:flex;box-shadow:0 4px 20px #00327808}.dashboard-empty-icon-wrap{color:#0062eb;background:linear-gradient(135deg,#00b4f826 0%,#0066ff2e 100%);border:1px solid #0066ff38;border-radius:1.2rem;justify-content:center;align-items:center;width:4.25rem;height:4.25rem;margin-bottom:1.25rem;display:inline-flex;box-shadow:0 8px 24px #0066ff1f}.dashboard-empty-title{color:var(--ink-900);letter-spacing:-.01em;margin:0 0 .55rem;font-size:1.35rem;font-weight:700}.dashboard-empty-desc{max-width:460px;color:var(--ink-700);margin:0 0 1.5rem;font-size:.92rem;line-height:1.6}.dashboard-empty-btn{border-radius:.85rem;justify-content:center;align-items:center;gap:.55rem;padding:.7rem 1.45rem;font-size:.95rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 4px 14px #0066ff40}.dashboard-empty-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0066ff59}.dashboard-company-scroll{padding-bottom:.2rem;overflow-x:auto}.dashboard-company-grid{grid-auto-columns:minmax(420px,1fr);grid-auto-flow:column;gap:.75rem;min-width:max-content;display:grid}.dashboard-company-column{border:1px solid var(--line);background:#ffffffeb;border-radius:.95rem;gap:.72rem;padding:.72rem;display:grid}.dashboard-company-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem;display:flex}.dashboard-company-head h3{font-size:1.02rem}.dashboard-company-metrics{flex-wrap:wrap;align-items:center;gap:.35rem;display:inline-flex}.dashboard-table-block{border:1px solid var(--line);border-radius:.72rem;gap:.45rem;padding:.5rem;display:grid}.dashboard-table-block.is-present{background:#237b410b;border-color:#237b4152}.dashboard-table-block.is-absent{background:#b5332f0a;border-color:#b5332f4d}.dashboard-table-block h4{text-transform:uppercase;letter-spacing:.08em;color:var(--teal-700);margin:0;font-size:.84rem}.dashboard-table-block.is-present h4{color:var(--green-600)}.dashboard-table-block.is-absent h4{color:var(--red-500)}.dashboard-mini-table-wrap{border-radius:.72rem}.dashboard-table-block.is-present .dashboard-mini-table-wrap{background:#237b4108;border-color:#237b4133}.dashboard-table-block.is-absent .dashboard-mini-table-wrap{background:#b5332f06;border-color:#b5332f33}.dashboard-mini-table{min-width:100%}.dashboard-mini-table th,.dashboard-mini-table td{padding:.44rem .52rem;font-size:.82rem}.dashboard-mini-table th{letter-spacing:.02em;font-size:.78rem}.dashboard-employee-row{cursor:pointer;transition:background-color .16s}.dashboard-employee-row:hover{background:#198f8a0f}.companies-grid{gap:.65rem;display:grid}.company-item{border:1px solid var(--line);background:#ffffffe6;border-radius:.85rem;justify-content:space-between;align-items:center;gap:.8rem;padding:.9rem;display:flex}.company-item.is-selected{border-color:#198f8a80;box-shadow:0 12px 22px #198f8a1f}.company-copy{gap:.35rem;min-width:0;display:grid}.company-title-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.company-actions{justify-content:flex-end}.pill{color:var(--teal-700);text-transform:uppercase;letter-spacing:.08em;background:#198f8a1f;border-radius:999px;align-items:center;padding:.24rem .7rem;font-size:.74rem;font-weight:700;display:inline-flex}.section-heading,.section-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.section-header.is-compact{align-items:center}.section-header.is-compact .cta-row .primary-btn,.section-header.is-compact .cta-row .ghost-btn:not(.icon-only-btn){min-height:2.55rem;padding:.45rem .92rem;font-size:.95rem}.section-header.is-compact .cta-row .icon-only-btn{width:2.8rem;min-width:2.8rem;height:2.8rem}.section-header.is-compact .cta-row .btn-icon,.section-header.is-compact .cta-row .btn-icon svg{width:1.08rem;height:1.08rem}.rfid-scan-card .section-header{align-items:center;gap:.6rem}.rfid-scan-card .section-header h2{font-size:clamp(1.4rem,2.5vw,1.95rem)}.rfid-scan-card .cta-row{flex-wrap:nowrap;gap:.4rem}.rfid-scan-card .cta-row .ghost-btn{min-height:2.4rem;padding:.42rem .85rem;font-size:.9rem}.rfid-scan-card .cta-row .icon-only-btn{width:2.6rem;min-width:2.6rem;height:2.6rem}.rfid-scan-card .cta-row .btn-icon,.rfid-scan-card .cta-row .btn-icon svg{width:1.08rem;height:1.08rem}.rfid-scan-card .cta-row .ghost-btn:not(.icon-only-btn){border-radius:999px}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:.85rem;overflow-x:auto}.companies-page .table-wrap{overflow:visible}.companies-page tr.is-row-menu-open,tr.is-row-menu-open{z-index:80;position:relative}.companies-page tr.is-row-menu-open td,tr.is-row-menu-open td,td.is-cell-menu-open{z-index:80!important}.companies-page .company-row-actions-menu,.company-row-actions-menu{z-index:85;position:relative}.companies-page .table-row-menu-popover{z-index:100!important}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:.62rem .66rem}th{font-family:var(--font-body);font-size:1rem;font-weight:600}.status-pill{text-transform:uppercase;letter-spacing:.08em;border-radius:999px;align-items:center;padding:.2rem .6rem;font-size:.75rem;font-weight:700;display:inline-flex}.status-pill.is-active{color:var(--green-600);background:#237b411f}.status-pill.is-idle{color:var(--ink-700);background:#3345521f}.status-pill.is-out{color:var(--red-500);background:#b5332f24}.status-pill.is-neutral{color:var(--ink-700);background:#3345521f}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.8rem;display:grid}.detail-grid>div{border:1px solid var(--line);background:#ffffffc2;border-radius:.85rem;padding:.8rem}.detail-label{text-transform:uppercase;letter-spacing:.12em;color:var(--teal-700);margin-bottom:.3rem;font-size:.8rem}.danger-btn{color:var(--red-500);background:#b5332f14;border:1px solid #b5332f40;border-radius:999px;padding:.68rem 1.25rem;font-weight:600}.danger-btn:hover{background:#b5332f24}.compact-field{max-width:360px}.compact-form{max-width:760px}.compact-form .primary-btn{justify-self:start}.companies-page .companies-grid,.employees-page .companies-grid{gap:.55rem}.companies-page .company-item,.employees-page .company-item{gap:.7rem;padding:.72rem .78rem}.companies-page .company-copy,.employees-page .company-copy{gap:.2rem}.companies-page .company-title-row h3,.employees-page .company-title-row h3,.employees-page .company-copy h3{font-size:1rem}.companies-list-scroll{max-height:min(56vh,520px);padding-right:.2rem;overflow-y:auto}.companies-list-scroll::-webkit-scrollbar{width:.55rem}.companies-list-scroll::-webkit-scrollbar-thumb{background:#0d646047;border-radius:999px}.modal-backdrop{z-index:30;background:#0f1a22;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{width:min(560px,100%);max-height:calc(100vh - 2rem);overflow:auto}.employee-modal-card{width:min(980px,100%)}.employee-modal-card--view{width:min(760px,100%)}.attendance-events-modal{background:#fff}.modal-head{justify-content:space-between;align-items:flex-start;gap:.85rem;display:flex}.company-item h3{font-size:1.08rem}.muted{font-size:.88rem}.form-grid{gap:.85rem;display:grid}.employee-form-columns{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.employee-form-fields{gap:.85rem;min-width:0;display:grid}.employee-choice-group{grid-template-columns:repeat(2,minmax(0,1fr));justify-self:start;gap:.45rem;width:min(100%,22rem);display:grid}.employee-choice{border:1px solid var(--line);min-height:2.35rem;color:var(--ink-700);text-transform:capitalize;background:#ffffffc7;border-radius:999px;padding:.45rem .9rem;font-weight:600;transition:background-color .2s,border-color .2s,color .2s,transform .2s,box-shadow .2s}.employee-choice:hover{transform:translateY(-1px)}.employee-choice.is-active{background:linear-gradient(120deg, var(--teal-700), var(--teal-500));color:#fff;border-color:#198f8a5c;box-shadow:0 10px 18px #198f8a33}.employee-photo-panel{border:1px solid var(--line);background:#fffc;border-radius:.85rem;align-content:start;gap:.65rem;min-width:0;padding:.8rem;display:grid}.employee-photo-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.employee-modal-loading-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:260px;padding:3.5rem 1.5rem;display:flex}.modal-loading-spinner{border:3.5px solid #198f8a33;border-top-color:var(--teal-700);border-radius:50%;width:2.75rem;height:2.75rem;animation:.75s linear infinite spin;box-shadow:0 4px 14px #0d646026}.employee-modal-error-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:260px;padding:3rem 1.5rem;display:flex}.employee-modal-error-icon{color:#dc2626;background:#dc26261a;border-radius:50%;place-items:center;width:3.25rem;height:3.25rem;margin-bottom:.25rem;display:grid}.employee-modal-error-state h4{font-size:1.15rem;font-family:var(--font-heading);color:var(--ink-900);margin:0}.employee-modal-error-state p{color:var(--ink-700);max-width:360px;margin:0;font-size:.9rem;line-height:1.45}.employee-choice-group{background:#f1f5f9;border:1px solid #14222c14;border-radius:.65rem;align-items:center;gap:.2rem;width:fit-content;padding:.2rem;display:inline-flex}.employee-choice{color:var(--ink-700);cursor:pointer;box-shadow:none;background:0 0;border:0;border-radius:.5rem;padding:.36rem .82rem;font-size:.82rem;font-weight:500;transition:all .15s}.employee-choice:hover{color:var(--ink-900)}.employee-choice.is-active{color:var(--ink-900);background:#fff;font-weight:700;box-shadow:0 1px 3px #0f1a221a}.employee-upload-btn{cursor:pointer;border-radius:.65rem;justify-content:center;align-items:center;gap:.45rem;padding:.44rem .85rem;font-size:.84rem;font-weight:600;transition:all .18s;display:inline-flex;position:relative;overflow:hidden}.employee-upload-btn input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;top:0;left:0}.employee-photo-preview-wrap{border:1px dashed var(--line);background:#fffffff2;border-radius:.8rem;place-items:center;min-height:250px;display:grid;overflow:hidden}.employee-photo-preview{object-fit:contain;width:100%;height:auto;display:block}.employee-photo-crop-stage{touch-action:none;-webkit-user-select:none;user-select:none;background:#f7fafc;border-radius:.65rem;width:100%;max-width:100%;min-height:250px;line-height:0;display:block;position:relative;overflow:hidden}.employee-photo-crop-stage.is-cropping{cursor:crosshair}.employee-photo-crop-stage.is-readonly-photo{cursor:default}.employee-crop-rect{pointer-events:none;z-index:2;background:#0066ff26;border:2px solid #06f;position:absolute;box-shadow:0 0 0 9999px #0b121c6b}.employee-crop-hint{margin-top:.35rem;font-size:.8rem;line-height:1.4}.employee-file-input-label{gap:.35rem;display:grid}.employee-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.employee-photo-grid label{font-size:.82rem}.employee-photo-grid input[type=range]{padding:0}.employee-photo-meta{grid-column:1/-1}.employee-form-actions{grid-column:1/-1;margin-top:.35rem}.employee-view-layout{gap:1rem;display:grid}.employee-view-hero{text-align:center;border:1px solid var(--line);background:radial-gradient(circle at 0 0,#198f8a24,#0000 36%),linear-gradient(135deg,#fffffffa,#f7eddabf);border-radius:1rem;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:1.25rem 1rem;display:flex}.employee-view-photo-wrap{justify-content:center;align-items:center;width:100%;margin:0 auto;display:flex}.employee-view-photo{object-fit:contain;border:3px solid #fffffff2;border-radius:.85rem;width:auto;max-width:100%;height:auto;max-height:220px;margin:0 auto;display:block;box-shadow:0 10px 24px #12202a26}.employee-view-photo-empty{background:linear-gradient(135deg, var(--teal-700), var(--teal-500));border:3px solid #fffffff2;border-radius:.85rem;place-items:center;width:140px;height:140px;margin:0 auto;display:grid;box-shadow:0 10px 24px #12202a26}.employee-view-photo-initial{color:#fff;font-family:var(--font-heading);font-size:3rem}.employee-view-hero-copy{text-align:center;justify-items:center;gap:.45rem;display:grid}.employee-view-hero-copy h4{font-family:var(--font-heading);color:var(--ink-900);margin:0;font-size:clamp(1.4rem,3.5vw,1.9rem)}.employee-view-hero-copy p{margin:0;font-size:.92rem}.employee-view-badges{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.employee-view-meta-row{color:var(--ink-700);flex-wrap:wrap;gap:.75rem;font-size:.88rem;display:flex}.employee-view-meta-row span{align-items:center;gap:.35rem;display:inline-flex}.employee-view-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.employee-view-detail-strip{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.employee-view-detail-strip span{border:1px solid var(--line);color:var(--ink-700);background:#ffffffd1;border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .6rem;font-size:.86rem;display:inline-flex}.employee-view-detail-strip strong{color:var(--ink-900)}.employee-view-stats article,.employee-view-details{border:1px solid var(--line);background:#ffffffe0;border-radius:1rem;padding:.9rem}.employee-view-stats article{gap:.25rem;display:grid}.employee-view-stats strong{color:var(--ink-900);font-family:var(--font-heading);font-size:1rem}.employee-view-details{grid-template-columns:1.2fr .8fr;gap:.9rem;display:grid}.employee-view-mono{word-break:break-all;color:var(--ink-700);font-size:.88rem}.employee-attendance-modal{width:min(1180px,100%)}.employee-attendance-page{gap:.9rem;display:grid}.employee-attendance-panel{gap:.55rem;padding:.8rem .95rem;display:grid}.employee-attendance-grid{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);align-items:start;gap:0;min-height:0;display:grid}.employee-attendance-summary-panel,.employee-attendance-detail-panel{background:0 0;border:0;border-radius:0;min-height:0;padding:0}.employee-attendance-summary-panel{padding-right:.85rem}.employee-attendance-detail-panel{border-left:1px solid var(--line);padding-left:.95rem}.employee-attendance-scroll,.employee-session-scroll{max-height:min(58vh,560px);overflow:auto}.employee-attendance-hero{gap:.5rem;padding:.8rem .9rem;display:grid}.employee-attendance-title{font-size:clamp(1.55rem,2.2vw,1.95rem)}.employee-attendance-subtitle{margin-top:.08rem}.employee-attendance-meta{flex-wrap:wrap;gap:.8rem;margin-top:.25rem;font-size:.84rem;display:flex}.employee-attendance-meta span{border:1px solid var(--line);background:#ffffffb3;border-radius:999px;align-items:center;padding:.22rem .55rem;display:inline-flex}.employee-attendance-hero-actions{align-items:center;gap:.45rem}.employee-attendance-hero-actions .primary-btn,.employee-attendance-hero-actions .ghost-btn{padding:.45rem .82rem}.employee-attendance-hero-actions .btn-icon,.employee-attendance-hero-actions .btn-icon svg{width:1.1rem;height:1.1rem}.employee-month-inline{white-space:nowrap;color:var(--ink-700);align-items:center;gap:.45rem;font-size:.92rem;display:inline-flex}.employee-month-inline span{font-weight:600}.employee-month-inline select{width:auto;min-width:170px;padding:.45rem .72rem}.attendance-summary-toolbar{justify-content:flex-end;margin-bottom:.35rem;display:flex}.employee-attendance-detail-panel{gap:.65rem;display:grid}.attendance-mark-modal{width:min(560px,100%)}.attendance-mark-modal-card{padding-left:1.25rem;padding-right:1.25rem}.attendance-mark-form{margin-top:1rem}.attendance-mark-actions{grid-column:1/-1;justify-content:flex-end}.employee-attendance-layout{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:1rem;display:grid}.employee-attendance-summary-panel,.employee-attendance-detail-panel{border:1px solid var(--line);background:#ffffffe6;border-radius:1rem;padding:1rem}.attendance-summary-head,.employee-attendance-detail-head{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.85rem;display:flex}.attendance-summary-head h4,.employee-attendance-detail-head h4{font-family:var(--font-heading);color:var(--ink-900);margin:.2rem 0 0;font-size:1.15rem}.attendance-summary-table-wrap{max-height:min(56vh,520px);overflow:auto}.attendance-summary-row{cursor:pointer;transition:background-color .18s}.attendance-summary-row:hover,.attendance-summary-row.is-active{background:#198f8a14}.employee-attendance-detail-meta{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.employee-attendance-detail-meta span{color:var(--teal-700);background:#198f8a14;border-radius:999px;align-items:center;padding:.36rem .7rem;font-size:.82rem;font-weight:700;display:inline-flex}.employee-session-list{gap:.8rem;display:grid}.employee-session-item{border:1px solid var(--line);background:linear-gradient(#ffffffeb,#f7edda80);border-radius:.9rem;gap:.65rem;padding:.85rem;display:grid}.attendance-delete-rule{color:var(--ink-900);font-size:1.38rem;font-family:var(--font-heading);margin-top:.35rem}.attendance-single-employee{color:var(--ink-700);margin-top:.22rem;font-size:.95rem;font-weight:600}.attendance-modal-employee{gap:.28rem;display:grid}.attendance-modal-employee-label{color:var(--ink-700);font-size:.88rem}.attendance-modal-employee p{color:var(--ink-900);font-size:1.02rem;font-weight:700}.attendance-mark-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.95rem 1rem;display:grid}.attendance-mark-col{gap:.85rem;display:grid}.attendance-mark-actions{grid-column:1/-1}.attendance-action-toggle{border:1px solid var(--line);background:#14222c0d;border-radius:999px;gap:.45rem;width:fit-content;padding:.22rem;display:inline-flex}.attendance-action-option{color:var(--ink-700);background:0 0;border:0;border-radius:999px;padding:.45rem .95rem;font-weight:700}.attendance-action-option:disabled{cursor:not-allowed;opacity:.82}.attendance-action-option.is-active.in{color:var(--green-600);background:#237b4126}.attendance-action-option.is-active.out{color:var(--red-500);background:#b5332f26}.attendance-datetime-grid{grid-template-columns:1fr;gap:.75rem;display:grid}.attendance-datetime-grid label{gap:.45rem;display:grid}.attendance-datetime-grid input[type=date],.attendance-datetime-grid input[type=time]{height:3.1rem;padding:.62rem .78rem}.attendance-time-guidance{color:var(--ink-700);margin-top:.35rem;font-size:.82rem}.attendance-time-guidance.is-warning{color:var(--red-500);font-weight:600}.attendance-day-groups{gap:.6rem;display:grid}.attendance-day-group{border:1px solid var(--line);background:#ffffffd6;border-radius:.82rem;overflow:hidden}.attendance-day-head{border-bottom:1px solid var(--line);background:linear-gradient(#fffffff2,#f7edda8c);justify-content:space-between;align-items:center;gap:.7rem;padding:.52rem .72rem;display:flex}.attendance-day-head h3{font-size:.95rem;font-family:var(--font-heading);align-items:center;gap:.38rem;margin:0;display:inline-flex}.attendance-day-head h3 svg{width:.92rem;height:.92rem;color:var(--teal-700)}.attendance-day-head p{color:var(--teal-700);background:#198f8a1a;border-radius:999px;align-items:center;margin:0;padding:.22rem .62rem;font-size:.82rem;font-weight:700;display:inline-flex}.attendance-day-summary-badge{align-items:center;gap:.4rem;display:inline-flex}.attendance-day-chip{white-space:nowrap;border-radius:999px;align-items:center;padding:.18rem .5rem;font-size:.76rem;font-weight:700;display:inline-flex}.attendance-day-chip.work{color:var(--green-600);background:#237b411f}.attendance-day-chip.break{color:var(--red-500);background:#b5332f1f}.attendance-day-chip.current-in{color:var(--green-600);background:#237b411f}.attendance-day-chip.current-out{color:var(--red-500);background:#b5332f1f}.attendance-day-chip.current-unknown{color:var(--ink-700);background:#3345521f}.attendance-day-head-actions{align-items:center;gap:.35rem;display:inline-flex}.attendance-mark-entry-btn{box-shadow:none;padding:.28rem .68rem;font-size:.85rem}.attendance-session-list{gap:0;padding:.2rem .62rem .25rem;display:grid}.attendance-session-row{border-bottom:1px solid #14222c17;grid-template-columns:minmax(0,1fr);justify-content:start;align-items:center;gap:.22rem;padding:.46rem .05rem;display:grid}.attendance-session-main{grid-template-columns:236px 168px 236px 44px;justify-content:center;place-items:center;gap:.22rem;display:grid}.attendance-session-row:last-child{border-bottom:0}.attendance-session-index{color:#7b5ad4;background:#7b5ad41f;border-radius:999px;justify-self:start;place-items:center;width:1.68rem;height:1.68rem;font-size:.74rem;font-weight:700;display:grid}.attendance-session-col{justify-content:center;justify-self:center;align-items:center;gap:.42rem;width:100%;min-width:0;display:inline-flex}.attendance-session-col>div{text-align:center;justify-items:center;gap:.14rem;min-width:0;display:grid}.attendance-session-badge{border-radius:999px;flex-shrink:0;place-items:center;width:1.78rem;height:1.78rem;display:grid}.attendance-session-badge svg{width:.86rem;height:.86rem}.attendance-session-badge.in{color:var(--green-600);background:#237b411f}.attendance-session-badge.out{color:var(--red-500);background:#b5332f1f}.attendance-session-col p{margin:0;font-size:.78rem;font-weight:700;line-height:1.1}.attendance-session-col.is-in p{color:var(--green-600)}.attendance-session-col.is-out p{color:#c26a00}.attendance-session-col strong{color:var(--ink-900);margin-top:.05rem;font-size:.88rem;line-height:1.1;display:block}.attendance-session-out-empty{place-items:center;width:100%;display:grid}.attendance-session-col small{color:var(--ink-700);white-space:nowrap;text-overflow:ellipsis;margin-top:.12rem;font-size:.76rem;display:block;overflow:hidden}.attendance-session-duration{justify-content:center;justify-self:center;align-items:center;gap:.3rem;width:100%;display:inline-flex}.attendance-session-duration span{background:#14222c47;flex:1;height:1px}.attendance-session-duration strong{color:var(--ink-700);white-space:nowrap;font-size:.82rem;font-weight:600}.attendance-session-action{justify-content:center;justify-self:center;align-items:center;gap:.35rem;display:inline-flex}.attendance-session-action .table-action-btn{width:1.95rem;min-width:1.95rem;height:1.95rem}.employee-session-order{text-transform:uppercase;letter-spacing:.12em;color:var(--teal-700);font-size:.76rem;font-weight:700}.employee-session-flow{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.65rem;display:grid}.employee-session-flow>div{gap:.2rem;display:grid}.employee-session-flow strong{font-family:var(--font-heading);color:var(--ink-900)}.employee-session-arrow{color:var(--ink-700);padding:0 .3rem;font-size:1.25rem}.employee-session-pill{letter-spacing:.1em;border-radius:999px;align-items:center;width:fit-content;padding:.2rem .55rem;font-size:.72rem;font-weight:800;display:inline-flex}.employee-session-pill.in{color:var(--green-600);background:#237b411f}.employee-session-pill.out{color:var(--red-500);background:#b5332f1f}.employee-session-footnote{color:var(--ink-700);justify-content:space-between;gap:.5rem;font-size:.86rem;display:flex}.plans-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.8rem;display:grid}.plan-card{border:1px solid var(--line);background:#fff;border-radius:1rem;gap:.7rem;padding:1rem;display:grid}.plan-card.is-highlighted{border-color:#198f8a8c;box-shadow:0 10px 20px #198f8a24}.plan-subtitle{font-size:.82rem}.plan-price{font-family:var(--font-heading);color:var(--ink-900);font-size:2rem}.plan-price span{margin-left:.35rem;font-size:.82rem}.plan-card ul{color:var(--ink-700);gap:.35rem;margin:0;padding-left:1rem;font-size:.9rem;display:grid}.plan-cards-scroll{width:100%;min-width:0;max-height:none;padding:0;overflow:visible}.plan-cards-row{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;width:100%;display:grid}.plan-manage-card{background:radial-gradient(circle at 105% -10%,#3c82f629,#0000 36%),linear-gradient(#fffffffa,#f7fbfff5);border:1px solid #7b8fad33;border-radius:1rem;align-content:space-between;min-height:430px;margin:0;padding:1.1rem 1rem 1rem;position:relative;box-shadow:0 15px 28px #233c5c14,inset 0 1px #ffffff8c}.plans-page .plan-manage-card.surface-card{background:radial-gradient(circle at 105% -10%,#3c82f629,#0000 36%),linear-gradient(#fffffffa,#f7fbfff5);border:1px solid #7b8fad33;border-radius:1rem;padding:1.1rem 1rem 1rem;box-shadow:0 15px 28px #233c5c14,inset 0 1px #ffffff8c}.plan-manage-card.is-featured{border-color:#7b8fad33;box-shadow:0 15px 28px #233c5c14,inset 0 1px #ffffff8c}.plan-manage-badge{display:none}.plan-manage-head{gap:.42rem;display:grid}.plan-manage-index{text-transform:uppercase;letter-spacing:.08em;color:#5c6f86;margin:0;font-size:.75rem}.plan-manage-head h3{letter-spacing:-.04em;margin:0;font-size:2rem;line-height:1.1}.plan-manage-subtitle{color:#607088;margin:0;font-size:1rem}.plan-manage-price-block{gap:.15rem;display:grid}.plan-manage-price{color:#18243d;font-family:var(--font-heading);letter-spacing:-.04em;margin:0;font-size:2.35rem;line-height:1.05}.plan-manage-price .currency{color:#52647c;margin-right:.4rem;font-size:1rem}.plan-manage-price .suffix{letter-spacing:0;color:#5b6c84;margin-left:.45rem;font-size:.92rem}.plan-manage-price-meta{color:#5f7088;margin:0;font-size:.92rem}.plan-manage-metrics{grid-template-columns:1fr;gap:.52rem;display:grid}.plan-manage-metrics>div{background:#ffffffc7;border:1px solid #7b8fad38;border-radius:.85rem;padding:.5rem .65rem}.plan-manage-metrics strong{color:var(--ink-900);font-family:var(--font-heading);font-size:1.05rem}.plan-manage-list{gap:.42rem;margin:0;padding:0;list-style:none;display:grid}.plan-manage-list li{color:#53647d;align-items:baseline;gap:.48rem;font-size:.9rem;display:flex}.plan-manage-list li:before{content:"✓";color:#2ea043;font-weight:700}.plan-manage-actions{gap:.5rem}.plan-manage-actions .ghost-btn,.plan-manage-actions .danger-btn{border-radius:.8rem;min-height:2.3rem;padding:.46rem .9rem}.plan-manage-actions .button-with-icon{flex:1;justify-content:center}.error-text{color:var(--red-500);font-weight:600}.success-text{color:var(--green-600);font-weight:600}.message-balloon{z-index:99999;border:1px solid var(--line,#14345629);-webkit-user-select:none;user-select:none;cursor:grab;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);will-change:transform, opacity;background:#fffffffa;border-radius:.95rem;gap:.65rem;width:max-content;min-width:280px;max-width:50vw;padding:.72rem .88rem;transition:transform .15s,box-shadow .15s;animation:.38s cubic-bezier(.16,1,.3,1) forwards messageBalloonSlideIn;display:grid;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 16px 36px #0f1a222e,0 4px 12px #0f1a2214}.message-balloon.is-closing{pointer-events:none;animation:.32s cubic-bezier(.65,0,.88,.1) forwards messageBalloonSlideOut}@keyframes messageBalloonSlideIn{0%{opacity:0;transform:translate(120%)scale(.92)}70%{opacity:1;transform:translate(-3%)scale(1.01)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes messageBalloonSlideOut{0%{opacity:1;transform:translate(0,0)scale(1)}30%{transform:translate(-3%)scale(1.005)}to{opacity:0;transform:translate(125%)scale(.9)}}.message-balloon.is-holding{cursor:grabbing;transform:scale(1.015);box-shadow:0 20px 42px #0f1a223d}.message-balloon-head{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.message-balloon.is-error{background:#fff5f5fa;border-color:#b5332f66}.message-balloon.is-success{background:#f0fdf5fa;border-color:#237b4166}.message-balloon-text{color:var(--ink-900);word-break:break-word;align-items:center;gap:.4rem;margin:0;font-size:.86rem;font-weight:600;line-height:1.4;display:flex}.message-balloon.is-error .message-balloon-text{color:var(--red-500)}.message-balloon.is-success .message-balloon-text{color:var(--green-600)}.message-balloon-close{border:1px solid var(--line,#1434562e);width:1.3rem;min-width:1.3rem;height:1.3rem;color:var(--ink-700);cursor:pointer;background:#ffffffe0;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:.95rem;font-weight:700;line-height:1;transition:background .15s,color .15s;display:inline-flex}.message-balloon-close:hover{color:var(--ink-900);background:#fff}.message-balloon-timer{background:#0f1a221f;border-radius:999px;width:100%;height:2.5px;display:block;overflow:hidden}.message-balloon-timer-bar{transform-origin:0;width:100%;height:100%;animation-name:messageBalloonTimerDrain;animation-timing-function:linear;animation-fill-mode:forwards;display:block}.message-balloon.is-error .message-balloon-timer-bar{background:#b5332fcc}.message-balloon.is-success .message-balloon-timer-bar{background:#237b41cc}@keyframes messageBalloonTimerDrain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (width<=768px){.message-balloon{min-width:240px;max-width:calc(100vw - 2rem);bottom:1rem;right:1rem}}.holiday-header{align-items:center}.holiday-company-filter{align-items:center;gap:.55rem;min-width:200px;display:inline-flex}.holiday-company-filter span{text-transform:uppercase;letter-spacing:.1em;white-space:nowrap;font-size:.75rem}.holiday-company-filter select{min-width:260px}.holiday-compact-btn{min-height:2.55rem;padding:.45rem .92rem;font-size:.95rem}.holiday-compact-icon-btn{width:2.8rem;min-width:2.8rem;height:2.8rem}.holiday-month-head{border:1px solid var(--line);background:#ffffffbd;border-radius:.85rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem;padding:.55rem .7rem;display:flex}.holiday-month-title{color:var(--ink-900);align-items:center;gap:.5rem;display:inline-flex}.holiday-month-title strong{font-family:var(--font-heading);letter-spacing:-.01em}.holiday-month-nav-btn{justify-content:center;align-items:center;width:2.2rem;min-width:2.2rem;height:2.2rem;padding:0;display:inline-flex}.holiday-layout{grid-template-columns:minmax(0,1fr) 320px;gap:.8rem;min-height:0;display:grid}.holiday-calendar-wrap{border:1px solid var(--line);background:#fff;border-radius:.95rem;gap:.45rem;padding:.65rem;display:grid}.holiday-weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem;display:grid}.holiday-weekdays span{text-align:center;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-700);padding:.18rem .2rem;font-size:.76rem;font-weight:700}.holiday-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem;display:grid}.holiday-day-cell{border:1px solid var(--line);text-align:left;background:#fff;border-radius:.75rem;grid-template-rows:auto 1fr;gap:.3rem;min-height:102px;padding:.45rem;display:grid}.holiday-day-cell:hover{border-color:#198f8a6b;box-shadow:0 8px 16px #198f8a1c}.holiday-day-cell.is-outside{opacity:.48;background:#ffffff8c}.holiday-day-cell.is-today{border-color:#198f8a94}.holiday-day-cell.is-selected{border-color:#198f8ae6;box-shadow:0 10px 20px #198f8a29}.holiday-day-cell.has-holiday{background:linear-gradient(#b5332f29,#b5332f08),#fff;border-color:#b5332f61}.holiday-day-cell.has-holiday .holiday-day-head em{color:var(--red-500);background:#b5332f29}.holiday-day-head{justify-content:space-between;align-items:center;gap:.3rem;display:flex}.holiday-day-head span{color:var(--ink-900);font-weight:700}.holiday-day-head em{color:var(--teal-700);background:#198f8a24;border-radius:999px;padding:.1rem .45rem;font-size:.72rem;font-style:normal;font-weight:700}.holiday-day-items{align-content:start;gap:.22rem;display:grid}.holiday-day-items span{color:var(--ink-700);white-space:nowrap;text-overflow:ellipsis;font-size:.73rem;overflow:hidden}.holiday-detail-panel{align-content:start;gap:.6rem}.holiday-detail-head{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.holiday-day-list{gap:.55rem;max-height:420px;padding-right:.2rem;display:grid;overflow-y:auto}.holiday-entry-card{border:1px solid var(--line);background:#fff;border-radius:.8rem;gap:.45rem;padding:.65rem;display:grid}.holiday-entry-card strong{color:var(--ink-900);margin-bottom:.2rem;display:block}.employee-timeline-page .employee-timeline-card{gap:.75rem}.employee-timeline-status-row{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.employee-timeline-table{table-layout:fixed;width:100%}.employee-timeline-table th:first-child,.employee-timeline-table td:first-child{width:58px}.employee-timeline-table th:nth-child(6),.employee-timeline-table td:nth-child(6){width:108px}.employee-timeline-toggle{align-items:center;gap:.55rem;display:flex}.employee-timeline-toggle input{width:auto;margin:0}.employee-timeline-modal-message{border:1px solid var(--line);background:#ffffffb8;border-radius:.65rem;margin:0;padding:.45rem .6rem}.monthly-attendance-card{gap:.45rem;padding:.68rem;position:relative}.monthly-attendance-header{align-items:center}.monthly-attendance-controls{align-items:center;gap:.35rem}.monthly-attendance-top-actions{justify-content:flex-end;align-items:center;gap:.35rem}.monthly-attendance-viewbar{grid-template-columns:auto 1fr;justify-content:stretch;align-items:center;gap:.35rem .45rem;width:100%;display:grid}.monthly-attendance-viewbar.is-monthly{grid-template-columns:auto auto;justify-content:center}.monthly-attendance-viewbar.is-monthly .monthly-view-toggle{justify-self:center}.monthly-attendance-viewbar.is-monthly.has-duration-band .monthly-duration-side{grid-column:1/-1;justify-self:center;margin-inline:auto}.attendance-summary-page .monthly-attendance-viewbar.is-monthly{grid-template-columns:auto 1fr;justify-content:stretch}.attendance-summary-page .monthly-attendance-viewbar.is-monthly .monthly-view-toggle{justify-self:start}.attendance-summary-page .monthly-attendance-viewbar.is-monthly.has-duration-band .monthly-duration-side{justify-self:stretch;margin-inline:0}.monthly-summary-switch-group{flex-wrap:nowrap;justify-self:start;align-items:center;gap:.55rem;display:inline-flex}.monthly-summary-switch{border:1px solid var(--line);background:#fffc;border-radius:999px;justify-self:start;align-items:center;gap:.2rem;width:fit-content;padding:.15rem;display:inline-flex}.monthly-summary-switch-btn{color:var(--ink-700);background:0 0;border:0;border-radius:999px;padding:.36rem .72rem;font-size:.78rem;font-weight:700}.monthly-summary-switch-btn.is-active{background:linear-gradient(120deg, var(--teal-700), var(--teal-500));color:#fff}.monthly-duration-side{grid-template-columns:auto minmax(300px,450px);justify-self:center;align-items:center;column-gap:.35rem;display:inline-grid}.monthly-view-toggle{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-700);align-items:center;gap:.45rem;font-size:.78rem;font-weight:600;display:inline-flex}.monthly-view-toggle input{border:1px solid var(--line);appearance:none;cursor:pointer;background:#ffffffe6;border-radius:999px;width:2.5rem;height:1.38rem;position:relative}.monthly-view-toggle input:before{content:"";background:#fff;border-radius:999px;width:1rem;height:1rem;transition:transform .2s;position:absolute;top:.12rem;left:.12rem;box-shadow:0 2px 8px #0f1a2238}.monthly-view-toggle input:checked{background:linear-gradient(120deg,#0d6460f2,#198f8af2);border-color:#0d6460d9}.monthly-view-toggle input:checked:before{transform:translate(1.08rem)}.monthly-duration-legend{gap:.2rem;min-width:300px;display:grid}.monthly-duration-legend-head{justify-content:space-between;align-items:baseline;gap:.45rem;display:flex}.monthly-duration-legend-head strong{color:var(--ink-900);font-size:.74rem}.monthly-duration-legend-head span{color:var(--ink-700);text-align:right;font-size:.7rem}.monthly-duration-legend-grid{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:.2rem;display:grid}.monthly-duration-legend-swatch{border:1px solid #0f1a2229;border-radius:.3rem;height:.6rem;display:block}.monthly-duration-legend-scale{color:var(--ink-700);justify-content:space-between;align-items:center;gap:.35rem;font-size:.68rem;display:flex}.monthly-duration-legend-scale.is-discrete{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:.2rem;display:grid}.monthly-duration-legend-scale.is-discrete span{text-align:center}.monthly-attendance-company,.monthly-attendance-month{align-items:center;gap:.45rem;display:inline-flex}.monthly-attendance-day{align-items:center;display:inline-flex}.monthly-attendance-company span,.monthly-attendance-month span{text-transform:uppercase;letter-spacing:.1em;white-space:nowrap;font-size:.74rem}.monthly-attendance-company select{min-width:220px}.monthly-attendance-month input{width:150px}.monthly-attendance-day input{border:1px solid var(--line);width:auto;min-width:130px;max-width:155px;color:var(--ink-900);background:#ffffffe6;border-radius:.65rem;padding:.36rem .52rem;font-size:.82rem}.monthly-attendance-refresh{width:2.7rem;min-width:2.7rem;height:2.7rem}.monthly-attendance-wrap{overflow:auto}.monthly-attendance-table{table-layout:fixed;width:max-content;min-width:100%}.monthly-attendance-table th,.monthly-attendance-table td{text-align:center;min-width:2.2rem;padding:.52rem .4rem}.monthly-attendance-table .sticky-col{z-index:3;background:#fff;position:sticky}.monthly-attendance-table .sticky-col--first{width:56px;min-width:56px;box-shadow:1px 0 0 var(--line), 7px 0 12px #0f1a220a;left:0}.monthly-attendance-table .sticky-col--second{text-align:left;width:220px;min-width:220px;box-shadow:1px 0 0 var(--line), 9px 0 12px #0f1a220f;left:56px}.monthly-attendance-table th.day-header-cell{min-width:2.15rem}.employee-inline-cell{gap:.08rem;display:grid}.employee-inline-cell strong{color:var(--ink-900);font-size:.9rem}.employee-inline-cell span{color:var(--ink-700);font-size:.76rem}.attendance-mark{-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:.45rem;place-items:center;width:1.55rem;height:1.55rem;font-size:.82rem;font-weight:700;display:inline-grid}.attendance-mark.is-present{color:var(--green-600);background:#237b4124;border-color:#237b4142}.attendance-mark.is-absent{color:var(--red-500);background:#b5332f24;border-color:#b5332f4d}.attendance-mark.is-holiday-off{color:#7a5b00;background:#ebbc2f3d;border-color:#bf921475}.attendance-mark.is-holiday{color:#7a5b00;background:#ebbc2f3d;border-color:#bf921475;box-shadow:inset 0 0 0 1px #bf921447}.attendance-mark.is-holiday.is-present{color:var(--green-600);background:#237b412e;border-color:#237b416b;box-shadow:inset 0 0 0 1px #237b4142}.attendance-mark.is-inactive{color:#0000;opacity:.7;background:#8c98a31f;border-color:#8c98a33d}.attendance-mark.is-future{color:#7b8895;background:#8c98a326;border-color:#8c98a352;font-size:.92rem;font-weight:700;line-height:1}.monthly-day-cell.is-future-day{opacity:.88}.attendance-mark.is-absent-light{color:#b5332f4d;background:#b5332f0f;border-color:#b5332f24}.attendance-mark.is-duration-present{border-radius:.55rem;grid-template-rows:1fr 1fr;align-content:center;justify-items:center;gap:.05rem;width:2.45rem;height:1.85rem;padding:.05rem;line-height:1;display:grid}.attendance-mark .duration-work,.attendance-mark .duration-break{color:inherit;font-size:.56rem;font-weight:700;display:block}.attendance-mark .duration-break{opacity:.88}.monthly-attendance-table.is-duration-view th.day-header-cell,.monthly-attendance-table.is-duration-view td.monthly-day-cell{min-width:2.9rem}.monthly-attendance-table td.monthly-day-cell.is-holiday{background:linear-gradient(#ebbc2f42,#ebbc2f17),#fff;border-left:1px solid #bf921452;border-right:1px solid #bf921452}.monthly-attendance-table td.monthly-day-cell.is-holiday:hover{background:linear-gradient(#ebbc2f57,#ebbc2f24),#fff}.monthly-attendance-table td.monthly-day-cell.is-inactive{background:#8c98a31f}.monthly-attendance-table td.monthly-day-cell.is-inactive:hover{background:#8c98a32b}.daily-view-container{width:100%}.daily-desktop-table-wrap{display:block}.daily-mobile-cards-wrap{display:none}.daily-summary-wrap{width:100%;overflow-x:auto}.daily-summary-table{table-layout:auto;border-collapse:collapse;width:100%;min-width:100%}.daily-summary-table th,.daily-summary-table td{vertical-align:middle;padding:.65rem .6rem}.daily-summary-table .daily-col-sl{text-align:center;width:48px;min-width:48px;color:var(--ink-500)}.daily-summary-table .daily-col-emp{text-align:left;min-width:170px}.daily-summary-table .daily-col-status{text-align:center;min-width:95px}.daily-summary-table .daily-col-current{text-align:center;min-width:85px}.daily-summary-table .daily-col-worked{text-align:center;min-width:90px;font-weight:600}.daily-summary-table .daily-col-break{text-align:center;min-width:85px;color:var(--ink-700)}.daily-events-btn{min-width:2.1rem;color:var(--teal-700);background:#198f8a24;border:1px solid #0d646061;border-radius:999px;padding:.2rem .55rem;font-weight:700}.daily-events-empty{color:#33455299;font-weight:600}.daily-events-session-list{gap:.25rem;margin-top:.7rem;display:grid}.daily-events-session-row{border-bottom:1px solid #14222c17;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:.25rem;padding:.38rem 0;display:grid}.daily-events-session-row:last-child{border-bottom:0}.daily-events-session-index{color:#7b5ad4;background:#7b5ad41f;border-radius:999px;place-items:center;width:1.62rem;height:1.62rem;font-size:.74rem;font-weight:700;display:grid}.daily-events-session-main{grid-template-columns:minmax(130px,1fr) 130px minmax(130px,1fr) 44px;place-items:center;gap:.3rem;display:grid}.daily-events-session-action{justify-content:center;justify-self:center;align-items:center;display:inline-flex}.daily-events-session-action .table-action-btn{width:1.95rem;min-width:1.95rem;height:1.95rem}.daily-events-session-col{justify-content:center;align-items:center;gap:.42rem;width:100%;display:inline-flex}.daily-events-session-col>div{text-align:center;justify-items:center;gap:.12rem;display:grid}.daily-events-session-badge{border-radius:999px;place-items:center;width:1.72rem;height:1.72rem;display:grid}.daily-events-session-badge svg{width:.84rem;height:.84rem}.daily-events-session-badge.in{color:var(--green-600);background:#237b411f}.daily-events-session-badge.out{color:var(--red-500);background:#b5332f1f}.daily-events-session-col p{margin:0;font-size:.78rem;font-weight:700;line-height:1.1}.daily-events-session-col.is-in p{color:var(--green-600)}.daily-events-session-col.is-out p{color:#c26a00}.daily-events-session-col strong{color:var(--ink-900);font-size:.88rem;line-height:1.1}.daily-events-session-out-empty{place-items:center;width:100%;display:grid}.daily-events-session-duration{justify-content:center;align-items:center;gap:.3rem;width:100%;display:inline-flex}.daily-events-session-duration span{background:#14222c47;flex:1;height:1px}.daily-events-session-duration strong{color:var(--ink-700);white-space:nowrap;font-size:.82rem;font-weight:600}.daily-events-session-note{color:#334552bd;grid-column:2/-1;margin:.2rem 0 0;font-size:.78rem}.status-pill.is-warning{color:#8b4a13;background:#f3b94c3d;border-color:#bf6f1659}.summary-cell{min-width:70px;font-weight:700}.summary-cell--present{color:var(--green-600)}.summary-cell--absent{color:var(--red-500)}.monthly-attendance-tooltip{z-index:40;border:1px solid var(--line);color:#eef5f9;max-width:280px;box-shadow:var(--shadow);pointer-events:none;background:#0f1a22f5;border-radius:.72rem;gap:.18rem;padding:.55rem .65rem;display:grid;position:fixed;transform:translate(-50%,-100%)}.monthly-attendance-tooltip strong{color:#fff;font-size:.86rem}.monthly-attendance-tooltip span{font-size:.78rem;line-height:1.3}.rfid-scan-card{box-shadow:none;background:0 0;border:0;gap:.95rem;padding:0;position:relative}.rfid-error-toast{z-index:60;color:#fff;text-align:center;background:#b5332ff5;border:1px solid #b5332f57;border-radius:999px;min-width:min(560px,100vw - 2rem);max-width:min(720px,100vw - 2rem);padding:.72rem .95rem;font-weight:700;animation:.22s ease-out toastDrop;position:fixed;top:1rem;left:50%;transform:translate(-50%);box-shadow:0 18px 36px #b5332f47}@keyframes toastDrop{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.rfid-scan-form{display:block}.rfid-hidden-input{opacity:0;pointer-events:none;border:0;width:1px;height:1px;padding:0;position:absolute}.rfid-kiosk-window{text-align:center;cursor:text;background:linear-gradient(#f8faff,#f2f5ff 70%,#f4f7ff);border:1px solid #8c98a338;border-radius:1.35rem;align-content:center;justify-items:center;gap:.62rem;min-height:min(72vh,680px);padding:2rem;display:grid}.rfid-kiosk-window svg{color:#8c98a39e;width:clamp(4rem,11vw,6.2rem);height:clamp(4rem,11vw,6.2rem)}.rfid-kiosk-window h3{letter-spacing:-.03em;color:#334552a3;margin:0;font-size:clamp(2rem,5.3vw,3.7rem);font-weight:700}.rfid-kiosk-window p{color:#3345529e;font-size:clamp(1.25rem,3vw,2.05rem)}.rfid-kiosk-result{justify-items:center;gap:.55rem;width:min(740px,100%);display:grid}.rfid-kiosk-avatar-wrap{position:relative}.rfid-kiosk-avatar{aspect-ratio:1;background:#eef4ff;border:3px solid #366dffbf;border-radius:999px;width:clamp(112px,14vw,148px);overflow:hidden}.rfid-kiosk-avatar img,.rfid-history-avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.rfid-kiosk-status-badge{color:#fff;border:1px solid #ffffffe0;border-radius:999px;align-items:center;gap:.22rem;padding:.22rem .52rem;font-size:.82rem;font-weight:700;display:inline-flex;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.rfid-kiosk-status-badge svg{color:#fff;stroke:#fff;width:.84rem;height:.84rem}.rfid-kiosk-status-badge.is-present{background:#14a86a}.rfid-kiosk-status-badge.is-out{background:#bf4f2c}.rfid-kiosk-result-name{text-transform:uppercase;margin:0;font-size:clamp(2rem,4.6vw,2.9rem);font-weight:800;color:#26323d!important}.rfid-kiosk-result-code{letter-spacing:.03em;background:#2b72ff;border-radius:.7rem;margin:0;padding:.3rem .82rem;font-size:clamp(1rem,2.3vw,1.32rem);font-weight:700;color:#fff!important}.rfid-kiosk-result-time{align-items:center;gap:.32rem;margin:0;font-size:1.2rem;display:inline-flex;color:#26323d!important}.rfid-kiosk-result-time svg{color:#26323d;width:1rem;height:1rem}.rfid-kiosk-result-meta{background:#ffffffbd;border:1px solid #7b899a2b;border-radius:.9rem;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem .8rem;width:min(620px,100%);margin-top:.4rem;padding:.72rem .82rem;display:grid}.rfid-kiosk-result-meta p{color:#334552db;gap:.08rem;margin:0;font-size:.86rem;display:grid}.rfid-kiosk-result-meta strong{letter-spacing:.08em;text-transform:uppercase;color:#334552a3;font-size:.72rem}.rfid-kiosk-result-meta span{font-weight:600}.rfid-company-modal{width:min(480px,100%)}.rfid-company-modal h3{margin-bottom:.2rem}.rfid-last-result{background:linear-gradient(160deg,#237b4124,#198f8a14);border:1px solid #237b4152;border-radius:.85rem;gap:.45rem;padding:.7rem;display:grid}.rfid-last-result-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem .8rem;display:grid}.rfid-last-result-grid p{color:var(--ink-900);font-size:.84rem}.rfid-history{background:#ffffffed;border:1px solid #8c98a347;border-radius:1rem;gap:.45rem;padding:.88rem;display:grid}.rfid-history h3{color:#1f2e3d;align-items:center;gap:.45rem;font-size:1.85rem;display:inline-flex}.rfid-history h3 svg{width:1.15rem;height:1.15rem}.rfid-history-list{gap:.42rem;margin:0;padding:0;list-style:none;display:grid}.rfid-history-item{background:#fffffffa;border:1px solid #7b899a2e;border-radius:.72rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.62rem;padding:.55rem .62rem;display:grid}.rfid-history-item.is-success{background:#f6f8ffeb;border-color:#405a7e33}.rfid-history-item.is-error{background:#b5332f14;border-color:#b5332f42}.rfid-history-item p{color:var(--ink-900);margin:0;font-size:.82rem}.rfid-history-avatar{background:#eef4ff;border:2px solid #366dff94;border-radius:999px;width:2.65rem;height:2.65rem;overflow:hidden}.rfid-history-main{gap:.12rem;min-width:0;display:grid}.rfid-history-main .rfid-history-identity{align-items:baseline;gap:.45rem;min-width:0;display:flex}.rfid-history-main .rfid-history-identity strong{font-size:1.24rem;line-height:1}.rfid-history-main .rfid-history-code{color:#334552d1;white-space:nowrap;font-size:.95rem;font-weight:600}.rfid-history-main .rfid-history-code:before{content:"•";color:#3345529e;margin-right:.38rem}.rfid-history-main .rfid-history-company{color:#334552c7;min-width:0;font-size:1.03rem}.rfid-history-time{color:#334552a8;align-items:center;gap:.25rem;font-size:1.03rem;display:inline-flex}.rfid-history-time svg{width:.92rem;height:.92rem}.qr-header-actions{align-items:center}.qr-camera-pick{border:1px solid var(--line);background:#ffffffd6;border-radius:999px;align-items:center;gap:.45rem;padding:.32rem .55rem;display:inline-flex}.qr-camera-pick svg{width:.96rem;height:.96rem;color:var(--ink-700)}.qr-camera-pick select{min-width:12rem;color:var(--ink-900);background:0 0;border:0;border-radius:0;outline:none;padding:0}.qr-image-upload-trigger{position:relative;overflow:hidden}.qr-image-upload-trigger input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}.qr-scanner-shell{background:linear-gradient(#f8faff,#f2f5ff 72%,#f4f7ff);border:1px solid #8c98a340;border-radius:1.2rem;justify-self:center;width:min(420px,100%);min-height:250px;position:relative;overflow:hidden}.qr-reader-region{width:100%;height:100%;min-height:250px}.qr-reader-region video{object-fit:cover;transform:scaleX(-1);width:100%!important;height:100%!important}.qr-reader-region>div{border:0!important}.qr-reader-region #qr-shaded-region{border-width:22px!important;border-color:#0f1a2261!important}.qr-reader-region #qr-shaded-region>div{border-color:#2f72fff2!important}.qr-scan-guide{z-index:4;pointer-events:none;align-content:center;justify-items:center;display:grid;position:absolute;inset:0}.qr-scan-guide-box{aspect-ratio:1;background:0 0;border:3px solid #2f72fff2;border-radius:1rem;width:min(72%,280px);box-shadow:0 0 0 9999px #0f1a2229,inset 0 0 0 1px #ffffffbf}.qr-scan-guide-text{color:#ffffffc7;text-shadow:0 1px 2px #00000047;letter-spacing:.015em;opacity:.7;background:0 0;border:0;margin-top:.42rem;padding:0;font-size:.82rem;font-weight:700}.qr-scanner-empty{text-align:center;background:#f2f6fff5;align-content:center;justify-items:center;gap:.55rem;padding:1.2rem;display:grid;position:absolute;inset:0}.qr-scanner-empty svg{color:#667588b3;width:clamp(3rem,8vw,4.2rem);height:clamp(3rem,8vw,4.2rem)}.qr-scanner-empty h3{color:#334552d1;margin:0;font-size:clamp(1.5rem,3.4vw,2.1rem)}.qr-scanner-empty p{color:#334552bd;font-size:clamp(.95rem,2vw,1.1rem)}.qr-scan-banner,.qr-error-banner{z-index:6;border-radius:.85rem;position:absolute;bottom:.62rem;left:.62rem;right:.62rem;box-shadow:0 12px 26px #0e172038}.qr-scan-banner{background:#f9fcfff7;border:1px solid #59729142;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.62rem;padding:.56rem .62rem;transition:background .2s,border-color .2s;display:grid;position:absolute;overflow:hidden}.qr-scan-banner.is-action-in{background:#f0fdf4f7;border:2px solid #059669;box-shadow:0 14px 30px #05966938}.qr-scan-banner.is-action-in .qr-scan-banner-photo{background:#dcfce7;border-color:#059669}.qr-scan-banner.is-action-in .qr-scan-banner-progress{background:linear-gradient(90deg,#059669,#34d399)}.qr-scan-banner.is-action-out{background:#fef2f2f7;border:2px solid #dc2626;box-shadow:0 14px 30px #dc262638}.qr-scan-banner.is-action-out .qr-scan-banner-photo{background:#fee2e2;border-color:#dc2626}.qr-scan-banner.is-action-out .qr-scan-banner-progress{background:linear-gradient(90deg,#dc2626,#f87171)}.qr-scan-badge{letter-spacing:.04em;text-transform:uppercase;color:#fff;white-space:nowrap;border-radius:999px;align-items:center;gap:.32rem;padding:.25rem .65rem;font-size:.84rem;font-weight:800;display:inline-flex}.qr-scan-badge.is-in{background:#059669;box-shadow:0 2px 8px #05966959}.qr-scan-badge.is-out{background:#dc2626;box-shadow:0 2px 8px #dc262659}.qr-scan-banner-photo{background:#eef4ff;border:2.5px solid #2f72ff73;border-radius:999px;flex:none;width:3.25rem;height:3.25rem;overflow:hidden}.qr-scan-banner-photo img{object-fit:cover;width:100%;height:100%;display:block}.qr-scan-banner-main{gap:.18rem;min-width:0;display:grid}.qr-scan-banner-header{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.qr-scan-banner-name{color:#1f2e3d;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.18rem;font-weight:800;overflow:hidden}.qr-scan-banner-name span{color:#1f2e3dcc;font-size:.92rem;font-weight:700}.qr-scan-banner-meta{color:#26323dc7;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.3rem;margin:0;font-size:.87rem;display:inline-flex;overflow:hidden}.qr-scan-banner-meta svg{flex:none;width:.88rem;height:.88rem}.qr-scan-banner-meta .dot{opacity:.8}.qr-scan-banner-progress{transform-origin:0;background:linear-gradient(90deg,#2b72ff,#14a86a);height:4px;animation:5s linear forwards qrBannerCountdown;position:absolute;bottom:0;left:0;right:0}@keyframes qrBannerCountdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.qr-error-banner{color:#fff;text-align:center;background:#b5332ff2;border:1px solid #b5332f47;padding:.62rem .72rem;font-size:.9rem;font-weight:700}.bulk-range-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.bulk-weekday-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem;display:grid}.bulk-weekday-btn{border-radius:.75rem;padding:.5rem .35rem;font-weight:700}.bulk-weekday-btn.is-active{color:var(--red-500);background:#b5332f24;border-color:#b5332f73}.bulk-summary{border:1px dashed var(--line);background:#ffffffb8;border-radius:.75rem;padding:.55rem .75rem;font-size:.84rem;line-height:1.45}.holiday-bulk-modal{width:100%;max-width:640px}.bulk-modal-body{flex-direction:column;gap:.85rem;display:flex}.bulk-modal-tabs{border:1px solid var(--line,#14222c1a);background:#14222c0d;border-radius:.85rem;gap:.35rem;padding:.3rem;display:flex}.bulk-tab-btn{color:var(--ink-700);cursor:pointer;background:0 0;border:0;border-radius:.65rem;flex:1;justify-content:center;align-items:center;gap:.45rem;padding:.55rem .75rem;font-size:.82rem;font-weight:600;transition:all .18s;display:inline-flex}.bulk-tab-btn:hover:not(.is-active){color:var(--ink-900);background:#ffffff80}.bulk-tab-btn.is-active{color:var(--primary-600,#06f);background:#fff;box-shadow:0 2px 8px #0f1a2214}.bulk-presets-row{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.bulk-presets-label{color:var(--ink-500);margin-right:.2rem;font-size:.76rem;font-weight:600}.bulk-mini-preset-btn{border:1px solid var(--line,#14222c1f);background:#14222c0a;border-radius:.5rem;padding:.22rem .55rem;font-size:.74rem;font-weight:600}.bulk-mini-preset-btn:hover{background:#14222c14;border-color:#14222c33}.bulk-weekdays-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.bulk-weekdays-header p{margin:0;font-size:.84rem}.bulk-checkbox-label{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ink-900);align-items:center;gap:.55rem;font-size:.85rem;display:flex}.bulk-checkbox-label input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--primary-600,#06f);cursor:pointer}.bulk-options-group{border:1px solid var(--line,#14222c1a);background:#14222c05;border-radius:.75rem;flex-direction:column;gap:.5rem;padding:.7rem .85rem;display:flex}.bulk-custom-head{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.bulk-preset-trigger-btn{color:#4f46e5;background:#6366f114;border-color:#6366f140;border-radius:.75rem;padding:.48rem .8rem;font-size:.8rem;font-weight:600}.bulk-preset-trigger-btn:hover{background:#6366f124}.bulk-custom-table-wrap{border:1px solid var(--line,#14222c1f);background:#14222c05;border-radius:.85rem;flex-direction:column;gap:.45rem;padding:.65rem;display:flex}.bulk-custom-table-head{color:var(--ink-500);text-transform:uppercase;letter-spacing:.04em;grid-template-columns:140px 1fr 34px;gap:.5rem;padding:0 .2rem;font-size:.75rem;font-weight:700;display:grid}.bulk-custom-rows-list{flex-direction:column;gap:.45rem;max-height:220px;padding-right:.2rem;display:flex;overflow-y:auto}.bulk-custom-row{grid-template-columns:140px 1fr 34px;align-items:center;gap:.5rem;display:grid}.bulk-custom-remove-btn{width:32px;height:32px;color:var(--red-500);border-radius:.5rem;padding:0}.bulk-custom-remove-btn:hover:not(:disabled){background:#dc26261a}.bulk-add-row-btn{border-radius:.6rem;align-self:flex-start;margin-top:.2rem;padding:.38rem .75rem;font-size:.8rem;font-weight:600}.bulk-select-tab-wrap{flex-direction:column;gap:.65rem;display:flex}.bulk-select-controls{grid-template-columns:180px 1fr;gap:.55rem;display:grid}.bulk-select-company-input,.bulk-select-search-input{font-size:.86rem}.bulk-select-actions-bar{justify-content:space-between;align-items:center;padding:.2rem 0;display:flex}.bulk-select-count-badge{color:var(--ink-700);font-size:.82rem}.bulk-select-count-badge strong{color:var(--ink-900)}.bulk-select-list-scroll{border:1px solid var(--line,#14222c1f);background:#fff;border-radius:.85rem;flex-direction:column;max-height:240px;display:flex;overflow-y:auto}.bulk-select-item-row{border-bottom:1px solid var(--line,#14222c14);cursor:pointer;grid-template-columns:24px 110px 1fr;align-items:center;gap:.65rem;padding:.55rem .75rem;transition:background .12s;display:grid}.bulk-select-item-row:last-child{border-bottom:0}.bulk-select-item-row:hover{background:#14222c05}.bulk-select-item-row.is-selected{background:#dc26260a}.bulk-select-item-date{flex-direction:column;display:flex}.bulk-select-item-date strong{color:var(--ink-900);font-size:.82rem}.bulk-select-item-date span{color:var(--ink-500);font-size:.72rem}.bulk-select-item-info{flex-direction:column;min-width:0;display:flex}.bulk-select-item-info strong{color:var(--ink-900);white-space:nowrap;text-overflow:ellipsis;font-size:.84rem;overflow:hidden}.bulk-select-item-info span{color:var(--ink-500);font-size:.74rem}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=980px){.app-shell{grid-template-columns:1fr;width:100%;height:100vh;margin:0;position:relative}.stats-grid{display:none}.side-panel{z-index:41;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff7;align-content:start;gap:1rem;width:min(280px,100vw - 2.2rem);max-width:100%;height:100vh;transition:transform .22s;position:fixed;inset:0 auto 0 0;overflow:hidden;transform:translate(-100%);box-shadow:0 20px 40px #0f1a222e}.side-panel-brand{display:none}.side-panel-nav-scroll{max-height:100%;padding-top:1.25rem}.side-panel.is-open{transform:translate(0)}.main-panel{overflow:visible}.mobile-nav-trigger{justify-content:center;align-items:center;display:inline-flex}.mobile-nav-backdrop{z-index:40;background:#0f1a2259;border:0;display:block;position:fixed;inset:0}.page-wrap{padding:.85rem}.surface-card{gap:.6rem;padding:.72rem}.section-header,.section-header.is-compact,.holiday-header,.attendance-summary-head,.employee-attendance-detail-head{flex-direction:column;align-items:flex-start}.section-header .cta-row,.holiday-header .cta-row{width:100%}.dashboard-controls{flex-wrap:wrap;justify-content:flex-end;margin-bottom:.15rem;position:static}.dashboard-company-grid{grid-auto-flow:row;grid-auto-columns:unset;grid-template-columns:1fr;min-width:0}.dashboard-company-column{padding:.65rem}.dashboard-mini-table th,.dashboard-mini-table td{padding:.4rem .44rem;font-size:.78rem}.modal-card,.employee-modal-card,.employee-modal-card--view,.attendance-mark-modal,.rfid-company-modal{width:min(100%,100vw - 1rem)}.attendance-session-main,.daily-events-session-main{grid-template-columns:minmax(0,1fr)}.employee-view-photo{width:auto;max-width:100%;height:auto;max-height:170px}.employee-view-photo-empty{width:120px;height:120px}}@media (width<=680px){.app-shell{border-left:0;border-right:0;border-radius:0;width:100%;height:100vh;margin:0}.auth-card{border-radius:1rem;padding:1.2rem}.marketing-page{width:calc(100% - 1rem);margin:.5rem auto 1rem}.topbar{flex-wrap:nowrap;align-items:center;padding:.8rem}.topbar-actions{flex-shrink:0;justify-content:flex-end;gap:.4rem;width:auto}.menu-wrap{margin-left:0}.menu-trigger{max-width:100%;min-height:2.35rem;padding:.35rem .72rem}.topbar-main{flex:1;min-width:0}.topbar-brand-title{margin-left:.15rem;font-size:1.22rem;font-weight:800;line-height:1.1;display:inline-block}.topbar-kicker{display:none}.mobile-nav-trigger{min-height:2.2rem;padding:.34rem .7rem}.page-wrap{padding:.8rem}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-item{padding:.7rem}.company-item{flex-direction:column;align-items:flex-start}.section-heading{flex-direction:column}.section-header .cta-row,.holiday-header .cta-row,.monthly-attendance-controls,.qr-header-actions{flex-direction:column;align-items:stretch}.section-header .cta-row .primary-btn,.section-header .cta-row .ghost-btn:not(.icon-only-btn),.holiday-header .cta-row .primary-btn,.holiday-header .cta-row .ghost-btn:not(.icon-only-btn),.qr-header-actions .ghost-btn:not(.icon-only-btn){justify-content:center;width:100%}.section-header .cta-row .icon-only-btn,.holiday-header .cta-row .icon-only-btn,.qr-header-actions .icon-only-btn{align-self:flex-end}.company-actions{justify-content:flex-start}.companies-list-scroll{max-height:min(52vh,460px)}.companies-page .section-header .cta-row{flex-flow:row;justify-content:space-between;align-items:center;gap:.45rem}.companies-page .section-header .cta-row .primary-btn{flex:1;width:auto}.companies-page .section-header .cta-row .icon-only-btn{flex-shrink:0;align-self:auto}.attendance-summary-page .monthly-attendance-card{gap:.4rem;padding:.6rem}.attendance-summary-page .monthly-attendance-header{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.45rem;display:grid}.attendance-summary-page .monthly-attendance-header>div:first-child{min-width:0}.attendance-summary-page .monthly-attendance-header h2{font-size:1.18rem;line-height:1.12}.attendance-summary-page .monthly-attendance-top-actions{flex-direction:row;flex-shrink:0;justify-content:flex-end;align-items:center;gap:.38rem;width:auto;margin-left:0;display:inline-flex}.attendance-summary-page .monthly-attendance-controls{grid-template-columns:1fr;align-items:stretch;gap:.42rem;width:100%;display:grid}.attendance-summary-page .monthly-attendance-controls.is-monthly{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:.42rem}.attendance-summary-page .monthly-attendance-controls.is-daily{grid-template-columns:1fr}.attendance-summary-page .monthly-attendance-company span,.attendance-summary-page .monthly-attendance-month span{display:none}.attendance-summary-page .monthly-attendance-company,.attendance-summary-page .monthly-attendance-month{justify-content:stretch;width:100%;min-width:0}.attendance-summary-page .monthly-attendance-company select{width:100%;min-width:0}.attendance-summary-page .monthly-attendance-month{justify-content:space-between;width:100%}.attendance-summary-page .monthly-attendance-month input{width:100%}.attendance-summary-page .monthly-attendance-top-actions .icon-only-btn{align-self:auto;width:2.12rem;min-width:2.12rem;height:2.12rem;padding:0}.attendance-summary-page .monthly-attendance-top-actions .menu-wrap{margin-left:0}.attendance-summary-page .monthly-attendance-table .sticky-col,.attendance-summary-page .monthly-attendance-table .sticky-col--first,.attendance-summary-page .monthly-attendance-table .sticky-col--second{z-index:auto;box-shadow:none;position:static;left:auto}.employee-timeline-page .section-header{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:.6rem}.employee-timeline-page .section-header>div:first-child{min-width:0}.employee-timeline-page .section-header h2{font-size:1.5rem;line-height:1.14}.employee-timeline-page .section-header p{font-size:.82rem;line-height:1.24}.employee-timeline-page .section-header .cta-row{flex-flow:row;justify-content:flex-end;align-items:center;gap:.42rem;width:auto;margin-left:auto}.employee-timeline-page .section-header .cta-row .timeline-add-btn,.employee-timeline-page .section-header .cta-row .ghost-btn.icon-only-btn{flex:none;align-self:auto;width:2.3rem;min-width:2.3rem;height:2.3rem;padding:0}.employee-timeline-page .section-header .timeline-add-label,.employee-timeline-page .section-header .timeline-refresh-btn{display:none}.attendance-page .section-header{align-items:flex-start;gap:.6rem}.attendance-page .section-header h2{font-size:1.85rem;line-height:1.14}.attendance-page .section-header p{font-size:.9rem;line-height:1.24}.attendance-page .section-header .cta-row{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.42rem;width:100%;display:grid}.attendance-page .section-header .monthly-attendance-month{grid-column:1/-1;justify-content:space-between;width:100%}.attendance-page .section-header .monthly-attendance-month input{width:min(100%,260px)}.attendance-page .section-header .primary-btn{width:100%;min-height:2.35rem;padding:.42rem .75rem;font-size:.94rem}.attendance-page .section-header .icon-only-btn{align-self:auto;width:2.35rem;min-width:2.35rem;height:2.35rem}.attendance-page .attendance-day-group{border-radius:.9rem}.attendance-page .attendance-day-head{align-items:flex-start;gap:.45rem;padding:.52rem .58rem}.attendance-page .attendance-day-head h3{font-size:.92rem}.attendance-page .attendance-day-head-actions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.42rem;width:100%;display:grid}.attendance-page .attendance-day-summary-badge{flex-wrap:wrap;gap:.32rem}.attendance-page .attendance-mark-entry-btn{width:auto;min-height:2.15rem;padding:.34rem .62rem;font-size:.8rem}.attendance-page .attendance-session-list{gap:.46rem;padding:.35rem .45rem .45rem}.attendance-page .attendance-session-row{border:1px solid var(--line);background:#fff;border-radius:.75rem;grid-template-columns:minmax(0,1fr);align-items:flex-start;gap:.45rem;padding:.45rem}.attendance-page .attendance-session-row:last-child{border-bottom:1px solid var(--line)}.attendance-page .attendance-session-index{width:1.5rem;height:1.5rem;font-size:.72rem}.attendance-page .attendance-session-main{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:center;gap:.28rem}.attendance-page .attendance-session-col{justify-content:center;justify-self:center}.attendance-page .attendance-session-col>div{text-align:center;justify-items:center}.attendance-page .attendance-session-col strong{font-size:.85rem}.attendance-page .attendance-session-duration{justify-content:center;justify-self:center;width:100%}.attendance-page .attendance-session-duration span{display:none}.attendance-page .attendance-session-action{justify-content:flex-end;justify-self:end;width:auto}.attendance-page .attendance-session-action .table-action-btn{width:1.82rem;min-width:1.82rem;height:1.82rem}.employee-timeline-page .table-wrap{background:0 0;border:0;overflow:visible}.employee-timeline-page .employee-timeline-table{border-collapse:separate;border-spacing:0;width:100%;min-width:0}.employee-timeline-page .employee-timeline-table thead{display:none}.employee-timeline-page .employee-timeline-table tbody,.employee-timeline-page .employee-timeline-table tr,.employee-timeline-page .employee-timeline-table td{width:100%;display:block}.employee-timeline-page .employee-timeline-table tr{border:1px solid var(--line);background:#fff;border-radius:.85rem;grid-template-columns:minmax(0,1fr) auto;gap:.1rem .5rem;padding:.58rem .62rem;display:grid;box-shadow:0 8px 18px #0f1a220f}.employee-timeline-page .employee-timeline-table tr:not(:last-child){margin-bottom:.62rem}.employee-timeline-page .employee-timeline-table td{border-bottom:0;padding:0;font-size:.8rem}.employee-timeline-page .employee-timeline-table td[colspan]{padding:.2rem;font-size:.84rem}.employee-timeline-page .employee-timeline-table td:first-child{display:none}.employee-timeline-page .employee-timeline-table td:nth-child(2),.employee-timeline-page .employee-timeline-table td:nth-child(3),.employee-timeline-page .employee-timeline-table td:nth-child(4){grid-column:1/-1;justify-content:space-between;align-items:center;gap:.6rem;padding:.16rem 0;display:flex}.employee-timeline-page .employee-timeline-table td:nth-child(2):before,.employee-timeline-page .employee-timeline-table td:nth-child(3):before,.employee-timeline-page .employee-timeline-table td:nth-child(4):before{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-500);flex-shrink:0;font-size:.72rem;font-weight:700}.employee-timeline-page .employee-timeline-table td:nth-child(2):before{content:"Start"}.employee-timeline-page .employee-timeline-table td:nth-child(3):before{content:"End"}.employee-timeline-page .employee-timeline-table td:nth-child(4):before{content:"Duration"}.employee-timeline-page .employee-timeline-table td:nth-child(5),.employee-timeline-page .employee-timeline-table td:nth-child(6){align-items:center;width:auto;margin-top:.38rem;display:inline-flex}.employee-timeline-page .employee-timeline-table td:nth-child(5){grid-column:1}.employee-timeline-page .employee-timeline-table td:nth-child(6){grid-column:2;justify-self:end}.employee-timeline-page .employee-timeline-table .table-actions-compact{flex-wrap:nowrap;gap:.24rem}.employee-timeline-page .employee-timeline-table .table-action-btn{width:1.86rem;min-width:1.86rem;height:1.86rem}.employee-timeline-page .employee-timeline-table .table-action-btn .btn-icon,.employee-timeline-page .employee-timeline-table .table-action-btn .btn-icon svg{width:.86rem;height:.86rem}.companies-page .table-wrap{overflow:visible}.companies-page .companies-data-table{table-layout:fixed;width:100%}.companies-page .companies-data-table .col-sl{width:9%}.companies-page .companies-data-table .col-name{width:35%}.companies-page .companies-data-table .col-status{width:20%}.companies-page .companies-data-table .col-actions{width:36%}.companies-page .companies-data-table th,.companies-page .companies-data-table td{white-space:nowrap;padding:.46rem .3rem;font-size:.78rem}.companies-page .companies-data-table td:nth-child(2){white-space:normal;word-break:break-word;overflow-wrap:anywhere;line-height:1.2}.companies-page .companies-data-table th:nth-child(4),.companies-page .companies-data-table td:nth-child(4){min-width:0;max-width:none;box-shadow:none;position:static}.companies-page .companies-data-table .table-actions-compact{justify-content:flex-start;gap:.22rem}.companies-page .companies-data-table .table-action-btn{width:1.8rem;min-width:1.8rem;height:1.8rem}.companies-page .companies-data-table .table-action-btn .btn-icon,.companies-page .companies-data-table .table-action-btn .btn-icon svg{width:.86rem;height:.86rem}.companies-page .companies-data-table .status-pill{letter-spacing:.06em;padding:.14rem .4rem;font-size:.68rem}.plans-page .table-wrap,.subscriptions-page .table-wrap,.payments-page .table-wrap{overflow-x:hidden}.plans-page .entity-data-table,.subscriptions-page .entity-data-table,.payments-page .entity-data-table{table-layout:fixed;width:100%}.plans-page .entity-data-table th,.plans-page .entity-data-table td,.subscriptions-page .entity-data-table th,.subscriptions-page .entity-data-table td,.payments-page .entity-data-table th,.payments-page .entity-data-table td{white-space:nowrap;padding:.46rem .3rem;font-size:.78rem}.plans-page .entity-data-table td:nth-child(2),.subscriptions-page .entity-data-table td:nth-child(2),.payments-page .entity-data-table td:nth-child(2),.payments-page .entity-data-table td:nth-child(3){white-space:normal;word-break:break-word;overflow-wrap:anywhere;line-height:1.2}.plans-page .entity-data-table th:last-child,.plans-page .entity-data-table td:last-child,.subscriptions-page .entity-data-table th:last-child,.subscriptions-page .entity-data-table td:last-child,.payments-page .entity-data-table th:last-child,.payments-page .entity-data-table td:last-child{min-width:0;max-width:none;box-shadow:none;position:static}.plans-page .entity-data-table .table-actions-compact,.subscriptions-page .entity-data-table .table-actions-compact,.payments-page .entity-data-table .table-actions-compact{justify-content:flex-start;gap:.22rem}.plans-page .entity-data-table .table-action-btn,.subscriptions-page .entity-data-table .table-action-btn,.payments-page .entity-data-table .table-action-btn{width:1.8rem;min-width:1.8rem;height:1.8rem}.plans-page .entity-data-table .table-action-btn .btn-icon,.plans-page .entity-data-table .table-action-btn .btn-icon svg,.subscriptions-page .entity-data-table .table-action-btn .btn-icon,.subscriptions-page .entity-data-table .table-action-btn .btn-icon svg,.payments-page .entity-data-table .table-action-btn .btn-icon,.payments-page .entity-data-table .table-action-btn .btn-icon svg{width:.86rem;height:.86rem}.plans-page .entity-data-table .status-pill,.subscriptions-page .entity-data-table .status-pill,.payments-page .entity-data-table .status-pill{letter-spacing:.06em;padding:.14rem .4rem;font-size:.68rem}.employees-page .section-header{flex-direction:row;justify-content:space-between;align-items:center;gap:.6rem}.employees-page .section-header>div:first-child{min-width:0}.employees-page .section-header h2{font-size:1.5rem;line-height:1.15}.employees-page .section-header p{font-size:.82rem;line-height:1.25}.employees-page .section-header .cta-row{flex-flow:row;justify-content:flex-end;align-items:center;gap:.45rem;width:auto;margin-left:auto}.employees-page .section-header .cta-row .primary-btn.icon-only-btn,.employees-page .section-header .cta-row .ghost-btn.icon-only-btn{flex:none;justify-content:center;align-self:auto;width:2.35rem;min-width:2.35rem;height:2.35rem;padding:0}.employees-page .section-header .cta-row .btn-icon,.employees-page .section-header .cta-row .btn-icon svg{width:.95rem;height:.95rem}.employees-page .table-wrap{background:0 0;border:0;overflow:visible}.employees-page .employees-data-table{border-collapse:separate;border-spacing:0;width:100%;min-width:0}.employees-page .employees-data-table colgroup,.employees-page .employees-data-table thead{display:none}.employees-page .employees-data-table tbody,.employees-page .employees-data-table td{width:100%;display:block}.employees-page .employees-data-table tr{border:1px solid var(--line);background:#fff;border-radius:.85rem;grid-template-columns:minmax(0,1fr) auto;gap:.2rem .45rem;padding:.58rem .62rem;display:grid;box-shadow:0 8px 18px #0f1a220f}.employees-page .employees-data-table tr:not(:last-child){margin-bottom:.25rem}.employees-page .employees-data-table th,.employees-page .employees-data-table td{white-space:normal;border-bottom:0;padding:0;font-size:.78rem}.employees-page .employees-data-table td:first-child,.employees-page .employees-data-table td:nth-child(2),.employees-page .employees-data-table td:nth-child(4),.employees-page .employees-data-table td:nth-child(5){display:none}.employees-page .employees-data-table td:nth-child(3){grid-column:1/-1;margin-bottom:.26rem}.employees-page .employees-data-table .employee-name-cell strong{color:var(--ink-900);word-break:break-word;overflow-wrap:anywhere;font-size:.92rem;line-height:1.25;display:inline}.employees-page .employees-data-table .employee-name-cell span{color:var(--ink-500);letter-spacing:.01em;margin-top:0;font-size:.76rem;line-height:1.2;display:inline}.employees-page .employees-data-table .employee-name-cell span:before{content:" - ";color:var(--ink-400)}.employees-page .employees-data-table td:nth-child(6){grid-column:1;align-self:center;width:auto;margin-bottom:0}.employees-page .employees-data-table .table-actions-compact{flex-wrap:nowrap;justify-content:flex-end;gap:.22rem}.employees-page .employees-data-table .table-action-btn{width:1.8rem;min-width:1.8rem;height:1.8rem}.employees-page .employees-data-table .table-action-btn .btn-icon,.employees-page .employees-data-table .table-action-btn .btn-icon svg{width:.86rem;height:.86rem}.employees-page .employees-data-table .status-pill{letter-spacing:.06em;padding:.14rem .4rem;font-size:.68rem}.employees-page .employees-data-table td:nth-child(7){width:auto;min-width:0;max-width:none;box-shadow:none;grid-column:2;place-self:center end;position:static}.modal-backdrop{padding:.65rem}.employee-form-columns,.employee-choice-group{grid-template-columns:1fr}.employees-page .employee-choice-group{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;width:100%;max-width:100%}.employees-page .employee-choice{min-height:2rem;padding:.35rem .55rem;font-size:.98rem}.employee-photo-toolbar{justify-content:flex-start}.employee-view-hero{text-align:center;grid-template-columns:1fr}.employee-view-badges{justify-content:center}.employee-view-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-view-details,.employee-attendance-layout,.employee-attendance-grid{grid-template-columns:1fr}.employee-attendance-summary-panel{padding-right:0}.qr-camera-pick{justify-content:space-between;width:100%}.qr-camera-pick select{width:100%;min-width:0}.qr-scan-card .qr-header-actions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem;display:grid}.qr-scan-card .qr-header-actions .qr-company-btn{text-overflow:ellipsis;white-space:nowrap;grid-area:1/1;justify-content:flex-start;width:100%;min-width:0;overflow:hidden}.qr-scan-card .qr-header-actions .qr-refresh-btn{grid-area:1/2;place-self:center end}.qr-scan-card .qr-header-actions .qr-camera-pick{grid-area:2/1/auto/-1}.qr-scan-card .qr-header-actions .qr-image-upload-trigger{display:none}.qr-scan-card .qr-scanner-shell{height:min(52vh,380px);min-height:250px}.qr-scan-card .qr-reader-region,.qr-scan-card .qr-reader-region>div{min-height:0;height:100%!important}.employee-attendance-detail-panel{border-left:0;border-top:1px solid var(--line);padding-top:.75rem;padding-left:0}.employee-attendance-scroll,.employee-session-scroll{max-height:none}.attendance-summary-head,.employee-attendance-detail-head{flex-direction:column}.employee-attendance-detail-meta{justify-content:flex-start}.employee-session-flow{grid-template-columns:1fr}.employee-session-arrow{display:none}.employee-session-footnote{flex-direction:column}.holiday-header,.monthly-attendance-header{flex-direction:column;align-items:flex-start}.monthly-attendance-controls{width:100%}.monthly-attendance-viewbar{grid-template-columns:1fr;gap:.55rem;width:100%}.monthly-duration-side{grid-template-columns:1fr;justify-self:stretch;gap:.55rem}.monthly-duration-legend{min-width:0}.monthly-attendance-company,.monthly-attendance-month{justify-content:space-between;width:100%}.monthly-summary-switch-group{flex-wrap:nowrap;align-items:center;gap:.45rem;width:auto;display:inline-flex}.monthly-attendance-day{justify-content:flex-start;justify-self:start;width:auto}.monthly-attendance-company select,.monthly-attendance-month input{width:min(100%,320px)}.monthly-attendance-day input{width:auto;min-width:125px;max-width:145px;padding:.32rem .45rem;font-size:.78rem}.monthly-attendance-viewbar.is-monthly{grid-template-columns:1fr;justify-content:stretch}.monthly-attendance-viewbar.is-monthly .monthly-view-toggle,.monthly-summary-switch{justify-self:start}.monthly-duration-side{width:100%}.monthly-duration-legend-head{flex-direction:column;align-items:flex-start}.monthly-duration-legend-head span{text-align:left}.holiday-company-filter{flex-wrap:wrap;width:100%;min-width:0}.holiday-company-filter select{width:100%;min-width:0}.holiday-header{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.55rem;display:grid}.holiday-header .cta-row{display:contents}.holiday-header>div:first-child{grid-area:1/1}.holiday-header .holiday-company-filter{grid-area:2/1/auto/-1}.holiday-header .holiday-compact-icon-btn{grid-area:1/2;place-self:center end}.holiday-header .holiday-company-filter span{display:none}.holiday-header .holiday-compact-btn{grid-area:auto/1/auto/-1;justify-content:center;width:100%}.holiday-month-head{padding:.5rem .55rem}.holiday-month-title{justify-content:space-between;gap:.35rem;width:100%}.holiday-month-title strong{text-align:center;flex:1;font-size:1.03rem}.holiday-calendar-wrap{gap:.32rem;padding:.5rem}.holiday-weekdays,.holiday-calendar-grid{gap:.24rem}.holiday-weekdays span{letter-spacing:.06em;padding:.12rem .08rem;font-size:.66rem}.holiday-layout{grid-template-columns:1fr}.holiday-day-cell{border-radius:.62rem;min-height:62px;padding:.32rem .3rem}.holiday-day-head span{font-size:.86rem}.holiday-day-head em{padding:.08rem .32rem;font-size:.65rem}.holiday-day-items{display:none}.holiday-detail-panel{gap:.5rem}.holiday-detail-head{flex-direction:column;align-items:stretch}.holiday-detail-head .ghost-btn{justify-content:center;width:100%}.holiday-day-list{max-height:none;padding-right:0}.holiday-entry-card{padding:.58rem}.bulk-range-grid{grid-template-columns:1fr}.attendance-session-row{grid-template-columns:minmax(0,1fr);gap:.55rem}.attendance-session-main{grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:.55rem}.attendance-session-duration{width:100%}.attendance-session-col.is-out{grid-column:auto}.attendance-session-action{grid-column:auto;justify-content:flex-start;justify-self:start}.daily-events-session-row{grid-template-columns:36px minmax(0,1fr);gap:.55rem}.daily-events-session-main{grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:.55rem}.daily-events-session-duration{width:100%}.daily-events-session-note{grid-column:auto}.attendance-delete-rule{font-size:1.12rem}.attendance-day-head{flex-wrap:wrap}.attendance-day-head-actions{flex-wrap:wrap;justify-content:stretch;width:100%}.attendance-day-head-actions .primary-btn,.attendance-day-head-actions .ghost-btn:not(.icon-only-btn){justify-content:center;width:100%}.attendance-datetime-grid,.attendance-mark-form{grid-template-columns:1fr}.rfid-scan-form{display:block}.rfid-last-result-grid{grid-template-columns:1fr}.rfid-kiosk-window{min-height:56vh;padding:1.2rem}.rfid-scan-card .cta-row .rfid-refresh-btn{display:none}.rfid-scan-card .section-header{justify-content:center;gap:0;margin-bottom:.2rem}.rfid-scan-card .section-header>div:first-child{display:none}.rfid-scan-card .cta-row .rfid-company-btn{justify-content:center;width:100%;min-width:0;min-height:2.35rem;padding:.42rem .85rem}.rfid-scan-card .cta-row .rfid-company-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:inline;overflow:hidden}.rfid-kiosk-result-meta{grid-template-columns:1fr}.rfid-history-item{grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr) auto;place-items:center stretch;gap:.22rem .58rem}.rfid-history-avatar{grid-row:1/span 2}.rfid-history-main{grid-area:1/2/span 2;grid-template-rows:auto auto;row-gap:.1rem}.rfid-history-main .rfid-history-identity{font-size:.98rem}.rfid-history-main .rfid-history-identity strong{font-size:1.08rem}.rfid-history-main .rfid-history-code{font-size:.92rem}.rfid-history-main .rfid-history-company{white-space:nowrap;text-overflow:ellipsis;font-size:.98rem;overflow:hidden}.rfid-history-time{white-space:nowrap;grid-area:2/3;place-self:end;font-size:.96rem}.qr-scan-card .rfid-history-main{grid-template-rows:auto auto;row-gap:.12rem;display:grid}.qr-scan-card .rfid-history-main .qr-history-identity{align-items:baseline;gap:.42rem;min-width:0;display:flex}.qr-scan-card .rfid-history-main .qr-history-identity strong{font-size:1.08rem;line-height:1.1}.qr-scan-card .rfid-history-main .qr-history-code{color:#334552d1;white-space:nowrap;font-size:.92rem;font-weight:600}.qr-scan-card .rfid-history-main .qr-history-code:before{content:"•";color:#3345529e;margin-right:.34rem}.qr-scan-card .rfid-history-main .qr-history-company{white-space:nowrap;text-overflow:ellipsis;color:#334552c7;min-width:0;max-width:100%;font-size:.98rem;overflow:hidden}.bulk-weekday-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.topbar{gap:.45rem;padding:.7rem .75rem}.topbar-kicker{display:none}.menu-trigger{padding:.34rem .68rem;font-size:.82rem}.mobile-nav-trigger{font-size:.82rem}.stats-grid,.employee-view-stats,.rfid-kiosk-result-meta{grid-template-columns:1fr}.topbar-main,.dashboard-company-head,.company-title-row,.employee-view-meta-row,.employee-attendance-meta,.employee-view-badges,.attendance-day-summary-badge,.dashboard-company-metrics{width:100%}.menu-popover{min-width:min(220px,100vw - 1.5rem);left:auto;right:0}.dashboard-controls{justify-content:flex-end;align-items:center;width:100%;margin-bottom:.45rem;margin-left:auto;display:flex;position:relative;top:auto;right:auto}.dashboard-capsule{padding:.16rem .2rem .16rem .44rem}.dashboard-capsule-btn{font-size:.72rem}.dashboard-capsule-refresh-btn{width:1.75rem;min-width:1.75rem;height:1.75rem}.dashboard-empty-state{margin:.4rem 0;padding:2.2rem 1rem}.dashboard-empty-icon-wrap{border-radius:1rem;width:3.5rem;height:3.5rem;margin-bottom:1rem}.dashboard-empty-title{font-size:1.18rem}.dashboard-empty-desc{margin-bottom:1.25rem;font-size:.86rem}.dashboard-empty-btn{width:100%;max-width:280px}.daily-desktop-table-wrap{display:none}.daily-mobile-cards-wrap{flex-direction:column;gap:.65rem;width:100%;margin-top:.25rem;display:flex}.daily-employee-card{border:1px solid var(--line,#14222c1f);cursor:pointer;background:#fff;border-radius:.85rem;flex-direction:column;gap:.6rem;padding:.75rem .85rem;transition:all .18s;display:flex;box-shadow:0 1px 3px #0000000a}.daily-employee-card:active{background:#f8fafc;border-color:#0066ff4d;transform:scale(.99)}.daily-card-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.daily-card-emp-info{align-items:center;gap:.55rem;min-width:0;display:flex}.daily-card-sl{color:var(--ink-500);background:#f1f5f9;border-radius:.4rem;flex-shrink:0;padding:.15rem .4rem;font-size:.75rem;font-weight:700}.daily-card-name-group{gap:.08rem;min-width:0;display:grid}.daily-card-name{color:var(--ink-900);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.92rem;font-weight:700;line-height:1.25;overflow:hidden}.daily-card-code{color:var(--ink-500);font-size:.74rem;line-height:1.2;display:block}.daily-card-body{background:#f8fafc;border:1px solid #14222c0d;border-radius:.6rem;grid-template-columns:repeat(3,1fr);gap:.45rem;padding:.45rem .55rem;display:grid}.daily-card-metric-pill{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;display:flex}.daily-metric-label{color:var(--ink-500);text-transform:uppercase;letter-spacing:.02em;font-size:.68rem;font-weight:600}.daily-metric-val{color:var(--ink-900);font-size:.8rem;font-weight:700}th,td{padding:.52rem .48rem;font-size:.82rem}.employee-inline-cell strong{font-size:.84rem}.attendance-mark.is-duration-present{width:2.2rem;height:1.7rem}}.attendance-cell-context-menu{border:1px solid var(--line,#14345626);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);-webkit-user-select:none;user-select:none;background:#fff;border-radius:.75rem;flex-direction:column;gap:.15rem;min-width:220px;padding:.35rem;animation:.12s ease-out contextMenuPop;display:flex;position:fixed;box-shadow:0 12px 32px #0f1a2229,0 4px 12px #0f1a2214}@keyframes contextMenuPop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.attendance-cell-context-menu .context-menu-header{border-bottom:1px solid var(--line,#1434561a);flex-direction:column;gap:.1rem;margin-bottom:.2rem;padding:.35rem .6rem .45rem;display:flex}.attendance-cell-context-menu .context-menu-title{color:#123456;white-space:nowrap;text-overflow:ellipsis;font-size:.84rem;font-weight:700;overflow:hidden}.attendance-cell-context-menu .context-menu-date{color:#637d96;font-size:.72rem;font-weight:500}.attendance-cell-context-menu .context-menu-item{color:#1f3d60;text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:.5rem;align-items:center;gap:.6rem;width:100%;padding:.46rem .6rem;font-size:.82rem;font-weight:500;transition:background .14s,color .14s;display:flex}.attendance-cell-context-menu .context-menu-item:hover:not(:disabled){color:#0c6963;background:#198f8a1f}.attendance-cell-context-menu .context-menu-item:disabled{opacity:.45;cursor:not-allowed}.attendance-cell-context-menu .context-menu-icon{flex-shrink:0;justify-content:center;align-items:center;width:1.2rem;height:1.2rem;display:inline-flex}.attendance-cell-context-menu .context-menu-icon.is-in{color:#1b8a5a}.attendance-cell-context-menu .context-menu-icon.is-out{color:#d97706}.attendance-cell-context-menu .context-menu-icon.is-danger,.attendance-cell-context-menu .context-menu-item.is-danger{color:#dc2626}.attendance-cell-context-menu .context-menu-item.is-danger:hover:not(:disabled){color:#b91c1c;background:#dc26261a}.attendance-cell-context-menu .context-menu-divider{background:var(--line,#1434561a);height:1px;margin:.25rem .2rem}.attendance-time-picker-modal{max-width:380px}.delete-company-modal-card{border-radius:1.1rem;max-width:480px;box-shadow:0 20px 48px #0f1a2238,0 4px 14px #0f1a2214}.modal-head-title-wrap{align-items:center;gap:.65rem;display:flex}.modal-danger-icon-badge{color:#dc2626;background:#dc26261f;border-radius:.65rem;flex-shrink:0;justify-content:center;align-items:center;width:2.1rem;height:2.1rem;display:inline-flex}.modal-close-btn{width:2.1rem;min-width:2.1rem;height:2.1rem;color:var(--ink-700);border:1px solid var(--line,#14222c26);background:#14222c0d;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s;display:inline-flex}.modal-close-btn:hover{color:var(--ink-900);background:#14222c1f}.danger-callout-banner{background:#dc262612;border:1px solid #dc262638;border-radius:.85rem;align-items:flex-start;gap:.75rem;margin-bottom:.2rem;padding:.85rem 1rem;display:flex}.danger-callout-icon{color:#dc2626;flex-shrink:0;margin-top:.15rem;display:inline-flex}.danger-callout-text{flex-direction:column;gap:.25rem;font-size:.86rem;line-height:1.45;display:flex}.danger-callout-text strong{color:#b91c1c;font-size:.9rem;font-weight:700}.danger-callout-text p{color:#4b5563;margin:0}.danger-callout-text p strong{color:#111827}.confirm-delete-label{flex-direction:column;gap:.45rem;display:flex}.confirm-delete-instruction{color:var(--ink-900);font-size:.88rem;font-weight:500;display:block}.confirm-delete-keyword{color:#dc2626;background:#dc26261a;border:1px solid #dc26262e;border-radius:.35rem;padding:.12rem .4rem;font-family:monospace;font-size:.95em;font-weight:700}.confirm-delete-input{border:1.5px solid var(--line,#14222c2e);border-radius:.75rem;padding:.65rem .85rem;font-size:.92rem;transition:border-color .15s,box-shadow .15s}.confirm-delete-input:focus{border-color:#dc2626;outline:none;box-shadow:0 0 0 3px #dc262629}.confirm-delete-input.is-matched{background:#dc262605;border-color:#dc2626}.danger-btn{color:#fff;background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);border:1px solid #dc2626;border-radius:999px;padding:.58rem 1.25rem;font-weight:600;transition:transform .15s,box-shadow .15s,background .15s,opacity .15s;box-shadow:0 4px 14px #dc262647}.danger-btn:hover:not(:disabled){background:linear-gradient(135deg,#dc2626 0%,#b91c1c 100%);transform:translateY(-1.5px);box-shadow:0 6px 18px #dc262661}.danger-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.delete-modal-cta{gap:.65rem;margin-top:.4rem}.rfid-company-modal{max-width:440px}
