:root {
    --tools-bg: #f6f4ed;
    --tools-ink: #0f1b2d;
    --tools-muted: #5c6b80;
    --tools-card: #ffffff;
    --tools-border: #e5e7eb;
    --tools-accent: #1f57ff;
    --proof-chip-bg: #f3f7ff;
    --proof-chip-bg-alt: #fbf8f0;
    --proof-chip-border: #d8e2f2;
    --proof-chip-ink: #162338;
    --proof-chip-muted: #556579;
    --proof-chip-accent: #244bdb;
    --rr-space-1: 6px;
    --rr-space-2: 10px;
    --rr-space-3: 14px;
    --rr-space-4: 18px;
    --rr-space-5: 24px;
    --rr-space-6: 32px;
}

.hidden {
    display: none !important;
}

.tools-alert {
    margin: 0 0 12px;
    padding: 12px 14px;
    border-radius: 10px;
    border: 1px solid var(--tools-border);
    background: #f4f7ff;
    color: var(--tools-ink);
    font-size: 0.95rem;
    line-height: 1.4;
}

.tools-alert--error {
    border-color: #f5c0c0;
    background: #fff4f4;
    color: #8f1d1d;
}

.tools-shell {
    max-width: 1100px;
    margin: 24px auto 64px;
    padding: 0 20px;
    color: var(--tools-ink);
}

.tools-hero {
    background: var(--tools-card);
    border: 1px solid var(--tools-border);
    border-radius: 20px;
    padding: 26px 28px;
    box-shadow: 0 10px 28px rgba(17, 24, 39, 0.08);
}

.tools-hero h1 {
    margin: 6px 0 12px;
    font-size: clamp(1.7rem, 1.6vw + 1rem, 2.4rem);
    letter-spacing: -0.02em;
}

.lead {
    color: var(--tools-muted);
    line-height: 1.6;
    margin: 0;
}

.eyebrow {
    display: inline-block;
    padding: 6px 10px;
    background: #eef3ff;
    color: #1a46c7;
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.9rem;
    letter-spacing: 0.01em;
}

.tools-grid {
    margin-top: 18px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
}

.tool-card {
    display: flex;
    flex-direction: column;
    background: var(--tools-card);
    border: 1px solid var(--tools-border);
    border-radius: 16px;
    padding: 18px 18px 16px;
    text-decoration: none;
    color: var(--tools-ink);
    box-shadow: 0 8px 18px rgba(17, 24, 39, 0.05);
    transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
    min-height: 220px;
}

.tool-card-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
}

.tool-card:hover,
.tool-card:focus-visible {
    transform: translateY(-2px);
    border-color: #cbd5e1;
    box-shadow: 0 12px 28px rgba(17, 24, 39, 0.09);
}

.tool-card-category {
    color: #1a73e8;
    font-weight: 700;
    font-size: 0.95rem;
    margin-bottom: 6px;
}

.tool-card-title {
    margin: 0 0 8px;
    font-size: 1.25rem;
}

.tool-card-desc {
    margin: 0 0 14px;
    color: var(--tools-muted);
    line-height: 1.5;
    flex: 1;
}

.tool-card-link {
    color: #6b46c1;
    font-weight: 700;
    margin-top: auto;
}

.tools-empty {
    background: var(--tools-card);
    border: 1px dashed #cbd5e1;
    border-radius: 16px;
    padding: 28px 22px;
    text-align: center;
    color: #475569;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.placeholder-title {
    margin: 0 0 4px;
    font-weight: 700;
    color: var(--tools-ink);
}

.placeholder-copy {
    margin: 0;
    color: var(--tools-muted);
}

.tool-breadcrumb {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.95rem;
    color: #556074;
    margin-bottom: 10px;
    text-decoration: none;
}

.tool-breadcrumb a {
    color: #1a73e8;
    text-decoration: none;
    font-weight: 600;
}

.tool-breadcrumb a:hover {
    text-decoration: underline;
}

.crumb-current {
    color: #111827;
    font-weight: 700;
}

.tool-detail {
    background: var(--tools-card);
    border: 1px solid var(--tools-border);
    border-radius: 20px;
    padding: 24px 26px;
    box-shadow: 0 10px 28px rgba(17, 24, 39, 0.08);
}

.tool-note {
    background: #eef3ff;
    border: 1px solid #d7e3ff;
    color: #1f2937;
    border-radius: 12px;
    padding: 12px 14px;
    margin: 10px 0 14px;
    font-weight: 600;
}

.proof-chip {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid var(--proof-chip-border);
    background: linear-gradient(140deg, var(--proof-chip-bg), var(--proof-chip-bg-alt));
    color: var(--proof-chip-ink);
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06);
    margin: 12px 0 16px;
}

.proof-chip[hidden] {
    display: none !important;
}

.proof-chip__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: rgba(36, 75, 219, 0.12);
    color: var(--proof-chip-accent);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    flex-shrink: 0;
}

.proof-chip__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
    min-width: 0;
}

.proof-chip__tag {
    align-self: flex-start;
    padding: 2px 6px;
    border-radius: 999px;
    background: rgba(36, 75, 219, 0.12);
    color: var(--proof-chip-accent);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.proof-chip__line {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.35;
    color: var(--proof-chip-ink);
}

.proof-chip__line--secondary {
    color: var(--proof-chip-muted);
    font-size: 0.9rem;
}

.proof-chip__link {
    color: var(--proof-chip-accent);
    font-size: 0.85rem;
    text-decoration: none;
    font-weight: 600;
}

.proof-chip__link:hover {
    text-decoration: underline;
}

.proof-chip__debug {
    margin: 2px 0 0;
    font-size: 0.72rem;
    line-height: 1.35;
    color: var(--proof-chip-muted);
    font-family: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    opacity: 0.8;
    word-break: break-word;
}

.proof-chip__dismiss {
    border: none;
    background: transparent;
    color: var(--proof-chip-muted);
    font-size: 1rem;
    line-height: 1;
    padding: 2px 4px;
    cursor: pointer;
}

.proof-chip__dismiss:hover {
    color: var(--proof-chip-ink);
}

.proof-chip.is-pulsing {
    animation: proof-chip-pulse 0.9s ease;
}

@keyframes proof-chip-pulse {
    0% {
        box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06);
    }
    50% {
        box-shadow: 0 8px 20px rgba(36, 75, 219, 0.18);
    }
    100% {
        box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06);
    }
}

.tool-header h1 {
    margin: 6px 0 8px;
    font-size: clamp(1.6rem, 1.4vw + 1rem, 2.2rem);
    letter-spacing: -0.02em;
}

.tool-panel {
    margin-top: 16px;
    border: 1px dashed #d2d6dc;
    background: #f8fafc;
    border-radius: 14px;
    padding: 18px;
}

.coming-soon {
    margin: 0 0 8px;
    font-weight: 700;
    color: var(--tools-ink);
}

.tool-form {
    display: grid;
    gap: 10px;
}

.resume-form {
    gap: 14px;
}

.resume-form #experience_notes {
    min-height: 180px;
}

.daily-summary {
    margin-top: 4px;
    padding: 10px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #fff;
}

.history-toggle-row {
    margin-top: 10px;
}

.history-toggle {
    background: transparent;
    border: none;
    color: #1a46c7;
    font-weight: 700;
    cursor: pointer;
    padding: 0;
}

.history-wrapper {
    margin-top: 8px;
    border: 1px dashed #d2d6dc;
    border-radius: 10px;
    padding: 10px;
    background: #f8fafc;
}

.history-label {
    font-weight: 700;
    margin-bottom: 6px;
    color: #111827;
}

.history-strip {
    display: grid;
    grid-template-columns: repeat(14, minmax(0, 1fr));
    gap: 6px;
}

.history-dot {
    width: 100%;
    padding-top: 100%;
    position: relative;
    border-radius: 10px;
    border: 1px solid #e5e7eb;
    background: #f3f4f6;
}

.history-dot::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 10px;
    display: block;
}

.history-dot.status-done {
    background: #ecfdf3;
    border-color: #bbf7d0;
}

.history-dot.status-skipped {
    background: #fef2f2;
    border-color: #fecdd3;
}

.history-dot.status-not-today {
    background: #eff6ff;
    border-color: #bfdbfe;
}

.history-dot.status-none {
    background: #f9fafb;
    border-color: #e5e7eb;
}

.tool-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}

.tool-field label {
    display: block;
    font-weight: 600;
    color: #111827;
    margin-bottom: 6px;
}

.tool-field input,
.tool-field textarea,
.tool-field select {
    width: 100%;
    padding: 12px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    font-family: inherit;
    font-size: 1rem;
    color: #1f2937;
    background: #fff;
}

.tool-field textarea {
    min-height: 140px;
    resize: vertical;
}

.tool-field textarea:disabled {
    cursor: not-allowed;
    background: #f3f4f6;
}

.char-limit {
    color: #6b7280;
    font-size: 0.9rem;
}

.tool-form button {
    width: 100%;
    max-width: 240px;
    padding: 12px 16px;
    border: none;
    border-radius: 10px;
    background: var(--tools-accent);
    color: #fff;
    font-weight: 700;
    letter-spacing: 0.01em;
    cursor: pointer;
    opacity: 1;
}

.tool-clear-btn {
    background: #e5e7eb;
    color: #1f2937;
    border: 1px solid #d1d5db;
}

.tp-inline {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 8px;
}

.tp-add-btn {
    width: auto !important;
    min-width: auto;
    padding: 10px 14px;
}

.tp-remove-btn {
    background: #e5e7eb;
    color: #1f2937;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    width: auto;
    min-width: auto;
    padding: 8px 12px;
    cursor: pointer;
}

.tool-run-btn[disabled] {
    cursor: not-allowed;
    opacity: 0.6;
}

.tool-status {
    margin-top: 8px;
    color: #374151;
    min-height: 18px;
}

.tool-status.error {
    color: #b91c1c;
}

.tool-status.success {
    color: #065f46;
}

.tool-output {
    margin-top: 12px;
    border: 1px solid #d1d5db;
    border-radius: 12px;
    background: #fff;
    padding: 12px;
}

.tool-output-label {
    font-weight: 700;
    margin-bottom: 8px;
    color: #111827;
}

.output-helper {
    margin: 2px 0 10px;
    color: #6b7280;
    font-size: 0.95rem;
}

.tool-output-pre {
    margin: 0;
    white-space: pre-wrap;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
    color: #1f2937;
}

.resume-advanced {
    margin-top: 14px;
    padding: 14px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 6px 14px rgba(17, 24, 39, 0.06);
}

.advanced-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
    margin: 10px 0;
}

.helper-hint {
    color: #6b7280;
    font-size: 0.93rem;
    margin-top: 4px;
}

.optional-note {
    margin-top: 4px;
}

/* Matches Daily Language Phrase form layout */
.rr-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 12px;
    row-gap: 12px;
    align-items: start;
}

.rr-field {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.rr-field .form-control,
.rr-field .form-select {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    line-height: 1.2;
    min-height: 40px;
    border-radius: 10px;
}

.dp-grid,
.hc-grid,
.rr-grid-2,
.rr-grid-2-narrow,
.tp-grid--inputs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 12px;
    row-gap: 12px;
    align-items: start;
}

.tool--trip-planner .rr-form-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    column-gap: 18px;
    row-gap: 18px;
}

.dp-field,
.hc-field,
.rr-grid-2 > div,
.rr-grid-2-narrow > div,
.tp-grid--inputs > div {
    display: grid;
    gap: 6px;
    min-width: 0;
}

@media (max-width: 900px) {
    .rr-form-grid,
    .dp-grid,
    .hc-grid,
    .rr-grid-2,
    .rr-grid-2-narrow,
    .tp-grid--inputs {
        grid-template-columns: 1fr;
    }
}

.form-control {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    line-height: 1.2;
    min-height: 40px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    font-family: inherit;
    font-size: 1rem;
    color: #1f2937;
    background: #fff;
    resize: vertical;
}

.form-select {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    line-height: 1.2;
    min-height: 40px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    font-family: inherit;
    font-size: 1rem;
    color: #1f2937;
    background: #fff;
}

.form-label {
    display: block;
    font-weight: 600;
    color: #111827;
    margin-bottom: 6px;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 12px;
    border-radius: 10px;
    border: 1px solid #d1d5db;
    cursor: pointer;
    font-weight: 700;
    background: #fff;
}

.btn-primary {
    background: #1f57ff;
    border-color: #1f57ff;
    color: #fff;
}

.btn-primary:hover {
    background: #1c4ed8;
    border-color: #1c4ed8;
}

.btn-outline-secondary {
    background: #fff;
    color: #1f2937;
}

.btn-sm {
    padding: 6px 10px;
    font-size: 0.95rem;
}

.mt-4 {
    margin-top: 16px;
}

.mb-3 {
    margin-bottom: 12px;
}

.mb-2 {
    margin-bottom: 8px;
}

.h6 {
    font-size: 1rem;
    margin: 0;
}

.text-muted {
    color: #6b7280;
}

.small {
    font-size: 0.95rem;
}

.error-text {
    color: #b91c1c;
}

.success-text {
    color: #065f46;
}

.rr-tool-tagline {
    margin: 4px 0 6px;
    color: #374151;
    font-weight: 600;
}

.rr-trip-results {
    display: grid;
    gap: 12px;
}

.rr-stack {
    display: flex;
    flex-direction: column;
}

.rr-stack.gap-2 {
    gap: var(--rr-space-2);
}

.rr-stack.gap-3 {
    gap: var(--rr-space-3);
}

.rr-stack.gap-4 {
    gap: var(--rr-space-4);
}

.rr-stack.gap-5 {
    gap: var(--rr-space-5);
}

.rr-stack.gap-6 {
    gap: var(--rr-space-6);
}

.rr-section {
    margin-top: var(--rr-space-6);
}

.rr-card {
    border: 1px solid var(--tools-border);
    border-radius: 14px;
    background: var(--tools-card);
    padding: var(--rr-space-5);
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.05);
}

.rr-card.fill {
    display: flex;
    flex-direction: column;
    min-height: 260px;
}

.rr-card-body {
    flex: 1;
}

.rr-card-footer {
    margin-top: var(--rr-space-4);
}

.rr-card-head {
    margin-bottom: var(--rr-space-4);
}

.rr-card-head .rr-card-title {
    margin: 0;
}

.rr-card-head p {
    margin: 0;
}

.rr-actions-row {
    display: flex;
    align-items: center;
    gap: var(--rr-space-4);
    flex-wrap: wrap;
}

.rr-actions-row.tight {
    gap: var(--rr-space-3);
}

.rr-tabs-wrap {
    margin-top: var(--rr-space-4);
    margin-bottom: var(--rr-space-5);
}

.rr-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--rr-space-5);
}

@media (max-width: 980px) {
    .rr-card-grid {
        grid-template-columns: 1fr;
        gap: var(--rr-space-4);
    }
}

.rr-trip-card details {
    cursor: pointer;
}

.rr-card-title {
    margin: 0 0 6px;
    font-size: 1.05rem;
    font-weight: 700;
    color: #0f172a;
}

.rr-card-main {
    font-size: 1.25rem;
    font-weight: 600;
}

.rr-trip-snapshot-text {
    margin: 0 0 8px;
    color: #111827;
}

.rr-trip-snapshot-facts {
    list-style: disc;
    padding-left: 18px;
    color: #374151;
}

.rr-trip-packing {
    margin-top: 10px;
}

.rr-plus-locked {
    opacity: 0.85;
}

.rr-plus-upsell-text {
    color: #6b7280;
    font-size: 0.95rem;
    margin-top: 6px;
}

.rr-plus-upsell-link {
    display: inline-flex;
    align-items: center;
    font-size: 0.9rem;
    color: var(--tools-muted);
    text-decoration: none;
    margin-top: 6px;
}

.rr-plus-upsell-link:hover {
    text-decoration: underline;
}

.rr-help-text {
    color: #6b7280;
    font-size: 0.95rem;
}

.rr-progress-bar {
    background: #f1f1f5;
    border-radius: 999px;
    height: 6px;
    overflow: hidden;
}

.rr-progress-bar-inner {
    height: 100%;
    background: #2563eb;
    width: 0%;
    transition: width 0.3s ease;
}

.rr-table-wrapper {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}

.rr-table {
    width: 100%;
    border-collapse: collapse;
}

.rr-table th,
.rr-table td {
    padding: 10px 12px;
    border-bottom: 1px solid #e5e7eb;
    text-align: left;
    font-size: 0.98rem;
}

.rr-table th {
    background: #f9fafb;
    font-weight: 700;
}

.rr-table tr:last-child td {
    border-bottom: none;
}

.rr-input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    font-family: inherit;
    font-size: 1rem;
    color: #1f2937;
    background: #fff;
}

.rr-label {
    display: block;
    font-weight: 600;
    color: #111827;
    margin-top: 6px;
}

.rr-field-group {
    margin-top: 0.75rem;
}

.rr-input-row {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.rr-input-row .rr-input {
    flex: 1;
}

.rr-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.rr-list-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid #e5e7eb;
}

.rr-list-row:last-child {
    border-bottom: none;
}

.rr-list-main {
    flex: 1;
    min-width: 0;
}

.rr-list-actions {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.rr-suggestions {
    margin-top: 0.35rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.rr-suggestion-pill {
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    background: #fff;
    padding: 6px 10px;
    font-weight: 700;
    color: #0f172a;
    cursor: pointer;
}

.rr-suggestion-pill:hover {
    background: #f1f5f9;
}

.rr-budget-strip {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 10px 12px;
    border: 1px dashed #d7e3ff;
    border-radius: 12px;
    background: #f4f7ff;
}

.rr-trip-expense-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 10px;
}

.rr-button-primary,
.rr-button-secondary {
    padding: 10px 12px;
    border-radius: 10px;
    font-weight: 700;
    cursor: pointer;
    border: 1px solid #d1d5db;
    background: #fff;
}

.rr-button-primary {
    background: var(--tools-accent);
    color: #fff;
    border-color: var(--tools-accent);
}

.rr-trip-split-summary ul {
    margin: 0;
    padding-left: 18px;
}

.rr-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: 8px;
    font-size: 0.95rem;
    color: #111827;
}

.rr-dlp-output {
    display: grid;
    gap: 12px;
}

.rr-dlp-card {
    padding: 14px 16px;
}

.rr-card-subtitle {
    margin: 0 0 6px;
    font-size: 1rem;
    font-weight: 700;
    color: #0f172a;
}

.rr-dlp-phrase-original {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.rr-dlp-phrase-phonetic {
    font-size: 0.95rem;
    color: #666;
    margin-bottom: 0.75rem;
}

.rr-dlp-phrase-translation {
    font-weight: 500;
    margin-bottom: 0.25rem;
}

.rr-dlp-phrase-context,
.rr-dlp-phrase-mnemonic {
    font-size: 0.9rem;
    color: #555;
}

.rr-dlp-hidden-phrase {
    filter: blur(4px);
}

.rr-dlp-practice-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 8px;
}

.rr-dlp-plus-block {
    padding: 6px 0;
}

.rr-dlp-dialogue-text {
    margin: 0;
    color: #111827;
    line-height: 1.4;
}

.rr-dlp-vault-list {
    list-style: none;
    padding-left: 0;
    margin: 6px 0 0;
}

.rr-dlp-vault-list li {
    font-size: 0.9rem;
    margin-bottom: 0.25rem;
}

.rr-dlp-audio-row {
    display: flex;
    justify-content: flex-start;
}

.rr-social-score {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 12px;
}

.rr-social-variants {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
}

.rr-social-variant-block {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 10px;
    background: #f9fafb;
}
.rr-link-button {
    border: none;
    background: none;
    padding: 0;
    font: inherit;
    color: #2563eb;
    cursor: pointer;
    text-decoration: underline;
}

.rr-resume-advanced-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1.5fr);
    gap: 1rem;
}

@media (max-width: 1024px) and (pointer: coarse) {
    .rr-resume-advanced-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

.rr-resume-tailored-text {
    white-space: pre-wrap;
    font-family: inherit;
    font-size: 0.95rem;
}

.rr-resume-tailored-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.rr-tag-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.rr-chip {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border-radius: 999px;
    background: #eef3ff;
    color: #1a46c7;
    font-weight: 700;
    font-size: 0.9rem;
}

.rr-chip-plus {
    background-color: #1f2937;
    color: #fff;
    font-size: 0.75rem;
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    margin-left: 0.35rem;
}

.rr-habit-list {
    list-style: none;
    padding-left: 0;
    margin: 0.25rem 0 0;
}

.rr-habit-list li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.25rem;
    font-size: 0.9rem;
}

.rr-habit-list button {
    font-size: 0.8rem;
}

.rr-button-text {
    background: none;
    border: none;
    padding: 4px 6px;
    cursor: pointer;
    color: #1a46c7;
    text-decoration: underline;
}

.rr-habit-dot {
    width: 100%;
    padding-top: 100%;
    position: relative;
    border-radius: 50%;
    border: 1px solid #e5e7eb;
    background: #f3f4f6;
}

.rr-habit-dot-done {
    background: #ecfdf3;
    border-color: #bbf7d0;
}

.rr-habit-dot-missed {
    background: #fef2f2;
    border-color: #fecdd3;
}

.rr-habit-dot-empty {
    background: #f9fafb;
    border-color: #e5e7eb;
}

.rr-share-link-block {
    border: 1px dashed #d2d6dc;
    border-radius: 10px;
    padding: 10px 12px;
    background: #f8fafc;
}

.rr-share-link-row .rr-input {
    flex: 1;
}

.rr-share-link-row button {
    white-space: nowrap;
}

.rr-error-text {
    color: #b91c1c;
}

.tool-share {
    margin-top: 10px;
    border-top: 1px solid #e5e7eb;
    padding-top: 10px;
}

.tool-share-link {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    font-weight: 600;
    color: #1f2937;
}

.tool-free-plus {
    margin-top: 14px;
}

.tool-copy-share,
.tool-copy-btn {
    background: #eef3ff;
    border: 1px solid #d7e3ff;
    color: #1a46c7;
    border-radius: 8px;
    padding: 6px 10px;
    cursor: pointer;
}

.tool-copy-btn {
    display: none;
}

.tool-audio {
    margin-top: 6px;
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.tool-audio button {
    background: #eef3ff;
    border: 1px solid #d7e3ff;
    color: #1a46c7;
    border-radius: 8px;
    padding: 6px 10px;
    cursor: pointer;
}

.tool-audio-note {
    color: #6b7280;
    font-size: 0.95rem;
}

.chip-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.chip {
    background: #eef3ff;
    border: 1px solid #d7e3ff;
    color: #1a46c7;
    padding: 6px 10px;
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.95rem;
}

.tool-page-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    gap: 12px;
}

.tool-page-header-right {
    display: flex;
    align-items: center;
}

