:root{color-scheme:light;font-family:system-ui,Apple SD Gothic Neo,Noto Sans KR,sans-serif}body{margin:0;background:#f3f1ea;color:#1c1c1c}main{box-sizing:border-box;width:min(100%,32rem);min-height:100vh;margin:0 auto;padding:28px 16px 48px}.brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.logo{width:132px;height:auto;flex:none;border-radius:8px}.company{margin:0;font-size:.98rem;font-weight:700;letter-spacing:.02em}h1{margin:2px 0 0;font-size:1.45rem;font-weight:700}h2{margin:28px 0 12px;font-size:1.15rem}form,.stack,.admin,section[data-step]{display:flex;flex-direction:column;gap:12px}label{display:flex;flex-direction:column;gap:6px;font-size:.95rem}input[type=tel],input[type=text],input[type=number],input[type=date],input[type=email],select,input:not([type]){font:inherit;font-size:1.15rem;padding:12px 14px;border:1px solid #c9c6bc;border-radius:12px;background:#fff}button{font:inherit;font-size:1rem;padding:12px 14px;border:0;border-radius:12px;background:#1c2f6e;color:#fff}button.secondary{background:#fff;color:#1c2f6e;border:1px solid #1c2f6e}button.on-leave{background:#8a5a12}button:disabled{opacity:.5}.hint,.muted{margin:0;color:#4d4d4d;font-size:.92rem}.alert{margin:0;color:#8d2a2a}.welcome{margin:0;font-size:1.35rem;font-weight:700}.home,.today-board,.today,.calendar,.settings,.leave-form,.inbox,.confirm,.stats{display:flex;flex-direction:column;gap:12px;min-width:0;max-width:100%}.today,.day{background:#fff;border-radius:12px}.today{padding:16px}.today-date,.today-project,.day-check{margin:0}.today-date{color:#4d4d4d}.today-project{font-size:1.25rem;font-weight:700}.calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}.calendar-nav h2{margin:0;font-size:1.05rem}.calendar-nav button{padding:8px 10px}.weekdays,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.weekdays span,.day{text-align:center}.weekdays span{font-size:.75rem;color:#5c5c5c}.weekdays span:nth-child(1){color:#8d2a2a}.weekdays span:nth-child(7){color:#1c2f6e}.day{min-height:3.5rem;padding:4px 1px 6px;font-size:.8rem}.day.pad{background:transparent}.day-num,.day-holiday,.day-check{display:block;line-height:1.2}.day-holiday,.day-check{font-size:.62rem;word-break:keep-all}.day[data-weekend=sat]{color:#1c2f6e}.day[data-weekend=sun],.day[data-holiday=true]{color:#8d2a2a}.day[data-today=true]{outline:2px solid #1c2f6e}.day[data-leave=true]{background:#f8efd8}.day[data-attendance=true]{background:#e5f2e8}.day-leave{color:#8a5a12}.day-check{color:#1e6b3a}.confirm{padding:12px;background:#fff;border-radius:12px}.confirm p{margin:0;font-weight:700}.notices,.employees,.roster{list-style:none;margin:0;padding:0}.notices li{display:flex;flex-direction:column;gap:6px;padding:12px 0;border-bottom:1px solid #e2dfd4}.notice-kind{margin:0;font-weight:700}.notices p{margin:0}.employees li,.roster li{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #e2dfd4}.roster li{flex-direction:column;align-items:flex-start}.roster li p{margin:0}.row-actions{display:flex;flex-wrap:wrap;gap:8px}label.check{flex-direction:row;align-items:center}.admin-nav{display:flex;flex-wrap:wrap;gap:8px}.admin-nav button{background:#fff;color:#1c2f6e;border:1px solid #1c2f6e;padding:8px 10px}.admin-nav button[aria-current=page]{background:#1c2f6e;color:#fff}.employees label{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}.status{margin:28px 0 0;font-size:.85rem;color:#5c5c5c}.status[data-health=ok]{color:#1e6b3a}.status[data-health=down]{color:#8d2a2a}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;background:#fff}th,td{border:1px solid #d9d6cc;padding:8px 6px;text-align:left;word-break:keep-all}.cell-label{color:#4d4d4d;font-size:.85rem}.record-table button.link{width:auto;padding:0;background:transparent;color:#1c2f6e;font-weight:700;text-align:left;text-decoration:underline;text-underline-offset:3px}.record-table tr[data-status=미출근] td:nth-child(3),.record-table tr[data-status=퇴사] td:nth-child(3){color:#8d2a2a;font-weight:700}.record-table tr[data-status=출근] td:nth-child(3),.record-table tr[data-status=주말출근] td:nth-child(3),.record-table tr[data-status=공휴일출근] td:nth-child(3){color:#1e6b3a;font-weight:700}.day-table{table-layout:fixed;width:100%;max-width:100%;font-size:.75rem}.day-table .day-col{width:26%}.day-table .status-col{width:30%}.day-table .time-col{width:16%}.day-table .project-col{width:28%}.day-table th,.day-table td{padding:6px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-table th{font-weight:700;color:#4d4d4d}.day-table td.status[data-kind=미출근],.day-table td.status[data-kind=퇴사]{color:#8d2a2a;font-weight:700}.day-table td.status[data-kind=출근],.day-table td.status[data-kind=주말출근],.day-table td.status[data-kind=공휴일출근]{color:#1e6b3a;font-weight:700}@media screen{.print-sheet table,.print-sheet tbody,.print-sheet tr,.record-table,.record-table tbody,.record-table tr{display:block;width:100%}.print-sheet thead,.record-table thead{display:none}.print-sheet tr,.record-table tr{margin:0 0 12px;border:1px solid #d9d6cc;background:#fff}.print-sheet td,.record-table td{display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;border-bottom:1px solid #eee}}@media print{.print-sheet table{display:table}.print-sheet thead{display:table-header-group}.print-sheet tbody{display:table-row-group}.print-sheet tr{display:table-row}.print-sheet td,.print-sheet th{display:table-cell}.cell-label{display:none}}td[data-code]{font-family:ui-monospace,monospace;font-size:1.15rem;letter-spacing:.08em}.print-sheet{display:flex;flex-direction:column;gap:12px}@media print{body{background:#fff}.no-print{display:none!important}main{width:auto;min-height:0}}
