.store-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(ellipse at top,#1a1710,#16140f)}.store-gate-card{width:100%;max-width:420px;background:#1f1c15;border:1px solid #3a3326;border-radius:16px;padding:30px 26px;box-shadow:0 30px 80px -40px #000}.brand{text-align:center;margin-bottom:26px}.brand h1{font-family:Archivo,sans-serif;font-weight:900;letter-spacing:-.02em;font-size:30px;margin:0;line-height:1;text-transform:uppercase;color:#f3ecd9}.tag{color:#a89c7e;font-size:13px;margin:8px 0 0}.field{margin-bottom:16px}.field label{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#a89c7e;margin:0 0 7px}.field input{width:100%;background:#1b1810;border:1px solid #3a3326;color:#f3ecd9;border-radius:10px;padding:12px 14px;font-size:16px;outline:none;font-family:IBM Plex Mono,monospace;letter-spacing:.08em}.field input:focus{border-color:#f5a623}.field input:disabled{opacity:.5;cursor:not-allowed}.error{color:#e88a7a;font-size:13px;min-height:18px;margin:8px 0 16px;text-align:center}.btn-primary{width:100%;font-family:IBM Plex Sans,sans-serif;font-weight:600;cursor:pointer;border:none;border-radius:10px;padding:12px 16px;font-size:15px;transition:.12s;background:#f5a623;color:#1a1407}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:2rem}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:30px 26px;box-shadow:0 30px 80px -40px #000;max-width:420px;width:100%}.login-card h2{font-family:Archivo,sans-serif;font-weight:900;font-size:24px;letter-spacing:-.02em;text-transform:uppercase;color:var(--ink);margin-bottom:8px;text-align:center}.login-subtitle{text-align:center;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:2rem;font-family:IBM Plex Mono,monospace;font-weight:500}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);font-weight:600;font-family:IBM Plex Mono,monospace}.form-group select,.form-group input{width:100%;background:var(--cell);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:12px 14px;font-size:16px;outline:none;font-family:IBM Plex Mono,monospace;letter-spacing:.08em;font-weight:500;transition:border-color .15s}.form-group select:focus,.form-group input:focus{border-color:var(--signal)}.form-group select:disabled,.form-group input:disabled{opacity:.5;cursor:not-allowed}.form-group input::placeholder{color:var(--ink-faint);font-weight:400}.login-button{padding:14px 20px;background:var(--signal);color:var(--ink);border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;font-family:IBM Plex Sans,sans-serif;transition:all .12s;margin-top:8px;text-transform:uppercase;letter-spacing:.04em}.login-button:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.5;cursor:not-allowed}.error-message{background:var(--danger-bg);color:var(--danger);padding:12px 14px;border-radius:10px;border:1px solid var(--danger);font-size:13px;text-align:center;font-family:IBM Plex Sans,sans-serif}.info-message{background:var(--panel-2);color:var(--ink-dim);padding:14px 16px;border-radius:10px;border:1px solid var(--line);font-size:13px;text-align:center;margin-top:1rem;font-family:IBM Plex Sans,sans-serif;line-height:1.5}@media (max-width: 768px){.login-container{padding:1rem}.login-card{padding:24px 20px}.login-card h2{font-size:20px}.login-subtitle{font-size:10px}}.calendar-container{background:var(--panel);border-radius:12px;padding:16px;border:1px solid var(--line)}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}.calendar-header h2{font-family:Archivo,sans-serif;font-weight:700;font-size:24px;letter-spacing:-.01em;text-transform:uppercase;color:var(--ink);margin:0}.year-nav-button{padding:10px;min-width:44px;min-height:44px;background:transparent;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:18px;font-weight:400;color:var(--ink-dim);transition:all .15s;display:flex;align-items:center;justify-content:center}.year-nav-button:hover:not(:disabled){border-color:var(--signal);color:var(--signal)}.year-nav-button:disabled{opacity:.3;cursor:not-allowed}.calendar-legend{display:flex;flex-wrap:wrap;justify-content:space-evenly;gap:16px;margin-bottom:20px;padding:14px 20px;background:var(--panel-2);border-radius:8px;border:1px solid var(--line)}.legend-item{display:flex;align-items:center;gap:6px;font-family:IBM Plex Mono,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.legend-label{font-size:11px;font-weight:600;white-space:nowrap}.legend-stat .legend-label{color:var(--ink);font-weight:700}.legend-label-short{display:none}.legend-dot{width:14px;height:14px;border-radius:3px;border:1px solid var(--line)}.legend-dot.slot-booked{background:rgba(125,184,138,.3);border-color:var(--live)}.legend-dot.slot-pending{background:rgba(138,180,214,.3);border-color:var(--c-pending)}.legend-dot.slot-blocked{background:rgba(0,0,0,.4);border-color:var(--ink-faint)}.legend-dot.slot-available{background:white;border-color:var(--line)}.legend-dot.stat-used-color{background:rgba(217,119,6,.2);border-color:#d97706}.months-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.month-card{background:var(--panel-2);border-radius:10px;border:1px solid var(--line);padding:12px;transition:all .2s}.month-header{font-family:Archivo,sans-serif;font-weight:700;font-size:13px;letter-spacing:.02em;text-transform:uppercase;color:var(--ink);text-align:center;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}.weekday-labels{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:2px}.weekday-label{text-align:center;font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:600;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em;padding:4px 0}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--cell);border-radius:6px;cursor:pointer;transition:all .12s;border:1px solid var(--line);padding:4px 2px;position:relative;overflow:hidden}.calendar-day:hover{transform:scale(1.08);z-index:10;border-color:var(--signal)}.calendar-day.empty{background:transparent;border:none;cursor:default;pointer-events:none}.day-number{font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:700;color:var(--ink);line-height:1;position:relative;z-index:3;padding:4px 6px;background:var(--cell);border-radius:4px;border:1px solid var(--line)}.day-slots{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.slot{position:absolute;display:flex;align-items:center;justify-content:center;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--ink);transition:background .2s}.slot-1{top:0;left:0;width:100%;height:100%;clip-path:polygon(0 0,100% 0,0 100%);padding-top:6px;padding-left:6px;align-items:flex-start;justify-content:flex-start}.slot-2{top:0;right:0;width:100%;height:100%;clip-path:polygon(100% 0,100% 100%,0 100%);padding-bottom:6px;padding-right:6px;align-items:flex-end;justify-content:flex-end}.slot-available{background:transparent}.slot-booked{background:rgba(95,211,138,.3);color:var(--live)}.slot-pending{background:rgba(138,180,214,.3);color:var(--c-pending)}.slot-blocked{background:rgba(0,0,0,.4);color:var(--ink-faint)}.slot-guaranteedDayOff{background:rgba(59,130,246,.25);color:#2563eb}.day-preferences{position:absolute;bottom:2px;left:50%;transform:translate(-50%);display:flex;gap:2px;z-index:15;pointer-events:none}.preference-dot{font-family:IBM Plex Mono,monospace;font-size:7px;font-weight:600;padding:1px 3px;background:rgba(156,163,175,.3);border:1px dashed var(--line);border-radius:3px;color:var(--ink-dim)}.day-slots:after{content:"";position:absolute;bottom:-1px;left:-1px;width:141.42%;height:1px;background:var(--line);transform:rotate(-45deg);transform-origin:bottom left;z-index:10}.day-selected{border:2px solid var(--signal);box-shadow:0 0 8px #f5a6234d}@media (max-width: 1400px){.months-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 900px){.months-grid{grid-template-columns:1fr}.calendar-container{padding:12px}.month-card{padding:10px}.calendar-header h2{font-size:20px}.day-number{font-size:11px}.day-status{font-size:8px}.calendar-legend{gap:12px;padding:12px 16px;margin-bottom:14px;justify-content:space-evenly}.legend-item{gap:6px}.legend-label{font-size:10px}.legend-label-full{display:none}.legend-label-short{display:inline}}@media (max-width: 600px){.weekday-label{font-size:8px}.day-number{font-size:10px}.day-status{display:none}.month-header{font-size:12px}.month-grid{gap:1px}.calendar-day{padding:2px 1px}.calendar-legend{gap:8px;padding:10px 12px;margin-bottom:10px;justify-content:space-evenly;flex-wrap:wrap}.legend-item{gap:4px;letter-spacing:.06em}.legend-label{font-size:9px}.legend-dot{width:12px;height:12px}.preference-dot{font-size:6px;padding:1px 2px}.legend-label-full{display:none}.legend-label-short{display:inline}}.booking-form-container{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem;overflow-y:auto;-webkit-overflow-scrolling:touch}.booking-form-card{background:white;border-radius:12px;padding:2rem;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0003}.booking-form-card h3{margin-bottom:1.5rem;color:#333;font-size:1.5rem}.selected-dates-summary{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:1rem;border-radius:8px;margin-bottom:1.5rem;text-align:center}.selected-dates-summary strong{font-size:1.5rem;display:block;margin-bottom:.5rem}.date-range{font-size:.9rem;opacity:.95;margin-top:.5rem}.vacation-calculation{font-size:.95rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.3);font-weight:600}.conflict-summary{background-color:#f9f9f9;padding:1rem;border-radius:8px;margin-bottom:1.5rem}.conflict-summary h4{margin-bottom:.75rem;color:#444;font-size:1rem}.conflict-stats{display:flex;flex-direction:column;gap:.5rem}.stat-item{padding:.5rem .75rem;border-radius:6px;font-size:.9rem;border-left:3px solid}.stat-blackout{background-color:#ffebee;border-color:#ef5350;color:#c62828}.stat-restricted{background-color:#fff8e1;border-color:#ffa726;color:#e65100}.stat-regular{background-color:#e8f5e9;border-color:#66bb6a;color:#2e7d32}.stat-error{background-color:#ffebee;border-color:#ef5350;color:#c62828;font-weight:600}.stat-warning{background-color:#e3f2fd;border-color:#42a5f5;color:#1565c0}.dayoff-type-selection{background-color:#f9f9f9;padding:1.5rem;border-radius:8px;margin-bottom:1.5rem}.dayoff-type-selection h4{margin-bottom:1rem;color:#444;font-size:1rem}.allowance-info{background:#e3f2fd;padding:.75rem 1rem;border-radius:6px;border-left:3px solid #2563EB;margin-bottom:1rem}.allowance-info p{margin:0;color:#1565c0;font-size:.9rem}.allowance-info strong{color:#0d47a1;font-weight:700}.type-selection-buttons{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.type-select-btn{background:white;border:2px solid #e0e0e0;border-radius:8px;padding:1rem;cursor:pointer;transition:all .2s;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation}.type-select-btn:hover:not(.disabled){border-color:#2563eb;box-shadow:0 4px 12px #2563eb26;transform:translateY(-2px)}.type-select-btn:active:not(.disabled){transform:translateY(0)}.type-select-btn.selected{border-color:#2563eb;background:rgba(37,99,235,.05);box-shadow:0 0 0 3px #2563eb1a}.type-select-btn.disabled{opacity:.4;cursor:not-allowed}.type-select-icon{font-size:1.5rem;color:#2563eb}.type-select-btn.selected .type-select-icon{font-weight:700}.type-select-label{font-weight:600;color:#333;font-size:.95rem}.type-select-desc{font-size:.8rem;color:#666;line-height:1.3}.swap-info{margin-top:1rem;padding:1rem;background:#FFF4E6;border:1px solid #FFB84D;border-radius:8px}.swap-warning{color:#c77700;font-weight:600;margin-bottom:.75rem;font-size:.9rem;display:flex;align-items:center;gap:.5rem}.swap-details{font-size:.85rem;color:#555}.swap-details strong{display:block;margin-bottom:.5rem;color:#333}.swap-details ul{margin:0;padding-left:1.5rem}.swap-details li{margin-bottom:.25rem;color:#666}.booking-form{display:flex;flex-direction:column;gap:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#444;font-size:.9rem}.form-group textarea{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;font-family:inherit;resize:vertical;transition:border-color .2s}.form-group textarea:focus{outline:none;border-color:#667eea}.form-group textarea:disabled{background-color:#f5f5f5;cursor:not-allowed}.form-actions{display:flex;gap:1rem;margin-top:1rem}.form-actions button{flex:1;padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.cancel-button{background-color:#f5f5f5;color:#666;border:2px solid #ddd}.cancel-button:hover:not(:disabled){background-color:#e0e0e0}.check-button{background:linear-gradient(135deg,#42a5f5 0%,#1976d2 100%);color:#fff}.check-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #42a5f566}.submit-button{background:linear-gradient(135deg,#66bb6a 0%,#388e3c 100%);color:#fff}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #66bb6a66}.form-actions button:disabled{opacity:.6;cursor:not-allowed}.form-actions button:active:not(:disabled){transform:translateY(0)}.error-message{background-color:#fee;color:#c33;padding:.75rem;border-radius:6px;border:1px solid #fcc;font-size:.9rem;animation:shake .3s}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@media (max-width: 768px){.booking-form-container{padding:0;align-items:flex-end}.booking-form-card{padding:1.5rem;max-height:85vh;border-radius:12px 12px 0 0;margin:0}.booking-form-card h3{font-size:1.4rem}.type-selection-buttons{display:flex;gap:.75rem}.type-select-btn{flex:1;padding:1rem .75rem;gap:.4rem}.type-select-icon{font-size:1.75rem}.type-select-label{font-size:.85rem}.type-select-desc{font-size:.7rem}.form-actions{flex-direction:column;gap:.75rem}.form-actions button{width:100%;padding:1rem}.selected-dates-summary{padding:.75rem}.selected-dates-summary strong{font-size:1.25rem}.dayoff-type-selection{padding:1rem}.allowance-info{padding:.5rem .75rem;font-size:.85rem}.conflict-summary{padding:.75rem}.conflict-summary h4{font-size:.95rem}.stat-item{padding:.4rem .6rem;font-size:.85rem}.swap-info{padding:.75rem}.swap-warning,.swap-details,.error-message{font-size:.85rem}}.admin-panel{background:white;border-radius:8px;padding:2rem;box-shadow:0 2px 8px #0000001a}.admin-panel h2{margin-bottom:1.5rem;color:#333}.admin-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid #e0e0e0}.admin-tabs button{padding:.75rem 1.5rem;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:1rem;color:#666;transition:all .2s}.admin-tabs button:hover{color:#333;background-color:#f5f5f5}.admin-tabs button.tab-active{color:#667eea;border-bottom-color:#667eea;font-weight:600}.admin-content{min-height:300px}.loading{text-align:center;padding:3rem;color:#666;font-size:1.1rem}.empty-message{text-align:center;padding:3rem;color:#999}.requests-list{display:flex;flex-direction:column;gap:1rem}.request-card{border:2px solid #e0e0e0;border-radius:8px;padding:1.5rem;transition:box-shadow .2s}.request-card:hover{box-shadow:0 4px 12px #0000001a}.request-card.status-pending{border-left:4px solid #42a5f5}.request-card.status-approved{border-left:4px solid #66bb6a}.request-card.status-denied{border-left:4px solid #ef5350}.request-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.request-header h3{color:#333;margin:0}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600}.status-badge.status-pending{background-color:#e3f2fd;color:#1976d2}.status-badge.status-approved{background-color:#e8f5e9;color:#2e7d32}.status-badge.status-denied{background-color:#ffebee;color:#c62828}.request-details{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.request-details p{margin:0;color:#666;font-size:.9rem}.warning-text{color:#e65100!important;font-weight:600}.request-actions{display:flex;gap:.75rem;margin-top:1rem}.approve-button,.deny-button{padding:.5rem 1rem;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s}.approve-button{background-color:#66bb6a;color:#fff}.approve-button:hover{background-color:#4caf50;transform:translateY(-2px);box-shadow:0 4px 8px #66bb6a4d}.deny-button{background-color:#ef5350;color:#fff}.deny-button:hover{background-color:#e53935;transform:translateY(-2px);box-shadow:0 4px 8px #ef53504d}.day-types-form{max-width:500px}.day-types-form h3{margin-bottom:1.5rem;color:#333}.day-types-form form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:#444;font-size:.9rem}.form-group input,.form-group select{padding:.75rem;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus{outline:none;border-color:#667eea}.set-button,.create-button{padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s;margin-top:.5rem}.set-button:hover,.create-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.managers-section{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.create-manager-form{background-color:#f9f9f9;padding:1.5rem;border-radius:8px}.create-manager-form h3{margin-bottom:1rem;color:#333}.managers-list{display:flex;flex-direction:column;gap:1rem}.managers-list h3{margin-bottom:1rem;color:#333}.manager-card{display:flex;justify-content:space-between;align-items:center;padding:1rem;border:2px solid #e0e0e0;border-radius:8px;transition:box-shadow .2s}.manager-card:hover{box-shadow:0 2px 8px #0000001a}.manager-card h4{margin:0 0 .25rem;color:#333}.manager-role{color:#667eea;font-weight:600;font-size:.85rem;margin:.25rem 0}.manager-email{color:#666;font-size:.85rem;margin:.25rem 0 0}.delete-button{padding:.5rem 1rem;background-color:#ef5350;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s}.delete-button:hover{background-color:#e53935;transform:translateY(-2px);box-shadow:0 4px 8px #ef53504d}.error-message{background-color:#fee;color:#c33;padding:.75rem;border-radius:6px;border:1px solid #fcc;font-size:.9rem;margin-bottom:1rem}@media (max-width: 768px){.admin-panel{padding:1rem}.admin-tabs{flex-direction:column}.admin-tabs button{text-align:left}.managers-section{grid-template-columns:1fr}.request-header{flex-direction:column;align-items:flex-start;gap:.5rem}.request-actions{flex-direction:column}.request-actions button{width:100%}}.manager-rollover{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);display:flex;align-items:center;gap:12px}.rollover-label{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim)}.rollover-display,.rollover-edit{display:flex;align-items:center;gap:8px}.rollover-value{font-family:IBM Plex Mono,monospace;font-size:14px;font-weight:700;color:var(--signal);padding:4px 8px;background:var(--signal-soft);border-radius:6px;border:1px solid var(--signal)}.rollover-input{width:60px;padding:6px;font-family:IBM Plex Mono,monospace;font-size:14px;font-weight:600;text-align:center;background:var(--cell);border:1px solid var(--line);border-radius:6px;color:var(--ink)}.rollover-input:focus{border-color:var(--signal);outline:none}.edit-button,.save-button,.cancel-button{padding:6px 12px;font-family:IBM Plex Sans,sans-serif;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border-radius:6px;border:1px solid;cursor:pointer;transition:all .15s}.edit-button{background:transparent;border-color:var(--line);color:var(--ink-dim)}.edit-button:hover{border-color:var(--signal);color:var(--signal)}.save-button{background:var(--c-selected);border-color:var(--c-selected);color:#fff}.save-button:hover{filter:brightness(1.1)}.cancel-button{background:transparent;border-color:var(--line);color:var(--ink-dim)}.cancel-button:hover{border-color:var(--ink-dim);color:var(--ink)}.manager-info{flex:1}.request-type-vacation{background:rgba(125,184,138,.2);color:var(--live);padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.request-type-dayoff{background:rgba(59,130,246,.2);color:#2563eb;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.request-dayoff{border-left:3px solid #2563EB}.gift-allowance-form{margin-top:2rem;padding:1.5rem;background:var(--panel-2);border-radius:8px;border:1px solid var(--line)}.gift-allowance-form h3{margin:0 0 .5rem;color:var(--ink)}.form-description{margin:0 0 1rem;font-size:13px;color:var(--ink-dim)}.success-message{background:rgba(125,184,138,.1);border:1px solid var(--live);color:var(--live);padding:10px;border-radius:6px;margin-bottom:1rem;font-size:14px}.balances-panel{max-width:1400px;margin:0 auto}.balances-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.balances-header h2{font-family:Archivo,sans-serif;font-weight:700;font-size:20px;letter-spacing:-.01em;text-transform:uppercase;color:var(--ink);margin:0}.vacation-year-badge{font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--ink);padding:8px 14px;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;align-items:center;gap:4px}.year-dates{font-size:10px;font-weight:500;color:var(--ink-dim)}.balances-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:20px}.balance-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:16px}.balance-card-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--line)}.balance-card-header h3{font-family:Archivo,sans-serif;font-weight:700;font-size:16px;letter-spacing:-.01em;color:var(--ink);margin:0}.rollover-badge{font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--signal);padding:4px 8px;background:var(--signal-soft);border:1px solid var(--signal);border-radius:6px}.balance-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media (max-width: 900px){.balance-stats-grid{grid-template-columns:repeat(2,1fr)}}.balance-stat{display:flex;flex-direction:column;gap:4px}.stat-label{font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.stat-value-large{font-family:IBM Plex Mono,monospace;font-size:22px;font-weight:700;color:var(--ink);letter-spacing:.02em}.stat-percent{font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:500;color:var(--ink-dim)}.used-value{color:#d97706}.booked-value{color:var(--live)}.pending-value{color:var(--c-pending)}.good-value{color:var(--c-selected)}.warning-value{color:var(--c-restricted)}.danger-value{color:var(--c-blackout)}.progress-bar-container{display:flex;flex-direction:column;gap:10px}.progress-bar{height:32px;background:linear-gradient(180deg,var(--panel-2) 0%,var(--panel) 100%);border-radius:12px;border:1px solid var(--line);position:relative;overflow:hidden;box-shadow:inset 0 2px 4px #0000000f}.progress-bar-fill{position:absolute;top:0;height:100%;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:inset 0 1px 2px #fff3}.progress-bar-fill:after{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(180deg,rgba(255,255,255,.15) 0%,rgba(255,255,255,0) 100%);border-radius:12px 12px 0 0}.progress-bar-fill.used{background:linear-gradient(180deg,#D97706 0%,color-mix(in srgb,#D97706 85%,black) 100%);border-right:1px solid color-mix(in srgb,#D97706 70%,white)}.progress-bar-fill.booked{background:linear-gradient(180deg,var(--live) 0%,color-mix(in srgb,var(--live) 85%,black) 100%);border-right:1px solid color-mix(in srgb,var(--live) 70%,white)}.progress-bar-fill.pending{background:linear-gradient(180deg,var(--c-pending) 0%,color-mix(in srgb,var(--c-pending) 85%,black) 100%)}.progress-labels{display:flex;justify-content:center;gap:16px;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.used-label{color:#d97706}.booked-label{color:var(--live)}.balance-label{color:var(--ink-dim)}.on-track-message{font-family:IBM Plex Sans,sans-serif;font-size:13px;padding:10px 12px;border-radius:8px;border:1px solid;display:flex;align-items:center;gap:8px}.on-track-message.on-track{background:var(--c-selected-bg);border-color:var(--c-selected);color:var(--c-selected)}.on-track-message.behind-pace{background:var(--c-pending-bg);border-color:var(--c-pending);color:var(--c-pending)}.loading{text-align:center;padding:40px;color:var(--ink-dim);font-family:IBM Plex Sans,sans-serif}@media (max-width: 900px){.balances-grid{grid-template-columns:1fr}.balance-stats-grid{grid-template-columns:repeat(2,1fr);gap:12px}.stat-value-large{font-size:18px}}@media (max-width: 600px){.balance-card{padding:16px}.vacation-year-badge{font-size:10px;padding:6px 10px}.year-dates{font-size:9px}}.day-type-actions{position:fixed;bottom:0;left:0;right:0;background:var(--panel);border-top:1px solid var(--line);box-shadow:0 -16px 40px -20px #000;z-index:1000;animation:slideUp .18s ease-out}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.day-type-actions-container{max-width:1600px;margin:0 auto;padding:16px 24px;display:flex;flex-direction:column;gap:12px}.selection-count{display:flex;align-items:baseline;gap:8px;justify-content:center}.count-number{font-family:IBM Plex Mono,monospace;font-size:24px;font-weight:700;color:var(--signal);letter-spacing:.08em}.count-label{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);font-weight:600}.action-buttons{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;align-items:center}.action-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 18px;min-height:72px;min-width:100px;border:1px solid;border-radius:10px;font-weight:600;cursor:pointer;transition:all .12s;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;font-family:IBM Plex Sans,sans-serif}.action-btn:active{transform:scale(.96)}.btn-icon{font-size:22px;line-height:1}.btn-label{font-family:IBM Plex Mono,monospace;font-size:10px;line-height:1;letter-spacing:.12em;text-transform:uppercase;font-weight:600}.btn-blackout{background:var(--c-blackout-bg);border-color:var(--c-blackout);color:var(--c-blackout)}.btn-blackout:hover{background:#3f2419;box-shadow:0 0 12px #e88a7a4d}.btn-blackout:active{background:var(--c-blackout);color:var(--panel)}.btn-restricted{background:var(--c-restricted-bg);border-color:var(--c-restricted);color:var(--c-restricted)}.btn-restricted:hover{background:#473210;box-shadow:0 0 12px #f5a6234d}.btn-restricted:active{background:var(--signal);color:var(--ink)}.btn-regular{background:var(--panel-2);border-color:var(--line);color:var(--ink-dim)}.btn-regular:hover{border-color:var(--ink);color:var(--ink);background:var(--cell)}.btn-regular:active{background:var(--ink-dim);color:var(--panel)}.btn-vacation{background:var(--c-selected-bg);border-color:var(--c-selected);color:var(--c-selected)}.btn-vacation:hover{background:#1a3523;box-shadow:0 0 12px #5fd38a4d}.btn-vacation:active{background:var(--live);color:var(--panel)}.btn-dayoff{background:rgba(59,130,246,.08);border-color:#2563eb;color:#2563eb}.btn-dayoff:hover{background:rgba(59,130,246,.15);box-shadow:0 0 12px #3b82f64d}.btn-dayoff:active{background:#2563EB;color:var(--panel)}.btn-cancel-vacation{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.btn-cancel-vacation:hover{background:#3f1e19;box-shadow:0 0 12px #e88a7a4d}.btn-cancel-vacation:active{background:var(--danger);color:var(--panel)}.btn-clear{background:transparent;border-color:var(--line);color:var(--ink-faint)}.btn-clear:hover{border-color:var(--ink-dim);color:var(--ink-dim)}.btn-clear:active{background:var(--panel-2)}.btn-divider{width:1px;height:60px;background:linear-gradient(180deg,transparent 0%,var(--line) 20%,var(--line) 80%,transparent 100%);margin:0 4px}@media (max-width: 768px){.day-type-actions-container{padding:12px 16px}.action-buttons{gap:8px}.action-btn{min-width:85px;min-height:68px;padding:10px 14px}.btn-icon{font-size:20px}.btn-label{font-size:9px}.btn-divider{display:none}.count-number{font-size:20px}.count-label{font-size:10px}}@media (max-width: 480px){.action-btn{min-width:70px;min-height:64px;padding:8px 10px}.btn-icon{font-size:18px}.btn-label{font-size:8px;letter-spacing:.08em}.count-number{font-size:18px}}.toast{position:fixed;top:24px;right:24px;background:var(--panel);border-radius:10px;border:1px solid var(--line);box-shadow:0 8px 24px -8px #0009;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;min-width:300px;max-width:500px;z-index:10000;animation:slideIn .18s ease-out}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.toast-content{display:flex;align-items:center;gap:10px;flex:1}.toast-icon{font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;flex-shrink:0}.toast-success{border-left:3px solid var(--live)}.toast-success .toast-icon{background:var(--c-selected-bg);color:var(--live)}.toast-error{border-left:3px solid var(--danger)}.toast-error .toast-icon{background:var(--danger-bg);color:var(--danger)}.toast-info{border-left:3px solid var(--c-pending)}.toast-info .toast-icon{background:var(--c-pending-bg);color:var(--c-pending)}.toast-message{font-size:13px;color:var(--ink);font-weight:500;font-family:IBM Plex Sans,sans-serif;line-height:1.4}.toast-close{background:transparent;border:1px solid var(--line);font-size:18px;color:var(--ink-faint);cursor:pointer;padding:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .12s;flex-shrink:0;line-height:1}.toast-close:hover{border-color:var(--ink-dim);color:var(--ink-dim)}.toast-close:active{background:var(--panel-2)}@media (max-width: 768px){.toast{top:16px;right:16px;left:16px;min-width:auto}}.vacation-summary{background:linear-gradient(135deg,var(--panel-2) 0%,var(--panel) 100%);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:16px}.summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.guaranteed-info{background:rgba(59,130,246,.08)!important;border:1px solid rgba(59,130,246,.2)}.stat-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 10px;background:rgba(255,255,255,.4);border-radius:8px;border:none;transition:transform .2s ease}.stat-item:hover{transform:translateY(-1px)}.stat-label{font-family:IBM Plex Mono,monospace;font-size:8px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.stat-value{font-family:Archivo,sans-serif;font-size:20px;font-weight:700;letter-spacing:-.02em;line-height:1}.stat-used{color:#d97706}.stat-booked{color:var(--live)}.stat-pending{color:var(--c-pending)}.balance-good{color:#2e7d55}.balance-warning{color:#d97706}.balance-danger{color:var(--c-blackout)}.stat-divider{color:var(--line);font-weight:300;font-size:14px}@media (max-width: 900px){.vacation-summary{padding:10px 12px}.summary-stats{grid-template-columns:repeat(2,1fr);gap:10px}.stat-value{font-size:18px}}@media (max-width: 768px){.vacation-summary{padding:8px 12px;margin-bottom:12px}.summary-stats{grid-template-columns:repeat(4,1fr);gap:6px}.stat-item{padding:6px 4px}.stat-value{font-size:16px}.stat-label{font-size:7px;letter-spacing:.06em}.guaranteed-info{grid-column:span 2}.guaranteed-info .stat-label{font-size:8px}.guaranteed-info .stat-value{font-size:14px}}@media (max-width: 500px){.vacation-summary{padding:6px 8px}.summary-stats{grid-template-columns:repeat(4,1fr);gap:4px}.stat-item{padding:4px 2px}.stat-value{font-size:14px}.stat-label{font-size:6px;letter-spacing:.04em}.guaranteed-info{grid-column:span 4;padding:4px 6px}.guaranteed-info .stat-label{font-size:7px}.guaranteed-info .stat-value{font-size:12px}}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--panel);border-bottom:1px solid var(--line);padding:16px 24px;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;flex-wrap:wrap}.header-brand{display:flex;align-items:center}.brand-text{display:flex;flex-direction:column;gap:2px}.brand-title{font-family:IBM Plex Sans,sans-serif;font-weight:700;font-size:16px;color:var(--ink);line-height:1}.brand-subtitle{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);line-height:1}.header-nav{display:flex;justify-content:flex-start}.header-summary{display:none}.nav-tabs{display:flex;align-items:center;gap:4px;background:var(--panel-2);padding:4px;border-radius:10px;border:1px solid var(--line)}.header-user{display:flex;align-items:center;gap:12px}.user-badge{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;background:var(--panel-2);border:1px solid var(--line);border-radius:20px;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.user-badge:hover{background:var(--panel);box-shadow:0 2px 4px #0000000f}.user-badge.active{background:var(--panel);box-shadow:0 2px 4px #0000000f;border-color:var(--signal)}.user-badge:active{transform:scale(.98)}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:700;letter-spacing:.05em}.user-name-compact{font-family:IBM Plex Sans,sans-serif;font-size:13px;font-weight:600;color:var(--ink)}.nav-tab{padding:8px 16px;background:transparent;border:none;border-radius:7px;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--ink-dim);transition:all .2s ease;position:relative}.nav-tab:hover{color:var(--ink);background:rgba(255,255,255,.3)}.nav-tab.active{background:var(--panel);color:var(--ink);box-shadow:0 2px 4px #0000000f}.logout-button{padding:8px 16px;background:transparent;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--ink-dim);transition:all .2s ease;display:flex;align-items:center;gap:6px;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.logout-icon{font-size:16px;line-height:1}.logout-text{display:inline}.logout-button:hover{background:#FEE2E2;border-color:#dc2626;color:#dc2626}.logout-button:active{transform:scale(.95)}.app-main{flex:1;padding:24px;padding-bottom:10rem;max-width:1600px;margin:0 auto;width:100%}@media (max-width: 768px){.app-header{flex-wrap:wrap;padding:12px 16px;gap:12px}.brand-title{font-size:14px}.brand-subtitle{font-size:9px}.header-nav{order:3;flex:1 1 100%;justify-content:flex-start}.nav-tabs{flex:1}.header-user{gap:8px;margin-left:auto}.user-badge{padding:4px 10px 4px 4px;gap:8px}.user-avatar{width:28px;height:28px;font-size:11px}.user-name-compact{font-size:12px}.logout-button{width:auto;min-width:36px;height:36px;padding:0;border-radius:50%;background:#FEE2E2;border-color:#dc2626;color:#dc2626;flex-shrink:0;justify-content:center}.logout-text{display:none}.logout-icon{font-size:18px}.logout-button:hover{background:#DC2626;color:#fff}.app-main{padding:16px;padding-bottom:10rem}}@media (max-width: 480px){.header-brand{flex:1}.brand-text{display:flex}.brand-title{font-size:13px}.brand-subtitle{font-size:8px}.user-name-compact{display:none}.user-badge{padding:4px}.header-nav{order:3}.nav-tabs{width:100%}.nav-tab{flex:1;padding:8px 12px;font-size:10px}}:root{--bg: #f5f1e8;--panel: #ebe5d8;--panel-2: #e0d9c9;--line: #d4c9b3;--cell: #f8f5ef;--ink: #3d3527;--ink-dim: #6b5d4a;--ink-faint: #998a73;--signal: #e8a84e;--signal-soft: #f5ead4;--live: #7db88a;--danger: #d9887a;--danger-bg: #f5e5e2;--c-blackout: #c97a6a;--c-blackout-bg: #f5e5e2;--c-restricted: #d9a857;--c-restricted-bg: #f5ead4;--c-selected: #6fb07d;--c-selected-bg: #e8f3eb;--c-pending: #8ab4d6;--c-pending-bg: #e8f0f7}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--ink);font-family:IBM Plex Sans,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;overscroll-behavior:none}code{font-family:IBM Plex Mono,monospace}button{font-family:inherit}
