.weekend-tool { max-width: 1180px; margin: 0 auto; padding: 52px 28px 88px; }
.tool-heading { max-width: 760px; margin-bottom: 48px; }
.tool-heading h1 { font-size: clamp(2.25rem, 5vw, 4rem); line-height: 1.2; letter-spacing: -.035em; margin-top: 24px; }
.tool-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .46fr); gap: clamp(28px, 6vw, 88px); align-items: start; }
.tool-form { min-width: 0; }
.tool-form fieldset { padding: 0; border: 0; margin: 0 0 32px; }
.tool-form legend { font-size: 1.25rem; font-weight: 800; margin-bottom: 20px; }
.tool-form label { display: block; font-weight: 700; margin-bottom: 20px; }
.tool-form input:not([type="radio"]):not([type="checkbox"]), .tool-form select, .tool-form textarea { display: block; width: 100%; min-width: 0; min-height: 48px; margin-top: 8px; border: 1px solid var(--muted); border-radius: 8px; padding: 11px 12px; font: inherit; font-weight: 400; color: var(--ink); background: var(--panel); }
.tool-form textarea { resize: vertical; }
.tool-form input::placeholder, .tool-form textarea::placeholder { color: var(--muted); opacity: 1; }
.form-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.activity-options { display: flex; flex-wrap: wrap; gap: 12px; }
.activity-options label { display: flex; align-items: center; gap: 10px; margin: 0; padding: 12px 20px; border: 1px solid var(--muted); border-radius: 8px; background: var(--panel); cursor: pointer; }
.activity-options label:has(:checked) { background: var(--wash); border-color: var(--forest); }
.tool-form input[type="radio"], .tool-form input[type="checkbox"] { width: 20px; height: 20px; flex: 0 0 20px; accent-color: var(--forest); }
.plan-checklist label { display: flex; align-items: start; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); margin: 0; font-weight: 500; cursor: pointer; }
.plan-checklist input { margin-top: 4px; }
.weekend-tool [hidden] { display: none !important; }
.form-help { color: var(--muted); font-size: .9rem; line-height: 1.8; max-width: 65ch; }
.tool-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; align-items: center; }
.weekend-tool button { font: inherit; cursor: pointer; }
.text-button { border: 0; background: none; color: var(--forest-dark); padding: 12px 4px; text-decoration: underline; text-underline-offset: 4px; min-height: 44px; }
.tool-status { min-height: 2em; color: var(--forest-dark); font-weight: 600; }
.tool-aside { border-left: 2px solid var(--line); padding-left: 28px; }
.tool-aside h2 { font-size: 1.2rem; margin: 0 0 16px; }
.tool-aside h2:not(:first-child) { margin-top: 36px; }
.tool-aside a { display: block; color: var(--forest-dark); margin: 0 0 16px; text-decoration: underline; text-underline-offset: 4px; }
.tool-aside p { max-width: 65ch; }
.tool-next { margin-top: 36px; }
.saved-notes { margin-top: 56px; border-top: 2px solid var(--forest); padding-top: 24px; }
.saved-heading { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 16px; }
.saved-heading h2 { margin: 0; }
.saved-note { padding: 28px 0; border-bottom: 1px solid var(--line); }
.saved-note p { white-space: pre-wrap; max-width: 70ch; }
.saved-note h3 { font-size: 1.3rem; margin: 8px 0 12px; }
.saved-note .note-meta { font-size: .875rem; color: var(--muted); }
.weekend-tool button:disabled { opacity: .55; cursor: default; }
.weekend-tool :focus-visible { outline: 3px solid var(--forest); outline-offset: 4px; }
.brand-story { max-width: 760px; }
.brand-story section { margin: 40px 0; }
.brand-story h2 { font-size: 1.7rem; }
.brand-story p { font-size: 1.06rem; line-height: 1.9; max-width: 65ch; }
.story-mascot { width: 180px; height: 180px; margin: 24px 0; }
@media (max-width: 760px) { .tool-columns { grid-template-columns: 1fr; } .weekend-tool { padding: 32px 20px 64px; } .tool-aside { border-left: 0; border-top: 1px solid var(--line); padding: 28px 0 0; } }
@media (max-width: 390px) { .form-pair { grid-template-columns: 1fr; gap: 0; } }
@media print { .site-header, .site-footer, .tool-actions, .tool-aside, .tool-heading > a, .tool-status, #export-notes, .saved-note button { display: none !important; } .weekend-tool { padding: 0; max-width: none; } .tool-columns { display: block; } .tool-heading { margin-bottom: 20px; } .tool-heading h1 { font-size: 26px; } .tool-form fieldset { break-inside: avoid; } .tool-form input, .tool-form textarea { border-color: #666; } }