.helpful-picks-chip {
    border-radius: 999px;
    border: 1px solid rgba(0, 0, 0, 0.06);
    padding: 4px 10px;
    font-size: 12px;
    background: #fff;
    cursor: pointer;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
}

.helpful-picks-panel {
    margin-top: 8px;
    margin-bottom: 12px;
    padding: 8px 12px;
    border-radius: 12px;
    background: #f9fafb;
    border: 1px solid rgba(15, 23, 42, 0.06);
    font-size: 13px;
}

.helpful-picks-list {
    list-style: none;
    padding: 0;
    margin: 4px 0 0;
}

.helpful-picks-list li {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
}

.helpful-picks-name {
    font-weight: 500;
}

.helpful-picks-meta {
    color: #6b7280;
}

.share-sections {
    display: grid;
    gap: 16px;
}

.share-section h3 {
    margin: 0 0 8px;
    font-size: 1.05rem;
}

.tp-section {
    margin-top: 14px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 12px;
    background: #fff;
}

.share-table {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    overflow: hidden;
}

.share-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 8px;
    padding: 10px 12px;
    border-bottom: 1px solid #e5e7eb;
    align-items: center;
}

.share-row:last-child {
    border-bottom: none;
}

.share-head {
    background: #f3f4f6;
    font-weight: 700;
}

.tp-grid {
    grid-template-columns: 1fr 1fr 2fr 1fr 1fr 60px;
    align-items: center;
}

.tp-exp-grid {
    grid-template-columns: 1fr 1fr 1fr 1.5fr 1fr 70px;
    align-items: center;
}

.muted {
    color: #6b7280;
}

.result-card {
    margin-top: 14px;
    padding: 18px;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 8px 18px rgba(17, 24, 39, 0.05);
}

.result-card .chip-row {
    margin-top: 10px;
}

.result-title {
    font-weight: 700;
    font-size: 1.05rem;
    margin-bottom: 10px;
    color: #0f1b2d;
}

.result-primary {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 8px;
}

.result-primary-label {
    color: #6b7280;
    font-weight: 600;
}

.result-primary-value {
    font-size: 1.4rem;
    font-weight: 800;
    color: #1f2937;
}

.result-secondary {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 8px;
    color: #374151;
    font-weight: 600;
}

.result-secondary-value {
    font-weight: 700;
    color: #111827;
}

.result-subtext {
    color: #6b7280;
    font-size: 0.95rem;
    margin-bottom: 10px;
}

.pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 10px;
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.95rem;
    margin-bottom: 8px;
}

.pill.success {
    background: #ecfdf3;
    color: #166534;
}

.pill.warn {
    background: #fff7ed;
    color: #9a3412;
}

.pill.danger {
    background: #fef2f2;
    color: #b91c1c;
}

.detail-rows {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 8px;
}

.detail-row {
    display: flex;
    justify-content: space-between;
    padding: 8px 10px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #f9fafb;
    font-size: 0.95rem;
    color: #111827;
}

.detail-row span:last-child {
    font-weight: 700;
    color: #0f172a;
}

.compare-panel {
    margin-top: 12px;
    padding: 14px;
    border: 1px dashed #d1d5db;
    border-radius: 12px;
    background: #f8fafc;
}

.compare-title {
    font-weight: 700;
    margin-bottom: 8px;
    color: #0f172a;
}

.result-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 10px;
    margin-bottom: 8px;
}

.compare-col {
    padding: 10px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #fff;
}

.compare-col.winner {
    border-color: #10b981;
    box-shadow: 0 0 0 1px #d1fae5 inset;
}

.compare-name {
    font-weight: 700;
    margin-bottom: 6px;
}

.compare-metric {
    font-size: 1.1rem;
    font-weight: 800;
    color: #111827;
}

.compare-note {
    color: #475569;
    font-size: 0.95rem;
}

.nudge-panel {
    margin-top: 12px;
    padding: 14px;
    border: 1px dashed #a5b4fc;
    border-radius: 12px;
    background: #f5f7ff;
}

.sp-meta {
    color: #6b7280;
    font-size: 0.95rem;
    margin-bottom: 10px;
}

.sp-copybox {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f9fafb;
    padding: 12px;
}

.sp-text {
    margin: 0;
    white-space: pre-wrap;
    word-break: break-word;
    font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji",
        "Segoe UI Emoji";
    font-size: 1rem;
    line-height: 1.5;
    color: #0f172a;
}

.sp-actions {
    margin-top: 10px;
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: flex-start;
}

.sp-copy-btn {
    padding: 8px 12px;
    border-radius: 10px;
}

.sp-secondary {
    margin-top: 12px;
}

.sp-changes {
    margin: 0;
    padding-left: 18px;
    color: #334155;
    font-size: 0.98rem;
}

.sp-changes li {
    margin: 6px 0;
}

.sp-toggle {
    margin-top: 10px;
}

.sp-alt {
    margin-top: 10px;
    display: grid;
    gap: 12px;
}

.sp-alt-section {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #ffffff;
    padding: 10px;
}

.sp-alt-title {
    font-weight: 700;
    margin-bottom: 8px;
    color: #0f172a;
}

.sp-alt-text {
    margin-bottom: 10px;
}

/* ---- Daily Phrase (v2) ---- */
.dp-container {
    max-width: 1120px;
    margin: 20px auto 72px;
    padding: 0 8px;
}

.dp-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 10px;
}

.dp-header__left {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.dp-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 999px;
    background: #eef3ff;
    color: #1a46c7;
    font-weight: 800;
    letter-spacing: 0.01em;
    font-size: 0.95rem;
}

.dp-title {
    margin: 0;
    font-size: clamp(1.6rem, 1.4vw + 1rem, 2.2rem);
    letter-spacing: -0.02em;
    color: #0f172a;
}

.dp-subtitle {
    margin: 4px 0 0;
    color: #556074;
    line-height: 1.5;
    font-weight: 500;
}

.dp-surface {
    border: 1px solid var(--tools-border);
    border-radius: 20px;
    background: var(--tools-card);
    padding: 20px 22px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
}

.dp-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.dp-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 12px;
    row-gap: 12px;
}

.dp-focus-field .form-control {
    min-height: 42px;
}

.dp-toggle-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid #e5e7eb;
    background: #f8fafc;
}

.dp-toggle-label {
    font-weight: 600;
    color: #334155;
}

.dp-surface .form-select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    background: #fff;
    font-size: 1rem;
}

.dp-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.dp-chip {
    border: 1px solid #dfe6ff;
    background: #f4f6ff;
    color: #0f1b2d;
    border-radius: 999px;
    padding: 8px 12px;
    font-weight: 700;
    font-size: 0.95rem;
    cursor: pointer;
    transition: background 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.dp-chip:hover {
    background: #eef3ff;
}

.dp-chip.is-active {
    background: #e4ecff;
    border-color: #cdd9ff;
    box-shadow: 0 0 0 1px rgba(31, 87, 255, 0.08);
}

.dp-primary-action {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}

.dp-subtle-hint {
    margin: 0;
    color: #6b7280;
    font-size: 0.95rem;
}

.dp-status {
    margin: 10px 0 4px;
    color: #556074;
    min-height: 18px;
}

.dp-status--error {
    color: #b91c1c;
}

.dp-status--success {
    color: #15803d;
}

.dp-output {
    margin-top: 12px;
    display: grid;
    gap: 12px;
}

.dp-result-card {
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 16px 18px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
}

.dp-result-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
}

.dp-label {
    font-weight: 800;
    color: #0f172a;
}

.dp-phrase {
    margin: 6px 0;
    font-size: 1.4rem;
    font-weight: 800;
    color: #0f172a;
    letter-spacing: -0.01em;
}

.dp-phonetic {
    margin: 0 0 6px;
    color: #6b7280;
    font-size: 0.95rem;
}

.dp-meaning {
    margin: 0 0 8px;
    font-weight: 600;
    color: #0f172a;
}

.dp-examples p {
    margin: 4px 0;
    color: #374151;
}

.dp-actions-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.dp-audio-note {
    margin: 6px 0 0;
    color: #6b7280;
    font-size: 0.9rem;
}

.dp-remember {
    margin-top: 6px;
}

.dp-guide {
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.dp-guide-line {
    margin: 4px 0;
    color: #334155;
    font-size: 0.95rem;
}

.dp-guide-link {
    margin: 6px 0 0;
    font-size: 0.9rem;
}

.dp-guide-link a {
    color: #0f766e;
    font-weight: 600;
    text-decoration: none;
}

.dp-guide-link a:hover {
    text-decoration: underline;
}

.dp-remember-link {
    border: none;
    padding: 0;
    background: none;
    color: #64748b;
    font-size: 0.95rem;
    cursor: pointer;
    text-decoration: underline;
    text-decoration-color: rgba(100, 116, 139, 0.5);
    text-underline-offset: 3px;
}

.dp-remember-link:hover {
    color: #475569;
    text-decoration-color: rgba(71, 85, 105, 0.7);
}

.dp-vault-preview {
    margin-top: 8px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px dashed #e2e8f0;
    background: #f8fafc;
}

.dp-vault-preview-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 6px;
}

.dp-vault-preview-row {
    display: grid;
    grid-template-columns: minmax(80px, 100px) 1fr auto;
    gap: 8px;
    align-items: center;
    font-size: 0.9rem;
    color: #475569;
    padding: 6px 8px;
    border-radius: 8px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
}

.dp-vault-preview-row--locked {
    filter: blur(1.4px);
}

.dp-vault-preview-day {
    font-weight: 600;
    color: #334155;
}

.dp-vault-preview-title {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dp-vault-preview-lang {
    font-size: 0.75rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
    border: 1px solid #cbd5f5;
    padding: 2px 6px;
    border-radius: 999px;
    background: #f1f5f9;
}

.dp-vault-preview-note {
    margin: 8px 0 0;
    font-size: 0.9rem;
    color: #6b7280;
}

.dp-quiz-hint {
    margin: 6px 0 0;
    color: #475569;
    font-size: 0.95rem;
}

.dp-blur {
    filter: blur(4px);
}

.dp-muted {
    color: #6b7280;
    font-size: 0.95rem;
}

.dp-accordions {
    margin-top: 12px;
    display: grid;
    gap: 10px;
}

.dp-accordion {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f9fafb;
    padding: 10px 12px;
}

.dp-accordion summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    font-weight: 700;
    color: #0f172a;
}

.dp-accordion summary::-webkit-details-marker {
    display: none;
}

.dp-accordion .dp-accordion-body {
    margin-top: 8px;
    display: grid;
    gap: 8px;
}

.dp-practice-phrase {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: #0f172a;
}

.dp-practice-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.dp-practice-feedback {
    display: grid;
    gap: 6px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid #e5e7eb;
    background: #fff;
}

.dp-practice-indicator {
    font-weight: 700;
    color: #0f172a;
}

.dp-practice-indicator--ok {
    color: #15803d;
}

.dp-practice-indicator--no {
    color: #b91c1c;
}

.dp-practice-meaning {
    margin: 0;
    color: #0f172a;
    font-weight: 600;
}

.dp-practice-hint {
    margin: 0;
    white-space: pre-line;
}

.dp-dialogue-text {
    margin: 6px 0 0;
    color: #0f172a;
    line-height: 1.45;
}

.dp-dialogue-translation {
    margin: 4px 0 0;
    line-height: 1.45;
}

.dp-vault-list {
    list-style: none;
    padding-left: 0;
    margin: 6px 0 0;
    display: grid;
    gap: 4px;
}

.dp-vault-list li {
    padding: 6px 8px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #fff;
    color: #0f172a;
    font-size: 0.95rem;
}

.dp-vault-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 12px;
}

.dp-vault-main {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    flex: 1 1 240px;
}

.dp-vault-sep {
    color: #94a3b8;
}

.dp-vault-phrase {
    font-weight: 600;
}

.dp-vault-meaning-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 220px;
    justify-content: flex-end;
}

.dp-vault-meaning {
    color: #6b7280;
    font-size: 0.93rem;
    display: inline-block;
    transition: filter 0.15s ease, opacity 0.15s ease;
}

.dp-vault-meaning.is-blurred {
    filter: blur(6px);
    user-select: none;
    opacity: 0.35;
}

.dp-vault-meaning-toggle {
    font-size: 0.8rem;
    padding: 6px 10px;
}

.dp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 14px;
    border-radius: 12px;
    font-weight: 700;
    border: 1px solid #dfe3f0;
    background: #fff;
    color: #0f1b2d;
    cursor: pointer;
    transition: all 0.15s ease;
}

.dp-btn-primary {
    background: var(--tools-accent);
    border-color: var(--tools-accent);
    color: #fff;
    box-shadow: 0 8px 18px rgba(31, 87, 255, 0.18);
}

.dp-btn-secondary {
    background: #eef3ff;
    border-color: #d7e3ff;
    color: #0f1b2d;
}

.dp-btn-ghost {
    background: #f8fafc;
    border-color: #e5e7eb;
    color: #0f172a;
}

.dp-btn-link {
    background: transparent;
    border-color: transparent;
    color: #1f57ff;
    padding: 8px 0;
}

.dp-btn-sm {
    padding: 8px 12px;
    font-size: 0.95rem;
}

.dp-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.dp-sticky {
    backdrop-filter: blur(6px);
    border-color: #dfe3f0;
}

.dp-sticky .dp-btn {
    padding: 8px 12px;
}

/* ---- Daily Habit Check-In (v2) ---- */
.hc-container {
    max-width: 1120px;
    margin: 20px auto 72px;
    padding: 0 8px;
}

.hc-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 12px;
}

.hc-header__left {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.hc-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 999px;
    background: #eef3ff;
    color: #1a46c7;
    font-weight: 800;
    letter-spacing: 0.01em;
    font-size: 0.95rem;
}

.hc-title {
    margin: 0;
    font-size: clamp(1.6rem, 1.4vw + 1rem, 2.2rem);
    letter-spacing: -0.02em;
    color: #0f172a;
}

.hc-subtitle {
    margin: 4px 0;
    color: #556074;
    line-height: 1.5;
    font-weight: 500;
}

.hc-status-line {
    margin: 2px 0 0;
    color: #475569;
    font-weight: 600;
    font-size: 0.98rem;
}

.hc-surface {
    border: 1px solid var(--tools-border);
    border-radius: 20px;
    background: var(--tools-card);
    padding: 20px 22px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
}

.hc-form {
    display: grid;
    gap: 10px;
}

.hc-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 12px;
    row-gap: 12px;
    align-items: start;
}

.hc-field .form-control,
.hc-field .form-select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    background: #fff;
    font-size: 1rem;
}

.hc-primary-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    margin-top: 4px;
}

.hc-summary {
    border: 1px dashed #e5e7eb;
    border-radius: 12px;
    padding: 12px;
    background: #f9fafb;
}

.hc-accordion {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f9fafb;
    padding: 10px 12px;
}

.hc-accordion summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    font-weight: 700;
    color: #0f172a;
}

.hc-accordion summary::-webkit-details-marker {
    display: none;
}

.hc-accordion .hc-accordion-body {
    margin-top: 8px;
    display: grid;
    gap: 8px;
}

.hc-accordion--locked {
    opacity: 0.9;
}

.hc-sticky .dp-btn {
    padding: 8px 12px;
}

/* ---- Decision Helper (v2) ---- */
.dh-container {
    max-width: 1120px;
    margin: 20px auto 72px;
    padding: 0 8px;
}

.dh-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 10px;
}

.dh-header__left {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.dh-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 999px;
    background: #eef3ff;
    color: #1a46c7;
    font-weight: 800;
    letter-spacing: 0.01em;
    font-size: 0.95rem;
}

.dh-title {
    margin: 0;
    font-size: clamp(1.6rem, 1.4vw + 1rem, 2.2rem);
    letter-spacing: -0.02em;
    color: #0f172a;
}

.dh-subtitle {
    margin: 4px 0;
    color: #556074;
    line-height: 1.5;
    font-weight: 500;
}

.dh-surface {
    border: 1px solid var(--tools-border);
    border-radius: 20px;
    background: var(--tools-card);
    padding: 20px 22px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
}

.dh-form {
    display: grid;
    gap: 16px;
}

.dh-label {
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 4px;
}

.dh-mode {
    display: grid;
    gap: 8px;
}

.dh-segments {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 6px;
}

.dh-segments--tight {
    gap: 4px;
}

.dh-segment {
    border: 1px solid #dfe3f0;
    background: #fff;
    border-radius: 10px;
    padding: 8px 12px;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.dh-segment.is-active {
    border-color: #1f57ff;
    box-shadow: 0 0 0 2px rgba(31, 87, 255, 0.12);
    background: #eef3ff;
}

.dh-segment__tag {
    background: #0f172a;
    color: #fff;
    border-radius: 999px;
    padding: 2px 6px;
    font-size: 0.75rem;
    font-weight: 800;
}

.dh-options__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.dh-options__list {
    display: grid;
    gap: 8px;
    margin-top: 6px;
}

.dh-option-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.dh-option-row input {
    width: 100%;
}

.dh-option-remove {
    border: 1px solid #e2e8f0;
    background: #fff;
    color: #6b7280;
    border-radius: 999px;
    width: 28px;
    height: 28px;
    line-height: 26px;
    text-align: center;
    font-weight: 700;
    cursor: pointer;
}

.dh-option-remove:hover {
    color: #0f172a;
    border-color: #cbd5f5;
    background: #f8fafc;
}

.dh-link {
    border: none;
    background: none;
    padding: 0;
    color: #1f57ff;
    font-weight: 700;
    cursor: pointer;
    text-decoration: underline;
}

.dh-primary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.dh-inline-note {
    color: #b45309;
    font-weight: 600;
    font-size: 0.95rem;
}

.dh-accordion {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f9fafb;
    padding: 10px 12px;
}

.dh-accordion summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-weight: 700;
    color: #0f172a;
}

.dh-accordion summary::-webkit-details-marker {
    display: none;
}

.dh-accordion__body {
    margin-top: 8px;
    display: grid;
    gap: 12px;
}

.dh-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.dh-chip {
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid #d1d5db;
    background: #fff;
    font-weight: 700;
    cursor: pointer;
}

.dh-chip.is-active {
    background: #eef3ff;
    border-color: #b8c7ff;
    color: #0f1b2d;
}

.dh-details-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 18px;
    align-items: start;
}

.dh-details-left,
.dh-details-right {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.dh-detail-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.dh-details-grid textarea,
.dh-details-grid input,
.dh-details-grid select {
    width: 100%;
    box-sizing: border-box;
}

.dh-details-grid textarea {
    min-height: 84px;
    resize: vertical;
}

.dh-details-right .dh-segments {
    width: 100%;
}

@media (max-width: 900px) {
    .dh-details-grid {
        grid-template-columns: 1fr;
    }
}

.dh-output {
    display: grid;
    gap: 12px;
}

.dh-result-card {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #fff;
    padding: 14px 16px;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06);
}

.dh-result-label {
    font-weight: 800;
    margin: 0 0 6px;
    color: #0f172a;
}

.dh-result-choice {
    font-size: 1.25rem;
    font-weight: 800;
    margin: 4px 0 8px;
}

.dh-result-list {
    margin: 0;
    padding-left: 18px;
    color: #374151;
}

.dh-question {
    margin-top: 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.dh-question__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    width: 100%;
}

.dh-question__actions .form-control {
    flex: 1;
    min-width: 180px;
}

.dh-question__error {
    color: #b45309;
    font-weight: 600;
    margin: 0;
}

.dh-memory-banner {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border-radius: 10px;
    border: 1px solid #e5e7eb;
    background: #f8fafc;
    color: #0f172a;
    font-weight: 600;
    margin-bottom: 12px;
}

.dh-locked-note {
    color: #6b7280;
    margin: 0;
}

.dh-answer-summary {
    margin-top: 12px;
    border: 1px dashed #e5e7eb;
    border-radius: 12px;
    padding: 10px 12px;
    background: #f9fafb;
}

.dh-answer-summary__title {
    font-weight: 700;
    margin: 0 0 6px;
    color: #0f172a;
}

.dh-answer-summary__list {
    margin: 0;
    padding-left: 18px;
    color: #374151;
}

.rr-accordion {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.rr-accordion--style {
    margin: 18px 0 8px;
    background: #f9fafb;
}

.rr-accordion__toggle {
    width: 100%;
    border: none;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 14px;
    cursor: pointer;
    text-align: left;
    gap: 8px;
    transition: background-color 0.15s ease;
}

.rr-accordion__toggle:hover {
    background: #f8fafc;
}

.rr-accordion__title-text {
    font-weight: 800;
    color: #0f172a;
    font-size: 1.05rem;
}

.rr-accordion__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.rr-accordion__pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 8px;
    border-radius: 999px;
    background: #eef3ff;
    color: #1f2937;
    border: 1px solid #cdd9ff;
    font-weight: 700;
    font-size: 0.9rem;
}

.rr-accordion__chevron {
    color: #6b7280;
    transition: transform 0.18s ease;
    display: inline-flex;
}

.rr-accordion.is-collapsed .rr-accordion__chevron {
    transform: rotate(-90deg);
}

.rr-accordion__body {
    padding: 12px 14px 14px;
    display: grid;
    gap: 12px;
    border-top: 1px solid #e5e7eb;
    background: #fff;
}

.rr-accordion.is-collapsed .rr-accordion__body {
    display: none;
}

.rr-accordion__error {
    margin: 0 14px 8px;
    color: #b91c1c;
    font-size: 0.9rem;
}

.dh-style-panel {
    margin-top: 18px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f9fafb;
    overflow: hidden;
}

.dh-style-toggle {
    width: 100%;
    border: none;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 14px;
    cursor: pointer;
    text-align: left;
    gap: 8px;
}

.dh-style-title {
    font-weight: 800;
    color: #0f172a;
    font-size: 1.05rem;
}

.dh-style-status {
    font-weight: 700;
    color: #6b7280;
}

.dh-style-status.is-saved {
    background: #eef3ff;
    color: #1f2937;
    border: 1px solid #cdd9ff;
    border-radius: 999px;
    padding: 2px 8px;
}

.dh-style-caret {
    color: #6b7280;
    transition: transform 0.15s ease;
    display: inline-flex;
}

.dh-style-panel.is-collapsed .dh-style-caret {
    transform: rotate(-90deg);
}

.dh-style-body {
    padding: 12px 14px 14px;
    display: grid;
    gap: 12px;
    border-top: 1px solid #e5e7eb;
    background: #fff;
}

.dh-style-helper {
    margin: 0;
    color: #4b5563;
    font-size: 0.95rem;
}

.dh-style-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 10px;
}

.dh-style-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.dh-style-row > .dp-muted {
    min-width: 130px;
    font-weight: 600;
    color: #6b7280;
}

.dh-style-row .dh-segment {
    justify-content: center;
    flex: 1 1 140px;
    min-width: 120px;
}

