/* Visual language follows requestgroup.jp: white, navy, Mincho type and fine rules. */
:root {
  --ink: #26344b;
  --muted: #53647b;
  --line: #c8d0de;
  --paper: #ffffff;
  --canvas: #ffffff;
  --accent: #001858;
  --soft: #f4f7fa;
  --danger: #9b3830;
  --shadow: none;
  font-family: Georgia, '游明朝', YuMincho, 'Hiragino Mincho ProN', Meiryo, serif;
  color: var(--ink);
  font-size: 17px;
  line-height: 1.9;
  font-synthesis: none;
  overflow-wrap: anywhere;
}
* {box-sizing: border-box;}
body {margin: 0; background: var(--canvas);}
button,input,textarea,select {font: inherit; color: inherit;}
button,a,input,textarea,select {-webkit-tap-highlight-color: transparent;}
button {cursor: pointer;}
button:disabled {cursor: not-allowed; opacity: .5;}
a {color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: 4px;}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible {outline: 3px solid #657b99; outline-offset: 4px;}
h1,h2,h3,p {margin: 0;}
h1,h2,h3 {line-height: 1.65; font-weight: 500; letter-spacing: .02em; color: var(--accent);}
h1 {font-size: clamp(28px,2.8vw,34px);}
h2 {font-size: 25px;}
h3 {font-size: 20px;}
p+p {margin-top: 12px;}
.muted {color: var(--muted);}
.small {font-size: 14px; line-height: 1.7;}
.sr-only {position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0);}
.skip-link {position: absolute; left: 20px; top: -80px; z-index: 100; background: white; padding: 12px 20px;}
.skip-link:focus {top: 10px;}
.site-header {max-width: 1340px; margin: auto; padding: 22px 5%; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid #c8d0de;}
.brand {display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--accent);}
.brand-name {display: block; font-size: 20px; font-weight: 400; line-height: 1.5; letter-spacing: .02em;}
.brand-owner {display: block; font-size: 12px; margin-top: 5px; letter-spacing: .03em; color: var(--muted);}
.header-nav {display: flex; gap: 20px; align-items: center;}
.text-button {border: 0; background: none; padding: 5px 0; font-size: 15px; text-decoration: underline; text-underline-offset: 5px;}
.company-link {font-size: 14px; text-decoration: none;}
.site-footer {max-width: 1200px; margin: 70px auto 0; padding: 30px 5% 28px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr auto; gap: 20px; font-size: 14px;}
.site-footer strong {font-size: 16px;}
.site-footer p {color: var(--muted); margin-top: 5px;}
.footer-links {display: flex; gap: 20px; flex-wrap: wrap; align-content: start;}
.footer-owner {grid-column: 1/-1; font-size: 12px;}
.home {max-width: 1160px; margin: 0 auto; padding: 55px 28px 10px;}
.hero {display: grid; grid-template-columns: 1.04fr 1fr; gap: 36px; align-items: center; margin-bottom: 44px;}
.eyebrow {color: var(--muted); letter-spacing: .06em; font-size: 14px; font-weight: 400; margin-bottom: 15px;}
.hero h1 {max-width: 650px; font-size: clamp(28px,2.8vw,34px); letter-spacing: .02em;}
.hero .lead {font-size: 18px; max-width: 650px; line-height: 1.95; margin-top: 22px;}
.hero-art {width: 100%; height: auto; display: block; max-height: none; max-width: 100%; object-fit: contain;}
.hero-note {margin-top: 18px; font-size: 14px; color: var(--muted);}
.entry-section {background: white; border: 0; border-radius: 0; padding: 36px 0; box-shadow: none; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);}
.section-intro {display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-bottom: 20px;}
.entry-grid {display: grid; grid-template-columns: repeat(3,1fr); gap: 16px;}
.entry-card {text-align: left; border: 0; background: white; border-radius: 0; padding: 24px 12px; display: flex; flex-direction: column; gap: 12px; transition: transform .2s,border-color .2s,background .2s; min-height: 222px; border-top: 2px solid var(--accent);}
.entry-card:hover {transform: none; border-color: #001858; background: var(--soft);}
.entry-icon {width: 43px; height: 43px; border-radius: 0; background: transparent; color: var(--accent); display: grid; place-items: center;}
.entry-icon svg {width: 26px; height: 26px;}
.entry-card strong {font-size: 20px; line-height: 1.6; color: var(--accent); font-weight: 500;}
.entry-card span {font-size: 15px; color: var(--muted); line-height: 1.8;}
.entry-card .entry-arrow {color: var(--accent); margin-top: auto; font-size: 14px; font-weight: 500;}
.home-bottom {display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-top: 36px;}
.quiet-block {border-top: 2px solid var(--accent); padding: 20px 0;}
.quiet-block h3 {font-size: 18px; margin-bottom: 10px;}
.quiet-block p {font-size: 15px; color: var(--muted);}
.mini-flow {display: flex; gap: 8px; flex-wrap: wrap; margin-top: 15px;}
.mini-flow span {background: var(--soft); padding: 4px 10px; border-radius: 0; font-size: 13px;}
.workspace {max-width: 1080px; margin: 0 auto; padding: 32px 28px 0;}
.workspace-bar {display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 22px;}
.case-title {font-weight: 500; font-size: 17px; max-width: 65%; overflow-wrap: anywhere;}
.draft-chip,.tag {display: inline-flex; align-items: center; font-size: 12px; line-height: 1.7; white-space: nowrap; padding: 3px 9px; border-radius: 0; background: var(--soft); color: #53647b; vertical-align: middle; border: 1px solid var(--line);}
.tag.confirmed {background: white; color: var(--accent); border-color: var(--accent);}
.tag.ai {background: white; color: #53647b; border-style: dashed;}
.progress {display: flex; list-style: none; padding: 0; margin: 0 0 28px; gap: 5px;}
.progress li {flex: 1;}
.progress button {width: 100%; border: 0; background: none; text-align: left; padding: 12px 10px; border-bottom: 3px solid var(--line); font-size: 14px; color: var(--muted);}
.progress button[aria-current="step"] {color: var(--accent); border-color: var(--accent); font-weight: 500;}
.progress .number {font-size: 12px; display: block; color: var(--muted); font-weight: 500;}
.stage-card {background: white; border: 1px solid var(--line); border-radius: 0; padding: 36px 40px; box-shadow: none;}
.stage-title {display: flex; align-items: start; justify-content: space-between; gap: 20px; margin-bottom: 26px;}
.stage-title p {margin-top: 10px; color: var(--muted); font-size: 16px;}
.stage-number {font-size: 13px; color: var(--muted); font-weight: 500; letter-spacing: .07em; margin-bottom: 6px;}
.guide-bubble {background: var(--soft); padding: 17px 22px; border-radius: 0; font-size: 15px; line-height: 1.9; margin-bottom: 24px; border-left: 2px solid var(--accent);}
.field {margin-bottom: 24px;}
.field:last-child {margin-bottom: 0;}
.field label,.field-label {display: block; font-size: 17px; font-weight: 500; margin-bottom: 8px;}
.field .hint {font-size: 14px; color: var(--muted); margin-top: 7px; line-height: 1.8;}
input[type=text],textarea,select {width: 100%; border: 1px solid #c8d0de; border-radius: 0; background: #fff; padding: 12px 14px; line-height: 1.8; min-height: 50px; font-size: 17px;}
textarea {resize: vertical; min-height: 105px;}
textarea.short {min-height: 76px;}
textarea.tall {min-height: 190px;}
input::placeholder,textarea::placeholder {color: #53647b; font-size: 15px;}
select {padding-right: 35px;}
label.check {display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: 15px; margin: 12px 0; cursor: pointer;}
input[type=checkbox] {width: 19px; height: 19px; margin: 5px 0 0; flex-shrink: 0; accent-color: var(--accent);}
.row {display: grid; grid-template-columns: 1fr 1fr; gap: 22px;}
.actions {display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 28px; flex-wrap: wrap;}
.actions-start {justify-content: flex-start;}
.button {border: 1px solid var(--line); border-radius: 0; padding: 12px 20px; font-size: 16px; line-height: 1.6; font-weight: 400; display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none; background: white; min-height: 49px;}
.button.primary {background: white; border-color: var(--accent); color: var(--accent);}
.button.primary:hover {background: var(--soft); color: var(--accent);}
.button.soft {background: var(--soft); border-color: var(--line);}
.button.small {font-size: 14px; padding: 9px 14px; min-height: 42px;}
.button.danger {color: var(--danger);}
.button-link {border: 0; background: none; padding: 6px 0; color: var(--accent); font-size: 14px; text-decoration: underline; text-underline-offset: 4px;}
.subtle-actions {display: flex; gap: 18px; flex-wrap: wrap; margin-top: 15px;}
.save-strip {display: flex; align-items: center; justify-content: space-between; gap: 20px; font-size: 14px; margin-top: 24px; color: var(--muted); flex-wrap: wrap;}
.save-strip label.check {margin: 0; font-size: 14px;}
.example-grid {display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-top: 15px;}
.example-card {border: 1px solid var(--line); border-radius: 0; padding: 17px; text-align: left; background: var(--canvas); line-height: 1.7; font-size: 15px;}
.example-card strong {display: block; font-size: 15px;}
.example-card span {display: block; font-size: 13px; color: var(--muted); margin-top: 6px;}
.example-card:hover {border-color: #001858;}
.divider {height: 1px; background: var(--line); margin: 28px 0;}
.disclosure {border: 1px solid var(--line); border-radius: 0; padding: 16px 18px; margin-bottom: 16px;}
.disclosure summary {font-size: 15px; cursor: pointer; font-weight: 500;}
.disclosure[open] summary {margin-bottom: 18px;}
.cue {font-size: 14px; padding: 12px 15px; background: var(--soft); border-radius: 0; margin-top: 12px;}
.choices {display: grid; grid-template-columns: 1fr 1fr; gap: 10px;}
.choice {background: var(--canvas); border: 1px solid var(--line); border-radius: 0; padding: 10px 13px;}
.choice label.check {margin: 0;}
.tabs {display: flex; gap: 6px; flex-wrap: wrap; border-bottom: 1px solid var(--line); margin-bottom: 24px;}
.tab {background: none; border: 0; border-bottom: 3px solid transparent; border-radius: 0; padding: 12px 17px; font-size: 15px; line-height: 1.5;}
.tab[aria-selected=true] {border-color: var(--accent); font-weight: 500; background: var(--soft);}
.editor-grid {display: grid; grid-template-columns: 1fr 290px; gap: 26px; align-items: start;}
.editor-aside {background: var(--soft); padding: 20px; border-radius: 0; position: sticky; top: 20px;}
.editor-aside h3 {font-size: 18px; margin-bottom: 8px;}
.editor-aside p {font-size: 14px; line-height: 1.9; margin-bottom: 16px;}
.editor-aside .button {width: 100%; margin-top: 8px; font-size: 14px; padding: 11px 10px;}
.step-editor {border: 1px solid var(--line); border-radius: 0; padding: 20px; margin-bottom: 18px;}
.step-head {display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; gap: 10px;}
.step-id {font-size: 13px; font-weight: 500; color: var(--muted); letter-spacing: .08em;}
.step-editor .field {margin-bottom: 17px;}
.step-editor .field label {font-size: 15px;}
.step-editor textarea {font-size: 16px;}
.step-editor .disclosure {padding: 13px; margin-top: 12px; background: var(--canvas);}
.premise-card {border: 1px solid var(--line); border-radius: 0; padding: 20px; margin-bottom: 16px;}
.status-row {display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 14px; align-items: end;}
.status-row label {font-size: 13px; display: block; margin-bottom: 5px;}
.status-row select {font-size: 14px; min-height: 44px; padding: 8px 10px;}
.source-tag {font-size: 12px; color: var(--muted); margin: 10px 0;}
.empty {background: var(--canvas); border: 1px dashed #c8d0de; padding: 24px; border-radius: 0; color: var(--muted); font-size: 15px;}
.ai-panel {background: #f4f7fa; border: 1px solid #c8d0de; border-radius: 0; padding: 25px; margin-bottom: 25px;}
.ai-panel h3 {font-size: 21px;}
.ai-panel p {font-size: 15px; color: var(--muted); margin-top: 8px;}
.ai-steps {display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin: 18px 0;}
.ai-steps div {padding: 13px 15px; background: white; border: 1px solid #c8d0de; border-radius: 0; font-size: 14px;}
.ai-steps b {display: block; font-size: 13px; color: var(--muted); margin-bottom: 4px;}
.notice {background: var(--soft); border-radius: 0; padding: 16px 20px; font-size: 14px; line-height: 1.9; margin: 16px 0;}
.notice.warning {background: var(--soft); border-left: 2px solid var(--accent);}
.notice.error {background: #fff1ef; color: var(--danger);}
.material-header {display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 20px; flex-wrap: wrap;}
.material-header select {width: auto; font-size: 15px; min-width: 160px;}
.material-preview {background: white; border: 1px solid var(--line); padding: 35px 38px; border-radius: 0; box-shadow: none;}
.material-preview h2 {font-size: 26px; line-height: 1.7; margin: 12px 0 24px; overflow-wrap: anywhere;}
.material-section {border-top: 1px solid var(--line); padding: 20px 0; break-inside: avoid;}
.material-section h3 {font-size: 18px; margin-bottom: 10px;}
.material-section p {font-size: 16px; white-space: pre-wrap; overflow-wrap: anywhere;}
.material-section dl {margin: 0;}
.material-section dt {font-size: 13px; font-weight: 500; color: var(--muted); margin-top: 12px;}
.material-section dd {font-size: 16px; white-space: pre-wrap; overflow-wrap: anywhere; margin: 3px 0 0;}
.material-step-title {display: flex; gap: 10px; align-items: baseline;}
.material-meta {display: flex; gap: 10px; flex-wrap: wrap; font-size: 12px; color: var(--muted);}
.export-bar {background: var(--soft); border-radius: 0; padding: 20px; margin: 22px 0; display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap;}
.export-bar p {font-size: 14px; max-width: 550px;}
.export-controls {display: flex; gap: 10px; flex-wrap: wrap;}
.observe-box {background: white; border: 1px solid var(--line); border-radius: 0; margin-top: 28px; padding: 25px;}
.observe-box p {font-size: 15px; color: var(--muted); margin: 8px 0 18px;}
.observation-card {border-left: 3px solid var(--accent); padding: 12px 17px; background: var(--canvas); margin-top: 14px;}
.observation-card p {color: var(--ink); font-size: 15px; margin: 5px 0; white-space: pre-wrap; overflow-wrap: anywhere;}
.sources {font-size: 14px; line-height: 2; margin-top: 20px;}
.sources a {display: block;}
.attachment {display: flex; gap: 15px; align-items: center; border: 1px solid var(--line); padding: 12px; border-radius: 0; margin-top: 14px; font-size: 14px;}
.attachment img {max-width: 160px; max-height: 120px; object-fit: contain; border-radius: 0;}
.attachment a {overflow-wrap: anywhere;}
.file-input {position: absolute; opacity: 0; width: 1px; height: 1px;}
.error-text {font-size: 14px; color: var(--danger); margin-top: 10px;}
.prompt-view {font-size: 14px; white-space: pre-wrap; overflow-wrap: anywhere; max-height: 360px; overflow: auto; background: var(--canvas); border: 1px solid var(--line); border-radius: 0; padding: 16px;}
dialog {border: 1px solid var(--line); border-radius: 0; padding: 0; max-width: 720px; width: calc(100% - 32px); color: var(--ink); max-height: 90vh; box-shadow: 0 12px 48px #26344b20;}
dialog::backdrop {background: #26344b55;}
#modal-content {padding: 30px; overflow: auto; max-height: 88vh;}
.modal-head {display: flex; align-items: start; justify-content: space-between; gap: 15px; margin-bottom: 20px;}
.modal-head h2 {font-size: 24px;}
.close-button {border: 1px solid var(--line); background: var(--canvas); border-radius: 2px; width: 38px; height: 38px; font-size: 23px; line-height: 1; flex-shrink: 0;}
.modal-content p {font-size: 15px; line-height: 1.9; margin: 12px 0;}
.saved-card {border: 1px solid var(--line); border-radius: 0; padding: 18px; margin-bottom: 12px;}
.saved-card strong {font-size: 17px; overflow-wrap: anywhere;}
.saved-card p {font-size: 13px; margin: 6px 0; color: var(--muted);}
.saved-card .actions {margin-top: 12px;}
.modal-list {padding-left: 22px; font-size: 15px; line-height: 2;}
.modal-list li {margin-bottom: 8px;}
#toast {position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%); background: var(--ink); color: #fff; padding: 12px 23px; border-radius: 0; box-shadow: none; font-size: 15px; z-index: 200; opacity: 0; pointer-events: none; transition: opacity .2s; max-width: calc(100% - 40px); text-align: center;}
#toast.visible {opacity: 1;}
.resume-banner {background: var(--soft); border-radius: 0; padding: 16px 20px; margin-bottom: 25px; display: flex; align-items: center; justify-content: space-between; gap: 18px; font-size: 15px;}
.warning-label {font-weight: 500; color: var(--muted);}
.translation-box {background: var(--canvas); border: 1px solid var(--line); border-radius: 0; padding: 24px; margin: 20px 0;}
.translation-box h3 {font-size: 19px;}
.translation-box p {font-size: 15px; margin: 10px 0;}
.language-status {font-size: 13px; margin: 12px 0; color: var(--muted);}
.comparison {display: grid; grid-template-columns: 1fr 1fr; gap: 16px;}
.comparison>div {background: var(--canvas); border: 1px solid var(--line); border-radius: 0; padding: 18px;}
.comparison strong {font-size: 14px; display: block; margin-bottom: 7px;}
.comparison p {font-size: 15px;}
.revision-note {font-size: 13px; color: var(--muted); margin-top: 14px;}
.loading-spinner {display: inline-block; width: 17px; height: 17px; border: 2px solid #c8d0de; border-top-color: var(--ink); border-radius: 50%; animation: spin 1s linear infinite;}
@keyframes spin {
  to {transform: rotate(360deg);}
}
@media (max-width:950px) {
  .site-header {padding: 20px 24px;}
  .header-nav {gap: 14px;}
  .company-link {display: none;}
  .hero {gap: 20px; grid-template-columns: 1.15fr .85fr;}
  .hero h1 {font-size: 33px;}
  .hero .lead {font-size: 16px;}
  .entry-grid {gap: 12px;}
  .entry-card {padding: 24px 12px; border: 0; border-top: 2px solid var(--accent); background: white;}
  .entry-card strong {font-size: 18px; color: var(--accent); font-weight: 500;}
  .editor-grid {grid-template-columns: 1fr;}
  .editor-aside {position: static; display: grid; grid-template-columns: 1fr 1fr; column-gap: 20px;}
  .editor-aside h3,.editor-aside p {grid-column: 1/-1;}
  .editor-aside .button {margin-top: 0;}
  .stage-card {padding: 28px;}
  .site-footer {grid-template-columns: 1fr;}
  .footer-links {gap: 16px;}
}
@media (max-width:650px) {
  :root {font-size: 16px;}
  .site-header {padding: 16px; align-items: flex-start; gap: 12px;}
  .brand {gap: 9px; color: var(--accent);}
  .brand-name {font-size: 17px; font-weight: 400; letter-spacing: .02em;}
  .brand-owner {font-size: 10px;}
  .header-nav {gap: 5px; flex-direction: column; align-items: flex-end;}
  .text-button {font-size: 12px; padding: 2px;}
  .home {padding: 30px 17px 0;}
  .hero {grid-template-columns: 1fr; gap: 15px; margin-bottom: 25px;}
  .hero h1 {font-size: 30px;}
  .hero .lead {font-size: 16px; margin-top: 15px;}
  .hero-art {max-width: 100%; justify-self: center; max-height: none; display: block; height: auto; object-fit: contain;}
  .hero-note {margin-top: 12px;}
  .entry-section {padding: 28px 0; border-radius: 0; border: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);}
  .section-intro {align-items: flex-start; margin-bottom: 15px;}
  .section-intro h2 {font-size: 21px;}
  .entry-grid {grid-template-columns: 1fr;}
  .entry-card {padding: 20px 12px; min-height: 0; display: grid; grid-template-columns: 42px 1fr; gap: 5px 15px; border: 0; border-top: 2px solid var(--accent); background: white;}
  .entry-icon {grid-row: 1/4; background: transparent; color: var(--accent);}
  .entry-card strong {font-size: 18px; color: var(--accent); font-weight: 500;}
  .entry-card>span:not(.entry-icon) {grid-column: 2; font-size: 14px;}
  .entry-card .entry-arrow {margin-top: 7px;}
  .home-bottom {grid-template-columns: 1fr; gap: 15px; margin-top: 27px;}
  .workspace {padding: 22px 15px 0;}
  .workspace-bar {gap: 10px;}
  .case-title {font-size: 14px;}
  .workspace-bar .button {font-size: 12px; padding: 8px 10px; min-height: 38px;}
  .progress {gap: 2px; margin-bottom: 20px;}
  .progress button {font-size: 11px; padding: 8px 3px; line-height: 1.6;}
  .progress .number {font-size: 10px;}
  .stage-card {padding: 24px 18px; border-radius: 0;}
  .stage-title {margin-bottom: 20px;}
  .stage-title h2 {font-size: 23px;}
  .stage-title p {font-size: 15px;}
  .guide-bubble {padding: 14px 15px; font-size: 14px; border-left: 2px solid var(--accent);}
  .field label,.field-label {font-size: 16px;}
  .field .hint {font-size: 13px;}
  input[type=text],textarea,select {font-size: 16px; padding: 11px 12px;}
  .row,.choices,.example-grid {grid-template-columns: 1fr;}
  .row {gap: 0;}
  .example-card {padding: 13px 16px;}
  .actions {gap: 10px;}
  .button {font-size: 15px; padding: 11px 15px; min-height: 46px; font-weight: 400;}
  .save-strip {font-size: 13px;}
  .save-strip label.check {font-size: 13px;}
  .tabs {gap: 0;}
  .tab {font-size: 13px; padding: 11px 10px;}
  .editor-aside {padding: 18px; gap: 12px;}
  .step-editor,.premise-card {padding: 17px;}
  .status-row {grid-template-columns: 1fr; gap: 10px;}
  .ai-panel {padding: 20px 17px;}
  .ai-steps {grid-template-columns: 1fr; gap: 8px;}
  .ai-steps div {padding: 11px 14px;}
  .ai-steps b {display: inline-block; margin: 0 8px 0 0;}
  .material-preview {padding: 23px 19px;}
  .material-preview h2 {font-size: 23px;}
  .material-section p,.material-section dd {font-size: 15px;}
  .material-header {gap: 12px;}
  .material-header select {font-size: 14px; min-width: 140px;}
  .material-header .tabs {margin-bottom: 0; flex: 1 1 100%;}
  .export-bar {padding: 18px; gap: 12px;}
  .export-controls {width: 100%;}
  .export-controls .button {flex: 1;}
  .observe-box {padding: 20px 17px;}
  .comparison {grid-template-columns: 1fr;}
  .translation-box {padding: 20px 16px;}
  #modal-content {padding: 24px 20px;}
  .modal-head h2 {font-size: 22px;}
  .site-footer {padding: 25px 20px; margin-top: 45px;}
  .footer-links {gap: 13px; font-size: 12px;}
  .attachment {flex-direction: column; align-items: flex-start;}
  .resume-banner {font-size: 14px; flex-wrap: wrap;}
  .editor-aside .button {font-size: 13px;}
  .sources {font-size: 13px;}
}
@media (prefers-reduced-motion:reduce) {
  *,*:before,*:after {animation: none !important; transition: none !important; scroll-behavior: auto !important;}
}
@media print {
  .site-header,.site-footer,.progress,.workspace-bar,.stage-title,.ai-panel,.export-bar,.observe-box,.translation-box,.save-strip,.subtle-actions,.actions,.tabs,.notice,#toast,dialog {display: none !important;}
  .workspace,.stage-card,.material-preview {padding: 0; margin: 0; border: 0; box-shadow: none; max-width: none; background: white;}
  .material-header select {display: none;}
  .material-preview h2 {font-size: 24px;}
  .material-section {page-break-inside: avoid;}
  body {background: white;}
}
.corporate-bar {max-width: 1340px; margin: auto; padding: 12px 5%; display: flex; justify-content: space-between; align-items: center; gap: 20px; font-size: 14px; border-bottom: 1px solid #c8d0de;}
.corporate-bar a {text-decoration: none; color: var(--ink);}
.corporate-bar a:first-child {font-weight: 400;}
.corporate-bar a:first-child span {font-weight: 400; color: var(--muted);}
.corporate-return {white-space: nowrap; padding: 8px 0; font-size: 14px;}
.site-header {padding-top: 23px; padding-bottom: 23px;}
.brand-name {font-size: 23px; font-weight: 400; letter-spacing: .02em;}
.brand-owner {font-size: 14px; letter-spacing: 0;}
.header-nav {gap: 16px;}
.text-button {min-height: 44px; padding: 10px 12px; text-decoration: none; border-radius: 0;}
.text-button:hover {background: var(--soft);}
.header-nav .text-button:first-child {border: 1px solid var(--line); background: white;}
.home {padding-top: 52px;}
.hero {grid-template-columns: 1.04fr 1fr; gap: 36px; margin-bottom: 44px;}
.hero h1 {font-size: clamp(28px,2.8vw,34px); line-height: 1.65; letter-spacing: .02em;}
.hero .lead {font-size: 18px; line-height: 1.95; margin-top: 20px;}
.eyebrow {font-size: 14px; letter-spacing: .06em; font-weight: 400; color: var(--muted);}
.hero-visual {margin: 0; min-width: 0; width: 100%; max-width: none;}
.hero-visual figcaption {font-size: 15px; color: var(--muted); text-align: left; padding-top: 12px; line-height: 1.8;}
.hero-actions {display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px;}
.hero-note {font-size: 14px; margin-top: 14px;}
.button {transition: background .15s,border-color .15s; min-height: 50px; font-weight: 400;}
.button:not(.primary):hover {border-color: #001858; background: #f4f7fa;}
.entry-section {padding: 36px 0; border-radius: 0; box-shadow: none; border: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);}
.section-intro h2 {font-size: 25px; line-height: 1.6;}
.section-intro p:not(.stage-number) {font-size: 16px; margin-top: 12px; color: var(--muted);}
.entry-card {min-height: 212px; border-radius: 0; padding: 24px 12px; gap: 10px; border: 0; border-top: 2px solid var(--accent); background: white;}
.entry-card:hover {transform: none; border-color: #001858; box-shadow: none; background: var(--soft);}
.entry-card strong {font-size: 18px; color: var(--accent); font-weight: 500;}
.entry-card span {font-size: 15px;}
.entry-icon {background: transparent; color: var(--accent);}
.assumption-section {display: grid; grid-template-columns: 1fr 1.1fr; gap: 45px; align-items: center; padding: 55px 0; border-bottom: 1px solid var(--line);}
.assumption-section h2 {font-size: 25px; line-height: 1.75;}
.assumption-section>div>p:not(.eyebrow) {font-size: 16px; line-height: 1.9; color: var(--muted); margin-top: 16px;}
.scene-example {border: 1px solid #c8d0de; border-radius: 0; padding: 24px; background: white;}
.example-label {font-size: 14px !important; margin: 0 0 15px !important; color: var(--muted) !important;}
.scene-before,.scene-after {padding: 15px 18px; border-radius: 0;}
.scene-before {background: var(--canvas); margin-bottom: 12px;}
.scene-after {background: var(--soft);}
.scene-before>span,.scene-after>span {display: block; font-size: 14px; color: var(--muted); margin-bottom: 5px;}
.scene-before p {font-size: 17px;}
.scene-after p {font-size: 17px; line-height: 1.9;}
.scene-example>p:last-child {font-size: 14px !important; line-height: 1.8 !important; margin: 14px 0 0 !important;}
.output-section {padding: 45px 0 48px;}
.output-grid {display: grid; grid-template-columns: repeat(3,1fr); gap: 20px;}
.document-choice {display: flex; flex-direction: column; align-items: flex-start; gap: 12px; text-align: left; min-width: 0; background: white; border: 1px solid var(--line); border-top: 2px solid var(--accent); border-radius: 0; padding: 26px 24px; box-shadow: none; transition: border-color .15s;}
.document-choice:hover {border-color: #001858; background: #f4f7fa;}
.document-timing {font-size: 14px; color: var(--muted);}
.document-choice>strong {font-size: 23px; line-height: 1.5; color: var(--accent); font-weight: 500;}
.document-description {font-size: 16px; line-height: 1.8; color: var(--muted);}
.document-link {margin-top: auto; padding-top: 12px; font-size: 15px; font-weight: 500; color: var(--accent);}
.how-section {display: grid; grid-template-columns: 1fr 1.15fr; gap: 20px 45px; background: var(--soft); padding: 35px; border-radius: 0; border: 1px solid var(--line);}
.how-intro h2 {font-size: 25px; line-height: 1.7;}
.how-intro>p:not(.eyebrow) {font-size: 16px; margin: 15px 0 10px;}
.how-steps {list-style: none; padding: 0; margin: 0; display: grid; gap: 17px;}
.how-steps li {display: flex; gap: 15px;}
.how-number {display: grid; place-items: center; border: 1px solid #c8d0de; background: white; border-radius: 0; width: 33px; height: 33px; flex: 0 0 33px; font-size: 15px; font-weight: 500; color: var(--muted);}
.how-steps strong {display: block; font-size: 17px; line-height: 1.7;}
.how-steps p {font-size: 15px; line-height: 1.8; color: var(--muted); margin-top: 5px;}
.how-privacy {grid-column: 1/-1; font-size: 14px; line-height: 1.9; color: var(--muted); border-top: 1px solid #c8d0de; padding-top: 18px;}
.practice-next {padding: 48px 0 8px; display: grid; justify-content: space-between; gap: 36px; align-items: center; grid-template-columns: minmax(0,1fr) minmax(0,1.05fr);}
.practice-next h2 {font-size: 24px;}
.practice-next p:not(.stage-number) {font-size: 16px; color: var(--muted); line-height: 1.9; margin-top: 12px;}
.related-tools {grid-column: 1/-1; margin-bottom: 22px;}
.related-tools h2 {font-size: 23px;}
.related-grid {display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; margin-top: 21px;}
.related-grid>a {padding: 20px 0; text-decoration: none; border-top: 1px solid var(--line);}
.related-grid>a>span {display: block; font-size: 14px; color: var(--muted); margin-bottom: 5px;}
.related-grid strong {font-size: 17px;}
.related-grid a:hover strong {text-decoration: underline; text-underline-offset: 4px;}
.site-footer {padding-top: 35px; max-width: 1160px;}
.site-footer .footer-owner {font-size: 14px;}
.footer-links {align-items: center;}
.footer-links>a {padding: 10px 0;}
.footer-links button {min-height: 44px;}
.site-footer strong {font-size: 17px;}
body[data-view=workspace] .related-tools {display: none;}
.room-entry {margin: 20px 0 12px; padding: 18px 0; border-bottom: 1px solid var(--line); font-size: 16px; line-height: 1.9; color: var(--muted);}
.room-entry a {display: inline-block; padding: 7px 0; color: var(--accent); text-underline-offset: 4px;}
.room-entry .room-guide-link {display: block; width: fit-content; min-height: 44px;}
.practice-rooms {padding-top: 36px; margin-top: 36px; border-top: 1px solid var(--line);}
.practice-rooms h2 {font-size: 24px; line-height: 1.8;}
.practice-room-grid {display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin-top: 24px;}
.practice-room {min-width: 0; display: flex; flex-direction: column; align-items: flex-start; padding: 24px; border: 1px solid var(--line); background: white;}
.practice-room-current {border-top: 2px solid var(--accent); background: var(--soft);}
.practice-room .room-purpose {font-size: 16px; line-height: 1.9; color: var(--muted); margin: 0 0 12px;}
.practice-room h3 {font-size: 21px; line-height: 1.8; font-weight: 500; color: var(--accent); margin: 0 0 14px;}
.room-current {display: inline-block; font-size: 14px; font-weight: 400; color: var(--muted); white-space: nowrap;}
.practice-room>p {font-size: 16px; line-height: 1.9; margin: 0 0 16px;}
.practice-room dl {width: 100%; margin: 0 0 16px; padding-top: 14px; border-top: 1px solid var(--line);}
.practice-room dt {font-size: 14px; color: var(--muted);}
.practice-room dd {margin: 5px 0 0; font-size: 16px; line-height: 1.9;}
.practice-room .room-example {color: var(--muted);}
.practice-room .button {margin-top: auto; max-width: 100%; white-space: normal; text-align: left;}
.practice-room .room-note {font-size: 14px; color: var(--muted); margin: 12px 0 0;}
.room-bridge {font-size: 16px; line-height: 1.9; color: var(--muted); margin-top: 20px;}
@media (max-width:650px) {.practice-room-grid {grid-template-columns: minmax(0,1fr); gap: 18px;} .practice-room {padding: 22px 18px;} .practice-rooms h2 {font-size: 22px;}}
@media print {.room-entry,.practice-rooms {display: none !important;}}
.research-section {padding-top: 40px; margin-top: 44px; border-top: 1px solid var(--line);}
.research-section h2 {font-size: 24px;}
.research-intro,.research-foundation {max-width: 850px; font-size: 16px; line-height: 1.9; margin-top: 16px;}
.research-foundation {color: var(--muted);}
.research-disclosure {margin-top: 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);}
.research-disclosure>summary {padding: 12px 0; min-height: 44px; font-size: 16px; cursor: pointer; color: var(--accent);}
.research-details {margin-top: 22px;}
.research-details>h3 {font-size: 20px;}
.research-role-list {display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 32px; list-style: none; padding: 0; margin: 18px 0 28px;}
.research-role {min-width: 0; padding: 20px 0; border-top: 1px solid var(--line);}
.research-role h4 {margin: 0; font-size: 18px; font-weight: 500; line-height: 1.8; color: var(--accent);}
.research-role h4 a {display: inline-block; min-height: 44px; padding: 4px 0;}
.research-role p {font-size: 16px; line-height: 1.9; margin-top: 10px;}
.research-role .research-position {font-size: 14px; color: var(--muted); margin: 0 0 5px;}
.research-overview {display: inline-block; font-size: 16px; padding: 10px 0; min-height: 44px; margin-bottom: 20px;}
.research-about p {font-size: 16px; line-height: 1.9;}
.research-method {padding: 22px; background: var(--soft); border: 1px solid var(--line); margin-top: 24px;}
.research-method h3 {font-size: 20px;}
.research-method ol {padding-left: 23px; margin: 12px 0 18px; font-size: 16px;}
.research-method li+li {margin-top: 10px;}
.research-scope {padding-top: 20px; border-top: 1px solid var(--line); color: var(--muted);}
.research-about .research-owner {font-size: 15px; color: var(--muted); margin-top: 20px;}
@media (max-width:650px) {
  .research-section {padding-top: 30px; margin-top: 34px;}
  .research-section h2 {font-size: 23px;}
  .research-role-list {grid-template-columns: minmax(0,1fr);}
  .research-role {padding: 18px 0;}
  .research-method {padding: 20px 17px;}
}
@media print {.research-section {display: none !important;}}
.case-heading {min-width: 0; flex: 1;}
.case-heading>span {font-size: 14px; color: var(--muted); display: block; margin-bottom: 4px;}
.case-title {max-width: none; font-size: 19px; line-height: 1.7;}
.workspace-bar>.button {flex-shrink: 0;}
.progress-short {display: none;}
.progress button {min-height: 62px; font-size: 15px; border-radius: 0; padding: 10px 13px;}
.progress button[aria-current=step] {background: var(--soft); color: var(--accent);}
.progress .number {font-size: 13px; margin-bottom: 2px;}
.stage-card {box-shadow: none; border-radius: 0;}
.stage-title h2 {font-size: 27px;}
.stage-number {font-size: 14px; letter-spacing: .03em;}
.field .hint,.small {font-size: 15px;}
input::placeholder,textarea::placeholder {color: #53647b; font-size: 16px;}
.field {margin-bottom: 27px;}
.guide-bubble {font-size: 16px; border-radius: 0; padding: 18px 21px; border-left: 2px solid var(--accent);}
.disclosure summary {min-height: 28px; font-size: 16px; line-height: 1.8;}
.disclosure {padding: 16px 19px;}
.disclosure .field {margin-top: 20px;}
.button-link {font-size: 15px; min-height: 44px; display: inline-flex; align-items: center;}
.source-tag,.status-row label,.revision-note,.language-status {font-size: 14px;}
.status-row select {font-size: 15px;}
.tag,.draft-chip {font-size: 13px;}
.save-strip {font-size: 14px; gap: 12px 22px;}
.save-strip label.check {font-size: 15px;}
.tab {font-size: 16px; min-height: 50px;}
.consult-entry {display: flex; align-items: center; justify-content: space-between; gap: 22px; background: var(--soft); border: 1px solid #c8d0de; border-radius: 0; padding: 23px; margin-bottom: 26px;}
.consult-entry h3 {font-size: 20px;}
.consult-entry p:not(.stage-number) {font-size: 15px; color: var(--muted); margin-top: 8px;}
.consult-actions {display: grid; gap: 10px; flex: 0 0 205px;}
.consult-actions .button {font-size: 15px;}
.editor-content {max-width: 820px;}
.language-picker {display: flex; align-items: center; gap: 12px;}
.language-picker label {font-size: 15px; white-space: nowrap; color: var(--muted);}
.material-header .tabs {margin-bottom: 0;}
.material-header {align-items: flex-start;}
.material-preview {box-shadow: none;}
.material-meta {font-size: 14px;}
.material-section dt {font-size: 15px;}
.export-bar p {font-size: 15px;}
.export-bar .pdf-note {flex-basis: 100%; font-size: 14px; margin: 0; color: var(--muted);}
.export-controls .button {min-height: 50px;}
.observe-box {border-radius: 0;}
.modal-head h2 {font-size: 25px;}
.close-button {width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 2px;}
.modal-list {font-size: 16px;}
.example-card span {font-size: 14px;}
.example-card strong {font-size: 17px;}
.saved-card p {font-size: 14px;}
#modal-content>p {font-size: 16px; line-height: 1.9; margin: 15px 0;}
.attachment img {max-width: 100%;}
#toast {bottom: max(24px,env(safe-area-inset-bottom));}
@media (max-width:950px) {
  .corporate-bar {padding: 9px 24px;}
  .hero {grid-template-columns: 1.15fr .85fr; gap: 22px;}
  .hero h1 {font-size: 32px;}
  .hero .lead {font-size: 16px;}
  .hero-actions {gap: 10px;}
  .hero-actions .button {font-size: 15px; padding: 12px 15px;}
  .assumption-section {gap: 24px;}
  .assumption-section h2,.how-intro h2 {font-size: 23px;}
  .scene-example {padding: 20px;}
  .document-choice {padding: 23px 19px; border-top: 2px solid var(--accent);}
  .document-choice>strong {font-size: 21px; color: var(--accent); font-weight: 500;}
  .how-section {gap: 25px; padding: 29px; border: 1px solid var(--line);}
  .practice-next {align-items: center; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.05fr); gap: 36px; padding: 48px 0 8px;}
  .consult-entry {align-items: flex-start;}
  .related-grid {gap: 20px;}
  .material-header .tabs {flex-basis: 100%;}
}
@media (max-width:650px) {
  .corporate-bar {padding: 6px 17px; font-size: 13px; gap: 12px;}
  .corporate-bar a:first-child span {display: block; font-size: 12px; margin-top: 2px;}
  .corporate-return {font-size: 13px; min-height: 44px; display: flex; align-items: center; gap: 6px;}
  .site-header {padding: 18px 17px 13px; flex-wrap: wrap; align-items: center; gap: 15px;}
  .brand-name {font-size: 20px; font-weight: 400; letter-spacing: .02em;}
  .brand-owner {font-size: 13px; line-height: 1.6; margin-top: 4px;}
  .header-nav {flex-direction: row; align-items: center; gap: 8px; width: 100%;}
  .text-button {font-size: 14px; min-height: 44px; padding: 9px 15px;}
  .home {padding: 29px 17px 0;}
  .hero {grid-template-columns: 1fr; gap: 23px; margin-bottom: 29px;}
  .hero h1 {font-size: clamp(25px,7.5vw,30px); line-height: 1.65;}
  .hero .lead {font-size: 16px; line-height: 1.9; margin-top: 18px;}
  .desktop-break {display: none;}
  .eyebrow {font-size: 14px; line-height: 1.7; font-weight: 400; color: var(--muted); letter-spacing: .06em;}
  .hero-actions {margin-top: 22px; display: grid; grid-template-columns: 1fr; gap: 11px;}
  .hero-actions>.button {font-size: 16px; min-height: 51px;}
  .hero-note {font-size: 14px; line-height: 1.8; margin-top: 12px;}
  .hero-visual {max-width: none; margin: auto; width: 100%;}
  .hero-art {max-height: none; display: block; height: auto; max-width: 100%; object-fit: contain;}
  .hero-visual figcaption {font-size: 15px; line-height: 1.8; padding-top: 12px; text-align: left;}
  .entry-section {padding: 28px 0; border-radius: 0; border: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);}
  .section-intro h2 {font-size: 22px; line-height: 1.7;}
  .section-intro {margin-bottom: 18px;}
  .entry-card {min-height: 0; padding: 20px 12px; gap: 5px 13px; border: 0; border-top: 2px solid var(--accent); background: white;}
  .entry-card strong {font-size: 17px; color: var(--accent); font-weight: 500;}
  .entry-card>span:not(.entry-icon) {font-size: 15px;}
  .entry-card .entry-arrow {font-size: 14px !important;}
  .assumption-section {grid-template-columns: 1fr; gap: 22px; padding: 34px 0;}
  .assumption-section h2 {font-size: 23px; line-height: 1.75;}
  .assumption-section>div>p:not(.eyebrow) {font-size: 16px; margin-top: 12px;}
  .scene-example {padding: 19px 16px;}
  .scene-before,.scene-after {padding: 14px;}
  .scene-before p,.scene-after p {font-size: 16px;}
  .scene-before>span,.scene-after>span {font-size: 14px;}
  .output-section {padding: 33px 0 35px;}
  .section-intro p:not(.stage-number) {font-size: 15px;}
  .output-grid {grid-template-columns: 1fr; gap: 17px;}
  .document-choice {padding: 21px 20px; gap: 9px; border-top: 2px solid var(--accent);}
  .document-choice>strong {font-size: 22px; color: var(--accent); font-weight: 500;}
  .document-description {font-size: 16px;}
  .document-link {font-size: 15px; padding-top: 5px;}
  .how-section {grid-template-columns: 1fr; padding: 25px 19px; gap: 25px; border-radius: 0; border: 1px solid var(--line);}
  .how-intro h2 {font-size: 23px;}
  .how-intro>p:not(.eyebrow) {font-size: 16px;}
  .how-steps {gap: 20px;}
  .how-steps p {font-size: 15px;}
  .how-steps strong {font-size: 17px;}
  .how-privacy {font-size: 14px; margin: 0;}
  .practice-next {padding: 36px 0 0; gap: 36px; display: grid; grid-template-columns: 1fr; align-items: center;}
  .practice-next h2 {font-size: 23px;}
  .practice-next p:not(.stage-number) {font-size: 16px;}
  .site-footer {margin-top: 42px; padding: 27px 17px 24px;}
  .related-tools h2 {font-size: 22px;}
  .related-grid {grid-template-columns: 1fr; gap: 0; margin-top: 18px;}
  .related-grid>a {padding: 18px 0;}
  .related-grid strong {font-size: 18px;}
  .related-grid>a>span {font-size: 15px;}
  .footer-links {font-size: 14px; gap: 12px 20px;}
  .site-footer .footer-owner {font-size: 13px;}
  .site-footer>div>strong {font-size: 16px;}
  .workspace {padding: 23px 15px 0;}
  .workspace-bar {align-items: flex-start; margin-bottom: 20px;}
  .case-heading>span {font-size: 13px;}
  .case-title {font-size: 16px;}
  .workspace-bar>.button {font-size: 14px; min-height: 44px; padding: 8px 11px;}
  .progress {gap: 3px; margin-bottom: 22px;}
  .progress-full {display: none;}
  .progress-short {display: block; font-size: 14px;}
  .progress button {padding: 9px 2px; min-height: 63px; font-size: 14px; text-align: center; line-height: 1.6;}
  .progress .number {font-size: 12px;}
  .stage-card {padding: 25px 18px; border-radius: 0;}
  .stage-title h2 {font-size: 24px; line-height: 1.65;}
  .stage-title p {font-size: 16px; line-height: 1.85;}
  .stage-number {font-size: 14px;}
  .field label,.field-label {font-size: 17px; line-height: 1.8;}
  .field .hint,.small {font-size: 14px; line-height: 1.85;}
  .guide-bubble {padding: 16px; font-size: 15px; border-left: 2px solid var(--accent);}
  .disclosure {padding: 15px;}
  .disclosure summary {font-size: 16px; line-height: 1.8;}
  .disclosure .field {margin-top: 18px;}
  .button {font-size: 16px; min-height: 49px; font-weight: 400;}
  .button.small {font-size: 14px; min-height: 44px;}
  .button-link {font-size: 14px; min-height: 44px;}
  .actions {row-gap: 14px;}
  .tab {font-size: 15px; min-height: 49px; padding: 12px 9px;}
  .tabs[aria-label="教え方の整理"] {display: grid; grid-template-columns: 1fr 1fr; gap: 3px;}
  .consult-entry {flex-direction: column; padding: 20px 17px; gap: 18px;}
  .consult-entry h3 {font-size: 20px; line-height: 1.7;}
  .consult-entry p:not(.stage-number) {font-size: 15px;}
  .consult-actions {flex: none; width: 100%; grid-template-columns: 1fr; gap: 10px;}
  .consult-actions .button {font-size: 16px;}
  .language-picker {width: 100%; justify-content: space-between;}
  .language-picker label {font-size: 15px;}
  .language-picker select {min-width: 150px; font-size: 16px;}
  .material-header .tabs {display: grid; grid-template-columns: repeat(3,1fr); width: 100%; gap: 0;}
  .material-header .tab {font-size: 14px; padding: 12px 5px; line-height: 1.7;}
  .material-preview {padding: 24px 18px;}
  .material-preview h2 {font-size: 24px;}
  .material-section p,.material-section dd {font-size: 16px; line-height: 1.9;}
  .material-section dt {font-size: 14px;}
  .material-meta {font-size: 13px; line-height: 1.8;}
  .export-bar {padding: 20px 17px; gap: 15px;}
  .export-controls {display: grid; grid-template-columns: 1fr; gap: 12px; width: 100%;}
  .export-controls .button {font-size: 16px; width: 100%;}
  .export-bar p {font-size: 15px;}
  .save-strip {font-size: 14px; gap: 12px;}
  .save-strip label.check {font-size: 15px;}
  .status-row label,.source-tag,.revision-note {font-size: 14px;}
  .status-row select {font-size: 16px;}
  .step-editor,.premise-card {padding: 18px 15px;}
  .step-editor .field label {font-size: 16px;}
  .step-editor .disclosure {padding: 14px;}
  .choices {gap: 11px;}
  .choice {padding: 12px;}
  .choice .check {font-size: 16px;}
  .example-card {padding: 16px;}
  .example-card strong {font-size: 17px;}
  .example-card span {font-size: 14px;}
  .modal-head h2 {font-size: 23px;}
  .close-button {width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 2px;}
  #modal-content>p {font-size: 16px;}
  .saved-card .actions {align-items: stretch;}
  .saved-card .button {min-height: 44px;}
  .translation-box {padding: 22px 17px;}
  .translation-box p {font-size: 16px;}
  .translation-box .language-status {font-size: 14px;}
  .translation-box .check {font-size: 15px;}
  .observe-box {padding: 22px 17px;}
  .observe-box>summary {font-size: 18px;}
  .observe-box p {font-size: 16px;}
  .subtle-actions {gap: 10px 17px;}
  .source-tag {line-height: 1.8;}
}
@media print {
  .corporate-bar,.related-tools,.consult-entry {display: none !important;}
}

/* Company illustration and editorial spacing. Images keep their full composition. */
strong,b { font-weight: 500; }

/* A concrete incident, one question, and a visible comparison of experience. */
.workspace-tools {display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px 18px;}
.save-options {display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:24px 0;}
.save-options section {border-top:2px solid var(--accent); padding-top:16px;}
.save-options h3 {font-size:20px;}
.save-options p {font-size:16px; margin:12px 0 18px;}
#save-status {font-size:15px; flex:1 1 280px;}
#pdf-status {font-size:16px; flex-basis:100%;}
.guide-entry,.next-check {border:1px solid var(--line); border-left:2px solid var(--accent); padding:24px; margin:25px 0; background:var(--soft);}
.guide-entry h3,.next-check h3,.gap-intro h3,.guide-proposal h3 {font-size:21px; font-weight:400; line-height:1.8;}
.guide-entry p,.gap-intro p {margin:10px 0 17px; font-size:16px; color:var(--muted);}
.guide-entry .stage-number,.next-check .stage-number {margin:0 0 7px;}
.next-check h3 {margin-bottom:17px;}
.next-check .disclosure {background:white; margin-bottom:0;}
.issue-list {list-style:none; padding:0; margin:0;}
.issue-list li+li {border-top:1px solid var(--line);}
.issue-list button {text-align:left; line-height:1.8; padding:10px 0;}
.basis-choices {display:grid; gap:14px; margin:22px 0;}
.guide-context {font-size:15px; padding:13px 16px; background:var(--soft); border:1px solid var(--line); margin:17px 0;}
.guide-summary>div {border-top:1px solid var(--line); padding:17px 0;}
.guide-summary span {font-size:14px; color:var(--muted);}
.guide-summary p {font-size:15px; margin:6px 0;}
.guide-summary strong {font-size:17px; white-space:pre-wrap; overflow-wrap:anywhere;}
.guide-proposal {border:1px solid var(--line); background:var(--soft); padding:21px; margin:22px 0;}
.guide-proposal p {white-space:pre-wrap; overflow-wrap:anywhere; margin-top:10px;}
.gap-intro {margin:23px 0 17px;}
.experience-table {width:100%; border-collapse:collapse; table-layout:fixed; margin:20px 0 28px; font-size:16px;}
.experience-table th {text-align:left; font-weight:400; color:var(--accent); background:var(--soft); border:1px solid var(--line); padding:15px;}
.experience-table th:first-child {width:25%;}
.experience-table th:nth-child(2) {width:31%;}
.experience-table td {vertical-align:top; border:1px solid var(--line); padding:18px 15px; overflow-wrap:anywhere;}
.experience-table td>strong {display:block; font-size:17px; margin:8px 0;}
.experience-table td>p {white-space:pre-wrap; margin:10px 0; font-size:15px;}
.experience-table label {display:block; font-size:15px; margin-bottom:7px;}
.experience-table select {width:100%; font-size:15px; margin:6px 0 15px;}
.experience-table .field {margin:12px 0 18px;}
.experience-table .field:last-child {margin-bottom:0;}
.experience-table textarea {font-size:16px; min-height:96px; padding:12px;}
.experience-table .hint {font-size:14px;}
.gap-conditions {padding-left:19px; font-size:15px; line-height:1.85; margin:10px 0;}
.gap-conditions li+li {margin-top:7px;}
.preparation-state p {margin:10px 0 0; font-size:16px;}
.practice-review {margin-top:22px; padding:17px; border:1px solid var(--line); background:var(--soft);}
.reference-files {display:flex; flex-wrap:wrap; gap:10px; margin:18px 0;}
.reference-files button[aria-pressed=true] {border-color:var(--accent); background:var(--soft);}
.reference-work {display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px; margin-top:20px;}
.reference-preview {min-width:0; border:1px solid var(--line); background:white; padding:13px;}
.reference-preview img {width:100%; max-width:100%; max-height:460px; object-fit:contain;}
.reference-preview object {width:100%; height:420px; border:0;}
.reference-preview>a {display:block; font-size:14px; padding:12px 0 0; overflow-wrap:anywhere;}
.reference-note {min-width:0;}
.reference-note p {font-size:15px; margin:15px 0;}
.ai-steps [aria-current=step] {background:var(--soft); border-color:var(--accent); color:var(--accent);}
#import-repair {background:var(--soft); border:1px solid var(--line); padding:18px; margin:15px 0;}
#import-repair[hidden] {display:none;}
@media(max-width:650px){
 .workspace-bar {flex-wrap:wrap;}
 .workspace-tools {flex:1 1 100%; max-width:none; justify-content:flex-start; gap:8px;}
 .workspace-tools .button {font-size:15px; padding:10px 12px; min-height:44px;}
 .workspace-tools .button-link {font-size:13px;}
 .save-options {grid-template-columns:1fr; gap:24px;}
 .guide-entry,.next-check {padding:20px 17px;}
 .guide-entry h3,.next-check h3,.gap-intro h3 {font-size:20px;}
 .experience-table,.experience-table tbody,.experience-table tr,.experience-table td {display:block; width:auto;}
 .experience-table thead {position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%);}
 .experience-table tr {border:1px solid var(--line); margin:20px 0;}
 .experience-table td {border:0; padding:18px;}
 .experience-table td+td {border-top:1px solid var(--line);}
 .experience-table td::before {content:attr(data-label); display:block; color:var(--accent); font-size:15px; margin-bottom:12px;}
 .experience-table select {font-size:16px;}
 .reference-work {grid-template-columns:1fr; gap:16px;}
 .reference-preview object {height:350px;}
 .basis-choices .button {white-space:normal;}
}
@media print{.guide-entry,.next-check,.workspace-tools {display:none!important;}}
.hero-copy,.practice-copy { min-width: 0; }
.practice-visual { margin: 0; min-width: 0; }
.practice-visual img { display: block; width: 100%; height: auto; object-fit: contain; }
.practice-visual figcaption { padding-top: 12px; color: var(--muted); font-size: 15px; line-height: 1.8; }
.practice-copy .button { margin-top: 24px; }
.scene-after { border-left: 2px solid var(--accent); }
.stage-number,.step-id { font-weight: 400; }
.home h2 { font-weight: 500; color: var(--accent); }
@media (max-width:781px) {
  .hero,.assumption-section,.practice-next { grid-template-columns: 1fr; gap: 24px; }
  .entry-grid,.output-grid,.how-section { grid-template-columns: 1fr; }
  .entry-card { display: grid; grid-template-columns: 43px 1fr; min-height: 0; gap: 6px 14px; }
  .entry-icon { grid-row: 1 / 4; }
  .entry-card > span:not(.entry-icon) { grid-column: 2; }
  .hero .lead { font-size: 17px; }
  .hero-actions { display: grid; grid-template-columns: 1fr; gap: 12px; }
  .hero-actions .button { font-size: 17px; }
  .hero-visual { margin: 0; }
  .practice-next { padding-top: 36px; }
  .practice-copy .button { width: 100%; }
}

/* Optional company consultation: a separate purpose from ChatGPT dialogue. */
.company-consult-entry{display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid #c8d0de;background:#fff;padding:24px;margin:24px 0}.company-consult-entry h3{margin:0 0 8px;font-size:20px}.company-consult-entry p{margin:0;color:#53647b;max-width:42em}.company-consult-entry .button{flex-shrink:0}#consult-status{padding:12px 16px;background:#f4f7fa;line-height:1.8}#consult-fallback{margin:16px 0}#modal textarea:disabled{background:#f4f7fa;color:#53647b}@media(max-width:640px){.company-consult-entry{display:block;padding:20px}.company-consult-entry .button{margin-top:16px;width:100%}}
