@import"https://fonts.googleapis.com/css2?family=Fraunces:wght@500;700&family=Space+Grotesk:wght@400;500;600&display=swap";:root{--bg: #f3efe7;--ink: #1f1b16;--accent: #124a63;--accent-2: #d07c2f;--card: #fefbf6;--surface: #ffffff;--line: #e5dccd;--shadow: 0 18px 30px rgba(21, 17, 11, .08)}*{box-sizing:border-box}body{margin:0;font-family:Space Grotesk,sans-serif;overflow-x:hidden;overflow-y:auto;background:radial-gradient(circle at top right,rgba(208,124,47,.15),transparent 45%),radial-gradient(circle at 15% 20%,rgba(18,74,99,.25),transparent 45%),linear-gradient(120deg,#f7f4ef,#f0eae3 55%,#f6f1ea);color:var(--ink);min-height:100vh}h1,h2,h3{font-family:Fraunces,serif;margin:0 0 12px;letter-spacing:.3px}.shell{max-width:1680px;margin:0 auto;padding:54px 40px 110px}.layout-shell{width:100%;max-width:100vw;margin:0;padding:28px 24px 70px;display:grid;grid-template-columns:240px 1fr;gap:22px;align-items:start;min-height:100vh;box-sizing:border-box}.sidebar-rail{background:#f7f1e7;border:1px solid rgba(18,74,99,.08);border-radius:18px;padding:16px 14px;box-shadow:0 14px 28px #121a201f;display:flex;flex-direction:column;gap:12px;position:sticky;top:20px;height:fit-content;min-height:calc(100vh - 60px);overflow:auto;transition:transform .18s ease,opacity .18s ease,box-shadow .18s ease}.sidebar-logo{width:100%;border-radius:14px;background:#fff;padding:12px;border:1px solid rgba(0,0,0,.04);display:flex;align-items:center;justify-content:center}.sidebar-logo img{width:100%;height:auto;object-fit:contain}.layout-content{display:flex;flex-direction:column;gap:16px;min-width:0;height:100%;overflow:visible;padding-right:6px;padding-top:18px;scroll-behavior:smooth}.mobile-nav-toggle{position:fixed;top:18px;left:18px;z-index:40;width:48px;height:48px;border-radius:12px;border:1px solid rgba(18,74,99,.12);background:#ffffffe6;box-shadow:0 10px 24px #1113151f;display:none;align-items:center;justify-content:center;flex-direction:column;gap:5px;padding:8px 6px;cursor:pointer}.mobile-nav-toggle__bar{display:block;width:70%;height:3px;border-radius:999px;background:var(--ink)}.mobile-nav-toggle__label{position:absolute;opacity:0;font-size:0}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000057;z-index:20}.topbar{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:18px 26px;background:#ffffffd9;border:1px solid rgba(255,255,255,.6);border-radius:20px;box-shadow:0 20px 45px #1113151f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:flex;gap:14px;align-items:center}.brand-mark{display:inline-flex;width:44px;height:44px;border-radius:12px;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-weight:700}.brand-title{font-weight:700;font-size:1.1rem}.brand-sub{font-size:.9rem;color:#6a5e50}.hero{margin:0 0 16px;padding:28px 32px;background:linear-gradient(145deg,#fffdfc,#f4efe9);border:1px solid rgba(18,74,99,.12);border-radius:26px;box-shadow:0 18px 40px #1923341f;position:relative}.hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at top right,rgba(208,124,47,.15),transparent 45%),radial-gradient(circle at 20% 20%,rgba(18,74,99,.12),transparent 45%);opacity:.8;pointer-events:none}.hero--tight{position:sticky;top:0;z-index:5;min-height:116px;padding:14px 32px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(145deg,#fffdfcf2,#f4efe9f2);box-shadow:0 10px 22px #141c281f}.hero-sticky{position:sticky;top:0;z-index:5;padding:18px 32px;min-height:84px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(145deg,#fffdfcf5,#f4efe9f5);box-shadow:0 8px 18px #141c281f}.layout-content>.hero--tight+*{margin-top:4px}.hero-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.hero .pill-highlight{background:#124a631a;color:#124a63;font-weight:600;border:none;padding:6px 16px}.row.align-center{align-items:center;justify-content:center;gap:12px}.action-card--full{margin-top:20px}.role-nav{display:flex;gap:14px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin:18px 0 0;padding:14px 20px;border-radius:22px;background:linear-gradient(135deg,#ffffffd9,#fff9);border:1px solid rgba(255,255,255,.6);box-shadow:0 20px 40px #14182026}.role-nav--stacked{position:sticky;top:190px;flex-direction:column;align-items:stretch;gap:12px;padding:16px;margin:0}.role-nav--sidebar{position:static;gap:10px;padding:0;background:transparent;border:none;box-shadow:none}.role-nav-links{display:flex;gap:10px;flex-wrap:wrap}.role-nav-links--stacked{flex-direction:column;width:100%;gap:8px}.role-nav-links--sidebar{gap:10px}.role-nav-link{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;border-radius:999px;border:1px solid transparent;text-decoration:none;color:var(--accent);background:#124a6314;font-weight:600;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.role-nav-link-icon{margin-right:8px;font-size:1.1rem;display:inline-flex;align-items:center;justify-content:center}.role-nav-link-label{display:inline-flex;align-items:center}.role-nav--stacked .role-nav-link{width:100%;justify-content:flex-start;border-radius:12px}.role-nav--sidebar .role-nav-link{width:100%;justify-content:flex-start;border-radius:12px;padding:10px 12px;background:#fff;border:1px solid rgba(18,74,99,.12);box-shadow:inset 0 1px #ffffffb3,0 8px 16px #12162114}.role-nav-link:hover{filter:brightness(1.03);box-shadow:0 8px 14px #124a6329}.role-nav-link:active{transform:translateY(1px) scale(.99);box-shadow:none}.role-nav-link.active{background:var(--accent);color:#fff;border-color:#124a6366}.role-nav--stacked .role-nav-link.active{box-shadow:none}.role-nav--sidebar .role-nav-link.active{background:#124a63;color:#fff;border-color:#0f4055;box-shadow:0 10px 22px #124a6333}.org-chip{padding:6px 12px;border-radius:999px;background:#d07c2f29;color:#7a3f10;font-weight:600;font-size:.9rem}.role-nav--stacked .org-chip{align-self:stretch;text-align:center}.role-nav--sidebar .org-chip{width:100%;text-align:left;background:#fff;border:1px dashed rgba(18,74,99,.25);color:#124a63}.token-box{margin-top:10px;padding:10px 12px;border-radius:12px;border:1px dashed var(--line);background:#fffdf7}.token-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.8px;color:#7c6f61;margin-bottom:6px}.token-value{font-family:Space Grotesk,sans-serif;font-size:.92rem;word-break:break-all;color:#2f2a24}.shift-cell{display:grid;gap:6px;align-items:center}.shift-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.shift-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:#124a631a;color:#1f1b16;font-size:.9rem}.shift-chip--empty{background:#fffc;border:1px solid rgba(18,74,99,.2);color:#124a63;font-weight:600}.shift-remove{border:none;background:transparent;color:#6b645c;cursor:pointer;font-weight:700;padding:0;line-height:1}.shift-assign-row select{width:100%}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;display:flex;align-items:center;justify-content:center;padding:16px;z-index:30}.modal-card{background:#fffef9;border-radius:14px;padding:16px;width:min(800px,95vw);box-shadow:var(--shadow);display:grid;gap:10px}.modal-header{display:flex;align-items:center;justify-content:space-between}.modal-title{font-weight:700}.photo-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0fb3;display:flex;align-items:center;justify-content:center;padding:20px;z-index:40}.photo-modal-card{width:min(920px,100%);max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:10px}.photo-modal-card img{width:100%;height:auto;border-radius:14px;object-fit:contain;max-height:80vh;box-shadow:var(--shadow)}.photo-modal-label{margin:0;padding:6px 12px;border-radius:12px;background:#00000073;color:#fff;font-size:.95rem;font-weight:600}.map-canvas{width:100%;height:440px;border-radius:10px;border:1px solid var(--line);overflow:hidden}.icon-actions{gap:8px;align-items:center;justify-content:center}.icon-btn{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;padding:0}.calendar-grid{display:flex;flex-direction:column;gap:10px}.calendar-summary-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin-top:16px}.calendar-summary-grid div{font-size:.95rem;color:var(--ink)}.calendar-summary-grid strong{font-weight:600;margin-left:4px}.calendar-footer-stats{justify-content:space-between;flex-wrap:wrap;gap:18px;margin-top:16px}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-weekday{text-transform:uppercase;font-size:.75rem;letter-spacing:.5px;color:var(--accent);text-align:center}.calendar-cell{min-height:80px;border-radius:12px;background:#f5f2ef;border:1px solid rgba(18,74,99,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--accent);font-weight:600}.calendar-cell.calendar-holiday{background:radial-gradient(circle at 25% 20%,#1e90ff2e,#1e90ff0f);border-color:#1e90ff80;color:#0f4a85}.calendar-cell.calendar-holiday .calendar-day,.calendar-cell.calendar-holiday .calendar-status,.calendar-cell.calendar-holiday .calendar-note{color:#0f4a85}.calendar-cell.calendar-holiday .calendar-status{background:#1e90ff38;color:#0f4a85;border:1px solid rgba(30,144,255,.55)}.calendar-cell.calendar-full{background:linear-gradient(135deg,#7cb88f33,#40926f1f);border-color:#40926f73}.calendar-cell.calendar-full .calendar-day,.calendar-cell.calendar-full .calendar-status,.calendar-cell.calendar-full .calendar-note{color:#0b4d33}.calendar-cell.calendar-full .calendar-status{background:#7cb88f54;border:1px solid rgba(124,184,143,.6)}.calendar-cell.calendar-leave-cl{background:linear-gradient(135deg,#5096be40,#2c648c38);border-color:#2c648ccc;color:#0b4258}.calendar-cell.calendar-leave-cl .calendar-day,.calendar-cell.calendar-leave-cl .calendar-status,.calendar-cell.calendar-leave-cl .calendar-note{color:#0b4258}.calendar-cell.calendar-leave-cl .calendar-status{background:#5096be73;border:1px solid rgba(80,150,190,.85)}.calendar-cell.calendar-leave-half-first{background:linear-gradient(90deg,#5096be66 52%,#5096be14 52%);border-color:#2c648ccc;color:#0b4258}.calendar-cell.calendar-leave-half-second{background:linear-gradient(90deg,#5096be14 48%,#5096be66 48%);border-color:#2c648ccc;color:#0b4258}.calendar-cell.calendar-leave-half-first .calendar-day,.calendar-cell.calendar-leave-half-first .calendar-status,.calendar-cell.calendar-leave-half-first .calendar-note,.calendar-cell.calendar-leave-half-second .calendar-day,.calendar-cell.calendar-leave-half-second .calendar-status,.calendar-cell.calendar-leave-half-second .calendar-note{color:#0b4258}.calendar-cell.calendar-leave-half-first .calendar-status,.calendar-cell.calendar-leave-half-second .calendar-status{background:#5096be8c;border:1px solid rgba(80,150,190,.9)}.calendar-cell.calendar-absent{background:linear-gradient(135deg,#cd47471f,#cd47470f);border-color:#a62d2d73;color:#a62d2d}.calendar-cell.calendar-absent .calendar-status{background:#cd474747;border:1px solid rgba(166,45,45,.6);color:#a62d2d}.calendar-cell.calendar-short,.calendar-cell.calendar-short-early,.calendar-cell.calendar-short-late{background:linear-gradient(135deg,#ffb85e2e,#ffb85e14);border-color:#d6882f8c;color:#7b470f}.calendar-cell.calendar-short .calendar-status,.calendar-cell.calendar-short-early .calendar-status,.calendar-cell.calendar-short-late .calendar-status{background:#ffb85e4d;border:1px solid rgba(214,136,47,.65)}.calendar-cell.calendar-half,.calendar-cell.calendar-half-first,.calendar-cell.calendar-half-second{background:linear-gradient(135deg,#7b68ee2e,#7b68ee14);border-color:#5c4cc880;color:#4f3ab2}.calendar-cell.calendar-half .calendar-status,.calendar-cell.calendar-half-first .calendar-status,.calendar-cell.calendar-half-second .calendar-status{background:#7b68ee47;border:1px solid rgba(92,76,200,.6);color:#4f3ab2}.calendar-cell.calendar-lwp{background:#cd47471f;border-color:#cd4747b3;color:#a62d2d}.calendar-cell.calendar-lwp .calendar-day,.calendar-cell.calendar-lwp .calendar-status,.calendar-cell.calendar-lwp .calendar-note{color:#a62d2d}.calendar-cell.calendar-lwp .calendar-status{background:#cd474759;border:1px solid rgba(205,71,71,.8)}.calendar-note{font-size:.75rem;font-weight:600;text-align:center;padding:2px 6px;border-radius:999px;background:#7cb88f26;border:1px solid rgba(124,184,143,.4)}.table-holidays .table-row{grid-template-columns:140px 1.6fr 140px 160px;align-items:center}.table-holidays .table-row>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-holidays .table-row>div:last-child{justify-self:end}.calendar-empty{border:none;background:transparent;box-shadow:none}.calendar-status{font-size:.85rem;padding:4px 8px;border-radius:999px;background:#124a631a}.calendar-cell.calendar-short .calendar-status{background:#d07c2f26;color:#8a4b15}.calendar-cell.calendar-short-early .calendar-status{background:#d07c2f59;color:#7f3e0f}.calendar-cell.calendar-short-late .calendar-status{background:#d07c2f40;color:#8a4b15}.calendar-cell.calendar-absent .calendar-status{background:#a62d2d1f;color:#a62d2d}.calendar-cell.calendar-full .calendar-status{background:#14765826;color:#0f5f45}.calendar-cell.calendar-half-first .calendar-status{background:#124a6326;color:var(--accent)}.calendar-cell.calendar-half-second .calendar-status{background:#124a6340;color:#124a63}.calendar-cell.calendar-leave .calendar-status{background:#4454f426;color:#4454f4}.calendar-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#fffc;border:1px solid rgba(18,74,99,.2);font-size:.9rem;font-weight:600}.status-pill-holiday{border-color:#d07c2f66}.status-pill .legend-code{font-weight:600}.status-pill .muted{font-weight:500;letter-spacing:.4px;text-transform:none}.status-pill.status-pill-short,.status-pill.status-pill-short-early,.status-pill.status-pill-short-late{background:#d07c2f1f;border-color:#d07c2f59}.status-pill.status-pill-absent{background:#a62d2d1f;border-color:#a62d2d59}.status-pill.status-pill-full{background:#1476581f;border-color:#14765859}.status-pill.status-pill-half{background:#124a631f;border-color:#124a6359}.status-pill.status-pill-leave{background:#4454f41f;border-color:#4454f459}.status-pill.status-pill-pending{background:#f4b54d26;border-color:#f4b54d66;color:#b06a04}.status-pill.status-pill-approved{background:#1476581f;border-color:#14765859;color:#0f5f45}.status-pill.status-pill-rejected{background:#a62d2d1f;border-color:#a62d2d59;color:#a62d2d}.status-pill.status-pill-cancelled{background:#5866731f;border-color:#58667359;color:#3f4953}.dash-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:18px}.dash-grid.split{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.dash-grid.split.users-split{grid-template-columns:1fr 3fr}.locations-grid{margin:0 0 20px;align-items:stretch;grid-auto-rows:minmax(220px,auto)}.locations-grid .action-card{margin:0}.location-list-card{margin-top:8px}.stat-card,.action-card,.card{background:#fffefc;border-radius:20px;padding:20px;border:1px solid rgba(18,74,99,.08);box-shadow:0 20px 35px #1423371a}.stat-value{font-size:2.2rem;font-weight:600;margin:8px 0}.pill{display:inline-flex;padding:4px 10px;border-radius:999px;font-size:.85rem;background:#124a6314;color:var(--accent);align-items:center;justify-content:center;text-align:center}.pill-cell{display:flex;align-items:center;justify-content:center}.pill-amber{background:#d07c2f29;color:#8a4b15}.pill-emerald{background:#14765829;color:#0f5f45}.pill-ink{background:#1f1b1614;color:#3b3228}.action-list{display:grid;gap:10px}.list{margin:0;padding-left:16px;color:#5d5246}.summary{display:grid;gap:18px}.summary-status{display:flex;flex-direction:column;gap:4px}.summary-status-text{font-size:1.2rem}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.summary-grid--tight{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 18px}.summary-card{margin:6px 0 18px;padding:18px 22px;border-radius:18px;background:linear-gradient(120deg,#e6edf0,#f5efe8 55%,#f1e4d8);border:1px solid rgba(18,74,99,.12);box-shadow:0 14px 28px #1118241f}.summary-card .summary-pair{padding:4px 2px}.summary-card .summary-status-text{font-size:1.3rem;font-weight:700}.summary-pair{display:flex;flex-direction:column;gap:4px}@media (max-width: 1100px){.layout-shell{grid-template-columns:1fr;padding:72px 16px 64px;gap:16px}.sidebar-rail{position:fixed;top:16px;left:16px;width:min(320px,88vw);max-height:calc(100vh - 32px);min-height:auto;transform:translate(-110%);z-index:30}.layout-shell.sidebar-open .sidebar-rail{transform:translate(0);box-shadow:0 18px 32px #10141840}.mobile-nav-toggle{display:inline-flex}.layout-content{padding-top:6px}}.summary-photos{margin-top:8px}.admin-glance{display:grid;gap:16px}.admin-glance-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px}.admin-status-list{display:grid;gap:10px}.admin-status-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-status-name{font-weight:600}.status-pill.status-in{background:#14765826;border-color:#14765859;color:#0f5f45}.status-pill.status-out{background:#124a6326;border-color:#124a6359;color:var(--accent)}.status-pill.status-absent{background:#a62d2d1f;border-color:#a62d2d59;color:#a62d2d}.label{text-transform:uppercase;font-size:.72rem;letter-spacing:1px;color:#7c6f61}.value{font-size:1.05rem;font-weight:600}.page{max-width:560px;margin:60px auto;padding:24px}.card{display:grid;gap:12px}.row{display:flex;gap:10px;flex-wrap:wrap}input,select{padding:10px;border:1px solid var(--line);border-radius:10px;font-family:inherit;background:#fffaf3}button,.link-button{padding:10px 14px;background:var(--accent);color:#fff;border:none;border-radius:10px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;font-weight:600;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}button.ghost,.ghost{background:transparent;color:var(--accent);border:1px solid var(--line)}button.primary,.primary{background:var(--accent);color:#fff}button:hover,.link-button:hover{filter:brightness(1.03);box-shadow:0 8px 14px #124a6329}button:active,.link-button:active{transform:translateY(1px) scale(.99);box-shadow:none}button:focus-visible,.link-button:focus-visible{outline:2px solid rgba(18,74,99,.4);outline-offset:2px}.links{margin-top:12px;display:flex;gap:16px}.camera{background:#f2ece4;border-radius:10px;padding:10px}.video{width:100%;border-radius:8px}.preview{width:100%;border-radius:8px;border:1px solid var(--line)}.hidden{display:none}.muted{color:#6b645c;font-size:.9rem}.table{display:grid;gap:12px;width:100%;grid-auto-rows:minmax(64px,auto)}.table-scroll{max-height:500px;overflow-y:auto;padding-right:4px}.table-row{display:grid;grid-template-columns:60px minmax(160px,1fr) minmax(220px,1.4fr) minmax(220px,1.6fr) 110px 100px 110px;gap:12px;padding:14px 16px;border-radius:14px;background:#ffffffe6;border:1px solid rgba(18,74,99,.08);width:100%;min-height:70px;align-items:center}.requests-table{display:grid;gap:10px;margin-top:8px;width:100%}.requests-table .table-row{grid-template-columns:minmax(180px,1.2fr) minmax(150px,1fr) minmax(200px,1.4fr) minmax(160px,1fr) minmax(220px,1.6fr) minmax(190px,1fr);min-height:90px;padding:16px 18px;border-radius:18px;background:#fff;border:1px solid rgba(18,74,99,.12);box-shadow:0 14px 30px #111c2c14;align-items:center}.requests-table .table-row>div{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.requests-table .table-row.table-head{background:#f4f6fb;border-color:#124a6333;font-size:.78rem;letter-spacing:.4px}.requests-table .table-row.table-head>div{text-transform:uppercase;color:#4a4d58}.request-half-note{font-size:.85rem;color:#5b5b5f}.request-reason{font-size:.95rem;color:#2f2a24;line-height:1.4;white-space:pre-line}.requests-status-cell{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.request-actions{display:flex;gap:6px;flex-wrap:wrap}.request-action-approve,.request-action-reject,.request-action-cancel{padding:6px 12px;border-radius:10px;border:1px solid var(--line);font-size:.85rem;font-weight:600}.request-action-approve{border-color:#14765859;color:#0f5f45}.request-action-reject{border-color:#a62d2d59;color:#a62d2d}.request-action-cancel{border-color:#58667359;color:#3f4953}.table-row.table-head{background:#f2f5f7;border-color:#124a631f;font-weight:700;color:#1f1b16}.table-row.table-head>div{text-transform:uppercase;font-size:.82rem;letter-spacing:.4px}.table-invites .table-row{grid-template-columns:minmax(240px,1.8fr) minmax(220px,1.2fr) repeat(5,minmax(90px,1fr)) minmax(90px,.8fr);align-items:flex-start}.table-invites .table-row>div{min-height:0;white-space:normal}.table-invites .table-row .token-value{white-space:pre-line;line-height:1.4;letter-spacing:.2px}.table-admin-invites .table-row{grid-template-columns:minmax(220px,1.6fr) minmax(200px,1.2fr) minmax(220px,1.4fr) 90px 120px 120px 110px;align-items:center}.table-admin-invites .table-row>div{overflow:hidden;text-overflow:ellipsis}.table-admin-invites .table-row>div:first-child{white-space:normal}.table-admin-invites .table-row .token-value{white-space:normal;word-break:break-all}.table-admin-invites .table-row>div:last-child{justify-self:end}.table-admin-accounts .table-row{grid-template-columns:minmax(220px,1.6fr) minmax(160px,1fr) minmax(220px,1.4fr) 110px 130px 110px;align-items:center}.table-admin-accounts .table-row>div{overflow:hidden;text-overflow:ellipsis}.table-admin-accounts .table-row>div:first-child{white-space:normal}.table-admin-accounts .table-row>div:last-child{justify-self:end}.reports-toolbar{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:12px}.reports-search{display:flex;align-items:center;gap:8px}.reports-search input{min-width:220px;padding:6px 10px;border-radius:10px;border:1px solid rgba(18,74,99,.2);background:#fffc}.attendance-row{transition:background .3s ease,transform .2s ease}.attendance-row.attendance-full{background:#14765814}.attendance-row.attendance-half{background:#124a631f}.attendance-row.attendance-short{background:#d07c2f1f}.attendance-row.attendance-absent{background:#a62d2d1f}.attendance-row.attendance-leave{background:#4454f426}.attendance-row.attendance-late{box-shadow:inset 0 0 0 2px #d07c2f59}.attendance-row.attendance-early{box-shadow:inset 0 0 0 2px #4454f459}.table-row.table-head>div{cursor:pointer}.attendance-table .table-row{display:grid;grid-template-columns:.35fr 1fr 1fr 1.2fr .6fr 1fr 1.2fr .6fr .5fr;align-items:center;gap:8px}.attendance-table .table-head{font-weight:600;background:#eef3f3}.attendance-table .location-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-size:13px}.attendance-table .photo-thumb{width:64px;height:64px;object-fit:cover;border-radius:6px;cursor:pointer}.attendance-table .actions-cell{display:flex;justify-content:center;gap:8px}.icon-button{width:42px;height:42px;border:none;border-radius:12px;background:#e7f0f4;display:grid;place-items:center;box-shadow:0 6px 14px #00000014;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.icon-button:hover{transform:translateY(-1px);box-shadow:0 10px 20px #0000001f}.icon-button:active{transform:translateY(0);box-shadow:0 4px 10px #0000001f}.attendance-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 12px 30px #00000014;max-width:1600px;margin:0 auto}.attendance-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:start}.attendance-layout .controls{display:grid;gap:12px}.attendance-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}.camera-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;width:100%;margin-bottom:20px}.camera-box{position:relative;width:100%;aspect-ratio:4 / 3;background:#f3f3f3;border-radius:14px;overflow:hidden}.camera-box video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-box img{width:100%;height:100%;object-fit:cover}.camera-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#777;font-size:14px;background:#ffffffd9}.preview-box{background:#eaeaea}@media (max-width: 768px){.camera-row{grid-template-columns:1fr}.camera-box{max-height:60vh;height:60vh}.camera-row .preview-box{display:none}}.location-card{display:flex;gap:12px;margin-top:14px;padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,#f8fafc,#fff);border:1px solid #e5e7eb;box-shadow:0 6px 16px #0000000d}.location-icon{font-size:20px}.location-address{font-size:14px;font-weight:600;color:#111827}.location-coords{font-size:11px;color:#6b7280;margin-top:3px}.attendance-actions{display:flex;flex-direction:column;gap:12px}.photo-preview{width:100%;max-height:160px;object-fit:cover;border-radius:10px;border:1px solid #ddd}.action-row{padding-top:10px;display:flex;gap:12px}button.primary{background:#0f4c5c;color:#fff}button.success{background:#2e7d32;color:#fff}button.danger{background:#c62828;color:#fff}button.ghost{background:#f5f5f5}.info-text{font-size:13px;color:#444}.status-text{font-size:14px;color:#0f4c5c}@media (max-width: 768px){.attendance-grid{grid-template-columns:1fr}}@media (max-width: 900px){.attendance-layout{grid-template-columns:1fr}.attendance-card{padding:16px}.camera-box{aspect-ratio:3 / 4}}.preview-box img{border:3px solid #22c55e}.table-users .table-row{grid-template-columns:74px minmax(220px,1.5fr) 120px 120px minmax(170px,1fr) minmax(220px,1.5fr) minmax(230px,1.5fr) 100px 100px 100px 110px;align-items:flex-start;padding:14px 16px;box-shadow:0 10px 20px #1022380f}.table-users .table-row>div{overflow:hidden;text-overflow:ellipsis;align-self:center}.table-users .table-row>div:nth-child(3){word-break:break-word}.table-users .table-row.table-head{grid-template-columns:74px minmax(220px,1.5fr) 120px 120px minmax(170px,1fr) minmax(220px,1.5fr) minmax(230px,1.5fr) 100px 100px 100px 110px;align-items:center;font-size:.83rem;letter-spacing:.4px}.table-users .table-row .shift-cell{display:flex;flex-direction:column;gap:10px;overflow:visible}.table-users .table-row .shift-chips{gap:8px}.table-users .table-row:not(.table-head){background:#fff;border:1px solid rgba(18,74,99,.08)}.table-users .table-row:not(.table-head):hover{border-color:#124a6333;box-shadow:0 16px 30px #11263c1f;transform:translateY(-1px)}.table.table-users{width:100%;overflow-x:auto;overflow-y:visible;padding-bottom:6px}.table.table-users .table-row{min-width:1480px}.user-id-cell{color:#476174;font-weight:700}.user-identity-cell{display:grid;gap:2px}.user-name{font-weight:700;color:#132f44}.user-email{font-size:.82rem;color:#6a7d8e;word-break:break-word}.users-table-select{min-width:160px}.users-table-toggle{margin-bottom:4px}.remote-text{font-size:.75rem;color:#5f7082;text-transform:uppercase;letter-spacing:.5px}.users-table-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.3px;border:1px solid transparent}.users-table-badge--role{background:#124a631f;border-color:#124a6338;color:#124a63}.users-table-badge--admin{background:#d07c2f29;border-color:#d07c2f40;color:#8b4f18}.users-table-badge--manager{background:#5096be29;border-color:#5096be4d;color:#0d5b80}.users-table-badge--user,.users-table-badge--status.users-table-badge--active{background:#14765821;border-color:#14765840;color:#0f5f45}.users-table-badge--status.users-table-badge--inactive,.users-table-badge--status.users-table-badge--disabled{background:#a62d2d24;border-color:#a62d2d3d;color:#922a2a}@media (max-width: 1280px){.table.table-users .table-row{min-width:1320px}.table-users .table-row{padding:12px 14px}}@media (max-width: 1024px){.table.table-users .table-row{min-width:0}.table-users .table-row.table-head{display:none}.table-users .table-row.table-row--user{display:grid;grid-template-columns:1fr;gap:10px;padding:14px}.table-users .table-row.table-row--user>div{overflow:visible;text-overflow:unset;white-space:normal}.table-users .table-row.table-row--user>div:before{content:"";display:block;font-size:.7rem;letter-spacing:.5px;text-transform:uppercase;color:#6a7d8e;margin-bottom:3px}.table-users .table-row.table-row--user>div:nth-child(1):before{content:"ID"}.table-users .table-row.table-row--user>div:nth-child(2):before{content:"Employee"}.table-users .table-row.table-row--user>div:nth-child(3):before{content:"Join"}.table-users .table-row.table-row--user>div:nth-child(4):before{content:"Relieving"}.table-users .table-row.table-row--user>div:nth-child(5):before{content:"Leave Policy"}.table-users .table-row.table-row--user>div:nth-child(6):before{content:"Managers"}.table-users .table-row.table-row--user>div:nth-child(7):before{content:"Shifts"}.table-users .table-row.table-row--user>div:nth-child(8):before{content:"Remote"}.table-users .table-row.table-row--user>div:nth-child(9):before{content:"Role"}.table-users .table-row.table-row--user>div:nth-child(10):before{content:"Status"}.table-users .table-row.table-row--user>div:nth-child(11):before{content:"Actions"}.table-users .table-row.table-row--user>div:nth-child(11){display:flex;justify-content:flex-start}}.photo-thumb{width:60px;height:60px;object-fit:cover;border-radius:10px;cursor:pointer;box-shadow:var(--shadow)}.table-head{font-weight:700;background:#124a6314;border-radius:12px 12px 0 0;padding:12px 14px;color:#0f2038e6;align-items:center}.attendance-summary-table .table-row,.attendance-summary-table .table-row.table-head{grid-template-columns:repeat(8,minmax(90px,1fr));gap:10px;padding:10px 12px}.table-summary .table-row{grid-template-columns:60px minmax(160px,2fr) repeat(4,minmax(60px,1fr))}.leave-balance-table .table-row{grid-template-columns:minmax(180px,1.2fr) minmax(200px,1.2fr) minmax(80px,.6fr) minmax(100px,.8fr) minmax(110px,.9fr) minmax(110px,.9fr) minmax(110px,.9fr) minmax(100px,.8fr) minmax(110px,.9fr);align-items:start}.leave-balance-table .table-row.table-head{font-weight:700;background:#124a630f}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px dashed var(--line)}.toggle-row:last-child{border-bottom:none}.photo-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:12px}.check-photo{width:100%;max-width:220px;height:120px;object-fit:cover;border-radius:12px;cursor:pointer}.toggle{position:relative;width:52px;height:28px}.toggle input{opacity:0;width:0;height:0}.toggle span{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:#d7cbbd;border-radius:999px;transition:.2s ease}.toggle span:after{content:"";position:absolute;width:22px;height:22px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s ease}.toggle input:checked+span{background:var(--accent)}.toggle input:checked+span:after{transform:translate(24px)}.fade-in{animation:rise .6s ease-out both}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast{position:fixed;right:24px;top:24px;z-index:20;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#fffdf8;box-shadow:var(--shadow);min-width:240px}.toast-message{font-size:.95rem;color:#2f2a24}.toast-close{background:transparent;border:none;font-size:1.1rem;line-height:1;color:#6b645c;cursor:pointer}.toast-success{border-color:#14765859;background:#1476581a}.toast-error{border-color:#a62d2d59;background:#a62d2d1a}@media (max-width: 700px){.topbar{flex-direction:column;align-items:flex-start}.table-row{grid-template-columns:1fr}}@media (max-width: 1100px){.requests-table .table-row{grid-template-columns:1fr}.requests-status-cell{flex-direction:column}.request-actions{justify-content:flex-start}}.table-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center}.icon-btn{width:32px;height:32px;border-radius:10px;background:#fff;border:1px solid rgba(18,74,99,.18);display:inline-flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.icon-btn.icon-btn--text{min-width:72px;height:36px;border-radius:14px;padding:0 12px;font-size:.75rem;letter-spacing:.4px;justify-content:center}.icon-btn.icon-btn--edit{border-color:transparent;background:#124a631a;color:#124a63}.icon-btn.icon-btn--edit svg{color:inherit}.icon-btn.icon-btn--delete{border-color:transparent;background:#d07c2f26;color:#d07c2f}.icon-btn.icon-btn--delete svg{color:inherit}.icon-btn:hover{box-shadow:0 10px 20px #121e321f}.icon-btn:active{transform:translateY(1px)}.org-detail-overlay{position:fixed;right:32px;bottom:32px;width:min(420px,calc(100% - 64px));max-height:70vh;z-index:20;overflow-y:auto;box-shadow:0 12px 40px #10223840}.panel-grid{display:grid;gap:16px}.panel-grid--split{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.panel-card{background:#fff;border:1px solid rgba(18,74,99,.08);border-radius:18px;padding:18px 18px 20px;box-shadow:0 14px 26px #121e3214}.panel-card--list{display:flex;flex-direction:column;gap:12px}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.form-two-col{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.form-actions{display:flex;gap:10px;align-items:center}.checkbox-row{display:flex;align-items:center}.list-stack{display:grid;gap:12px}.list-card{padding:12px;border:1px solid rgba(18,74,99,.08);border-radius:12px;background:linear-gradient(180deg,#fffefc,#f9f6f0);display:flex;justify-content:space-between;gap:12px;align-items:center}.empty-state{padding:12px;border:1px dashed rgba(18,74,99,.2);border-radius:12px;background:#124a6308}.empty-title{font-weight:700;margin-bottom:4px}.panel-card{background:#fff;border:1px solid rgba(18,74,99,.08);border-radius:18px;padding:18px 22px;box-shadow:0 14px 26px #121e3214;width:100%}.panel-card--full{margin-top:12px}.panel-card--invite{max-width:520px;margin-bottom:10px}.form-grid{display:grid;gap:12px}.salary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin:12px 0 18px}.salary-input{width:100%;min-width:0}.payable-figure{font-size:2rem;font-weight:700;color:var(--ink-strong, #0b2c3f);margin:6px 0}.card.highlight{background:linear-gradient(135deg,#0094851a,#00948505);border:1px solid rgba(0,148,133,.2)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:10px}.stat-card{padding:12px 14px;border-radius:12px;background:var(--panel, #f9fbfb);border:1px solid var(--line, #e5ecef)}.stat-label{font-size:.88rem;color:var(--ink-muted, #5f7082)}.stat-value{font-size:1.2rem;font-weight:700;color:var(--ink, #123)}.stat-hint{font-size:.82rem;color:var(--ink-muted, #6b7b8b)}.detail-table{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:10px}.detail-table div{padding:10px 12px;border:1px solid var(--line, #e6ecef);border-radius:10px;background:#fff;display:flex;justify-content:space-between;align-items:center;font-size:.95rem}.detail-table span{color:var(--ink-muted, #607080)}.detail-table strong{color:var(--ink, #1a2c3b)}.payable-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;align-items:center}.divider-vertical{width:1px;height:64px;background:var(--line, #d9e3e7);justify-self:center}.salary-table{display:grid;gap:8px;margin-top:12px}.salary-table-head,.salary-table-row{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:10px;padding:10px 12px;border:1px solid var(--line, #e6ecef);border-radius:10px;background:#fff;align-items:center;font-size:.95rem}.salary-table-head{background:#f5f8fa;font-weight:700}.salary-table-row.total{font-weight:700;background:linear-gradient(135deg,#00948514,#00948505)}.role-nav-link{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;text-decoration:none;color:#64748b;font-weight:500;transition:all .2s ease}.role-nav-link:hover{background:#f1f5f9;color:#0f172a}.role-nav-link.active{background:#eef2ff;color:#4f46e5;font-weight:600}.role-nav-link-icon{display:flex;align-items:center}.role-nav-links--sidebar{display:flex;flex-direction:column;gap:6px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a59;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-card{position:relative;background:#fff;border-radius:16px;padding:16px 18px;max-width:min(560px,90vw);width:100%;box-shadow:0 20px 40px #0f172a40}.modal-close{position:absolute;top:10px;right:10px;border:none;background:transparent;font-size:18px;cursor:pointer}.attendance-modal{width:min(620px,94vw);max-width:620px;border:1px solid rgba(18,74,99,.2);border-radius:16px;background:linear-gradient(180deg,#fffefc,#faf7f1);box-shadow:0 24px 48px #0e1c2d3d;padding:22px;display:grid;gap:14px}.attendance-modal--wide{max-width:700px}.attendance-modal__header{display:grid;gap:6px;border-bottom:1px solid rgba(18,74,99,.12);padding-bottom:12px}.attendance-modal__title{margin:0;font-size:1.35rem;color:#132a3a}.attendance-modal__subtitle{margin:0;color:#5f7082;font-size:.93rem}.attendance-modal__form{gap:14px}.attendance-modal__input,.attendance-modal__textarea{width:100%;border:1px solid rgba(18,74,99,.22);border-radius:10px;background:#fff;color:#172b3a;padding:10px 12px;font-size:.96rem}.attendance-modal__textarea{min-height:92px;resize:vertical}.attendance-modal__input:focus,.attendance-modal__textarea:focus{outline:none;border-color:#124a63;box-shadow:0 0 0 3px #124a631f}.attendance-modal__actions{justify-content:flex-end;gap:10px;margin-top:4px}.attendance-modal__error{border:1px solid rgba(166,45,45,.32);background:#a62d2d1a;color:#8f2424;border-radius:10px;padding:9px 11px;font-size:.9rem;font-weight:600}.attendance-audit-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.attendance-audit-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:600;border:1px solid transparent}.attendance-audit-badge--manual{background:#d07c2f1f;border-color:#d07c2f59;color:#7f4a16}.attendance-audit-badge--edited{background:#124a631f;border-color:#124a634d;color:#124a63}.attendance-audit-badge--original{background:#1476581a;border-color:#14765847;color:#0f5f45}.attendance-audit-list{max-height:52vh;overflow:auto;display:grid;gap:10px;padding-right:2px}.attendance-audit-item{border:1px solid rgba(18,74,99,.16);border-radius:12px;background:#fff;padding:10px 12px;display:grid;gap:8px}.attendance-audit-item__head{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}.attendance-audit-item__action{font-weight:700;color:#12344a}.attendance-audit-item__meta{font-size:.82rem;color:#5f7082}.attendance-audit-item__times{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:6px 10px;font-size:.88rem;color:#21384a}.attendance-audit-item__note{font-size:.9rem;color:#2b2b2b}@media (max-width: 700px){.attendance-modal{width:min(96vw,96vw);padding:16px;border-radius:14px}.attendance-modal__title{font-size:1.2rem}}