@media (max-width: 720px) {
    .dh-style-grid {
        grid-template-columns: 1fr;
    }
    .dh-style-row > .dp-muted {
        min-width: auto;
    }
}

.dh-style-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.dh-style-reset {
    color: #6b7280;
}

.dh-actions-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 10px;
}

.dh-save-cta {
    margin-top: 12px;
    display: grid;
    gap: 6px;
}

.dh-save-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.dh-toast {
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 6px 10px;
    background: #f8fafc;
    color: #0f172a;
    font-weight: 600;
    font-size: 0.85rem;
}

.sp-options-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
}

.sp-options-body {
    display: grid;
    gap: 16px;
}

.sp-options-section {
    display: grid;
    gap: 8px;
}

.sp-options-title {
    margin: 0;
    font-size: 0.95rem;
    color: #0f172a;
}

.sp-options-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    color: #1f2937;
    grid-column: 1 / -1;
}

.sp-options-toggle input {
    margin: 0;
}

.sp-output-card {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #ffffff;
    padding: 14px 16px;
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.08);
    display: grid;
    gap: 10px;
}

.sp-output-header {
    display: grid;
    gap: 8px;
}

.sp-preview {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f9fafb;
    padding: 12px;
    min-height: 140px;
    color: #0f172a;
    white-space: normal;
    display: grid;
    gap: 12px;
    line-height: 1.55;
}

.sp-output-footer {
    margin-top: 8px;
    display: grid;
    gap: 4px;
    font-size: 0.92rem;
    color: #6b7280;
}

.sp-output-footer a {
    color: inherit;
}

.sp-momentum-line,
.sp-momentum-link {
    margin: 0;
}

.sp-intent {
    display: grid;
    gap: 8px;
    margin-top: -4px;
}

.sp-draft-hint {
    margin: 0 0 8px;
    font-size: 0.92rem;
}

.sp-intent-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.sp-intent-chips .dh-chip {
    padding: 6px 10px;
    font-size: 0.92rem;
}

.sp-style-accordion {
    position: relative;
}

.sp-style-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.sp-style-summary-line {
    flex: 1 1 100%;
    font-size: 0.9rem;
    color: #6b7280;
    margin-top: 4px;
}

.sp-style-accordion[open] .sp-style-summary-line {
    display: none;
}

.sp-style-accordion:not([open]) .sp-style-current {
    display: none;
}

.sp-style-summary-meta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    color: #1f2937;
}

.sp-style-current {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 8px;
    border-radius: 999px;
    border: 1px solid #d1d5db;
    background: #ffffff;
    font-size: 0.85rem;
}

.sp-style-chevron {
    transition: transform 0.2s ease;
}

.sp-style-accordion[open] .sp-style-chevron {
    transform: rotate(180deg);
}

.sp-style-body {
    display: grid;
    gap: 10px;
}

.sp-style-upgrade {
    display: grid;
    gap: 8px;
}

.sp-style-row {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) repeat(4, auto);
    gap: 8px;
    align-items: center;
}

.sp-style-fields {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 10px;
}

.sp-style-plus {
    font-size: 0.92rem;
}

.sp-pack-note {
    margin: 0;
    font-size: 0.9rem;
    color: #64748b;
    flex-basis: 100%;
}

.sp-output-title {
    display: grid;
    gap: 4px;
}

.sp-output-title p {
    margin: 0;
}

.sp-output-actions {
    display: grid;
    gap: 6px;
}

.sp-output-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    width: 100%;
}

.sp-output-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tool--social-polish .sp-export-trigger:hover {
    background: #eef2ff;
    border-color: #c7d2fe;
}

.tool--social-polish .sp-export-trigger:active {
    transform: translateY(1px);
}

.tool--social-polish .sp-export-trigger:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}

.tool--social-polish .sp-export-trigger.is-loading {
    opacity: 0.7;
    cursor: wait;
}

.sp-output-reset {
    margin-left: auto;
    white-space: nowrap;
}

.sp-export-plus {
    font-size: 0.9rem;
    text-align: left;
}

.sp-copy-status {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.sp-export-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    z-index: 1001;
}

.sp-export-overlay[hidden] {
    display: none;
}

.sp-export-modal {
    width: min(440px, 100%);
    background: #ffffff;
    border-radius: 16px;
    padding: 16px;
    display: grid;
    gap: 12px;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.2);
    max-height: 90vh;
    overflow: auto;
}

.sp-export-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.sp-export-header h3 {
    margin: 0;
    font-size: 1.05rem;
}

.sp-export-close {
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    width: 32px;
    height: 32px;
    background: #f8fafc;
    color: #0f172a;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
}

.sp-export-close:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}

.sp-export-options {
    display: grid;
    gap: 8px;
}

.sp-export-option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    cursor: pointer;
    font-weight: 600;
    color: #0f172a;
}

.sp-export-option:focus-within {
    border-color: #bfdbfe;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.25);
}

.sp-export-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sp-export-actions .dp-btn.is-loading {
    opacity: 0.7;
    cursor: wait;
}

body.sp-export-open {
    overflow: hidden;
}

@media (max-width: 520px) {
    .sp-export-actions {
        flex-direction: column;
    }
}

.tool--social-polish .dp-btn.sp-copy-success {
    background: #ecfdf3;
    border-color: #86efac;
    color: #14532d;
}

.tool--social-polish .dp-btn.sp-copy-failed {
    background: #fef2f2;
    border-color: #fca5a5;
    color: #991b1b;
}

.sp-preview-output {
    display: grid;
    gap: 12px;
}

.sp-preview-text {
    white-space: normal;
}

.sp-pack-container {
    display: grid;
    gap: 10px;
}

.sp-pack-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sp-pack-tab {
    border: 1px solid #d1d5db;
    border-radius: 999px;
    padding: 6px 12px;
    background: #ffffff;
    font-weight: 700;
    cursor: pointer;
}

.sp-pack-tab.is-active {
    background: #eef3ff;
    border-color: #b8c7ff;
    color: #0f1b2d;
}

.sp-pack-panel {
    display: none;
    gap: 8px;
}

.sp-pack-panel.is-active {
    display: grid;
}

.sp-pack-hooks {
    display: grid;
    gap: 6px;
}

.sp-pack-hooks h4 {
    margin: 0;
    font-size: 0.95rem;
    color: #0f172a;
}

.sp-pack-section {
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #ffffff;
    padding: 10px;
    display: grid;
    gap: 8px;
}

.sp-pack-section summary {
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: #0f172a;
}

.sp-pack-section summary::-webkit-details-marker {
    display: none;
}

.sp-pack-text {
    margin: 0;
    white-space: pre-wrap;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 8px 10px;
}

.sp-history-summary {
    display: grid;
    gap: 2px;
}

.sp-history-plus-note {
    font-size: 0.9rem;
}

.sp-history-synced {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 8px;
    border-radius: 999px;
    border: 1px solid #cbd5f5;
    background: #eef3ff;
    color: #1e293b;
    font-size: 0.8rem;
    width: fit-content;
}

@media (max-width: 720px) {
    .sp-style-row {
        grid-template-columns: 1fr;
    }
    .sp-output-reset {
        margin-left: 0;
    }
}

.sp-history-list {
    display: grid;
    gap: 8px;
}

.sp-history-item {
    padding: 8px 10px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #f8fafc;
}

/* ---- Grocery (v2) ---- */
.gl-form {
    display: grid;
    gap: 14px;
}

.rr-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 12px;
    row-gap: 12px;
    align-items: start;
}

.tool--grocery .gl-form .rr-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 12px;
    row-gap: 12px;
    align-items: start;
}

.tool--grocery .gl-form .rr-grid-2 > div {
    min-width: 0;
    display: grid;
    gap: 6px;
}

@media (max-width: 720px) {
    .rr-grid-2 {
        grid-template-columns: 1fr;
    }
}

.rr-addrow {
    display: flex;
    gap: 12px;
    align-items: center;
}

.rr-addrow input {
    flex: 1;
    min-width: 0;
}

.rr-addrow button {
    flex: 0 0 auto;
}

.rr-grid-2-narrow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 12px;
    row-gap: 12px;
    align-items: start;
}

.rr-share-row {
    display: flex;
    gap: 12px;
    align-items: center;
}

.rr-share-row input {
    flex: 1;
    min-width: 0;
}

.rr-share-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    flex: 0 0 auto;
}

.rr-actions {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
}

.rr-workout .rr-row {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 16px;
}

.rr-workout .rr-row > * {
    min-width: 0;
}

.rr-workout input,
.rr-workout select,
.rr-workout textarea {
    width: 100%;
    box-sizing: border-box;
}

@media (max-width: 820px) {
    .rr-workout .rr-row {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .rr-share-row {
        flex-direction: column;
        align-items: stretch;
    }
    .rr-share-actions {
        width: 100%;
        justify-content: flex-end;
        flex-wrap: wrap;
    }
}

.gl-add-row {
    display: grid;
    gap: 10px;
    grid-template-columns: 1fr auto;
    align-items: end;
}

.gl-add-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.gl-total-line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    border: 1px dashed #e5e7eb;
    border-radius: 10px;
    padding: 8px 10px;
    background: #f9fafb;
}

.gl-items {
    display: grid;
    gap: 8px;
}

.gl-item-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 6px 14px rgba(15, 23, 42, 0.05);
}

.gl-item-row.is-checked {
    opacity: 0.6;
}

.gl-item-left {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.gl-item-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.gl-item-name {
    font-weight: 700;
    color: #0f172a;
}

.gl-item-last {
    font-size: 0.85rem;
    color: #6b7280;
    font-weight: 600;
}

.gl-item-row.is-checked .gl-item-name {
    text-decoration: line-through;
}

.gl-item-right {
    display: flex;
    align-items: center;
    gap: 8px;
}

.gl-pill {
    padding: 4px 8px;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    background: #f8fafc;
    font-weight: 700;
    color: #0f172a;
}

.gl-price {
    font-weight: 800;
    color: #0f172a;
}

.gl-item-remove {
    border: 1px solid #e5e7eb;
    background: #fff;
    color: #64748b;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease, border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.gl-item-row:hover .gl-item-remove,
.gl-item-row:focus-within .gl-item-remove {
    opacity: 1;
    pointer-events: auto;
}

.gl-item-remove:hover {
    border-color: #fecaca;
    color: #b91c1c;
    background: #fef2f2;
}

.gl-usuals {
    margin-top: 6px;
}

.gl-common-adds {
    margin-top: 6px;
    display: grid;
    gap: 6px;
}

.gl-common-adds-label {
    font-size: 12px;
    color: #6b7280;
}

.gl-common-adds-chips {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 2px;
}

.gl-usuals-row {
    display: grid;
    gap: 6px;
    margin-top: 6px;
}

.gl-usuals-chips {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 2px;
}

.gl-usuals-chip {
    border: 1px solid #d1d5db;
    border-radius: 999px;
    padding: 6px 10px;
    background: #fff;
    cursor: pointer;
    font-weight: 700;
    white-space: nowrap;
}

.gl-usuals-chip:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.gl-momentum {
    margin-top: 8px;
    display: grid;
    gap: 4px;
}

.gl-momentum-line,
.gl-momentum-link {
    margin: 0;
}

.gl-empty {
    padding: 12px;
    border: 1px dashed #e5e7eb;
    border-radius: 10px;
    color: #6b7280;
    background: #f9fafb;
}

.gl-suggestions {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 10px 12px;
    background: #f9fafb;
    display: grid;
    gap: 6px;
}

.gl-sugg-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.gl-sugg-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.gl-sugg-chip {
    border: 1px solid #d1d5db;
    border-radius: 999px;
    padding: 6px 10px;
    background: #fff;
    cursor: pointer;
    font-weight: 700;
}

@media (max-width: 720px) {
    .gl-item-remove {
        opacity: 1;
        pointer-events: auto;
    }
}

.gl-share-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
    align-items: center;
}

.gl-share-buttons {
    display: flex;
    gap: 8px;
    align-items: center;
}

.gl-share-locked {
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 10px;
    background: #f9fafb;
}

.gl-share-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-top: 6px;
    flex-wrap: wrap;
}

.gl-status-error {
    color: #b91c1c;
    font-weight: 700;
}

.cd-smart-block {
    display: grid;
    gap: 8px;
}

@media (max-width: 640px) {
    .gl-add-row {
        grid-template-columns: 1fr;
    }

    .gl-share-row {
        grid-template-columns: 1fr;
    }
}

/* ---- Workout Log (client-only) ---- */
.wl-section-title {
    font-weight: 800;
    margin: 14px 0 10px;
    color: #0f172a;
}

.wl-sets {
    margin-top: 6px;
}

.wl-table {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #ffffff;
    overflow: hidden;
}

.wl-row {
    display: grid;
    grid-template-columns: 2.2fr 0.7fr 0.7fr 0.9fr 0.6fr auto;
    gap: 8px;
    align-items: center;
    padding: 10px 12px;
}

.wl-head {
    background: #f3f4f6;
    font-weight: 800;
    color: #111827;
    font-size: 0.95rem;
}

.wl-item {
    border-top: 1px solid #e5e7eb;
    background: #fff;
}

.wl-item input,
.wl-item select {
    width: 100%;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 8px 10px;
    font-size: 1rem;
    background: #fff;
}

.wl-remove {
    border: 1px solid #fee2e2;
    background: #fef2f2;
    color: #b91c1c;
    border-radius: 10px;
    padding: 8px 10px;
    font-weight: 800;
    cursor: pointer;
    width: 100%;
}

.wl-actions {
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.wl-add {
    margin-top: 10px;
}

.wl-recent {
    margin-top: 6px;
}

.wl-list {
    display: grid;
    gap: 10px;
}

.wl-empty {
    color: #6b7280;
    font-size: 0.95rem;
    padding: 8px 2px;
}

.wl-item-row {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #fff;
}

.wl-item-title {
    font-weight: 800;
    color: #0f172a;
    margin-bottom: 4px;
}

.wl-item-sub {
    color: #6b7280;
    font-size: 0.95rem;
}

.wl-item-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-shrink: 0;
}

.wl-small {
    border: 1px solid #d7e3ff;
    background: #eef3ff;
    color: #1a46c7;
    border-radius: 10px;
    padding: 8px 10px;
    font-weight: 800;
    cursor: pointer;
}

.wl-small.danger {
    border-color: #fee2e2;
    background: #fef2f2;
    color: #b91c1c;
}

.wl-detail-card {
    margin-top: 12px;
    border: 1px dashed #d1d5db;
    border-radius: 14px;
    background: #f8fafc;
    padding: 12px;
}

.wl-detail-header {
    font-weight: 900;
    color: #0f172a;
    margin-bottom: 8px;
}

.wl-template-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}

.wl-template-lock {
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 8px 10px;
    background: #f8fafc;
}

.wl-storage-note {
    margin-top: 4px;
}

@media (max-width: 720px) {
    .wl-card {
        padding: 10px;
    }
}

@media (max-width: 900px) {
    .workout-set-table thead {
        display: none;
    }
    .workout-set-table table {
        border-collapse: separate;
    }
    .workout-set-table tbody {
        display: grid;
        gap: 10px;
    }
    .workout-set-table .wl-set-row {
        display: grid;
        gap: 8px;
        border: 1px solid #e5e7eb;
        border-radius: 12px;
        padding: 10px;
    }
    .workout-set-table td {
        padding: 0;
    }
}

.wl-detail-close {
    border: 1px solid #e5e7eb;
    background: #fff;
    border-radius: 10px;
    padding: 8px 10px;
    font-weight: 800;
    cursor: pointer;
    margin-bottom: 10px;
}

.wl-detail-rows {
    display: grid;
    gap: 8px;
}

.wl-detail-row {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 10px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #fff;
}

.wl-detail-ex {
    font-weight: 800;
    color: #0f172a;
}

.wl-detail-meta {
    color: #475569;
    font-weight: 700;
}

/* ---- Grocery List (new UI) ---- */
.gl-primary-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.5rem;
}

#gl-status {
    min-height: 1.1rem;
    margin-bottom: 0.25rem;
}

.gl-items {
    margin-top: 1rem;
    display: grid;
    gap: 10px;
}

.gl-item-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 10px;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #fff;
}

.gl-item-label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
    color: #0f172a;
}

.gl-item-checkbox {
    width: 18px;
    height: 18px;
}

.gl-item-name {
    word-break: break-word;
}

.gl-item-meta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #475569;
}

.gl-item-price {
    font-weight: 700;
    color: #0f172a;
}

.gl-action-row {
    margin-top: 0.75rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.gl-status-error {
    color: #b91c1c;
    font-weight: 700;
}

.gl-status-success {
    color: #15803d;
    font-weight: 700;
}

/* ---- Grocery List (shared) ---- */
.gl-share {
    margin-top: 10px;
    padding: 12px;
    border: 1px dashed #d1d5db;
    border-radius: 14px;
    background: #f8fafc;
}

.gl-share-label {
    font-weight: 800;
    color: #0f172a;
    margin-bottom: 8px;
}

.gl-share-row {
    display: flex;
    gap: 10px;
    align-items: center;
}

.gl-share-input {
    flex: 1;
    min-width: 0;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 10px 12px;
    background: #fff;
    white-space: nowrap;
    overflow-x: auto;
    font-family: "SFMono-Regular", Menlo, Consolas, monospace;
}

.gl-share-help {
    margin-top: 6px;
    color: #475569;
    font-size: 0.9rem;
}

.gl-share-feedback {
    margin-top: 4px;
    color: #0f172a;
    font-weight: 700;
    font-size: 0.9rem;
}

.gl-controls {
    margin-top: 12px;
}

.gl-note {
    color: #6b7280;
    font-size: 0.95rem;
    margin-bottom: 10px;
}

.gl-add-row {
    display: flex;
    gap: 10px;
    margin-top: 10px;
}

.gl-add-input {
    flex: 1;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 10px 12px;
    background: #fff;
    font-size: 1rem;
}

.gl-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 10px;
    align-items: center;
}

.gl-list {
    margin-top: 14px;
    display: grid;
    gap: 12px;
}

.gl-section {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #ffffff;
    overflow: hidden;
}

.gl-section-head {
    background: #f3f4f6;
    padding: 10px 12px;
    font-weight: 900;
    color: #0f172a;
}

.gl-item {
    display: grid;
    grid-template-columns: 28px 1fr 36px;
    align-items: center;
    gap: 10px;
    padding: 12px;
    border-top: 1px solid #e5e7eb;
}

.gl-item.checked .gl-text {
    color: #6b7280;
    text-decoration: line-through;
}

.gl-check {
    width: 20px;
    height: 20px;
}

.gl-text {
    font-weight: 700;
    color: #0f172a;
    word-break: break-word;
}

.gl-del {
    border: 1px solid #e5e7eb;
    background: #fff;
    border-radius: 10px;
    height: 34px;
    width: 34px;
    font-weight: 900;
    cursor: pointer;
    color: #475569;
}

.gl-del:hover {
    border-color: #fecaca;
    color: #b91c1c;
    background: #fef2f2;
}

.gl-empty {
    color: #6b7280;
    font-size: 0.98rem;
    padding: 6px 2px;
}

/* ---- Countdown ---- */
.cd-share {
    margin-top: 10px;
    padding: 12px;
    border: 1px dashed #d1d5db;
    border-radius: 14px;
    background: #f8fafc;
}

.cd-share-label {
    font-weight: 900;
    color: #0f172a;
    margin-bottom: 8px;
}

.cd-share-row {
    display: flex;
    gap: 10px;
    align-items: center;
}

.cd-share-input {
    flex: 1;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 10px 12px;
    background: #fff;
}

.cd-card {
    margin-top: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    padding: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    box-shadow: 0 10px 22px rgba(17, 24, 39, 0.06);
}

.cd-title {
    font-weight: 900;
    color: #0f172a;
    font-size: 1.15rem;
    margin-bottom: 10px;
}

.cd-big {
    font-weight: 1000;
    font-size: 1.8rem;
    color: #111827;
    margin-bottom: 8px;
    letter-spacing: -0.02em;
}

.cd-small {
    color: #475569;
    font-weight: 700;
}

.cd-actions {
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.cd-section-title {
    margin-top: 16px;
    font-weight: 900;
    color: #0f172a;
}

.cd-items {
    margin-top: 10px;
    display: grid;
    gap: 10px;
}

.cd-empty {
    color: #6b7280;
    font-size: 0.98rem;
    padding: 6px 2px;
}

.cd-item {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #fff;
}

.cd-item.active {
    border-color: #a5b4fc;
    box-shadow: 0 0 0 1px #dbeafe inset;
}

.cd-item-title {
    font-weight: 900;
    color: #0f172a;
    margin-bottom: 4px;
}

.cd-item-sub {
    color: #6b7280;
    font-size: 0.95rem;
    font-weight: 700;
}

.cd-item-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-shrink: 0;
}

@media (max-width: 640px) {
    .tools-shell {
        margin-top: 12px;
        padding: 0 16px;
    }

    .tools-hero,
    .tool-detail {
        padding: 20px 18px;
    }

    .tool-card {
        min-height: auto;
    }

    .wl-row {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .wl-head {
        display: none;
    }

    .wl-item input:nth-child(1),
    .wl-item select:nth-child(5),
    .wl-item button:nth-child(6) {
        grid-column: 1 / -1;
    }

    .rr-input-row {
        flex-direction: column;
        align-items: stretch;
    }

    .wl-actions {
        position: sticky;
        bottom: 0;
        padding: 10px 0 0;
        background: #fff;
        border-top: 1px solid #e5e7eb;
    }

    .wl-item-row {
        flex-direction: column;
        align-items: stretch;
    }

    .wl-item-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .gl-share-row,
    .gl-add-row {
        flex-direction: column;
        align-items: stretch;
    }

    .gl-actions {
        position: sticky;
        bottom: 0;
        padding: 10px 0 0;
        background: #fff;
        border-top: 1px solid #e5e7eb;
    }

    .cd-share-row {
        flex-direction: column;
        align-items: stretch;
    }

    .cd-actions {
        position: sticky;
        bottom: 0;
        padding: 10px 0 0;
        background: #fff;
        border-top: 1px solid #e5e7eb;
    }

    .cd-item {
        flex-direction: column;
        align-items: stretch;
    }

    .cd-item-actions {
        width: 100%;
        justify-content: flex-start;
        flex-wrap: wrap;
    }

    .dp-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .dp-surface {
        padding: 18px 16px;
    }

    .dp-actions-row {
        justify-content: flex-start;
    }

    .hc-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .hc-surface {
        padding: 18px 16px;
    }
}

/* Intent onboarding banner */

.rr-intent-banner {
    margin-bottom: 12px;
    border-radius: 12px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: #f9fafb;
    padding: 8px 12px;
    font-size: 14px;
}

.rr-intent-banner__toggle {
    border: none;
    background: transparent;
    padding: 0;
    margin: 0;
    font-size: 13px;
    color: #4b5563;
    cursor: pointer;
    text-align: left;
}

.rr-intent-banner__toggle:hover {
    color: #111827;
}

.rr-intent-banner__inner {
    margin-top: 8px;
    display: none;
}

.rr-intent-banner--expanded .rr-intent-banner__inner {
    display: block;
}

.rr-intent-banner__title {
    font-weight: 600;
    margin-bottom: 4px;
    color: #111827;
}

.rr-intent-banner__desc {
    margin-bottom: 8px;
    color: #4b5563;
}

.rr-intent-banner__options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 6px;
}

