        :root {
            --terra:      #c0552a;
            --terra-lt:   #e8804f;
            --terra-bg:   #fdf1eb;
            --forest:     #3a7a52;
            --forest-lt:  #4a9465;
            --forest-bg:  #edf5f0;
            --slate:      #3d6b8c;
            --slate-bg:   #eef4f8;
            --gold:       #b07d2e;
            --gold-bg:    #faf3e0;
            --social:     #7c4fa0;
            --orient:     #2d7d9a;
            --hike:       #6b8c3a;
            --adventure:  #8c3a6b;
            --beer:       #c47d2a;
            --social-lt:  #9b6dbf;
            --social-bg:  #f3eef9;
            --diff-green: #2e7d52; --diff-gbg: #e8f5ee;
            --diff-yell:  #8a6200; --diff-ybg: #fff8e1;
            --diff-red:   #c0392b; --diff-rbg: #fdecea;
            --bg:       #fdfaf7;
            --card:     #ffffff;
            --ink:      #1e1a16;
            --ink-2:    #3d3630;
            --muted:    #8c7b70;
            --dim:      #b8a99e;
            --border:   #ece5df;
            --border-md:#d6cdc6;
        }
        *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
        html{scroll-behavior:smooth}
        body{font-family:'Outfit',sans-serif;background:var(--bg);color:var(--ink);min-height:100dvh;padding-bottom:90px;overflow-x:hidden}

        /* HEADER */
        header{position:sticky;top:0;z-index:60;background:var(--bg);border-bottom:1.5px solid var(--border);padding:11px 16px;display:flex;justify-content:space-between;align-items:center}
        .logo{font-family:'Playfair Display',serif;font-size:1.45rem;font-weight:800;color:var(--terra);letter-spacing:-0.02em;line-height:1}
        .logo span{color:var(--ink-2);font-style:italic;font-weight:700}
        .week-label{font-size:9px;font-weight:600;color:var(--dim);letter-spacing:0.14em;text-transform:uppercase;margin-top:3px}
        .view-toggle{display:flex;background:var(--border);border-radius:10px;padding:3px;gap:2px}
        .vt-btn{font-size:11px;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;color:var(--muted);background:transparent;border:none;border-radius:7px;cursor:pointer;padding:6px 14px;transition:all .18s}
        .vt-btn.active{background:var(--card);color:var(--terra);box-shadow:0 1px 4px rgba(0,0,0,.1)}

        /* MAIN */
        main{padding:14px 14px 0;max-width:560px;margin:0 auto}

        /* TODAY BANNER */
        #today-banner{background:linear-gradient(135deg,var(--terra) 0%,var(--terra-lt) 100%);border-radius:18px;padding:14px 16px;margin-bottom:14px;position:relative;overflow:hidden}
        #today-banner::after{content:'';position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.07);pointer-events:none}
        .today-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:rgba(255,255,255,.75);display:flex;align-items:center;gap:7px;margin-bottom:10px}
        .today-dot{width:6px;height:6px;border-radius:50%;background:#ffe0b2;box-shadow:0 0 8px #ffe0b2;animation:pulse 2s infinite}
        @keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.5)}}
        .today-run-item{padding:7px 0;border-bottom:1px solid rgba(255,255,255,.12)}
        .today-run-item:last-child{border-bottom:none;padding-bottom:0}
        .today-run-name{font-family:'Playfair Display',serif;font-size:1rem;font-weight:700;color:white;line-height:1.2}
        .today-run-meta{font-size:11px;color:rgba(255,255,255,.65);margin-top:2px}

        /* FILTER */
        .section-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--dim);margin-bottom:9px}
        .filter-row{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px;padding-bottom:2px}
        .filter-chip{font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--muted);background:var(--card);border:1.5px solid var(--border-md);border-radius:20px;padding:6px 15px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all .18s}
        .filter-chip:hover{border-color:var(--terra);color:var(--terra)}
        .filter-chip.active{background:var(--terra);border-color:var(--terra);color:white}
        .filter-chip.trail.active{background:var(--forest);border-color:var(--forest);color:white}
        .filter-chip.race.active{background:var(--gold);border-color:var(--gold);color:white}
        .filter-chip.oneoff.active{background:var(--slate);border-color:var(--slate);color:white}
        .filter-chip.social.active{background:var(--social);border-color:var(--social);color:white}
        .filter-chip.orient.active{background:var(--orient);border-color:var(--orient);color:white}
        .filter-chip.hike.active{background:var(--hike);border-color:var(--hike);color:white}
        .filter-chip.beer.active{background:var(--beer);border-color:var(--beer);color:white}
        .filter-chip.my-runs.active{background:var(--slate);border-color:var(--slate);color:white}
        .filter-chip.group-chip.active{background:var(--ink);border-color:var(--ink);color:white}

        /* RUN CARDS */
        .run-card{background:var(--card);border:1.5px solid var(--border);border-radius:18px;padding:0;margin-bottom:10px;overflow:hidden;transition:transform .18s,box-shadow .18s,border-color .18s;animation:fadeUp .25s ease both;box-shadow:0 2px 8px rgba(0,0,0,.04)}
        .run-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.09)}
        .run-card.road:hover{border-color:var(--terra)}
        .run-card.trail:hover{border-color:var(--forest)}
        .run-card.race:hover{border-color:var(--gold)}
        .run-card.oneoff:hover{border-color:var(--slate)}
        .run-card.social:hover{border-color:var(--social)}
        .run-card.orient:hover{border-color:var(--orient)}
        .run-card.hike:hover{border-color:var(--hike)}
        .run-card.adventure:hover{border-color:var(--adventure)}
        .run-card.beer:hover{border-color:var(--beer)}

        .card-topbar{height:4px;background:var(--terra)}
        .run-card.trail      .card-topbar{background:var(--forest)}
        .run-card.race       .card-topbar{background:var(--gold)}
        .run-card.oneoff     .card-topbar{background:var(--slate)}
        .run-card.social     .card-topbar{background:var(--social)}
        .run-card.orient     .card-topbar{background:var(--orient)}
        .run-card.hike       .card-topbar{background:var(--hike)}
        .run-card.adventure  .card-topbar{background:var(--adventure)}
        .run-card.beer       .card-topbar{background:var(--beer)}

        .card-body{padding:13px 16px 15px}

        /* Row 1: when + surface */
        .card-row1{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}
        .card-when{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--terra)}
        .run-card.trail  .card-when{color:var(--forest)}
        .run-card.race   .card-when{color:var(--gold)}
        .run-card.oneoff .card-when{color:var(--slate)}
        .run-card.social .card-when{color:var(--social)}
        .card-surface{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);background:var(--border);padding:3px 9px;border-radius:20px}

        /* Row 2: name */
        .card-name{font-family:'Playfair Display',serif;font-size:1.2rem;font-weight:700;color:var(--ink);line-height:1.2;margin-bottom:6px}
        .card-desc{font-size:12px;color:var(--ink-2);line-height:1.5;margin-bottom:8px;font-style:italic}
        .card-row4{display:flex;align-items:center;gap:10px;margin-bottom:9px;flex-wrap:wrap;font-size:11px;color:var(--muted);}
        .card-policy{font-weight:600;color:var(--ink-2);}
        .card-pace{color:var(--muted);}

        /* Row 3: distance + difficulty */
        .card-row3{display:flex;align-items:center;gap:8px;margin-bottom:9px;flex-wrap:wrap}
        .card-distance{font-size:12px;font-weight:600;color:var(--ink-2)}
        .card-sep{color:var(--dim);font-size:10px}
        .diff-pill{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:3px 10px;border-radius:20px;display:inline-flex;align-items:center;gap:4px}
        .diff-0{background:var(--diff-gbg);color:var(--diff-green)}
        .diff-1{background:var(--diff-ybg);color:var(--diff-yell)}
        .diff-2{background:var(--diff-rbg);color:var(--diff-red)}
        .diff-pip{width:6px;height:6px;border-radius:50%}
        .diff-0 .diff-pip{background:var(--diff-green)}
        .diff-1 .diff-pip{background:var(--diff-yell)}
        .diff-2 .diff-pip{background:var(--diff-red)}

        /* Row 4: location + post-run */
        .card-location{font-size:12px;color:var(--muted);margin-bottom:13px;display:flex;align-items:flex-start;gap:5px;line-height:1.4}
        .loc-icon{flex-shrink:0;margin-top:1px}
        .post-run{color:var(--forest);font-weight:600}
        .loc-sep{color:var(--dim);margin:0 3px}

        /* Row 5: CTA */
        .card-footer{display:flex;justify-content:flex-end;align-items:center;gap:8px}
        .share-btn{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--muted);background:none;border:1.5px solid var(--border-md);border-radius:20px;padding:6px 12px;cursor:pointer;transition:all .18s}
        .share-btn:hover{border-color:var(--terra);color:var(--terra)}
        .join-btn{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:white;background:var(--terra);padding:10px 18px;border-radius:12px;text-decoration:none;white-space:nowrap;display:inline-block;transition:background .18s,transform .15s,box-shadow .15s;box-shadow:0 2px 8px rgba(192,85,42,.25);border:none;cursor:pointer}
        .join-btn:hover{background:var(--terra-lt);transform:translateY(-1px);box-shadow:0 4px 14px rgba(192,85,42,.3)}
        .join-btn.trail{background:var(--forest);box-shadow:0 2px 8px rgba(58,122,82,.25)}
        .join-btn.trail:hover{background:var(--forest-lt)}
        .join-btn.race{background:var(--gold);box-shadow:0 2px 8px rgba(176,125,46,.25)}
        .join-btn.race:hover{background:#c28c35}
        .join-btn.oneoff{background:var(--slate);box-shadow:0 2px 8px rgba(61,107,140,.25)}
        .join-btn.oneoff:hover{background:#4f80a0}
        .join-btn.social{background:var(--social);box-shadow:0 2px 8px rgba(124,79,160,.25)}
        .join-btn.social:hover{background:var(--social-lt)}
        .join-btn.no-link{opacity:.25;cursor:default;pointer-events:none;background:var(--muted);box-shadow:none}

        /* DISCLAIMER */
        .disclaimer{font-size:13px;color:var(--dim);font-style:italic;margin:-4px 0 12px;line-height:1.5}
        .organizer-callout{font-size:12px;color:var(--muted);margin:-4px 0 14px;line-height:1.5;background:var(--card);border:1.5px solid var(--border);border-radius:10px;padding:8px 12px;}

        /* EMPTY */
        .empty-state{text-align:center;padding:40px 20px}
        .empty-state .icon{font-size:2rem;display:block;margin-bottom:10px}
        .empty-state p{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--dim)}

        /* CALENDAR */
        #calendar-view{display:none}
        .cal-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
        .cal-month-label{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:700;font-style:italic;color:var(--ink)}
        .cal-arrow{background:var(--card);border:1.5px solid var(--border-md);border-radius:10px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:var(--muted);cursor:pointer;font-size:18px;transition:all .15s;box-shadow:0 1px 4px rgba(0,0,0,.06)}
        .cal-arrow:hover{border-color:var(--terra);color:var(--terra)}
        .legend{display:flex;gap:12px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
        .legend-item{display:flex;align-items:center;gap:5px}
        .legend-dot{width:9px;height:9px;border-radius:3px}
        .legend-text{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--dim)}
        .cal-dow-row{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:6px}
        .cal-dow{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--dim);text-align:center;padding:4px 0}
        .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
        .cal-day{border-radius:10px;background:var(--card);border:1.5px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:5px 3px;cursor:default;transition:all .15s;min-height:52px}
        .cal-day.has-runs{cursor:pointer}
        .cal-day.has-runs:hover{border-color:var(--terra);box-shadow:0 3px 12px rgba(192,85,42,.12);transform:translateY(-1px)}
        .cal-day.other-month{opacity:.2;pointer-events:none;background:transparent;border-color:transparent}
        .cal-day.today{background:var(--terra-bg);border-color:var(--terra);box-shadow:0 2px 8px rgba(192,85,42,.15)}
        .cal-day.selected{background:var(--terra);border-color:var(--terra);box-shadow:0 4px 14px rgba(192,85,42,.25)}
        .cal-day-num{font-size:11px;font-weight:700;color:var(--muted);line-height:1;margin-bottom:4px}
        .cal-day.today .cal-day-num{color:var(--terra)}
        .cal-day.selected .cal-day-num{color:white}
        .cal-count-wrap{display:flex;flex-direction:column;align-items:center;gap:3px;width:100%}
        .cal-count{font-size:9px;font-weight:700;color:var(--terra);background:var(--terra-bg);border-radius:4px;padding:1px 4px;width:100%;text-align:center}
        .cal-day.today .cal-count{background:rgba(192,85,42,.15)}
        .cal-day.selected .cal-count{background:rgba(255,255,255,.2);color:white}
        .cal-surf-strip{display:flex;gap:2px;justify-content:center}
        .cal-surf-dot{width:5px;height:5px;border-radius:2px;flex-shrink:0}
        .cal-surf-dot.road{background:var(--terra)}
        .cal-surf-dot.trail{background:var(--forest)}
        .cal-surf-dot.race{background:var(--gold)}
        .cal-surf-dot.oneoff{background:var(--slate)}
        .cal-surf-dot.social{background:var(--social)}
        .cal-surf-dot.orient{background:var(--orient)}
        .cal-surf-dot.hike{background:var(--hike)}
        .cal-surf-dot.adventure{background:var(--adventure)}
        .cal-surf-dot.beer{background:var(--beer)}
        #day-detail{margin-top:14px;display:none}
        #day-detail.open{display:block;animation:fadeUp .2s ease}
        .day-detail-header{font-family:'Playfair Display',serif;font-size:1rem;font-weight:700;font-style:italic;color:var(--terra);margin-bottom:12px;padding-bottom:10px;border-bottom:1.5px solid var(--border)}
        .day-detail-empty{font-size:12px;color:var(--muted)}

        /* MODAL */
        #submitModal{display:none;position:fixed;inset:0;z-index:100;background:rgba(30,26,22,.85);backdrop-filter:blur(12px);padding:20px 14px;overflow-y:auto}
        #submitModal.open{display:block}
        .modal-inner{max-width:480px;margin:0 auto;background:var(--card);border-radius:24px;padding:22px 18px;box-shadow:0 24px 60px rgba(0,0,0,.25)}
        .modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
        .modal-title{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:700;font-style:italic;color:var(--terra)}
        .modal-close{background:var(--border);border:none;border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px;cursor:pointer;transition:all .15s}
        .modal-close:hover{background:var(--border-md);color:var(--ink)}
        .form-label{display:block;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);margin-bottom:6px}
        .form-input{width:100%;background:var(--bg);border:1.5px solid var(--border-md);border-radius:10px;padding:10px 13px;color:var(--ink);font-family:'Outfit',sans-serif;font-size:14px;outline:none;transition:border-color .15s;appearance:none}
        .form-input:focus{border-color:var(--terra);background:white}
        .form-input::placeholder{color:var(--dim)}
        .form-group{margin-bottom:11px}
        .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
        .event-type-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:11px}
        .et-btn{font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--muted);background:var(--bg);border:1.5px solid var(--border-md);border-radius:10px;padding:10px;cursor:pointer;transition:all .15s;text-align:center}
        .et-btn.active{background:var(--terra-bg);border-color:var(--terra);color:var(--terra)}
        .policy-toggle{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-bottom:4px}
        .policy-btn{font-size:11px;font-weight:600;letter-spacing:.03em;color:var(--muted);background:var(--bg);border:1.5px solid var(--border-md);border-radius:10px;padding:8px 4px;cursor:pointer;transition:all .15s;text-align:center}
        .policy-btn.active{background:var(--forest-bg);border-color:var(--forest);color:var(--forest)}
        .token-section{padding-top:14px;border-top:1.5px solid var(--border);margin-top:4px}
        .token-label{color:var(--terra)!important}
        #token-error{display:none;font-size:10px;font-weight:600;color:#c0392b;text-transform:uppercase;letter-spacing:.05em;margin-top:6px}
        .submit-btn{width:100%;background:var(--terra);border:none;border-radius:12px;padding:14px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:white;cursor:pointer;margin-top:14px;box-shadow:0 4px 16px rgba(192,85,42,.3);transition:background .18s,transform .15s,box-shadow .15s}
        .submit-btn:hover{background:var(--terra-lt);transform:translateY(-1px);box-shadow:0 6px 20px rgba(192,85,42,.35)}

        /* BOTTOM NAV */
        nav.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:50;background:white;border-top:1.5px solid var(--border);padding:10px 24px;display:flex;justify-content:space-around;align-items:center;box-shadow:0 -4px 20px rgba(0,0,0,.06)}
        .nav-btn{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--dim);transition:color .15s;padding:4px 10px}
        .nav-btn:hover{color:var(--terra)}
        .nav-btn span{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.1em}
        .nav-plus{width:48px;height:48px;background:var(--terra);border-radius:14px;border:none;cursor:pointer;font-size:24px;color:white;font-weight:300;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(192,85,42,.4);transition:transform .15s,box-shadow .15s,background .15s}
        .nav-plus:hover{transform:translateY(-2px);background:var(--terra-lt);box-shadow:0 6px 22px rgba(192,85,42,.45)}

        /* TOAST */
        #toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%) translateY(16px);background:var(--forest);color:white;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;padding:10px 22px;border-radius:30px;box-shadow:0 4px 16px rgba(58,122,82,.3);z-index:9999;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none}
        #toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

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

        /* ── ADMIN MODE ──────────────────────────────────────────────────── */
        #admin-bar {
            display: none; position: sticky; top: 57px; z-index: 55;
            background: var(--terra); color: white;
            padding: 7px 16px;
            display: none; align-items: center; justify-content: space-between;
        }
        #admin-bar.on { display: flex; }
        .admin-bar-label {
            font-size: 10px; font-weight: 700; text-transform: uppercase;
            letter-spacing: 0.15em; display: flex; align-items: center; gap: 7px;
        }
        .admin-dot { width: 7px; height: 7px; border-radius: 50%; background: #ffe0b2; box-shadow: 0 0 6px #ffe0b2; animation: pulse 2s infinite; }
        .admin-exit-btn {\n259:        .admin-exit-btn:hover { background: rgba(255,255,255,0.3); }
        .admin-manage-btn { background:rgba(255,255,255,0.15); border:1.5px solid rgba(255,255,255,0.4); border-radius:8px; color:white; font-size:11px; font-weight:700; padding:5px 12px; cursor:pointer; transition:background .15s; letter-spacing:.03em; }
        .admin-manage-btn:hover { background:rgba(255,255,255,0.28); }
            font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em;
            background: rgba(255,255,255,0.2); border: 1px solid rgba(255,255,255,0.4);
            color: white; border-radius: 6px; padding: 4px 11px; cursor: pointer;
            transition: background 0.15s;
        }
        .admin-exit-btn:hover { background: rgba(255,255,255,0.3); }

        /* Admin controls on each card */
        .card-admin-row {
            display: none; justify-content: flex-end; gap: 8px;
            padding: 8px 14px 0; border-top: 1px solid var(--border);
            margin-top: 10px;
        }
        .card-admin-row.visible { display: flex; }
        .card-admin-btn {
            font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em;
            border: 1.5px solid; border-radius: 8px; padding: 5px 13px; cursor: pointer;
            background: transparent; transition: all 0.15s; display: flex; align-items: center; gap: 5px;
        }
        .btn-edit  { color: var(--slate); border-color: var(--slate-dim); }
        .btn-edit:hover  { background: var(--slate-bg); }
        .btn-delete { color: var(--diff-red); border-color: var(--diff-red-bg); }
        .btn-delete:hover { background: var(--diff-red-bg); }

        /* Admin mode toggle in nav */
        .nav-btn.admin-active { color: var(--terra); }
        .nav-btn.org-active   { color: var(--forest); }

        /* Org bar */
        #org-bar {
            display: none; position: sticky; top: 57px; z-index: 55;
            background: var(--forest); color: white;
            padding: 7px 16px; align-items: center; justify-content: space-between;
        }
        #org-bar.on { display: flex; }
        .org-bar-label {
            font-size: 10px; font-weight: 700; text-transform: uppercase;
            letter-spacing: 0.15em; display: flex; align-items: center; gap: 7px;
        }
        .org-dot { width: 7px; height: 7px; border-radius: 50%; background: #c8f7c5; box-shadow: 0 0 6px #c8f7c5; animation: pulse 2s infinite; }
        .org-exit-btn {
            font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em;
            background: rgba(255,255,255,0.2); border: 1px solid rgba(255,255,255,0.4);
            color: white; border-radius: 6px; padding: 4px 11px; cursor: pointer;
            transition: background 0.15s;
        }
        .org-exit-btn:hover { background: rgba(255,255,255,0.3); }

        /* Editing state — modal title changes colour */
        #submitModal.editing .modal-title { color: var(--slate); }
        #submitModal.editing .submit-btn  { background: var(--slate); box-shadow: 0 4px 16px rgba(61,107,140,.3); }
        #submitModal.editing .submit-btn:hover { background: #4e84a8; }
        #submitModal.editing .et-btn.active { background: var(--slate-bg); border-color: var(--slate); color: var(--slate); }

        /* Delete confirm modal */
        #deleteModal { display:none; position:fixed; inset:0; z-index:110; background:rgba(30,26,22,.85); backdrop-filter:blur(12px); align-items:center; justify-content:center; padding: 20px; }
        #deleteModal.open { display:flex; }
        .delete-inner { background: var(--card); border-radius: 20px; padding: 24px 22px; max-width: 340px; width: 100%; box-shadow: 0 24px 60px rgba(0,0,0,.25); }
        .delete-title { font-family: 'Playfair Display', serif; font-size: 1.2rem; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
        .delete-name { font-size: 13px; color: var(--muted); margin-bottom: 18px; font-style: italic; }
        .delete-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
        .btn-cancel-del { background: var(--bg); border: 1.5px solid var(--border-md); border-radius: 10px; padding: 11px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); cursor: pointer; transition: background 0.15s; }
        .btn-cancel-del:hover { background: var(--border); }
        .btn-confirm-del { background: var(--diff-red); border: none; border-radius: 10px; padding: 11px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: white; cursor: pointer; transition: background 0.15s; }
        .btn-confirm-del:hover { background: #a02020; }
        /* ── FOOTER ─────────────────────────────────────────────────────── */
        .site-footer{background:var(--card);border-top:1.5px solid var(--border);margin-top:32px;padding:28px 16px 48px;font-family:'Outfit',sans-serif;}
        .footer-inner{max-width:600px;margin:0 auto;}
        .footer-section{margin-bottom:24px;}
        .footer-heading{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:12px;}
        .footer-groups{display:flex;flex-wrap:wrap;gap:8px;}
        .footer-group-link{font-size:12px;font-weight:600;color:var(--ink);text-decoration:none;background:var(--bg);border:1.5px solid var(--border);border-radius:20px;padding:5px 12px;transition:all .15s;}
        .footer-group-link:hover{border-color:var(--terra);color:var(--terra);}
        .footer-contact{font-size:12px;color:var(--muted);line-height:1.6;}
        .footer-contact a{color:var(--terra);font-weight:600;text-decoration:none;}
        .footer-bottom{font-size:11px;color:var(--dim);text-align:center;padding-top:16px;border-top:1px solid var(--border);margin-top:16px;font-style:italic;}
