:root{
  --paper:#F2F3F0; --card:#FFFFFF; --ink:#191C1A; --muted:#666B64;
  --hair:#E3E4DF; --hair2:#EDEEEA; --accent:#26364F;
  --good:#3C7A55; --good-bg:#EAF1EC;
  --bad:#B54A3C; --bad-bg:#F6E7E3;
  --warn:#B5822C; --warn-bg:#F6EEDD;
  --info:#2E5FA3; --info-bg:#E7EEF7;
  --unset:#8A8F87; --unset-bg:#EDEEE9;
  --sans:system-ui,-apple-system,"Segoe UI","Malgun Gothic","Apple SD Gothic Neo",sans-serif;
  --mono:ui-monospace,"SFMono-Regular","Cascadia Code","Consolas",monospace;
  --addform-h:0px; /* #addform이 창 하단에 고정될 때 실제 높이 — JS(syncAddformSpacing)가 갱신 */
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.5;font-size:14px}
[hidden]{display:none!important}
.wrap{max-width:900px;margin:0 auto;padding:20px 16px 60px}

/* login */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center}
.login-card{background:var(--card);border:1px solid var(--hair);border-radius:16px;padding:36px 40px;text-align:center;max-width:320px}
.login-card h1{margin:0 0 4px;font-size:22px}
.login-card .sub{color:var(--muted);font-size:13px;margin:0 0 22px}
.google-btn{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--hair);background:var(--card);
  border-radius:10px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;color:var(--ink)}
.google-btn:hover{background:var(--hair2)}
.google-btn .g{width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;font-size:12px;
  display:inline-flex;align-items:center;justify-content:center;font-weight:800}
.login-notice{background:var(--bad-bg);color:var(--bad);border-radius:8px;padding:8px 12px;font-size:12.5px;margin-bottom:16px}

.linkbtn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:13px;font-weight:600;padding:4px 0}

/* ---- left sidebar drawer ---- */
.applayout{display:flex;min-height:100vh}
.sidebar{width:220px;flex:none;background:var(--card);border-right:1px solid var(--hair);
  padding:18px 14px;display:flex;flex-direction:column;
  position:sticky;top:0;height:100vh;box-sizing:border-box}
.sidebar-top{margin-bottom:18px;flex:none}
.sidebar-top .brand{font-weight:800;font-size:15px}
.navlist{display:flex;flex-direction:column;gap:2px;margin-bottom:18px;flex:1;min-height:0;overflow-y:auto}
.navitem{text-align:left;background:none;border:none;padding:8px 10px;border-radius:8px;
  font-size:13.5px;font-weight:600;color:var(--muted);cursor:pointer}
.navitem:hover{background:var(--hair2)}
.navitem.active{background:var(--hair2);color:var(--accent)}
.settings-navitem{flex:none;border-top:1px solid var(--hair);border-radius:0;padding-top:12px;margin-top:8px}
.sidebar-sub{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);margin:4px 0 6px}
.sidebar-bottom{flex:none;border-top:1px solid var(--hair);padding-top:10px;margin-top:10px;
  display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted);word-break:break-all}
.content{flex:1;min-width:0;padding:20px 24px;padding-bottom:calc(var(--addform-h) + 60px);max-width:1600px}

.drawer-toggle{display:none;position:fixed;top:14px;left:14px;z-index:20;background:var(--card);
  border:1px solid var(--hair);border-radius:8px;padding:6px 12px;font-size:16px;cursor:pointer}
.scrim{display:none}
@media(max-width:760px){
  .sidebar{position:fixed;left:0;top:0;bottom:0;z-index:15;transform:translateX(-100%);
    transition:transform .2s ease;box-shadow:2px 0 16px rgba(0,0,0,.12);width:240px}
  .sidebar.open{transform:translateX(0)}
  .drawer-toggle{display:block}
  .scrim.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.32);z-index:14}
  .content{padding-top:60px;padding-left:16px;padding-right:16px}
}

/* views */
.view{display:none}
.view.active{display:block}

/* product filter (사이드바 안, 세로 목록) */
.pfilter{display:flex;flex-direction:column;gap:1px;overflow-y:auto;flex:1}
.pchip{text-align:left;font-family:var(--sans);font-size:13px;font-weight:500;padding:6px 10px;
  border-radius:8px;border:none;background:none;color:var(--muted);cursor:pointer;
  display:flex;align-items:center;gap:7px}