.rr-intent-banner__option-wrapper {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.rr-intent-banner__option {
    border-radius: 999px;
    border: 1px solid rgba(37, 99, 235, 0.2);
    padding: 6px 12px;
    font-size: 13px;
    background: #ffffff;
    color: #1d4ed8;
    cursor: pointer;
}

.rr-intent-banner__option--last {
    border-style: solid;
}

.rr-intent-banner__option:hover {
    background: #eff6ff;
}

.rr-intent-banner__option-note {
    font-size: 12px;
    color: #6b7280;
}

.rr-intent-banner__confirm {
    font-size: 12px;
    color: #047857;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.rr-intent-banner__confirm--visible {
    opacity: 1;
}

@media (max-width: 640px) {
.rr-intent-banner__options {
        flex-direction: column;
    }
}

/* Resume tool: mode strip and helper */

.resume-mode-strip {
    margin-bottom: 8px;
    padding: 8px 10px;
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.4);
    background: #f9fafb;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.resume-mode-strip__label {
    font-size: 13px;
    font-weight: 500;
    color: #111827;
}

.resume-mode-strip__options {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.resume-mode-strip__option {
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.8);
    padding: 4px 10px;
    font-size: 12px;
    background: #ffffff;
    color: #111827;
    cursor: pointer;
}

.resume-mode-strip__option:hover {
    background: #eef2ff;
    border-color: #4f46e5;
}

.resume-mode-strip__option--active {
    background: #4f46e5;
    color: #ffffff;
    border-color: #4f46e5;
}

.resume-helper-text {
    margin-bottom: 8px;
    font-size: 13px;
    color: #4b5563;
}

/* Resume tool: session summary */

.resume-session-summary {
    margin-top: 12px;
    margin-bottom: 4px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px dashed #d1d5db;
    background: #f8fafc;
    font-size: 13px;
}

.resume-session-summary__main {
    color: #111827;
}

.resume-session-summary__note {
    margin: 2px 0 0;
    font-size: 12px;
}

.resume-session-summary__btn {
    border-radius: 10px;
    border: 1px solid var(--tools-accent);
    padding: 10px 14px;
    font-size: 0.95rem;
    cursor: pointer;
    background: var(--tools-accent);
    color: #ffffff;
    font-weight: 700;
    min-width: 160px;
}

.resume-session-summary__btn--secondary {
    background: #ffffff;
    border: 1px solid #cad5ff;
    color: var(--tools-accent);
}

.resume-session-summary__btn--secondary:hover {
    background: #eef2ff;
}

.resume-bullets-output-card {
    margin-top: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f9fafb;
    padding: 16px 18px;
}

.resume-bullets-output-header {
    margin-bottom: 10px;
}

.resume-bullets-output-text {
    margin: 0;
    padding: 12px 14px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #ffffff;
    font-size: 1rem;
    line-height: 1.5;
    white-space: pre-wrap;
    font-family: inherit;
    color: #111827;
}

.resume-bullets-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 16px;
    flex-wrap: wrap;
}

@media (max-width: 640px) {
    .resume-mode-strip {
        flex-direction: column;
        align-items: flex-start;
    }

    .resume-bullets-actions {
        justify-content: stretch;
    }

    .resume-bullets-actions .resume-session-summary__btn {
        flex: 1 1 100%;
    }
}

/* Habit tool: guided setup and summary */

.habit-guided {
    margin-bottom: 12px;
}

.habit-guided__setup {
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.4);
    background: #f9fafb;
    padding: 10px 12px;
}

.habit-guided__title {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    margin-bottom: 4px;
}

.habit-guided__body {
    font-size: 13px;
    color: #4b5563;
    margin-bottom: 8px;
}

.habit-guided__suggestions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 8px;
}

.habit-guided__chip {
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.8);
    padding: 4px 10px;
    font-size: 12px;
    background: #ffffff;
    color: #111827;
    cursor: pointer;
}

.habit-guided__chip--active,
.habit-guided__chip:hover {
    background: #eef2ff;
    border-color: #4f46e5;
}

.habit-guided__primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: none;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    background: #4f46e5;
    color: #ffffff;
}

.habit-tracking-summary {
    margin-top: 8px;
    padding: 8px 10px;
    border-radius: 10px;
    background: #ecfdf3;
    border: 1px solid rgba(22, 163, 74, 0.18);
}

.habit-tracking-summary__main {
    font-size: 13px;
    color: #166534;
}

@media (max-width: 640px) {
    .habit-guided__suggestions {
        flex-direction: column;
        align-items: stretch;
    }
}

/* Trip Planner guided intro and snapshot */

.trip-guided {
    margin-bottom: 14px;
}

.trip-guided__intro {
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.4);
    background: #f9fafb;
    padding: 12px 14px;
}

.trip-guided__title {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    margin-bottom: 4px;
}

.trip-guided__body {
    font-size: 13px;
    color: #4b5563;
    margin-bottom: 10px;
}

.trip-guided__row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 10px;
}

.trip-guided__label {
    flex: 1 1 180px;
    font-size: 12px;
    color: #374151;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.trip-guided__input,
.trip-guided__select {
    border-radius: 8px;
    border: 1px solid rgba(148, 163, 184, 0.8);
    padding: 6px 8px;
    font-size: 13px;
    background: #ffffff;
}

.trip-guided__vibe {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.trip-guided__vibe-btn {
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.9);
    padding: 4px 10px;
    font-size: 12px;
    background: #ffffff;
    color: #111827;
    cursor: pointer;
}

.trip-guided__vibe-btn--active,
.trip-guided__vibe-btn:hover {
    background: #eef2ff;
    border-color: #4f46e5;
}

.trip-guided__primary {
    margin-top: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: none;
    padding: 6px 16px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    background: #4f46e5;
    color: #ffffff;
}

.trip-guided__summary {
    margin-top: 8px;
    padding: 8px 10px;
    border-radius: 10px;
    background: #ecfdf3;
    border: 1px solid rgba(22, 163, 74, 0.18);
}

.trip-guided__summary-main {
    font-size: 13px;
    color: #166534;
}

.tool--trip-planner .trip-quick-card {
    border-radius: 0.75rem;
    border: 1px solid var(--rr-border-subtle, #e5e7eb);
    background-color: #ffffff;
    padding: 1rem 1.25rem;
    margin-bottom: 1.25rem;
}

.tool--trip-planner .trip-quick-card .form-text {
    font-size: 0.875rem;
    color: #6b7280;
}

.tool--trip-planner .trip-vibe-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.5rem;
    margin-bottom: 0.75rem;
}

.tool--trip-planner .trip-vibe-button.is-active {
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.25);
    border-color: var(--tools-accent);
    background: #eef2ff;
    color: #0f172a;
}

.tool--trip-planner .trip-quick-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.75rem;
    margin-top: 0.75rem;
}

.tool--trip-planner .trip-section {
    margin-top: 1.5rem;
}

.tool--trip-planner .trip-section:first-of-type {
    margin-top: 0;
}

.tool--trip-planner .trip-section--snapshot,
.tool--trip-planner .trip-section--snapshot-upsell {
    margin-top: 1.75rem;
}

.tool--trip-planner .trip-budget-table {
    border-radius: 0.75rem;
    border: 1px solid var(--rr-border-subtle, #e5e7eb);
    overflow: hidden;
    background-color: #ffffff;
}

.tool--trip-planner .trip-budget-table table {
    width: 100%;
    border-collapse: collapse;
}

.tool--trip-planner .trip-budget-table th,
.tool--trip-planner .trip-budget-table td {
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid #eef2f7;
}

.tool--trip-planner .trip-budget-table tr:last-child th,
.tool--trip-planner .trip-budget-table tr:last-child td {
    border-bottom: none;
}

.tool--trip-planner .trip-budget-table tbody tr:hover {
    background-color: #f9fafb;
}

.tool--trip-planner .trip-share-card {
    border-radius: 0.75rem;
    border: 1px solid var(--rr-border-subtle, #e5e7eb);
    background-color: #f9fafb;
    padding: 1rem 1.25rem;
}

.tool--trip-planner .trip-share-card .rr-share-link-row {
    flex-wrap: wrap;
    align-items: center;
}

.tool--trip-planner .trip-share-card .rr-share-link-input {
    flex: 1;
    min-width: 240px;
}

.tool--trip-planner .trip-share-card .rr-button-secondary {
    min-width: 120px;
}

.trip-snapshot-inline {
    margin-top: 8px;
    margin-bottom: 8px;
    padding: 8px 10px;
    border-radius: 10px;
    background: #eef2ff;
    border: 1px solid rgba(79, 70, 229, 0.18);
}

.trip-snapshot-inline__title {
    font-size: 13px;
    font-weight: 600;
    color: #111827;
    margin-bottom: 2px;
}

.trip-snapshot-inline__body {
    font-size: 13px;
    color: #4338ca;
}

@media (max-width: 640px) {
    .trip-guided__row {
        flex-direction: column;
    }
}

/* Language tool: guided intro and summaries */

.lang-guided {
    margin-bottom: 12px;
}

.lang-guided__intro {
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.4);
    background: #f9fafb;
    padding: 12px 14px;
}

.lang-guided__title {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    margin-bottom: 4px;
}

.lang-guided__body {
    font-size: 13px;
    color: #4b5563;
    margin-bottom: 10px;
}

.lang-guided__row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 10px;
}

.lang-guided__label {
    flex: 1 1 180px;
    font-size: 12px;
    color: #374151;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.lang-guided__select {
    border-radius: 8px;
    border: 1px solid rgba(148, 163, 184, 0.8);
    padding: 6px 8px;
    font-size: 13px;
    background: #ffffff;
}

.lang-guided__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.lang-guided__chip {
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.9);
    padding: 4px 10px;
    font-size: 12px;
    background: #ffffff;
    color: #111827;
    cursor: pointer;
}

.lang-guided__chip--active,
.lang-guided__chip:hover {
    background: #eef2ff;
    border-color: #4f46e5;
}

.lang-guided__primary {
    margin-top: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: none;
    padding: 6px 16px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    background: #4f46e5;
    color: #ffffff;
}

.lang-guided__summary {
    margin-top: 8px;
    padding: 8px 10px;
    border-radius: 10px;
    background: #ecfdf3;
    border: 1px solid rgba(22, 163, 74, 0.18);
}

.lang-guided__summary-main {
    font-size: 13px;
    color: #166534;
}

.lang-session-summary {
    margin-top: 8px;
    margin-bottom: 8px;
    padding: 8px 10px;
    border-radius: 10px;
    background: #eef2ff;
    border: 1px solid rgba(79, 70, 229, 0.18);
}

.lang-session-summary__main {
    font-size: 13px;
    color: #4338ca;
}

.tool--daily-phrase .tool-card {
    margin-top: 0;
}

.tool--daily-phrase .daily-phrase-quick {
    border-radius: 0.75rem;
    border: 1px solid var(--rr-border-subtle, #e5e7eb);
    background-color: #ffffff;
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
}

.tool--daily-phrase .daily-phrase-quick h2,
.tool--daily-phrase .daily-phrase-quick h3 {
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
    font-weight: 600;
    color: #111827;
}

.tool--daily-phrase .daily-phrase-quick .helper-text {
    margin: 0 0 0.75rem;
    font-size: 0.875rem;
    color: #6b7280;
}

.tool--daily-phrase .daily-phrase-row {
    display: grid;
    gap: 0.75rem;
}

.tool--daily-phrase .form-select,
.tool--daily-phrase .form-control {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    font-family: inherit;
    font-size: 1rem;
    color: #1f2937;
    background: #fff;
}

.tool--daily-phrase .daily-phrase-row--top {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.tool--daily-phrase .daily-phrase-row--focus {
    grid-template-columns: 1fr;
}

.tool--daily-phrase .daily-phrase-focus-buttons {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.5rem;
}

.tool--daily-phrase .daily-phrase-focus-btn {
    width: 100%;
    justify-content: center;
}

.tool--daily-phrase .daily-phrase-focus-btn.is-active {
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.28);
}

.tool--daily-phrase #daily-phrase-submit.is-emphasized {
    box-shadow:
        0 0 0 2px rgba(59, 130, 246, 0.35),
        0 12px 20px rgba(15, 23, 42, 0.22);
}

@media (max-width: 640px) {
    .lang-guided__row {
        flex-direction: column;
    }

    .lang-guided__chips {
        flex-direction: column;
        align-items: stretch;
    }
}

/* Workout log: mode + session layout */

.tool--workout-log .workout-mode {
    margin-top: 1rem;
    margin-bottom: 1.5rem;
    border-radius: 0.75rem;
    border: 1px solid var(--rr-border-subtle, #e5e7eb);
    background-color: #ffffff;
    padding: 1rem 1.25rem;
}

.tool--workout-log .workout-mode__label {
    margin: 0 0 0.25rem;
    font-size: 0.8rem;
    color: #6b7280;
}

.tool--workout-log .workout-mode__title {
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
    font-weight: 600;
    color: #111827;
}

.tool--workout-log .workout-mode__helper {
    margin: 0 0 0.75rem;
    font-size: 0.875rem;
    color: #6b7280;
}

.tool--workout-log .workout-mode__buttons {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 0.5rem;
}

.tool--workout-log .workout-mode-btn {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    text-align: left;
    border-radius: 999px;
    padding: 0.6rem 0.9rem;
    border: 1px solid transparent;
    background-color: #f9fafb;
    font-size: 0.875rem;
}

.tool--workout-log .workout-mode-btn__title {
    font-weight: 600;
    color: #111827;
}

.tool--workout-log .workout-mode-btn__desc {
    margin-top: 0.1rem;
    font-size: 0.8rem;
    color: #6b7280;
}

.tool--workout-log .workout-mode-btn.is-active {
    border-color: #2563eb;
    background-color: #eff6ff;
    box-shadow:
        0 0 0 1px rgba(37, 99, 235, 0.16),
        0 6px 14px rgba(15, 23, 42, 0.14);
}

.tool--workout-log .workout-mode-btn--plus::after {
    content: "Plus";
    margin-left: auto;
    font-size: 0.75rem;
    color: #4b5563;
}

.tool--workout-log .workout-session {
    border-radius: 0.75rem;
    border: 1px solid var(--rr-border-subtle, #e5e7eb);
    background-color: #ffffff;
    padding: 1.25rem 1.5rem;
}

.tool--workout-log .workout-session__header {
    margin-bottom: 0.5rem;
}

.tool--workout-log .workout-session__today {
    margin-top: 0.75rem;
}

.tool--workout-log .workout-set-table {
    margin-top: 0.75rem;
    border-radius: 0.75rem;
    border: 1px solid #eef2f7;
    overflow: hidden;
}

.tool--workout-log .workout-set-table table {
    width: 100%;
    border-collapse: collapse;
}

.tool--workout-log .workout-set-table th,
.tool--workout-log .workout-set-table td {
    padding: 0.45rem 0.6rem;
    border-bottom: 1px solid #f3f4f6;
}

.tool--workout-log .workout-set-table tr:last-child th,
.tool--workout-log .workout-set-table tr:last-child td {
    border-bottom: none;
}

.tool--workout-log .workout-secondary {
    margin-top: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.tool--workout-log .workout-secondary__panel {
    border-radius: 0.75rem;
    border: 1px solid var(--rr-border-subtle, #e5e7eb);
    background-color: #ffffff;
    padding: 0.5rem 1rem;
}

.tool--workout-log .workout-secondary__panel > summary {
    cursor: pointer;
    list-style: none;
    font-weight: 500;
    padding: 0.25rem 0;
}

.tool--workout-log .workout-secondary__body {
    margin-top: 0.5rem;
    padding-bottom: 0.25rem;
}

.tool--workout-log .workout-secondary__panel--plus > summary::after {
    content: "Plus";
    margin-left: 0.5rem;
    font-size: 0.75rem;
    color: #4b5563;
}

.tool--workout-log .workout-secondary__body--upsell {
    font-size: 0.85rem;
}

/* Workout Log refreshed card */

.tool--workout .workout-card {
    max-width: 720px;
    margin: 0 auto 2rem;
    padding: 1.8rem 2rem;
    border-radius: 1.25rem;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.06);
    border: 1px solid #e5e7eb;
    background: #ffffff;
}

.tool--workout .workout-card__header {
    margin-bottom: 1rem;
}

.tool--workout .tool-title {
    margin-bottom: 0.15rem;
}

.tool--workout .tool-subtitle {
    font-size: 0.9rem;
    color: #6b7280;
    margin: 0;
}

.tool--workout .workout-today__label {
    margin: 0.75rem 0 0.25rem;
    font-size: 0.95rem;
    font-weight: 600;
}

.tool--workout .workout-field__label {
    font-size: 0.85rem;
    font-weight: 500;
    margin-bottom: 0.25rem;
}

.tool--workout .workout-feel__chips,
.tool--workout .workout-focus__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.75rem;
}

.tool--workout .chip {
    border-radius: 999px;
    padding: 0.25rem 0.8rem;
    border: 1px solid #e5e7eb;
    background: #f9fafb;
    font-size: 0.8rem;
}

.tool--workout .chip-pill {
    padding-inline: 1rem;
}

.tool--workout .chip.is-active {
    border-color: #2563eb;
    background: #eff6ff;
    color: #1d4ed8;
}

.tool--workout .workout-today__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

@media (max-width: 768px) {
    .tool--workout .workout-today__row {
        grid-template-columns: 1fr;
    }
}

.tool--workout .workout-note {
    margin-bottom: 0.75rem;
}

.tool--workout .workout-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
}

.tool--workout .workout-actions__status {
    font-size: 0.8rem;
}

.tool--workout .workout-status--success {
    color: #15803d;
}

.tool--workout .workout-actions__hint {
    margin: 0;
    font-size: 0.8rem;
    color: #6b7280;
}

.tool--workout .workout-section {
    margin-top: 1rem;
    border-top: 1px solid #f3f4f6;
    padding-top: 0.75rem;
}

.tool--workout .workout-section__summary {
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 600;
    list-style: none;
}

.tool--workout .workout-section__body {
    margin-top: 0.5rem;
}

.tool--workout .workout-plus-strip {
    margin-top: 0.75rem;
    padding: 0.65rem 0.8rem;
    border-radius: 0.75rem;
    background: #f9fafb;
    border: 1px dashed #e5e7eb;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.tool--workout .workout-plus-strip__text {
    margin: 0;
    font-size: 0.8rem;
    color: #4b5563;
}

/* Grocery list: guided wizard + list */

.tool--grocery .grocery-wizard {
    display: flex;
    justify-content: center;
    margin-top: 1.5rem;
}

.tool--grocery .grocery-wizard-card {
    max-width: 640px;
    width: 100%;
    padding: 1.5rem 1.75rem;
}

.tool--grocery .grocery-wizard-header {
    margin-bottom: 1rem;
}

.tool--grocery .grocery-step-indicator {
    display: flex;
    gap: 0.5rem;
    margin: 0 0 1rem;
    padding: 0;
    list-style: none;
}

.tool--grocery .grocery-step-indicator li {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    color: #6b7280;
}

.tool--grocery .grocery-step-indicator li.is-active {
    border-color: #2563eb;
    background-color: #eff6ff;
    color: #1d4ed8;
}

.tool--grocery .grocery-step {
    margin-bottom: 0.75rem;
}

.tool--grocery .grocery-step-title {
    margin: 0 0 0.25rem;
    font-size: 1rem;
    font-weight: 600;
}

.tool--grocery .grocery-step-helper {
    margin: 0 0 0.75rem;
    font-size: 0.875rem;
    color: #6b7280;
}

.tool--grocery .grocery-choice-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.5rem;
}

.tool--grocery .grocery-choice-btn {
    width: 100%;
    justify-content: flex-start;
    text-align: left;
}

.tool--grocery .grocery-choice-btn.is-active,
.tool--grocery .grocery-item-chip.is-active {
    border-color: #2563eb;
    background-color: #eff6ff;
    box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.16);
}

.tool--grocery .grocery-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.tool--grocery .grocery-wizard-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1rem;
}

.tool--grocery .grocery-wizard-plus {
    border-radius: 0.75rem;
    border: 1px dashed #d4d4d8;
    padding: 0.75rem 0.9rem;
}

.tool--grocery .grocery-main {
    margin-top: 1.5rem;
}

.tool--grocery .grocery-main-card {
    padding: 1.5rem 1.75rem;
}

.tool--grocery .grocery-main-header {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    align-items: baseline;
    justify-content: space-between;
}

.tool--grocery .grocery-change-setup {
    padding: 0;
    font-size: 0.875rem;
}

.tool--grocery .grocery-main-summary {
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
}

.tool--grocery .grocery-summary-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background-color: #ecfdf3;
    color: #166534;
    font-size: 0.8rem;
}

.tool--grocery .grocery-add-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.5rem;
}

.tool--grocery .grocery-main-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.tool--grocery .grocery-organize {
    padding: 0.9rem 1rem;
}

.tool--grocery .grocery-plus-upsell {
    border-radius: 0.75rem;
    border: 1px dashed #d4d4d8;
    padding: 0.75rem 0.9rem;
}

.tool--grocery .grocery-share-row {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

@media (min-width: 640px) {
    .tool--grocery .grocery-share-row {
        flex-direction: row;
        align-items: center;
        gap: 0.75rem;
    }
}

/* Countdown tweaks */

.tool--countdown .dh-form {
    gap: 14px;
}

.tool--countdown .dh-form .rr-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 12px;
    row-gap: 12px;
    align-items: start;
}

.tool--countdown .dh-form .rr-grid-2 > div {
    min-width: 0;
    display: grid;
    gap: 6px;
}

@media (max-width: 820px) {
    .tool--countdown .dh-form .rr-grid-2 {
        grid-template-columns: 1fr;
    }
}

