        :root {
            --white: #ffffff;
            --ivory: #FAFAF7;
            --cream: #F5F3EE;
            --sage: #8FA38B;
            --sage-light: #B5C9B1;
            --sage-pale: #EEF2ED;
            --stone: #7A746E;
            --sand: #D9D2C5;
            --ink: #2A2825;
            --ink-light: #4A4744;
            --gold: #B8965A;
            --gold-pale: #F5EDD8;
            --serif: 'Cormorant Garamond', Georgia, serif;
            --sans: 'Jost', sans-serif;
        }

        * { box-sizing: border-box; margin: 0; padding: 0; }
        html { scroll-behavior: smooth; }

        body {
            background: var(--white);
            color: var(--ink);
            font-family: var(--sans);
            font-weight: 300;
            line-height: 1.8;
            overflow-x: hidden;
        }

        /* ===== BURGER ===== */
        .burger {
            position: fixed;
            top: 28px;
            right: 28px;
            z-index: 1000;
            cursor: pointer;
            width: 46px;
            height: 46px;
            border-radius: 50%;
            background: var(--white);
            border: 1px solid var(--sand);
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 5px;
            box-shadow: 0 2px 20px rgba(0,0,0,0.06);
            transition: all 0.3s ease;
        }
        .burger:hover { border-color: var(--sage-light); }
        .burger span {
            display: block;
            width: 20px;
            height: 1px;
            background: var(--ink);
            transition: all 0.3s ease;
        }
        .burger.open span:nth-child(1) { transform: rotate(45deg) translate(4px, 4px); }
        .burger.open span:nth-child(2) { opacity: 0; }
        .burger.open span:nth-child(3) { transform: rotate(-45deg) translate(4px, -4px); }

        /* ===== OVERLAY ===== */
        .overlay {
            position: fixed;
            inset: 0;
            background: rgba(42,40,37,0.15);
            backdrop-filter: blur(3px);
            z-index: 998;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.5s ease;
        }
        .overlay.active { opacity: 1; pointer-events: all; }

        /* ===== SIDEBAR ===== */
        .sidebar {
            position: fixed;
            top: 0;
            right: -520px;
            width: 480px;
            height: 100vh;
            background: var(--ivory);
            z-index: 999;
            transition: right 0.6s cubic-bezier(0.77,0,0.175,1);
            padding: 80px 60px 60px;
            overflow-y: auto;
            border-left: 1px solid var(--cream);
        }
        .sidebar.active { right: 0; }

        .sidebar-label {
            font-family: var(--sans);
            font-size: 0.65rem;
            letter-spacing: 4px;
            text-transform: uppercase;
            color: var(--stone);
            margin-bottom: 50px;
            display: block;
            padding-bottom: 18px;
            border-bottom: 1px solid var(--sand);
        }

        .nav-group { margin-bottom: 40px; }
        .nav-group-title {
            font-size: 0.6rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--sand);
            margin-bottom: 16px;
            font-weight: 400;
        }

        .sidebar-link {
            display: flex;
            align-items: baseline;
            gap: 14px;
            text-decoration: none;
            color: var(--ink-light);
            margin: 0 0 16px;
            font-size: 1rem;
            font-weight: 300;
            transition: all 0.25s ease;
            cursor: pointer;
            line-height: 1.4;
        }
        .sidebar-link:hover { color: var(--ink); transform: translateX(8px); }
        .sidebar-link.active { color: var(--ink); }
        .sidebar-link.active .num { color: var(--gold); }
        .sidebar-link .num {
            font-family: var(--serif);
            font-size: 0.75rem;
            color: var(--sand);
            flex-shrink: 0;
            font-style: italic;
        }
        .sidebar-link:hover .num { color: var(--gold); }

        /* ===== PAGE ===== */
        .page {
            max-width: 860px;
            margin: 0 auto;
            padding: 100px 50px 140px;
        }

        .section-view { display: block; animation: fadeIn 0.5s ease; }

        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(12px); }
            to { opacity: 1; transform: translateY(0); }
        }

        /* ===== HERO ===== */
        .hero {
            text-align: center;
            padding: 60px 0 80px;
            border-bottom: 1px solid var(--cream);
            margin-bottom: 80px;
        }
        .hero .eyebrow {
            display: block;
            font-size: 0.6rem;
            letter-spacing: 5px;
            text-transform: uppercase;
            color: var(--stone);
            margin-bottom: 22px;
        }
        .hero h1 {
            font-family: var(--serif);
            font-weight: 300;
            font-size: 3.2rem;
            line-height: 1.15;
            color: var(--ink);
            margin-bottom: 20px;
        }
        .hero h1 em {
            font-style: italic;
            color: var(--sage);
        }
        .hero p {
            font-size: 0.9rem;
            color: var(--stone);
            max-width: 500px;
            margin: 0 auto;
            line-height: 1.9;
        }

        /* ===== SECTION TITLE ===== */
        .section-title {
            margin-bottom: 60px;
        }
        .section-title .eyebrow {
            display: block;
            font-size: 0.6rem;
            letter-spacing: 5px;
            text-transform: uppercase;
            color: var(--stone);
            margin-bottom: 16px;
        }
        .section-title h2 {
            font-family: var(--serif);
            font-weight: 300;
            font-size: 2.4rem;
            color: var(--ink);
            line-height: 1.2;
        }
        .section-title h2 em {
            font-style: italic;
            color: var(--sage);
        }
        .section-title p {
            margin-top: 14px;
            font-size: 0.88rem;
            color: var(--stone);
            max-width: 560px;
            line-height: 1.9;
        }

        /* ===== TIME BLOCK ===== */
        .time-block {
            display: grid;
            grid-template-columns: 120px 1fr;
            gap: 0;
            margin-bottom: 2px;
            border: 1px solid var(--cream);
            transition: background 0.2s ease;
        }
        .time-block:last-child { margin-bottom: 0; }

        .time-label {
            background: var(--ivory);
            padding: 22px 24px;
            display: flex;
            flex-direction: column;
            justify-content: center;
            border-right: 1px solid var(--cream);
            transition: background 0.2s ease;
        }
        .time-block.open .time-label { background: var(--sage-pale); }

        .time-duration {
            font-family: var(--serif);
            font-size: 1.5rem;
            font-weight: 300;
            color: var(--sage);
            line-height: 1;
        }
        .time-unit {
            font-size: 0.6rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: var(--sand);
            margin-top: 4px;
        }

        .time-content {
            padding: 0;
        }

        .time-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 22px 32px;
            cursor: pointer;
            user-select: none;
            transition: background 0.2s ease;
        }
        .time-header:hover { background: var(--ivory); }
        .time-block.open .time-header { background: var(--sage-pale); }

        .time-content h4 {
            font-size: 0.65rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--stone);
            font-weight: 400;
            margin: 0;
        }
        .time-toggle {
            font-size: 1.1rem;
            color: var(--sand);
            transition: transform 0.3s ease, color 0.3s ease;
            flex-shrink: 0;
            margin-left: 12px;
        }
        .time-block.open .time-toggle { transform: rotate(45deg); color: var(--sage); }

        .time-body {
            display: none;
            padding: 0 32px 24px 32px;
            border-top: 1px solid var(--cream);
            animation: fadeIn 0.25s ease;
        }
        .time-block.open .time-body { display: block; }

        .time-body p {
            font-size: 0.9rem;
            color: var(--ink-light);
            line-height: 1.8;
            padding-top: 18px;
        }
        .time-body ul {
            list-style: none;
            margin-top: 18px;
        }
        .time-body ul li {
            font-size: 0.88rem;
            color: var(--ink-light);
            line-height: 1.7;
            padding-left: 16px;
            position: relative;
            margin-bottom: 6px;
        }
        .time-body ul li::before {
            content: '—';
            position: absolute;
            left: 0;
            color: var(--sand);
            font-size: 0.7rem;
        }

        .block-group { margin-bottom: 50px; }
        .block-group-label {
            font-size: 0.6rem;
            letter-spacing: 4px;
            text-transform: uppercase;
            color: var(--sage);
            margin-bottom: 14px;
            font-weight: 400;
            display: flex;
            align-items: center;
            gap: 12px;
        }
        .block-group-label::after {
            content: '';
            flex: 1;
            height: 1px;
            background: var(--cream);
        }

        /* ===== DAY CARDS ===== */
        .day-grid {
            display: grid;
            grid-template-columns: repeat(5, 1fr);
            gap: 2px;
            margin-bottom: 60px;
        }
        .day-card {
            background: var(--ivory);
            padding: 28px 22px;
            border: 1px solid var(--cream);
            transition: background 0.3s ease;
        }
        .day-card:hover { background: var(--sage-pale); }
        .day-name {
            font-size: 0.6rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--sage);
            margin-bottom: 14px;
            font-weight: 400;
        }
        .day-task-title {
            font-family: var(--serif);
            font-size: 1rem;
            font-weight: 400;
            color: var(--ink);
            margin-bottom: 10px;
            line-height: 1.3;
        }
        .day-task-body {
            font-size: 0.8rem;
            color: var(--stone);
            line-height: 1.7;
        }

        /* ===== WEEKLY GOALS ===== */
        .weekly-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 2px;
            margin-bottom: 60px;
        }
        .weekly-card {
            background: var(--ivory);
            padding: 32px 30px;
            border: 1px solid var(--cream);
        }
        .weekly-card h4 {
            font-size: 0.6rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--sage);
            margin-bottom: 20px;
            font-weight: 400;
            padding-bottom: 14px;
            border-bottom: 1px solid var(--cream);
        }
        .weekly-card ul { list-style: none; }
        .weekly-card ul li {
            font-size: 0.88rem;
            color: var(--ink-light);
            line-height: 1.7;
            padding-left: 16px;
            position: relative;
            margin-bottom: 12px;
        }
        .weekly-card ul li::before {
            content: '—';
            position: absolute;
            left: 0;
            color: var(--sand);
            font-size: 0.7rem;
        }
        .weekly-card ul li strong { color: var(--ink); font-weight: 500; }

        /* ===== RESEARCH GUIDE ADD-ONS ===== */
        .funnel-strip {
            display: flex;
            justify-content: flex-start;
            align-items: center;
            gap: 10px;
            flex-wrap: wrap;
            margin: 18px 0 0;
            font-size: 0.65rem;
            letter-spacing: 1px;
            text-transform: uppercase;
            color: var(--sage);
        }
        .funnel-strip span.sep { color: var(--sand); font-family: var(--serif); font-style: italic; }

        .method-sub {
            font-size: 0.8rem;
            color: var(--stone);
            margin-top: 6px;
            line-height: 1.6;
        }

        .ref-table {
            width: 100%;
            border-collapse: collapse;
            margin: 18px 0 24px;
            font-size: 0.82rem;
        }
        .ref-table th {
            text-align: left;
            font-size: 0.58rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: var(--stone);
            font-weight: 400;
            padding: 10px 14px;
            border-bottom: 1px solid var(--sand);
        }
        .ref-table td {
            padding: 12px 14px;
            border-bottom: 1px solid var(--cream);
            color: var(--ink-light);
            vertical-align: top;
            line-height: 1.6;
        }
        .ref-table td strong { color: var(--ink); font-weight: 500; }

        .block-label {
            font-size: 0.6rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--sage);
            margin: 28px 0 14px;
            font-weight: 400;
            display: flex;
            align-items: center;
            gap: 12px;
        }
        .block-label::after { content: ''; flex: 1; height: 1px; background: var(--cream); }
        .block-label:first-of-type { margin-top: 6px; }

        .mistakes {
            margin-top: 60px;
            border: 1px solid var(--cream);
            padding: 40px;
        }
        .mistakes h3 {
            font-family: var(--serif);
            font-size: 1.5rem;
            font-weight: 300;
            color: var(--ink);
            margin-bottom: 22px;
        }
        .mistakes ul { list-style: none; }
        .mistakes ul li {
            font-size: 0.87rem;
            color: var(--ink-light);
            line-height: 1.8;
            padding-left: 18px;
            position: relative;
            margin-bottom: 12px;
        }
        .mistakes ul li::before { content: '—'; position: absolute; left: 0; color: var(--gold); }

        /* ===== STEP METHODS (Research) ===== */
        .method {
            margin-bottom: 2px;
            border: 1px solid var(--cream);
        }
        .method-header {
            display: flex;
            align-items: flex-start;
            gap: 24px;
            padding: 30px 32px;
            cursor: pointer;
            transition: background 0.3s ease;
            user-select: none;
        }
        .method-header:hover { background: var(--ivory); }
        .method-num {
            font-family: var(--serif);
            font-size: 1.1rem;
            font-style: italic;
            color: var(--sand);
            min-width: 32px;
            padding-top: 2px;
        }
        .method-title-block { flex: 1; }
        .method-tag {
            display: inline-block;
            font-size: 0.55rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--sage);
            margin-bottom: 6px;
            font-weight: 400;
        }
        .method-title {
            font-family: var(--serif);
            font-size: 1.3rem;
            font-weight: 400;
            color: var(--ink);
            line-height: 1.3;
        }
        .method-toggle {
            font-size: 1.2rem;
            color: var(--sand);
            transition: transform 0.3s ease;
            padding-top: 4px;
            flex-shrink: 0;
        }
        .method.open .method-toggle { transform: rotate(45deg); color: var(--sage); }

        .method-body {
            display: none;
            padding: 0 32px 32px 88px;
            border-top: 1px solid var(--cream);
        }
        .method.open .method-body { display: block; }

        .method-body p {
            font-size: 0.88rem;
            color: var(--ink-light);
            line-height: 1.9;
            margin-bottom: 16px;
        }

        .step-list { list-style: none; margin: 20px 0; }
        .step-list li {
            display: flex;
            gap: 18px;
            margin-bottom: 18px;
            align-items: flex-start;
        }
        .step-num {
            font-family: var(--serif);
            font-size: 0.9rem;
            font-style: italic;
            color: var(--sage);
            min-width: 22px;
            padding-top: 1px;
        }
        .step-text {
            font-size: 0.87rem;
            color: var(--ink-light);
            line-height: 1.8;
        }
        .step-text strong { color: var(--ink); font-weight: 500; }

        .tip-box {
            background: var(--gold-pale);
            border-left: 2px solid var(--gold);
            padding: 18px 22px;
            margin: 20px 0;
        }
        .tip-box .tip-label {
            font-size: 0.55rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--gold);
            margin-bottom: 6px;
            font-weight: 500;
        }
        .tip-box p {
            font-size: 0.85rem;
            color: var(--ink-light);
            line-height: 1.8;
            margin: 0;
        }

        .note-box {
            background: var(--sage-pale);
            border-left: 2px solid var(--sage);
            padding: 18px 22px;
            margin: 20px 0;
        }
        .note-box .note-label {
            font-size: 0.55rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--sage);
            margin-bottom: 6px;
            font-weight: 500;
        }
        .note-box p {
            font-size: 0.85rem;
            color: var(--ink-light);
            line-height: 1.8;
            margin: 0;
        }

        .writedown {
            background: var(--cream);
            padding: 20px 24px;
            margin-top: 20px;
        }
        .writedown .wd-label {
            font-size: 0.55rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--stone);
            margin-bottom: 10px;
            font-weight: 500;
        }
        .writedown ul { list-style: none; }
        .writedown ul li {
            font-size: 0.85rem;
            color: var(--ink-light);
            line-height: 1.7;
            padding-left: 14px;
            position: relative;
            margin-bottom: 4px;
        }
        .writedown ul li::before {
            content: '·';
            position: absolute;
            left: 0;
            color: var(--sage);
        }

        /* ===== CHEAT SHEET ===== */
        .cheat-sheet {
            background: var(--ivory);
            border: 1px solid var(--cream);
            padding: 40px;
            margin-top: 50px;
        }
        .cheat-sheet h3 {
            font-family: var(--serif);
            font-size: 1.5rem;
            font-weight: 300;
            color: var(--ink);
            margin-bottom: 8px;
        }
        .cheat-sheet .sub {
            font-size: 0.78rem;
            color: var(--stone);
            margin-bottom: 36px;
        }
        .cheat-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 30px;
        }
        .cheat-field label {
            display: block;
            font-size: 0.58rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--stone);
            margin-bottom: 8px;
            font-weight: 400;
        }
        .cheat-field input,
        .cheat-field textarea {
            width: 100%;
            background: var(--white);
            border: 1px solid var(--sand);
            padding: 10px 14px;
            font-family: var(--sans);
            font-size: 0.85rem;
            color: var(--ink);
            font-weight: 300;
            outline: none;
            transition: border-color 0.2s ease;
            resize: none;
        }
        .cheat-field input:focus,
        .cheat-field textarea:focus { border-color: var(--sage); }
        .cheat-field input::placeholder,
        .cheat-field textarea::placeholder {
            color: #d4cfc9;
            font-style: italic;
        }
        .cheat-field.full { grid-column: 1 / -1; }

        .cheat-save {
            margin-top: 30px;
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            align-items: center;
        }
        .btn-save {
            font-family: var(--sans);
            font-size: 0.65rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--white);
            background: var(--sage);
            border: none;
            padding: 14px 28px;
            cursor: pointer;
            font-weight: 400;
            transition: background 0.3s ease;
        }
        .btn-save:hover { background: var(--ink); }
        .btn-clear {
            font-family: var(--sans);
            font-size: 0.65rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--stone);
            background: none;
            border: 1px solid var(--sand);
            padding: 14px 28px;
            cursor: pointer;
            font-weight: 400;
            transition: all 0.3s ease;
        }
        .btn-clear:hover { border-color: var(--stone); color: var(--ink); }
        .save-msg {
            font-size: 0.75rem;
            color: var(--sage);
            opacity: 0;
            transition: opacity 0.3s ease;
        }
        .save-msg.show { opacity: 1; }

        .btn-pdf {
            font-family: var(--sans);
            font-size: 0.65rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--gold);
            background: none;
            border: 1px solid var(--gold);
            padding: 14px 28px;
            cursor: pointer;
            font-weight: 400;
            transition: all 0.3s ease;
        }
        .btn-pdf:hover { background: var(--gold-pale); }

        /* ===== HISTORY TABLE ===== */
        .history-section {
            margin-top: 60px;
            padding-top: 50px;
            border-top: 1px solid var(--cream);
        }
        .history-header {
            display: flex;
            align-items: baseline;
            justify-content: space-between;
            margin-bottom: 8px;
            flex-wrap: wrap;
            gap: 10px;
        }
        .history-title {
            font-family: var(--serif);
            font-size: 1.3rem;
            font-weight: 300;
            color: var(--ink);
        }
        .history-title em { font-style: italic; color: var(--sage); }
        .history-count {
            font-size: 0.6rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--stone);
        }
        .history-sub {
            font-size: 0.78rem;
            color: var(--stone);
            margin-bottom: 28px;
            line-height: 1.7;
        }
        .history-table-wrap {
            overflow-x: auto;
        }
        .history-table {
            width: 100%;
            border-collapse: collapse;
            min-width: 600px;
        }
        .history-table th {
            font-size: 0.55rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--stone);
            font-weight: 400;
            padding: 10px 16px;
            text-align: left;
            border-bottom: 1px solid var(--sand);
            white-space: nowrap;
        }
        .history-table td {
            padding: 16px;
            font-size: 0.82rem;
            color: var(--ink-light);
            border-bottom: 1px solid var(--cream);
            vertical-align: top;
            line-height: 1.6;
        }
        .history-table tr:last-child td { border-bottom: none; }
        .history-table tbody tr:hover td { background: var(--ivory); }
        .history-date {
            font-size: 0.75rem;
            color: var(--stone);
            white-space: nowrap;
        }
        .history-theme {
            font-weight: 400;
            color: var(--ink);
        }
        .history-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
        }
        .history-tag {
            font-size: 0.68rem;
            background: var(--cream);
            color: var(--stone);
            padding: 3px 10px;
            border-radius: 2px;
        }
        .btn-load {
            font-family: var(--sans);
            font-size: 0.58rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: var(--sage);
            background: none;
            border: 1px solid var(--sage-light);
            padding: 7px 14px;
            cursor: pointer;
            font-weight: 400;
            transition: all 0.2s ease;
            margin-right: 8px;
            white-space: nowrap;
        }
        .btn-load:hover { background: var(--sage-pale); border-color: var(--sage); }
        .btn-delete {
            font-family: var(--sans);
            font-size: 0.58rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: var(--stone);
            background: none;
            border: 1px solid var(--sand);
            padding: 7px 14px;
            cursor: pointer;
            font-weight: 400;
            transition: all 0.2s ease;
            white-space: nowrap;
        }
        .btn-delete:hover { border-color: #c0392b; color: #c0392b; }
        .history-empty {
            text-align: center;
            padding: 50px 20px;
            color: var(--stone);
            font-size: 0.85rem;
            line-height: 1.8;
        }
        .history-empty span {
            display: block;
            font-family: var(--serif);
            font-size: 1.1rem;
            color: var(--sand);
            margin-bottom: 8px;
        }
        .history-loading {
            text-align: center;
            padding: 30px;
            color: var(--stone);
            font-size: 0.65rem;
            letter-spacing: 3px;
            text-transform: uppercase;
        }
        .history-error {
            background: #fff5f5;
            border: 1px solid #fcc;
            padding: 16px 20px;
            font-size: 0.82rem;
            color: #c0392b;
            line-height: 1.7;
        }

        /* ===== PRINT / PDF ===== */
        @media print {
            body * { visibility: hidden; }
            #cheatsheet, #cheatsheet * { visibility: visible; }
            #cheatsheet {
                display: block !important;
                position: fixed;
                inset: 0;
                padding: 40px;
                background: white;
            }
            .cheat-save, .history-section { display: none; }
            .section-title { margin-bottom: 30px; }
            .cheat-sheet { border: none; padding: 0; margin-top: 20px; }
            .cheat-field input,
            .cheat-field textarea {
                border: none;
                border-bottom: 1px solid #ccc;
                padding: 6px 0;
                background: transparent;
            }
        }
        .divider {
            border: none;
            border-top: 1px solid var(--cream);
            margin: 60px 0;
        }

        /* ===== SUMMARY BAR ===== */
        .summary-bar {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 2px;
            margin: 50px 0 80px;
        }
        .summary-item {
            background: var(--ivory);
            padding: 24px 20px;
            border: 1px solid var(--cream);
            text-align: center;
        }
        .summary-num {
            font-family: var(--serif);
            font-size: 2rem;
            font-weight: 300;
            color: var(--sage);
            line-height: 1;
        }
        .summary-label {
            font-size: 0.65rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: var(--stone);
            margin-top: 6px;
            line-height: 1.5;
        }

        /* ===== MOBILE ===== */
        @media (max-width: 700px) {
            .page { padding: 80px 24px 100px; }
            .sidebar { width: 100%; right: -100%; }
            .hero h1 { font-size: 2.2rem; }
            .day-grid { grid-template-columns: 1fr 1fr; }
            .weekly-grid { grid-template-columns: 1fr; }
            .time-block { grid-template-columns: 80px 1fr; }
            .cheat-grid { grid-template-columns: 1fr; }
            .summary-bar { grid-template-columns: 1fr 1fr; }
            .method-body { padding: 0 20px 24px 20px; }
            .cal-grid { grid-template-columns: repeat(7, 1fr); }
            .cal-day { min-height: 60px; padding: 6px 4px; }
        }

        /* ===== CALENDAR ===== */
        .cal-nav {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin: 50px 0 20px;
        }
        .cal-nav-btn {
            width: 38px;
            height: 38px;
            border-radius: 50%;
            border: 1px solid var(--sand);
            background: var(--white);
            color: var(--ink);
            font-family: var(--serif);
            font-size: 1.1rem;
            cursor: pointer;
            transition: all 0.25s ease;
        }
        .cal-nav-btn:hover { border-color: var(--sage-light); color: var(--sage); }
        .cal-month-label {
            font-family: var(--serif);
            font-size: 1.6rem;
            font-weight: 400;
            color: var(--ink);
        }
        .cal-month-label em { font-style: italic; color: var(--sage); }
        .cal-legend {
            display: flex;
            gap: 20px;
            flex-wrap: wrap;
            margin-bottom: 24px;
        }
        .cal-legend-item {
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 0.72rem;
            letter-spacing: 1px;
            text-transform: uppercase;
            color: var(--stone);
        }
        .cal-legend-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
        .cal-grid {
            display: grid;
            grid-template-columns: repeat(7, 1fr);
            gap: 1px;
            background: var(--cream);
            border: 1px solid var(--cream);
        }
        .cal-weekday {
            background: var(--ivory);
            text-align: center;
            padding: 10px 4px;
            font-size: 0.62rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: var(--stone);
        }
        .cal-day {
            background: var(--white);
            min-height: 96px;
            padding: 10px 8px;
            cursor: pointer;
            transition: background 0.2s ease;
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        .cal-day:hover { background: var(--sage-pale); }
        .cal-day.other-month { background: var(--ivory); opacity: 0.5; }
        .cal-day.selected { background: var(--sage-pale); box-shadow: inset 0 0 0 1px var(--sage-light); }
        .cal-day-num {
            font-family: var(--serif);
            font-size: 0.95rem;
            color: var(--ink-light);
        }
        .cal-day.today .cal-day-num {
            color: var(--white);
            background: var(--sage);
            width: 22px;
            height: 22px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-style: normal;
        }
        .cal-day-dots { display: flex; flex-wrap: wrap; gap: 4px; }
        .cal-dot { width: 6px; height: 6px; border-radius: 50%; }
        .cal-day-detail {
            margin-top: 30px;
            border: 1px solid var(--cream);
            padding: 26px 28px;
        }
        .cal-day-detail-title {
            font-family: var(--serif);
            font-size: 1.1rem;
            color: var(--ink);
            margin-bottom: 16px;
        }
        .cal-event-row {
            display: flex;
            align-items: flex-start;
            gap: 12px;
            padding: 12px 0;
            border-top: 1px solid var(--cream);
        }
        .cal-event-row:first-of-type { border-top: none; }
        .cal-event-dot { width: 8px; height: 8px; border-radius: 50%; margin-top: 6px; flex-shrink: 0; }
        .cal-event-info { flex: 1; }
        .cal-event-title { font-size: 0.9rem; color: var(--ink); }
        .cal-event-meta { font-size: 0.72rem; color: var(--stone); margin-top: 3px; }
        .cal-event-notes { font-size: 0.8rem; color: var(--ink-light); margin-top: 6px; font-style: italic; }
        .cal-event-empty { font-size: 0.85rem; color: var(--stone); font-style: italic; }
        .cal-upcoming-row {
            display: grid;
            grid-template-columns: 90px auto 1fr;
            align-items: center;
            gap: 16px;
            padding: 14px 0;
            border-top: 1px solid var(--cream);
        }
        .cal-upcoming-row:first-of-type { border-top: none; }
        .cal-upcoming-date {
            font-family: var(--serif);
            font-size: 0.85rem;
            color: var(--stone);
        }
        .cal-upcoming-title { font-size: 0.9rem; color: var(--ink); }
        .cal-upcoming-actions { text-align: right; }
        /* ===== KEYWORD ROW EXPAND ===== */
        .kw-row-keywords {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
        }
        .kw-expand-row td {
            background: var(--sage-pale);
            padding: 14px 16px;
            border-bottom: 1px solid var(--cream);
        }
        .kw-notes-text {
            font-size: 0.8rem;
            color: var(--stone);
            font-style: italic;
            margin-bottom: 10px;
            line-height: 1.6;
        }
        .btn-expand {
            font-family: var(--sans);
            font-size: 0.58rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: var(--stone);
            background: none;
            border: 1px solid var(--sand);
            padding: 7px 14px;
            cursor: pointer;
            font-weight: 400;
            transition: all 0.2s ease;
            margin-right: 8px;
            white-space: nowrap;
        }
        .btn-expand:hover { background: var(--cream); border-color: var(--stone); }
        /* ===== KEYWORD TAGS ===== */
        .kw-tag {
            font-family: var(--sans);
            font-size: 0.78rem;
            font-weight: 300;
            color: var(--ink-light);
            background: var(--cream);
            border: 1px solid var(--sand);
            padding: 7px 14px;
            cursor: pointer;
            transition: all 0.15s ease;
            user-select: none;
            border-radius: 2px;
            line-height: 1;
        }
        .kw-tag:hover { border-color: var(--sage-light); background: var(--sage-pale); color: var(--ink); }
        .kw-tag.selected { background: var(--sage); border-color: var(--sage); color: var(--white); }
        .btn-tag-action {
            font-family: var(--sans);
            font-size: 0.58rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: var(--stone);
            background: none;
            border: 1px solid var(--sand);
            padding: 7px 14px;
            cursor: pointer;
            font-weight: 400;
            transition: all 0.2s ease;
            white-space: nowrap;
        }
        .btn-tag-action:hover { border-color: var(--stone); color: var(--ink); }
        .btn-tag-copy { color: var(--sage); border-color: var(--sage-light); }
        .btn-tag-copy:hover { background: var(--sage-pale); border-color: var(--sage); color: var(--sage); }

        /* ===== THEME GENERATOR ===== */
        .cheat-select {
            width: 100%;
            background: var(--white);
            border: 1px solid var(--sand);
            padding: 10px 14px;
            font-family: var(--sans);
            font-size: 0.85rem;
            color: var(--ink);
            font-weight: 300;
            outline: none;
            transition: border-color 0.2s ease;
            cursor: pointer;
        }
        .cheat-select:focus { border-color: var(--sage); }
        .gen-toggle {
            font-family: var(--sans);
            font-size: 0.72rem;
            letter-spacing: 0.5px;
            color: var(--stone);
            background: var(--white);
            border: 1px solid var(--sand);
            padding: 10px 16px;
            cursor: pointer;
            font-weight: 400;
            transition: all 0.2s ease;
        }
        .gen-toggle.active { background: var(--sage); border-color: var(--sage); color: var(--white); }
        .gen-toggle:hover:not(.active) { border-color: var(--sage-light); }
        .gen-spinner {
            display: inline-block;
            width: 11px; height: 11px;
            border: 1.5px solid rgba(255,255,255,0.4);
            border-top-color: #fff;
            border-radius: 50%;
            margin-right: 8px;
            vertical-align: -1px;
            animation: gen-spin 0.8s linear infinite;
        }
        @keyframes gen-spin { to { transform: rotate(360deg); } }
        .gen-card {
            background: var(--white);
            border: 1px solid var(--sand);
            padding: 40px;
        }
        .gen-card-head {
            display: flex;
            align-items: baseline;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 8px;
        }
        .gen-card-head h3 {
            font-family: var(--serif);
            font-weight: 300;
            font-style: italic;
            font-size: 1.7rem;
            color: var(--ink);
        }
        .gen-colorway {
            font-size: 0.6rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--sage);
        }
        .gen-subtitle {
            font-size: 0.82rem;
            color: var(--stone);
            margin: 6px 0 20px;
        }
        .gen-badge {
            display: inline-block;
            font-size: 0.7rem;
            color: var(--gold);
            background: var(--gold-pale);
            border: 1px solid var(--gold);
            padding: 6px 14px;
            margin-bottom: 26px;
        }
        .gen-role {
            font-size: 0.58rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--stone);
            font-weight: 400;
        }
        .gen-coord-head {
            display: flex;
            align-items: center;
            gap: 10px;
            margin-bottom: 6px;
        }
        .gen-hero p, .gen-coord p {
            font-size: 0.88rem;
            color: var(--ink-light);
            line-height: 1.7;
        }
        .gen-hero { margin-bottom: 6px; }
        .gen-divider {
            border: none;
            border-top: 1px solid var(--cream);
            margin: 22px 0;
        }
        .gen-coord { margin-bottom: 20px; }
        .gen-coord:last-child { margin-bottom: 0; }
        /* ===== AGENCY TRACKER ===== */
        .cheat-select {
            width: 100%;
            background: var(--white);
            border: 1px solid var(--sand);
            padding: 10px 14px;
            font-family: var(--sans);
            font-size: 0.85rem;
            color: var(--ink);
            font-weight: 300;
            outline: none;
            transition: border-color 0.2s ease;
        }
        .cheat-select:focus { border-color: var(--sage); }

        .ag-filter-bar {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 20px;
            margin: 24px 0 16px;
        }
        .ag-checkbox-row {
            display: flex;
            align-items: center;
            gap: 10px;
            font-size: 0.8rem;
            color: var(--ink-light);
            margin-bottom: 40px;
        }
        .ag-checkbox-row input { accent-color: var(--sage); width: 15px; height: 15px; }

        .ag-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            margin-bottom: 40px;
        }

        .agency-card {
            border: 1px solid var(--cream);
            margin-bottom: 2px;
            background: var(--white);
        }
        .agency-head {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 20px;
            padding: 18px 30px;
            cursor: pointer;
            user-select: none;
            transition: background 0.2s ease;
        }
        .agency-head:hover { background: var(--ivory); }
        .agency-card.open .agency-head { background: var(--sage-pale); }
        .agency-name {
            font-family: var(--serif);
            font-size: 1.25rem;
            font-weight: 400;
            color: var(--ink);
            line-height: 1.3;
        }
        .agency-meta {
            font-size: 0.78rem;
            color: var(--stone);
            margin-top: 8px;
            line-height: 1.8;
        }
        .agency-meta a { color: var(--stone); text-decoration: none; border-bottom: 1px dotted var(--sand); }
        .agency-meta a:hover { color: var(--sage); }
        .agency-right {
            text-align: right;
            flex-shrink: 0;
            min-width: 150px;
        }
        .status-badge {
            display: inline-block;
            font-size: 0.58rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            padding: 6px 13px;
            font-weight: 500;
            white-space: nowrap;
            cursor: pointer;
            transition: filter 0.15s ease;
        }
        .status-badge:hover { filter: brightness(0.95); }

        .ag-quick-status {
            padding: 20px 30px;
            background: var(--ivory);
            border-top: 1px solid var(--cream);
            display: flex;
            flex-wrap: wrap;
            gap: 16px;
            align-items: flex-end;
        }
        .qs-row { display: flex; flex-direction: column; gap: 6px; min-width: 150px; }
        .qs-row label {
            font-size: 0.55rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: var(--stone);
        }
        .qs-row input[type="date"] {
            background: var(--white);
            border: 1px solid var(--sand);
            padding: 10px 14px;
            font-family: var(--sans);
            font-size: 0.85rem;
            color: var(--ink);
            font-weight: 300;
            outline: none;
            transition: border-color 0.2s ease;
        }
        .qs-row input[type="date"]:focus { border-color: var(--sage); }
        .qs-actions { display: flex; gap: 10px; margin-left: auto; }
        .status-Not_Contacted { background: #EDEDEB; color: #7A746E; }
        .status-Contacted { background: var(--sage); color: #fff; }
        .status-Contacted::before { content: '\2713\00a0\00a0'; }
        .agency-card.is-contacted { border-left: 3px solid var(--sage); }
        .agency-card.is-contacted .agency-name { color: var(--sage); }
        .status-Follow_up_Needed { background: #FBEFDD; color: #B8763A; }
        .status-Responded { background: #F0E8F5; color: #8A5AA8; }
        .status-Rejected { background: #FBEAEA; color: #C0392B; }
        .status-Signed { background: var(--sage-pale); color: var(--sage); }

        .ag-days {
            font-size: 0.7rem;
            color: var(--stone);
            margin-top: 10px;
        }
        .ag-days.overdue { color: #C0392B; font-weight: 500; }
        .ag-priority {
            font-size: 0.6rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            margin-top: 8px;
        }
        .ag-priority-High { color: #C0392B; }
        .ag-priority-Medium { color: var(--gold); }
        .ag-priority-Low { color: var(--stone); }

        .agency-body {
            display: none;
            padding: 0 30px 34px;
            border-top: 1px solid var(--cream);
        }
        .agency-card.open .agency-body { display: block; }

        .ag-edit-grid {
            display: grid;
            grid-template-columns: 1fr 1fr 1fr;
            gap: 18px;
            margin: 26px 0;
        }
        .ag-edit-grid label {
            display: block;
            font-size: 0.55rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: var(--stone);
            margin-bottom: 7px;
        }
        .ag-view-value {
            font-size: 0.85rem;
            color: var(--ink);
            font-weight: 300;
        }
        .ag-view-value a { color: var(--ink); text-decoration: none; border-bottom: 1px dotted var(--sand); }
        .ag-view-value a:hover { color: var(--sage); }
        .ag-view-value.muted { color: var(--stone); font-style: italic; }
        .ag-view-value .muted { color: var(--stone); font-style: italic; }
        .ag-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
        .ag-tag {
            font-size: 0.68rem;
            background: var(--cream);
            color: var(--stone);
            padding: 4px 11px;
            border-radius: 2px;
        }

        .cat-picker { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
        .cat-chip {
            font-family: var(--sans);
            font-size: 0.72rem;
            padding: 6px 14px;
            border-radius: 2px;
            border: 1px solid var(--sand);
            background: var(--white);
            color: var(--ink-light);
            cursor: pointer;
            transition: all 0.15s ease;
        }
        .cat-chip:hover { border-color: var(--sage); }
        .cat-chip.selected { background: var(--sage); border-color: var(--sage); color: var(--white); }
        .cat-add-row { display: flex; gap: 8px; margin-top: 12px; }
        .cat-add-row input {
            flex: 1;
            font-family: var(--sans);
            font-size: 0.8rem;
            padding: 8px 12px;
            border: 1px solid var(--sand);
            background: var(--white);
            color: var(--ink);
            outline: none;
        }
        .cat-add-row button {
            font-family: var(--sans);
            font-size: 0.68rem;
            letter-spacing: 1px;
            text-transform: uppercase;
            padding: 8px 16px;
            background: var(--ivory);
            border: 1px solid var(--sage);
            color: var(--sage);
            cursor: pointer;
            transition: all 0.15s ease;
        }
        .cat-add-row button:hover { background: var(--sage); color: var(--white); }

        .ag-sub-block { margin-top: 34px; padding-top: 26px; border-top: 1px solid var(--cream); }
        .ag-sub-title {
            font-size: 0.6rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--sage);
            font-weight: 400;
            margin-bottom: 18px;
            display: flex;
            align-items: center;
            gap: 12px;
        }
        .ag-sub-title::after { content: ''; flex: 1; height: 1px; background: var(--cream); }

        .ag-item {
            background: var(--ivory);
            border: 1px solid var(--cream);
            padding: 16px 20px;
            margin-bottom: 10px;
            font-size: 0.82rem;
            color: var(--ink-light);
            line-height: 1.7;
            position: relative;
        }
        .ag-item strong { color: var(--ink); font-weight: 500; }
        .ag-item a { color: var(--sage); }
        .ag-item .ag-item-del {
            position: absolute;
            top: 12px;
            right: 14px;
            font-size: 0.65rem;
            color: var(--sand);
            cursor: pointer;
            background: none;
            border: none;
        }
        .ag-item .ag-item-del:hover { color: #C0392B; }
        .ag-empty-mini { font-size: 0.78rem; color: var(--sand); font-style: italic; margin-bottom: 14px; }

        .ag-mini-form {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 12px;
            margin-top: 16px;
        }
        .ag-mini-form .full { grid-column: 1 / -1; }
        .ag-mini-form input, .ag-mini-form select, .ag-mini-form textarea {
            width: 100%;
            background: var(--white);
            border: 1px solid var(--sand);
            padding: 9px 12px;
            font-family: var(--sans);
            font-size: 0.8rem;
            color: var(--ink);
            outline: none;
        }
        .ag-mini-form input:focus, .ag-mini-form select:focus, .ag-mini-form textarea:focus { border-color: var(--sage); }

        @media (max-width: 700px) {
            .ag-filter-bar { grid-template-columns: 1fr 1fr; }
            .ag-edit-grid { grid-template-columns: 1fr 1fr; }
            .ag-mini-form { grid-template-columns: 1fr; }
            .agency-head { flex-direction: column; }
            .agency-right { text-align: left; }
        }

        /* ===== TEMPLATES PAGE ===== */
        .cat-badge {
            display: inline-block;
            font-size: 0.55rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            padding: 5px 12px;
            font-weight: 500;
            white-space: nowrap;
        }
        .cat-Cold_Pitch { background: var(--sage-pale); color: var(--sage); }
        .cat-Follow_up__No_Response_ { background: var(--gold-pale); color: var(--gold); }
        .cat-Submission_Open_Call_Response { background: #E8EEF5; color: #4A6FA5; }

        .tpl-variant-group { margin-bottom: 40px; }
        .tpl-variant-group-label {
            font-size: 0.6rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--stone);
            margin-bottom: 14px;
            font-weight: 400;
        }
        .tpl-card {
            border: 1px solid var(--cream);
            padding: 22px 26px;
            margin-bottom: 2px;
            background: var(--white);
        }
        .tpl-card-head {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 16px;
            flex-wrap: wrap;
        }
        .tpl-name {
            font-family: var(--serif);
            font-size: 1.15rem;
            font-weight: 400;
            color: var(--ink);
        }
        .tpl-meta {
            font-size: 0.78rem;
            color: var(--stone);
            margin-top: 6px;
        }
        .tpl-subject {
            font-size: 0.82rem;
            color: var(--stone);
            margin-top: 8px;
            font-style: italic;
        }
        .tpl-actions { display: flex; gap: 8px; flex-shrink: 0; }

        /* ===== TEMPLATES: AGENCY ACCORDIONS (Step 6) =====
           One row per agency on templates.html, expanding to show that
           agency's Research and Tailored Pitch (empty-state only for now —
           Steps 7-8 fill these in). Sits inside a .history-section wrapper,
           so it inherits history-header/history-title/history-count/
           history-sub/history-loading/history-empty already defined above. */
        .acc-list {
            display: flex;
            flex-direction: column;
        }
        .acc-item {
            border-bottom: 1px solid var(--cream);
            transition: background 0.3s ease;
        }
        .acc-item:last-child { border-bottom: none; }
        .acc-item.acc-highlight { background: var(--sage-pale); }
        .acc-header {
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 16px;
            padding: 20px 4px;
            background: none;
            border: none;
            cursor: pointer;
            font-family: var(--sans);
            text-align: left;
        }
        .acc-header-main {
            display: flex;
            align-items: center;
            gap: 14px;
            flex-wrap: wrap;
        }
        .acc-name {
            font-family: var(--serif);
            font-size: 1.1rem;
            font-weight: 400;
            color: var(--ink);
            transition: color 0.2s ease;
        }
        .acc-header:hover .acc-name { color: var(--sage); }
        .acc-status-badge {
            display: inline-block;
            font-size: 0.58rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            padding: 6px 13px;
            font-weight: 500;
            white-space: nowrap;
            background: var(--sage-pale);
            color: var(--ink-light);
        }
        .acc-status-badge.status-Contacted { background: var(--sage); color: #fff; }
        .acc-status-badge.status-Contacted::before { content: '\2713\00a0\00a0'; }
        .acc-status-badge.status-Follow_up_Needed { background: #FBEFDD; color: #B8763A; }
        .acc-status-badge.status-Responded { background: #F0E8F5; color: #8A5AA8; }
        .acc-status-badge.status-Rejected { background: #FBEAEA; color: #C0392B; }
        .acc-status-badge.status-Signed { background: var(--sage-pale); color: var(--sage); }
        .acc-item.is-contacted { border-left: 3px solid var(--sage); padding-left: 10px; }
        .acc-item.is-contacted .acc-name { color: var(--sage); }
        .lib-tabs { display: flex; gap: 0; margin: 10px 0 30px; border-bottom: 1px solid var(--cream); }
        .lib-tab {
            background: none; border: none; cursor: pointer; padding: 14px 26px;
            font-family: var(--sans); font-size: 0.62rem; letter-spacing: 3px;
            text-transform: uppercase; color: var(--stone);
            border-bottom: 2px solid transparent; margin-bottom: -1px;
        }
        .lib-tab:hover { color: var(--sage); }
        .lib-tab.active { color: var(--ink); border-bottom-color: var(--sage); }
        .lib-add-bar { margin-bottom: 26px; }
        .col-sends { margin-top: 14px; border-top: 1px solid var(--cream); padding-top: 12px; }
        .col-sends-toggle {
            display: flex; align-items: center; gap: 12px; background: none; border: none;
            cursor: pointer; padding: 4px 0; font-family: var(--sans); font-size: 0.62rem;
            letter-spacing: 2px; text-transform: uppercase; color: var(--ink-light);
        }
        .col-sends-toggle:hover { color: var(--sage); }
        .col-sends-chev { font-family: var(--serif); font-size: 1.1rem; color: var(--sand); }
        .col-sends-body { padding: 14px 0 6px; }
        .col-sends-body h4 {
            font-size: 0.58rem; letter-spacing: 3px; text-transform: uppercase;
            color: var(--stone); margin-bottom: 10px; font-weight: 400;
        }
        .col-sends-hint { text-transform: none; letter-spacing: 0; font-style: italic; }
        .col-sends-row { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 7px 0; border-bottom: 1px solid var(--cream); font-size: 0.85rem; }
        .col-sends-name { font-family: var(--serif); font-size: 1rem; color: var(--ink); }
        .col-sends-meta { color: var(--stone); font-size: 0.78rem; }
        .col-sends-chips { display: flex; flex-wrap: wrap; gap: 8px; }
        .col-sends-chip {
            font-size: 0.78rem; padding: 5px 12px; background: var(--sage-pale);
            color: var(--ink-light); text-decoration: none;
        }
        .col-sends-chip:hover { background: var(--sage); color: #fff; }
        .acc-chevron {
            font-family: var(--serif);
            font-size: 1.4rem;
            font-style: italic;
            color: var(--sand);
            flex-shrink: 0;
            line-height: 1;
        }
        .acc-body {
            padding: 0 4px 22px;
            display: flex;
            flex-direction: column;
            gap: 0;
        }
        .acc-sec { border-top: 1px solid var(--cream); }
        .acc-sec-head {
            width: 100%; display: flex; align-items: center; gap: 14px;
            padding: 14px 0; background: none; border: none; cursor: pointer;
            font-family: var(--sans); text-align: left;
        }
        .acc-sec-title {
            font-size: 0.58rem; letter-spacing: 3px; text-transform: uppercase;
            color: var(--stone); font-weight: 400;
        }
        .acc-sec-hint { font-size: 0.78rem; font-style: italic; color: var(--stone); flex: 1; }
        .acc-sec-chev { margin-left: auto; font-family: var(--serif); font-size: 1.2rem; color: var(--sand); line-height: 1; }
        .acc-sec-head:hover .acc-sec-title { color: var(--sage); }
        .acc-sec-body { padding: 0 0 18px; }

        .acc-block h4 {
            font-size: 0.58rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--stone);
            margin-bottom: 10px;
            font-weight: 400;
        }
        .acc-empty {
            font-size: 0.82rem;
            color: var(--stone);
            font-style: italic;
        }

        /* ===== ETSY GRID CREATOR (tool page) =====
           Local variables map the tool's own palette onto the
           site's shared theme (ink/sage/gold/cream/sand) so it
           reads as part of Studio Plan rather than a bolted-on app. */
        :root {
            --tool-navy: var(--ink);
            --tool-navy-dark: #1D1B18;
            --tool-accent: var(--sage);
            --tool-bg: var(--cream);
            --tool-bg-2: var(--sand);
            --tool-border: var(--sand);
            --tool-r: 12px;
            --tool-r-sm: 8px;
            --tool-sh: 0 1px 4px rgba(42,40,37,.08);
            --tool-sh2: 0 2px 12px rgba(42,40,37,.12);
            --tool-t: all .18s ease;
        }

body.tool-page{font-family:var(--sans);background:var(--tool-bg);color:var(--tool-navy);height:100dvh;display:flex;flex-direction:column;overflow:hidden;}
::-webkit-scrollbar{width:5px;height:5px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--tool-border);border-radius:3px;}
input[type=range]{-webkit-appearance:none;appearance:none;height:4px;background:var(--tool-border);border-radius:2px;outline:none;cursor:pointer;}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:var(--tool-accent);border-radius:50%;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.15);}
input[type=range]::-moz-range-thumb{width:16px;height:16px;background:var(--tool-accent);border-radius:50%;border:none;cursor:pointer;}

.notice{flex-shrink:0;padding:6px 16px;background:var(--gold-pale);border-bottom:1px solid var(--tool-border);border-left:3px solid var(--gold);font-size:11px;color:var(--stone);font-weight:400;}

#stage-wrap{flex-shrink:0;background:var(--tool-bg-2);border-bottom:1px solid var(--tool-border);}
.page-nav{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 14px;background:var(--white);border-bottom:1px solid var(--tool-border);}
.nav-btn{width:30px;height:30px;border-radius:50%;border:1px solid var(--tool-border);background:var(--white);color:var(--tool-navy);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--tool-t);}
.nav-btn:hover:not(:disabled){border-color:var(--tool-accent);color:var(--tool-accent);}
.nav-btn:disabled{opacity:.35;cursor:not-allowed;}
.page-label{font-size:12px;font-weight:500;color:var(--tool-navy);min-width:110px;text-align:center;}
.ps-canvas-wrap{position:relative;height:46vh;min-height:200px;max-height:70vh;overflow:hidden;background:var(--tool-bg-2);display:flex;align-items:center;justify-content:center;}
#canvas{box-shadow:var(--tool-sh2);background:#fff;max-width:100%;max-height:100%;}
.ps-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--stone);text-align:center;padding:30px;}
.ps-empty h3{font-family:var(--serif);font-size:19px;font-weight:500;color:var(--tool-navy);font-style:italic;}
.ps-empty p{font-size:12.5px;max-width:260px;line-height:1.6;font-weight:300;}

#options{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 16px 60px;display:flex;flex-direction:column;gap:12px;max-width:640px;margin:0 auto;width:100%;}
.card{background:var(--white);border:1px solid var(--tool-border);border-radius:var(--tool-r);padding:14px 14px 12px;box-shadow:var(--tool-sh);}
.kicker{font-size:9px;letter-spacing:2.5px;text-transform:uppercase;color:var(--tool-accent);font-weight:500;margin-bottom:11px;display:flex;align-items:center;justify-content:space-between;}

.upload-row{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.btn-primary{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 12px;background:var(--tool-navy);color:var(--white);border:none;border-radius:7px;font-family:var(--sans);font-size:12.5px;cursor:pointer;transition:var(--tool-t);}
.btn-primary:hover{background:var(--tool-navy-dark);}
.hint{font-size:11px;color:var(--stone);font-weight:300;line-height:1.5;margin-bottom:8px;}

.batch-strip{display:flex;gap:8px;overflow-x:auto;padding:4px 0 2px;}
.batch-thumb{position:relative;flex-shrink:0;width:54px;height:54px;border-radius:7px;overflow:hidden;border:2px solid var(--tool-border);background:repeating-conic-gradient(#ddd 0% 25%,#fff 0% 50%) 0 0/10px 10px;cursor:grab;transition:transform .12s ease, border-color .12s ease, box-shadow .12s ease;touch-action:pan-y;}
.batch-thumb:active{cursor:grabbing;}
.batch-thumb.dragging{opacity:.4;}
.batch-thumb.drag-over{border-color:var(--tool-accent);box-shadow:0 0 0 2px var(--tool-accent);transform:scale(1.05);}
.batch-thumb img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;}
.order-badge{position:absolute;bottom:1px;left:1px;min-width:14px;height:14px;padding:0 3px;background:rgba(42,40,37,.75);border-radius:4px;color:#fff;font-size:9px;font-weight:600;display:flex;align-items:center;justify-content:center;line-height:1;z-index:1;}
.batch-thumb .bx{position:absolute;top:1px;right:1px;width:16px;height:16px;background:rgba(42,40,37,.75);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;border:none;cursor:pointer;padding:0;}
.batch-thumb .bx svg{width:8px;height:8px;}
.batch-strip{align-items:flex-start;}
.batch-col{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:4px;width:54px;}
.pal-repeat{display:flex;width:54px;border:1px solid var(--tool-border);border-radius:6px;overflow:hidden;}
.pal-rp{flex:1;border:none;background:var(--white);color:var(--ink);font-size:8px;letter-spacing:.2px;padding:3px 1px;cursor:pointer;border-right:1px solid var(--tool-border);line-height:1.2;}
.pal-rp:last-child{border-right:none;}
.pal-rp.active{background:var(--tool-navy);color:var(--white);}
.batch-add{flex-shrink:0;width:54px;height:54px;border-radius:7px;border:1.5px dashed var(--tool-border);background:var(--tool-bg);display:flex;align-items:center;justify-content:center;color:var(--stone);cursor:pointer;transition:var(--tool-t);}
.batch-add:hover{border-color:var(--tool-accent);color:var(--tool-accent);}
.batch-count{font-size:10.5px;color:var(--stone);font-weight:400;margin-bottom:6px;}

.mode-toggle{display:flex;gap:3px;background:var(--tool-bg);border:1px solid var(--tool-border);padding:4px;border-radius:8px;margin-bottom:10px;}
.mode-btn{flex:1;padding:7px 0;font-size:12px;font-weight:400;border:none;background:none;color:var(--tool-accent);border-radius:6px;cursor:pointer;font-family:var(--sans);transition:var(--tool-t);}
.mode-btn.active{background:var(--tool-navy);color:var(--white);box-shadow:0 1px 4px rgba(42,40,37,.2);}

.slider-row{display:flex;align-items:center;gap:10px;margin-bottom:9px;}
.slider-row .lbl{font-size:12px;font-weight:300;color:var(--tool-navy);flex-shrink:0;min-width:92px;}
.slider-row input[type=range]{flex:1;}
.slider-row .val{font-size:11px;font-weight:500;color:var(--tool-accent);text-align:right;min-width:44px;flex-shrink:0;}
.stepper-row{display:flex;align-items:center;gap:10px;margin-bottom:9px;}
.stepper-row .lbl{font-size:12px;font-weight:300;color:var(--tool-navy);flex-shrink:0;min-width:92px;}
.stepper{display:flex;align-items:center;gap:0;border:1.5px solid var(--tool-border);border-radius:7px;overflow:hidden;}
.step-btn{width:28px;height:28px;border:none;background:var(--tool-bg);color:var(--tool-navy);font-size:14px;cursor:pointer;}
.step-btn:hover{background:var(--tool-border);}
.step-val{width:36px;text-align:center;font-size:12.5px;font-weight:500;background:var(--white);height:28px;line-height:28px;}

.chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:9px;}
.sh-chip{padding:6px 13px;border-radius:20px;font-size:11.5px;font-weight:400;border:1.5px solid var(--tool-border);background:var(--tool-bg);color:var(--tool-navy);cursor:pointer;transition:var(--tool-t);white-space:nowrap;font-family:var(--sans);}
.sh-chip.active{background:var(--tool-navy);color:var(--white);border-color:var(--tool-navy);}

.toggle-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px;}
.toggle-label{font-size:12.5px;color:var(--tool-navy);font-weight:500;}
.tog{position:relative;width:32px;height:18px;background:var(--tool-border);border-radius:9px;cursor:pointer;transition:background .2s;flex-shrink:0;}
.tog.on{background:var(--tool-accent);}
.tog::after{content:'';position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.2);}
.tog.on::after{transform:translateX(14px);}

.text-field{width:100%;padding:8px 10px;border:1.5px solid var(--tool-border);border-radius:7px;font-family:var(--sans);font-size:12.5px;background:var(--tool-bg);color:var(--tool-navy);margin-bottom:9px;}
.text-field:focus{outline:none;border-color:var(--tool-accent);}

.color-row{display:flex;gap:10px;margin-bottom:9px;}
.color-field{flex:1;display:flex;align-items:center;gap:8px;background:var(--tool-bg);border:1px solid var(--tool-border);border-radius:7px;padding:5px 10px;}
.color-field input[type=color]{width:24px;height:24px;border:none;padding:0;background:none;cursor:pointer;border-radius:5px;}
.color-field label{font-size:10.5px;color:var(--stone);}

.body-collapsed{display:none;}
.body-open{display:block;margin-top:10px;}

.export-btn{width:100%;padding:15px;border-radius:var(--tool-r);background:var(--tool-navy);color:var(--white);font-family:var(--sans);font-size:13px;font-weight:400;border:none;cursor:pointer;transition:var(--tool-t);letter-spacing:.3px;box-shadow:var(--tool-sh2);display:flex;align-items:center;justify-content:center;gap:8px;}
.export-btn:hover:not(:disabled){background:var(--tool-navy-dark);}
.export-btn:disabled{opacity:.45;cursor:not-allowed;}
.export-btn-secondary{background:var(--white);color:var(--tool-navy);border:1.5px solid var(--tool-border);box-shadow:none;margin-bottom:10px;}
.export-btn-secondary:hover:not(:disabled){background:var(--tool-bg-2);border-color:var(--tool-accent);color:var(--tool-accent);}
.fmt-row{display:flex;border:1.5px solid var(--tool-border);border-radius:var(--tool-r-sm);overflow:hidden;margin-bottom:9px;}
.fmt-btn{flex:1;padding:8px 0;font-family:var(--sans);font-size:12.5px;font-weight:500;background:var(--tool-bg);color:var(--tool-navy);border:none;cursor:pointer;transition:var(--tool-t);}
.fmt-btn.active{background:var(--tool-navy);color:var(--white);}
.fmt-btn+.fmt-btn{border-left:1.5px solid var(--tool-border);}

.btn-remove{padding:9px 12px;background:none;border:1.5px solid #e0c0c0;color:#c07070;border-radius:7px;font-family:var(--sans);font-size:12px;cursor:pointer;transition:var(--tool-t);white-space:nowrap;}
.btn-remove:hover{background:#F6E9E7;}
.thumb-box{display:flex;justify-content:center;padding:4px 0 9px;}
.thumb-cv{border-radius:6px;border:1px solid var(--tool-border);background:repeating-conic-gradient(#ddd 0% 25%,#fff 0% 50%) 0 0/12px 12px;max-width:100%;max-height:64px;}
.centre-btn{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;padding:8px;background:none;border:1px solid var(--tool-border);border-radius:6px;font-family:var(--sans);font-size:11.5px;color:var(--tool-accent);cursor:pointer;transition:var(--tool-t);margin-top:2px;}
.centre-btn:hover{border-color:var(--tool-accent);background:var(--tool-bg-2);}
.card.disabled-card{opacity:.45;pointer-events:none;}