.pchip:hover{background:var(--hair2)}
.pchip.active{background:var(--hair2);color:var(--accent);font-weight:700}
.pchip .dot{width:7px;height:7px;border-radius:50%;background:var(--dot,var(--muted));flex:none}

/* task list */
.section-label{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px}
.section-label:first-child{margin-top:0}
.tlist{display:flex;flex-direction:column;gap:8px}
.trow{background:var(--card);border:1px solid var(--hair);border-radius:10px;padding:10px 12px;display:flex;align-items:center;gap:10px}
.trow>div{min-width:0;flex:1}
.title-line{display:flex;align-items:center;gap:5px;min-width:0}
.ai-badge{flex:none;font-family:var(--mono);font-size:9px;font-weight:800;letter-spacing:.03em;color:#fff;
  background:var(--info);border-radius:4px;padding:1px 5px;cursor:default}
input.title-input,input.goal-title-input{display:block;width:100%;min-width:0;flex:1;font-size:13.5px;font-family:var(--sans);color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid transparent;background:transparent;border-radius:5px;padding:2px 4px;margin:-2px -4px}
input.title-input:hover,input.goal-title-input:hover{background:var(--hair2)}
input.title-input:focus,input.goal-title-input:focus{outline:none;border-color:var(--hair);background:var(--card)}
.trow .meta{display:flex;gap:6px;flex-wrap:wrap;font-size:10.5px;color:var(--muted);margin-top:3px}
.tag{font-family:var(--mono);font-size:10px;font-weight:700;padding:2px 7px;border-radius:5px;color:#fff}
.tag.none{background:var(--hair2);color:var(--unset)}
select.status{font-family:var(--mono);font-size:11px;border-radius:6px;border:1px solid var(--hair);padding:4px 6px;background:var(--card)}
select.priority-select,select.goal-priority-select{flex:none;font-family:var(--mono);font-size:11px;font-weight:700;text-align:center;width:32px;
  border-radius:6px;border:1px solid var(--hair);padding:4px 2px;background:var(--card);color:var(--ink)}
select.priority-select.none{color:var(--unset)}
select.estimate-select{flex:none;font-family:var(--mono);font-size:11px;text-align:center;width:44px;
  border-radius:6px;border:1px solid var(--hair);padding:4px 2px;background:var(--card);color:var(--ink)}
select.estimate-select.none{color:var(--unset)}
.goal-select{font-family:var(--sans);font-size:10.5px;border:1px solid var(--hair);border-radius:5px;padding:1px 4px;background:var(--card);color:var(--muted);max-width:160px}
.goal-select.none{color:var(--bad);border-color:var(--bad-bg)}
.assignee-select,.goal-actor-select,.goal-cycle-select,.goal-verdict-select{font-family:var(--sans);font-size:10.5px;border:1px solid var(--hair);border-radius:5px;padding:1px 4px;background:var(--card);color:var(--muted);max-width:120px}
.assignee-select.none,.goal-actor-select.none,.goal-verdict-select.none{color:var(--unset)}
input.plandate{font-family:var(--mono);font-size:11px;border-radius:6px;border:1px solid var(--hair);padding:3px 5px;background:var(--card);flex:none;max-width:120px}
.del-btn{flex:none;background:none;border:1px solid var(--hair);border-radius:6px;color:var(--muted);cursor:pointer;
  font-size:12px;line-height:1;padding:5px 8px}
.del-btn:hover{background:var(--bad-bg);color:var(--bad);border-color:var(--bad)}
.detail-btn{flex:none;background:none;border:1px solid var(--hair);border-radius:6px;color:var(--muted);cursor:pointer;
  font-size:12px;line-height:1;padding:5px 8px}
.detail-btn:hover{background:var(--info-bg);color:var(--info);border-color:var(--info)}
.empty{color:var(--muted);font-size:13px;padding:16px 0}

/* add form — task 생성 폼은 창 하단에 항상 고정(CEO 지시 a26704d5). 실제 높이는 JS가
   --addform-h로 흘려서 목록 마지막 줄·토스트가 가리지 않게 한다(syncAddformSpacing). */
.addform{background:var(--card);border:1px solid var(--hair);border-radius:12px;padding:14px;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.addform input[type=text]{flex:1;min-width:160px;border:1px solid var(--hair);border-radius:8px;padding:8px 10px;font-size:13.5px}
.addform select{border:1px solid var(--hair);border-radius:8px;padding:8px 10px;font-size:13px}
.addform button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:8px 16px;font-size:13.5px;font-weight:700;cursor:pointer}
.addform button:disabled{opacity:.5;cursor:default}
/* 좌우아래 여백을 둬 떠 있는 카드처럼 보이게 한다(CEO 지시 b1a64a03) — 간격 16px은
   syncAddformSpacing()의 계산과 맞춰져 있으니 두 곳을 같이 고칠 것. */
#addform{position:fixed;left:236px;right:16px;bottom:16px;z-index:10;margin:0;
  box-shadow:0 4px 20px rgba(0,0,0,.12)}

