:root{--black: #000000;--ink: #0a0a0a;--ink-soft: #5c5c5c;--line: rgba(0, 0, 0, .12);--line-strong: rgba(0, 0, 0, .22);--white: #ffffff;--surface: #ffffff;--surface-muted: #f4f4f4;--surface-dark: #111111;--warn: #c45c26;--warn-soft: #fde8d8;--warn-deep: #9a4118;--danger: #a33b2b;--danger-soft: #fde8e4;--shadow: 0 18px 48px rgba(0, 0, 0, .18);--shadow-soft: 0 8px 24px rgba(0, 0, 0, .08);--radius: 18px;--radius-sm: 12px;--font-sans: "Manrope", system-ui, sans-serif;--font-display: "Manrope", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-sans);color:var(--ink);background:var(--surface-muted)}button,input,textarea{font:inherit}a{color:inherit;text-decoration:none}.boot{min-height:100vh;display:grid;place-items:center;background:var(--black);color:var(--white)}.login-page{min-height:100vh;display:grid;place-items:center;padding:2rem;background:var(--black)}.login-panel{width:min(440px,100%);padding:2.4rem 2rem 2.2rem;border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow);animation:rise .5s ease both}.login-logo{display:block;width:132px;height:auto;margin:0 auto 1.4rem;border-radius:10px}.brand-mark{display:none}.login-panel h1,.page-title{font-family:var(--font-display);font-weight:700;letter-spacing:-.03em;line-height:1.15;margin:0 0 .55rem;text-align:center}.login-panel h1{font-size:clamp(1.55rem,3.5vw,1.85rem)}.lede,.login-hint,.muted,.empty{color:var(--ink-soft)}.lede{margin:0 0 1.5rem;line-height:1.55;text-align:center}.muted.light{color:#ffffffa6}.login-form,.entry-form,.employee-form,.absence-form{display:grid;gap:.95rem}label{display:grid;gap:.4rem;font-size:.9rem;font-weight:600;color:var(--ink-soft)}input,textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.75rem .9rem;background:var(--white);color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}input:focus,textarea:focus{outline:none;border-color:var(--black);box-shadow:0 0 0 3px #00000014}.form-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.form-row.two,.employee-form .form-row{grid-template-columns:repeat(2,minmax(0,1fr))}.form-actions{display:flex;justify-content:flex-end;gap:.6rem;flex-wrap:wrap}.form-error,.banner-error{color:var(--danger);margin:0;font-weight:600}.banner-error{background:var(--danger-soft);border:1px solid color-mix(in srgb,var(--danger) 25%,white);border-radius:var(--radius-sm);padding:.75rem 1rem;margin-bottom:1rem}.form-success{color:var(--ink);margin:0 0 1rem;font-weight:600}.login-hint{margin:1.25rem 0 0;font-size:.82rem;text-align:center}.btn{border:none;border-radius:999px;padding:.72rem 1.2rem;cursor:pointer;font-weight:700;letter-spacing:.01em;transition:transform .15s ease,background .15s ease,color .15s ease}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary,.btn.secondary{background:var(--black);color:var(--white)}.btn.primary:hover:not(:disabled),.btn.secondary:hover:not(:disabled){background:#222}.btn.warn{background:linear-gradient(135deg,#e08745,var(--warn));color:#fff8f2}.btn.warn:hover:not(:disabled){background:var(--warn-deep)}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line-strong)}.btn.ghost.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,white);background:var(--danger-soft)}.btn.small{padding:.42rem .8rem;font-size:.85rem}.btn.icon{width:2.2rem;height:2.2rem;padding:0;border-radius:10px;background:var(--surface-muted);color:var(--ink);font-size:1.25rem;line-height:1}.shell{min-height:100vh;color:var(--ink);background:radial-gradient(720px 280px at 0% 0%,rgba(0,0,0,.05),transparent 60%),var(--surface-muted)}.header-frame{position:sticky;top:0;z-index:20;padding:.9rem clamp(.75rem,3vw,1.5rem) 0;background:linear-gradient(180deg,#f4f4f4f5 40%,#f4f4f400);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.topbar{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1rem;padding:.7rem .75rem .7rem .7rem;background:var(--black);color:var(--white);border-radius:22px;box-shadow:0 16px 40px #00000038;animation:rise .45s ease both;max-width:1180px;margin:0 auto;position:relative;overflow:hidden}.topbar:before{content:"";position:absolute;inset:auto -10% -60% auto;width:220px;height:220px;border-radius:50%;background:#ffffff0f;pointer-events:none}.brand{display:inline-flex;align-items:center;gap:.85rem;color:var(--white);position:relative;z-index:1;padding-right:1rem;border-right:1px solid rgba(255,255,255,.12)}.brand-logo{width:48px;height:48px;border-radius:14px;display:block;object-fit:cover;box-shadow:0 0 0 1px #ffffff1f}.brand-copy{display:grid;gap:.12rem;line-height:1.05}.brand-kicker{font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;opacity:.55}.brand-copy strong{font-size:1rem;font-weight:750;letter-spacing:-.02em}.header-rail{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-width:0;position:relative;z-index:1}.nav{display:inline-flex;gap:.25rem;padding:.25rem;border-radius:999px;background:#ffffff0f;border:1px solid rgba(255,255,255,.08)}.nav a{color:#ffffffad;font-weight:650;padding:.5rem .95rem;border-radius:999px;transition:background .15s ease,color .15s ease,transform .15s ease}.nav a:hover{color:var(--white);background:#ffffff14}.nav a.active{color:var(--black);background:var(--white);box-shadow:0 6px 16px #00000040}.topbar-user{display:flex;align-items:center;gap:.7rem}.user-chip{display:flex;align-items:center;gap:.65rem;padding:.28rem .7rem .28rem .28rem;border-radius:999px;background:#ffffff12;border:1px solid rgba(255,255,255,.1)}.user-avatar{width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;background:var(--white);color:var(--black);font-size:.72rem;font-weight:800;letter-spacing:.02em}.user-meta{display:grid;line-height:1.15;padding-right:.2rem}.user-meta strong{font-size:.86rem;font-weight:700}.user-meta em{font-style:normal;color:#ffffff8c;font-size:.72rem;text-transform:capitalize}.topbar .btn.ghost.sign-out{color:var(--white);border-color:#ffffff38;background:transparent}.topbar .btn.ghost.sign-out:hover{background:#ffffff14}.main{width:min(1180px,calc(100% - 2rem));margin:0 auto;padding:1.15rem 0 3.5rem;animation:rise .45s ease both}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.page-title{text-align:left;font-size:clamp(1.7rem,3.5vw,2.25rem);margin:0}.page-head-mark{display:flex;gap:.35rem;align-items:flex-end;opacity:.9}.page-head-mark span{display:block;width:.55rem;border-radius:999px;background:var(--black)}.page-head-mark span:nth-child(1){height:1.55rem;transform:rotate(-28deg)}.page-head-mark span:nth-child(2){height:1.05rem;transform:rotate(-28deg)}.page-head-mark span:nth-child(3){height:.7rem;transform:rotate(-28deg)}.eyebrow{margin:0 0 .3rem;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.workspace{display:grid;gap:1rem}.panel,.panel-elevated{background:var(--surface);color:var(--ink);border-radius:var(--radius);padding:1.25rem 1.35rem;box-shadow:var(--shadow-soft);border:1px solid var(--line)}.panel h2,.panel-elevated h2,.panel-elevated h3{margin:0 0 .9rem;font-family:var(--font-display);font-weight:700}.panel-elevated h3{font-size:1.02rem}.pay-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.8rem}.stat{grid-column:span 2;background:var(--white);color:var(--ink);border-radius:var(--radius);padding:1.05rem 1.15rem;box-shadow:var(--shadow-soft);border:1px solid var(--line)}.stat.accent{background:var(--black);color:var(--white);border-color:var(--black)}.stat.accent .stat-label,.stat.accent .stat-hint{color:#ffffffa6}.stat.wide{grid-column:span 4}.stat-label{margin:0;color:var(--ink-soft);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.stat-value{margin:.4rem 0 0;font-family:var(--font-display);font-size:1.7rem;font-weight:700;letter-spacing:-.02em}.stat-hint{margin:.3rem 0 0;color:var(--ink-soft);font-size:.85rem}.segmented{display:inline-flex;padding:.25rem;gap:.2rem;background:var(--surface-muted);border-radius:999px;border:1px solid var(--line)}.segmented button{border:none;background:transparent;color:var(--ink-soft);padding:.45rem .95rem;border-radius:999px;cursor:pointer;font-weight:700;font-size:.88rem}.segmented button.active{background:var(--black);color:var(--white)}.calendar-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1.1rem}.calendar-nav{display:flex;align-items:center;gap:.55rem}.calendar-nav h2{margin:0;min-width:12rem;text-align:center;font-size:1.1rem}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem}.month-weekday{text-align:center;font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);padding:.25rem 0 .4rem}.month-cell{min-height:4.6rem;border:1px solid var(--line);border-radius:12px;background:var(--white);padding:.55rem .5rem;display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;cursor:pointer;text-align:left;color:var(--ink);transition:border-color .15s ease,background .15s ease}.month-cell.empty{background:transparent;border-color:transparent;cursor:default}.month-cell:not(.empty):hover{border-color:var(--black)}.month-cell.today{box-shadow:inset 0 0 0 1.5px var(--black)}.month-cell.selected{background:var(--black);color:var(--white);border-color:var(--black)}.month-cell.selected .day-hours{color:#fffc}.month-cell.has-absence:not(.selected){background:linear-gradient(180deg,#fff,var(--warn-soft))}.day-num{font-weight:700;font-size:.95rem}.day-dots{display:flex;gap:.25rem;min-height:.45rem}.dot{width:.45rem;height:.45rem;border-radius:50%;display:inline-block;background:var(--black)}.month-cell.selected .dot{background:var(--white)}.dot.away{background:var(--warn)}.month-cell.selected .dot.away{background:#ffb080}.day-hours{font-size:.72rem;color:var(--ink-soft);font-weight:700}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.55rem}.week-day{border:1px solid var(--line);border-radius:14px;background:var(--white);padding:.7rem;text-align:left;cursor:pointer;color:var(--ink);min-height:10rem;transition:border-color .15s ease,background .15s ease}.week-day:hover{border-color:var(--black)}.week-day.selected{background:var(--black);color:var(--white);border-color:var(--black)}.week-day.today:not(.selected){box-shadow:inset 0 0 0 1.5px var(--black)}.week-day header{display:flex;justify-content:space-between;gap:.35rem;margin-bottom:.55rem;font-size:.82rem}.week-day ul{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}.week-day li{font-size:.72rem;border-radius:8px;padding:.3rem .4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-work{background:var(--surface-muted);color:var(--ink)}.week-day.selected .chip-work,.week-day.selected .chip-away{background:#ffffff1f;color:var(--white)}.chip-away{background:var(--warn-soft);color:var(--warn)}.week-day.selected .chip-away{background:var(--warn);color:#fff8f2}.chip-empty{color:var(--ink-soft)}.week-day.selected .chip-empty{color:#ffffff8c}.day-banner{padding:.9rem 1rem;border-radius:12px;background:var(--surface-muted);border:1px solid var(--line)}.day-banner p{margin:0;color:var(--ink-soft);font-size:.85rem}.day-banner strong{font-size:1.1rem}.day-board-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap;margin-bottom:1rem}.day-board-header h2{margin:0}.day-board-meta{margin:.3rem 0 0;color:var(--ink-soft)}.day-board-actions{display:flex;gap:.5rem;flex-wrap:wrap}.inset-card{background:var(--surface-muted);border:1px solid var(--line);border-radius:14px;padding:1rem;margin-bottom:1rem;animation:rise .3s ease both}.inset-card.warn-card{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 30%,white)}.day-columns{display:grid;grid-template-columns:1.3fr 1fr;gap:1.25rem}.absence-list,.entry-list,.employee-picker,.salary-list{list-style:none;margin:0;padding:0}.entry-item,.absence-item{padding:.95rem 0;border-top:1px solid var(--line)}.entry-item:first-child{border-top:none;padding-top:0}.entry-meta,.absence-top{display:flex;flex-wrap:wrap;gap:.75rem;color:var(--ink-soft);font-size:.9rem;margin-bottom:.35rem;align-items:center}.entry-hours{margin-left:auto;font-weight:700;color:var(--ink)}.entry-desc{margin:0 0 .55rem;line-height:1.45}.entry-actions{display:flex;gap:.4rem}.absence-item{border-radius:12px;padding:.85rem .95rem;margin-bottom:.55rem;border:1px solid var(--line);background:var(--white);border-left:4px solid var(--warn)}.absence-item.reason-sick{border-left-color:var(--danger)}.absence-item.reason-away{border-left-color:var(--warn)}.absence-item.reason-other{border-left-color:#6b7280}.absence-item:first-child{margin-top:0}.absence-item p{margin:.35rem 0 .55rem;color:var(--ink-soft)}.reason-fieldset{border:none;margin:0;padding:0}.reason-fieldset legend{font-size:.9rem;font-weight:600;color:var(--ink-soft);margin-bottom:.45rem}.reason-options{display:flex;flex-wrap:wrap;gap:.45rem}.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .8rem;border-radius:999px;border:1px solid var(--line-strong);background:var(--white);cursor:pointer;font-size:.88rem;color:var(--ink-soft)}.chip input{width:auto;accent-color:var(--warn)}.chip.active{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 40%,white);color:var(--ink);font-weight:700}.manager-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:1rem;align-items:start}.employee-list-panel h2{margin-bottom:.85rem}.manager-detail{min-width:0}.detail-header{margin-bottom:.25rem}.detail-header h2{margin:0;font-size:1.6rem}.detail-header p{margin:.25rem 0 0;color:var(--ink-soft)}.picker-btn{width:100%;text-align:left;border:1px solid transparent;background:transparent;border-radius:12px;padding:.8rem .85rem;cursor:pointer;display:grid;gap:.15rem;color:var(--ink);transition:background .15s ease,border-color .15s ease}.picker-btn span{color:var(--ink-soft);font-size:.82rem}.picker-btn:hover,.picker-btn.active{background:var(--surface-muted);border-color:var(--line-strong)}.picker-btn.active{background:var(--black);color:var(--white);border-color:var(--black)}.picker-btn.active span{color:#ffffffa6}.salary-row{display:grid;grid-template-columns:1.4fr 1fr auto;gap:.8rem;align-items:end;padding:.9rem 0;border-top:1px solid var(--line)}.salary-row:first-child{border-top:none}.salary-row>div{display:grid;gap:.15rem}.salary-row span{color:var(--ink-soft);font-size:.85rem}.empty-state{text-align:center;padding:2.5rem 1.5rem}.empty-state h2{margin-top:0}.login-company{margin:0 0 .35rem;text-align:center;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media(max-width:980px){.week-grid,.manager-layout{grid-template-columns:1fr}}@media(max-width:860px){.pay-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat,.stat.wide{grid-column:span 2}.form-row,.form-row.two,.employee-form .form-row,.day-columns,.salary-row{grid-template-columns:1fr}.month-cell{min-height:3.4rem;padding:.4rem}.day-hours{display:none}.header-frame{padding-top:.65rem}.topbar{grid-template-columns:1fr;border-radius:18px;gap:.75rem}.brand{border-right:none;padding-right:0;width:100%}.header-rail{flex-direction:column;align-items:stretch}.nav{width:100%;justify-content:stretch}.nav a{flex:1;text-align:center}.topbar-user{width:100%;justify-content:space-between}.user-meta,.page-head-mark{display:none}.calendar-nav h2{min-width:0;font-size:1rem}}
