@import "https://fonts.googleapis.com/css2?family=Helvetica+Neue:wght@300;400;500;700&display=swap";:root{--bg:#fff;--bg-grad:linear-gradient(180deg, #fff 0%, #f5f8fa 100%);--card:#fff;--card-soft:#f5f8fa;--card-strong:#e1e8ed;--text:#14171a;--text-strong:#0b0d0f;--muted:#657786;--primary:#1b95e0;--primary-hover:#1681cf;--primary-soft:#e8f5fd;--accent:#1da1f2;--info:#1da1f2;--success:#17bf63;--warning:#ffad1f;--danger:#e0245e;--border:#e1e8ed;--border-strong:#ccd6dd;--shadow-sm:0 1px 1px #0000000a;--shadow-md:0 2px 4px #0000000f;--shadow-lg:0 8px 24px #0000001a;--radius:4px;--radius-pill:999px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);background-image:var(--bg-grad);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;font-family:Helvetica Neue,Helvetica,Arial,Segoe UI,sans-serif;font-size:14px;line-height:1.5}a{color:var(--primary);font-weight:400;text-decoration:none}a:hover{color:var(--primary-hover);text-decoration:underline}.container{max-width:1180px;margin:0 auto;padding:24px 20px 48px}.nav{background:var(--primary);z-index:50;border-bottom:1px solid #00000014;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 24px;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #0000001a}.nav .brand-link{border-radius:var(--radius);color:#fff;align-items:center;gap:10px;margin-right:22px;padding:4px 6px;display:inline-flex}.nav .brand-link:hover{background:#ffffff1a;text-decoration:none}.nav .brand-mark{color:#fff;background:#ffffff2e;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.nav .brand{color:#fff;letter-spacing:.5px;font-size:18px;font-weight:700}.nav .nav-link,.nav a{color:#ffffffe0;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:14px;font-weight:600;transition:background .15s,color .15s,transform .15s;display:inline-flex}.nav .nav-link svg{opacity:.9}.nav .nav-link:hover,.nav a:hover{color:#fff;background:#ffffff2e;text-decoration:none}.nav .nav-link.active,.nav a.active{color:var(--primary);background:#fff;box-shadow:0 1px 2px #00000026}.nav .nav-link.active svg{opacity:1}.nav .spacer{flex:1}.nav .user-chip{color:#fff;background:#ffffff24;border-radius:999px;align-items:center;gap:10px;padding:4px 12px 4px 4px;display:inline-flex}.nav .user-avatar{width:30px;height:30px;color:var(--primary);letter-spacing:.5px;background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.nav .user-meta{flex-direction:column;line-height:1.1;display:inline-flex}.nav .user-name{color:#fff;font-size:13px;font-weight:600}.nav .user-role{color:#fffc;letter-spacing:.5px;text-transform:uppercase;font-size:11px}.nav .nav-logout{margin-left:4px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:18px;padding:22px}.card.hero{background:var(--card);border-color:var(--border)}h1,h2,h3,h4{color:var(--text-strong);letter-spacing:-.01em;font-weight:500}h1{margin:0 0 16px;font-size:28px;font-weight:700}h2{margin:0 0 14px;font-size:20px;font-weight:700}h3{margin:0 0 10px;font-size:16px;font-weight:700}label{color:var(--text);text-transform:none;letter-spacing:0;margin-bottom:6px;font-size:14px;font-weight:600;display:block}input,select,textarea{font:inherit;border-radius:var(--radius);border:1px solid var(--border-strong);width:100%;color:var(--text);background:#fff;padding:9px 12px;transition:border-color .15s,box-shadow .15s}input:hover,select:hover,textarea:hover{border-color:var(--primary)}input:focus,select:focus,textarea:focus{border-color:var(--primary);background:#fff;outline:none;box-shadow:0 0 0 3px #1b95e033}input:disabled,select:disabled,textarea:disabled{background:var(--card-strong);color:var(--muted);cursor:not-allowed}input::placeholder{color:#adb5bd}input.field-error,select.field-error,textarea.field-error,input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{background:#fff5f5;border-color:#d9534f}input.field-error:focus,select.field-error:focus,textarea.field-error:focus,input[aria-invalid=true]:focus,select[aria-invalid=true]:focus,textarea[aria-invalid=true]:focus{border-color:#d9534f;box-shadow:0 0 0 3px #d9534f33}.field-msg{color:#b02a37;margin-top:4px;font-size:12px;font-weight:500;display:block}button{font:inherit;border-radius:var(--radius);background:var(--primary);color:#fff;border:1px solid var(--primary);cursor:pointer;width:100%;box-shadow:none;padding:9px 18px;font-weight:600;transition:background .15s,border-color .15s,transform 50ms}button:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}button:active{transform:translateY(1px)}button.secondary{color:var(--text);border-color:var(--border-strong);background:#fff}button.secondary:hover{background:var(--card-soft);color:var(--text-strong);border-color:var(--muted)}button.link{color:var(--primary);width:auto;box-shadow:none;background:0 0;border:none;padding:0;font-weight:400}button.link:hover{color:var(--primary-hover);background:0 0;text-decoration:underline}button:disabled{opacity:.65;cursor:not-allowed}.row{flex-wrap:wrap;gap:14px;display:flex}.row>*{flex:1;min-width:200px}.grid-week{flex-direction:column;gap:12px;display:flex}.day-header{display:none}.day-header .cell{color:var(--text-strong);text-transform:uppercase;letter-spacing:.02em;text-align:left;justify-content:flex-start;align-items:flex-start;font-size:13px;font-weight:700}.day-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:14px;transition:border-color .15s,box-shadow .15s,background .15s}.day-card:hover{box-shadow:var(--shadow-md)}.day-card.enabled{background:var(--card);border-color:var(--primary);box-shadow:inset 3px 0 0 var(--primary)}.day-card.timeoff{border-color:var(--warning);box-shadow:inset 3px 0 0 var(--warning);background:#fff8ec}.day-card .day-title{color:var(--text-strong);align-items:center;gap:8px;margin-bottom:10px;font-weight:700;display:flex}.day-card .day-title .day-name{font-size:15px}.day-card .day-title .day-date{color:var(--muted);font-size:13px;font-weight:400}.day-card .cell{flex-direction:column;gap:4px;margin-top:10px;display:flex}.day-card .cell-label{color:var(--muted);margin:0;font-size:12px}.day-card .cell input,.day-card .cell select{width:100%}.day-card input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}@media (width<=719px){.day-card{grid-template-columns:1fr 1fr;column-gap:10px;display:grid}.day-card .cell-day,.day-card .cell-location,.day-card .cell-comments{grid-column:1/-1}.day-card .cell-day{margin-top:0}}@media (width>=720px){.grid-week{gap:6px}.day-header,.day-row{grid-template-columns:minmax(170px,1.4fr) 120px 120px minmax(170px,1.6fr) minmax(200px,2.4fr);place-items:center start;column-gap:24px;display:grid}.day-header{border-bottom:2px solid var(--border-strong);background:var(--card-soft);border-radius:var(--radius);padding:10px 18px}.day-row{padding:12px 18px}.day-row .cell{text-align:left;align-items:flex-start;gap:2px;margin-top:0}.day-row .cell input,.day-row .cell select{width:100%}.day-row .cell-day{justify-content:flex-start}.day-row .cell-day>label{justify-content:flex-start;align-items:center}.day-label-stack{flex-direction:column;line-height:1.15;display:inline-flex}.day-label-stack .day-name{font-size:15px;font-weight:700}.day-label-stack .day-date{color:var(--muted);margin-top:2px;font-size:12px;font-weight:400}.day-row .cell-label{display:none}.day-card .day-title{margin-bottom:0}}.pill{border-radius:var(--radius-pill);background:var(--primary);color:#fff;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.pill.warn{background:var(--warning);color:#fff}.pill.muted{background:var(--card-strong);color:var(--muted)}table{border-collapse:separate;border-spacing:0;width:100%;color:var(--text)}th,td{text-align:left;vertical-align:top;padding:12px 14px;font-size:14px}th{background:var(--card-soft);color:var(--text-strong);border-bottom:2px solid var(--border-strong);text-transform:none;letter-spacing:0;font-size:13px;font-weight:700}tbody tr{transition:background .1s}tbody tr:hover{background:var(--card-soft)}tbody td{border-bottom:1px solid var(--border)}tbody tr:last-child td{border-bottom:none}.alert{border-radius:var(--radius);border:1px solid #0000;margin-bottom:14px;padding:12px 16px;font-size:14px;animation:.2s ease-out slideDown}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.alert.error{color:#9a1841;background:#fdecef;border-color:#f7c4d2}.alert.info{color:#0b6ca8;background:#e8f5fd;border-color:#c7e4f8}.alert.success{color:#0d7a3f;background:#e2f7ec;border-color:#b9ecd0}.alert.warning{color:#8a5a00;background:#fff3d6;border-color:#ffe3a3}.muted{color:var(--muted);font-size:13px}.right{text-align:right}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.toolbar input,.toolbar select{width:auto}.week-toolbar{justify-content:space-between}.week-nav{flex-wrap:wrap;gap:6px;display:inline-flex}.btn-compact{width:auto;min-height:34px;padding:6px 10px;font-size:13px;line-height:1.1}.week-pill{white-space:nowrap}.section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.section-header h2{margin:0}.vacation-toggle{text-transform:none;letter-spacing:0;color:var(--text);align-items:center;gap:8px;margin:0;font-size:14px;font-weight:500;display:inline-flex}.vacation-toggle input[type=checkbox]{width:auto;margin:0}@media (width<=720px){.week-toolbar{gap:8px}.week-nav{gap:4px;width:100%}.week-nav .btn-compact{flex:1 1 0;min-width:0;padding:6px;font-size:12px}.week-pill{text-align:center;width:100%}.section-header{gap:6px}.vacation-toggle{font-size:13px}}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:0;margin-bottom:14px;display:flex}.tabs button{width:auto;color:var(--muted);border-radius:var(--radius);background:0 0;border:1px solid #0000;border-bottom:none;margin-bottom:-1px}.tabs button:hover{background:var(--card-soft);color:var(--text-strong);border-color:var(--border)}.tabs button.active{background:var(--card);color:var(--text-strong);border-color:var(--border);border-bottom-color:var(--card)}.tabs button.secondary{color:var(--muted);background:0 0}.auth-shell{justify-content:center;align-items:center;min-height:calc(100vh - 64px);padding:32px 16px;display:flex}.auth-shell .card{width:100%;max-width:420px;box-shadow:var(--shadow-lg)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--card-soft)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.nav .nav-menu{flex-wrap:wrap;flex:1;align-items:center;gap:6px;display:flex}.nav .nav-toggle{border-radius:var(--radius);color:#fff;cursor:pointer;width:40px;height:40px;box-shadow:none;background:0 0;border:1px solid #ffffff59;justify-content:center;align-items:center;padding:0;display:none}.nav .nav-toggle:hover{background:#ffffff26}@media (width<=720px){.nav{gap:4px;padding:8px 14px}.nav .brand{font-size:16px}.nav .brand-link{margin-right:0}.nav .spacer{display:none}.nav .nav-toggle{margin-left:auto;display:inline-flex}.nav .nav-menu{border-top:1px solid #fff3;flex-direction:column;flex-basis:100%;align-items:stretch;gap:4px;margin-top:8px;padding-top:8px;display:none}.nav.open .nav-menu{display:flex}.nav .nav-link,.nav .nav-menu a{border-radius:var(--radius);justify-content:flex-start;width:100%;padding:10px 12px;font-size:15px}.nav .user-chip{border-radius:var(--radius);background:#ffffff1a;justify-content:flex-start;width:100%;padding:6px 10px}.nav .user-meta{flex-direction:row;align-items:baseline;gap:6px}.nav .user-name{font-size:14px}.nav .user-role{font-size:10px}.nav .nav-logout{margin:4px 0 0;width:100%!important}}