.toast{position:fixed;bottom:calc(var(--addform-h, 0px) + 20px);left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;
  padding:10px 18px;border-radius:10px;font-size:13px}

/* ---- 스탠드업 · 스프린트 목표 ---- */
.actor-group{margin-bottom:22px}
.actor-group h3{font-size:13.5px;font-weight:800;margin:0 0 8px;display:flex;align-items:center;gap:8px}
.actor-group h3 .count{font-family:var(--mono);font-size:11px;font-weight:400;color:var(--muted)}
.prio{font-family:var(--mono);font-size:10px;font-weight:800;padding:2px 7px;border-radius:5px}
.prio.must{background:var(--bad-bg);color:var(--bad)}
.prio.nice{background:var(--info-bg);color:var(--info)}
.verdict{font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:6px}
.verdict.hit{background:var(--good-bg);color:var(--good)}
.verdict.part{background:var(--warn-bg);color:var(--warn)}
.verdict.miss{background:var(--bad-bg);color:var(--bad)}
.verdict.pivot{background:var(--hair2);color:var(--muted)}

.pill{font-family:var(--mono);font-size:10px;font-weight:700;padding:2px 7px;border-radius:5px;white-space:nowrap}
.pill.backlog{background:var(--hair2);color:var(--unset)}
.pill.todo{background:var(--hair2);color:var(--muted)}
.pill.doing{background:var(--warn-bg);color:var(--warn)}
.pill.waiting{background:var(--bad-bg);color:var(--bad)}
.pill.review{background:var(--info-bg);color:var(--info)}
.pill.done{background:var(--good-bg);color:var(--good)}
.pill.canceled{background:var(--unset-bg);color:var(--unset)}

/* 스탠드업 — 한 줄 요약 */
.standup-line{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:13px;border-top:1px solid var(--hair2)}
.standup-line:first-of-type{border-top:none}
.standup-line .t{flex:1;overflow-wrap:anywhere}
.standup-goal{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}

