/* Scheduling workspace. All selectors are local to the three schedule pages. */
.sw-page {
  --sw-ink:#14243b; --sw-muted:#7b8ca4; --sw-line:#e1e9f1;
  --sw-teal:#078c83; --sw-teal-dark:#08756f; --sw-blue:#2d7eff;
  color:var(--sw-ink); max-width:1840px; margin:0 auto; padding:10px 0 28px;
  font-family:"Noto Sans KR","Apple SD Gothic Neo",sans-serif;
}
.sw-page *, .sw-dialog * { box-sizing:border-box; }
.sw-page svg { width:20px; height:20px; flex-shrink:0; vertical-align:middle; }
.sw-breadcrumb { display:flex; align-items:center; gap:10px; color:#8a99ad; font-size:12px; margin:2px 0 16px; }
.sw-breadcrumb svg { width:16px; height:16px; }
.sw-breadcrumb strong { color:#536881; font-weight:700; }
.sw-page-head { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 22px; }
.sw-page-head h1 { margin:0 0 8px; font-size:30px; line-height:1.2; letter-spacing:-1.2px; font-weight:850; }
.sw-page-head p { color:#7c8da5; margin:0; font-size:14px; line-height:1.6; }
.sw-page-head>div:last-child { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.sw-btn { display:inline-flex; justify-content:center; align-items:center; gap:8px; min-height:38px; padding:8px 14px; border:1px solid #ccdce9; border-radius:7px; background:#fff; color:#3e5570; font:inherit; font-size:12px; font-weight:750; line-height:1.4; cursor:pointer; white-space:nowrap; box-shadow:0 1px 2px #17394c04; }
.sw-btn:hover { border-color:#9bcac9; background:#f4fbfa; }
.sw-btn:disabled { opacity:.5; cursor:wait; }
.sw-btn svg { width:17px; height:17px; }
.sw-primary { color:white; border-color:var(--sw-teal); background:linear-gradient(110deg,#079b8e,#087d7d); box-shadow:0 3px 8px #078c8310; }
.sw-primary:hover { color:white; background:#08786f; }
.sw-outline { color:#168b87; border-color:#a9d9d7; background:#fff; }
.sw-text-btn { border-color:transparent; padding:5px 4px; box-shadow:none; color:#278e90; background:none; }
.sw-full { width:100%; margin-top:12px; }
.sw-danger { color:#cf4f46; border-color:#f0cfca; }
.sw-page button:focus-visible,.sw-page input:focus-visible,.sw-page select:focus-visible,.sw-page a:focus-visible { outline:3px solid #80cecc; outline-offset:2px; }
.sw-page input[type=checkbox] { width:17px; height:17px; accent-color:var(--sw-teal); flex:0 0 auto; cursor:pointer; }
.sw-page input[type=checkbox]:disabled { cursor:default; }
.sw-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; margin-bottom:18px; }
.sw-stats-three { grid-template-columns:1fr 1.15fr 1fr; }
.sw-stat { display:flex; align-items:center; gap:17px; width:100%; min-height:94px; padding:18px; border:1px solid var(--sw-line); border-radius:9px; color:inherit; background:#fff; text-align:left; box-shadow:0 2px 5px #24415504; cursor:pointer; }
.sw-stat.is-active { border-color:#69bfba; background:#f5fcfb; }
.sw-stat-icon { display:grid; place-items:center; width:50px; height:50px; border-radius:50%; background:#ecf4ff; color:#287dff; flex-shrink:0; }
.sw-stat-icon svg { width:27px; height:27px; }
.sw-stat-icon.overdue { color:#ef8d29; background:#fff7e7; }
.sw-stat-icon.collection { color:#159e78; background:#eafbf4; }
.sw-stat-icon.overlap { color:#eb5a62; background:#fff0f0; }
.sw-stat small { display:block; color:var(--sw-muted); font-weight:700; font-size:12px; line-height:1.5; }
.sw-stat strong { display:block; font-size:26px; line-height:1.3; margin-top:4px; letter-spacing:-.6px; white-space:nowrap; }
.sw-stat strong em { font-style:normal; font-size:.65em; margin-left:2px; }
.sw-stat>b { font-size:12px; color:#6c7f96; }
.sw-stat .sw-progress { flex:1; }
.sw-card { min-width:0; border:1px solid var(--sw-line); border-radius:9px; background:#fff; box-shadow:0 2px 5px #16374a03; }
.sw-card h2 { margin:0; font-size:16px; line-height:1.45; letter-spacing:-.4px; }
.sw-card h2 small { color:#8192a8; font-size:12px; font-weight:600; margin-left:6px; }
.sw-card p { line-height:1.6; }
.sw-card-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; }
.sw-card-head p { color:#8190a6; font-size:11px; margin:0; }
.sw-calendar-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(285px,27%); gap:15px; align-items:start; }
.sw-rail { display:grid; gap:14px; min-width:0; }
.sw-calendar { overflow:visible; }
.sw-calendar-controls { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:15px; min-width:0; }
.sw-period { display:flex; gap:8px; align-items:center; margin-right:auto; min-width:0; }
.sw-period>.sw-btn { padding:7px 12px; min-width:36px; }
.sw-period>.sw-btn:first-child,.sw-period>.sw-btn:nth-child(3) { font-size:23px; line-height:20px; }
.sw-period h2 { font-size:21px; margin:0 0 0 12px; letter-spacing:-.8px; white-space:nowrap; }
.sw-tabs { display:inline-flex; align-items:center; padding:2px; border:1px solid #e3ebf3; border-radius:7px; background:#fff; flex-shrink:0; }
.sw-tabs .sw-btn { padding:7px 14px; min-height:32px; border:0; box-shadow:none; color:#768aa2; background:transparent; font-size:12px; border-radius:5px; }
.sw-tabs .sw-btn.is-active { background:#078e85; color:white; box-shadow:0 1px 3px #057b7220; }
.sw-more { position:relative; }
.sw-more-menu { position:absolute; z-index:8; right:0; top:45px; min-width:215px; padding:6px; border:1px solid var(--sw-line); border-radius:9px; background:white; box-shadow:0 12px 35px #19385118; display:grid; }
.sw-more-menu>.sw-btn { border:0; justify-content:flex-start; box-shadow:none; }
.sw-filters { display:flex; flex-wrap:wrap; align-items:center; gap:9px; padding:10px 15px; border-top:1px solid #edf2f7; }
.sw-page select,.sw-search input { min-width:0; height:36px; border:1px solid #dbe5ee; border-radius:7px; background:#fff; color:#4b617c; padding:6px 10px; font:inherit; font-size:12px; }
.sw-filters>select { flex:1 1 135px; }
.sw-search { flex:2 1 230px; display:flex; align-items:center; border:1px solid #dbe5ee; border-radius:7px; padding:0 9px; background:white; }
.sw-search svg { width:17px; height:17px; color:#92a3b9; }
.sw-search input { width:100%; border:0; padding:6px 8px; background:transparent; }
.sw-search input::placeholder { color:#97a6b9; }
.sw-search:focus-within { outline:2px solid #81c9c4; }
.sw-search input:focus-visible { outline:none; }
.sw-legend { display:flex; flex-wrap:wrap; gap:10px; padding:5px 15px 14px; }
.sw-legend label { display:flex; gap:6px; align-items:center; border-radius:6px; padding:6px 9px; color:var(--sw-color); background:color-mix(in srgb,var(--sw-color) 11%,white); font-size:11px; font-weight:700; cursor:pointer; }
.sw-legend input[type=checkbox] { accent-color:var(--sw-color); width:15px; height:15px; margin:0; }
.sw-calendar-scroll { overflow:auto; border-radius:0 0 9px 9px; }
.sw-month { min-width:640px; }
.sw-week-head { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); background:#f7fafc; border-block:1px solid var(--sw-line); }
.sw-week-head>span { padding:10px 4px; text-align:center; color:#778aa4; font-size:11px; font-weight:800; border-right:1px solid #e9eff5; }
.sw-month-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.sw-month-cell { min-height:115px; padding:7px; border-right:1px solid #e7edf4; border-bottom:1px solid #e7edf4; cursor:pointer; }
.sw-month-cell:nth-child(7n) { border-right:0; background:#fcfdff; }
.sw-month-cell.is-outside { color:#acb7c8; background:#fafcfe; }
.sw-month-cell.is-today,.sw-month-cell.is-picked { background:linear-gradient(130deg,#f0fcf9,#fbfefe); }
.sw-month-cell.is-picked { box-shadow:inset 0 0 0 1px #a8ddd5; }
.sw-day-number { min-width:24px; height:24px; display:grid; place-items:center; color:inherit; border:0; border-radius:50%; background:none; font:inherit; font-size:11px; font-weight:800; padding:0; cursor:pointer; }
.sw-month-cell.is-today .sw-day-number { color:#fff; background:#098e83; }
.sw-cell-events { margin-top:4px; display:grid; gap:4px; }
.sw-event { display:flex; gap:6px; align-items:center; width:100%; min-width:0; padding:7px 8px; border:0; border-radius:6px; background:color-mix(in srgb,var(--sw-color) 13%,white); color:#2d4664; font:inherit; font-size:11px; font-weight:700; line-height:1.5; text-align:left; cursor:pointer; overflow:hidden; }
.sw-event:hover,.sw-event.is-selected { box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sw-color) 55%,white); }
.sw-event>span.notranslate { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sw-event svg { width:12px; height:12px; margin-left:auto; color:var(--sw-color); }
.sw-event-compact { padding:4px 5px; min-height:24px; font-size:10px; }
.sw-event.is-done { opacity:.62; }
.sw-dot { width:7px; height:7px; border-radius:50%; background:var(--sw-color); flex-shrink:0; }
.sw-more-events { min-height:22px; border:0; padding:0 3px; font-size:10px; color:#718ba5; justify-content:flex-start; box-shadow:none; background:none; }
.sw-week-columns { display:grid; grid-template-columns:repeat(7,minmax(130px,1fr)); min-width:920px; min-height:500px; }
.sw-week-columns>section { padding:8px; border-right:1px solid var(--sw-line); }
.sw-week-columns>section>header { border-bottom:1px solid var(--sw-line); padding-bottom:8px; margin-bottom:10px; }
.sw-week-columns .sw-event { margin-bottom:7px; }
.sw-week-columns .is-today { background:#f3fbf9; }
.sw-day-add { width:100%; border-style:dashed; color:#81a8b1; margin-top:8px; }
.sw-agenda,.sw-attention,.sw-selected,.sw-tasks,.sw-workload,.sw-conflicts { padding:16px; }
.sw-agenda>header { border-bottom:1px solid #ebf0f6; padding-bottom:13px; margin-bottom:6px; }
.sw-agenda header p { margin:3px 0 0; color:#8192a8; font-size:12px; }
.sw-today-label { display:inline-block; margin-left:10px; padding:3px 10px; border-radius:20px; color:#118d82; background:#e8f9f3; font-size:10px; vertical-align:middle; }
.sw-agenda-item { width:100%; display:flex; align-items:center; gap:10px; padding:12px 5px; border:0; border-bottom:1px solid #edf2f7; background:none; color:inherit; text-align:left; font:inherit; cursor:pointer; }
.sw-agenda-item.is-active { background:#e9f1ff; border-radius:7px; color:#267eff; }
.sw-agenda-item time { width:46px; font-size:12px; font-weight:750; border-right:1px solid #e4ecf3; }
.sw-agenda-icon { color:var(--sw-color); width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:color-mix(in srgb,var(--sw-color) 10%,white); flex-shrink:0; }
.sw-agenda-item>span:last-child { min-width:0; flex:1; }
.sw-agenda-item strong { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:12px; }
.sw-agenda-item small { display:block; color:#8494aa; font-size:10px; margin-top:4px; }
.sw-count { display:inline-grid; place-items:center; font-size:11px; color:#d8841f; background:#fff3df; padding:3px 9px; border-radius:20px; margin-left:6px; }
.sw-rail .sw-card-head { padding:0 0 14px; gap:7px; }
.sw-attention article { display:flex; align-items:flex-start; flex-wrap:wrap; gap:10px; padding:11px 10px; margin-top:8px; border:1px solid #edf1f6; border-left:3px solid #efc46f; border-radius:7px; }
.sw-attention article>svg { color:#f59530; width:19px; height:19px; margin-top:3px; }
.sw-attention article>div:not(.sw-attention-actions) { flex:1; min-width:120px; }
.sw-attention strong { display:block; font-size:12px; }
.sw-attention small { display:block; margin-top:4px; font-size:10px; color:#8c9bb0; }
.sw-attention-actions { display:flex; gap:5px; margin-left:auto; }
.sw-attention-actions .sw-btn { min-height:29px; font-size:10px; padding:5px 7px; }
.sw-selected h3 { font-size:16px; margin:9px 0 16px; line-height:1.5; }
.sw-badge { display:inline-flex; align-items:center; gap:6px; font-size:10px; font-weight:700; color:var(--sw-color); background:color-mix(in srgb,var(--sw-color) 12%,white); padding:4px 8px; border-radius:6px; }
.sw-badge:before { content:""; width:7px; height:7px; border-radius:50%; background:var(--sw-color); }
.sw-selected dl { display:grid; grid-template-columns:88px minmax(0,1fr); gap:10px 8px; margin:0; font-size:11px; line-height:1.6; }
.sw-selected dt { color:#8494a9; display:flex; gap:7px; align-items:start; }
.sw-selected dt svg { width:15px; height:15px; margin-top:2px; }
.sw-selected dd { margin:0; font-weight:650; overflow-wrap:anywhere; }
.sw-link { display:inline-flex; gap:5px; align-items:center; min-width:0; padding:2px 0; border:0; background:none; color:#287eee; text-align:left; font:inherit; font-size:11px; font-weight:650; cursor:pointer; text-decoration:none; }
.sw-link svg { width:13px; height:13px; }
.sw-selected dd .sw-link { display:flex; font-size:10px; margin-bottom:4px; }
.sw-description { font-size:12px; color:#60758f; white-space:pre-wrap; overflow-wrap:anywhere; }
.sw-prep { padding-top:13px; margin-top:15px; border-top:1px solid var(--sw-line); }
.sw-prep h4 { font-size:12px; margin:0 0 10px; }
.sw-prep label { display:flex; gap:8px; align-items:center; font-size:12px; margin:7px 0; }
.sw-selected>footer { display:flex; gap:10px; margin-top:16px; }
.sw-selected>footer .sw-btn { flex:1; }
.sw-note { font-size:11px; color:#8295ab; line-height:1.7; }
.sw-empty { color:#8c9cb0; font-size:12px; padding:20px 8px; text-align:center; }
.sw-attachment-links { display:grid; gap:6px; margin-top:10px; }
.sw-mine-layout { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(320px,.9fr); gap:15px; align-items:start; }
.sw-mine-layout>main { min-width:0; display:grid; gap:14px; }
.sw-mine-controls .sw-calendar-controls { padding:13px; }
.sw-mine-controls .sw-period h2 { font-size:19px; }
.sw-week-strip { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; padding:0 13px 13px; }
.sw-week-strip>.sw-btn { display:flex; flex-direction:column; gap:3px; padding:7px 3px; min-height:75px; border-color:#e6edf4; color:#627a96; }
.sw-week-strip small { font-size:11px; font-weight:500; }
.sw-week-strip strong { font-size:14px; }
.sw-week-strip>.is-active { background:#eafaf5; color:#078b7a; border-color:#b7e7dc; }
.sw-week-strip>button>span { display:flex; gap:5px; height:8px; }
.sw-week-strip i { display:block; width:6px; height:6px; border-radius:50%; }
.sw-time-scroll { overflow:auto; }
.sw-time-grid { position:relative; margin:0 16px 22px 12px; min-height:360px; }
.sw-hour { display:flex; position:absolute; left:0; right:0; border-top:1px solid #edf1f6; margin-left:55px; height:60px; }
.sw-hour time { position:absolute; top:-9px; left:-55px; font-size:11px; color:#8293aa; width:43px; }
.sw-empty-slot { width:100%; min-height:30px; align-self:center; opacity:0; border:1px dashed #a9cfff; color:#3d8cff; background:#f9fcff; margin:5px; }
.sw-hour:hover .sw-empty-slot,.sw-empty-slot:focus-visible { opacity:1; }
.sw-time-events { position:absolute; inset:0 0 0 64px; pointer-events:none; }
.sw-time-event { position:absolute; pointer-events:auto; border-left:3px solid var(--sw-color); background:color-mix(in srgb,var(--sw-color) 13%,white); border-radius:6px; min-height:36px; overflow:hidden; padding:5px 9px; }
.sw-time-event>.sw-event { background:transparent; border-radius:0; padding:0; font-size:12px; box-shadow:none; width:100%; }
.sw-time-meta { display:block; color:#7890ad; font-size:10px; margin-top:2px; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; }
.sw-meeting-link { position:absolute; right:8px; bottom:6px; color:#3282f3; background:white; border:1px solid #a9caff; border-radius:4px; padding:3px 6px; font-size:10px; text-decoration:none; }
.sw-meeting-link svg { width:11px; height:11px; margin-left:3px; }
.sw-all-day { display:flex; align-items:center; flex-wrap:wrap; gap:6px; padding:0 18px 18px; }
.sw-all-day>small { font-size:11px; color:#8798af; }
.sw-all-day>.sw-event { width:auto; max-width:100%; }
.sw-tasks .sw-card-head { gap:8px; flex-wrap:wrap; }
.sw-tasks h2 small { color:#159f8b; }
.sw-tasks .sw-tabs { border:0; background:#f6f8fb; }
.sw-tasks .sw-tabs .sw-btn { min-height:26px; padding:5px 10px; font-size:10px; }
.sw-task-row { display:flex; align-items:center; gap:10px; min-height:41px; border-bottom:1px solid #edf2f6; padding:5px 0; }
.sw-task-title { flex:1; min-width:0; text-align:left; padding:4px 0; border:0; background:none; color:#354e6e; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.sw-task-row time { color:#8394ac; font-size:10px; margin-left:auto; white-space:nowrap; }
.is-done:not(button),.sw-task-title.is-done { text-decoration:line-through; color:#99a8ba; }
.sw-priority { padding:3px 10px; border-radius:14px; background:#fff7e8; color:#d69528; font-size:10px; white-space:nowrap; }
.sw-priority.high,.sw-priority.urgent { background:#fff0f1; color:#ef6669; }
.sw-priority.low { color:#7190aa; background:#f2f5f9; }
.sw-team-controls { margin-bottom:15px; padding:0; }
.sw-team-controls .sw-calendar-controls { padding-bottom:8px; }
.sw-team-controls .sw-filters { border:0; padding-top:0; }
.sw-team-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(285px,27%); gap:15px; margin-bottom:15px; align-items:start; }
.sw-team-layout>div { min-width:0; }
.sw-people { overflow:hidden; }
.sw-people .sw-card-head { align-items:baseline; justify-content:flex-start; }
.sw-people .sw-card-head p { margin:0; font-size:11px; color:#8698ad; }
.sw-people-scroll { overflow:auto; padding:0 12px; }
.sw-people-grid { min-width:780px; border:1px solid #e3eaf2; border-radius:7px; overflow:hidden; }
.sw-people-head { display:grid; grid-template-columns:145px repeat(7,minmax(0,1fr)); min-height:61px; background:#f8fafc; border-bottom:1px solid var(--sw-line); }
.sw-people-head>span { display:flex; flex-direction:column; justify-content:center; align-items:center; padding:5px; border-right:1px solid #e6edf4; font-size:11px; font-weight:800; }
.sw-people-head>span:first-child { align-items:flex-start; padding-left:15px; }
.sw-people-head small { font-weight:400; font-size:10px; color:#8293aa; margin-top:3px; }
.sw-people-head em { font-size:9px; font-style:normal; color:white; background:#0b9789; padding:0 10px; border-radius:10px; margin-top:3px; }
.sw-people-head .is-today { background:#edf9f6; color:#00887b; }
.sw-person-row { display:grid; grid-template-columns:145px minmax(0,1fr); border-bottom:1px solid #e4ebf2; }
.sw-person-label { display:flex; align-items:flex-start; gap:8px; padding:17px 10px; border-right:1px solid #e5ecf3; }
.sw-avatar { width:32px; height:32px; display:inline-grid; place-items:center; flex:0 0 auto; border-radius:50%; color:hsl(var(--sw-avatar-hue),45%,39%); background:hsl(var(--sw-avatar-hue),65%,86%); font-size:13px; font-weight:750; }
.sw-person-label strong { display:block; font-size:12px; margin:1px 0 4px; max-width:82px; overflow:hidden; text-overflow:ellipsis; }
.sw-person-label small { color:#8396ae; font-size:10px; }
.sw-person-days { position:relative; display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); grid-auto-rows:35px; padding-block:9px; background:white; }
.sw-drop-day { position:absolute; top:0; bottom:0; border-right:1px solid #e7edf4; z-index:0; }
.sw-drop-day.is-today { background:#f0fbf7; }
.sw-person-event { align-self:center; z-index:1; position:relative; padding:1px 3px; min-width:0; }
.sw-person-event .sw-event { font-size:10px; padding:5px 6px; }
.sw-person-event.has-conflict .sw-event { border:1px solid #efb35b; background:#fff9ef; padding-left:18px; }
.sw-conflict-mark { position:absolute; left:9px; top:7px; color:#ed921e; border:1px solid currentColor; border-radius:50%; width:11px; height:11px; display:grid; place-items:center; font-size:8px; pointer-events:none; }
.sw-mini-legend { display:flex; flex-wrap:wrap; gap:16px; padding:14px 18px; }
.sw-mini-legend span { display:flex; align-items:center; gap:6px; color:#7c8faa; font-size:10px; }
.sw-mini-legend i { width:8px; height:8px; border-radius:50%; }
.sw-workload h2,.sw-conflicts h2 { margin-bottom:16px; }
.sw-workload-row { width:100%; display:flex; gap:9px; align-items:center; border:0; color:inherit; background:none; text-align:left; padding:5px 0; font:inherit; }
.sw-workload-row>.notranslate { width:65px; font-size:12px; overflow:hidden; text-overflow:ellipsis; }
.sw-workload-row>b { color:#586d89; font-size:12px; width:25px; text-align:right; }
.sw-progress { display:block; min-width:40px; height:9px; background:#edf2f7; border-radius:5px; overflow:hidden; }
.sw-progress>i { height:100%; display:block; min-width:0; border-radius:inherit; background:linear-gradient(90deg,#169b91,#31bdb4); }
.sw-workload-row .sw-progress { flex:1; height:12px; }
.sw-conflicts article { border:1px solid #f7deaf; border-radius:7px; padding:12px; background:#fffbf3; margin-top:10px; display:flex; gap:10px; flex-wrap:wrap; }
.sw-conflicts article>svg { color:#ee9b27; }
.sw-conflicts article>div { flex:1; min-width:160px; }
.sw-conflicts article strong { font-size:12px; }
.sw-conflicts article p { font-size:11px; margin:8px 0 4px; line-height:1.9; }
.sw-conflicts article small { color:#e6942c; font-size:10px; }
.sw-conflicts footer { display:flex; gap:8px; width:100%; }
.sw-conflicts footer .sw-btn { flex:1; min-height:30px; padding:5px; font-size:10px; }
.sw-team-tasks { margin-top:15px; overflow:hidden; }
.sw-team-tasks .sw-card-head { justify-content:flex-start; padding:13px 16px; }
.sw-team-tasks .sw-card-head>span { margin-left:auto; font-size:12px; color:#128c86; }
.sw-table-scroll,.sw-import-preview { overflow:auto; }
.sw-page table { width:100%; border-collapse:collapse; text-align:left; font-size:11px; }
.sw-team-tasks table { min-width:790px; }
.sw-page th { color:#8193ab; background:#f7fafc; padding:9px 12px; font-size:10px; font-weight:750; border:1px solid #e8eef4; white-space:nowrap; }
.sw-page td { border-bottom:1px solid #e8eef4; padding:7px 12px; color:#405873; }
.sw-table-user { display:flex; align-items:center; gap:7px; white-space:nowrap; }
.sw-table-user .sw-avatar { width:22px; height:22px; font-size:10px; }
.sw-team-tasks td select { height:28px; max-width:120px; padding:2px 6px; font-size:10px; }
.sw-status { font-size:10px; color:#718aa4; padding:4px 10px; border-radius:15px; background:#edf3fa; white-space:nowrap; }
.sw-status.inProgress { color:#3388ed; background:#e7f2ff; }
.sw-status.completed { color:#098e76; background:#e2f8ee; }
.sw-status.review { color:#9250d9; background:#f2e9ff; }
.sw-status.delayed { color:#dc8c29; background:#fff2de; }
.sw-team-selected { margin-top:15px; max-width:620px; }
.sw-board { display:grid; grid-template-columns:repeat(4,minmax(180px,1fr)); gap:10px; overflow-x:auto; padding-bottom:8px; }
.sw-board-column { padding:12px; min-height:400px; background:#f8fbfd; }
.sw-board-column h2 { margin-bottom:12px; font-size:13px; }
.sw-board-column article { border:1px solid var(--sw-line); border-radius:7px; background:white; padding:12px; margin-bottom:10px; }
.sw-board-column article>.sw-event { margin-top:8px; white-space:normal; }
.sw-board-column article>.sw-event>.notranslate { white-space:normal; }
.sw-board-column p { font-size:10px; color:#7990a9; }
.sw-board-column footer { display:flex; align-items:center; justify-content:space-between; gap:5px; font-size:10px; }
.sw-list { padding:10px 16px; }
.sw-list-row { display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid #eaf0f5; }
.sw-list-row time { width:105px; font-size:11px; flex-shrink:0; }
.sw-list-row time small { display:block; font-size:10px; color:#90a1b6; margin-top:4px; }
.sw-list-row>.sw-event { flex:1; }
.sw-list-row>.notranslate { font-size:11px; max-width:100px; }
.sw-dialog-backdrop { position:fixed; inset:0; z-index:1300; display:flex; align-items:center; justify-content:center; padding:24px; background:#14263e70; backdrop-filter:blur(4px); }
.sw-dialog { width:min(900px,100%); max-height:calc(100dvh - 48px); overflow:auto; border:1px solid #dce8ef; border-radius:13px; background:#fff; box-shadow:0 30px 90px #10294530; }
.sw-dialog>header { display:flex; justify-content:space-between; align-items:center; padding:19px 22px; border-bottom:1px solid #e4ecf3; position:sticky; top:0; z-index:2; background:#f7fbfd; }
.sw-dialog>header h2 { font-size:21px; margin:0; }
.sw-dialog>header .sw-btn { font-size:23px; min-width:34px; padding:3px; }
.sw-dialog-body { padding:21px; }
.sw-dialog-body>p { font-size:12px; line-height:1.7; }
.sw-dialog footer { display:flex; justify-content:flex-end; gap:10px; border-top:1px solid var(--sw-line); padding-top:18px; margin-top:20px; }
.sw-dialog .field { display:flex; flex-direction:column; gap:7px; font-size:12px; color:#6d8199; margin:15px 0; }
.sw-dialog input:not([type=checkbox]),.sw-dialog select { width:100%; min-height:37px; min-width:0; border:1px solid #d5e1eb; border-radius:6px; padding:7px 9px; font:inherit; color:#28445e; background:#fff; }
.sw-dialog fieldset { border:1px solid #dbe7f0; border-radius:8px; padding:15px; margin:15px 0; }
.sw-dialog legend { font-size:12px; color:#7089a1; padding-inline:6px; }
.sw-member-picks { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; font-size:12px; }
.sw-member-picks label { display:flex; align-items:center; gap:8px; }
.sw-team-directory { display:grid; gap:8px; }
.sw-team-directory>div { display:flex; align-items:center; gap:9px; border:1px solid var(--sw-line); padding:10px; border-radius:7px; }
.sw-team-directory strong { font-size:13px; flex:1; }
.sw-team-directory small { color:#8696aa; font-size:11px; }
.sw-import-tools { display:flex; gap:10px; flex-wrap:wrap; }
.sw-import-preview { max-height:360px; }
.sw-import-preview table { min-width:600px; }
.sw-import-preview .has-errors td { background:#fff3f2; color:#c76159; }
.sw-adjust-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }
.sw-form-error { padding:13px; color:#b64a44; border:1px solid #f0c9c5; background:#fff7f5; font-size:12px; border-radius:7px; line-height:1.7; }
.sw-loading { font-size:11px; color:#168d87; margin:0 0 8px; }
.sw-busy { position:fixed; right:24px; bottom:24px; z-index:1500; padding:12px 20px; color:#fff; background:#123e4a; border-radius:8px; font-size:12px; box-shadow:0 8px 24px #17384b22; }
@media(min-width:1700px) {
  .sw-page { padding:15px 4px 35px; }
  .sw-month-cell { min-height:132px; }
  .sw-page-head h1 { font-size:32px; }
  .sw-card h2 { font-size:18px; }
}
@media(max-width:1250px) {
  .sw-calendar-layout,.sw-team-layout { grid-template-columns:minmax(0,1fr) 285px; }
  .sw-calendar-controls { gap:8px; }
  .sw-period h2 { font-size:18px; margin-left:5px; }
  .sw-tabs .sw-btn { padding:7px 10px; }
  .sw-stats { gap:10px; }
  .sw-stat { padding:14px; gap:10px; }
  .sw-stat-icon { width:39px; height:39px; }
  .sw-stat strong { font-size:23px; }
  .sw-mine-layout { grid-template-columns:minmax(0,1fr) 320px; }
  .sw-task-row { flex-wrap:wrap; gap:6px; }
  .sw-task-row .sw-priority { margin-left:26px; }
}
@media(max-width:1020px) {
  .sw-calendar-layout,.sw-mine-layout,.sw-team-layout { grid-template-columns:minmax(0,1fr); }
  .sw-rail { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sw-selected { grid-column:1/-1; }
  .sw-page-head { align-items:flex-start; }
  .sw-page-head h1 { font-size:27px; }
  .sw-stats-three .sw-stat { flex-wrap:wrap; }
  .sw-page-head>div:last-child .sw-btn { padding:8px 11px; }
}
@media(max-width:650px) {
  .sw-page { padding:7px 0 24px; width:100%; }
  .sw-page-head { flex-direction:column; gap:14px; margin-bottom:15px; }
  .sw-page-head p { font-size:12px; }
  .sw-page-head>div:last-child { justify-content:flex-start; width:100%; gap:8px; }
  .sw-stats,.sw-stats-three { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .sw-stats-three .sw-stat:nth-child(2) { grid-column:1/-1; order:3; }
  .sw-stat { min-height:85px; padding:11px; gap:10px; }
  .sw-stat-icon { width:35px; height:35px; }
  .sw-stat-icon svg { width:22px; height:22px; }
  .sw-stat small { font-size:10px; }
  .sw-stat strong { font-size:23px; }
  .sw-rail { grid-template-columns:minmax(0,1fr); }
  .sw-period { width:100%; gap:6px; }
  .sw-period h2,.sw-mine-controls .sw-period h2 { font-size:16px; white-space:normal; }
  .sw-period>.sw-btn { min-width:32px; min-height:32px; padding:4px 8px; }
  .sw-calendar-controls { padding:12px; }
  .sw-calendar-controls>.sw-tabs { flex:1; justify-content:space-between; }
  .sw-calendar-controls>.sw-tabs .sw-btn { flex:1; }
  .sw-calendar-controls>.sw-more { flex:0 0 auto; }
  .sw-filters { padding:10px 12px; gap:7px; }
  .sw-filters>select { flex-basis:calc(50% - 7px); max-width:100%; }
  .sw-search { flex-basis:100%; }
  .sw-filters>.sw-text-btn { margin-left:auto; font-size:10px; }
  .sw-legend { gap:6px; padding-inline:12px; }
  .sw-legend label { padding:5px 6px; font-size:10px; }
  .sw-month { min-width:570px; }
  .sw-month-cell { min-height:100px; padding:4px; }
  .sw-card-head { padding:13px; }
  .sw-tasks .sw-card-head>.sw-tabs { width:100%; }
  .sw-tasks .sw-card-head>.sw-tabs>.sw-btn { flex:1; }
  .sw-task-row { flex-wrap:nowrap; }
  .sw-task-row .sw-priority { margin-left:0; padding:3px 7px; }
  .sw-task-row time { max-width:63px; white-space:normal; text-align:right; }
  .sw-week-strip { gap:2px; padding-inline:8px; }
  .sw-week-strip>.sw-btn { min-height:65px; padding:5px 1px; }
  .sw-time-grid { margin-left:8px; margin-right:9px; }
  .sw-hour { margin-left:42px; }
  .sw-hour time { left:-42px; width:35px; font-size:10px; }
  .sw-time-events { left:47px; }
  .sw-time-event { padding:5px; }
  .sw-time-event>.sw-event { font-size:10px; }
  .sw-time-meta { font-size:9px; }
  .sw-empty-slot { opacity:.65; font-size:10px; }
  .sw-team-tasks .sw-tabs { overflow-x:auto; max-width:100%; }
  .sw-team-tasks .sw-tabs .sw-btn { min-width:65px; }
  .sw-list-row { flex-wrap:wrap; gap:6px; }
  .sw-list-row>.sw-event { min-width:calc(100% - 120px); }
  .sw-list-row>.notranslate { margin-left:112px; }
  .sw-board { grid-template-columns:repeat(4,220px); }
  .sw-dialog-backdrop { padding:10px; }
  .sw-dialog { max-height:calc(100dvh - 20px); }
  .sw-dialog>header { padding:14px; }
  .sw-dialog>header h2 { font-size:18px; }
  .sw-dialog-body { padding:14px; }
  .sw-member-picks { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sw-team-directory>div { flex-wrap:wrap; }
  .sw-team-directory strong { flex-basis:60%; }
  .sw-adjust-fields { gap:0 10px; }
}
@media(prefers-reduced-motion:reduce) { .sw-page * { scroll-behavior:auto !important; } }

.schedule-recurrence-fields { border:1px solid #dbe7ef; border-radius:8px; padding:15px; margin:10px 0; }
.schedule-recurrence-fields legend { padding:0 6px; font-size:12px; color:#6e829b; }
.schedule-weekday-picks { display:flex; flex-wrap:wrap; gap:12px; }