.tool--countdown .countdown-card {
    border-radius: 0.75rem;
    border: 1px solid var(--rr-border-subtle, #e5e7eb);
    background-color: #ffffff;
    padding: 1rem 1.25rem;
    margin-top: 0.75rem;
}

.tool--countdown .countdown-card__title {
    margin: 0 0 0.15rem;
    font-size: 1rem;
    font-weight: 600;
}

.tool--countdown .countdown-card__main {
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
    font-weight: 500;
}

.tool--countdown .countdown-card__meta {
    margin: 0 0 0.75rem;
    font-size: 0.85rem;
    color: #6b7280;
}

.tool--countdown .countdown-plan-helper {
    margin: 0.5rem 0 0.25rem;
    font-size: 0.85rem;
    color: #6b7280;
}

.tool--countdown .cd-insight-line {
    margin: 0.35rem 0 0.5rem;
    display: flex;
    gap: 0.5rem;
    align-items: baseline;
    flex-wrap: wrap;
    color: #6b7280;
}

.tool--countdown .cd-momentum {
    margin: 0.35rem 0 0.6rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    color: #6b7280;
}

.tool--countdown .cd-momentum-line {
    margin: 0;
}

.tool--countdown .cd-momentum-link {
    margin: 0;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.tool--countdown .cd-momentum-link a {
    color: #9ca3af;
}

.tool--countdown .rr-list-row.cd-faded {
    opacity: 0.55;
}

.tool--countdown .cd-insight-label {
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #9ca3af;
    font-weight: 600;
}

.tool--countdown .cd-memory-heading {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #9ca3af;
    margin-top: 0.35rem;
    width: 100%;
}

.tool--countdown .cd-smart-output {
    display: grid;
    gap: 0.6rem;
    padding: 0.75rem;
    border-radius: 12px;
    border: 1px solid #e5e7eb;
    background: #ffffff;
}

.tool--countdown .cd-smart-line {
    display: grid;
    gap: 0.35rem;
}

.tool--countdown .cd-smart-label,
.tool--countdown .cd-reflection-label {
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #9ca3af;
    font-weight: 600;
}

.tool--countdown .cd-smart-list {
    margin: 0;
    padding-left: 1.1rem;
    display: grid;
    gap: 0.25rem;
}

.tool--countdown .cd-smart-preview {
    display: grid;
    gap: 0.5rem;
}

.tool--countdown .cd-smart-preview-list {
    margin: 0;
    padding-left: 1.1rem;
    display: grid;
    gap: 0.25rem;
}

.tool--countdown .cd-smart-preview-line {
    margin: 0;
}

.tool--countdown .cd-reflection-card {
    border-radius: 12px;
    border: 1px solid #e5e7eb;
    background: #ffffff;
    padding: 0.75rem;
    display: grid;
    gap: 0.6rem;
}

.tool--countdown .cd-reflection-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.4rem;
}

.tool--countdown .cd-reflection-meaning {
    font-weight: 600;
    margin: 0;
}

.tool--countdown .cd-reflection-grid {
    display: grid;
    gap: 0.5rem;
}

.tool--countdown .cd-reflection-meta {
    font-size: 0.8rem;
    color: #6b7280;
    margin-top: 0.1rem;
}

.tool--countdown .cd-reflection-share {
    font-size: 0.9rem;
    color: #374151;
}

.tool--countdown .cd-memory-section {
    margin-top: 0.75rem;
    display: grid;
    gap: 0.5rem;
}

.tool--countdown .cd-memory-patterns {
    margin: 0;
    padding-left: 1.1rem;
    display: grid;
    gap: 0.35rem;
    color: #374151;
}

.tool--countdown .cd-moment-helper {
    margin: 0 0 0.5rem;
    font-size: 0.85rem;
    color: #6b7280;
}

.tool--countdown .cd-moment-input-row {
    margin-top: 0.35rem;
}

.tool--countdown .cd-moment-input-row .form-control,
.tool--countdown .cd-moment-input-row .dp-btn {
    height: 40px;
}

.tool--countdown .cd-memory-threshold,
.tool--countdown .cd-memory-remaining {
    margin: 0 0 0.5rem;
    font-size: 0.82rem;
    color: #6b7280;
}

.tool--countdown .cd-memory-controls {
    display: flex;
    gap: 12px;
    align-items: center;
    margin: 0 0 0.25rem;
}

.tool--countdown .cd-milestone {
    border-bottom: 1px solid #e5e7eb;
    padding: 0.5rem 0;
}

.tool--countdown .cd-milestone:last-child {
    border-bottom: none;
}

.tool--countdown .cd-milestone-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    cursor: pointer;
    list-style: none;
}

.tool--countdown .cd-milestone-summary::-webkit-details-marker {
    display: none;
}

.tool--countdown .cd-milestone-summary::marker {
    content: "";
}

.tool--countdown .cd-milestone-title {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tool--countdown .cd-milestone-date {
    font-size: 0.8rem;
    color: #6b7280;
    flex: 0 0 auto;
}

.tool--countdown .cd-milestone-body {
    display: grid;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.tool--countdown .cd-milestone-full {
    color: #111827;
}

.tool--countdown .cd-milestone-line {
    display: grid;
    gap: 0.25rem;
}

.tool--countdown .cd-milestone-details {
    margin-top: 0.2rem;
    font-size: 0.85rem;
    color: #6b7280;
}

.tool--countdown .cd-milestone-details summary {
    cursor: pointer;
    color: #6b7280;
}

@media (min-width: 680px) {
    .tool--countdown .cd-reflection-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.tool--countdown .countdown-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.tool--countdown .countdown-clear-btn {
    padding-left: 0;
    padding-right: 0;
}

.tool--countdown .countdown-share {
    margin-top: 0.75rem;
    padding: 0.9rem 1rem;
    border-radius: 0.75rem;
    border: 1px solid var(--rr-border-subtle, #e5e7eb);
    background-color: #ffffff;
}

.tool--countdown .countdown-share__header h3 {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 600;
}

.tool--countdown .countdown-share__header p {
    margin: 0.25rem 0 0;
    font-size: 0.8rem;
}

/* Workout Log: guided session setup */

.workout-guided {
    margin-bottom: 12px;
}

.workout-guided__intro {
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.4);
    background: #f9fafb;
    padding: 12px 14px;
}

.workout-guided__title {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    margin-bottom: 4px;
}

.workout-guided__body {
    font-size: 13px;
    color: #4b5563;
    margin-bottom: 10px;
}

.workout-guided__row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 10px;
}

.workout-guided__label {
    flex: 1 1 180px;
    font-size: 12px;
    color: #374151;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.workout-guided__select {
    border-radius: 8px;
    border: 1px solid rgba(148, 163, 184, 0.8);
    padding: 6px 8px;
    font-size: 13px;
    background: #ffffff;
}

.workout-guided__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.workout-guided__chip {
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.9);
    padding: 4px 10px;
    font-size: 12px;
    background: #ffffff;
    color: #111827;
    cursor: pointer;
}

.workout-guided__chip--active,
.workout-guided__chip:hover {
    background: #eef2ff;
    border-color: #4f46e5;
}

.workout-guided__primary {
    margin-top: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: none;
    padding: 6px 16px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    background: #4f46e5;
    color: #ffffff;
}

.workout-guided__session-header {
    margin-top: 8px;
    padding: 8px 10px;
    border-radius: 10px;
    background: #ecfdf3;
    border: 1px solid rgba(22, 163, 74, 0.18);
}

.workout-guided__session-main {
    font-size: 13px;
    color: #166534;
}

.workout-session-summary {
    margin-top: 12px;
    padding: 10px 12px;
    border-radius: 12px;
    background: #eef2ff;
    border: 1px solid rgba(79, 70, 229, 0.18);
}

.workout-session-summary__main {
    font-size: 13px;
    color: #4338ca;
}

/* Shared banner + pills + summaries for Workout Log */

.rr-banner {
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: #f9fafb;
    border-radius: 12px;
    padding: 10px 12px;
    margin-bottom: 10px;
}

.rr-banner-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.rr-banner-title {
    font-weight: 700;
    color: #0f172a;
}

.rr-banner-body {
    margin-top: 8px;
}

.rr-banner-text {
    margin: 0 0 6px;
    font-size: 13px;
    color: #4b5563;
}

.rr-banner-note {
    margin: 6px 0 0;
    font-size: 12px;
    color: #6b7280;
}

.rr-pill-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.rr-pill-button {
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.9);
    padding: 6px 12px;
    font-size: 13px;
    background: #ffffff;
    color: #111827;
    cursor: pointer;
}

.rr-pill-button--active,
.rr-pill-button:hover {
    background: #eef2ff;
    border-color: #4f46e5;
}

.rr-summary-card {
    margin-top: 0.75rem;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(37, 99, 235, 0.18);
    background: #eef2ff;
}

.rr-summary-title {
    margin: 0 0 4px;
    font-weight: 700;
    color: #111827;
}

.rr-summary-line {
    margin: 0 0 2px;
    font-size: 13px;
    color: #374151;
}

.rr-inline-summary {
    margin-bottom: 0.5rem;
    padding: 8px 10px;
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: #f8fafc;
}

.rr-button-compact {
    padding: 7px 10px;
}

.rr-summary-inline {
    margin-top: 0.5rem;
    padding: 8px 10px;
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: #f8fafc;
}

.rr-summary-line-muted {
    color: #6b7280;
}

/* Countdown card */
.rr-countdown-card {
    background: #f9fafb;
}

.rr-countdown-title {
    font-weight: 700;
    color: #111827;
    margin: 0 0 6px;
}

.rr-countdown-main {
    font-size: 1.8rem;
    font-weight: 700;
    color: #111827;
    margin: 0 0 4px;
}

.rr-countdown-sub {
    margin: 0 0 8px;
    color: #4b5563;
    font-size: 0.95rem;
}

.rr-progress-row {
    display: grid;
    gap: 4px;
}

.rr-progress-track {
    width: 100%;
    height: 8px;
    background: #eef2ff;
    border-radius: 999px;
    overflow: hidden;
}

.rr-progress-bar {
    height: 100%;
    background: #2563eb;
    width: 0%;
    transition: width 0.3s ease;
}

.rr-progress-labels {
    display: flex;
    justify-content: space-between;
    font-size: 0.85rem;
    color: #6b7280;
}

/* Quick setup */
.tool-quick-setup {
    margin-bottom: 1rem;
    border-radius: 10px;
    background: #f7f8fb;
    border: 1px solid #e4e6ed;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.tool-quick-setup-toggle {
    width: 100%;
    padding: 0.6rem 0.9rem;
    background: transparent;
    border: none;
    text-align: left;
    font-size: 0.9rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    border-radius: 10px;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.tool-quick-setup-toggle:hover {
    background: #eef2ff;
}

.tool-quick-setup-toggle-label {
    margin-left: 0.25rem;
    font-weight: 400;
    color: #60657a;
    font-size: 0.85rem;
}

.tool-quick-setup-chevron {
    margin-left: 0.5rem;
    font-size: 0.8rem;
    color: #8b90a5;
}

.tool-quick-setup-body {
    padding: 0.5rem 0.9rem 0.8rem;
    border-top: 1px solid #e4e6ed;
}

.tool-quick-setup-subtitle {
    margin: 0 0 0.5rem;
    font-size: 0.85rem;
    color: #555b70;
}

.tool-quick-setup-options {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.tool-quick-setup-option {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    font-size: 0.85rem;
    color: #1d2130;
}

.tool-quick-setup-option input[type="radio"] {
    margin-right: 0.45rem;
}

.tool-quick-setup-option-main {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-weight: 500;
}

.tool-quick-setup-option-desc {
    padding-left: 1.45rem;
    color: #6b7187;
}

.tool-quick-setup-badge {
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    background: #f3f0ff;
    color: #5a3ffb;
    font-size: 0.7rem;
    font-weight: 600;
}

.tool-quick-setup.is-open .tool-quick-setup-toggle {
    background: var(--tools-accent);
    color: #ffffff;
    font-weight: 600;
    border-radius: 10px 10px 0 0;
    box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.25);
}

.tool-quick-setup.is-open {
    border-color: var(--tools-accent);
    box-shadow: 0 6px 14px rgba(31, 87, 255, 0.12);
}

.tool-quick-setup.is-open .tool-quick-setup-toggle-label {
    color: #e8edff;
}

.tool-quick-setup.is-open .tool-quick-setup-chevron {
    color: #ffffff;
}

@media (max-width: 640px) {
    .workout-guided__row {
        flex-direction: column;
    }

    .workout-guided__chips {
        flex-direction: column;
        align-items: stretch;
    }
}

/* Trip planner */
.tool--trip-planner .trip-wizard {
    display: flex;
    justify-content: center;
    margin-top: 1.5rem;
}

.tool--trip-planner .trip-wizard-card {
    max-width: 720px;
    width: 100%;
    padding: 1.5rem 1.75rem;
}

.tool--trip-planner .trip-wizard-header {
    margin-bottom: 1rem;
}

.tool--trip-planner .trip-step-indicator {
    display: flex;
    gap: 0.5rem;
    margin: 0 0 1rem;
    padding: 0;
    list-style: none;
}

.tool--trip-planner .trip-step-indicator li {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    color: #6b7280;
}

.tool--trip-planner .trip-step-indicator li.is-active {
    border-color: #2563eb;
    background-color: #eff6ff;
    color: #1d4ed8;
}

.tool--trip-planner .trip-step {
    margin-bottom: 0.75rem;
}

.tool--trip-planner .trip-step-title {
    margin: 0 0 0.25rem;
    font-size: 1rem;
    font-weight: 600;
}

.tool--trip-planner .trip-step-helper {
    margin: 0 0 0.75rem;
    font-size: 0.875rem;
    color: #6b7280;
}

.tool--trip-planner .trip-choice-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.5rem;
}

.tool--trip-planner .trip-choice-btn {
    width: 100%;
    justify-content: flex-start;
    text-align: left;
}

.tool--trip-planner .trip-choice-btn.is-active,
.tool--trip-planner .trip-item-chip.is-active {
    border-color: #2563eb;
    background-color: #eff6ff;
    box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.16);
}

.tool--trip-planner .trip-grid-two {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.75rem;
}

.tool--trip-planner .trip-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.tool--trip-planner .trip-wizard-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1rem;
}

.tool--trip-planner .trip-main {
    margin-top: 1.5rem;
}

.tool--trip-planner .trip-main-card {
    padding: 1.5rem 1.75rem;
}

.tool--trip-planner .trip-main-header {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    align-items: baseline;
    justify-content: space-between;
}

.tool--trip-planner .trip-change-setup {
    padding: 0;
    font-size: 0.875rem;
}

.tool--trip-planner .trip-summary-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background-color: #ecfdf3;
    color: #166534;
    font-size: 0.8rem;
    margin-top: 0.5rem;
}

.tool--trip-planner .trip-main-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.tool--trip-planner .trip-section {
    margin-top: 1rem;
}

.tool--trip-planner .trip-section__summary {
    cursor: pointer;
    font-weight: 600;
    list-style: none;
}

.tool--trip-planner .trip-share {
    padding: 0.9rem 1rem;
    border-radius: 0.75rem;
    border: 1px solid #e5e7eb;
    background-color: #ffffff;
}

.tool--trip-planner .trip-share__header h3 {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 600;
}

.tool--trip-planner .trip-share__header p {
    margin: 0.25rem 0 0;
    font-size: 0.8rem;
}

.tool--trip-planner .trip-share__url-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.tool--trip-planner .trip-share__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.tool--trip-planner .trip-snapshot {
    border-top: 1px solid #f3f4f6;
    padding-top: 0.75rem;
}

/* Global Plus modal */

.plus-modal-open {
    overflow: hidden;
}

.plus-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.38);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1200;
}

.plus-modal {
    position: relative;
    max-width: 420px;
    width: 100%;
    margin: 1.5rem;
    padding: 1.5rem 1.75rem 1.5rem;
    border-radius: 1.25rem;
    background: #020617;
    color: #e5e7eb;
    box-shadow: 0 22px 60px rgba(15, 23, 42, 0.75);
}

.plus-modal__close {
    position: absolute;
    top: 0.75rem;
    right: 0.9rem;
    border: none;
    background: transparent;
    color: #9ca3af;
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
}

.plus-modal__title {
    margin: 0 0 0.35rem;
    font-size: 1.1rem;
    font-weight: 700;
    color: #f9fafb;
}

.plus-modal__subtitle {
    margin: 0 0 0.6rem;
    font-size: 0.9rem;
    color: #cbd5f5;
}

.plus-modal__bullets {
    margin: 0 0 0.85rem;
    padding-left: 1.1rem;
    font-size: 0.85rem;
    color: #cbd5f5;
}

.plus-modal__bullets li + li {
    margin-top: 0.15rem;
}

.plus-modal__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin-bottom: 0.6rem;
}

.plus-modal__footnote {
    margin: 0;
    font-size: 0.75rem;
    color: #9ca3af;
}

.plus-modal-overlay[hidden] {
    display: none !important;
}

/* Workout Log refresh */

.tools-shell.tool--workout-log {
    max-width: 1040px;
}

.wl-container {
    background: transparent;
    padding: 0 12px 32px;
}

.wl-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.wl-header__left {
    display: flex;
    align-items: center;
    gap: 14px;
}

.wl-title-wrap {
    display: grid;
    gap: 4px;
}

.wl-title {
    margin: 0;
    font-size: 1.55rem;
    letter-spacing: -0.01em;
    color: #0f172a;
}

.wl-subtitle {
    margin: 0;
    color: #475569;
    font-size: 0.98rem;
}

.wl-pill {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border-radius: 999px;
    font-weight: 700;
    background: #eef3ff;
    color: #1a46c7;
    font-size: 0.9rem;
}

.wl-section-title {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 700;
    color: #0f172a;
}

.wl-sets-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--rr-space-3);
    flex-wrap: wrap;
}

.wl-sets-status {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.9rem;
    color: #475569;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    padding: 4px 10px;
    font-weight: 600;
}

.wl-sets-status .rr-link-button {
    padding: 0;
}

.wl-sets-status.is-error {
    color: #b91c1c;
    background: #fee2e2;
    border-color: #fecaca;
}

.wl-sets-status.is-saving {
    color: #0f172a;
}

.wl-sets-status.is-saving::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: currentColor;
    display: inline-block;
    animation: wl-dot-pulse 0.8s ease-in-out infinite;
}

.wl-sets-status.is-saved {
    color: #166534;
    background: #dcfce7;
    border-color: #bbf7d0;
}

.wl-sets-status.is-pulse {
    animation: wl-status-pulse 0.6s ease-in-out;
}

#wl-sets-inline-status {
    margin: 2px 0 0;
}

.wl-toast {
    position: fixed;
    left: 50%;
    bottom: 28px;
    transform: translateX(-50%);
    background: #111827;
    color: #f8fafc;
    padding: 8px 12px;
    border-radius: 999px;
    font-size: 0.85rem;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.18);
    opacity: 0;
    pointer-events: none;
    z-index: 999;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.wl-toast.is-visible {
    opacity: 1;
    transform: translateX(-50%) translateY(-2px);
}

.wl-movement-picker {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 10px;
    background: #f8fafc;
    display: grid;
    gap: var(--rr-space-2);
}

.wl-movement-picker__row {
    display: flex;
    align-items: center;
    gap: var(--rr-space-2);
    flex-wrap: wrap;
}

.wl-movement-picker__row .rr-input {
    flex: 1 1 220px;
}

.wl-movement-common-row {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 2px;
    -webkit-overflow-scrolling: touch;
}

.wl-movement-common-row .rr-pill-button {
    white-space: nowrap;
}

.wl-movement-empty {
    margin: 0;
}

#wl-sets-empty-inline {
    margin: 0;
}

.workout-set-table tfoot td {
    border-bottom: none;
}

.wl-sets-row {
    display: flex;
    gap: var(--rr-space-2);
    align-items: center;
}

.wl-sets-row .rr-input {
    flex: 1 1 70px;
    min-width: 70px;
}

.wl-movements {
    display: grid;
    gap: var(--rr-space-4);
}

.wl-movement-card {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 12px;
    background: #ffffff;
    display: grid;
    gap: var(--rr-space-3);
}

.wl-movement-header {
    display: flex;
    align-items: center;
    gap: var(--rr-space-2);
    flex-wrap: wrap;
}

.wl-movement-name {
    flex: 1 1 220px;
}

.wl-movement-summary {
    font-size: 0.9rem;
    color: #64748b;
}

.wl-set-selector {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.wl-set-pill {
    border: 1px solid #e5e7eb;
    background: #f8fafc;
    color: #0f172a;
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 0.85rem;
    min-width: 32px;
    text-align: center;
}

.wl-set-pill.is-active {
    background: #1d4ed8;
    border-color: #1d4ed8;
    color: #ffffff;
}


.wl-set-actions-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--rr-space-2);
}

.wl-set-lines {
    display: grid;
    gap: var(--rr-space-2);
}

.wl-set-line {
    display: grid;
    grid-template-columns: minmax(54px, 0.5fr) minmax(70px, 0.7fr) minmax(140px, 1fr) minmax(70px, 0.6fr) auto;
    gap: var(--rr-space-2);
    align-items: center;
}

.wl-set-line.is-hidden {
    display: none;
}

.wl-set-line .rr-input {
    width: 100%;
}

.wl-set-label {
    font-size: 0.85rem;
    color: #64748b;
    font-weight: 600;
}

.wl-note-toggle {
    padding: 4px 6px;
}

.wl-note-toggle.is-active {
    color: #1d4ed8;
}

.wl-set-note {
    grid-column: 1 / -1;
    margin-top: 2px;
}

.wl-set-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.wl-movement-actions {
    display: flex;
    justify-content: flex-start;
    gap: var(--rr-space-2);
    flex-wrap: wrap;
}

.wl-movements-actions {
    display: flex;
    justify-content: flex-start;
}

@media (max-width: 720px) {
    .wl-set-line {
        grid-template-columns: 1fr 1fr;
    }
    .wl-set-label {
        grid-column: 1 / -1;
    }
    .wl-set-line .wl-weight-row {
        grid-column: 1 / -1;
    }
    .wl-note-toggle {
        grid-column: 1 / -1;
        justify-self: flex-start;
    }
    .wl-set-line .wl-notes {
        grid-column: 1 / -1;
    }
    .wl-set-actions {
        grid-column: 1 / -1;
    }
    .wl-set-note {
        grid-column: 1 / -1;
    }
    .wl-set-selector {
        gap: 4px;
    }
    .wl-set-actions-row {
        align-items: flex-start;
    }
}

.wl-weight-row {
    display: flex;
    align-items: center;
    gap: var(--rr-space-2);
}

.wl-weight-row .rr-input {
    flex: 1 1 90px;
    min-width: 90px;
}

.wl-set-actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.wl-common-extra {
    margin-top: var(--rr-space-1);
}

.wl-common-toggle {
    margin-top: var(--rr-space-1);
}

.wl-sets-empty {
    border: 1px dashed #e5e7eb;
    border-radius: 12px;
    padding: 12px;
    background: #f9fafb;
    display: grid;
    gap: var(--rr-space-2);
}

.wl-sets-controls {
    display: flex;
    justify-content: flex-end;
}

