/* S1의 파랑과 업무보고의 실적/계획 구분을 중심으로 구성. */
:root { --week-blue:#00479d; --week-ink:#20334c; --week-muted:#586b81; --week-line:#d7e0eb; --week-paper:#fff; --week-base:#f2f6fa; }
.nav-group h2 { font-size:11px; color:#a8c2e4; margin:18px 12px 7px; font-weight:500; }
.mobile-dock { display:none; }
.week-workspace { max-width:1280px; margin:0 auto; color:var(--week-ink); padding:12px 6px 40px; }
.week-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:8px 0 24px; }
.week-heading h1 { margin:0 0 9px; font-size:28px; letter-spacing:-1px; line-height:1.35; }
.week-heading p, .week-section header p { color:var(--week-muted); margin:0; }
.week-toolbar, .week-picker, .week-summary { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.week-toolbar { justify-content:space-between; border-bottom:1px solid var(--week-line); padding-bottom:15px; }
.week-picker label { display:flex; gap:8px; align-items:center; }
.week-summary { margin:18px 0; justify-content:space-between; font-size:13px; }
.week-summary b { font-size:19px; }
.week-columns { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; }
.week-section { border:1px solid var(--week-line); background:var(--week-paper); border-radius:8px; overflow:hidden; min-width:0; }
.week-section header { display:flex; align-items:center; justify-content:space-between; padding:20px 20px 14px; border-top:4px solid var(--week-blue); }
.week-section:nth-child(2) header { border-top-color:#75899e; }
.week-section h2 { font-size:19px; margin:0 0 7px; }
.week-section header p { font-size:12px; }
.week-count { color:var(--week-blue); font-size:17px; font-weight:700; }
.week-section-actions { display:flex; gap:8px; padding:0 20px 16px; border-bottom:1px solid var(--week-line); }
.week-item { padding:18px 20px; border-bottom:1px solid #e6edf5; }
.week-item:last-child { border-bottom:0; }
.week-item-meta, .week-item-foot { display:flex; gap:8px; align-items:center; flex-wrap:wrap; color:var(--week-muted); font-size:11px; }
.week-item-title { display:block; text-align:left; color:var(--week-ink); font:700 16px/1.5 inherit; font-size:16px; font-weight:700; border:0; background:transparent; padding:10px 0 4px; cursor:pointer; overflow-wrap:anywhere; }
.week-item p { margin:6px 0 12px; line-height:1.65; white-space:pre-wrap; overflow-wrap:anywhere; }
.week-item-foot { justify-content:space-between; }
.week-linked { color:#176449; }
.week-exclude { display:flex; align-items:center; gap:6px; font-size:11px; color:var(--week-muted); margin-top:12px; }
.week-item.excluded { background:#f4f5f7; }
.week-issue { color:#983d32; font-size:13px; }
.week-empty { padding:38px 22px; color:var(--week-muted); line-height:1.65; }
.week-empty b { color:var(--week-ink); font-size:15px; }
.week-empty p { margin:8px 0 0; }
.week-chat-prompt { margin-top:20px; padding:16px; text-align:left; width:100%; border:1px dashed #95afcd; background:#eaf2fc; color:#00479d; border-radius:6px; cursor:pointer; }
.week-draft { margin-bottom:14px; }
.week-editor { font-size:14px; }
.week-editor-period { line-height:1.7; color:var(--week-muted); margin:0 0 16px; }
.week-edit-row { border:1px solid var(--week-line); border-left:4px solid var(--week-blue); padding:16px; margin-bottom:14px; border-radius:4px; }
.week-editor label, .week-carry > label { display:flex; flex-direction:column; gap:6px; font-size:12px; color:var(--week-muted); margin-bottom:12px; }
.week-editor input, .week-editor select, .week-editor textarea, .week-carry > label input { width:100%; min-height:40px; font-size:14px; }
.week-editor textarea { resize:vertical; }
.week-edit-top { display:flex; align-items:center; gap:12px; }
.week-edit-top label { flex:1; }
.week-edit-details { display:grid; grid-template-columns:1fr 1fr; gap:4px 16px; margin-top:16px; }
.week-editor summary { cursor:pointer; padding:8px 0; color:var(--week-blue); }
.week-quick { background:#f2f6fa; padding:10px 16px; margin-bottom:18px; border-radius:4px; }
.week-quick > div { display:flex; gap:10px; padding-bottom:8px; }
.week-quick select { width:auto; }
.week-carry-item { display:flex; align-items:start; gap:12px; padding:16px 4px; border-bottom:1px solid var(--week-line); cursor:pointer; }
.week-carry-item input { width:20px; height:20px; flex:none; }
.week-carry-item span { display:block; line-height:1.6; overflow-wrap:anywhere; }
.week-carry-item small { display:block; color:var(--week-muted); margin:5px 0; }
.week-workspace :focus-visible, .week-editor :focus-visible, .mobile-dock :focus-visible, .nav :focus-visible { outline:3px solid #2585dc; outline-offset:3px; }
@media (min-width:1024px) {
  #app.workspace-shell { display:grid; grid-template-columns:204px minmax(0,1fr); grid-template-rows:auto minmax(0,1fr); min-width:0; }
  .workspace-shell .gnb { grid-column:1/-1; }
  .workspace-shell .nav { grid-column:1; grid-row:2; display:block; height:auto; overflow-y:auto; padding:0 8px 18px; }
  .workspace-shell .nav-group button { display:block; text-align:left; width:100%; padding:10px 12px; font-size:13px; border:0; border-radius:4px; }
  .workspace-shell .nav button.on { background:#fff; color:var(--week-blue); font-weight:700; }
  .workspace-shell .nav .util { margin:20px 4px 0; flex-wrap:wrap; }
  .workspace-shell .nav .util button { height:30px; }
  .workspace-shell .page { grid-column:2; grid-row:2; min-width:0; }
  .workspace-shell .gnb .sys small { display:none; }
  .workspace-shell .gnb .sitelinks { gap:8px; }
}
@media (max-width:1023px) {
  .workspace-shell { padding-bottom:calc(70px + env(safe-area-inset-bottom)); }
  .workspace-shell .gnb { min-height:54px; }
  .workspace-shell .gnb .acct { display:none; }
  .workspace-shell .gnb .logo .sys { max-width:42vw; font-size:12px; }
  .workspace-shell .nav { display:none; }
  .workspace-shell .nav.mobile-open { display:block; position:fixed; inset:54px 0 calc(65px + env(safe-area-inset-bottom)); overflow:auto; padding:8px 16px 24px; z-index:80; }
  .nav.mobile-open .nav-group { display:grid; grid-template-columns:1fr 1fr; gap:4px; }
  .nav.mobile-open h2 { grid-column:1/-1; }
  .nav.mobile-open button { text-align:left; border-radius:4px; }
  .mobile-dock { position:fixed; display:grid; grid-template-columns:repeat(4,1fr); left:0; right:0; bottom:0; padding:4px 4px calc(4px + env(safe-area-inset-bottom)); background:white; border-top:1px solid var(--week-line); z-index:90; }
  .mobile-dock button { background:white; border:0; color:var(--week-muted); min-height:54px; font-size:12px; font-weight:700; border-top:3px solid transparent; }
  .mobile-dock button.on, .mobile-dock button[aria-expanded="true"] { color:var(--week-blue); border-top-color:var(--week-blue); background:#edf4fc; }
  #fab-add, #chat-fab { display:none; }
  #chat-panel { bottom:calc(70px + env(safe-area-inset-bottom)); max-height:calc(100dvh - 135px); }
  .week-workspace { padding:8px 0 25px; }
  .week-heading { display:block; margin:10px 0 20px; }
  .week-heading h1 { font-size:25px; line-height:1.35; }
  .week-heading p { font-size:13px; }
  .week-heading > .btn { width:100%; margin-top:18px; min-height:48px; font-size:15px; }
  .week-picker { gap:6px; width:100%; }
  .week-picker label { flex:1; min-width:0; }
  .week-picker label span { display:none; }
  .week-picker input { width:100%; min-width:0; font-size:16px; }
  .week-picker .btn { padding:0 12px; }
  .week-columns { grid-template-columns:1fr; gap:20px; }
  .week-summary { gap:7px; }
  .week-summary span { font-size:12px; }
  .week-section-actions .btn { min-height:44px; flex:1; padding:0 7px; }
  .week-item, .week-section header { padding-left:16px; padding-right:16px; }
  .week-section-actions { padding-left:16px; padding-right:16px; }
  .week-editor input, .week-editor select, .week-editor textarea, .week-carry > label input { font-size:16px; min-height:44px; }
  .week-edit-row { padding:12px; }
  .week-edit-top { gap:8px; }
  .week-edit-details { gap:4px 10px; }
  .modal-bg:has(.week-editor), .modal-bg:has(.week-carry) { z-index:120; }
  .week-chat-prompt { font-size:13px; line-height:1.7; }
}
@media print { .mobile-dock, .nav-group { display:none!important; } #app.workspace-shell { display:block; } }
/* 알림이 하단 저장 버튼의 터치를 가로채지 않게 한다. */
.workspace-shell #toast { pointer-events:none; }
@media (max-width:1023px) { .workspace-shell #toast { top:64px; bottom:auto; } }
