:root{font-family:"Yu Gothic UI","Meiryo",sans-serif;color:#233d35;background:#f4f7f5;font-size:16px;line-height:1.65;font-synthesis:none;--green:#176b59;--muted:#65786f;--line:#dce5df;--amber:#925a0c}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button,.btn{border:1px solid #c9d8cf;background:white;color:#234d3f;border-radius:9px;padding:10px 16px;min-height:46px;cursor:pointer;font-weight:650;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.5}button:hover,.btn:hover{background:#edf5f0;border-color:#80a392}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #dfad39;outline-offset:3px}button:disabled{opacity:.45;cursor:default}.primary{background:var(--green);color:#fff;border-color:var(--green)}.primary:hover{background:#125746;color:white}.danger{color:#a53e38}.quiet{background:transparent;border-color:transparent}a{color:var(--green)}h1,h2,h3,p{margin:0}h1{font-size:28px;line-height:1.4;letter-spacing:.01em}h2{font-size:21px;line-height:1.5}h3{font-size:17px}p+p{margin-top:8px}small,.small{font-size:14px}.muted{color:var(--muted)}.eyebrow{font-size:12px;letter-spacing:.14em;font-weight:750;color:var(--green);margin-bottom:8px}.shell{display:grid;grid-template-columns:218px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:32px 22px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:24px}.brand{display:flex;gap:10px;align-items:center;font-size:18px;font-weight:750;line-height:1.4}.logo{display:grid;place-items:center;background:#e3efe7;border-radius:13px;color:var(--green);width:42px;height:42px;font-size:25px;flex-shrink:0}.side-caption{font-size:12px;color:var(--muted);margin-top:8px}.sidebar nav{display:grid;gap:8px}.sidebar nav a{justify-content:flex-start}.sidebar .bottom{margin-top:auto;font-size:12px;color:var(--muted)}.side-person{padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.side-steps{display:grid;gap:16px;font-size:14px;color:var(--muted)}.side-steps strong{color:var(--green)}.main{min-width:0}.topbar{min-height:60px;padding:14px 36px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff}.demo{font-size:13px;color:#526b5f;background:#eef4ef;border:1px solid #d4e1d8;border-radius:6px;padding:4px 10px;white-space:nowrap}.content{max-width:1100px;margin:auto;padding:30px 36px 54px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.page-head p{color:var(--muted);margin-top:7px}.card{background:white;border:1px solid var(--line);border-radius:13px;padding:24px;box-shadow:0 2px 4px #173a2503}.card+.card,.stack>*+*{margin-top:18px}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{justify-content:space-between}.grid{display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid>*{min-width:0}.section-title{margin:28px 0 14px}.badge{font-size:13px;font-weight:650;padding:3px 10px;border-radius:5px;display:inline-block;white-space:nowrap;background:#f0f3f1;color:#5b6c63}.badge.warn{background:#fff1d6;color:#855107}.badge.done{background:#e3f2e9;color:#17654d}.badge.hold{background:#f3e9df;color:#8b5d34}.notice{padding:14px 17px;border-radius:9px;background:#edf4ef;color:#405e4e;border:1px solid #dce8de;margin:16px 0}.notice.warn{background:#fff8e9;border-color:#ead8b0;color:#7a561e}.personbar{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:0 0 20px;margin-bottom:26px;flex-wrap:wrap}.personbar strong{font-size:20px}.avatar{width:48px;height:48px;background:#e4efe7;border-radius:50%;display:grid;place-items:center;color:var(--green);font-weight:700;flex-shrink:0}.person-card{text-align:left;width:100%;display:block;padding:22px;border-radius:12px;background:white}.person-card p{font-weight:400;margin-top:8px;color:var(--muted)}.person-card .row{justify-content:space-between}.task-card{padding:20px;display:flex;align-items:center;justify-content:space-between;text-align:left;width:100%;border-radius:12px}.task-card .task-icon{background:#eef5ef;width:44px;height:44px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;font-size:21px}.task-card small{display:block;color:var(--muted);font-weight:400;margin-top:4px}.task-card .arrow{font-size:24px;color:#82a190}.progress{height:8px;border-radius:5px;background:#e5ece7;overflow:hidden;margin-top:16px}.progress>div{height:100%;background:#409779}.stat{font-size:34px;font-weight:700;line-height:1.25}.list-row{padding:15px 0;border-bottom:1px solid #e6ece7;display:flex;justify-content:space-between;align-items:center;gap:14px}.list-row:last-child{border-bottom:0}.list-row .time{font-variant-numeric:tabular-nums;color:var(--muted);width:52px;flex-shrink:0}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.field{display:grid;gap:7px;margin:14px 0}.field>label,.field-label{font-weight:650}.field input,.field textarea,.field select,input[type=text],textarea,select{width:100%;min-width:0;border:1px solid #b9ccc0;border-radius:8px;background:#fff;padding:11px 12px;color:#233d35;min-height:46px}textarea{min-height:96px;resize:vertical}input[type=checkbox],input[type=radio]{width:20px;height:20px;accent-color:var(--green);flex-shrink:0}.choice{display:flex;align-items:center;gap:10px;padding:10px 12px;min-height:46px;border:1px solid #d4dfd8;border-radius:8px;cursor:pointer;background:#fff}.choice:has(input:checked){background:#eaf4ee;border-color:#6ca78b}.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}details{border:1px solid var(--line);border-radius:9px;background:#fff;margin:12px 0}summary{padding:13px 15px;cursor:pointer;font-weight:650;min-height:46px}details>div{padding:0 16px 16px}.fact{border-left:3px solid #94b4a3;padding:10px 14px;background:#f5f8f6;margin-top:12px}.proposal{border:1px dashed #c3cfdc;border-radius:9px;background:#f5f7fb;padding:16px;margin-top:16px}.proposal .small{color:#5d6784}.confirmed{padding:12px 0}.category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}.category{display:flex;align-items:center;justify-content:space-between;text-align:left;padding:15px}.category.active{border:2px solid var(--green);background:#edf5f0}.category small{font-weight:400;display:block}.item-heading{padding-bottom:12px;border-bottom:1px solid var(--line)}.timer{font-size:44px;font-variant-numeric:tabular-nums;letter-spacing:.06em;margin:12px 0}.record-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#bd554d;margin-right:6px}.record-card{text-align:center;background:linear-gradient(160deg,#f0f6f1,#fff);padding:28px}.record-card .row{justify-content:center}.sample-doc{width:100%;height:auto;display:block;background:#f6f0e2;border-radius:8px;border:1px solid #d8cfb9}.doc-result{border:1px solid #e5d19f;border-radius:9px;background:#fffaf0;padding:16px;margin-top:12px}.doc-result.done{background:#f3f8f4;border-color:#cbdcd0}.paper{background:#fff;box-shadow:0 4px 20px #18332509;border:1px solid #d7ded8;padding:28px;margin-top:18px}.paper h2{text-align:center;margin-bottom:8px}.paper .watermark{text-align:center;color:#947b47;font-size:14px;margin-bottom:20px}.paper-row{padding:14px 0;border-bottom:1px solid var(--line)}.paper-row strong{display:block}.paper-row p{margin:6px 0}.family-tree{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;background:#f5f8f6;border:1px solid var(--line);border-radius:10px;padding:20px;margin:16px 0}.family-person{text-align:center;border:1px solid #9dbbab;padding:12px;border-radius:9px;min-width:100px;background:white}.family-person.main-care{border:2px solid var(--green)}.family-link{font-size:22px;color:#8aaa98}.family-edit{padding:16px;border:1px solid var(--line);border-radius:9px;margin:12px 0}.body-editor{display:grid;grid-template-columns:minmax(0,210px) minmax(0,1fr);gap:20px}.body-map{width:100%;height:340px}.body-map [data-part]{cursor:pointer;fill:#dcebe2;stroke:#609780;stroke-width:2}.body-map [data-part].marked{fill:#efce94}.body-map [data-part].selected{fill:#a8d0be;stroke:#176b59;stroke-width:4}.body-map text{pointer-events:none;fill:#385d4b;font-size:13px}.plan-layout{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:20px}.floor{width:100%;display:block;aspect-ratio:1.15;background:#f5f8f5;border:1px solid #cadacf;border-radius:10px;touch-action:none;user-select:none}.floor [data-piece]{cursor:grab}.floor [data-piece]:active{cursor:grabbing}.floor text{font-size:18px;fill:#2b5845;pointer-events:none}.floor .chosen>rect{stroke:#0e7251;stroke-width:4}.floor .route{stroke:#c88b33;stroke-width:4;stroke-dasharray:8 5}.floor-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.floor-toolbar button{padding:9px 12px}.route-row{border:1px solid var(--line);border-radius:8px;padding:12px;margin-top:10px}.highlight{border:2px solid #c6a451;padding:14px;background:#fffae9;border-radius:9px}.transfer-step{font-weight:700;margin:24px 0 12px}.empty{padding:28px;text-align:center;color:var(--muted)}.login{max-width:540px;padding:44px;margin:9vh auto;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 16px 60px #2e593212}.login .logo{width:62px;height:62px;font-size:34px;margin-bottom:28px}.login h1{font-size:32px;margin-bottom:12px}.login .btn{width:100%;margin-top:26px}.login .demo{display:inline-block;margin-bottom:22px}.login footer{margin-top:26px;padding-top:20px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);padding:13px 20px;background:#193f33;color:white;border-radius:10px;z-index:10;max-width:calc(100vw - 32px);box-shadow:0 5px 20px #0002;display:none}#toast.show{display:block}.source-time{font-size:14px;padding:8px 12px;min-height:44px}.preview-map{max-width:440px;margin:18px auto}.support-note{white-space:pre-wrap}.spacer{margin-top:18px}
.list-row>button,.list-row>.btn{flex-shrink:0}.body-map g{fill:#dcebe2;stroke:#609780;stroke-width:2}.body-map g.marked{fill:#efce94}.body-map g.selected{fill:#a8d0be;stroke:#176b59;stroke-width:4}
@media(min-width:1100px){.category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.shell{display:block}.sidebar{display:none}.topbar{padding:12px 18px;min-height:54px}.topbar .small{font-size:12px}.content{padding:22px 18px 36px}.grid,.three{grid-template-columns:1fr}.page-head{display:block;margin-bottom:20px}.page-head>.btn{margin-top:14px}h1{font-size:25px}.card{padding:19px}.personbar{padding-bottom:16px;margin-bottom:22px}.personbar strong{font-size:18px}.personbar .btn{width:100%;justify-content:flex-start}.category-grid{grid-template-columns:1fr}.plan-layout{grid-template-columns:1fr}.body-editor{grid-template-columns:1fr}.body-map{height:300px}.actions>.primary{width:100%;order:2}.paper{padding:18px}.login{margin:28px 16px;padding:28px 24px}.login h1{font-size:28px}.demo{font-size:12px;padding:4px 7px}.person-card{padding:18px}.list-row{align-items:flex-start}.task-card{padding:17px}.choices{grid-template-columns:1fr}.floor-toolbar button{flex:1 0 20%}.family-tree{padding:14px}.topbar .site-title{max-width:45%;font-size:13px}.record-card{padding:22px 16px}.page-head .row{margin-top:12px}}
@media(max-width:800px){.family-tree{flex-direction:column}.family-link{transform:rotate(90deg);line-height:1}}
/* Selected parts capture editing gestures; empty canvas remains scrollable. */
.floor{touch-action:pan-y}.floor [data-piece]{touch-action:pan-y}.floor [data-piece].chosen,.floor [data-resize]{touch-action:none}
.resize-overlay{pointer-events:none}.resize-overlay [data-resize]{pointer-events:all}
.floor [data-resize=n],.floor [data-resize=s]{cursor:ns-resize}.floor [data-resize=e],.floor [data-resize=w]{cursor:ew-resize}
.floor [data-resize=nw],.floor [data-resize=se]{cursor:nwse-resize}.floor [data-resize=ne],.floor [data-resize=sw]{cursor:nesw-resize}
.floor.resizing,.floor.moving{user-select:none}
.floor [data-floor-move]{pointer-events:all;touch-action:none;cursor:grab}
.floor-add-groups{display:grid;grid-template-columns:1fr 2fr;gap:14px;margin:18px 0 24px}.floor-add-groups fieldset{min-width:0;margin:0;padding:14px;border:1px solid #dce5df;border-radius:9px}.floor-add-groups legend{font-weight:700;padding:0 6px}.floor-add-groups .floor-toolbar{margin-bottom:8px}@media(max-width:800px){.floor-add-groups{grid-template-columns:1fr}}
@media(max-width:800px){.floor-add-groups .floor-toolbar button{flex:1 0 26%}}

/* Show only after attempting an action that requires confirmation. */
.confirmation-check-error{color:#b42318;font-size:1rem;font-weight:700;line-height:1.6;margin:6px 0 16px;padding:0 4px}

/* Long work pages use the browser's document scroll. Keep the sidebar and
   header in their existing layout; do not constrain main to the viewport. */
html{min-height:100%;overflow-y:scroll;scrollbar-gutter:stable}
