:root { --ink:#15263d; --muted:#637184; --line:#dbe5ef; --paper:#f6f9fc; --white:#fff; --green:#147d99; --green-dark:#103d63; --lime:#c3eaf0; --orange:#f8b46d; --red:#b94d41; --shadow:0 18px 50px rgba(16,61,99,.12); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif; background:var(--paper); line-height:1.65; }
a { color:inherit; }
.site-header { position:relative; max-width:1180px; margin:0 auto; padding:24px 32px; display:flex; justify-content:space-between; align-items:center; }.site-header::before { content:""; position:absolute; z-index:-1; inset:0 calc((100vw - 100%) / -2); background:rgba(249,252,255,.94); border-bottom:1px solid rgba(20,125,153,.14); }
.brand-group { display:flex; align-items:center; gap:7px; color:#8a9aaa; font-size:.78rem; }.parent-brand { color:var(--green); text-decoration:none; font-weight:850; }.parent-brand:hover { text-decoration:underline; text-underline-offset:3px; }.brand { font-weight:800; text-decoration:none; letter-spacing:-.03em; font-size:1.05rem; }.brand span { color:var(--green); }.header-link { font-size:.86rem; color:var(--muted); }
.hero { max-width:1180px; min-height:610px; margin:0 auto; padding:72px 32px 86px; display:grid; grid-template-columns:1fr 510px; gap:70px; align-items:start; }.hero-copy { padding-top:54px; }
.eyebrow,.step { color:var(--green); font-size:.74rem; font-weight:800; letter-spacing:.12em; margin:0 0 12px; }
h1,h2,h3,p { margin-top:0; } h1 { font-size:clamp(2.6rem,5vw,4.7rem); line-height:1.18; letter-spacing:-.035em; margin-bottom:24px; }.lead { color:var(--muted); max-width:530px; font-size:1.04rem; }.check-list { list-style:none; padding:10px 0 0; margin:0; color:#3c514a; }.check-list li { margin:10px 0; }.check-list li::before { content:"✓"; display:inline-grid; place-items:center; width:20px; height:20px; margin-right:10px; border-radius:50%; background:var(--lime); color:var(--green-dark); font-weight:900; font-size:.75rem; }
.planner-card,.panel,.today-card,.notice { background:var(--white); border:1px solid rgba(19,111,86,.1); border-radius:18px; }.planner-card { box-shadow:var(--shadow); padding:32px; }.card-heading { border-bottom:1px solid var(--line); padding-bottom:18px; margin-bottom:22px; }.card-heading h2 { margin:0; font-size:1.35rem; letter-spacing:-.04em; }
label,legend { font-size:.84rem; font-weight:700; } label span, legend { display:block; margin-bottom:7px; } em { color:var(--muted); font-weight:500; font-style:normal; font-size:.73rem; } input,select { width:100%; border:1px solid #cbd7d1; color:var(--ink); background:#fff; border-radius:8px; padding:11px 12px; font:inherit; font-weight:600; outline:none; } input:focus,select:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(19,111,86,.12); }.field-row { display:grid; grid-template-columns:1fr 1fr; gap:15px; margin-bottom:18px; } fieldset { border:0; padding:0; margin:0 0 18px; }.choice-grid { display:grid; gap:8px; }.choice { position:relative; display:block; margin:0; cursor:pointer; }.choice input { position:absolute; opacity:0; }.choice span { display:block; border:1px solid #d2ddd7; border-radius:8px; padding:9px 13px 9px 36px; margin:0; position:relative; transition:.15s ease; }.choice span::before { content:""; position:absolute; left:13px; top:16px; width:12px; height:12px; border:1px solid #a6b5ad; border-radius:50%; }.choice input:checked + span { border-color:var(--green); background:#f3fbf7; }.choice input:checked + span::before { border:4px solid var(--green); }.choice input:focus-visible + span { outline:3px solid var(--green-dark); outline-offset:2px; }.choice strong { display:block; font-size:.86rem; font-weight:650; }.choice small { display:block; color:var(--muted); font-size:.72rem; font-weight:500; }.weakness-fieldset { margin:0; }.checkbox-row { display:flex; flex-wrap:wrap; gap:6px; }.checkbox-row label { display:flex; align-items:center; gap:5px; color:#53635c; font-size:.72rem; font-weight:600; white-space:nowrap; }.checkbox-row input { width:15px; height:15px; margin:0; accent-color:var(--green); }.date-undecided { display:flex; gap:8px; align-items:center; margin:-7px 0 18px; color:var(--muted); font-size:.78rem; font-weight:600; }.date-undecided input { width:16px; height:16px; margin:0; accent-color:var(--green); }.date-undecided span { margin:0; }.full-field { display:block; margin-bottom:20px; }.primary-button,.secondary-button,.text-button,.adjust-button { border:0; cursor:pointer; font:inherit; font-weight:800; }.primary-button { width:100%; border-radius:9px; padding:14px 16px; background:var(--green); color:white; transition:.15s ease; }.primary-button:hover { background:var(--green-dark); transform:translateY(-1px); }.primary-button span { margin-left:8px; }.form-note { color:var(--muted); font-size:.73rem; text-align:center; margin:12px 0 0; }.form-error { color:var(--red); font-size:.82rem; font-weight:700; margin:0 0 12px; }
.result-section { background:#e6f0e9; padding:78px max(32px,calc((100vw - 1116px) / 2)); }.result-heading { display:flex; justify-content:space-between; gap:20px; align-items:flex-end; margin-bottom:25px; }.result-heading h2 { font-size:clamp(2rem,4vw,3.1rem); letter-spacing:-.06em; margin:0; }.feasibility-badge { padding:7px 13px; border-radius:99px; font-size:.82rem; font-weight:800; white-space:nowrap; }.feasibility-good { background:var(--lime); color:var(--green-dark); }.feasibility-standard { background:#d9ece3; color:var(--green-dark); }.feasibility-tight { background:#ffe2bd; color:#825019; }.feasibility-hard { background:#f4d6d2; color:#90352e; }.stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:18px; }.stat-card { background:white; padding:18px; border-radius:12px; border:1px solid rgba(19,111,86,.1); }.stat-card.recommended-date { background:#143f34; border-color:#143f34; }.stat-card.recommended-date span,.stat-card.recommended-date small { color:#d7f19d; }.stat-card.recommended-date strong { color:#fff; letter-spacing:.02em; font-variant-numeric:tabular-nums; }.stat-card.shortfall { background:#fff4f2; border-color:#efb9b2; }.stat-card.shortfall span,.stat-card.shortfall small { color:#a7443b; }.stat-card.shortfall strong { color:#a12820; }.stat-card span { display:block; color:var(--muted); font-size:.78rem; }.stat-card strong { font-size:1.85rem; letter-spacing:-.05em; }.stat-card small { margin-left:3px; color:var(--muted); }.adjustment-card { padding:16px 18px; border-radius:12px; margin-bottom:18px; background:#fff6eb; border:1px solid #f7d6aa; }.adjustment-card h3 { margin:0 0 5px; font-size:1rem; }.adjustment-card p { margin:0; font-size:.9rem; }.adjust-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:13px; }.adjust-button { background:#fff; border:1px solid #d69e60; color:#7a481b; padding:7px 9px; border-radius:7px; font-size:.76rem; }.plan-context { margin:-7px 0 18px; color:#315b4d; font-size:.82rem; font-weight:700; }.today-card { padding:30px; background:var(--green-dark); color:white; border:0; margin-bottom:18px; }.today-card .eyebrow { color:var(--lime); }.today-card h3 { font-size:1.5rem; letter-spacing:-.04em; margin-bottom:5px; }.today-card p:last-child { color:#c8ddd4; margin:0; }.result-columns { display:grid; grid-template-columns:1fr 1.25fr; gap:18px; }.panel { padding:25px; }.panel-heading { margin-bottom:15px; }.panel-heading h3 { margin:0; font-size:1.2rem; letter-spacing:-.04em; }.daily-plan { list-style:none; padding:0; margin:0; }.daily-plan li { display:grid; grid-template-columns:70px 1fr; padding:11px 0; border-top:1px solid var(--line); font-size:.88rem; }.daily-plan time { color:var(--muted); font-size:.78rem; }.daily-plan strong { display:block; }.daily-plan small { color:var(--muted); }.weekly-plan { display:grid; gap:9px; }.week-row { border-top:1px solid var(--line); padding:11px 0; }.week-row:first-child { border-top:0; padding-top:0; }.week-row strong { display:block; font-size:.91rem; }.week-row p { margin:3px 0 0; color:var(--muted); font-size:.8rem; }.result-actions { display:flex; align-items:center; gap:20px; padding:22px 4px; }.secondary-button { color:var(--green-dark); background:var(--lime); padding:11px 16px; border-radius:8px; }.text-button { color:var(--green); background:transparent; padding:9px 0; text-decoration:underline; text-underline-offset:3px; }.result-actions span { color:var(--green); font-weight:700; font-size:.82rem; }.notice { padding:20px 23px; background:rgba(255,255,255,.6); color:#53635c; font-size:.82rem; }.notice strong { color:var(--ink); }.notice p { margin:5px 0; }.notice a { color:var(--green); }.source-meta { font-size:.73rem; color:#71817a; }
 .about-section { max-width:1116px; margin:0 auto; padding:100px 32px; }.about-section h2 { font-size:clamp(2rem,4vw,3.3rem); line-height:1.25; letter-spacing:-.06em; }.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:36px; }.feature-grid article { padding:23px; border-top:2px solid var(--green); background:white; }.feature-grid span { font-size:.75rem; color:var(--green); font-weight:800; letter-spacing:.1em; }.feature-grid h3 { margin:25px 0 8px; font-size:1.1rem; }.feature-grid p { margin:0; color:var(--muted); font-size:.88rem; } footer { border-top:1px solid var(--line); padding:26px 32px; max-width:1180px; margin:auto; display:flex; justify-content:space-between; gap:15px; color:var(--muted); font-size:.75rem; } footer a { color:var(--green); font-weight:750; }
.check-list { color:#40546a; }.planner-card,.panel,.today-card,.notice { border-color:rgba(20,125,153,.12); } input,select { border-color:#cbd8e5; } input:focus,select:focus { box-shadow:0 0 0 3px rgba(20,125,153,.13); }.choice span { border-color:#d2dee9; }.choice span::before { border-color:#a8b8c7; }.choice input:checked + span { background:#f0f9fb; }.checkbox-row label { color:#53657a; }.result-section { background:#e8f2f6; }.feasibility-standard { background:#dcecf2; }.stat-card { border-color:rgba(20,125,153,.12); }.stat-card.recommended-date { background:var(--green-dark); border-color:var(--green-dark); }.stat-card.recommended-date span,.stat-card.recommended-date small { color:var(--lime); }.stat-card.recommended-date span { font-size:.71rem; line-height:1.35; }.plan-context { color:#315a75; }.today-card p:last-child { color:#c9ddeb; }.notice { color:#53657a; }
.unavailable-field { margin-bottom:20px; }.unavailable-field > span { display:block; margin-bottom:7px; }.unavailable-calendar { padding:13px; border:1px solid #cbd8e5; border-radius:10px; background:#fbfdff; }.calendar-controls { display:grid; grid-template-columns:36px 1fr 36px; align-items:center; margin-bottom:9px; text-align:center; }.calendar-controls strong { font-size:.88rem; }.calendar-controls button { width:32px; height:32px; justify-self:center; border:1px solid #cbd8e5; border-radius:7px; color:var(--green-dark); background:#fff; cursor:pointer; font-size:1.25rem; line-height:1; }.calendar-controls button:hover { background:#eef8fa; }.calendar-weekdays,.calendar-days { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; text-align:center; }.calendar-weekdays { margin-bottom:4px; color:var(--muted); font-size:.67rem; font-weight:750; }.calendar-weekdays span:first-child { color:#b94d41; }.calendar-weekdays span:last-child { color:var(--green); }.calendar-day { aspect-ratio:1; min-width:0; border:0; border-radius:7px; color:var(--ink); background:transparent; cursor:pointer; font:inherit; font-size:.74rem; }.calendar-day:hover:not(:disabled) { background:#e4f4f7; }.calendar-day:focus-visible { outline:3px solid var(--green-dark); outline-offset:1px; }.calendar-day.is-selected { color:#fff; background:var(--green); font-weight:850; }.calendar-day.is-disabled { color:#bcc8d2; cursor:not-allowed; }.selected-dates-row { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-top:9px; }.selected-dates { display:flex; flex-wrap:wrap; gap:5px; }.selected-dates-empty { color:var(--muted); font-size:.73rem; }.selected-date-chip { padding:3px 7px; border-radius:99px; color:var(--green-dark); background:#e4f4f7; font-size:.7rem; font-weight:750; }.clear-dates-button { flex:0 0 auto; border:0; color:var(--green); background:transparent; cursor:pointer; font:inherit; font-size:.72rem; font-weight:800; text-decoration:underline; text-underline-offset:3px; }.calendar-note { margin:8px 0 0; color:var(--muted); font-size:.7rem; }
@media (max-width:850px) { .hero { grid-template-columns:1fr; gap:35px; padding-top:42px; }.hero-copy { padding-top:0; }.planner-card { max-width:560px; }.stat-grid { grid-template-columns:repeat(2,1fr); }.result-columns { grid-template-columns:1fr; }.feature-grid { grid-template-columns:1fr; }.about-section { padding-top:70px; } }
@media (max-width:560px) { .site-header,.hero,.about-section { padding-left:20px; padding-right:20px; }.site-header { padding-top:18px; }.header-link { display:none; }.hero { padding-bottom:55px; }.planner-card { padding:23px 18px; }.field-row { grid-template-columns:1fr; gap:13px; }.result-section { padding:54px 20px; }.result-heading { align-items:flex-start; flex-direction:column; }.stat-card { padding:14px; }.stat-card strong { font-size:1.55rem; }.today-card,.panel { padding:20px; }.result-actions { align-items:flex-start; flex-direction:column; gap:8px; } footer { padding:20px; display:block; } }