.wl-sets-list {
    display: grid;
    gap: var(--rr-space-3);
}

.wl-sets-list:not(.is-detailed) thead {
    display: none;
}

.wl-sets-list:not(.is-detailed) table {
    border-collapse: separate;
    border-spacing: 0;
}

.wl-sets-list:not(.is-detailed) tbody tr {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 10px;
    background: #fff;
}

.wl-sets-list:not(.is-detailed) tbody td {
    border: none;
    padding: 0;
}

.wl-sets-list:not(.is-detailed) tbody td:first-child {
    flex: 1 1 240px;
    min-width: 200px;
}

.wl-sets-list:not(.is-detailed) tbody td:nth-child(2),
.wl-sets-list:not(.is-detailed) tbody td:nth-child(3),
.wl-sets-list:not(.is-detailed) tbody td:nth-child(4),
.wl-sets-list:not(.is-detailed) tbody td:nth-child(5) {
    display: none;
}

.wl-sets-list:not(.is-detailed) tbody td:nth-child(6),
.wl-sets-list:not(.is-detailed) tbody td:nth-child(7) {
    display: flex;
    align-items: center;
}

.wl-sets-list:not(.is-detailed) tbody td:nth-child(6) {
    margin-left: auto;
}

.wl-sets-list:not(.is-detailed) tbody td:last-child {
    margin-left: 0;
}

.wl-sets-list:not(.is-detailed) .wl-exercise,
.wl-sets-list:not(.is-detailed) .wl-sets,
.wl-sets-list:not(.is-detailed) .wl-reps,
.wl-sets-list:not(.is-detailed) .wl-weight,
.wl-sets-list:not(.is-detailed) .wl-unit {
    display: none;
}

.wl-sets-list.is-detailed .wl-set-summary {
    display: none;
}

.wl-sets-list.is-detailed .rr-table-wrapper {
    overflow-x: auto;
}

.wl-sets-list:not(.is-detailed) .wl-set-summary {
    display: block;
    font-weight: 600;
    color: #0f172a;
}

.wl-set-summary {
    margin-top: 4px;
    font-size: 0.95rem;
    color: #475569;
}

.wl-status {
    margin-top: var(--rr-space-2);
}

.wl-feedback {
    margin-top: var(--rr-space-4);
}

.wl-feedback-main {
    font-weight: 600;
}

.wl-feedback-secondary {
    margin-top: var(--rr-space-1);
}

.wl-feedback-disclaimer {
    margin-top: var(--rr-space-1);
}

.wl-remove-row {
    padding: 4px 10px;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    background: #f8fafc;
    color: #475569;
    font-weight: 600;
    text-decoration: none;
}

.wl-remove-row:hover {
    border-color: #cbd5e1;
    background: #f1f5f9;
}

.wl-highlight-note {
    display: grid;
    gap: 4px;
}

.wl-highlight-toggle {
    border: 1px solid #c7d2fe;
    background: #eef2ff;
    color: #1e3a8a;
    border-radius: 999px;
    padding: 4px 8px;
    font-weight: 600;
    font-size: 0.85rem;
    cursor: pointer;
    white-space: nowrap;
}

.wl-highlight-toggle.is-active {
    background: #1e3a8a;
    border-color: #1e3a8a;
    color: #fff;
}

.wl-highlight-toggle:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

tr.is-highlighted-set {
    background: #f8fafc;
}

@keyframes wl-sets-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.25);
        border-color: #93c5fd;
    }
    100% {
        box-shadow: 0 0 0 10px rgba(59, 130, 246, 0);
        border-color: #e2e8f0;
    }
}

@keyframes wl-dot-pulse {
    0% { opacity: 0.35; }
    50% { opacity: 1; }
    100% { opacity: 0.35; }
}

@keyframes wl-status-pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.03); }
    100% { transform: scale(1); }
}

.wl-sets-highlight {
    animation: wl-sets-pulse 0.9s ease-out;
}

.wl-form-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--rr-space-4);
}

.tool--workout-log input[type="date"].form-control {
    appearance: none;
    -webkit-appearance: none;
    text-align: left;
    padding-right: 12px;
    max-width: 100%;
    height: 40px;
}

.tool--workout-log input[type="date"].form-control::-webkit-date-and-time-value {
    text-align: left;
}

.wl-accordion {
    margin-top: 26px;
    display: grid;
    gap: 12px;
}

.wl-accordion__item {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
}

.wl-accordion__item[open] {
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.08);
}

.wl-accordion__summary {
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 16px;
    cursor: pointer;
}

.wl-accordion__summary::-webkit-details-marker {
    display: none;
}

.wl-accordion__title {
    font-weight: 700;
    color: #0f172a;
    margin: 0;
    font-size: 1rem;
}

.wl-accordion__preview {
    color: #6b7280;
    font-size: 0.95rem;
}

.wl-accordion__chevron {
    width: 22px;
    height: 22px;
    border-radius: 999px;
    background: #f1f5f9;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.wl-accordion__chevron::after {
    content: "▾";
    font-size: 0.85rem;
    color: #475569;
}

.wl-accordion__item[open] .wl-accordion__chevron::after {
    content: "▴";
}

.wl-accordion__content {
    padding: 0 16px 16px;
    display: grid;
    gap: 14px;
    border-top: 1px solid #f1f5f9;
}

.wl-subdetails {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f8fafc;
}

.wl-subdetails__summary {
    list-style: none;
    cursor: pointer;
    padding: 10px 12px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.wl-subdetails__summary::-webkit-details-marker {
    display: none;
}

.wl-subdetails__content {
    padding: 0 12px 12px;
    display: grid;
    gap: 10px;
}

.wl-archive-summary {
    display: grid;
    gap: 4px;
}

.wl-archive-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.wl-archive-line {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
}

.wl-archive-date {
    font-weight: 700;
    color: #0f172a;
}

.wl-archive-name {
    color: #475569;
    font-weight: 600;
}

.wl-archive-meta {
    margin: 0;
}

.wl-archive-delete.is-confirm,
.wl-archive-delete-set.is-confirm {
    color: #b91c1c;
}

.wl-archive-table .rr-table th,
.wl-archive-table .rr-table td {
    padding: 8px 10px;
    font-size: 0.92rem;
}

.wl-archive-table {
    position: relative;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
}

.wl-archive-movements {
    display: grid;
    gap: var(--rr-space-3);
}

.wl-archive-movement {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 12px;
    background: #ffffff;
    display: grid;
    gap: var(--rr-space-2);
}

.wl-archive-movement-header {
    font-weight: 600;
    color: #0f172a;
}

.wl-archive-set-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.wl-archive-set-list {
    display: grid;
    gap: var(--rr-space-2);
}

.wl-archive-set.is-hidden {
    display: none;
}

.wl-archive-set-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--rr-space-2);
    color: #0f172a;
}

.wl-archive-set-line .wl-archive-delete-set {
    margin-left: auto;
}

.wl-archive-mobile {
    display: none;
    flex-direction: column;
    gap: 4px;
}

.wl-archive-mobile-name {
    font-weight: 600;
}

.wl-archive-mobile-detail {
    font-size: 0.92rem;
    color: #475569;
}

.wl-archive-mobile-meta {
    font-size: 0.82rem;
    color: #64748b;
}


.wl-featured-block {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 12px;
    background: #f8fafc;
    display: grid;
    gap: 10px;
}

.wl-featured-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.wl-featured-current,
.wl-featured-display {
    display: flex;
    align-items: center;
    gap: 8px;
}

.wl-featured-pill {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    background: #e2e8f0;
    color: #334155;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.wl-featured-panel {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 10px;
    background: #fff;
    display: grid;
    gap: 10px;
}

.wl-featured-source,
.wl-featured-history-select {
    display: grid;
    gap: 6px;
}

.wl-featured-list {
    display: grid;
    gap: 8px;
}

.wl-featured-option {
    text-align: left;
    border: 1px solid #e5e7eb;
    background: #fff;
    border-radius: 10px;
    padding: 8px 10px;
    font-weight: 600;
    cursor: pointer;
}

.wl-featured-option:hover {
    border-color: #cbd5f5;
    background: #f8fafc;
}

.wl-featured-upsell {
    display: grid;
    gap: 4px;
    justify-items: start;
}

.wl-recent-grid {
    display: grid;
    gap: 10px;
}

.wl-recent-card {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 12px;
    background: #fff;
    display: grid;
    gap: 8px;
}

.wl-recent-meta {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: baseline;
}

.wl-recent-date {
    font-weight: 700;
    color: #0f172a;
}

.wl-recent-type {
    font-size: 0.9rem;
    color: #64748b;
}

.wl-recent-preview {
    color: #475569;
    font-size: 0.95rem;
}

.wl-recent-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.wl-recent-tag {
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    color: #334155;
    border-radius: 999px;
    padding: 2px 8px;
    font-size: 0.82rem;
    font-weight: 600;
}

.wl-recent-actions {
    display: flex;
    justify-content: flex-end;
}

.wl-empty-state {
    border: 1px dashed #e5e7eb;
    border-radius: 12px;
    padding: 12px;
    background: #f8fafc;
    display: grid;
    gap: 4px;
}

.wl-empty-title {
    margin: 0;
    font-weight: 700;
    color: #0f172a;
}

.wl-more-links {
    margin-top: 18px;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    font-size: 0.95rem;
}

.wl-more-links a {
    color: #1d4ed8;
    text-decoration: none;
    font-weight: 600;
}

.wl-more-label {
    font-weight: 700;
    color: #0f172a;
}

.wl-segmented-nav {
    margin: 0;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    overflow: hidden;
    background: #fff;
    max-width: 100%;
    padding: 4px;
    position: sticky;
    top: 12px;
    z-index: 5;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);
}

.wl-segment {
    padding: 6px 14px;
    text-decoration: none;
    font-weight: 700;
    font-size: 0.95rem;
    color: #475569;
    border-right: 1px solid #e5e7eb;
    text-align: center;
}

.wl-segment:last-child {
    border-right: none;
}

.wl-segment.is-active {
    background: #0f172a;
    color: #fff;
}

.past-actions {
    align-items: baseline;
}

.wl-progress-stat {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 0;
}

.wl-progress-stat__value {
    font-size: 1.6rem;
    font-weight: 700;
    color: #0f172a;
}

.wl-progress-stat__label {
    color: #6b7280;
    font-size: 0.95rem;
}

.wl-progress-list {
    display: grid;
    gap: 6px;
    margin-top: 0;
    color: #334155;
}

.wl-progress-bullets {
    margin: 8px 0 0;
    padding-left: 18px;
    color: #475569;
}

.wl-plus-note {
    display: flex;
    align-items: center;
    gap: var(--rr-space-2);
}

#wl-progress-photos-card .rr-field-group {
    display: grid;
    gap: var(--rr-space-2);
}

#wl-photo-limit-note {
    margin-top: 0;
}

.wl-public-grid {
    display: grid;
    gap: 6px;
    margin-top: 8px;
    color: #334155;
}

.wl-preview-list {
    margin: 10px 0 0;
    padding-left: 18px;
    color: #475569;
}

.wl-friends-top {
    margin-bottom: 0;
}

.wl-input-row {
    display: flex;
    align-items: center;
    gap: var(--rr-space-2);
    flex-wrap: wrap;
}

.wl-input-row input {
    flex: 1 1 200px;
    min-width: 200px;
}

.wl-friends-meta {
    margin-top: 0;
    display: grid;
    gap: 4px;
}

.wl-friend-chip-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.wl-friend-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    border-radius: 999px;
    border: 1px solid #c7d2fe;
    background: #eef2ff;
    color: #1e3a8a;
    font-size: 0.9rem;
    font-weight: 600;
}

.wl-friend-chip-close {
    border: none;
    background: transparent;
    cursor: pointer;
    font-weight: 700;
    color: inherit;
}

.wl-friend-grid {
    display: grid;
    gap: 12px;
}

.wl-share-preview {
    border: 1px dashed #e5e7eb;
    background: #f8fafc;
    color: #475569;
    padding: 8px 10px;
    border-radius: 10px;
    margin-top: 8px;
}

.wl-plus-note {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
}

.wl-plus-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    background: #0f172a;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.wl-plus-text {
    font-size: 0.92rem;
    color: #475569;
}

.wl-friend-card {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 12px;
    background: #fff;
    display: grid;
    gap: 8px;
}

.wl-friend-label {
    font-weight: 700;
    color: #0f172a;
}

.wl-friend-stats {
    display: grid;
    gap: 4px;
    color: #475569;
    font-size: 0.95rem;
}

.wl-friend-plus {
    font-size: 0.9rem;
    color: #334155;
}

.wl-friend-link {
    color: #1d4ed8;
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border-radius: 10px;
    border: 1px solid #e5e7eb;
    background: #f8fafc;
    width: fit-content;
}

.wl-friend-link:hover {
    background: #eef2f7;
}

.wl-friend-error {
    color: #b91c1c;
    font-size: 0.95rem;
}

.wl-featured-history {
    border-top: 1px solid #e5e7eb;
    padding-top: 8px;
    display: grid;
    gap: 6px;
    margin-top: 8px;
}

.wl-featured-history__title {
    font-weight: 700;
    font-size: 0.9rem;
    color: #0f172a;
}

.wl-featured-history__list {
    display: grid;
    gap: 4px;
}

.wl-featured-history__item {
    font-size: 0.9rem;
    color: #475569;
}

@media (max-width: 720px) {
    .wl-input-row {
        align-items: stretch;
    }
}

.wl-sticky {
    position: fixed;
    left: 50%;
    bottom: 18px;
    transform: translateX(-50%);
    background: rgba(15, 23, 42, 0.9);
    color: #e5e7eb;
    border-radius: 14px;
    padding: 8px 10px;
    display: flex;
    align-items: center;
    gap: 12px;
    box-shadow: 0 14px 28px rgba(15, 23, 42, 0.28);
    z-index: 40;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.wl-sticky__actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.wl-sticky .btn {
    border-radius: 12px;
    padding: 8px 11px;
}

.wl-sticky .dp-btn {
    padding: 8px 12px;
}

.wl-sticky__status {
    font-weight: 700;
    font-size: 0.95rem;
}

.wl-sticky__secondary {
    color: #cbd5f5;
    padding: 6px 8px;
}

.wl-sticky__secondary:hover {
    color: #fff;
}

.wl-sticky__collapse {
    border: none;
    background: rgba(255, 255, 255, 0.08);
    color: #cbd5f5;
    border-radius: 10px;
    padding: 6px 8px;
    cursor: pointer;
}

.wl-sticky__collapse:hover {
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
}

.wl-sticky-pill {
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 40;
}

.wl-sticky-pill button {
    border: 1px solid #e2e8f0;
    background: #fff;
    color: #0f172a;
    border-radius: 999px;
    padding: 8px 12px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
    cursor: pointer;
}

.wl-pill-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #10b981;
    display: inline-block;
}

.wl-pill-text {
    font-weight: 700;
    font-size: 0.95rem;
}

/* Resume Improver refresh */

.tool--resume .tools-shell {
    max-width: 1040px;
}

.rb-shell {
    padding: 0 12px 48px;
}

.rb-header {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    margin-bottom: 12px;
}

.rb-header__left {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rb-title-wrap {
    display: grid;
    gap: 4px;
}

.rb-title {
    margin: 0;
    font-size: 1.55rem;
    color: #0f172a;
    letter-spacing: -0.01em;
}

.rb-subtitle {
    margin: 0;
    font-size: 0.98rem;
    color: #475569;
}

.rb-form {
    display: grid;
    gap: 18px;
}

.rb-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
    padding: 24px;
}

.rb-primary-card {
    display: grid;
    gap: 18px;
}

.rb-mode {
    display: grid;
    gap: 8px;
}

.rb-mode__label {
    margin: 0;
    font-weight: 700;
    color: #0f172a;
}

.rb-mode__segments {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 10px;
}

.rb-segment {
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #f8fafc;
    padding: 12px 14px;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.rb-segment:hover {
    border-color: #cbd5e1;
}

.rb-segment.is-active {
    border-color: #6366f1;
    background: #eef2ff;
    box-shadow: 0 6px 16px rgba(99, 102, 241, 0.12);
}

.rb-segment__title {
    display: block;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 4px;
}

.rb-segment__desc {
    display: block;
    color: #6b7280;
    font-size: 0.93rem;
}

.rb-field {
    display: grid;
    gap: 6px;
}

.rb-field label {
    font-weight: 700;
    color: #0f172a;
}

.rb-example {
    border: 1px dashed #e2e8f0;
    border-radius: 12px;
    padding: 10px 12px;
    background: #f8fafc;
}

.rb-example__summary {
    cursor: pointer;
    font-weight: 700;
    color: #0f172a;
}

.rb-example__summary::-webkit-details-marker {
    display: none;
}

.rb-example__content {
    margin-top: 8px;
    color: #475569;
    font-size: 0.94rem;
    white-space: pre-wrap;
}

.rb-hint {
    margin: 0;
    color: #6b7280;
    font-size: 0.93rem;
}

.rb-actions {
    display: flex;
    justify-content: flex-start;
    gap: 10px;
    margin-top: 4px;
}

.rb-actions .btn {
    min-width: 200px;
}

.rb-options {
    padding: 0;
}

.rb-options__summary {
    padding: 14px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    gap: 10px;
    flex-wrap: wrap;
}

.rb-options__summary::-webkit-details-marker {
    display: none;
}

.rb-options__title {
    font-weight: 700;
    color: #0f172a;
}

.rb-options__subtitle {
    color: #6b7280;
    font-size: 0.95rem;
}

.rb-options.is-locked .rb-options__summary {
    cursor: not-allowed;
}

.rb-options.is-locked .rb-options__title,
.rb-options.is-locked .rb-options__subtitle {
    color: #8b95a7;
}

.rb-options.is-locked .rb-options__status {
    color: #6b7280;
}

.rb-options__summary-left {
    display: grid;
    gap: 2px;
}

.rb-options__summary-right {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.rb-options__status {
    font-weight: 700;
    color: #475569;
    font-size: 0.95rem;
}

.rb-options__content {
    padding: 0 18px 18px;
    display: grid;
    gap: 16px;
    border-top: 1px solid #f1f5f9;
}

.rb-inline {
    margin: 6px 0 0;
    font-weight: 700;
    color: #0f172a;
}

.rb-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
}

.rb-options__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 16px;
    row-gap: 12px;
    align-items: end;
}

.rb-options__grid .rb-field {
    min-width: 0;
}

.rb-options__grid .rr-input {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

#rb-target-role {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    box-sizing: border-box;
}

.rb-options__grid .rb-toggle {
    justify-self: end;
    align-self: end;
    text-align: right;
}

@media (max-width: 720px) {
    .rb-options__grid {
        grid-template-columns: 1fr;
    }
    .rb-options__grid .rb-toggle {
        justify-self: flex-start;
        text-align: left;
    }
}

.rb-toggle {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}

@media (max-width: 720px) {
    .rb-toggle {
        justify-content: flex-start;
    }
}

.rb-history {
    padding: 0;
}

.rb-history__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 8px;
}

.rb-history__item {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 10px 12px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    background: #f8fafc;
}

.rb-history__main {
    display: grid;
    gap: 6px;
    min-width: 0;
    flex: 1;
}

.rb-history__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.rb-history__time {
    color: #6b7280;
    font-size: 0.9rem;
    font-weight: 600;
}

.rb-history__block {
    display: grid;
    gap: 4px;
}

.rb-history__label {
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
    font-weight: 700;
}

.rb-history__lines {
    display: grid;
    gap: 2px;
    color: #0f172a;
    font-size: 0.93rem;
}

.rb-history__meta {
    display: grid;
    gap: 4px;
    color: #64748b;
    font-size: 0.9rem;
}

.rb-history__meta-line {
    line-height: 1.35;
}

.rb-history__title {
    margin: 0;
    font-weight: 700;
    color: #0f172a;
}

.rb-history__actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

@media (max-width: 720px) {
    .rb-history__item {
        flex-direction: column;
        align-items: stretch;
    }
    .rb-history__actions {
        justify-content: flex-start;
    }
}

.rb-history__actions .rb-btn-ghost {
    padding: 6px 10px;
    font-size: 0.9rem;
    position: relative;
}

.rb-toast {
    position: absolute;
    top: -28px;
    right: 0;
    background: #0f172a;
    color: #fff;
    font-size: 0.78rem;
    padding: 4px 8px;
    border-radius: 8px;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity 0.2s ease, transform 0.2s ease;
    pointer-events: none;
    white-space: nowrap;
}

.rb-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.rb-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rb-chip {
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    color: #0f172a;
    padding: 8px 12px;
    border-radius: 999px;
    font-weight: 700;
    cursor: pointer;
}

.rb-chip.is-active {
    background: #e0e7ff;
    border-color: #6366f1;
}

.rb-locked {
    border: 1px dashed #e2e8f0;
    border-radius: 12px;
    padding: 12px;
    background: #f9fafb;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.rb-locked__title {
    font-weight: 700;
    color: #0f172a;
}

.rb-locked__subtitle {
    color: #6b7280;
    font-size: 0.95rem;
}

.switch {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 24px;
}

.switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #e5e7eb;
    transition: 0.2s;
    border-radius: 999px;
}

.slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    transition: 0.2s;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.16);
}

.switch input:checked + .slider {
    background-color: #4f46e5;
}

.switch input:checked + .slider:before {
    transform: translateX(20px);
}

.rb-output {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f8fafc;
    padding: 14px;
    white-space: pre-wrap;
    line-height: 1.55;
    color: #0f172a;
    font-size: 0.98rem;
}

.rb-output-footer {
    margin-top: 10px;
    font-size: 0.92rem;
    color: #64748b;
}

.rb-output-footer .rb-inline {
    font-weight: 600;
    color: #475569;
    margin: 4px 0 0;
}

.rb-output-footer a {
    color: #475569;
    font-weight: 600;
}

.rb-results__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
}

.rb-results__title {
    font-weight: 800;
    margin: 0;
    color: #0f172a;
}

.rb-results__subtitle {
    margin: 2px 0 0;
    color: #6b7280;
    font-size: 0.95rem;
}

.rb-results__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.rb-btn-ghost {
    border: 1px solid #e2e8f0;
    background: #fff;
    padding: 8px 12px;
    border-radius: 10px;
    font-weight: 700;
    color: #0f172a;
    cursor: pointer;
}

.rb-refine {
    margin-top: 16px;
    padding-top: 6px;
    border-top: 1px solid #f1f5f9;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.rb-refine__label {
    font-weight: 700;
    color: #111827;
}

.rb-refine__actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.rb-refine__note {
    font-weight: 600;
    color: #475569;
    font-size: 0.9rem;
}

