/* 데스크톱(961px+) 전용 레이어 — 모바일 규칙은 style.css 그대로. 설계 근거: doc/research-desktop-planners-2026-07-11.md(좌레일 240 + 가독폭 중앙 리스트 + 우측 컨텍스트 패널). 색은 테마 변수만 사용(5테마 자동 적용). */
.qab{display:none}   /* 빠른 추가 바(desktop.js가 주입) — 모바일에선 숨김 */
.pc-only{display:none !important}   /* 데스크톱 전용 요소(renderMain 등 공용 렌더러가 심음) — 모바일 시각 불변 */
.rail-util{display:none}   /* 레일 유틸리티(desktop.js가 주입) — 모바일 숨김 */
.rail-topics{display:none}   /* 레일 주제 트리 — 모바일(하단 탭바)에선 숨김 */
.empty .pc-hint{display:none}   /* 데스크톱용 빈 상태 문구(index.html) — 모바일에선 숨김 */

@media (min-width: 961px) {

  /* ── 좌측 레일 = 기존 하단 탭바 재배치(240px, 업계 공통 패턴) ── */
  body{padding-left:240px}
  .tabbar{left:0;right:auto;top:0;bottom:0;width:240px;box-sizing:border-box;
    flex-direction:column;justify-content:flex-start;align-items:stretch;gap:6px;
    padding:82px 18px 22px;border-top:0;border-right:1.5px solid var(--line);box-shadow:none;background:var(--bg)}
  .tabbar::before{content:'EchoPlanner';position:absolute;top:28px;left:24px;
    font-size:17.5px;font-weight:800;letter-spacing:-.2px;color:var(--accent)}
  .tab{flex:0 0 auto;max-width:none;flex-direction:row;justify-content:flex-start;gap:12px;
    font-size:13.5px;padding:11px 15px;border-radius:12px;color:var(--muted)}
  .tab svg{width:19px;height:19px}
  .tab:hover{background:var(--surface)}
  .tab.on{background:var(--surface);color:var(--accent);box-shadow:var(--shadow)}

  /* ── 콘텐츠 = 가독 폭 상한 + 중앙 정렬(리스트를 늘리지 않는다 — Todoist/Things/Notion 원칙) ── */
  main.app{max-width:680px;padding-left:24px;padding-right:24px}
  body[data-view="today"] main.app{padding-bottom:80px}
  .view{padding-left:24px;padding-right:24px;padding-bottom:60px}
  #view-main{max-width:1020px}
  #view-topics{max-width:920px}
  #view-topic{max-width:1180px}   /* 주제 = 2영역(좌 실행 / 우 정보) — 데스크톱은 폭을 쓴다(사용자 지시) */
  #view-memo,#view-editor{max-width:820px}
  #view-map{max-width:none;padding-right:28px}

  /* ── 빠른 추가 바 — 오늘 상단 고정, 타이핑 우선("적기 편함"의 핵심) ── */
  .qab{position:sticky;top:16px;z-index:8;display:flex;align-items:center;gap:10px;
    background:var(--surface);border:1.5px solid var(--line);border-radius:14px;
    padding:11px 14px;margin:14px 0 4px;box-shadow:var(--shadow)}
  .qab:focus-within{border-color:var(--accent);box-shadow:var(--shadow-lg)}
  .qab input{flex:1;border:0;background:transparent;font-family:inherit;font-size:15px;color:var(--ink);outline:none}
  .qab input::placeholder{color:var(--faint)}
  .qab kbd{font-family:inherit;font-size:10.5px;font-weight:700;color:var(--faint);
    border:1.5px solid var(--line);border-radius:6px;padding:2px 7px;background:var(--bg)}
  .qab .qab-more{border:1.5px solid var(--line-strong);background:transparent;color:var(--muted);font-family:inherit;
    font-size:12px;font-weight:700;padding:6px 11px;border-radius:9px;cursor:pointer;flex:0 0 auto}
  .qab .qab-more:hover{background:var(--bg);color:var(--ink)}
  body[data-view="today"] .fab-stack{display:none}   /* FAB 대신 빠른 추가 바 + '자세히'(상세 시트) + N 키 */
  .empty p:not(.pc-hint){display:none}   /* "아래 + 버튼으로" 안내는 모바일 전용 */
  .empty .pc-hint{display:block}   /* 데스크톱 안내 문구는 마크업(index.html)에 — CSS content 금지(i18n·접근성) */

  /* ── 메인 대시보드 = 고정 2열(.mcol 래퍼: 왼쪽 오늘+주제, 오른쪽 메모+활동) — 접기가 다른 열에 영향 없음 ── */
  #mainBody{display:grid;grid-template-columns:1fr 1fr;column-gap:28px;align-items:start}
  #mainBody .msec{margin-bottom:6px}
  .mhead{padding-top:30px}
  .gcal{max-width:390px;margin:0 auto}   /* 넓은 컬럼에서 셀 과확대 방지 */

  /* ── 주제 선반 = 2열 그리드 ── */
  #topicShelf{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
  #topicShelf>*:not(.shelf-row){grid-column:1/-1}

  /* ── 시트(편집)·모달·피커 — 레일 제외 영역 기준 중앙 ── */
  .sheet-wrap,.modal,.pick-wrap{padding-left:calc(240px + 16px)}
  .sheet{width:min(80vw,540px)}
  .sheet-input{font-size:16px}

  /* ── 레일 하단 유틸리티 — 동기화 + 테마 스와치(확정 목업: 오늘 헤더에서 이전) ── */
  .pc-only{display:revert !important}
  .rail-util{display:flex;flex-direction:column;gap:11px;margin-top:auto;border-top:1.5px solid var(--line);padding:14px 8px 0}
  .rail-syncrow{display:flex;align-items:center;gap:4px}
  .rail-sync-txt{font-size:11.5px;font-weight:600;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .rail-util .sync-menu{top:auto;bottom:46px;left:0;right:auto}   /* 레일에선 위로 펼침 */
  .rail-themes{display:flex;gap:8px;padding:0 6px 2px}
  .rail-themes b{width:15px;height:15px;border-radius:50%;cursor:pointer;border:1px solid rgba(0,0,0,.12)}
  .rail-themes b.on{box-shadow:0 0 0 2px var(--bg),0 0 0 3.5px var(--accent)}
  .head-right .theme-wrap,#homeBtn{display:none}   /* 테마=레일 스와치, 메인=레일 탭 */

  /* ── 메인 = B 플랫 대시보드(확정 목업 desktop-decided.html ①) — 카드 껍데기 제거, 1px 구분선 리스트 ── */
  #view-main .mhead{display:flex;align-items:baseline;gap:14px;padding-top:34px}
  #view-main .mhead .brand{display:none}   /* 브랜드는 레일에 */
  #view-main .mhead .mdate{font-size:21px;letter-spacing:-.2px}
  #view-main .mhead .mgreet{margin:0}
  #mainBody .mcard{background:transparent;box-shadow:none;border-radius:0;padding:10px 2px 4px}
  #mainBody .mcard .go{display:none}
  #mainBody .mring{width:44px;height:44px}
  #mainBody .mini{display:flex !important;align-items:center;gap:11px;padding:7px 2px;border-bottom:1px solid var(--line);font-size:13px;color:var(--ink);cursor:pointer}   /* !important — .pc-only revert보다 우선 */
  #mainBody .mini .mt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #mainBody .mini .meta{font-size:11.5px;color:var(--muted);flex:0 0 auto}
  #mainBody .mchk{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--line-strong);flex:0 0 auto;box-sizing:border-box}
  #mainBody .mchk.pA{border:2px solid var(--accent)}
  #mainBody .mchk.pB{border-color:#c98a4a}
  #mainBody .tp-card{background:transparent;box-shadow:none;border-radius:0;margin:0;padding:9px 2px;border-bottom:1px solid var(--line)}
  #mainBody .tp-card:last-child{border-bottom:0}
  #mainBody .tpbar{height:4px;border-radius:2px;background:var(--surface-2);margin:7px 0 2px;overflow:hidden}
  #mainBody .tpbar i{display:block;height:100%;border-radius:2px;background:var(--nc-green)}
  #mainBody .memo-row{background:transparent;box-shadow:none;border-radius:0;margin:0;padding:8px 2px;border-bottom:1px solid var(--line)}
  #mainBody .fcard{background:transparent;box-shadow:none;border-radius:0;padding:0}
  #mainBody .gstat{display:flex !important;gap:22px;font-size:12px;color:var(--muted);padding:8px 2px 0}
  #mainBody .gstat b{color:var(--ink);font-weight:700}
  #mainBody .gcal{margin:4px 0 0;max-width:330px}   /* B안 — 컬럼 좌측 정렬·컴팩트 */
  #view-main .sechead .more{background:transparent;border:0;padding:0;white-space:nowrap}   /* 목업 — 칩이 아니라 평문 링크 */

  /* ── 레일 주제 트리(승인 1안) ── */
  .rail-topics{display:block;margin-top:12px;border-top:1.5px solid var(--line);padding-top:12px;overflow-y:auto;flex:1 1 auto;min-height:0}
  .rail-topics .tl{font-size:10.5px;font-weight:800;color:var(--faint);letter-spacing:.6px;padding:0 10px 7px}
  .titem{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink);padding:6px 10px;border-radius:8px;cursor:pointer}
  .titem:hover{background:var(--surface)}
  .titem.on{background:var(--surface);box-shadow:var(--shadow);color:var(--accent)}
  .titem .car{width:10px;font-size:9px;color:var(--faint);flex:0 0 auto;text-align:center}
  .titem .pie{width:13px;height:13px;border-radius:50%;flex:0 0 auto}
  .titem .tx{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .titem .n{font-size:10.5px;color:var(--faint);font-weight:500;flex:0 0 auto}
  .titem.add{color:var(--faint);font-weight:500}

  /* ── 주제 본문 = 승인 1안(단일 스크롤·플랫) ── */
  #topicBody.tvd{display:grid;grid-template-columns:minmax(0,1fr) 320px;column-gap:48px;align-items:start}
  #topicBody.tvd .tv-crumbs{grid-column:1/-1}
  .tvd-main{min-width:0}
  .tvd-side{min-width:0;border-left:1.5px solid var(--line);padding-left:34px}
  .tvd-sum{display:flex;align-items:center;gap:13px;padding:2px 0 6px}
  .tvd-sum .mring{width:48px;height:48px}
  .tvd-sum .ls{display:flex;flex-direction:column;gap:3px;font-size:12.5px;color:var(--muted)}
  .tvd-sum .ls b{font-size:14px;color:var(--ink)}
  .tvd-add{display:flex;margin:2px 0 6px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);padding:10px 14px}
  #topicBody .sechead{margin-top:26px}   /* 섹션 리듬 통일(소주제/할일/메모/통계) */
  #topicBody .secbody .secin{padding-top:2px}
  .tvd-side .sechead{margin-top:24px}
  .tvd-side .tv-charts{flex-direction:row;align-items:stretch;gap:14px}   /* 주 2/3 · 달 1/3 한 줄(사용자 지시) */
  .tvd-add:focus-within{border-color:var(--accent)}
  .tvd-add input{flex:1;border:0;background:transparent;font-family:inherit;font-size:13.5px;color:var(--ink);outline:none}
  .tvd-add input::placeholder{color:var(--faint)}
  .tvd-sub{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600;color:var(--ink);padding:9px 2px;border-bottom:1px solid var(--line);cursor:pointer}   /* 소주제 = 행(모바일 컨셉) — 클릭=드릴다운 */
  .tvd-sub .pie{width:14px;height:14px;border-radius:50%;flex:0 0 auto}
  .tvd-sub .tx2{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tvd-sub .n{font-size:11.5px;font-weight:400;color:var(--muted)}
  .tvd-sub .chev{margin-left:auto;color:var(--faint);font-weight:400}
  .tvd-sub:hover{background:color-mix(in srgb,var(--ink) 4%,transparent);border-radius:8px}
  .tvd-addsub{display:block;margin:12px 0 0;border:1px dashed var(--line-strong);background:transparent;color:var(--muted);font-family:inherit;font-size:12px;font-weight:600;border-radius:8px;padding:7px 12px;cursor:pointer}
  .tvd-addsub:hover{background:var(--surface);color:var(--ink)}
  #view-topic .tv-item{background:transparent;box-shadow:none;border-radius:0;margin:0;padding:8px 2px;border-bottom:1px solid var(--line)}
  #view-topic .tv-item .tag{display:none}   /* '할일/메모' 태그 — 데스크톱 플랫 리스트에선 소음 */
  #view-topic .tv-item .dd{font-size:11.5px;color:var(--muted);flex:0 0 auto}
  #view-topic .tv-charts{display:flex;gap:44px;align-items:center;justify-content:flex-start}
  #view-topic .tv-charts .fcard{background:transparent;box-shadow:none;border-radius:0;padding:0;min-width:0}
  #view-topic .fcard.bar{flex:2 1 0;width:auto;min-width:0;overflow:hidden}
  #view-topic #tvBar{width:100%;margin-left:0}   /* 모바일 Frappe 크롭 핵(-44px) 리셋 — 데스크톱 wbar는 셀프 렌더 */
  #view-topic #tvBar .wbar{width:100%;gap:8px;box-sizing:border-box}
  #view-topic #tvBar .wbar .b{flex:1 1 0;min-width:0}
  #view-topic .fcard.month{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center}
  #view-topic .fcard.month .sring{width:62px;height:62px}   /* 링 = 1/3 칸을 공백 없이 채우는 크기 */
  #view-topic .fcard.month .sring b{font-size:13px}
  #view-topic .fcard.month .ml1{font-size:11.5px;font-weight:800}
  #view-topic .fcard.month .ml2{font-size:10.5px;color:var(--muted)}

  #view-memo .memo-body, #view-memo .memo-body *{user-select:text;-webkit-user-select:text}   /* 여러 줄 드래그 선택 → 일괄 변환. 모바일은 none 유지(꾹 누르기 보호) */

  /* ── 오늘로 보내기 — hover 「＋ 오늘」 칩 / 날짜 칩(항상) / 선택 모드 ── */
  .tvd-when{font-size:11px;font-weight:700;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));
    background:color-mix(in srgb,var(--accent) 7%,var(--surface));border-radius:6px;padding:3px 8px;cursor:pointer;
    font-family:inherit;flex:0 0 auto;visibility:hidden}
  #view-topic .tv-item:hover .tvd-when{visibility:visible}
  .tvd-when.set{visibility:visible;color:var(--nc-green);border-color:color-mix(in srgb,var(--nc-green) 35%,var(--line));
    background:color-mix(in srgb,var(--nc-green) 9%,var(--surface))}
  .tvd-when:hover{filter:brightness(.96)}
  .tv-item .pick{width:16px;height:16px;border-radius:5px;border:1.5px solid var(--line-strong);flex:0 0 auto;cursor:pointer;box-sizing:border-box}
  .tv-item .pick.on{background:var(--accent);border-color:var(--accent);position:relative}
  .tv-item .pick.on::after{content:'✓';color:#fff;font-size:11px;position:absolute;inset:0;display:grid;place-items:center}
  .tv-item.picked{background:color-mix(in srgb,var(--accent) 5%,transparent);border-radius:8px}
  .tvd-selbar{display:flex;align-items:center;gap:10px;margin-top:12px;background:var(--surface);border:1.5px solid var(--accent);
    border-radius:11px;padding:9px 13px;box-shadow:var(--shadow-lg)}
  .tvd-selbar b{font-size:12.5px;color:var(--ink)}
  .tvd-selbar .btn-acc{margin-left:auto;font-family:inherit;font-size:12px;font-weight:700;border:0;border-radius:8px;
    padding:7px 14px;background:var(--accent);color:#fff;cursor:pointer}
  .tvd-selbar .btn-acc:disabled{opacity:.45;cursor:default}

  /* ── 주제 통계 = 확정 목업 wbar(심플 주간 바) — Frappe는 모바일 전용 ── */
  #view-topic .sechead .lgd{display:none}   /* 지난주 비교 범례 — 데스크톱 wbar엔 이번 주만 */
  .stsum{font-size:11.5px;font-weight:400;color:var(--faint)}   /* 접힌 통계 헤더 요약 — 접혀 있어도 이번 주 개수는 보이게 */
  .wbar{display:flex;align-items:flex-end;gap:10px;height:78px;padding:6px 2px 0}
  .wbar .b{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;font-size:10.5px;color:var(--muted)}
  .wbar .b i{display:block;width:100%;max-width:26px;border-radius:5px 5px 2px 2px;background:color-mix(in srgb,var(--nc-green) 55%,var(--surface))}
  .wbar .b.hot i{background:var(--nc-green)}
  .wbar .b b{font-size:10.5px;color:var(--ink);font-weight:700;min-height:13px}

  /* 이번 주 완료 항목 리스트 — 통계 아래(무엇을 했는지) */
  .wdone{margin-top:8px}
  .wdone .wdn{display:flex;align-items:center;gap:9px;padding:5px 2px;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--ink)}
  .wdone .wdn:last-child{border-bottom:0}
  .wdone .wd{font-size:10.5px;font-weight:700;color:var(--nc-green);background:color-mix(in srgb,var(--nc-green) 12%,var(--surface));border-radius:5px;padding:1.5px 6px;flex:0 0 auto}
  .wdone .wdn.more-n{color:var(--faint);border-bottom:0}
  .wdone .tx{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  /* ── ④ 루틴 — 오늘 상단 섹션(묶음을 오늘로 한 번에) ── */
  .rt-sec{margin:8px 0 2px}
  .rt-h{display:flex;align-items:baseline;gap:7px;font-size:13px;font-weight:700;color:var(--muted);margin:10px 0 4px}
  .rt-h .n{font-size:11px;font-weight:400;color:var(--faint)}
  .rt-h .rt-new.sm{margin-left:auto}
  .rt-new{font-family:inherit;font-size:12px;font-weight:600;color:var(--muted);border:1px dashed var(--line-strong);
    background:transparent;border-radius:9px;padding:8px 13px;cursor:pointer;display:block;width:100%;text-align:center}
  .rt-new.sm{width:auto;padding:4px 10px;font-size:11.5px}
  .rt-new:hover{background:var(--surface);color:var(--ink)}
  .rt-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:8px}
  .rt-card .r1{display:flex;align-items:center;gap:9px}
  .rt-card .nm{font-size:14px;font-weight:800;color:var(--ink);cursor:pointer}
  .rt-card .nm:hover{color:var(--accent)}
  .rt-card .cnt{font-size:11.5px;color:var(--faint)}
  .rt-card .go{margin-left:auto;display:flex;gap:8px;align-items:center}
  .rt-seg{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--bg)}
  .rt-seg span{font-size:11px;font-weight:700;color:var(--muted);padding:5px 10px;border-right:1px solid var(--line);cursor:pointer}
  .rt-seg span:last-child{border-right:0}
  .rt-seg span.on{background:var(--accent);color:#fff}
  .rt-go{font-family:inherit;font-size:12px;font-weight:700;border:0;border-radius:8px;padding:7px 13px;background:var(--accent);color:#fff;cursor:pointer}
  .rt-go:disabled{opacity:.5;cursor:default}
  .rt-card .items{margin-top:8px;display:flex;flex-direction:column;gap:3px}
  .rt-card .it{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted)}
  .rt-card .it.dim{opacity:.4}
  .rt-card .it .p{width:13px;height:13px;border-radius:50%;border:1.5px solid var(--line-strong);flex:0 0 auto;box-sizing:border-box}
  .rt-card .it .p.A{border:2px solid var(--accent)}
  .rt-card .it .p.B{border-color:#c98a4a}
  .rt-card .last{margin-top:8px;font-size:11.5px;color:var(--faint);border-top:1px dashed var(--line);padding-top:7px}
  .rt-card .last .ln{color:var(--ink);font-weight:600}
  .rt-ln{font-family:inherit;border:0;background:transparent;color:var(--faint);cursor:pointer;font-size:11px;padding:0 3px}
  .rt-ln:hover{color:var(--accent)}
  .rt-lni{width:100%;font-family:inherit;font-size:11.5px;color:var(--ink);border:1px solid var(--line);border-radius:7px;
    padding:5px 8px;background:var(--bg);outline:none;box-sizing:border-box}
  .rt-lni:focus{border-color:var(--accent)}
  .fc-cm{width:100%;max-width:620px;margin-top:12px;font-family:inherit;font-size:13px;color:var(--ink);text-align:center;
    border:0;border-bottom:1.5px dashed var(--line-strong);background:transparent;padding:7px 4px;outline:none}
  .fc-cm:focus{border-bottom-color:var(--accent);border-bottom-style:solid}
  .fc-cm::placeholder{color:var(--faint)}
  .item .dnote{grid-column:1/-1;font-size:11.5px;color:var(--muted);padding:2px 2px 0 46px}   /* 완료 코멘트 — 데스크톱 표시(pc-only) */
  .rt-edit .rt-nm{flex:1;font-family:inherit;font-size:13.5px;font-weight:700;color:var(--ink);border:1.5px solid var(--line);
    border-radius:8px;padding:7px 10px;background:var(--bg);outline:none}
  .rt-edit .rt-nm:focus{border-color:var(--accent)}
  .rt-edit .rt-items{width:100%;margin-top:8px;font-family:inherit;font-size:12.5px;color:var(--ink);border:1.5px solid var(--line);
    border-radius:8px;padding:8px 10px;background:var(--bg);outline:none;resize:vertical;box-sizing:border-box}
  .rt-edit .rt-items:focus{border-color:var(--accent)}
  .rt-edit .r2{display:flex;gap:8px;margin-top:8px}
  .rt-edit .r2 button{font-family:inherit;font-size:12px;font-weight:700;border-radius:8px;padding:7px 13px;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--muted)}
  .rt-edit .r2 .rt-save{background:var(--accent);border-color:var(--accent);color:#fff}
  .rt-edit .r2 .rt-del{margin-left:auto;color:#c0483c}

  /* ── 집중 실행 모드(③) — 풀스크린, 큰 글씨, 앞뒤 흐림(맥락 유지) ── */
  .fc-wrap{position:fixed;inset:0;z-index:80;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px}
  .fc-top{position:absolute;top:18px;left:0;right:0;display:flex;align-items:center;gap:12px;padding:0 26px}
  .fc-x{font-family:inherit;font-size:16px;color:var(--muted);background:transparent;border:0;cursor:pointer;padding:4px 8px}
  .fc-pg{flex:1;height:4px;border-radius:2px;background:var(--surface-2);overflow:hidden}
  .fc-pg i{display:block;height:100%;width:0;background:var(--nc-green);transition:width .3s ease}
  .fc-cnt{font-size:12px;font-weight:700;color:var(--muted);flex:0 0 auto}
  .fc-wake{font-size:11px;font-weight:700;color:var(--nc-green);background:color-mix(in srgb,var(--nc-green) 12%,var(--surface));border-radius:6px;padding:3px 8px;flex:0 0 auto}
  .fc-prev,.fc-next{font-size:14px;color:var(--faint);opacity:.45;max-width:560px;text-align:center;padding:4px 0;min-height:22px;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .fc-cur{width:100%;max-width:620px;text-align:center;margin:14px 0}
  .fc-tp{font-size:12.5px;font-weight:700;color:var(--nc-green);margin-bottom:8px}
  .fc-title{font-size:27px;font-weight:800;letter-spacing:-.4px;line-height:1.35;color:var(--ink)}
  .fc-nt{margin-top:14px;font-size:14px;line-height:1.75;color:var(--muted);text-align:left;background:var(--surface);border-radius:12px;
    padding:14px 18px;box-shadow:var(--shadow);max-height:300px;overflow-y:auto}
  .fc-nt .ck{display:flex;align-items:center;gap:8px;margin:3px 0;cursor:pointer}
  .fc-nt .ck i{width:15px;height:15px;border:1.5px solid var(--line-strong);border-radius:4px;flex:0 0 auto;font-style:normal;
    display:grid;place-items:center;font-size:10px;color:#fff;box-sizing:border-box}
  .fc-nt .ck.on i{background:var(--nc-green);border-color:var(--nc-green)}
  .fc-nt .ck.on span{color:var(--faint);text-decoration:line-through}
  .tmr{color:#5b8bd0;font-weight:700;border-bottom:1.5px dashed color-mix(in srgb,#5b8bd0 55%,transparent);cursor:pointer}
  .tmr:hover{filter:brightness(.9)}
  .fc-acts{display:flex;gap:10px;margin-top:22px}
  .fc-b{font-family:inherit;font-size:14px;font-weight:800;border-radius:12px;padding:12px 26px;border:1.5px solid var(--line);
    background:var(--surface);color:var(--muted);cursor:pointer}
  .fc-b:hover{border-color:var(--line-strong);color:var(--ink)}
  .fc-b.fc-done{background:var(--nc-green);border-color:var(--nc-green);color:#fff}
  .fc-b.fc-done.undone{background:var(--surface);border-color:var(--line-strong);color:var(--muted)}
  body.fc-on{overflow:hidden}
  .tmr-hud{position:fixed;left:50%;transform:translateX(-50%);bottom:16px;z-index:85;display:flex;align-items:center;gap:9px;
    background:var(--ink);color:#fff;border-radius:999px;padding:8px 14px;font-size:12.5px;font-weight:700;box-shadow:var(--shadow-lg)}
  .tmr-hud .dot{width:7px;height:7px;border-radius:50%;background:#5b8bd0}
  .tmr-hud .lb{opacity:.75;font-weight:500;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tmr-hud .x{background:transparent;border:0;color:#fff;opacity:.6;cursor:pointer;font-size:12px;padding:0 2px}
  .tmr-hud b{font-variant-numeric:tabular-nums}

  /* ── 데스크톱 감각 — 호버 ── */
  @media (hover: hover) {
    .shelf-row:hover{transform:translateY(-1.5px);box-shadow:var(--shadow-lg);transition:transform .14s ease,box-shadow .14s ease;cursor:pointer}
    #mainBody .mcard:hover,#mainBody .tp-card:hover,#mainBody .memo-row:hover,#mainBody .mini:hover{background:color-mix(in srgb,var(--ink) 4%,transparent);border-radius:8px}   /* 플랫 대시보드 — 부양 대신 틴트(확정 목업) */
    .gc-c:hover{filter:brightness(.96)}
  }
  ::-webkit-scrollbar{width:10px}
  ::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:6px;border:2.5px solid var(--bg)}
  ::-webkit-scrollbar-track{background:transparent}
}

/* ── 1200px+ = 종이 플래너 스프레드 — 모든 화면: 좌 본문(744) + 우 고정 패널 396px(세로 괘선이 화면 끝까지). 오늘 패널 기하가 기준 ── */
@media (min-width: 1200px) {
  main.app{max-width:744px}   /* 오늘 리스트 — 본문 폭 통일 */
  /* 주제 상세 — 정보 컬럼을 오늘 패널과 같은 기하로(요청: 옆 라인 아래까지, 가로폭 오늘과 동일) */
  body.tvdside[data-view="topicview"]{padding-right:396px}
  body.tvdside[data-view="topicview"] #view-topic{max-width:744px}
  body.tvdside[data-view="topicview"] #topicBody.tvd{display:block}
  body.tvdside[data-view="topicview"] .tvd-side{position:fixed;top:0;right:0;bottom:0;width:396px;box-sizing:border-box;
    padding:22px 26px 30px;overflow-y:auto;z-index:6;border-left:1.5px solid var(--line);background:var(--bg)}
  /* 메인 — 우측 열(메모·활동)도 같은 패널 기하 */
  body[data-view="main"]{padding-right:396px}
  body[data-view="main"] #view-main{max-width:744px}
  body[data-view="main"] #mainBody{display:block}
  body[data-view="main"] #mainBody .mcol:nth-child(2){position:fixed;top:0;right:0;bottom:0;width:396px;box-sizing:border-box;
    padding:22px 26px 30px;overflow-y:auto;z-index:6;border-left:1.5px solid var(--line);background:var(--bg)}
  /* 메모 보기·편집 — 같은 본문 폭, 줄노트가 폭을 채움(종이 플래너) */
  #view-memo,#view-editor{max-width:744px}
  #view-memo .memo-body{width:100%}
}

/* ── 1200px+ = 3영역 작업공간: 레일 | 오늘 리스트 | 우측 컨텍스트 패널(대시보드 요약) ── */
@media (min-width: 1200px) {
  body[data-view="today"]{padding-right:396px}
  body[data-view="today"] #view-main{display:block;position:fixed;top:0;right:0;bottom:0;width:396px;box-sizing:border-box;
    max-width:none;margin:0;padding:22px 26px 30px;overflow-y:auto;z-index:6;
    border-left:1.5px solid var(--line);background:var(--bg)}
  body[data-view="today"] #view-main .mhead{display:none}
  body[data-view="today"] #view-main .msec-m_today{display:none}   /* 오늘 카드 — 왼쪽이 오늘 리스트라 중복(키 클래스 = tabs.js msec()와의 명시 계약, :has 폴백 문제 없음) */
  body[data-view="today"] #view-main #mainBody{display:block}   /* 패널은 1열 — .mcol이 그냥 블록으로 쌓임 */
}
