@import"https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;600;700;800;900&display=swap";:root{--primary-color: #007aff;--primary-hover: #0063cc;--bg-main: #fbfbfd;--bg-card: #ffffff;--text-main: #1d1d1f;--text-sub: #6e6e73;--border-color: #e5e7eb;--glass-bg: rgba(255, 255, 255, .82);--glass-border: rgba(255, 255, 255, .3);--radius-notion: 4px;--radius-apple: 12px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .04);--shadow-lg: 0 20px 40px rgba(0, 0, 0, .1);--transition: all .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box}body{margin:0;padding:0;font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-main);color:var(--text-main);-webkit-font-smoothing:antialiased;letter-spacing:0;font-feature-settings:"pnum" on,"lnum" on;font-variant-numeric:proportional-nums lining-nums}.board-container{padding:10px 20px;max-width:100%;margin:0 auto;animation:fadeIn .8s ease-out;overflow-x:auto}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.controls{display:flex;gap:12px;margin-bottom:20px;justify-content:center;flex-wrap:wrap}.action-btn{padding:10px 20px;border-radius:20px;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-main);font-family:Noto Sans KR,sans-serif;font-size:14px;font-weight:500;cursor:pointer;transition:var(--transition);display:flex;align-items:center;gap:8px;box-shadow:var(--shadow-sm)}.action-btn:hover{transform:scale(1.02);background:#f5f5f7;box-shadow:0 4px 12px #00000014}.action-btn:active{transform:scale(.98)}.common-grid-layout{display:grid;grid-template-columns:35px 35px 60px 65px 70px repeat(7,32px 38px 38px 38px 38px 35px 35px 24px) 60px 60px}.grid-board{display:flex;flex-direction:column;background:var(--bg-card);border-radius:var(--radius-apple);box-shadow:var(--shadow-lg);border:1px solid var(--border-color);min-width:2340px}.grid-header-group{display:grid;grid-template-columns:35px 35px 60px 65px 70px repeat(7,32px 38px 38px 38px 38px 35px 35px 24px) 60px 60px;background:#f1f3f5;position:sticky;top:0;z-index:200}.user-row{display:grid;grid-template-columns:35px 35px 60px 65px 70px repeat(7,32px 38px 38px 38px 38px 35px 35px 24px) 60px 60px;border-bottom:1px solid var(--border-color);background:#fff;transition:transform .2s,box-shadow .2s}.user-row:last-child{border-bottom:none}.grid-header{position:relative;background:#f1f3f5;border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);padding:4px 2px;font-weight:700;font-size:10px;font-family:Noto Sans KR,sans-serif;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;letter-spacing:0;word-break:keep-all}.grid-header:hover{background:#e9ecef}.grid-header.weekend{background:#fafafa}.grid-cell{border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);min-height:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transition:var(--transition);position:relative;font-family:Noto Sans KR,sans-serif;font-size:10px;letter-spacing:0;font-variant-numeric:tabular-nums}.grid-cell.day-separator,.grid-header.day-separator{border-right:1px solid #bbb!important}.grid-cell:not(.name-cell):hover{background:#f9f9fb}.grid-cell.name-cell,.grid-header.name-header{left:195px}.grid-cell.workday-cell,.grid-header.workday-header{position:sticky;left:0;z-index:100;background:#fff!important;border-right:1px solid var(--border-color)}.grid-header.workday-header{z-index:205;background:#f1f3f5!important}.grid-cell.offday-cell,.grid-header.offday-header{position:sticky;left:35px;z-index:100;background:#fff!important;border-right:1px solid var(--border-color)}.grid-header.offday-header{z-index:205;background:#f1f3f5!important}.grid-cell.dept-cell,.grid-header.dept-cell{position:sticky;left:70px;z-index:100;background:#fff!important;border-right:1px solid var(--border-color)}.grid-header.dept-cell{z-index:205;background:#f1f3f5!important}.grid-cell.empid-cell,.grid-header.empid-header{position:sticky;left:130px;z-index:100;background:#fff!important;border-right:1px solid var(--border-color)}.grid-header.empid-header{z-index:205;background:#f1f3f5!important}.grid-cell.name-cell{font-weight:700;position:sticky;left:195px;background:#fff!important;z-index:100;border-right:1px solid var(--border-color)}.grid-header.name-header{position:sticky;left:195px;top:0;z-index:205;background:#f1f3f5!important;border-right:1px solid var(--border-color)}.shift-badge{padding:6px 4px;border-radius:8px;font-family:Noto Sans KR,sans-serif;font-size:11px;font-weight:700;width:90%;margin:2px 0;text-align:center;box-shadow:0 1px 2px #0000000d;letter-spacing:0}.shift-weekly-off{background:#fee2e2;color:#ef4444;border:1px solid #fca5a5}.shift-off{background:#f1f5f9;color:#64748b;border:1px solid #cbd5e1}.shift-extra-off{background:#fff7ed;color:#f97316;border:1px solid #fdba74}.shift-annual-leave{background:#f5f3ff;color:#8b5cf6;border:1px solid #c4b5fd}.shift-normal{background:transparent!important;color:#111!important;border:none!important;box-shadow:none!important}.modal-overlay{position:fixed;inset:0;background:#0003;-webkit-backdrop-filter:blur(15px) saturate(180%);backdrop-filter:blur(15px) saturate(180%);display:flex;align-items:center;justify-content:center;z-index:3000;animation:modalEnter .3s cubic-bezier(.16,1,.3,1)}.modal-content{background:var(--glass-bg);border:1px solid var(--glass-border);padding:32px;border-radius:24px;width:100%;max-width:420px;box-shadow:0 30px 60px #0000001f;text-align:center;font-family:Noto Sans KR,sans-serif}@keyframes modalEnter{0%{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.selection-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.selection-btn{background:#ffffff80;border:1px solid rgba(0,0,0,.05);border-radius:12px;padding:16px 8px;cursor:pointer;transition:var(--transition);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}.selection-btn:hover{background:#fff;box-shadow:0 8px 16px #0000000f;transform:translateY(-2px)}.edit-actions{opacity:0;transform:scale(.8);transition:all .2s ease;pointer-events:auto}.selection-btn:hover .edit-actions{opacity:1;transform:scale(1)}.mini-icon-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0000001a;font-size:11px;border:1px solid rgba(0,0,0,.05);cursor:pointer;transition:var(--transition)}.mini-icon-btn:hover{transform:scale(1.15);background:#f5f5f7}input{width:100%;padding:12px 16px;border-radius:10px;border:1px solid rgba(0,0,0,.1);background:#fffc;font-family:Noto Sans KR,sans-serif;font-size:15px;transition:var(--transition);box-sizing:border-box}input:focus{outline:none;border-color:var(--primary-color);background:#fff;box-shadow:0 0 0 4px #007aff1a}.weekend-text-sun{color:#ef4444}.weekend-text-sat{color:#007aff}.nav-tabs{display:flex;justify-content:center;gap:8px;background:#0000000d;padding:4px;border-radius:12px;width:fit-content;margin:0 auto 1rem}.nav-item{padding:8px 24px;border-radius:9px;font-family:Noto Sans KR,sans-serif;font-size:14px;font-weight:600;color:var(--text-sub);cursor:pointer;transition:var(--transition)}.nav-item.active{background:#fff;color:var(--text-main);box-shadow:0 2px 8px #0000001a}.goal-container{padding:20px 10px;max-width:1000px;margin:0 auto;animation:fadeIn .8s ease-out}.goal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;background:var(--bg-card);padding:12px;border-radius:var(--radius-apple);box-shadow:var(--shadow-sm)}.calendar-card{background:var(--bg-card);border-radius:var(--radius-apple);box-shadow:var(--shadow-lg);padding:15px;border:1px solid var(--border-color)}.calendar-header-row{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:20px;text-align:center;font-weight:700;color:var(--text-sub);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.calendar-grid-static{display:grid;grid-template-columns:repeat(7,1fr);gap:12px}.calendar-day{aspect-ratio:1 / 1;background:#f8f9fa;border-radius:16px;padding:12px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid transparent;transition:var(--transition)}.calendar-day:not(.empty):hover{background:#fff;border-color:var(--primary-color);box-shadow:0 4px 12px #0000000d;transform:translateY(-2px)}.calendar-day.today{border-color:var(--primary-color);background:#f0f7ff}.day-number{font-weight:700;font-size:14px;color:var(--text-main)}.day-target-input{width:100%!important;padding:6px 8px!important;font-size:13px!important;text-align:center!important;border-radius:8px!important;margin-top:8px!important}.goal-summary{margin-top:30px;padding:20px;border-radius:var(--radius-apple);display:flex;justify-content:space-around;align-items:center;font-weight:700}.summary-item{text-align:center}.summary-label{display:block;font-size:12px;color:var(--text-sub);margin-bottom:4px}.summary-value{font-size:20px;color:var(--text-main)}.over-target{color:#ef4444!important}.under-target{color:var(--primary-color)!important}.goal-layout{display:grid;grid-template-columns:1fr 300px;gap:24px;align-items:start}.goal-sidebar{background:var(--bg-card);border-radius:var(--radius-apple);box-shadow:var(--shadow-lg);padding:24px;border:1px solid var(--border-color);position:sticky;top:20px}.sidebar-title{font-size:16px;font-weight:700;margin-bottom:20px;display:flex;align-items:center;gap:8px}.draggable-shift-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.draggable-shift-item{padding:8px;background:#f8f9fa;border:1px solid var(--border-color);border-radius:12px;cursor:grab;transition:var(--transition);display:flex;flex-direction:column;gap:4px;position:relative}.draggable-shift-item:hover{background:#fff;border-color:var(--primary-color);box-shadow:var(--shadow-sm);transform:translate(4px)}.shift-info-row{display:flex;justify-content:space-between;align-items:center}.shift-worker{font-weight:700;font-size:13px}.shift-time{font-size:11px;color:var(--text-sub)}.shift-hours{font-size:12px;font-weight:800;color:var(--primary-color)}.calendar-day{min-height:100px;aspect-ratio:auto;background:#f8f9fa;border-radius:16px;padding:10px;display:flex;flex-direction:column;gap:6px;border:2px dashed transparent;transition:var(--transition)}.calendar-day.drag-over{border-color:var(--primary-color);background:#007aff0d}.dropped-shift-list{display:flex;flex-direction:column;gap:4px;margin-top:4px}.dropped-shift{background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:6px;padding:4px 8px;font-size:10px;display:flex;justify-content:space-between;align-items:center}.delete-shift-btn{border:none;background:transparent;color:#ef4444;cursor:pointer;padding:0 4px;font-size:14px;opacity:.5}.delete-shift-btn:hover{opacity:1}.add-shift-form{margin-top:20px;padding-top:20px;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:10px}.add-shift-form input{padding:8px 12px!important;font-size:13px!important}@media screen and (max-width:1024px){.goal-layout{grid-template-columns:1fr}.goal-sidebar{position:static;margin-top:20px}}@media screen and (max-width:768px){.nav-tabs{flex-wrap:wrap;justify-content:center;width:100%;padding:8px}.nav-item{font-size:13px;padding:8px 16px;flex:1 1 auto;text-align:center;white-space:nowrap}.management-header{flex-direction:column;align-items:flex-start!important;gap:12px}.management-header>div:last-child{flex-wrap:wrap;width:100%}.add-shift-form{grid-template-columns:1fr 1fr!important}.add-shift-form button.action-btn{grid-column:span 2;justify-content:center}.board-container,.work-request-matrix-container{padding:10px 5px!important;width:100%}.grid-board,.schedule-table-wrapper{overflow-x:auto;width:100%}table{display:block;overflow-x:auto;white-space:nowrap}header h1{font-size:1.4rem!important}header>div{flex-direction:column;gap:10px}header>div>button{position:static!important;width:auto}}@media screen and (max-width:480px){.nav-item{font-size:12px;padding:6px 12px;width:calc(50% - 10px)}.add-shift-form{grid-template-columns:1fr!important}.add-shift-form button.action-btn{grid-column:span 1}}
