:root { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #10284b; background: #fff; font-synthesis: none; }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
button:disabled { opacity: .55; cursor: not-allowed; }
.outline-content { overflow-wrap: anywhere; }
body { margin: 0; background: #fff; }
button, input, textarea, select { font: inherit; }
.site-header { min-height: 76px; border-bottom: 1px solid #dbe5ee; display: flex; align-items: center; justify-content: space-between; padding: 0 5.5vw; gap: 20px; }
.brand { font-family: Georgia, 'Times New Roman', serif; font-weight: 700; font-size: clamp(1.5rem, 2vw, 2rem); letter-spacing: -.04em; color: #10284b; text-decoration: none; }
.site-header span { color: #607188; font-size: .9rem; }
main { max-width: 1500px; margin: 0 auto; padding: 58px 5.5vw 48px; }
.intro { max-width: 760px; margin-bottom: 34px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: Georgia, 'Times New Roman', serif; color: #10284b; }
h1 { font-size: clamp(2.35rem, 5vw, 4rem); line-height: 1.02; letter-spacing: -.045em; margin-bottom: 12px; }
.intro p { font-size: clamp(1.1rem, 2vw, 1.35rem); color: #4d617c; margin-bottom: 0; }
.tool-shell { display: grid; grid-template-columns: minmax(350px, .92fr) minmax(500px, 1.35fr); gap: 18px; align-items: start; }
.form-panel, .result-panel { border: 1px solid #dceaf2; border-radius: 10px; overflow: hidden; }
.form-panel { background: #f1f9fc; padding: 31px; }
.panel-heading { padding-bottom: 20px; border-bottom: 1px solid #d5e8f1; margin-bottom: 21px; }
.panel-heading h2, .result-header h2 { font-size: 1.55rem; line-height: 1.16; letter-spacing: -.025em; margin-bottom: 7px; }
.panel-heading p { font-size: .94rem; line-height: 1.5; color: #536980; margin-bottom: 0; }
label { display: block; color: #1d385d; font-weight: 700; font-size: .91rem; margin: 0 0 16px; }
.optional { color: #74869a; font-weight: 500; }
input, textarea, select { width: 100%; display: block; color: #183252; background: #fff; border: 1px solid #b9cad9; border-radius: 5px; outline: none; margin-top: 7px; padding: 11px 12px; font-size: .96rem; line-height: 1.35; }
textarea { resize: vertical; min-height: 76px; }
input:focus, textarea:focus, select:focus { border-color: #087184; box-shadow: 0 0 0 3px rgba(8,113,132,.13); }
.two-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-actions, .result-actions { display: flex; align-items: center; gap: 16px; }
.form-actions { margin-top: 24px; flex-wrap: wrap; }
button { cursor: pointer; border: 1px solid transparent; border-radius: 5px; font-weight: 700; transition: .18s ease; }
.form-actions button[type="submit"] { flex: 1; color: #fff; background: #057184; padding: 14px 18px; font-size: 1rem; }
.form-actions button:hover { background: #045a69; }
.text-button { color: #05657a; background: transparent; border: 0; text-decoration: underline; padding: 10px 0; white-space: nowrap; }
.research-toggle { display: flex; align-items: flex-start; gap: 10px; margin: 4px 0 0; padding: 13px 14px; border: 1px solid #c9e1e8; border-radius: 6px; background: #fff; cursor: pointer; }
.research-toggle input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: #057184; flex: 0 0 auto; }
.research-toggle strong { display: block; font-size: .9rem; }
.research-toggle small { display: block; margin-top: 3px; color: #61758b; font-size: .8rem; font-weight: 500; line-height: 1.35; }
.error-message { margin: 16px 0 0; padding: 10px 12px; color: #8c1f29; border-left: 3px solid #bd3441; background: #fff0f1; font-size: .9rem; line-height: 1.45; }
button:disabled { cursor: wait; opacity: .72; }
.result-panel { background: #fff; min-height: 830px; display: flex; flex-direction: column; }
.result-header { background: #f1f9fc; padding: 26px 30px 22px; border-bottom: 1px solid #dceaf2; display: flex; gap: 20px; justify-content: space-between; align-items: flex-start; }
.result-header h2 { max-width: 670px; margin-bottom: 0; }
.section-label { color: #087184; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; font-size: .72rem; margin-bottom: 8px; }
.ready { color: #046373; background: #d8f1f3; padding: 5px 9px; border-radius: 999px; white-space: nowrap; font-size: .76rem; font-weight: 800; }
.outline-content { padding: 26px 30px; flex: 1; max-height: 745px; overflow: auto; }
.metadata { padding-bottom: 17px; border-bottom: 1px solid #dbe5ee; margin-bottom: 22px; color: #415b78; font-size: .93rem; line-height: 1.52; }
.metadata p { margin-bottom: 8px; }
.metadata p:last-child { margin-bottom: 0; }
.outline-content section { margin-bottom: 23px; }
.outline-content h3 { font-size: 1.15rem; line-height: 1.25; margin-bottom: 8px; }
.outline-content p, .outline-content li { color: #39516d; font-size: .94rem; line-height: 1.56; }
.outline-content p { margin-bottom: 8px; }
.outline-content ul { margin: 7px 0 0; padding-left: 21px; }
.outline-content strong { color: #1b3558; }
.result-actions { justify-content: flex-end; padding: 18px 30px; border-top: 1px solid #dbe5ee; }
.result-actions button { background: #fff; color: #056b7d; border-color: #087184; padding: 10px 14px; }
.result-actions button:hover { background: #edf9fa; }
.result-actions .export { color: #10284b; border-color: #8ba0b5; }
.how-it-helps { margin: 68px 0 8px; max-width: 670px; }
.how-it-helps h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); line-height: 1.12; letter-spacing: -.03em; margin-bottom: 10px; }
.how-it-helps p { color: #546a84; line-height: 1.6; margin-bottom: 0; }
footer { border-top: 1px solid #dbe5ee; color: #65778a; padding: 23px 5.5vw; font-size: .85rem; }
.intro .disclosure { font-size: .95rem; line-height: 1.6; margin-top: 16px; }
.privacy-note { font-size: .8rem; line-height: 1.5; color: #61758b; margin: 18px 0 0; }
#status { font-size: .9rem; color: #075667; line-height: 1.5; margin: 16px 0 0; min-height: 1.5em; }
.empty-state { padding: 38px 30px; flex: 1; color: #546a84; line-height: 1.65; }
.empty-state h3 { font-size: 1.65rem; line-height: 1.2; max-width: 420px; }
.result-actions { flex-wrap: wrap; gap: 10px; }
.result-actions button { font-size: .85rem; padding: 10px 12px; }
.export-choice { margin: 0; }
.export-choice select { margin: 0; font-size: .85rem; padding: 10px; }
.outline-content h2 { font-size: 1.7rem; line-height: 1.2; }
.outline-content h3 { margin-top: 26px; font-size: 1.25rem; }
.outline-content h4 { font-size: 1.05rem; color: #10284b; margin: 20px 0 8px; }
.outline-content h5 { font-size: .94rem; color: #10284b; margin: 14px 0 7px; }
#editor { min-height: 600px; border: 0; margin: 0; border-radius: 0; padding: 26px 30px; font-family: ui-monospace, monospace; font-size: .9rem; flex: 1; }
.how-it-helps li { color: #546a84; line-height: 1.65; margin-bottom: 12px; }
.how-it-helps ol { padding-left: 22px; }
.faq { margin-top: 46px; max-width: 850px; }
.faq h2 { font-size: 1.8rem; }
.faq details { border-top: 1px solid #dbe5ee; padding: 17px 0; }
.faq summary { font-weight: 700; cursor: pointer; line-height: 1.5; }
.faq p { line-height: 1.65; color: #546a84; margin: 12px 0 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
button:disabled { cursor: not-allowed; }
button:focus-visible, summary:focus-visible, a:focus-visible { outline: 3px solid #087184; outline-offset: 3px; }
@media print { .site-header,.intro,.form-panel,.result-header,.result-actions,.how-it-helps,.faq,footer { display: none !important; } main,.tool-shell,.result-panel,.outline-content { display: block; padding: 0; margin: 0; border: 0; max-height: none; overflow: visible; } .outline-content h2,.outline-content h3,.outline-content h4,.outline-content h5 { break-after: avoid; } }
@media (max-width: 950px) { .tool-shell { grid-template-columns: 1fr; } .result-panel { min-height: auto; } .outline-content { max-height: none; } }
@media (max-width: 610px) { .site-header { padding: 18px 22px; min-height: auto; align-items: flex-start; flex-direction: column; gap: 5px; } main { padding: 38px 22px; } .form-panel { padding: 22px; } .two-fields { grid-template-columns: 1fr; gap: 0; } .result-header, .outline-content, .result-actions { padding-left: 22px; padding-right: 22px; } .result-header { flex-direction: column; gap: 10px; } .result-actions { justify-content: stretch; } .result-actions button { flex: 1; } }
