:root{color:#121826;background:#f5f7fa;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px}button{font:inherit}.page{display:flex;flex-direction:column;gap:24px;margin:0 auto;max-width:1120px;min-height:100svh;padding:28px 20px 40px}.page-center{align-items:center;justify-content:center}.loading-text{color:#687386;font-size:15px;font-weight:800}.top-bar,.brand-row,.header-actions,.status-panel,.action-row,.section-title-row{align-items:center;display:flex}.top-bar{gap:16px;justify-content:space-between}.brand-row{gap:16px;justify-content:space-between;width:100%}.brand-row-compact{justify-content:flex-start;width:auto}.brand-home{background:transparent;border:0;cursor:pointer;display:grid;padding:0;text-align:left}h1,h2,h3,p{margin:0}h1{color:#121826;font-size:32px;font-weight:900}h2{color:#121826;font-size:20px;font-weight:900}h3{color:#121826;font-size:15px;font-weight:900}.brand-row p,.auth-content p,.empty-text{color:#687386;font-size:15px;font-weight:700}.header-actions{flex-wrap:wrap;gap:10px;justify-content:flex-end}.language-toggle{background:#e3e7ef;border-radius:8px;display:grid;gap:4px;grid-template-columns:1fr 1fr;padding:4px}.language-toggle button{background:transparent;border:0;border-radius:6px;color:#687386;cursor:pointer;font-size:14px;font-weight:900;min-height:42px;min-width:90px;padding:0 14px}.language-toggle button[aria-pressed=true]{background:#fff;color:#121826;box-shadow:0 1px 4px #1218261a}.auth-panel{background:#fff;border:1px solid #d9dee7;border-radius:8px;padding:24px}.auth-panel{display:grid;gap:28px;max-width:640px;width:min(100%,640px)}.auth-content{display:grid;gap:16px}.dashboard{display:grid;gap:18px}.view-tabs{background:#e3e7ef;border-radius:8px;display:grid;gap:4px;grid-template-columns:repeat(2,minmax(0,1fr));padding:4px}.view-tabs button{background:transparent;border:0;border-radius:6px;color:#687386;cursor:pointer;font-weight:900;min-height:42px;padding:0 14px}.view-tabs button[aria-selected=true]{background:#fff;color:#121826;box-shadow:0 1px 4px #1218261a}.attendance-panel,.records-panel,.revenue-panel,.team-list-panel,.vacations-panel{background:#fff;border:1px solid #d9dee7;border-radius:8px;display:grid;gap:18px;padding:22px}.revenue-title-row{align-items:flex-start}.revenue-filter{align-items:end;background:#f8fafc;border:1px solid #d9dee7;border-radius:8px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr)) auto;padding:16px}.revenue-filter label{display:grid;gap:7px}.revenue-filter label span{color:#687386;font-size:12px;font-weight:900;text-transform:uppercase}.revenue-filter input{background:#fff;border:1px solid #cbd3df;border-radius:8px;color:#121826;font:inherit;min-height:44px;padding:0 12px;width:100%}.revenue-filter input:focus{border-color:#166a4d;box-shadow:0 0 0 3px #166a4d26;outline:0}.revenue-meta{align-items:center;color:#687386;display:flex;flex-wrap:wrap;font-size:13px;font-weight:800;gap:10px}.revenue-environment{border-radius:999px;font-size:12px;font-weight:900;padding:6px 10px}.revenue-environment-sandbox{background:#fef3c7;color:#92400e}.revenue-environment-live{background:#dcfce7;color:#166a4d}.revenue-notice,.revenue-warning{border-radius:8px;font-size:13px;font-weight:800;line-height:1.5;padding:12px 14px}.revenue-notice{background:#fffbeb;color:#92400e}.revenue-warning{background:#fff7ed;color:#9a3412}.revenue-currency-list,.revenue-currency,.revenue-transactions{display:grid;gap:14px}.revenue-currency{border-top:1px solid #d9dee7;padding-top:18px}.revenue-currency-heading{align-items:center;display:flex;justify-content:space-between}.revenue-currency-heading span{color:#687386;font-size:12px;font-weight:800}.revenue-summary-grid{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.revenue-metric{background:#f8fafc;border:1px solid #d9dee7;border-radius:8px;display:grid;gap:7px;min-width:0;padding:14px}.revenue-metric span{color:#687386;font-size:12px;font-weight:800}.revenue-metric strong{color:#121826;font-size:20px;font-weight:900;overflow-wrap:anywhere}.revenue-metric-emphasis{background:#eef7f3;border-color:#b7d7ca}.revenue-metric-emphasis strong{color:#166a4d}.revenue-transactions{border-top:1px solid #d9dee7;padding-top:18px}.revenue-table-wrap{overflow-x:auto}.revenue-table{border-collapse:collapse;min-width:760px;width:100%}.revenue-table th,.revenue-table td{border-bottom:1px solid #e3e7ef;padding:12px 10px;text-align:right;vertical-align:middle}.revenue-table th{color:#687386;font-size:11px;font-weight:900;text-transform:uppercase}.revenue-table td{color:#394256;font-size:13px;font-weight:750}.revenue-table th:first-child,.revenue-table th:nth-child(2),.revenue-table td:first-child,.revenue-table td:nth-child(2){text-align:left}.revenue-table td:nth-child(2) strong,.revenue-table td:nth-child(2) span{display:block;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.revenue-table td:nth-child(2) strong{color:#121826;font-weight:900}.revenue-table td:nth-child(2) span{color:#8a94a6;font-size:11px;margin-top:3px}.attendance-hero{align-items:flex-start;display:flex;gap:18px;justify-content:space-between}.primary-time{min-width:160px;text-align:right}.primary-time span,.time-summary-item span{color:#687386;display:block;font-size:12px;font-weight:900;margin-bottom:6px;text-transform:uppercase}.primary-time strong{color:#166a4d;display:block;font-size:30px;font-weight:900}.time-summary{border-top:1px solid #d9dee7;display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr));padding-top:18px}.time-summary-item{min-width:0}.time-summary-item strong{color:#121826;display:block;font-size:22px;font-weight:900;overflow-wrap:anywhere}.time-summary-item-accent strong{color:#b45309}.supporting-meta{color:#687386;display:flex;flex-wrap:wrap;font-size:13px;font-weight:800;gap:6px 14px}.section-subtitle{color:#687386;font-size:13px;font-weight:800;margin-top:4px}.icon-button{align-items:center;background:#fff;border:1px solid #d9dee7;border-radius:8px;cursor:pointer;display:inline-flex;flex-direction:column;gap:5px;height:46px;justify-content:center;padding:0;width:46px}.icon-button:hover{border-color:#166a4d}.icon-button-plain{background:#f8fafc;position:relative}.hamburger-line,.close-line{background:#121826;border-radius:999px;display:block;height:2px;width:18px}.close-line{left:13px;position:absolute;top:22px}.close-line-left{transform:rotate(45deg)}.close-line-right{transform:rotate(-45deg)}.team-status-dot{border-radius:999px;display:block;height:10px;width:10px}.team-status-dot-offDuty{background:#8a94a6}.team-status-dot-working{background:#166a4d}.team-status-dot-onBreak{background:#b45309}.team-status-dot-vacation{background:#2358d3}.upcoming-vacations{background:#f8fafc;border:1px solid #d9dee7;border-radius:8px;display:grid;gap:12px;padding:16px}.upcoming-vacations-heading{align-items:center;display:flex;gap:12px;justify-content:space-between}.upcoming-vacations-heading span,.upcoming-vacation-mode{background:#dbeafe;border-radius:999px;color:#2358d3;font-size:12px;font-weight:900;padding:6px 9px;white-space:nowrap}.upcoming-vacations-empty{color:#687386;font-size:13px;font-weight:800}.upcoming-vacation-list{border-top:1px solid #d9dee7;display:grid}.upcoming-vacation-row{align-items:center;border-bottom:1px solid #d9dee7;display:grid;gap:14px;grid-template-areas:"when member range mode";grid-template-columns:108px minmax(140px,1fr) minmax(180px,1.3fr) auto;min-height:66px;padding:11px 0}.upcoming-vacation-row:last-child{border-bottom:0;padding-bottom:0}.upcoming-vacation-when,.upcoming-vacation-member{display:grid;gap:3px;min-width:0}.upcoming-vacation-when{grid-area:when}.upcoming-vacation-member{grid-area:member}.upcoming-vacation-when strong,.upcoming-vacation-member strong{color:#121826;font-size:14px;font-weight:900}.upcoming-vacation-when span,.upcoming-vacation-member span,.upcoming-vacation-range{color:#687386;font-size:13px;font-weight:800}.upcoming-vacation-member strong,.upcoming-vacation-member span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upcoming-vacation-range{grid-area:range}.upcoming-vacation-mode{grid-area:mode;justify-self:end}.team-list{border-top:1px solid #d9dee7;display:grid}.team-list-row{align-items:center;border-bottom:1px solid #d9dee7;display:grid;grid-template-areas:"member status break work clock";gap:14px;grid-template-columns:minmax(180px,1.4fr) auto auto auto minmax(104px,auto);min-height:70px;padding:14px 0}.team-member-cell{align-items:center;display:grid;gap:10px;grid-area:member;grid-template-columns:auto minmax(0,1fr);min-width:0}.team-member-cell strong,.team-member-cell span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-member-cell strong{color:#121826;font-size:15px;font-weight:900}.team-member-cell span,.team-break-state,.team-clock-time{color:#687386;font-size:13px;font-weight:800}.team-work-time{color:#121826;font-size:15px;font-weight:900;grid-area:work;white-space:nowrap}.team-break-state{grid-area:break}.team-clock-time{grid-area:clock}.status-pill{border-radius:999px;display:inline-flex;font-size:12px;font-weight:900;grid-area:status;justify-content:center;min-width:72px;padding:7px 10px;white-space:nowrap}.status-pill-offDuty{background:#e3e7ef;color:#4b5565}.status-pill-working{background:#dcfce7;color:#166a4d}.status-pill-onBreak{background:#ffedd5;color:#b45309}.status-pill-vacation{background:#dbeafe;color:#2358d3}.status-panel{background:#f8fafc;border:1px solid #d9dee7;border-radius:8px;gap:16px;justify-content:space-between;padding:18px}.eyebrow{color:#687386;display:block;font-size:12px;font-weight:900;margin-bottom:6px;text-transform:uppercase}.status-text{color:#121826;display:block;font-size:28px;font-weight:900}.member-name{color:#687386;display:block;font-size:13px;font-weight:800;margin-top:4px}.status-badge{align-items:center;border:1px solid #d9dee7;border-radius:999px;color:#687386;display:inline-flex;flex:0 0 auto;font-size:13px;font-weight:900;gap:8px;min-height:36px;padding:0 12px}.status-badge span{background:#166a4d;border-radius:999px;display:block;height:8px;width:8px}.status-badge-loading span,.status-badge-syncing span{background:#b45309}.status-badge-failed span{background:#c2410c}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.action-row{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.button{align-items:center;border:0;border-radius:8px;cursor:pointer;display:inline-flex;font-weight:900;justify-content:center;min-height:44px;padding:0 16px}.button:disabled{background:#e3e7ef;color:#8a94a6;cursor:not-allowed}.button-full{width:100%}.button-small{font-size:13px;min-height:34px;padding:0 12px}.button-primary{background:#166a4d;color:#fff}.button-primary:not(:disabled):hover{background:#0f513a}.button-secondary{background:#2358d3;color:#fff}.button-secondary:not(:disabled):hover{background:#193fa0}.button-neutral{background:#121826;color:#fff}.button-neutral:not(:disabled):hover{background:#2b3345}.button-ghost{background:#e3e7ef;color:#121826}.button-danger{background:#c2410c;color:#fff}.action-button{min-height:56px}.error-panel{align-items:center;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;color:#9a3412;display:flex;gap:16px;justify-content:space-between;padding:16px}.error-panel strong{display:block;font-size:15px;font-weight:900;margin-bottom:4px}.error-panel p{font-size:14px;font-weight:750;line-height:1.45}.section-title-row{justify-content:space-between}.menu-layer{inset:0;position:fixed;z-index:20}.menu-backdrop{background:#12182657;border:0;cursor:pointer;inset:0;position:absolute}.side-menu{background:#fff;box-shadow:-16px 0 40px #1218262e;display:grid;gap:20px;align-content:start;height:100%;margin-left:auto;max-width:440px;min-width:min(100%,360px);overflow:auto;padding:22px;position:relative;width:36vw}.menu-header{align-items:center;display:flex;justify-content:space-between}.modal-layer{align-items:center;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:20}.modal-backdrop{background:#12182657;border:0;cursor:pointer;inset:0;position:absolute}.modal-card{background:#fff;border-radius:12px;box-shadow:0 24px 60px #12182638;display:grid;gap:18px;max-height:calc(100svh - 40px);max-width:420px;overflow:auto;padding:22px;position:relative;width:100%}.modal-header{align-items:center;display:flex;justify-content:space-between}.modal-header h2{margin:0}.modal-actions{display:grid;gap:8px}.break-message-form{display:grid;gap:16px}.break-presets{display:flex;flex-wrap:wrap;gap:8px}.break-preset-chip{align-items:center;background:#f8fafc;border:1px solid #d9dee7;border-radius:999px;color:#121826;cursor:pointer;display:inline-flex;font-size:13px;font-weight:750;gap:6px;min-height:34px;padding:0 12px}.break-preset-chip:hover{background:#eef2f8}.break-preset-chip[aria-pressed=true]{background:#121826;border-color:#121826;color:#fff}.break-message-label{display:grid;gap:6px}.break-message-label span{color:#687386;font-size:13px;font-weight:750}.text-input{background:#fff;border:1px solid #d9dee7;border-radius:8px;color:#121826;font:inherit;font-weight:750;min-height:46px;padding:0 14px;width:100%}.text-input:focus-visible{border-color:#121826;outline:2px solid rgb(18 24 38 / .18);outline-offset:1px}.menu-section{display:grid;gap:12px;min-width:0}.menu-nav{display:grid;gap:8px}.menu-nav button{background:#f8fafc;border:1px solid #d9dee7;border-radius:8px;color:#121826;cursor:pointer;font-weight:900;min-height:46px;text-align:left;padding:0 14px}.menu-section .language-toggle{width:100%}.slack-connection-card{align-items:center;background:#f8fafc;border:1px solid #d9dee7;border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:14px}.slack-connection-copy{display:grid;gap:3px;min-width:0}.slack-connection-copy strong{color:#121826;font-size:14px;font-weight:900}.slack-connection-copy span,.slack-connection-copy small{color:#687386;font-size:12px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slack-connection-copy small{color:#8a94a6}.menu-actions{display:grid;gap:10px;margin-top:4px}.menu-status{color:#166a4d;font-size:13px;font-weight:800;margin:-2px 0 2px}.menu-status-failed{color:#9a3412}.vacation-form,.vacation-list-section{display:grid;gap:16px}.vacation-form{background:#f8fafc;border:1px solid #d9dee7;border-radius:8px;padding:18px}.vacation-mode-field{border:0;display:grid;gap:10px;margin:0;min-width:0;padding:0}.vacation-mode-field legend,.vacation-period-field legend{color:#687386;font-size:12px;font-weight:900;text-transform:uppercase}.vacation-mode-toggle{background:#e3e7ef;border-radius:8px;display:grid;gap:4px;grid-template-columns:repeat(2,minmax(0,1fr));padding:4px}.vacation-mode-toggle button{background:transparent;border:0;border-radius:6px;color:#687386;cursor:pointer;font-weight:900;min-height:42px;padding:0 14px}.vacation-mode-toggle button[aria-pressed=true]{background:#fff;box-shadow:0 1px 4px #1218261a;color:#121826}.vacation-period-field{border:0;display:grid;gap:10px;margin:0;min-width:0;padding:0}.vacation-picker-hint{color:#687386;font-size:13px;font-weight:700;margin-top:-4px}.vacation-range-picker{align-items:center;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr)}.vacation-picker-control{min-width:0;position:relative}.vacation-picker-native{height:1px;left:12px;opacity:0;pointer-events:none;position:absolute;top:50%;width:1px}.vacation-picker-button{align-items:start;background:#fff;border:1px solid #cbd3df;border-radius:10px;color:#121826;cursor:pointer;display:grid;gap:5px;min-height:78px;min-width:0;padding:13px 52px 13px 14px;position:relative;text-align:left;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease;width:100%}.vacation-picker-button:hover{border-color:#166a4d;box-shadow:0 3px 12px #12182614}.vacation-picker-button:active{transform:translateY(1px)}.vacation-picker-button:focus-visible,.vacation-mode-toggle button:focus-visible{border-color:#166a4d;box-shadow:0 0 0 3px #166a4d33;outline:0}.vacation-picker-label{color:#687386;font-size:12px;font-weight:900}.vacation-picker-button strong{font-size:16px;line-height:1.3;overflow-wrap:anywhere}.vacation-picker-icon{color:#166a4d;height:22px;position:absolute;right:16px;top:50%;transform:translateY(-50%);width:22px}.vacation-picker-icon-calendar{border:2px solid currentColor;border-radius:4px}.vacation-picker-icon-calendar:before{border-bottom:2px solid currentColor;content:"";left:0;position:absolute;right:0;top:5px}.vacation-picker-icon-calendar:after{background:linear-gradient(currentColor,currentColor) 4px 10px / 3px 3px no-repeat,linear-gradient(currentColor,currentColor) 11px 10px / 3px 3px no-repeat,linear-gradient(currentColor,currentColor) 4px 15px / 3px 3px no-repeat,linear-gradient(currentColor,currentColor) 11px 15px / 3px 3px no-repeat;content:"";inset:0;position:absolute}.vacation-picker-icon-clock{border:2px solid currentColor;border-radius:50%}.vacation-picker-icon-clock:before,.vacation-picker-icon-clock:after{background:currentColor;border-radius:999px;content:"";left:9px;position:absolute;transform-origin:bottom center}.vacation-picker-icon-clock:before{height:7px;top:3px;width:2px}.vacation-picker-icon-clock:after{height:6px;top:8px;transform:rotate(125deg);width:2px}.vacation-range-connector{align-items:center;background:#e7f2ed;border-radius:999px;color:#166a4d;display:inline-flex;font-size:17px;font-weight:900;height:32px;justify-content:center;width:32px}.vacation-selection-summary{align-items:center;background:#eef7f3;border-radius:8px;color:#426558;display:flex;font-size:13px;font-weight:800;justify-content:space-between;margin-top:2px;padding:10px 12px}.vacation-selection-summary strong{color:#166a4d;font-size:14px}.vacation-list{border-top:1px solid #d9dee7;display:grid}.vacation-list-row{align-items:center;border-bottom:1px solid #d9dee7;display:grid;gap:14px;grid-template-columns:minmax(0,1fr) auto auto;min-height:70px;padding:14px 0}.vacation-list-row strong,.vacation-list-row span{display:block}.vacation-list-row strong{color:#121826;font-size:15px;font-weight:900}.vacation-list-row span{color:#687386;font-size:13px;font-weight:800;margin-top:3px}.vacation-list-row .vacation-calendar-warning{color:#b84b1d}.vacation-status{border-radius:999px;display:inline-flex;font-size:12px;font-weight:900;justify-content:center;margin:0;min-width:72px;padding:7px 10px;white-space:nowrap}.vacation-status-active{background:#dcfce7;color:#166a4d}.vacation-status-canceled{background:#e3e7ef;color:#4b5565}.timeline{display:grid;gap:0}.timeline-item{align-items:center;border-top:1px solid #d9dee7;display:grid;gap:12px;grid-template-columns:auto 1fr;min-height:64px}.timeline-dot{background:#166a4d;border-radius:999px;height:10px;width:10px}.timeline-item strong,.timeline-item span{display:block}.timeline-item strong{color:#121826;font-size:15px;font-weight:900}.timeline-item span{color:#687386;font-size:13px;font-weight:700;margin-top:3px}.empty-text{padding:20px 0 4px}@media(max-width:860px){.brand-row,.status-panel{align-items:stretch;flex-direction:column}.header-actions{justify-content:flex-end}.time-summary,.revenue-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-list-row{align-items:center;grid-template-areas:"member status" "break break" "work clock";grid-template-columns:minmax(0,1fr) auto}.upcoming-vacation-row{grid-template-areas:"when member mode" "range range range";grid-template-columns:108px minmax(0,1fr) auto}.side-menu{width:min(100%,420px)}}@media(max-width:560px){.page{gap:14px;padding:18px 14px 32px}.modal-layer{align-items:flex-end;padding:0}.modal-card{border-radius:14px 14px 0 0;max-height:88svh;max-width:none;padding:18px 16px calc(18px + env(safe-area-inset-bottom))}.auth-panel,.attendance-panel,.records-panel,.revenue-panel,.team-list-panel,.vacations-panel{padding:18px}h1{font-size:28px;line-height:1.05}.brand-row-compact{min-width:0}.brand-row-compact p{font-size:13px;margin-top:4px}.top-bar{align-items:flex-start;flex-direction:row}.view-tabs{gap:3px;padding:3px}.view-tabs button{min-height:40px;padding:0 10px}.action-row{grid-template-columns:1fr}.attendance-hero{display:grid}.primary-time{min-width:0;text-align:left}.time-summary,.revenue-filter,.revenue-summary-grid,.vacation-list-row,.vacation-range-picker{grid-template-columns:1fr}.vacation-range-connector{justify-self:center;transform:rotate(90deg)}.vacation-list-row{align-items:stretch}.team-list-row{align-items:center;grid-template-areas:"member status" "break break" "work clock";grid-template-columns:minmax(0,1fr) auto}.upcoming-vacation-row{align-items:start;grid-template-areas:"when mode" "member member" "range range";grid-template-columns:minmax(0,1fr) auto}.upcoming-vacations{padding:14px}.team-break-state,.team-work-time,.team-clock-time{grid-column:auto}.team-break-state,.team-clock-time{justify-self:start}.language-toggle{width:100%}.language-toggle button{min-width:0}.error-panel{align-items:stretch;flex-direction:column}.side-menu{min-width:100%;padding:18px;width:100%}}