/* 스프린트 목표 — 카드 */
.goal-card{background:var(--card);border:1px solid var(--hair);border-radius:10px;padding:10px 12px;margin-bottom:8px}
.goal-card .top{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.goal-card .title{flex:1;font-size:13.5px;font-weight:600;overflow-wrap:anywhere}
.goal-card .meta{display:flex;gap:6px;flex-wrap:wrap;font-size:10.5px;color:var(--muted);align-items:center}
.bar{height:5px;border-radius:3px;background:var(--hair2);margin-top:6px;overflow:hidden}
.bar>span{display:block;height:100%;background:var(--good)}
.goal-product-select,.product-select{font-family:var(--mono);font-size:10px;font-weight:700;border:none;border-radius:5px;padding:2px 7px;
  background:var(--hair2);color:var(--unset);cursor:pointer}
.goal-product-select.none,.product-select.none{background:var(--hair2);color:var(--unset)}

/* 스프린트 2주 캘린더 (스탠드업 상단) */
.sprint-cal{display:flex;gap:5px;overflow-x:auto;padding-bottom:10px;margin-bottom:14px;border-bottom:1px solid var(--hair)}
.cal-day{flex:none;width:52px;text-align:center;padding:7px 4px;border-radius:9px;border:1.5px solid transparent;
  background:var(--card);cursor:pointer}
.cal-day .wd{font-family:var(--mono);font-size:9.5px;color:var(--muted);text-transform:uppercase}
.cal-day .dnum{font-size:15px;font-weight:700;margin-top:1px}
.cal-day.today{border-color:var(--accent)}
.cal-day.selected{background:var(--accent);border-color:var(--accent)}
.cal-day.selected .wd,.cal-day.selected .dnum{color:#fff}
.cal-day:hover:not(.selected):not(.disabled){background:var(--hair2)}
.cal-day.disabled{cursor:default;opacity:.4}

/* 스프린트 탭 — 스탠드업 설정 카드 */
.settings-card{background:var(--card);border:1px solid var(--hair);border-radius:12px;padding:14px;margin-bottom:16px}
.settings-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:6px 0}
.settings-row+.settings-row{border-top:1px solid var(--hair2)}
.settings-label{font-size:12.5px;font-weight:600;color:var(--muted);min-width:110px;flex:none}
.settings-detail{font-size:12.5px;color:var(--muted)}
.settings-detail code{font-family:var(--mono);background:var(--hair2);border-radius:4px;padding:1px 4px}
.status-color-input{width:36px;height:26px;padding:0;border:1px solid var(--hair);border-radius:6px;background:var(--card);cursor:pointer}
.mcp-token-box{margin-top:10px;padding:10px;border:1px solid var(--warn);background:var(--warn-bg);border-radius:8px}
.mcp-token-cmd{width:100%;margin-top:6px;font-family:var(--mono);font-size:11px;border:1px solid var(--hair);border-radius:6px;padding:8px;resize:vertical;background:var(--card);box-sizing:border-box}
.daypicker{display:flex;flex-wrap:wrap;gap:10px}
.daychip{display:flex;align-items:center;gap:5px;font-size:12.5px;cursor:pointer}
.tztimes{display:flex;flex-wrap:wrap;gap:14px}
.tzfield{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;color:var(--muted)}
.tzfield input[type=time]{font-family:var(--mono);font-size:12px;border:1px solid var(--hair);border-radius:6px;padding:3px 6px;background:var(--card)}

/* 그룹별 보기 선택 (전체·제품 탭) */
.toolbar-row{display:flex;flex-wrap:wrap;gap:16px}
.groupbar{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);margin-bottom:12px}
.groupbar select{font-family:var(--sans);font-size:12.5px;border:1px solid var(--hair);border-radius:6px;padding:4px 8px;background:var(--card);color:var(--ink)}
.sortdir-btn{font-family:var(--sans);font-size:12.5px;border:1px solid var(--hair);border-radius:6px;padding:4px 8px;background:var(--card);color:var(--ink);cursor:pointer}
.sortdir-btn:hover{background:var(--hair2)}

/* 멀티셀렉트 필터(상태·담당자·제품) — <details> 기반 체크박스 팝업 */
.msf{position:relative}
.msf summary{font-family:var(--sans);font-size:12.5px;border:1px solid var(--hair);border-radius:6px;padding:4px 8px;
  background:var(--card);color:var(--ink);cursor:pointer;list-style:none;white-space:nowrap}
.msf summary::-webkit-details-marker{display:none}
.msf summary::after{content:" ▾";color:var(--muted);font-size:10px}
.msf[open] summary{border-color:var(--accent)}
.msf-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:20;background:var(--card);border:1px solid var(--hair);
  border-radius:8px;padding:6px;min-width:160px;max-height:240px;overflow-y:auto;box-shadow:0 4px 16px rgba(0,0,0,.1)}
.msf-item{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink);padding:4px 6px;border-radius:5px;cursor:pointer;white-space:nowrap}
.msf-item:hover{background:var(--hair2)}

/* 제품 탭 — 레지스트리 목록 */
.product-row{background:var(--card);border:1px solid var(--hair);border-radius:10px;padding:9px 12px;
  display:flex;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap}
.product-row.inactive{opacity:.55}
.prow-filter{flex:1;cursor:pointer;font-size:13.5px;display:flex;align-items:center;gap:8px;min-width:140px}
.prow-filter:hover{text-decoration:underline}
.product-row select{font-family:var(--sans);font-size:12.5px;border:1px solid var(--hair);border-radius:6px;padding:4px 8px;background:var(--card)}

/* Time Boxing 캘린더 — 주간/3일/월간 뷰 */
.tb-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:12px;font-size:13px}
.tb-toolbar #tb-range-label{font-family:var(--mono);font-size:12px;color:var(--muted)}
.tb-viewswitch{display:flex;gap:4px;margin-left:auto}
.tb-view-btn{font-family:var(--sans);font-size:12px;padding:4px 10px;border:1px solid var(--hair);border-radius:6px;
  background:var(--card);color:var(--muted);cursor:pointer}
