:root{--accent:#db9452;--accent-hover:#c07f3f;--accent-soft:rgba(219,148,82,.18);--ink:#1f1f1f;--ink-muted:#6b6b6b;--surface:#fff;--surface-sunken:#f3f1ee;--surface-hover:#f5efe6;--border:#e3ddd3;--border-soft:#ece7e0;--ease-out:cubic-bezier(0.16,1,0.3,1)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f7f5f2;color:var(--ink)}.page{max-width:960px;margin:0 auto;padding:8px 20px 32px;animation:page-enter .24s var(--ease-out)}.page-wide{max-width:1400px}.card{background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;padding:24px;box-shadow:0 1px 2px rgba(31,24,14,.04),0 8px 20px -12px rgba(31,24,14,.12)}@keyframes page-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}h1{font-size:20px;font-weight:700;letter-spacing:-.01em;margin:0 0 20px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-wrap .card{width:320px;animation:page-enter .28s var(--ease-out)}label{display:block;font-size:13px;color:var(--ink-muted);margin-bottom:4px}input,select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:14px;margin-bottom:14px;background:var(--surface);color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}input:hover,select:hover{border-color:#c9c1b3}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=checkbox]{width:auto;padding:0;border:none;margin:0 8px 0 0;vertical-align:middle}button{width:100%;padding:10px;border:none;border-radius:8px;background:var(--accent);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .15s ease,transform .1s ease,box-shadow .15s ease,opacity .15s ease}button:hover{background:var(--accent-hover)}button:active{transform:scale(.98)}button:disabled{cursor:not-allowed;opacity:.55;transform:none}.nav-tab:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.error{color:#c0392b;font-size:13px;margin-bottom:10px;animation:page-enter .18s var(--ease-out)}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.topbar button{width:auto;background:transparent;color:var(--ink-muted);border:1px solid var(--border);padding:6px 14px}.topbar button:hover{background:var(--surface-hover);color:var(--ink)}.filters{display:flex;gap:16px;margin-bottom:20px;flex-wrap:wrap}.filters>div{flex:1 1;min-width:140px}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;font-size:14px}table,td,th{border:1px solid var(--border-soft)}td,th{text-align:left;padding:10px 8px}th{color:var(--ink-muted);font-weight:600;font-size:12px;letter-spacing:.02em;text-transform:uppercase;background:var(--surface-sunken)}tbody tr:nth-child(2n){background:#fafaf8}tbody tr{transition:background-color .12s ease}tbody tr:hover{background:var(--surface-hover)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}.badge.good{background:#e3f3e6;color:#2e7d32}.badge.bad{background:#fdecea;color:#c0392b}.badge.warn{background:#fff4e0;color:#b9770e}.nav-tabs-wrap{max-width:1400px;margin:0 auto;padding:20px 20px 0}.nav-tabs{position:relative;display:inline-flex;gap:2px;padding:4px;background:var(--surface);border:1px solid var(--border-soft);border-radius:11px;box-shadow:0 1px 2px rgba(31,24,14,.04)}.nav-tab-indicator{position:absolute;top:4px;bottom:4px;left:0;border-radius:8px;background:var(--accent);transition:transform .26s var(--ease-out),width .26s var(--ease-out);z-index:0}.nav-tab{position:relative;z-index:1;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:600;color:var(--ink-muted);text-decoration:none;background:transparent;border:none;transition:color .15s ease}.nav-tab:hover{color:var(--ink)}.nav-tab.active,.nav-tab.active:hover{color:#fff}.calendar-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.calendar-toolbar button{width:auto;padding:8px 14px}.calendar-toolbar .nav-btn{background:transparent;color:#1f1f1f;border:1px solid #ddd}.calendar-toolbar select{width:auto;margin-bottom:0;min-width:160px}.calendar-range{font-weight:600;font-size:15px;margin:0 4px}.calendar-grid{display:grid;grid-template-columns:56px repeat(7,1fr);min-width:640px;border:1px solid var(--border-soft);border-radius:8px;overflow:hidden}.calendar-grid-header{display:contents}.calendar-day-header{padding:10px 6px;background:#f3f1ee;border-bottom:1px solid #ddd;border-left:1px solid #eee;text-align:center}.calendar-day-header .day-name{font-size:12px;color:#6b6b6b;text-transform:uppercase}.calendar-day-header .day-num{font-size:18px;font-weight:600}.calendar-day-header.today .day-num{color:#db9452}.calendar-day-header button{width:auto;padding:2px 8px;font-size:12px;margin-top:4px}.calendar-hours-col{position:relative;border-right:1px solid #eee}.calendar-hour-label{position:absolute;right:6px;transform:translateY(-50%);font-size:11px;color:#999}.calendar-day-col{position:relative;border-left:1px solid #eee;background-image:repeating-linear-gradient(180deg,#f0f0f0 0,#f0f0f0 1px,transparent 0,transparent 40px);cursor:pointer}.calendar-shift-block{position:absolute;left:2px;right:2px;border-radius:6px;padding:3px 6px;font-size:11px;line-height:1.3;color:#fff;background:var(--accent);overflow:hidden;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.15);transition:transform .12s ease,box-shadow .12s ease}.calendar-shift-block:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(31,24,14,.2)}.calendar-shift-block .name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-shift-block .time{opacity:.9}.modal-overlay{position:fixed;inset:0;background:rgba(31,24,14,.42);display:flex;align-items:center;justify-content:center;z-index:100;animation:overlay-in .18s ease-out}.modal-card{background:var(--surface);border-radius:12px;padding:24px;width:360px;max-height:80vh;overflow-y:auto;box-shadow:0 24px 48px -12px rgba(31,24,14,.35);animation:modal-in .22s var(--ease-out)}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-card h3{margin-top:0}.staff-picker-list{border:1px solid #ddd;border-radius:8px;max-height:160px;overflow-y:auto;margin-bottom:14px}.staff-picker-item{display:flex;align-items:center;padding:8px 10px;border-bottom:1px solid #eee;font-size:14px}.staff-picker-item:last-child{border-bottom:none}.modal-actions{display:flex;gap:8px}.modal-actions button{flex:1 1}.modal-actions .btn-secondary{background:transparent;color:var(--ink-muted);border:1px solid var(--border)}.modal-actions .btn-secondary:hover{background:var(--surface-hover);color:var(--ink)}.modal-actions .btn-danger{background:#fdecea;color:#c0392b}.modal-actions .btn-danger:hover{background:#fadbd8}.btn-danger{background:#fdecea;color:#c0392b}.btn-danger:hover{background:#fadbd8}