.rb-sticky {
    position: fixed;
    left: 50%;
    bottom: 18px;
    transform: translateX(-50%);
    background: rgba(15, 23, 42, 0.9);
    color: #e5e7eb;
    border-radius: 14px;
    padding: 8px 10px;
    display: flex;
    align-items: center;
    gap: 10px;
    box-shadow: 0 14px 28px rgba(15, 23, 42, 0.28);
    z-index: 30;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.rb-sticky__status {
    font-weight: 700;
    font-size: 0.95rem;
}

.rb-sticky__actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.rb-sticky .btn {
    border-radius: 12px;
    padding: 8px 11px;
}

.rb-sticky__collapse {
    border: none;
    background: rgba(255, 255, 255, 0.08);
    color: #cbd5f5;
    border-radius: 10px;
    padding: 6px 8px;
    cursor: pointer;
}

.rb-sticky-pill {
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 30;
}

.rb-sticky-pill button {
    border: 1px solid #e2e8f0;
    background: #fff;
    color: #0f172a;
    border-radius: 999px;
    padding: 8px 12px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
    cursor: pointer;
}

@media (max-width: 1024px) and (pointer: coarse) {
    .rb-sticky-pill,
    .wl-sticky-pill {
        display: none !important;
    }
    .rb-sticky__collapse[id$="-collapse"],
    .wl-sticky__collapse[id$="-collapse"],
    .wl-sticky__collapse[data-action="collapse-sticky"] {
        display: none !important;
    }
}

@media (max-width: 768px) {
    .rb-sticky-pill,
    .wl-sticky-pill {
        display: none !important;
    }
    .rb-sticky__collapse[id$="-collapse"],
    .wl-sticky__collapse[id$="-collapse"],
    .wl-sticky__collapse[data-action="collapse-sticky"] {
        display: none !important;
    }
}

.rb-accordion__chevron {
    width: 22px;
    height: 22px;
    border-radius: 999px;
    background: #f1f5f9;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.rb-accordion__chevron::after {
    content: "▾";
    font-size: 0.85rem;
    color: #475569;
}

.rb-options[open] .rb-accordion__chevron::after {
    content: "▴";
}

@media (max-width: 720px) {
    .rb-header {
        flex-direction: column;
        align-items: flex-start;
    }
    .rb-results__head {
        flex-direction: column;
        align-items: flex-start;
    }
    .rb-actions {
        width: 100%;
    }
    .rb-actions .btn {
        width: 100%;
    }
    .rb-sticky {
        width: calc(100% - 24px);
        border-radius: 16px;
        justify-content: space-between;
    }
}

/* Trip Planner refresh */

.tools-shell.tool--trip-planner {
    --unsaved-bar-h: 0px;
}

.tp-container {
    max-width: 1120px;
    margin: 20px auto 72px;
    padding: 0 8px calc(32px + var(--unsaved-bar-h, 0px) + env(safe-area-inset-bottom));
}

#trip-planner-tool {
    overflow-x: hidden;
}

#trip-planner-tool,
#trip-planner-tool * {
    box-sizing: border-box;
}

#trip-planner-tool * {
    max-width: 100%;
}

.tool--trip-planner .rb-sticky {
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
    min-height: 52px;
    touch-action: manipulation;
    bottom: calc(18px + env(safe-area-inset-bottom));
}

.tool--trip-planner .rb-sticky__actions {
    flex-wrap: wrap;
}

.tool--trip-planner .rb-sticky__collapse {
    min-width: 32px;
    min-height: 32px;
    touch-action: manipulation;
}

.tool--trip-planner .rb-sticky-pill button {
    padding: 8px 10px;
    min-height: 36px;
    touch-action: manipulation;
}

.tool--trip-planner .rb-sticky-pill {
    bottom: calc(16px + env(safe-area-inset-bottom));
}

.tool--trip-planner .rb-sticky-pill__icon {
    font-size: 0.9rem;
    line-height: 1;
}

.tp-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 10px;
}

.tp-header__left {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.tp-header__actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.tp-title-wrap {
    display: grid;
    gap: 4px;
}

.tp-title {
    margin: 0;
    font-size: 1.55rem;
    letter-spacing: -0.01em;
    color: #0f172a;
}

.tp-subtitle {
    margin: 0;
    color: #475569;
    line-height: 1.5;
    font-weight: 500;
    font-size: 0.98rem;
}

.tp-card {
    background: var(--tools-card);
    border: 1px solid var(--tools-border);
    border-radius: 20px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
    padding: 20px 22px;
}

.tp-primary {
    display: grid;
    gap: 16px;
}

.tp-dashboard-stack {
    display: grid;
    gap: 12px;
}

.tp-topline {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.tp-microcopy {
    margin: 0;
    color: #64748b;
    font-size: 0.92rem;
    text-align: right;
}

.tp-grid {
    display: grid;
    gap: 16px;
}

.tp-transport,
.tp-advanced {
    margin-top: 8px;
}

.tool--trip-planner .tp-grid--inputs {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    column-gap: 12px;
    row-gap: 16px;
    align-items: start;
}

.tp-field {
    display: grid;
    gap: 10px;
    min-width: 0;
}

.tp-field--full,
.tp-field--wide {
    grid-column: 1 / -1;
}

.tp-field--half {
    grid-column: span 3;
}

.tp-field--third {
    grid-column: span 2;
}

.tp-field label {
    font-weight: 700;
    color: #0f172a;
}

.tp-chips {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.tool--trip-planner.quick-add-on #trip-advanced-fields,
.tool--trip-planner.quick-add-on #tp-optional-details,
.tool--trip-planner.quick-add-on #tp-optional-toggle {
    display: none !important;
}

@supports selector(:has(*)) {
    #tp-setup-form:has(#tp-quick-add-toggle:checked) #trip-advanced-fields,
    #tp-setup-form:has(#tp-quick-add-toggle:checked) #tp-optional-details,
    #tp-setup-form:has(#tp-quick-add-toggle:checked) #tp-optional-toggle {
        display: none !important;
    }
}

.tool--trip-planner #tp-optional-details .tp-chips {
    margin-top: 12px;
}

#tp-details-body {
    padding-bottom: 16px;
}

#tp-details-body .tp-chips {
    margin: 12px 0;
}

.tp-chip-label {
    font-weight: 600;
    color: #475569;
}

.tp-chip-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.tool--trip-planner .tp-chips {
    gap: 12px;
    align-items: flex-start;
}

.tool--trip-planner .tp-chip-row {
    gap: 10px;
}

.tp-chips--style .rb-chip {
    background: #f8fafc;
}

.tool--trip-planner input[type="date"].form-control {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    display: block;
    -webkit-appearance: none;
}

.tp-summary-pill {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border-radius: 999px;
    background: #f0fdf4;
    color: #166534;
    font-weight: 600;
    font-size: 0.9rem;
}

.tp-details-summary {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 6px;
}

.tp-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    margin-top: 4px;
}

.tp-actions .btn {
    min-width: 170px;
}

.tp-outcomes {
    border-top: 1px solid #f1f5f9;
    padding-top: 12px;
    display: grid;
    gap: 14px;
}

.tp-block__title {
    font-weight: 700;
    color: #0f172a;
}

.tp-reality {
    background: linear-gradient(135deg, #f8fafc, #f1f5f9);
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 12px 14px;
}

.tp-reality__title {
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 6px;
}

.tp-reality__line {
    margin: 0;
    color: #334155;
}

.tp-timeline {
    border: 1px dashed #e2e8f0;
    border-radius: 12px;
    padding: 12px 14px;
    background: #ffffff;
}


.tp-timeline__list {
    margin: 6px 0 0;
    padding-left: 0;
    list-style: none;
    color: #475569;
    display: grid;
    gap: 4px;
}

.tp-timeline__empty {
    margin: 8px 0 0;
    color: #475569;
    font-size: 0.95rem;
}

.tp-timeline__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 0;
}

.tp-timeline__label {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    color: #0f172a;
    font-weight: 600;
}

.tp-timeline__item.is-done span {
    text-decoration: line-through;
    color: #64748b;
}

.tp-timeline__item.is-critical span {
    color: #b45309;
    font-weight: 600;
}

.tp-timeline__action {
    flex-shrink: 0;
}

.tp-confidence__micro {
    color: #166534;
    font-weight: 600;
    font-size: 0.92rem;
}

.tp-confidence {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px 14px;
    background: #f8fafc;
    display: grid;
    gap: 10px;
}

.tp-confidence__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.tp-confidence__meta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.tp-confidence__score {
    font-weight: 700;
    color: #0f172a;
}

.tp-confidence__why {
    border: none;
    background: transparent;
    color: #2563eb;
    font-weight: 700;
    cursor: pointer;
    padding: 0;
}

.tp-confidence__why-panel {
    border: 1px dashed #e2e8f0;
    border-radius: 12px;
    padding: 10px 12px;
    background: #ffffff;
    color: #475569;
}

.tp-confidence__why-panel p {
    margin: 0;
}

.tp-confidence__ready {
    color: #166534;
    font-weight: 600;
    font-size: 0.95rem;
}

.tp-toast {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 8px 12px;
    background: #f8fafc;
    color: #0f172a;
    font-weight: 600;
    font-size: 0.9rem;
    justify-self: flex-start;
}

.tp-confidence__label {
    font-weight: 700;
    color: #0f172a;
}

.tp-confidence__bar {
    width: 100%;
    height: 10px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}

.tp-confidence__fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #34d399, #22c55e);
    width: 50%;
    transition: width 0.2s ease;
}

.tp-confidence__indicators {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.tp-confidence__indicator {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 12px;
    background: #eef2ff;
    color: #1f2937;
    font-weight: 600;
    font-size: 0.92rem;
}

.tp-confidence__indicator.is-ok {
    background: #fef9c3;
    color: #854d0e;
}

.tp-confidence__indicator.is-low {
    background: #fee2e2;
    color: #991b1b;
}

.tp-next-card {
    border: 1px solid #0f172a;
    border-radius: 16px;
    padding: 16px 18px;
    background: #ffffff;
    display: grid;
    gap: 10px;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.08);
}

.tp-next-card__reason {
    margin: 0;
    color: #475569;
    font-size: 1rem;
}

.tp-next-card__tip {
    margin: 0;
    color: #64748b;
    font-size: 0.95rem;
}

.tp-next-card__actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.tp-popup-blocked {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 6px;
}

.tp-popup-blocked__link {
    color: #2563eb;
    font-weight: 600;
    text-decoration: none;
}

.tp-next-secondary {
    padding: 10px 16px;
    font-size: 0.95rem;
}

.tp-save-line {
    color: #64748b;
    font-size: 0.92rem;
}

.tp-win-strip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-top: 8px;
    border-top: 1px dashed #e2e8f0;
    color: #64748b;
    font-size: 0.9rem;
}

.tp-next-cta {
    padding: 12px 18px;
    font-size: 1rem;
}

.tp-next-card__link {
    color: #2563eb;
    font-weight: 700;
    text-decoration: none;
}

.tp-steps {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px 14px;
    background: #ffffff;
    display: grid;
    gap: 10px;
}

.tp-steps__list {
    display: grid;
    gap: 10px;
}

.tp-step {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #ffffff;
}

.tp-step.is-active {
    border-color: #0f172a;
    box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.08);
}

.tp-step__info {
    display: grid;
    gap: 4px;
}

.tp-step__title {
    font-weight: 700;
    color: #0f172a;
}

.tp-step__meta {
    color: #64748b;
    font-size: 0.9rem;
}

.tp-step__description {
    color: #64748b;
    font-size: 0.9rem;
}

.tp-step__label {
    font-size: 0.8rem;
    color: #64748b;
    font-weight: 600;
}

.tp-step__select {
    max-width: 220px;
}

.tp-step__actions {
    display: grid;
    justify-items: end;
    gap: 8px;
}

.tp-step__status-menu {
    position: relative;
}

.tp-step__status-menu > summary {
    list-style: none;
}

.tp-step__status-menu > summary::-webkit-details-marker,
.tp-step__status-menu > summary::marker {
    display: none;
}

.tp-step__buttons {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

.tp-step:hover .tp-step__buttons,
.tp-step:focus-within .tp-step__buttons {
    opacity: 1;
    pointer-events: auto;
}

@media (hover: none) {
    .tp-step__buttons {
        opacity: 1;
        pointer-events: auto;
    }
}

.tp-step__status {
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    color: #0f172a;
    padding: 6px 10px;
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.78rem;
    cursor: pointer;
}

.tp-step__status-options {
    position: absolute;
    right: 0;
    top: calc(100% + 6px);
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 6px;
    display: grid;
    gap: 4px;
    min-width: 160px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
    z-index: 6;
}

.tp-step__status-option {
    border: none;
    background: transparent;
    text-align: left;
    padding: 6px 10px;
    border-radius: 8px;
    font-size: 0.85rem;
    cursor: pointer;
    color: #0f172a;
}

.tp-step__status-option:hover,
.tp-step__status-option:focus {
    background: #f1f5f9;
}

.tp-step__status-menu.is-disabled .tp-step__status {
    cursor: default;
    opacity: 0.6;
}

.tp-step__status-menu.is-disabled > summary {
    pointer-events: none;
}

.tp-step__select.is-hidden {
    display: none;
}

.tp-step__status.is-progress {
    background: #fef3c7;
    border-color: #fde68a;
    color: #92400e;
}

.tp-step__status.is-done {
    background: #dcfce7;
    border-color: #bbf7d0;
    color: #166534;
}

.tp-step__status.is-research {
    background: #e0f2fe;
    border-color: #bae6fd;
    color: #0369a1;
}

.tp-step__review {
    font-size: 0.78rem;
    padding: 4px 10px;
}

.tp-step__booked {
    border: none;
    background: transparent;
    color: #2563eb;
    font-weight: 600;
    font-size: 0.82rem;
    cursor: pointer;
    padding: 0;
}

.tp-step__research {
    border: none;
    background: transparent;
    color: #0f766e;
    font-weight: 600;
    font-size: 0.82rem;
    cursor: pointer;
    padding: 0;
}

.tp-step__research.is-active {
    color: #134e4a;
}

.tp-checklist {
    margin-top: 12px;
    border: 1px dashed #e2e8f0;
    border-radius: 12px;
    padding: 12px;
    background: #f8fafc;
    display: grid;
    gap: 10px;
}

.tp-checklist__title {
    font-weight: 700;
    color: #0f172a;
}

.tp-checklist__list {
    margin: 0;
    padding-left: 18px;
    color: #475569;
    display: grid;
    gap: 4px;
}

.tp-notes {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px 14px;
    background: #ffffff;
    display: grid;
    gap: 10px;
}

.tool--trip-planner .tp-notes .rr-input {
    margin: 0 -14px;
    border-left: none;
    border-right: none;
    border-radius: 0;
}

.tool--trip-planner #trip-results + details[data-share-box] {
    margin-top: -4px;
}

.tp-reflection {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px 14px;
    background: #ffffff;
    display: grid;
    gap: 8px;
}

.tp-reflection__prompt {
    margin: 0;
    color: #475569;
}

.tp-reflection__chips .rb-chip {
    background: #f8fafc;
}

.tp-reflection__note {
    margin: 0;
    color: #0f172a;
    font-weight: 600;
}

.tp-win {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px 14px;
    background: #ffffff;
    display: grid;
    gap: 6px;
}

.tp-win--compact {
    padding: 10px 12px;
    border-style: dashed;
}

.tp-win__title {
    font-weight: 700;
    color: #0f172a;
}

.tp-win__text {
    margin: 0;
    color: #475569;
}

.tp-win__actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.tp-win__status {
    color: #166534;
    font-weight: 600;
}

.tp-results {
    margin-top: 12px;
    display: grid;
    gap: 12px;
}

.tp-booking {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px 14px;
    background: #ffffff;
    display: grid;
    gap: 10px;
}

.tp-booking-table {
    display: grid;
    gap: 8px;
}

.tp-booking-row {
    display: grid;
    grid-template-columns: minmax(120px, 1.3fr) minmax(140px, 1fr) minmax(120px, 1fr) minmax(120px, 1fr);
    gap: 10px;
    align-items: center;
}

.tp-booking-head {
    font-weight: 700;
    color: #64748b;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.tp-booking-label {
    font-weight: 600;
    color: #0f172a;
}

.tp-booking-input {
    max-width: 140px;
    text-align: right;
}

.tp-booking-select {
    max-width: 160px;
}

.tp-booking-select-stack {
    display: grid;
    gap: 6px;
}

.tp-booking-select-group {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.tp-booking-select--compact {
    max-width: 140px;
}

.tp-booking-vehicle {
    display: flex;
    justify-content: flex-start;
}

.tp-booking-row.is-booked .tp-booking-label {
    color: #166534;
}

.tp-booking-row.is-progress .tp-booking-label {
    color: #b45309;
}

.tp-booking-row.is-priority {
    border-radius: 10px;
    background: #fff7ed;
    box-shadow: inset 0 0 0 1px #fdba74;
}

.tp-booking-row.is-focus {
    border-radius: 10px;
    background: #eff6ff;
    animation: tp-focus 1.4s ease;
}

@keyframes tp-focus {
    0% {
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4);
    }
    70% {
        box-shadow: 0 0 0 6px rgba(59, 130, 246, 0.15);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0);
    }
}

.tp-agenda {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px 14px;
    background: #ffffff;
    display: grid;
    gap: 12px;
}

.tp-agenda__head {
    display: grid;
    gap: 4px;
}

.tp-agenda__subtitle {
    margin: 0;
    color: #64748b;
    font-size: 0.95rem;
}

.tp-agenda__list {
    display: grid;
    gap: 10px;
}

.tp-stage-card {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 10px 12px;
    background: #ffffff;
    display: grid;
    gap: 6px;
}

.tp-stage-card.is-active {
    border-color: #0f172a;
    box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.08);
}

.tp-stage__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.tp-stage__title {
    font-weight: 700;
    color: #0f172a;
}

.tp-stage__badge {
    font-size: 0.78rem;
    padding: 4px 8px;
    border-radius: 999px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background: #e2e8f0;
    color: #475569;
}

.tp-stage__badge.is-progress {
    background: #fef3c7;
    color: #92400e;
}

.tp-stage__badge.is-done {
    background: #dcfce7;
    color: #166534;
}

.tp-stage__action {
    margin: 0;
    color: #475569;
    font-weight: 600;
}

.tp-stage__btn {
    justify-self: flex-start;
}

.tp-accordion {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
}

.tp-accordion__summary {
    padding: 14px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    gap: 10px;
}

.tp-accordion__summary::-webkit-details-marker {
    display: none;
}

.tp-accordion__title {
    font-weight: 700;
    color: #0f172a;
}

.tp-accordion__preview {
    color: #6b7280;
    font-size: 0.95rem;
    margin-top: 2px;
}

.tp-accordion__content {
    padding: 0 16px 16px;
    display: grid;
    gap: 12px;
    border-top: 1px solid #f1f5f9;
}

.tp-research-summary {
    margin: 6px 0 12px;
}

.tp-research-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 10px;
}

.tp-research-stack {
    display: grid;
    gap: 12px;
    margin-bottom: 16px;
}

.tp-research-tab {
    padding: 6px 12px;
    border-radius: 999px;
    border: 1px solid #e2e8f0;
    text-decoration: none;
    color: #0f172a;
    font-weight: 600;
    background: #ffffff;
}

.tp-research-tab.is-active {
    background: #0f172a;
    color: #ffffff;
    border-color: #0f172a;
}

.tp-research-tab.is-locked {
    color: #6b7280;
    background: #f8fafc;
    border-color: #e2e8f0;
}

.tp-research-hint {
    margin: 0;
    color: #64748b;
    font-size: 0.95rem;
}

.tp-research-controls {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin: 0;
}

.tp-research-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    color: #0f172a;
}

.tp-research-sticky {
    position: sticky;
    top: 12px;
    z-index: 3;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 10px 12px;
    margin-bottom: 12px;
}

.tp-research-sticky__inner {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.tp-origin-callout {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    padding: 10px 12px;
    border-radius: 12px;
    background: #fff7ed;
    color: #92400e;
    font-weight: 600;
    margin: 0;
}

.tp-origin-callout__copy {
    font-weight: 600;
}

.tp-flight-flex {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin: 0 0 16px;
}

.tp-flight-shift {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin: 0;
}

.tp-shift-line {
    margin: 0;
    color: #475569;
    font-size: 0.92rem;
}

.tp-shift-note {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin: 0;
    color: #64748b;
    font-size: 0.92rem;
}

.tp-precision {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin: 0 0 12px;
}

.tp-precision__note {
    margin: 0;
    color: #64748b;
    font-size: 0.9rem;
}

.tp-plus-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
}

.tp-plus-summary {
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 18px 18px;
    background: #f8fafc;
    display: grid;
    gap: 12px;
}

.tp-plus-summary__title {
    margin: 0;
    font-weight: 700;
    color: #0f172a;
    font-size: 1.05rem;
}

.tp-plus-summary__purpose {
    margin: 0;
    color: #475569;
    font-size: 0.95rem;
}

.tp-plus-missing {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.9rem;
    color: #92400e;
    font-weight: 600;
}

.tp-fast-track-focus {
    display: grid;
    gap: 8px;
}