.tb-view-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}
.tb-layout{display:flex;gap:16px;align-items:flex-start}
.tb-grid{flex:1;min-width:0;display:flex;background:var(--card);border:1px solid var(--hair);border-radius:10px;overflow:hidden}
.tb-gutter{flex:none;width:52px;position:relative;border-right:1px solid var(--hair);padding-top:28px}
.tb-hour-label{position:absolute;transform:translateY(-6px);font-family:var(--mono);font-size:10px;color:var(--muted);right:6px}
.tb-days{flex:1;display:flex;min-width:0}
.tb-day{flex:1;min-width:0;border-right:1px solid var(--hair2)}
.tb-day:last-child{border-right:none}
.tb-day-head{height:28px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;
  color:var(--muted);border-bottom:1px solid var(--hair);font-family:var(--mono)}
.tb-day.today .tb-day-head{color:var(--accent);background:var(--hair2)}
.tb-day-body{position:relative;
  background-image:repeating-linear-gradient(to bottom, var(--hair2) 0, var(--hair2) 1px, transparent 1px, transparent 48px)}
.tb-block{position:absolute;left:2px;right:2px;border-radius:5px;padding:2px 4px;overflow:hidden;
  background:var(--info-bg);border:1px solid var(--info);font-size:10.5px;cursor:grab;user-select:none}
.tb-block.status-done{background:var(--good-bg);border-color:var(--good)}
.tb-block.status-waiting{background:var(--bad-bg);border-color:var(--bad)}
.tb-block.ai{border-style:dashed}
.tb-block.dragging{cursor:grabbing;opacity:.75;z-index:5;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.tb-block.resizing{opacity:.75;z-index:5;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.tb-resize-handle{position:absolute;left:0;right:0;bottom:0;height:6px;cursor:ns-resize}
.tb-block-time{display:block;font-family:var(--mono);font-size:9px;color:var(--muted)}
.tb-block-title{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tb-unschedule{position:absolute;top:1px;right:1px;border:none;background:none;color:var(--muted);cursor:pointer;
  font-size:10px;line-height:1;padding:2px}
.tb-unschedule:hover{color:var(--bad)}

.tb-month-grid{flex:1;min-width:0}
.tb-month-headrow{display:flex;border-bottom:1px solid var(--hair)}
.tb-month-headcell{flex:1;min-width:0;text-align:center;font-size:11px;font-weight:700;color:var(--muted);
  font-family:var(--mono);padding:6px 0}
.tb-month-body{display:flex;flex-wrap:wrap}
.tb-month-cell{width:calc(100% / 7);min-width:0;min-height:96px;border-right:1px solid var(--hair2);
  border-bottom:1px solid var(--hair2);padding:4px;box-sizing:border-box}
.tb-month-cell:nth-child(7n){border-right:none}
.tb-month-cell.outside{background:var(--hair2);opacity:.6}
.tb-month-cell.today .tb-month-daynum{color:var(--accent);font-weight:700}
.tb-month-daynum{font-family:var(--mono);font-size:11px;color:var(--muted);margin-bottom:3px}
.tb-month-tasks{display:flex;flex-direction:column;gap:2px}
.tb-month-task{font-size:10px;padding:1px 4px;border-radius:4px;background:var(--info-bg);border:1px solid var(--info);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.tb-month-task.status-done{background:var(--good-bg);border-color:var(--good)}
.tb-month-task.status-waiting{background:var(--bad-bg);border-color:var(--bad)}
.tb-month-task.ai{border-style:dashed}
.tb-month-more{font-size:10px;color:var(--muted)}
.tb-sidebar{flex:none;width:280px}
#tb-autoassign{display:block;width:100%;text-align:center;margin-bottom:10px;padding:6px 0;
  border:1px solid var(--hair);border-radius:8px;background:var(--card)}
.tb-unsched-row{background:var(--card);border:1px solid var(--hair);border-radius:10px;padding:8px 10px;margin-bottom:8px}
.tb-unsched-title{font-size:13px;margin-bottom:6px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.tb-debt-badge{font-size:10px;color:var(--bad);background:var(--bad-bg);border:1px solid var(--bad);
  border-radius:5px;padding:1px 5px;white-space:nowrap}
.tb-unsched-form{display:flex;flex-wrap:wrap;gap:4px}
.tb-unsched-form input,.tb-unsched-form select{font-family:var(--mono);font-size:11px;border:1px solid var(--hair);
  border-radius:5px;padding:3px 4px;background:var(--card)}
.tb-unsched-form button{font-size:11px;font-weight:700;border:none;border-radius:5px;background:var(--accent);
  color:#fff;padding:4px 8px;cursor:pointer}

@media(max-width:900px){
  .tb-layout{flex-direction:column}
  .tb-sidebar{width:100%}
}

/* task/goal 상세 — 오른쪽 서랍(CEO 지시 9a3a0fe2, 2026-09-20 이전엔 가운데 뜨는 모달이었음) */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;justify-content:flex-end;z-index:50}
.modal{background:var(--card);width:100%;max-width:460px;height:100%;overflow-y:auto;padding:24px;position:relative;box-shadow:-6px 0 24px rgba(0,0,0,.15)}
.modal-close{position:absolute;top:12px;right:12px;background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px;padding:4px}
.modal-close:hover{color:var(--ink)}
.detail-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding-right:24px}
.detail-head h2{font-size:17px;margin:0;overflow-wrap:anywhere}
.detail-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--muted);margin-bottom:10px}
.detail-priority{font-family:var(--mono);font-weight:700;font-size:11px;background:var(--hair2);border-radius:5px;padding:2px 6px}
.detail-dates{font-family:var(--mono);font-size:11.5px;color:var(--muted);margin-bottom:10px}
.detail-notes{font-size:13px;white-space:pre-wrap;background:var(--paper);border-radius:8px;padding:10px;margin-bottom:10px}
.detail-source{background:var(--info-bg);border-radius:8px;padding:10px;margin-bottom:10px}
.detail-source-text{font-size:13px;white-space:pre-wrap;color:var(--ink)}
.detail-section-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px}
.detail-log{font-size:12.5px;padding:4px 0;border-top:1px solid var(--hair2)}
.detail-log:first-of-type{border-top:none}
.detail-log-actor{font-weight:700;margin-right:5px}
.detail-log-time{float:right;color:var(--muted);font-family:var(--mono);font-size:10.5px}

