.space-shortcut { display: flex; align-items: center; gap: 12px; width: calc(100% - 24px); margin: 10px 12px 0; border: 1px solid var(--line); background: var(--paper-2); color: var(--ink); border-radius: 16px; padding: 10px 14px; text-align: left; flex: none; }
.space-shortcut > span:first-child { color: var(--rose); font-size: 30px; }
.space-shortcut > span:nth-child(2) { flex: 1; }
.space-shortcut strong, .space-shortcut small { display: block; }
.space-shortcut small { color: var(--muted); font-size: 12px; margin-top: 2px; }
.couple-space, .space-editor { color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 24px; padding: 24px; width: min(900px, calc(100% - 24px)); max-height: calc(100dvh - 32px); box-shadow: var(--shadow); }
.couple-space::backdrop, .space-editor::backdrop { background: rgba(24, 16, 18, .6); backdrop-filter: blur(3px); }
.space-editor { width: min(520px, calc(100% - 24px)); }
.couple-space { scroll-padding-top: 175px; }
.space-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.space-header h2 { font-family: "Fraunces", serif; font-size: 30px; margin: 0; }
.space-top { position: sticky; top: -24px; z-index: 2; background: var(--paper); margin-top: -24px; padding-top: 24px; padding-bottom: 8px; }
.space-header > button { font-size: 24px; }
.couple-space button, .space-editor button, .space-snap { border: 1px solid var(--line); background: var(--paper-2); border-radius: 12px; padding: 9px 13px; color: var(--ink); font: inherit; cursor: pointer; }
.couple-space button:hover, .space-editor button:hover { border-color: var(--rose); }
.couple-space button:focus-visible, .space-editor button:focus-visible, .space-snap:focus-within { outline: 2px solid var(--rose); outline-offset: 3px; }
.couple-space button:disabled, .space-editor button:disabled { opacity: .55; cursor: wait; }
.space-eyebrow { color: var(--rose-deep); letter-spacing: .08em; text-transform: uppercase; font-size: 10px; font-weight: 600; margin: 0 0 8px; }
.space-tabs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; padding: 4px; background: var(--blush); border-radius: 14px; }
.space-tabs button { border: 0; background: transparent; padding: 10px 4px; }
.space-tabs button[aria-pressed="true"] { background: var(--rose); color: #fffaf7; box-shadow: 0 3px 10px rgba(125, 41, 66, .18); }
.space-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 12px; margin: 12px 0; }
.space-toolbar button { padding: 6px 10px; }
.space-status, .space-form-error, #space-editor-error { color: var(--rose-deep); font-size: 14px; overflow-wrap: anywhere; }
.space-status:empty, .space-form-error:empty, #space-editor-error:empty { display: none; }
#space-content { min-height: 140px; }
#space-content > section, #space-content > article, .space-history { margin-top: 22px; }
.space-welcome { padding: 24px; background: linear-gradient(130deg, var(--blush), var(--paper-2)); border-radius: 20px; }
.space-welcome h3 { font-family: "Fraunces", serif; font-size: 27px; margin: 0 0 8px; }
.space-welcome p { color: var(--muted); }
.space-card { background: var(--paper-2); padding: 20px; border: 1px solid var(--line); border-radius: 18px; min-width: 0; overflow-wrap: anywhere; }
.space-card h3 { margin: 0 0 10px; font-size: 18px; line-height: 1.4; }
.daily-card > h3, .discovery-card > h3 { font-family: "Fraunces", serif; font-size: 24px; line-height: 1.4; }
.daily-card form { margin-top: 18px; }
.couple-space label, .space-editor label { display: block; font-size: 14px; margin: 12px 0; }
.couple-space textarea, .couple-space select, .couple-space input:not([type="radio"]):not([type="file"]), .space-editor input:not([type="hidden"]), .space-editor textarea, .space-editor select { display: block; width: 100%; padding: 11px 12px; margin-top: 6px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper-2); color: var(--ink); font: inherit; min-width: 0; }
.couple-space textarea, .space-editor textarea { resize: vertical; }
.couple-space .space-primary, .space-editor .space-primary { background: var(--rose); color: #fffaf7; border-color: var(--rose); }
.couple-space fieldset { border: 0; padding: 0; margin: 16px 0; }
.couple-space legend { font-size: 13px; color: var(--muted); }
.couple-space label.space-option { display: flex; align-items: center; gap: 8px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; }
.space-option:has(input:checked) { background: var(--blush); border-color: var(--rose); }
.space-answer { border-left: 3px solid var(--rose); padding: 10px 14px; background: var(--blush); border-radius: 10px; margin: 14px 0; }
.space-answer strong { font-size: 12px; color: var(--rose-deep); }
.space-answer p, .space-detail { white-space: pre-wrap; margin: 8px 0 0; }
.partner-answer { background: #e8eee6; border-left-color: #698065; }
.space-lock { font-size: 13px; color: var(--muted); padding: 12px; border: 1px dashed var(--line); border-radius: 12px; }
.space-fine { font-size: 12px; color: var(--muted); line-height: 1.5; }
.space-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.space-item-actions, .space-filter { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 14px 0 0; }
.space-item-actions button { font-size: 12px; }
.space-item.is-done { border-color: #bcc9b6; }
.space-item.is-done > h3::before { content: "✓ "; color: #526c49; }
.space-item progress { display: block; width: 100%; margin-top: 14px; height: 8px; accent-color: var(--rose); }
.space-filter button { font-size: 12px; }
.space-filter button[aria-pressed="true"] { background: var(--blush); border-color: var(--rose); }
.space-empty { padding: 24px; border: 1px dashed var(--line); border-radius: 16px; color: var(--muted); }
.space-history { border-top: 1px solid var(--line); padding-top: 20px; }
.space-history summary { cursor: pointer; font-weight: 600; }
.space-history section { margin-top: 20px; }
.space-history .daily-card { margin-top: 12px; }
.space-tip { background: #ecefdf; }
.space-tip small { color: var(--muted); }
.discovery-card { margin-top: 18px; background: var(--blush); }
.discovery-card small { display: block; margin-top: 10px; }
.space-calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; max-width: 480px; margin: 18px auto; }
.calendar-weekday { text-align: center; font-size: 11px; color: var(--muted); padding: 6px; }
.space-calendar button { position: relative; min-height: 42px; padding: 8px; }
.space-calendar button.is-today { border-color: var(--rose); }
.space-calendar button[aria-pressed="true"] { background: var(--rose); color: #fffaf7; }
.calendar-dot { position: absolute; width: 4px; height: 4px; border-radius: 50%; background: currentColor; bottom: 4px; left: calc(50% - 2px); }
.couple-space label.space-month { max-width: 220px; margin: 0; }
.space-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 20px 0; }
.space-metrics article { border-radius: 14px; padding: 14px; background: var(--blush); min-width: 0; overflow-wrap: anywhere; }
.space-metrics small, .space-metrics strong { display: block; }
.space-metrics small { color: var(--muted); margin-bottom: 6px; font-size: 11px; }
.space-metrics strong { font-size: 20px; }
.space-budget { padding: 16px; border: 1px solid var(--line); border-radius: 14px; }
.couple-space label.space-snap { display: inline-block; position: relative; margin: 0; font-size: 13px; }
.space-snap input { position: absolute; width: 1px; height: 1px; opacity: 0; }
@media (max-width: 600px) {
    .couple-space, .space-editor { padding: 16px; width: calc(100% - 16px); max-height: calc(100dvh - 16px); border-radius: 20px; }
    .space-top { top: -16px; margin-top: -16px; padding-top: 16px; }
    .space-grid { grid-template-columns: 1fr; }
    .space-tabs button { font-size: 13px; }
    .space-card, .space-welcome { padding: 16px; }
    .space-welcome h3, .daily-card > h3, .discovery-card > h3 { font-size: 22px; }
    .space-metrics { gap: 5px; }
    .space-metrics article { padding: 10px; }
    .space-metrics strong { font-size: 16px; }
    .space-toolbar { align-items: flex-start; }
}
