/* 에스원 업무 캘린더: 기존 파랑, 흰색 날짜면, 오늘/선택/업무 상태만 강조. */
.cal-workspace { height:100%; min-height:0; display:flex; flex-direction:column; background:#fff; color:#20334c; }
.cal-top { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 24px 14px; }
.cal-heading h1 { font-size:22px; margin:0; letter-spacing:-.6px; }
.cal-heading h1 span { font-size:14px; color:#64778e; font-weight:400; margin-left:8px; }
.cal-heading p { margin:7px 0 0; color:#64778e; font-size:12px; }
.cal-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.cal-toolbar { padding:10px 24px 16px; display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.cal-navigation { display:flex; gap:6px; align-items:center; }
.cal-navigation h2 { margin:0 12px; font-size:20px; letter-spacing:-.6px; }
.cal-navigation > .btn { min-width:32px; }
.cal-view-switch { display:flex; border:1px solid #cbd7e6; border-radius:6px; overflow:hidden; }
.cal-view-switch button { border:0; border-right:1px solid #d7e0eb; background:#fff; padding:9px 16px; cursor:pointer; color:#4d617b; font-size:13px; }
.cal-view-switch button:last-child { border-right:0; }
.cal-view-switch .active { background:#00479d; color:#fff; font-weight:700; }
.cal-options { display:flex; gap:16px; align-items:center; padding:0 24px 14px; color:#63758b; font-size:11px; flex-wrap:wrap; }
.cal-options label { display:flex; gap:6px; align-items:center; }
.cal-options > span { margin-left:auto; }
.cal-options input[type=date] { height:28px; padding:2px 6px; font-size:12px; }
.cal-canvas { min-height:0; flex:1; overflow:auto; border-top:1px solid #d7e0eb; }
.cal-with-detail { display:grid; grid-template-columns:minmax(0,1fr) 262px; min-height:100%; align-items:start; }
.cal-detail { padding:20px 16px; background:#f7f9fc; align-self:stretch; border-left:1px solid #d7e0eb; }
.cal-detail header { display:flex; align-items:center; justify-content:space-between; gap:8px; padding-bottom:14px; border-bottom:1px solid #d7e0eb; }
.cal-detail small { color:#64778e; font-size:11px; }
.cal-detail h2 { font-size:18px; margin:7px 0 0; }
.cal-detail h2 span { display:block; font-size:12px; font-weight:400; margin-top:4px; }
.cal-day-items { min-width:0; }
.cal-day-items h4 { margin:20px 0 10px; font-size:12px; color:#546b87; }
.cal-day-items h4 span { font-size:10px; font-weight:400; }
.cal-day-items > .cal-event { margin-top:10px; }
.cal-empty { padding:14px 0; color:#8090a4; font-size:12px; line-height:1.6; }
.cal-open-day { width:100%; margin-top:20px; }
.cal-event { text-align:left; display:flex; flex-direction:column; width:100%; min-width:0; overflow:hidden; border:1px solid #c8dcf3; border-left:3px solid #1764b4; background:#edf4fd; border-radius:4px; padding:8px 9px; cursor:pointer; color:#254974; gap:3px; font-size:11px; }
.cal-event strong { font-size:12px; line-height:1.4; overflow-wrap:anywhere; }
.cal-event-time { font-size:10px; color:#486d95; }
.cal-event.status-DONE { background:#eef8f3; border-color:#c8e2d5; border-left-color:#338665; color:#216a4e; }
.cal-event.status-HOLD { background:#fff6e5; border-color:#eedcb8; border-left-color:#b07d27; color:#845e1e; }
.cal-event.status-DROP { opacity:.6; text-decoration:line-through; }
.cal-event.weekly-event { background:#f2f0fa; border-color:#d8d0eb; border-left-color:#8872ac; color:#655180; }
.cal-event.compact { padding:4px 6px; gap:1px; }
.cal-event.compact strong { font-size:11px; }
.cal-month-grid { display:grid; grid-template-columns:34px repeat(7,minmax(0,1fr)); border-bottom:1px solid #d7e0eb; }
.cal-month-dow,.cal-month-week-label { text-align:center; padding:12px 0; border-bottom:1px solid #d7e0eb; color:#667990; font-size:11px; background:#f9fbfd; }
.cal-month-dow.weekend { color:#a96761; }
.cal-month-cell { min-height:120px; border-right:1px solid #e4eaf2; border-bottom:1px solid #e4eaf2; display:flex; flex-direction:column; min-width:0; background:#fff; }
.cal-month-cell.outside { background:#f7f9fc; }
.cal-month-cell.selected { background:#edf4ff; box-shadow:inset 0 0 0 2px #7fa8da; }
.cal-cell-date { display:flex; align-items:center; gap:5px; border:0; background:transparent; text-align:left; padding:7px; width:100%; cursor:pointer; min-height:35px; }
.cal-cell-date b { font-size:12px; width:24px; height:24px; display:grid; place-items:center; border-radius:50%; font-weight:500; }
.cal-cell-date span { font-size:10px; color:#00479d; }
.cal-month-cell.today .cal-cell-date b { color:white; background:#00479d; font-weight:700; }
.cal-month-cell.outside .cal-cell-date b { color:#a7b3c1; }
.cal-month-cell.holiday .cal-cell-date b,.cal-month-cell.sunday .cal-cell-date b { color:#b42318; }
.cal-month-cell.outside.holiday .cal-cell-date b,.cal-month-cell.outside.sunday .cal-cell-date b { color:#ad6d68; }
.cal-month-cell.today .cal-cell-date b { color:#fff; }
.cal-holiday-name { border:0; background:transparent; color:#b42318; text-align:left; font:inherit; font-size:10px; line-height:1.4; padding:0 7px 5px; width:100%; overflow-wrap:anywhere; cursor:pointer; }
.cal-month-cell.outside .cal-holiday-name { color:#ad6d68; }
.cal-detail-holiday { font-size:12px; color:#b42318; margin:7px 0 0; }
.cal-holiday-note { grid-column:1 / -1; color:#667990; font-size:11px; margin:10px 14px; }
.cal-month-events { padding:0 3px; }
.cal-month-events .cal-event { margin-bottom:3px; display:block; padding:3px 4px; border-left-width:2px; }
.cal-month-events .cal-event strong { font-size:10px; display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-month-events .cal-event-time { font-size:9px; }
.cal-cell-bottom { border:0; background:transparent; flex:1; min-height:18px; width:100%; cursor:pointer; }
.cal-week-number { border:0; border-bottom:1px solid #e4eaf2; border-right:1px solid #e4eaf2; background:#f9fbfd; color:#768ba5; display:flex; align-items:center; justify-content:center; flex-direction:column; font-size:12px; cursor:pointer; }
.cal-week-number small { font-size:9px; }
.cal-more { width:100%; text-align:left; border:0; background:transparent; color:#00479d; font-size:10px; padding:4px; cursor:pointer; }
.cal-year-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px 22px; padding:24px; }
.cal-mini-weekdays,.cal-mini-row { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); text-align:center; }
.cal-mini-weekdays { font-size:10px; color:#8090a4; margin-bottom:5px; }
.cal-mini-weekdays span { padding:5px 0; }
.cal-mini-day { min-width:0; width:100%; height:28px; background:transparent; border:1px solid transparent; border-radius:4px; font-size:11px; color:#475a73; cursor:pointer; padding:0; position:relative; }
.cal-mini-day.outside { color:#c1cad5; }
.cal-mini-day.today { background:#00479d; color:#fff; font-weight:700; }
.cal-mini-day.selected { border-color:#00479d; }
.cal-mini-day.has-events:after { content:''; position:absolute; bottom:2px; left:calc(50% - 1.5px); width:3px; height:3px; border-radius:50%; background:currentColor; }
.cal-mini-title { display:block; font-size:16px; font-weight:700; background:transparent; border:0; padding:0 0 12px; color:#20334c; cursor:pointer; }
.cal-mini-head { display:flex; justify-content:space-between; align-items:center; }
.workspace-shell .nav .cal-mini-head button { padding:0; min-width:24px; height:28px; font-size:18px; }
.cal-nav-tools { border-top:1px solid #4978b2; margin:16px 4px 0; padding-top:16px; }
.workspace-shell .nav .cal-register { background:white; color:#00479d; border:0; border-radius:5px; padding:10px 8px; width:100%; font-size:13px; margin-bottom:16px; }
.cal-nav-tools .cal-mini-head { color:#fff; font-size:11px; margin-bottom:8px; }
.cal-nav-tools .cal-mini-weekdays { color:#9ebfe8; }
.workspace-shell .nav .cal-mini-day { height:25px; font-size:10px; padding:0; border:1px solid transparent; color:#dbe8f9; }
.workspace-shell .nav .cal-mini-day.outside { color:#7397c8; }
.workspace-shell .nav .cal-mini-day.selected { border-color:#99c5ff; }
.workspace-shell .nav .cal-mini-day.today { background:#fff; color:#00479d; }
.workspace-shell .nav .cal-mini-today { display:block; font-size:11px; height:30px; padding:4px; margin:7px auto 0; }
.cal-time-scroll { height:100%; overflow:auto; }
.cal-time-head,.cal-untimed,.cal-time-body { display:grid; grid-template-columns:54px repeat(var(--day-count),minmax(0,1fr)); }
.cal-time-head { position:sticky; top:0; z-index:4; background:#fff; border-bottom:1px solid #d7e0eb; }
.cal-timezone { font-size:10px; text-align:center; padding-top:30px; color:#7c8da3; }
.cal-time-head button { padding:10px; border:0; border-right:1px solid #e5eaf2; background:transparent; display:flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; }
.cal-time-head small { font-size:12px; }
.cal-time-head b { font-size:20px; width:34px; height:34px; display:grid; place-items:center; border-radius:50%; }
.cal-time-head .today b { background:#00479d; color:white; }
.cal-time-head em { font-size:10px; color:#00479d; font-style:normal; }
.cal-untimed { border-bottom:1px solid #d7e0eb; }
.cal-untimed > span { color:#788aa1; font-size:10px; text-align:center; padding:12px 0; }
.cal-untimed > div { min-width:0; padding:5px; border-right:1px solid #e5eaf2; }
.cal-untimed .cal-event { margin-bottom:4px; }
.cal-none { color:#b9c4d2; }
.cal-hour-labels { background:#fff; }
.cal-hour-labels span { display:block; height:64px; text-align:center; padding-top:3px; font-size:10px; color:#8090a4; }
.cal-day-column { height:1536px; position:relative; border-right:1px solid #e4eaf2; }
.cal-day-column.today { background:#fbfdff; }
.cal-hour-slot { width:100%; height:64px; display:block; border:0; border-bottom:1px solid #e7ecf4; background:transparent; cursor:pointer; }
.cal-hour-slot:hover { background:#edf4ff; }
.cal-day-column > .cal-event { position:absolute; z-index:2; min-height:24px; }
.cal-day-column > .cal-event .cal-event-time { white-space:nowrap; }
.cal-now { position:absolute; left:0; right:0; height:1px; background:#d95653; z-index:3; pointer-events:none; }
.cal-now:before { content:''; position:absolute; left:-3px; top:-3px; background:#d95653; width:7px; height:7px; border-radius:50%; }
.cal-week-spans { display:flex; gap:12px; padding:10px 14px; border-bottom:1px solid #d7e0eb; background:#faf9fd; }
.cal-week-spans > span { width:70px; flex-shrink:0; font-size:11px; color:#7c6996; }
.cal-week-spans small { display:block; font-size:9px; margin-top:4px; }
.cal-week-spans > div { display:flex; flex-wrap:wrap; gap:6px; }
.cal-week-spans .cal-event { width:auto; max-width:260px; }
.cal-view-day,.cal-view-week { display:flex; flex-direction:column; overflow:hidden; }
.cal-view-day .cal-time-scroll,.cal-view-week .cal-time-scroll { flex:1; min-height:0; }
.cal-agenda-day { display:grid; grid-template-columns:72px minmax(0,1fr); border-bottom:1px solid #e1e8f1; padding:15px 20px; gap:16px; }
.cal-agenda-day > button { align-self:start; display:flex; flex-direction:column; align-items:center; gap:4px; border:0; background:transparent; padding:10px; cursor:pointer; color:#61758e; }
.cal-agenda-day > button b { font-size:24px; color:#20334c; }
.cal-agenda-day > button span { font-size:11px; }
.cal-agenda-day.today > button { color:#00479d; background:#edf4ff; border-radius:6px; }
.cal-agenda-day.today b { color:#00479d; }
.cal-agenda-day em { font-size:10px; font-style:normal; }
.cal-agenda-day.selected { background:#f5f9ff; }
.cal-return { display:flex; gap:15px; align-items:center; padding:10px 18px; background:#fff; border-bottom:1px solid #d7e0eb; }
.worklog-time { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.worklog-time label { display:flex; gap:5px; align-items:center; }
.worklog-time small { color:#77889c; width:100%; }
.cal-workspace :focus-visible,.cal-nav-tools :focus-visible { outline:2px solid #2c83d1; outline-offset:2px; }
@media (min-width:1600px) { .cal-year-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:1279px) { .cal-with-detail { grid-template-columns:minmax(0,1fr); } .cal-detail { border-left:0; border-top:1px solid #d7e0eb; } .cal-year-grid { gap:20px; } }
@media (max-width:1023px) {
  .cal-workspace { height:auto; min-height:calc(100dvh - 125px); }
  .cal-top { padding:18px 12px 10px; display:block; }
  .cal-heading h1 { font-size:20px; }
  .cal-heading p { display:none; }
  .cal-actions { margin-top:12px; gap:5px; }
  .cal-actions .btn { font-size:11px; padding:0 9px; min-height:38px; }
  .cal-toolbar { padding:8px 12px 12px; gap:14px; }
  .cal-navigation { width:100%; gap:5px; }
  .cal-navigation h2 { font-size:17px; flex:1; margin:0 5px; }
  .cal-view-switch { width:100%; }
  .cal-view-switch button { flex:1; padding:10px 0; }
  .cal-options { padding:0 12px 12px; gap:10px; }
  .cal-options > span { width:100%; margin:0; font-size:10px; }
  .cal-date-control input[type=date] { font-size:16px; }
  .cal-canvas { overflow:visible; }
  .cal-view-week,.cal-view-day { display:block; }
  .cal-time-scroll { height:calc(100dvh - 355px); min-height:350px; }
  .cal-time-scroll.seven-days .cal-time-inner { min-width:720px; }
  .cal-month-grid { grid-template-columns:24px repeat(7,minmax(0,1fr)); }
  .cal-month-cell { min-height:98px; }
  .cal-cell-date { padding:5px 2px; justify-content:center; }
  .cal-cell-date span { display:none; }
  .cal-cell-date b { width:24px; height:24px; }
  .cal-holiday-name { font-size:9px; padding:0 2px 5px; text-align:center; }
  .cal-month-events { padding:0 1px; }
  .cal-month-events .cal-event { padding:3px 2px; }
  .cal-month-events .cal-event-time { display:none; }
  .cal-month-events .cal-event strong { font-size:9px; }
  .cal-week-number { font-size:10px; padding:0; }
  .cal-week-number small { font-size:8px; }
  .cal-year-grid { padding:18px 12px; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px 12px; }
  .cal-mini-day { height:30px; }
  .cal-detail { padding:18px 14px; }
  .cal-agenda-day { padding:14px 12px; gap:10px; grid-template-columns:52px minmax(0,1fr); }
  .cal-nav-tools { max-width:300px; margin:20px auto 0; }
  .workspace-shell .nav .cal-mini-day { height:36px; font-size:12px; }
  .cal-week-spans { padding:10px; }
}
@media (max-width:540px) { .cal-year-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media print { .cal-top,.cal-toolbar,.cal-options,.cal-nav-tools { display:none; } .cal-canvas,.cal-time-scroll { overflow:visible; height:auto; } }

.cal-untimed { position:sticky; top:54px; z-index:3; background:#fff; }
.cal-untimed > div { max-height:116px; overflow:auto; }

@media (max-width:1023px) { .cal-detail { scroll-margin-top:64px; } }

.cal-team-toggle { display:inline-flex;align-items:center;gap:9px;font-weight:700;cursor:pointer; }
.cal-team-toggle input { position:absolute;opacity:0;width:1px;height:1px; }
.cal-team-switch { position:relative;width:38px;height:22px;flex:none;border-radius:20px;background:#b4becd;transition:background .2s; }
.cal-team-switch::after { content:'';position:absolute;top:3px;left:3px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .2s; }
.cal-team-toggle input:checked + .cal-team-switch { background:#0b57a4; }
.cal-team-toggle input:checked + .cal-team-switch::after { transform:translateX(16px); }
.cal-team-toggle input:focus-visible + .cal-team-switch { outline:3px solid #668fff;outline-offset:3px; }
.cal-options .cal-team-state { margin-left:0;font-size:11px;color:#61728d; }
.cal-event-owner { display:block;font-size:10px;font-weight:600; }
.category-create { display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:12px; }
.category-create label { flex:1;min-width:180px;display:grid;gap:6px; }
.category-list > div { display:flex;align-items:center;gap:12px;justify-content:space-between;border-bottom:1px solid #e3e9f0;padding:10px 0; }
.category-picker { display:grid;gap:8px;margin-top:20px; }
#category-error,#report-category-error { color:#b42318; }
@media (prefers-reduced-motion:reduce) { .cal-team-switch,.cal-team-switch::after { transition:none; } }

.cal-event[draggable="true"] { position:relative; padding-right:23px; cursor:grab; }
.cal-drag-handle { position:absolute; right:2px; top:2px; padding:3px 5px; color:#42699a; font-size:15px; line-height:1; cursor:grab; touch-action:none; user-select:none; }
.cal-dragging { opacity:.5; outline:2px solid #1764b4; }
.cal-drop-target { box-shadow:inset 0 0 0 3px #1764b4; background-color:#e4f0ff !important; }
.cal-month-events .cal-event[draggable="true"] { padding-right:18px; }
.cal-month-events .cal-drag-handle { padding:2px 3px; font-size:13px; }

.cal-day-column > .cal-event[draggable="true"] { position:absolute; }