/* task/goal 상세 — Details/History 탭 */
.detail-tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid var(--hair)}
.detail-tab{background:none;border:none;padding:6px 10px;font-size:12.5px;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent}
.detail-tab.active{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}
.detail-tabpanel[hidden]{display:none}

/* Settings 안 General/Standup 서브탭 */
.settings-tabs{display:flex;gap:4px;margin:10px 0 16px;border-bottom:1px solid var(--hair)}
.settings-tab{background:none;border:none;padding:6px 10px;font-size:13px;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent}
.settings-tab.active{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}
.settings-tabpanel[hidden]{display:none}
.detail-hint{font-size:12px;color:var(--muted);margin:0 0 10px}

/* Acceptance Criteria — task 카드 압축 목록(.ac-list) + 상세보기 편집 목록(.ac-edit-list) 공용 */
.ac-list{display:flex;flex-direction:column;gap:2px;margin-top:4px}
.ac-item{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink)}
.ac-text.ac-done{color:var(--muted);text-decoration:line-through}
.ac-edit-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.ac-edit-list .ac-item{font-size:13px;padding:4px 0}
.ac-edit-list .ac-text{flex:1}
.ac-remove{flex:none;background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;padding:2px 4px}
.ac-remove:hover{color:var(--bad)}
.ac-add-form{display:flex;gap:6px}
.ac-add-form input[type=text]{flex:1;border:1px solid var(--hair);border-radius:8px;padding:7px 10px;font-size:13px}
.ac-add-form button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:700;cursor:pointer}

/* Works 탭 — 사람이 직접 메모를 남기는 폼(AI는 MCP add_progress로 같은 타임라인에 남김) */
.work-add-form{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.work-add-form textarea{width:100%;min-height:60px;font-family:var(--sans);font-size:13px;border:1px solid var(--hair);
  border-radius:8px;padding:8px 10px;background:var(--paper);color:var(--ink);resize:vertical}
.work-add-form textarea:focus{outline:none;border-color:var(--accent);background:var(--card)}
.work-add-form button{align-self:flex-end;background:var(--accent);color:#fff;border:none;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:700;cursor:pointer}

@media(max-width:760px){
  .addform{flex-direction:column;align-items:stretch}
  .addform input[type=text],.addform select,.addform button{width:100%;min-width:0}
  #addform{left:16px}
}
