
/* v7 clean flat UI: a single stylesheet without v4/v5/v6 override layers. */
:root{--bg:#f8f9f7;--white:#fff;--ink:#202d33;--sub:#4f6166;--line:#d8e0db;--green:#17614c;--navy:#253943;--green-pale:#eef5f0;--amber:#8b591f;--danger:#9a4134}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif}a{color:var(--green)}a:hover{text-decoration:underline}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #236fa0;outline-offset:3px}
.container{width:min(1120px,calc(100% - 40px));margin:auto}.sitebar{background:#fff;border-bottom:1px solid #edf0ee}.sitebar .container{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:15px}.brand{text-decoration:none;font-weight:800;letter-spacing:-.035em;font-size:18px;color:var(--ink)}.brandmark{color:var(--green);margin-right:7px}.sitebar nav{display:flex;gap:20px;font-size:13px}.sitebar nav a{text-decoration:none;color:#40545b}.tag{font-size:12px;color:var(--green);font-weight:750}
.intro{padding:23px 0 19px}.intro h1{font-size:clamp(24px,3vw,34px);letter-spacing:-.04em;line-height:1.35;margin:5px 0 10px}.intro p{margin:0;max-width:790px;font-size:14px;color:var(--sub)}.keyfacts{display:flex;flex-wrap:wrap;gap:7px 19px;color:var(--sub);font-size:12px;margin-top:12px}
.workspace{display:grid;grid-template-columns:266px minmax(0,1fr);gap:19px;align-items:start}.column{min-width:0}.aside,.panel{background:#fff;border:1px solid var(--line);border-radius:2px;padding:19px}.aside{position:sticky;top:14px}.aside h2,.sectionhead h2,.planhead h2{font-size:19px;margin:0}.aside h2{margin-bottom:13px}.panel{margin-bottom:16px}.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}.sectionhead small,.count{color:var(--sub);font-size:12px}.field{margin:0 0 15px}.field label{display:block;font-size:13px;font-weight:750;color:#40565b;margin:0 0 5px}.seg{display:grid;grid-template-columns:1fr 1fr;gap:5px}.seg button{border:1px solid var(--line);background:white;color:var(--ink);min-height:43px;padding:5px 6px;border-radius:2px;font-size:13px}.seg button[aria-pressed=true]{border-color:var(--green);background:#edf6f1;color:var(--green);font-weight:750}.moreconditions{margin:0 0 10px;display:contents}.moreconditions summary{color:var(--green);font-size:13px;font-weight:750;cursor:pointer;margin:5px 0 10px}.moreconditions[open] .field{margin-bottom:10px}.hint{font-size:12px;color:var(--sub);line-height:1.7}.statbox{margin:14px 0 0;padding:11px;background:var(--green-pale);font-size:12px;color:#405c50}.statbox strong{color:var(--green);font-size:19px}.primary,.secondary{border-radius:2px;min-height:43px;padding:9px 13px;font-size:13px;font-weight:700}.primary{background:var(--green);color:#fff;border:1px solid var(--green)}.primary:hover{background:#11533f}.secondary{background:#fff;color:#185947;border:1px solid #b6c9bf}.secondary:hover{background:#f1f6f3}.wide{width:100%;margin-top:10px}
.searchbar{margin:0 0 10px}.searchbar input{display:block;width:100%;min-height:44px;min-width:0;padding:9px 11px;border:1px solid #b6c8c0;border-radius:2px;background:white;font-size:14px}.filterrow{display:flex;gap:6px;overflow-x:auto;padding:2px 0 9px}.filterrow button{background:#fff;border:1px solid var(--line);white-space:nowrap;min-height:36px;padding:6px 11px;border-radius:2px;font-size:12px}.filterrow button[aria-pressed=true]{background:var(--navy);color:#fff;border-color:var(--navy)}.toggle{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:#42595f}.toggle input{width:17px;height:17px;accent-color:var(--green)}.applist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:12px}.appitem{display:flex;gap:10px;min-width:0;align-items:center;background:#fff;border:1px solid var(--line);padding:11px;border-radius:2px}.appitem.is-selected{border-color:#5c9981;background:#f8fcf9;box-shadow:inset 2px 0 0 var(--green)}.appbody{flex:1;min-width:0}.appname{font-size:14px;font-weight:750}.appdesc{font-size:13px;line-height:1.55;color:var(--sub);margin:3px 0 5px}.appmeta{font-size:12px;color:var(--sub)}.impact{color:#845019;font-weight:650}.appitem .secondary{flex:none;font-size:12px;min-height:42px;padding:7px 9px}.show-more{display:block;margin:12px auto 0;min-width:160px}.show-more[hidden]{display:none}.manualform{display:flex;gap:7px;margin:12px 0 0}.manualform input{min-width:0;flex:1;padding:10px 11px;border:1px solid var(--line);border-radius:2px;font-size:13px}.manualnote{color:#6b592e;font-size:12px;margin:8px 0}.selectedbox{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.selectedchip{display:inline-flex;align-items:center;background:var(--green-pale);gap:5px;padding:3px 7px;font-size:12px}.selectedchip button{min-width:34px;min-height:34px;border:0;background:transparent;color:#4d6460;font-size:16px}
.planhead{display:flex;align-items:start;justify-content:space-between;gap:16px;flex-wrap:wrap}.planhead h2{margin:0 0 4px}.tools{display:flex;flex-wrap:wrap;gap:6px}.tools button{background:#fff;border:1px solid var(--line);min-height:38px;padding:7px 10px;border-radius:2px;font-size:12px}.tools button:hover{background:#f2f6f3}.progress{display:flex;align-items:center;gap:10px;margin:15px 0 6px}.progressbar{height:8px;flex:1;background:#e3ebe5}.progressfill{width:0;height:100%;background:var(--green);transition:width .2s}.progresslabel{font-size:12px;color:var(--sub);line-height:1.4}.compare-panel{margin:14px 0 0;padding:11px 13px;background:#f5f8f6;border:1px solid var(--line)}.compare-panel summary{font-size:14px;font-weight:700;color:var(--green);cursor:pointer}.impact-intro{font-size:13px;color:var(--sub)}.table-scroller{overflow-x:auto}table{width:100%;min-width:500px;border-collapse:collapse;text-align:left;font-size:13px}th,td{padding:9px;border-bottom:1px solid var(--line)}thead th{background:#eaf1ed;color:#40574f}
.persistent-alerts{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-top:14px;padding:12px 14px;background:#fff2ed;border:1px solid #dbb9b1;border-left:3px solid #ae4435}.persistent-alerts strong{font-size:13px;color:#7e3027}.persistent-alerts p{font-size:13px;margin:2px 0 0;color:#6c403b}.persistent-alerts .secondary{white-space:nowrap}.persistent-alerts[hidden],.next-step[hidden]{display:none!important}.next-step{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;background:#f0f6f2;border:1px solid #cdded1;margin-top:10px}.next-step strong{font-size:13px;color:var(--green)}.next-step p{font-size:13px;margin:2px 0 0}.handoff{display:flex;align-items:center;justify-content:space-between;gap:13px;border:1px solid var(--line);padding:12px 13px;margin:13px 0;background:#fff}.handoff strong{font-size:13px}.handoff p{font-size:12px;color:var(--sub);margin:3px 0 0}.handoff-buttons{display:flex;gap:6px;flex:none}.handoff-buttons button{font-size:12px;padding:7px 8px;min-height:40px}
.phase-tabs{display:flex;gap:5px;margin:15px 0 8px;flex-wrap:wrap}.phase-tabs button{border:1px solid var(--line);background:white;border-radius:2px;color:var(--ink);padding:9px 11px;font-size:13px;min-height:43px}.phase-tabs button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:white;font-weight:750}#issue-counter{margin-left:3px;font-size:11px}.empty{padding:15px;background:#f1f6f2;font-size:13px;color:var(--sub)}.alerts{margin:12px 0 17px}.alerts h3{font-size:16px;margin:0 0 9px}.alerts h3 span{font-size:13px;font-weight:400;color:var(--sub)}.notice{font-size:13px;background:#f9f5ed;border-left:3px solid #b89858;padding:12px 14px;margin:8px 0}.notice.critical{background:#fff2ed;border-left-color:#ad4a3e;color:#74382f}.notice strong{display:block;font-size:13px}.notice p{margin:3px 0 8px}.notice-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:12px}.notice-actions a{font-size:12px}.ack-label{display:inline-flex;gap:7px;align-items:center;font-weight:750;cursor:pointer;padding:6px 0}.ack-label input{width:18px;height:18px;accent-color:var(--green)}
.phase{margin:19px 0 0}.phasetitle{font-size:16px;font-weight:780;margin:0 0 4px}.phasehint{font-size:12px;color:var(--sub);margin:0 0 10px}.tasklist{display:grid;gap:6px}.task{background:#fff;border:1px solid #dfe8e1;border-radius:2px;padding:12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:13px;align-items:start;margin:6px 0;scroll-margin-top:95px}.task[data-status=done]{background:#f4faf6}.task[data-status=doing]{background:#f2f7fb}.task[data-status=issue]{border-color:#bd9278;background:#fff9f4}.task[data-status=skipped]{background:#f5f6f5;color:#64716d;border-style:dashed}.taskinfo{min-width:0}.taskapp{color:var(--green);font-size:12px;font-weight:750}.tasktitle{font-size:14px;line-height:1.6;font-weight:650;margin-top:2px}.taskfoot{margin-top:5px;font-size:12px;color:var(--sub)}.taskfoot a{display:inline-block;margin:3px 14px 0 0}.taskactions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;max-width:335px;min-width:148px}.taskactions button{font-size:12px;min-height:40px;padding:7px 9px;background:white;border:1px solid var(--line);border-radius:2px;white-space:nowrap}.taskactions button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff;font-weight:750}.taskactions button[data-action=doing][aria-pressed=true]{background:#415d72;border-color:#415d72}.taskactions button.attention[aria-pressed=true]{background:#9a5a37;border-color:#9a5a37}.taskactions button.skip[aria-pressed=true]{background:#465961;border-color:#465961}.blocker{padding:9px;background:#faf2e9;color:#654833;border-left:3px solid #b08048;font-size:12px;margin:8px 0}.blocker strong{display:block}.jump-task{font-size:12px;color:#704923;text-align:left;display:block;background:transparent;border:0;text-decoration:underline;padding:4px 0;min-height:29px}.jump-task:hover{color:#40260e}.review{margin-top:22px;background:#eef4f0;border:1px solid #d3dfd6;padding:16px}.review h3{font-size:17px;margin:0 0 7px}.review p{margin:0 0 10px;font-size:13px;color:var(--sub)}.reviewstate{font-size:13px;font-weight:700;color:#76522a;margin:9px 0}.review fieldset{border:0;padding:0;margin:10px 0}.review label{display:flex;gap:8px;align-items:start;font-size:13px;padding:6px 0}.review input{width:18px;height:18px;margin-top:3px;accent-color:var(--green)}.review [hidden]{display:none!important}
.public-index{background:#fff;border:1px solid var(--line);padding:20px;margin:12px 0 22px}.public-index h2{font-size:18px;margin:0 0 8px}.public-index p{font-size:13px;color:var(--sub);margin:7px 0}.static-links{display:flex;flex-wrap:wrap;gap:9px 16px;margin:11px 0}.static-links a{font-size:13px}.footer{font-size:12px;color:#576c6b;padding:15px 0 35px}.toast{position:fixed;z-index:10;left:50%;bottom:16px;transform:translateX(-50%);background:#223d3a;color:#fff;padding:10px 15px;max-width:90%;font-size:13px;pointer-events:none}.sr-only{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important}.mobile-views,.mobile-dock{display:none}
@media(max-width:1000px){.handoff{display:block}.handoff-buttons{margin-top:10px}}
@media(max-width:800px){.workspace{display:block}.aside{position:static}.mobile-views{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));position:sticky;top:0;background:#fff;border:1px solid var(--line);z-index:6;margin-bottom:12px}.mobile-views button{min-height:46px;background:#fff;color:var(--ink);border:0;border-right:1px solid var(--line);padding:10px 4px;font-size:13px}.mobile-views button:last-child{border-right:0}.mobile-views button[aria-pressed=true]{color:#fff;background:var(--navy);font-weight:750}#workspace[data-mobile-tab=settings] .column,#workspace[data-mobile-tab=apps] #settings,#workspace[data-mobile-tab=apps] #plan,#workspace[data-mobile-tab=plan] #settings,#workspace[data-mobile-tab=plan] #app-directory{display:none}#workspace[data-mobile-tab=settings],#workspace[data-mobile-tab=apps],#workspace[data-mobile-tab=plan]{display:block}.workspace .aside,.workspace .panel{margin-bottom:15px}.sitebar nav a:last-child{display:none}}
@media(max-width:580px){.container{width:calc(100% - 28px)}.sitebar .container{min-height:56px}.sitebar nav a{display:none}.intro{padding:16px 0 14px}.intro h1{font-size:24px}.intro p{font-size:14px}.aside,.panel{padding:14px}.aside .field{display:inline-block;vertical-align:top;width:calc(50% - 6px);margin:0 6px 12px 0}.aside .field:nth-of-type(even){margin-right:0}.aside .moreconditions .field{display:block;width:100%}.seg button{min-height:44px}.applist{grid-template-columns:1fr}.appitem .secondary{min-height:44px}.appdesc{font-size:13px}.task{grid-template-columns:1fr;gap:9px}.taskactions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;justify-content:stretch}.taskactions button{min-height:44px}.phase-tabs{display:grid}.phase-tabs button{padding:8px 3px}.persistent-alerts,.next-step{align-items:stretch;flex-direction:column}.persistent-alerts .secondary,.next-step .secondary{white-space:normal;width:100%}.handoff-buttons{display:grid;grid-template-columns:1fr 1fr}.handoff-buttons button{min-width:0;white-space:normal}.public-index{padding:14px}.mobile-dock{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:8;background:#fff;border-top:1px solid #cbd9d3;min-height:62px;padding:9px 15px;align-items:center;justify-content:space-between;gap:9px}.mobile-dock span{font-size:12px;color:#425851;font-weight:700}.mobile-dock button{background:var(--green);border:0;color:white;min-height:43px;padding:8px 14px;font-weight:750;border-radius:2px;white-space:nowrap}.footer{padding-bottom:14px}}

/* PC・タブレット・スマートフォン共通：v7の見た目を保つレスポンシブ補強 */
/* 画面の縦幅が足りないデスクトップでも、条件をスクロールして操作できる。 */
@media (min-width:801px){
  .workspace{grid-template-columns:clamp(240px,23vw,266px) minmax(0,1fr)}
  .aside{max-height:calc(100dvh - 28px);overflow-y:auto;overscroll-behavior:contain}
  .column{min-width:0}
}
/* 2列カードと横並びタスクが窮屈になる中間幅を調整。 */
@media (min-width:801px) and (max-width:1040px){
  .applist{grid-template-columns:1fr}
  .task{grid-template-columns:minmax(0,1fr)}
  .taskactions{justify-content:flex-start;max-width:none}
  .taskactions button{min-width:84px}
  .persistent-alerts,.next-step{align-items:flex-start}
  .handoff-buttons{flex-wrap:wrap}
}
@media (min-width:1041px) and (max-width:1230px){
  .task{grid-template-columns:minmax(0,1fr)}
  .taskactions{justify-content:flex-start;max-width:none}
}
/* タブレット縦向き：タブ式UIは維持し、条件だけ左右2列にまとめる。 */
@media (min-width:581px) and (max-width:800px){
  .aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}
  .aside h2,.aside .moreconditions,.aside>.hint,.aside>.statbox,.aside>.wide{grid-column:1/-1}
  .aside>.field{margin:0 0 5px;min-width:0}
  .aside>.statbox{margin-top:0}
  .aside>.wide{margin-top:0}
  .moreconditions .field{max-width:470px}
  .mobile-views{scroll-margin-top:0}
  .taskactions{max-width:none}
}
/* スマートフォン：既存のタブUIを保ちつつ狭い画面での折り返しを調整。 */
@media (max-width:580px){
  .sitebar .container,.sectionhead,.planhead,.appitem,.progress{min-width:0}
  .brand{font-size:16px}
  .mobile-views{scroll-margin-top:0}
  .mobile-views button{font-size:13px;min-width:0}
  .intro h1{overflow-wrap:anywhere}
  .sectionhead h2,.planhead h2,.aside h2{font-size:18px}
  .aside>.field{min-width:0}
  .aside .field label{overflow-wrap:anywhere}
  .manualform{display:grid;grid-template-columns:minmax(0,1fr) auto}
  .manualform input{width:100%}
  .manualform button{white-space:nowrap}
  .appitem{min-width:0}
  .appbody{overflow-wrap:anywhere}
  .tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .tools button{min-width:0;white-space:normal;min-height:44px}
  .phase-tabs button{min-width:0;min-height:44px;overflow-wrap:anywhere}
  .taskinfo{min-width:0;overflow-wrap:anywhere}
  .taskfoot{overflow-wrap:anywhere}
  .selectedchip{min-width:0;max-width:100%;overflow-wrap:anywhere}
  .handoff-buttons{min-width:0}
  .mobile-dock{padding-bottom:calc(9px + env(safe-area-inset-bottom,0px));min-height:calc(62px + env(safe-area-inset-bottom,0px))}
  body{padding-bottom:calc(71px + env(safe-area-inset-bottom,0px))}
  body:has(input:focus) .mobile-dock{display:none}
}
@media (max-width:360px){
  .container{width:calc(100% - 22px)}
  .aside,.panel,.public-index{padding:12px}
  .aside>.field{width:calc(50% - 5px);margin-right:5px}
  .seg button{padding:6px 2px;font-size:11.5px}
  .taskactions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .persistent-alerts,.next-step{padding:10px}
  .mobile-dock{padding-left:11px;padding-right:11px}
  .mobile-dock span{min-width:0;overflow-wrap:anywhere}
}
/* 低いノートPC / 横向き端末でも、固定レールが操作を妨げない。 */
@media (min-width:801px) and (max-height:520px){
  .aside{position:static;max-height:none;overflow:visible}
}
@media print{body{padding:0!important}.sitebar,.aside,#app-directory,.tools,.taskactions,.footer,.mobile-views,.mobile-dock,.manualform,.phase-tabs,.handoff,.next-step,.public-index,.review button{display:none!important}.workspace{display:block!important}.workspace .column,#plan{display:block!important}.container{width:100%}.panel{border:0;padding:0}.task,.notice{break-inside:avoid}}





/* v8: progress-focused, accessible controls without additional card ornamentation. */
.task-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;border:1px solid var(--line);background:var(--white);padding:11px 12px;margin:0 0 14px}
.task-controls label{display:flex;align-items:center;gap:7px;color:var(--ink);font-size:14px;font-weight:650}
.task-controls select{border:1px solid #a9b9b2;background:#fff;color:var(--ink);padding:9px 30px 9px 10px;min-height:44px;border-radius:2px;max-width:100%}
.task-controls .check-filter{cursor:pointer;min-height:44px}
.task-controls input[type=checkbox]{width:18px;height:18px;accent-color:var(--green)}
.storage-warning{background:#fff4e3;border:1px solid #c28d45;color:#6c4617;padding:10px 13px;margin:8px 0 12px;font-size:14px}
.storage-warning[hidden]{display:none}
.planhead .tools button{transition:background-color .12s ease,border-color .12s ease}
.planhead .tools button:hover,.taskactions button:hover,.task-controls select:hover{border-color:#557869}

.task:focus-within{border-color:#6c9e8a}
.appitem .appname{font-size:15px}
.appitem [data-pick]{min-width:90px;min-height:44px}
.footer a{display:inline-block;margin-right:14px}
@media(max-width:800px){.task-controls{align-items:stretch}.task-controls label{flex:1 1 auto}.task-controls select{width:min(100%,300px)}}
@media(max-width:580px){.task-controls{padding:11px}.task-controls label{width:100%}.task-controls select{width:100%}.task-controls .check-filter{padding:1px 0}.task-controls .check-filter input{flex:none}.planhead .tools{gap:6px}}
@media(prefers-contrast:more){.task-controls,.appitem,.task{border-color:currentColor}}
/* Shared reference pages */
.reference-main{max-width:850px;min-height:62vh}
.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:17px 0 2px;color:var(--sub);font-size:13px}
.breadcrumbs a{color:var(--green)}
.reference-main .intro{padding-top:10px}
.reference-main .intro h1{line-height:1.4}

.appitem h3.appname,.task h4.tasktitle{margin:0;font-weight:700;line-height:1.5}

/* v9 usability improvements: guided task queue, status transparency, condensed alerts. */
.progress-stats{font-size:15px;font-weight:750;margin:9px 0 0;color:var(--ink)}
.save-state{font-size:13px;color:var(--green);margin:3px 0 4px}
.guide-help{background:#f0f5f2;border-left:3px solid var(--green);padding:9px 11px;margin:8px 0 12px;font-size:14px;line-height:1.7;color:var(--ink)}
.link-button{border:0;border-bottom:1px solid currentColor;border-radius:0;background:transparent;padding:0 1px;color:var(--green);font:inherit;font-weight:700;cursor:pointer;min-height:36px}
.link-button:hover{text-decoration:underline}
.alert-details{padding:9px 13px;background:#fff5f1;border:1px solid #d5b6ac;margin:17px 0}
.alert-details>summary{font-weight:750;font-size:14px;cursor:pointer;padding:5px 0;list-style-position:inside;min-height:36px}
.alert-details .notice{margin:9px 0}
.alert-details:not([open]){background:#fffaf8}

@media(max-width:580px){.progress-stats{font-size:15px}.task-controls label{font-size:14px}.guide-help{font-size:14px}.taskactions button{min-height:44px}}

/* v10: condition verification, concise tools, and full printable plan. */

.condition-confirm{background:#eef5f0;border:1px solid #c3dacb;padding:12px;margin:9px 0 13px}
.condition-status{margin:0 0 8px;color:#694c2b;font-size:14px;font-weight:650}
.condition-status.confirmed{color:#17614c}
.condition-confirm button{min-height:44px}
.condition-empty button{display:block;margin-top:10px}
.data-tools{align-self:start;min-width:190px;border:1px solid #cbd9d1;background:#fff;padding:0 10px}
.data-tools summary{cursor:pointer;color:var(--green);font-weight:700;padding:9px 3px;font-size:13px;min-height:42px}
.data-tools .tools{padding-bottom:10px;display:flex;flex-wrap:wrap;gap:5px}
.stage-complete{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#edf7f0;border:1px solid #b8d7c2;padding:12px 14px;margin:10px 0;color:#205943}
.stage-complete button{min-height:44px}
.storage-conflict{border-left:3px solid #a65b3d;background:#fff1e8}
.storage-conflict button{margin-left:8px;min-height:39px}
.print-sheet{display:none}
@media(max-width:800px){.data-tools{width:100%}.stage-complete{flex-direction:column;align-items:stretch}.stage-complete button{width:100%}}
@media print{body > *:not(#print-sheet){display:none!important}#print-sheet.print-sheet{display:block!important;position:static!important;margin:0!important;padding:0!important;color:#111!important;font:11pt/1.5 sans-serif;background:#fff!important}.print-sheet h1{font-size:20pt;margin:0 0 6mm}.print-sheet h2{font-size:14pt;margin:7mm 0 2mm;border-bottom:1px solid #999}.print-task{display:grid;grid-template-columns:110px 100px 1fr;gap:8px;padding:5px 0;border-bottom:1px solid #ddd;break-inside:avoid}.print-task strong{font-size:10pt}.print-notice{font-size:10pt;break-inside:avoid;margin:3px 0}}

/* v11: three explicit choices for retained progress; do not overload Cancel. */
.confirm-dialog{border:1px solid #bdcbc2;border-radius:3px;background:#fff;color:#203c36;box-shadow:0 18px 60px #142d2940;width:min(94vw,520px);max-height:88vh;overflow-y:auto;padding:23px}
.confirm-dialog::backdrop{background:rgba(17,37,33,.56)}
.confirm-dialog h2{font-size:20px;line-height:1.4;margin:0 0 10px}
.confirm-dialog p{line-height:1.7;margin:8px 0}
.dialog-actions{display:flex;flex-wrap:wrap;gap:8px;margin:19px 0 13px}
.dialog-actions button{min-height:44px;padding:10px 13px;border-radius:2px;border:1px solid #afbeb4;background:#fff;color:#173e34;cursor:pointer;font-size:14px}
.dialog-actions button.danger-outline{color:#8b3328;border-color:#ad6256}
.dialog-actions button:hover{background:#f0f5f2}
.dialog-actions button.danger-outline:hover{background:#fff0ed}
.dialog-actions button:focus-visible{outline:3px solid #255d50;outline-offset:3px}
@media(max-width:580px){.confirm-dialog{padding:17px}.dialog-actions{display:grid;grid-template-columns:1fr}.dialog-actions button{text-align:center}}

/* v11: supporting text and controls remain legible on narrow devices. */
.taskapp,.taskfoot,.phasehint,.handoff p,.save-state{font-size:13px}

@media(max-width:580px){.seg button{font-size:13px}.dialog-actions button{font-size:14px}}


/* v19: Static directory and paginated reference pages */
.static-directory-list{padding-left:1.4rem;line-height:1.75}
.static-directory-list li{padding:8px 0;border-bottom:1px solid #e5ebe7}
.static-directory-list .hint{display:block;line-height:1.6;margin-top:3px}
.pagination{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:20px 0}
.pagination a,.pagination strong{display:inline-block;min-width:42px;padding:9px 12px;border:1px solid #bdcbc1;text-align:center;border-radius:2px}
.pagination strong{background:#edf3ef}
[data-pick][aria-busy="true"]{opacity:.65;cursor:progress}

/* v12: keep actions and work first; fold administrative functions after the tasks. */
.plan-filters,.plan-more{border:1px solid #d5e0d8;background:#fbfcfb;margin:10px 0 12px;border-radius:2px}
.plan-filters>summary,.plan-more>summary{padding:12px 14px;min-height:44px;font-size:14px;font-weight:700;color:#225b4a;cursor:pointer;list-style-position:inside}
.plan-filters[open]>summary,.plan-more[open]>summary{border-bottom:1px solid #e0e8e2}
.plan-filters .task-controls{margin:0;border:0;background:#fff}
.plan-more{margin:22px 0 10px;padding:0 0 8px}
.plan-more .handoff,.plan-more .compare-panel,.plan-more .record-actions{margin:10px 12px}
.record-notice{margin:12px;color:#30483e;font-size:14px;line-height:1.7;background:#f1f7f2;padding:11px 13px}
.plan-more .data-tools{display:block;width:100%;min-width:0}
.plan-more .data-tools .tools{padding:10px 6px}
.plan-more .compare-panel{display:block}

.task-primary{background:#19634e!important;color:#fff!important;border-color:#19634e!important;font-weight:750}
.task-primary[aria-pressed=true]{background:#f1f6f2!important;color:#215847!important}
.task-alternatives{margin-top:6px;border:1px solid #ced8d1;background:#fff}
.task-alternatives summary{padding:8px 9px;min-height:42px;cursor:pointer;font-size:13px;line-height:1.6;color:#365b4c}
.task-secondary{display:flex;flex-wrap:wrap;gap:5px;padding:5px}
.task-secondary button{min-height:44px}
.uncertain-note{padding:12px 13px;background:#fff4e7;border:1px solid #d5a367;font-size:14px;line-height:1.7;margin:10px 0 13px}
.uncertain-note p{margin:6px 0}
.uncertain-note button{min-height:44px}
.direct-app-hint{background:#eef5f0;padding:10px;border:1px solid #aacbbb;color:#275848;font-size:14px;line-height:1.7}
.moreconditions .seg{flex-wrap:wrap}
.moreconditions .seg button{flex:1 1 105px;white-space:normal}
#plan-body{scroll-margin-top:75px}
@media(max-width:580px){.taskactions{min-width:0}.task-primary{width:100%;min-height:46px}.task-alternatives{width:100%}.task-secondary{display:flex;flex-direction:column}.planhead{gap:4px}.plan-more .handoff{padding:10px}.moreconditions .seg button{font-size:13px}}

/* v12 refinement: keep five phase actions within a single 44px row on phones. */
@media(max-width:580px){.phase-tabs{gap:3px}.phase-tabs button{padding:6px 0;font-size:11px;min-height:44px;line-height:1.3}.phase-tabs #issue-counter{margin-left:0}.guide-help{padding:6px 9px;line-height:1.5}.guide-help .link-button{min-height:34px}}

.before-save-reminder{font-size:13px;line-height:1.6;margin:5px 0 8px;color:#285642}.stage-complete [data-save-before]{min-height:44px}

/* Work-card context styles are centralized in the v15 definitions below. */
.field-explain{font-size:12px;line-height:1.65;color:var(--sub);margin:6px 0 0}
.task-context-warning button{white-space:normal;text-align:left;font-size:12px;min-height:44px}

/* v15 — safe, single-place confirmation inside the relevant task */
.task-context-warning{display:block;border:1px solid #d8b9b0;border-left:3px solid #a75c49;background:#fff8f5;padding:0;margin:10px 0 7px}
.task-context-warning>summary{font-size:14px;font-weight:750;line-height:1.5;color:#6c352b;cursor:pointer;min-height:44px;padding:10px 12px;list-style-position:inside}
.task-context-warning[open]>summary{margin-bottom:1px}
.task-warning-items{padding:0 12px 6px}
.task-warning-item{padding:9px 0 7px}
.task-warning-item+ .task-warning-item{border-top:1px solid #eddcd6}
.task-warning-item p{font-size:14px;line-height:1.65;color:#593b34;margin:0 0 7px}
.task-warning-item .ack-label{font-size:14px;min-height:42px;gap:10px;padding:7px 0}
.task-warning-item .ack-label input{width:20px;height:20px;flex-shrink:0}
.task-context-warning>[data-review-conditions],.task-context-warning>[data-review-alerts]{margin:2px 12px 12px;min-height:40px}
.task-context-warning[open] .link-button{font-size:13px}
.task-context-warning:not([open]){background:#fff}
.task-context-warning:not([open])>summary{color:#50635b}
@media(max-width:580px){.task-context-warning>summary{font-size:14px}.task-warning-item p{font-size:14px}.task-warning-item .ack-label{font-size:14px}}
/* Readable compact navigation without relying on tiny mobile labels. */
.task-position{font-size:12px}
@media(max-width:580px){.phase-tabs button{font-size:12px;line-height:1.35}.phasehint{font-size:13px}}


/* v16 accessible keyboard navigation and text reflow. */
.skip-to-workspace{position:fixed;z-index:30;top:8px;left:8px;transform:translateY(-160%);background:#fff;color:#154e3d;border:2px solid #145940;padding:10px 14px;font-weight:750;box-shadow:0 2px 6px #0002}
.skip-to-workspace:focus{transform:translateY(0)}
.workspace:focus{outline:none}
.taskactions button,.task-alternatives summary,.task-context-warning summary{overflow-wrap:anywhere;white-space:normal}
@media(max-width:580px){.taskactions .task-primary{min-height:48px}.task-alternatives summary{min-height:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* v17: task is the row header, with separate required/excluded conditions. */
.static-step-table{width:100%;min-width:700px;table-layout:auto}
.static-step-table th[scope="row"]{min-width:225px;width:39%;font-weight:700;text-align:left;color:#205e4b;line-height:1.65;overflow-wrap:anywhere}
.static-step-table td:nth-child(2){min-width:80px;white-space:nowrap}
.static-step-table td:nth-child(3),.static-step-table td:nth-child(4){min-width:150px;color:#425c53;overflow-wrap:anywhere}
.static-step-table tr:target{background:#eff8f2;outline:2px solid #24704c;outline-offset:-2px}
.condition-summary{font-size:15px;line-height:1.8}
@media(max-width:640px){.static-step-table{min-width:700px}.static-step-table caption{text-align:left}}

.reference-main:focus{outline:none}
.table-scroller[tabindex]:focus-visible{outline:3px solid #24704c;outline-offset:2px}

/* v17: auxiliary information readable, focus visible, works at narrow widths. */
.taskapp,.taskfoot,.phasehint,.handoff p,.save-state,.field-explain,.task-position{font-size:14px;line-height:1.65}
.taskactions button,.task-context-warning button,.task-alternatives summary{font-size:14px}
.task-warning-item p,.task-warning-item .ack-label{font-size:14px}
:where(button,a,input,select,textarea,summary,[tabindex="0"]):focus-visible{outline:3px solid #145b46;outline-offset:3px}
:where(.workspace,.column,.task,.panel,.aside){min-width:0}
:where(p,li,td,th,h1,h2,h3,h4,button,.tasktitle){overflow-wrap:anywhere}
@media(max-width:580px){.phase-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.phase-tabs button{font-size:13px;padding:7px 2px;min-height:48px}.taskapp,.taskfoot,.field-explain{font-size:14px}}
@media(max-width:360px){.phase-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.phase-tabs button{font-size:13px}}

/* Mobile users must know additional condition columns are available horizontally. */
.table-scroll-hint{font-size:14px;line-height:1.7;color:#305b4a;background:#f0f6f2;padding:9px 11px;margin:9px 0}
@media(min-width:641px){.table-scroll-hint{display:none}}

.research-report {
  margin: 34px 0 60px;
  padding: clamp(20px, 4vw, 42px);
  border: 1px solid #d9e2df;
  border-radius: 22px;
  background: #fff;
  color: #263632;
}

.research-report > h2 {
  margin-top: 0;
  font-size: clamp(1.5rem, 3vw, 2rem);
}

.research-report h3 {
  margin-top: 2rem;
  padding-top: 0.5rem;
  scroll-margin-top: 20px;
}

.research-report h4,
.research-report h5,
.research-report h6 {
  margin-top: 1.5rem;
  scroll-margin-top: 20px;
}

.research-report p,
.research-report li {
  line-height: 1.85;
  overflow-wrap: anywhere;
}

.research-report ul,
.research-report ol {
  padding-inline-start: 1.5rem;
}

.research-report a {
  overflow-wrap: anywhere;
}

.research-toc {
  margin: 24px 0 36px;
  padding: 20px 24px;
  border-radius: 16px;
  background: #f2f7f5;
}

.research-toc h3 {
  margin: 0 0 12px;
  padding: 0;
  font-size: 1.1rem;
}

.research-toc ol {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 6px 24px;
  margin: 0;
  padding-inline-start: 1.4rem;
}

.research-table-scroll {
  max-width: 100%;
  margin: 18px 0;
  overflow-x: auto;
  border: 1px solid #d9e2df;
  border-radius: 12px;
}

.research-table {
  width: 100%;
  min-width: 580px;
  border-collapse: collapse;
  font-size: 0.94rem;
}

.research-table th,
.research-table td {
  padding: 11px 13px;
  border-bottom: 1px solid #e4eae8;
  text-align: left;
  vertical-align: top;
}

.research-table th {
  background: #f4f7f6;
}

.research-table tr:last-child td {
  border-bottom: 0;
}

@media (max-width: 640px) {
  .research-report {
    margin-inline: -8px;
    padding: 19px 15px;
    border-radius: 16px;
  }

  .research-toc {
    padding: 16px;
  }
}