.tp-fast-track-focus__label {
    font-size: 0.8rem;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.tp-fast-track-focus__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tp-fast-track-pill {
    padding: 6px 12px;
    border-radius: 999px;
    border: 1px solid #e2e8f0;
    text-decoration: none;
    color: #0f172a;
    font-weight: 600;
    background: #ffffff;
}

.tp-fast-track-pill.is-active {
    background: #0f172a;
    color: #ffffff;
    border-color: #0f172a;
}

.tp-plus-details {
    display: grid;
    gap: 6px;
    color: #475569;
    font-size: 0.92rem;
}

.tp-plus-details summary {
    list-style: none;
    cursor: pointer;
    font-weight: 600;
    color: #0f172a;
}

.tp-plus-details summary::-webkit-details-marker {
    display: none;
}

.tp-plus-details__body {
    color: #64748b;
}

.tp-fast-track-switch {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    padding: 4px;
    background: #ffffff;
}

.rr-hidden {
    display: none !important;
}

.rr-tabs {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    padding: 4px;
    background: #ffffff;
}

.rr-tab {
    border: none;
    background: transparent;
    padding: 6px 12px;
    border-radius: 999px;
    font-weight: 600;
    color: #0f172a;
    cursor: pointer;
}

.rr-tab.is-active {
    background: #0f172a;
    color: #ffffff;
}

.tp-fast-track-toggle {
    border: none;
    background: transparent;
    padding: 6px 12px;
    border-radius: 999px;
    font-weight: 600;
    color: #0f172a;
    cursor: pointer;
}

.tp-fast-track-toggle.is-active {
    background: #0f172a;
    color: #ffffff;
}

.tp-plus-locked {
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 16px;
    background: #ffffff;
    display: grid;
    gap: 10px;
}

.tp-plus-tab {
    padding: 6px 12px;
    border-radius: 999px;
    border: 1px solid #e2e8f0;
    text-decoration: none;
    color: #0f172a;
    font-weight: 600;
    background: #ffffff;
}

.tp-plus-tab.is-active {
    background: #0f172a;
    color: #ffffff;
    border-color: #0f172a;
}

.tp-plus-block {
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 14px 16px;
    background: #ffffff;
    display: grid;
    gap: 12px;
    margin: 0;
}

.tp-plus-block__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.tp-plus-block__title {
    margin: 0;
    font-weight: 700;
    color: #0f172a;
    font-size: 1.05rem;
}

.tp-plus-block__subtitle {
    margin: 2px 0 0;
    color: #64748b;
    font-size: 0.92rem;
}

.tp-step-grid {
    display: grid;
    gap: 12px;
}

.tp-step-card {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px 14px;
    background: #ffffff;
    display: grid;
    gap: 8px;
}

.tp-step-card.is-disabled {
    opacity: 0.75;
}

.tp-step-card__meta {
    font-size: 0.82rem;
    font-weight: 600;
    color: #64748b;
}

.tp-step-card__title {
    font-weight: 700;
    color: #0f172a;
}

.tp-step-card__desc {
    margin: 0;
    color: #64748b;
    font-size: 0.9rem;
}

.tp-step-card__actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.tp-step-card__tips {
    font-size: 0.85rem;
    font-weight: 600;
    color: #475569;
    text-decoration: none;
}

.tp-step-card__hint {
    font-size: 0.84rem;
    color: #92400e;
    font-weight: 600;
}

.tp-step-card--backup {
    gap: 10px;
}

.tp-backup-summary {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 10px 12px;
    background: #f8fafc;
    display: grid;
    gap: 6px;
}

.tp-backup-summary__label {
    font-size: 0.8rem;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.tp-backup-summary__text {
    color: #0f172a;
    font-weight: 600;
}

.tp-backup-summary__link {
    color: #2563eb;
    font-weight: 600;
    text-decoration: none;
}

.tp-backup-details {
    display: grid;
    gap: 10px;
}

.tp-backup-details__summary {
    list-style: none;
    cursor: pointer;
    display: grid;
    gap: 6px;
}

.tp-backup-details__summary::-webkit-details-marker {
    display: none;
}

.tp-backup-details__summary span {
    display: block;
}

.tp-backup-panel {
    display: grid;
    gap: 10px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px;
    background: #ffffff;
}

.tp-backup-field {
    display: grid;
    gap: 6px;
}

.tp-backup-field__label {
    font-size: 0.85rem;
    font-weight: 600;
    color: #475569;
}

.tp-backup-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.tp-plus-teaser {
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    border-radius: 12px;
    padding: 10px 12px;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin: 0;
    justify-content: space-between;
}

.tp-plus-teaser__copy {
    font-weight: 600;
    color: #334155;
}

.tp-airports {
    margin: 0;
}

.tp-airports__summary {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid #e2e8f0;
    background: #ffffff;
    border-radius: 999px;
    padding: 4px 10px;
    font-weight: 600;
    cursor: pointer;
}

.tp-airports__summary::-webkit-details-marker {
    display: none;
}

.tp-airports__form {
    margin-top: 8px;
    display: grid;
    gap: 8px;
}

.tp-airports__fields {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
}

.tp-airports__field {
    display: grid;
    gap: 4px;
    min-width: 160px;
}

.tp-airports__label {
    font-size: 0.85rem;
    color: #475569;
    font-weight: 600;
}

.tp-airports__hint {
    margin: 0;
    color: #64748b;
    font-size: 0.85rem;
}


.tp-smart-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.tp-smart-card {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px 14px;
    background: #ffffff;
    display: grid;
    gap: 8px;
}

.tp-smart-card.is-disabled {
    opacity: 0.75;
}

.tp-smart-card__badge {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #475569;
}

.tp-smart-card__label {
    font-weight: 700;
    color: #0f172a;
}

.tp-smart-card__summary {
    color: #64748b;
    font-size: 0.9rem;
}

.tp-smart-card__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.tp-smart-card__hint {
    font-size: 0.82rem;
    color: #92400e;
    font-weight: 600;
}

.tp-smart-more summary {
    list-style: none;
}

.tp-smart-more summary::-webkit-details-marker {
    display: none;
}


.tp-helper-card {
    display: grid;
    gap: 16px;
}

.tp-helper-note {
    margin: 0;
    color: #64748b;
    font-size: 0.95rem;
}

.tp-helper-params {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.tp-helper-param {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 10px 12px;
    background: #ffffff;
    display: grid;
    gap: 4px;
}

.tp-helper-param__label {
    font-size: 0.8rem;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.tp-helper-param__value {
    font-weight: 600;
    color: #0f172a;
}

.tp-helper-links {
    display: grid;
    gap: 10px;
}

.tp-helper-link {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 10px 12px;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.tp-helper-link__label {
    font-weight: 600;
    color: #0f172a;
}

.tp-helper-checklist__title {
    font-weight: 700;
    color: #0f172a;
}

.tp-helper-checklist__list {
    margin: 6px 0 0;
    padding-left: 18px;
    color: #475569;
    display: grid;
    gap: 4px;
}

.tp-fast-track-checklist {
    display: grid;
    gap: 12px;
}

.tp-fast-track-checklist__intro {
    margin: 0;
    color: #475569;
    font-size: 0.95rem;
}

.tp-fast-track-checklist__progress {
    font-weight: 600;
    color: #0f172a;
}

.tp-fast-track-checklist__group {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px 14px;
    background: #ffffff;
    display: grid;
    gap: 8px;
}

.tp-fast-track-checklist__title {
    font-weight: 700;
    color: #0f172a;
}

.tp-fast-track-checklist__items {
    display: grid;
    gap: 6px;
}

.tp-fast-track-checklist__item {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #475569;
    font-size: 0.95rem;
}

.tp-flex-pill {
    border: 1px solid #e2e8f0;
    background: #ffffff;
    border-radius: 999px;
    padding: 6px 12px;
    font-weight: 600;
    color: #0f172a;
    cursor: pointer;
}

.tp-flex-pill.is-active {
    background: #0f172a;
    color: #ffffff;
    border-color: #0f172a;
}

.tp-provider-list {
    display: grid;
    gap: 12px;
}

.tp-provider-card {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px 14px;
    background: #ffffff;
    display: grid;
    gap: 10px;
}

.tp-provider-card__title {
    font-weight: 700;
    color: #0f172a;
}

.tp-provider-card__reason {
    margin: 4px 0 0;
    color: #475569;
}

.tp-provider-card__context {
    margin: 6px 0 0;
    color: #64748b;
    font-size: 0.85rem;
}

.tp-provider-card__callout {
    margin: 6px 0 0;
    color: #92400e;
    font-size: 0.85rem;
    font-weight: 600;
}

.tp-provider-card__callout a {
    color: inherit;
    text-decoration: underline;
    font-weight: 700;
}

.tp-provider-card__actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.tp-provider-card__tips-details {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    max-width: 100%;
}

.tp-provider-card__tips-summary {
    list-style: none;
}

.tp-provider-card__tips-summary::-webkit-details-marker,
.tp-provider-card__tips-summary::marker {
    display: none;
}

.tp-provider-card__actions .is-disabled {
    pointer-events: none;
    opacity: 0.5;
}

.tp-step__buttons .is-disabled,
.tp-next-card__actions .is-disabled {
    pointer-events: none;
    opacity: 0.5;
}

.tp-provider-card__tips {
    margin: 0;
    padding-left: 18px;
    color: #475569;
    display: grid;
    gap: 4px;
}

.tp-research-checklist {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px 14px;
    background: #f8fafc;
    display: grid;
    gap: 12px;
    margin-bottom: 12px;
}

.tp-research-checklist__title {
    font-weight: 700;
    color: #0f172a;
}

.tp-research-checklist__list {
    display: grid;
    gap: 8px;
}

.tp-research-checklist__item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #334155;
    font-weight: 600;
}

.tp-research-checklist__actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.tp-flex-table-wrap {
    overflow-x: auto;
}

.tp-flex-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 560px;
}

.tp-flex-table th,
.tp-flex-table td {
    border-bottom: 1px solid #e2e8f0;
    padding: 10px 8px;
    text-align: left;
    vertical-align: top;
}

.tp-flex-table th {
    font-size: 0.9rem;
    color: #475569;
    font-weight: 700;
}

.tp-flex-range {
    font-weight: 700;
    color: #0f172a;
}

.tp-flex-sub {
    color: #64748b;
    font-size: 0.85rem;
    margin-top: 4px;
}

.tp-flex-cell {
    display: grid;
    gap: 6px;
}

.tp-flex-input {
    min-width: 96px;
}

.tp-price-table {
    display: grid;
    gap: 10px;
}

.tp-price-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.tp-price-input {
    max-width: 140px;
}

.tp-price-source {
    font-weight: 600;
    color: #0f172a;
}

.tp-best-callout {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 10px 12px;
    color: #475569;
    font-size: 0.92rem;
}

.tp-activity-picks {
    display: grid;
    gap: 12px;
}

.tp-activity-card {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px 14px;
    background: #ffffff;
    display: grid;
    gap: 6px;
}

.tp-activity-card__title {
    font-weight: 700;
    color: #0f172a;
}

.tp-activity-card__meta {
    color: #475569;
    font-size: 0.95rem;
}

.tp-activity-card__time,
.tp-activity-card__hint {
    color: #64748b;
    font-size: 0.9rem;
}

.tp-activity-card__links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tp-activity-card__save {
    margin-top: 4px;
}

.tp-activity-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.tp-research-empty {
    margin: 0;
    color: #64748b;
}

@media (max-width: 700px) {
    .tp-step__actions {
        justify-items: start;
    }

    .tp-actions {
        width: 100%;
    }

    .tp-actions .btn {
        width: 100%;
    }
}

.tp-reflection-accordion.is-highlight {
    border-color: #f59e0b;
    box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.15);
}

.tp-reflection-accordion {
    margin-top: 16px;
}

.tp-reflection-accordion.is-highlight .tp-accordion__summary {
    background: #fff7ed;
}

.tp-inline-hint {
    margin: 0;
    color: #6b7280;
    font-size: 0.92rem;
}

.tp-missing-chip {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 2px 0;
}

.tp-missing-chip__label {
    color: #64748b;
    font-size: 0.9rem;
}

.tp-optional-toggle {
    margin: 6px 0 4px;
}

.tp-budget-summary {
    display: grid;
    gap: 8px;
}

.tp-momentum-footer {
    margin-top: 10px;
    display: grid;
    gap: 4px;
    font-size: 0.9rem;
    color: #64748b;
}

.tp-momentum-footer a {
    color: inherit;
}

.tp-compare-toggle {
    margin-top: 12px;
}

.tp-chips .tp-inline-hint {
    flex-basis: 100%;
    margin-top: 4px;
}

.tp-notes-grid .tp-inline-hint {
    grid-column: 1 / -1;
}

.tp-budget-list {
    display: grid;
    gap: 10px;
}

.tp-budget-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.tp-budget-row__inputs {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.tp-budget-booked {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.9rem;
    color: #475569;
}

.tp-budget-row span {
    font-weight: 600;
    color: #111827;
}

.tp-budget-row input {
    max-width: 170px;
    text-align: right;
}

.tp-budget-mode {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.tp-snapshot-sample {
    border: 1px dashed #e2e8f0;
    border-radius: 12px;
    padding: 12px;
    background: #f8fafc;
    display: grid;
    gap: 8px;
}

.tp-snapshot-sample__title {
    font-weight: 700;
    color: #0f172a;
}

.tp-snapshot-sample__grid {
    display: grid;
    gap: 6px;
    color: #475569;
    font-weight: 600;
}

.tp-split-grid {
    display: grid;
    gap: 12px;
}

.tp-split-row {
    display: grid;
    gap: 6px;
    color: #0f172a;
    font-weight: 600;
}

.tp-split-row--toggle {
    grid-template-columns: 1fr;
}

.tp-split-row__inline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.tp-split-unit {
    color: #64748b;
    font-weight: 600;
}

.tp-split-input {
    max-width: 120px;
}

.tp-split-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    color: #0f172a;
}

.tp-split-custom {
    border: 1px dashed #e2e8f0;
    border-radius: 12px;
    padding: 12px;
    background: #f8fafc;
    display: grid;
    gap: 8px;
}

.tp-split-custom__grid {
    display: grid;
    gap: 10px;
}

.tp-split-percent {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 8px;
    align-items: center;
}

.tp-split-percent__input {
    max-width: 120px;
}

.tp-split-percent__unit {
    color: #64748b;
    font-weight: 600;
}

.tp-split-summary {
    border: 1px dashed #e2e8f0;
    border-radius: 12px;
    padding: 12px;
    background: #ffffff;
    display: grid;
    gap: 8px;
}

.tp-split-summary__title {
    font-weight: 700;
    color: #0f172a;
}

.tp-split-summary__list {
    margin: 0;
    padding-left: 18px;
    color: #475569;
    display: grid;
    gap: 4px;
}

.tp-budget-total input {
    background: #f1f5f9;
    font-weight: 700;
}

.tp-share {
    display: grid;
    gap: 10px;
}

.tp-share__actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.tp-share__notice {
    margin: 0;
    color: #6b7280;
    font-size: 0.95rem;
}

.tp-share__notice--status {
    min-height: 1.2em;
}

.tp-share__notice--gate {
    color: #5b6575;
}

.tp-share__notice--gate .tp-share__gate-action {
    display: block;
    margin-top: 8px;
}

@media (max-width: 768px) {
    .tp-container {
        margin: 16px auto 48px;
        padding: 0 10px calc(36px + var(--unsaved-bar-h, 0px) + env(safe-area-inset-bottom));
    }
    .tool--trip-planner .tp-card {
        padding: 24px 18px;
    }
    .tool--trip-planner .rr-form-grid {
        grid-template-columns: 1fr;
    }
    .tp-header {
        flex-direction: column;
        align-items: flex-start;
    }
    .tool--trip-planner .tp-chips {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    .tool--trip-planner .tp-chip-row {
        width: 100%;
        gap: 12px;
        flex-wrap: wrap;
    }
    .tool--trip-planner .tp-grid--inputs {
        grid-template-columns: 1fr;
        gap: 18px;
    }
    .tool--trip-planner .tp-card,
    .tool--trip-planner .tp-grid--inputs,
    .tool--trip-planner .tp-field {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }
    .tool--trip-planner .tp-field--full,
    .tool--trip-planner .tp-field--wide,
    .tool--trip-planner .tp-field--half,
    .tool--trip-planner .tp-field--third {
        grid-column: 1 / -1;
    }
    .tool--trip-planner .tp-primary {
        gap: 20px;
    }
    .tp-actions .btn {
        width: 100%;
    }
    .tp-actions .btn.btn-link {
        width: auto;
    }
    .tp-budget-row input {
        max-width: 120px;
    }
    .tp-booking-row {
        grid-template-columns: 1fr 1fr;
    }
    .tp-booking-head {
        display: none;
    }
    .tp-booking-input,
    .tp-booking-select {
        max-width: none;
        width: 100%;
    }
    .tp-booking-select-group {
        flex-direction: column;
        align-items: stretch;
    }
    .tp-next-card__actions {
        align-items: stretch;
    }
    .tp-next-cta {
        width: 100%;
    }
    .tp-win-strip {
        align-items: flex-start;
        flex-direction: column;
    }
    .tp-step {
        flex-direction: column;
        align-items: flex-start;
    }
    .tp-step__actions {
        width: 100%;
        justify-content: space-between;
    }
    .tp-step__select {
        max-width: none;
        width: 100%;
    }
    .tool--trip-planner .rb-sticky {
        width: calc(100% - 24px);
        border-radius: 16px;
        justify-content: space-between;
        left: 12px;
        right: 12px;
        transform: none;
    }
    .tool--trip-planner .rb-sticky,
    .tool--trip-planner .rb-sticky-pill,
    .tool--trip-planner .wl-sticky,
    .tool--trip-planner .wl-sticky-pill {
        display: none !important;
        pointer-events: none;
    }
}

@media (max-width: 1024px) and (pointer: coarse) {
    .tool--trip-planner .tp-grid--inputs {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .tool--trip-planner .tp-field--full,
    .tool--trip-planner .tp-field--wide,
    .tool--trip-planner .tp-field--half,
    .tool--trip-planner .tp-field--third {
        grid-column: 1 / -1;
    }
    .tool--trip-planner .tp-chips {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }
    .tool--trip-planner .tp-chip-row {
        width: 100%;
        flex-wrap: wrap;
    }
}

.tool--trip-planner .rb-sticky {
    pointer-events: auto;
}

.tool--trip-planner .rb-sticky__collapse {
    pointer-events: auto;
    position: relative;
    z-index: 2;
}
.wl-today-card .chip,
.wl-accordion__content .chip {
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    color: #0f172a;
    padding: 8px 12px;
    border-radius: 999px;
    font-weight: 700;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.wl-today-card .chip:hover,
.wl-accordion__content .chip:hover {
    background: #eef2ff;
    border-color: #cbd5e1;
}

.wl-today-card .chip.is-active,
.wl-accordion__content .chip.is-active {
    background: #e0e7ff;
    border-color: #6366f1;
    color: #111827;
}

.wl-today-card .chip-pill {
    padding: 8px 14px;
}

.wl-today-card .workout-feel,
.wl-today-card .workout-focus {
    display: grid;
    gap: 10px;
}

.wl-today-card .workout-feel__chips,
.wl-today-card .workout-focus__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.workout-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.workout-actions__status {
    margin: 0;
    color: #6b7280;
    font-weight: 600;
}

.workout-sets-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.workout-section__summary {
    font-weight: 700;
}

.workout-templates-block,
.workout-history-block {
    border: 1px dashed #e5e7eb;
    border-radius: 12px;
    padding: 12px;
    background: #f9fafb;
}

.wl-accordion__item + .wl-accordion__item {
    margin-top: 0;
}

.wl-accordion__content .rr-field-group {
    margin-top: 0.75rem;
}

.wl-accordion__content .rr-help-text {
    margin-top: 0.35rem;
}

.wl-accordion__item[open] .wl-accordion__content {
    animation: wl-fade-in 0.15s ease;
}

@keyframes wl-fade-in {
    from { opacity: 0; transform: translateY(-3px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 720px) {
    .wl-header {
        flex-direction: column;
        align-items: flex-start;
    }
    .wl-header__left {
        align-items: flex-start;
    }
    .wl-sticky {
        width: calc(100% - 24px);
        border-radius: 16px;
        justify-content: space-between;
    }
    .tool--workout-log .wl-container {
        padding-bottom: 120px;
    }
    .wl-form-row {
        grid-template-columns: 1fr;
    }
    .wl-subdetails__summary {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }
    .wl-archive-actions {
        width: 100%;
        align-items: stretch;
    }
    .wl-archive-actions .btn,
    .wl-archive-actions .rr-link-button {
        width: 100%;
        justify-content: center;
    }
    .wl-archive-line {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
    }
    .wl-archive-table .rr-table {
        min-width: 0;
    }
    .wl-archive-table::after {
        display: none;
    }
    .wl-archive-table .rr-table thead {
        display: none;
    }
    .wl-archive-table .rr-table tr {
        display: block;
        padding: 10px 0;
        border-bottom: 1px solid #e5e7eb;
    }
    .wl-archive-table .rr-table td {
        display: block;
        padding: 0;
        border: none;
    }
    .wl-archive-desktop,
    .wl-archive-desktop-cell {
        display: none;
    }
    .wl-archive-mobile {
        display: flex;
    }
    .wl-archive-actions-cell {
        margin-top: 6px;
    }
}

/* Shared share-box helper */
.share-box__status {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
    flex-wrap: wrap;
}

.share-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 10px;
    background: #f1f5f9;
    color: #0f172a;
    font-weight: 600;
    font-size: 0.9rem;
}

.share-badge.is-shared {
    background: #e0f2fe;
    color: #0369a1;
}

.share-message {
    font-size: 0.95rem;
}

.share-message.share-msg-error {
    color: #b3261e;
}

/* PWA install affordance */
.tool-page-header-right,
.rb-header__right,
.hc-header__right,
.tp-header__right,
.dp-header__right,
.dh-header__right,
.wl-header__right {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

/* Header + A2HS polish (2026-01) */
.pwa-install-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    background: #f8fafc;
    color: #111827;
    font-weight: 650;
    font-size: 0.82rem;
    cursor: pointer;
    box-shadow: none;
    transition: border-color 0.15s ease, background 0.15s ease, transform 0.12s ease;
}

.pwa-install-btn:hover {
    border-color: #d1d5db;
    background: #f1f5f9;
}

.pwa-install-btn:active {
    transform: translateY(1px);
}

.pwa-install-btn:focus-visible {
    outline: 2px solid rgba(59, 130, 246, 0.25);
    outline-offset: 2px;
}

.pwa-modal-open {
    overflow: hidden;
}

.pwa-install-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    z-index: 120;
}

.pwa-install-overlay[hidden] {
    display: none;
}

.pwa-install-modal {
    background: #f8fafc;
    border-radius: 18px;
    padding: 22px 24px;
    width: min(420px, 92vw);
    border: 1px solid rgba(15, 23, 42, 0.12);
    box-shadow: 0 20px 48px rgba(15, 23, 42, 0.25);
    position: relative;
}

.pwa-install-close {
    position: absolute;
    top: 10px;
    right: 12px;
    border: none;
    background: transparent;
    font-size: 1.4rem;
    color: #475569;
    cursor: pointer;
    line-height: 1;
}

.pwa-install-title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 800;
    color: #0f172a;
}

.pwa-install-lede {
    margin: 6px 0 14px;
    color: #475569;
    font-size: 0.95rem;
}

.pwa-install-subtitle {
    margin: 0 0 12px;
    color: #334155;
    font-size: 0.95rem;
}

.pwa-install-steps {
    padding-left: 18px;
    margin: 0;
    display: grid;
    gap: 8px;
    color: #0f172a;
    font-weight: 600;
}

.pwa-share-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-left: 6px;
    border-radius: 6px;
    background: #e2e8f0;
    color: #0f172a;
}

.pwa-share-icon svg {
    width: 14px;
    height: 14px;
}

@media (max-width: 720px) {
    .pwa-install-modal {
        padding: 18px 18px;
    }
}

.direct-mode .direct-mode-intro {
    margin: 8px 0 16px;
    color: #475569;
    font-size: 0.95rem;
}

.direct-mode .direct-mode-intro p {
    margin: 0;
}

.direct-mode .direct-mode-footer {
    margin: 24px 0 6px;
    font-size: 0.9rem;
}

.direct-mode .direct-mode-footer a {
    color: #475569;
    text-decoration: underline;
    text-underline-offset: 2px;
}
