  @import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500&display=swap');
  :root{
    --mono:'IBM Plex Mono',monospace;
    --sans:'IBM Plex Sans',sans-serif;
    --bg:#0f0f0f;
    --surface:#1a1a1a;
    --surface-bright:#222;
    --border:#2e2e2e;
    --border-bright:#3a3a3a;
    --text:#e8e4dc;
    --text-muted:#9a928a;
    --text-dim:#8e8a7a;
    --amber:#c83020;
    --amber-dim:#7a1a10;
    --amber-bg:#1e0808;
    --green:#4a9a5a;
    --green-dim:#1e4a28;
    --green-bg:#0e1e12;
    --yellow:#c8a830;
    --yellow-dim:#5a4a10;
    --yellow-bg:#181408;
    --red:#d05555;
    --red-dim:#5a1a1a;
    --red-bg:#180e0e;
    --gray:#878380;
    --gray-dim:#3a3530;
    --gray-bg:#141414;
    --otd-bg:#0e1a10;
    --otd-border:#1a4a28;
    --today-bg:#1e0e0e;
    --soon-bg:#1a1408;
    --sell:#40a0a0;
    --sell-dim:#1a4a4a;
    --sell-bg:#0e1a1a;
    --hat:#d08040;
    --hat-dim:#3a2010;
    --hat-bg:#1a0e08;
    --book:#a080c0;
    --book-dim:#3a2a50;
    --book-bg:#1a1420;
  }
  *{box-sizing:border-box;margin:0;padding:0;}

  body{font-family:var(--sans);background:var(--bg);color:var(--text);min-height:100vh;font-size:14px;line-height:1.5;}

  .site-header{background:var(--surface);border-bottom:1px solid var(--border);padding:12px 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;position:sticky;top:0;z-index:100;}
  .site-title{font-family:var(--mono);font-size:20px;font-weight:700;color:var(--amber);letter-spacing:.02em;flex:1;white-space:nowrap;}
  .header-actions{display:flex;align-items:center;gap:8px;}
  .fetched-at{font-family:var(--mono);font-size:11px;color:var(--text-dim);}
  .btn{font-family:var(--mono);font-size:11px;padding:4px 10px;border-radius:3px;border:1px solid var(--border-bright);background:var(--surface-bright);color:var(--text-muted);cursor:pointer;transition:border-color .15s,color .15s;white-space:nowrap;}
  .btn:hover{border-color:var(--amber-dim);color:var(--amber);}
  .btn-auth{position:relative;}
  .btn-auth.authed::after{content:'●';font-size:8px;color:var(--green);position:absolute;top:2px;right:2px;}

  .tab-row{display:flex;align-items:stretch;border-bottom:1px solid var(--border);background:var(--surface);padding:0 20px;}
  .tabs{display:flex;flex:0 0 auto;}
  .tab{font-family:var(--mono);font-size:14px;padding:10px 16px;cursor:pointer;border-bottom:2px solid transparent;color:var(--text-muted);transition:color .15s,border-color .15s;margin-bottom:-1px;user-select:none;}
  .tab:hover{color:var(--text);}
  .tab.active,.tab:focus-visible{color:var(--text);font-weight:600;border-bottom-color:var(--amber);outline:none;}
  .tab-badge{display:inline-block;background:var(--surface-bright);color:var(--text-dim);font-size:10px;padding:1px 5px;border-radius:10px;margin-left:5px;vertical-align:middle;}
  .on-this-day{margin-left:auto;display:flex;align-items:center;gap:12px;padding:6px 0 6px 20px;border-left:1px solid var(--border);min-width:0;overflow:hidden;}
  .otd-label{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text);white-space:nowrap;flex-shrink:0;}
  .otd-items{display:flex;flex-wrap:nowrap;gap:6px;overflow:hidden;min-width:0;}
  .otd-item{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap;}
  .otd-year{font-family:var(--mono);font-size:10px;color:var(--text-dim);}
  .otd-artist{font-size:12px;color:var(--text-muted);}
  .otd-sep{color:var(--border-bright);}
  .otd-venue{font-size:11px;color:var(--text-dim);}
  .otd-links{display:inline-flex;gap:4px;}
  .otd-none{font-family:var(--mono);font-size:11px;color:var(--text-dim);}

  .panel{display:none;padding:20px;max-width:1400px;margin:0 auto;}
  .panel.active{display:block;}
  .loading{font-family:var(--mono);font-size:12px;color:var(--text-dim);padding:40px 0;text-align:center;}
  .loading::after{content:'';display:inline-block;width:12px;animation:dots 1.2s steps(4,end) infinite;}
  @keyframes dots{0%{content:''}25%{content:'.'}50%{content:'..'}75%{content:'...'}}
  .hat-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 0;gap:14px;}
  .hat-loading-img{width:40px;height:40px;object-fit:contain;animation:hat-pulse 1.6s ease-in-out infinite;}
  @keyframes hat-pulse{0%,100%{opacity:.5;transform:scale(.92)}50%{opacity:1;transform:scale(1)}}
  .error-msg{font-family:var(--mono);font-size:12px;color:var(--red);padding:20px 0;}
  .toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--surface-bright);border:1px solid var(--border-bright);color:var(--text);font-family:var(--mono);font-size:12px;padding:8px 16px;border-radius:4px;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;z-index:999;white-space:nowrap;}
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

  .shows-table{width:100%;border-collapse:collapse;}
  .shows-table th{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);text-align:left;padding:6px 10px;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface);}
  .shows-table td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top;font-size:13px;}
  .shows-table tr.upcoming td{background:var(--surface);color:var(--text);}
  .shows-table tr.attended td{background:var(--bg);color:var(--text-muted);}
  .shows-table tr.row-today td{background:var(--today-bg);}
  .shows-table tr.row-soon td{background:var(--soon-bg);}
  .shows-table tr.row-otd td{background:var(--otd-bg);border-left:2px solid var(--otd-border);}
  .shows-table tr:hover td{opacity:.85;}
  .cell-date{font-family:var(--mono);font-size:12px;color:var(--text-muted);white-space:nowrap;}
  .cell-date .date-text{text-decoration:underline;text-decoration-color:var(--amber);text-underline-offset:2px;}
  .cell-date .day-of-week{color:var(--text-dim);font-size:11px;display:block;}
  .cell-artist{font-weight:500;}
  .attended-table .cell-artist{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .attended-table .cell-support{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .attended-table td:nth-child(2){max-width:160px;}
  .cell-support{color:var(--text-muted);font-size:12px;}
  .cell-venue{color:var(--text-muted);font-size:12px;}
  .shows-table .cell-venue a{color:var(--text-muted);text-decoration:none;}
  .shows-table .cell-venue a:hover{color:var(--text);}
  .cell-venue-mobile{display:none;}
  .col-support,.col-seat,.col-cost{}
  .links-cell,.cell-notes{white-space:nowrap;}
  .icon-link{font-size:14px;color:var(--text-dim);text-decoration:none;margin-right:4px;transition:color .15s;}
  .icon-link:hover{color:var(--text-muted);}
  .badge{font-family:var(--mono);font-size:9px;letter-spacing:.04em;text-transform:uppercase;padding:2px 5px;border-radius:2px;margin-left:5px;vertical-align:middle;white-space:nowrap;}
  .badge-vip{background:#1a2a10;color:#6aaa3a;border:1px solid #2a4a18;}
  .badge-group{background:#0e1420;color:#6080c0;border:1px solid #1a2a50;}
  .badge-otd{background:var(--otd-bg);color:#4aaa6a;border:1px solid var(--otd-border);}
  .badge-first{background:#0e1420;color:#6080c0;border:1px solid #2a3a70;}
  .badges{display:inline-flex;gap:3px;flex-wrap:wrap;margin-top:3px;}
  .badge-ticket{background:#0e1014;color:#6a808a;border:1px solid #1e2a30;}
  .badge-paper{background:#141008;color:#8a7830;border:1px solid #2a2210;}
  .badge-vip{background:#100a18;color:#8a60c0;border:1px solid #2a1840;}
  .badge-hat{background:var(--hat-bg);color:var(--hat);border:1px solid var(--hat-dim);}
  .badge-book{background:var(--book-bg);color:var(--book);border:1px solid var(--book-dim);}
  .badge-merch{background:#0e1414;color:#5a9090;border:1px solid #1a2a2a;}
  .badge-boxoffice{background:#0e1014;color:#6a808a;border:1px solid #1e2a30;}
  .badge-seat{background:#141010;color:#8a6a6a;border:1px solid #2a1818;}
  .badge-interaction{font-size:11px;background:none;border:none;padding:0;margin-left:4px;}
  .notes-text{max-width:340px;color:var(--text-muted);font-size:12px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .notes-text.expanded{-webkit-line-clamp:unset;overflow:visible;}
  .notes-toggle{font-family:var(--mono);font-size:10px;color:var(--text-dim);cursor:pointer;margin-left:4px;display:none;}
  .notes-toggle:hover{color:var(--text-muted);}
  .support{color:var(--text-muted);font-size:12px;margin-top:2px;}
  .day-of-week{font-family:var(--mono);font-size:11px;color:var(--text-dim);text-decoration:none;display:block;}
  .cell-cost{font-family:var(--mono);font-size:12px;color:var(--text-dim);white-space:nowrap;}
  .inner-tab-row{display:flex;align-items:center;border-bottom:1px solid var(--border);margin-bottom:16px;}
  .inner-tab{font-family:var(--mono);font-size:12px;padding:8px 14px;cursor:pointer;border-bottom:2px solid transparent;color:var(--text-dim);transition:color .15s,border-color .15s;margin-bottom:-1px;user-select:none;}
  .inner-tab:hover{color:var(--text-muted);}
  .inner-tab.active,.inner-tab:focus-visible{color:var(--text);font-weight:600;border-bottom-color:var(--amber);outline:none;}
  .inner-panel{display:none;}
  .inner-panel.active{display:block;}
  .forsale-tab-group{margin-left:auto;display:flex;align-items:center;gap:6px;padding-left:12px;padding-right:4px;}
  .forsale-btn{font-family:var(--mono);font-size:11px;background:none;border:1px solid var(--sell);border-radius:3px;color:var(--sell);padding:3px 8px;cursor:pointer;white-space:nowrap;transition:background .15s;}
  .forsale-btn:hover{background:var(--sell-bg);}
  .forsale-select{font-family:var(--mono);font-size:11px;background:var(--surface-bright);color:var(--sell);border:1px solid var(--sell);border-radius:3px;padding:3px 6px;cursor:pointer;outline:none;}
  .forsale-modal h3{font-family:var(--mono);font-size:12px;color:var(--sell);letter-spacing:.06em;text-transform:uppercase;margin-bottom:14px;}

  .multi-trigger{font-family:var(--mono);font-size:13px;color:var(--text-dim);cursor:pointer;}
  .multi-trigger:hover{color:var(--text-muted);}
  .multiset-event{font-size:13px;font-weight:500;color:var(--text);margin-bottom:14px;}
  .multiset-list{display:flex;flex-direction:column;gap:8px;}
  .multiset-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:3px;background:var(--surface-bright);border:1px solid var(--border);}
  .multiset-item:hover{border-color:var(--border-bright);}
  .multiset-order{font-family:var(--mono);font-size:10px;color:var(--text-dim);width:16px;flex-shrink:0;text-align:right;}
  .multiset-artist{flex:1;font-size:13px;color:var(--text-muted);}
  .ext-link{font-family:var(--mono);font-size:11px;color:var(--text-muted);text-decoration:none;border:1px solid var(--amber);border-radius:2px;padding:2px 8px;white-space:nowrap;flex-shrink:0;transition:color .15s,border-color .15s;}
  .ext-link::after{content:" ↗";color:var(--amber);}
  .ext-link:hover{color:var(--amber);}
  .multiset-loading{font-family:var(--mono);font-size:12px;color:var(--text-dim);padding:16px 0;text-align:center;}
  .history-year-header{display:flex;align-items:baseline;gap:10px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border);}
  .history-year-label{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--text-muted);}
  .history-year-count{font-family:var(--mono);font-size:11px;color:var(--text-dim);}
  .search-bar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
  .search-input{font-family:var(--mono);font-size:12px;background:var(--bg);border:1px solid var(--border-bright);border-radius:3px;color:var(--text);padding:6px 10px;outline:none;flex:1;min-width:120px;}
  .search-input:focus{border-color:var(--amber-dim);}
  .search-count{font-family:var(--mono);font-size:11px;color:var(--text-dim);margin-bottom:8px;}
  .search-empty{font-family:var(--mono);font-size:12px;color:var(--text-dim);text-align:center;padding:32px 0;}
  .attended-table{border:1px solid var(--border);border-radius:4px;overflow:hidden;}
  .attended-table .shows-table td{padding:6px 10px;font-size:12px;}
  .attended-table .shows-table tr{color:var(--text-muted);}
  .attended-table .shows-table tr:hover{color:var(--text);}

  .pot-table{width:100%;border-collapse:collapse;}
  .pot-table th{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);text-align:left;padding:6px 10px;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface);}
  .pot-table td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top;font-size:13px;}
  .pot-table tr.row-buy td{background:#0e1e12;}
  .pot-table tr.row-choose td{background:#181408;}
  .pot-table tr.row-sell td{background:var(--sell-bg);}
  .pot-table tr.row-pass td{background:var(--bg);}
  .pot-table tr:hover td{opacity:.85;}
  .group-header{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:8px 10px;border-radius:3px 3px 0 0;margin-top:20px;font-weight:500;}
  .group-header-buy{background:var(--green-bg);color:var(--green);border:1px solid var(--green-dim);}
  .group-header-choose{background:var(--yellow-bg);color:var(--yellow);border:1px solid var(--yellow-dim);}
  .group-header-sell{background:var(--sell-bg);color:var(--sell);border:1px solid var(--sell-dim);}
  .group-table-wrap{border:1px solid var(--border);border-top:none;border-radius:0 0 3px 3px;overflow:hidden;margin-bottom:4px;}
  .group-count{font-family:var(--mono);font-size:10px;opacity:.7;margin-left:6px;}
  .pass-details summary{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:8px 10px;color:var(--gray);background:var(--gray-bg);border:1px solid var(--gray-dim);border-radius:3px;cursor:pointer;margin-top:20px;list-style:none;font-weight:500;}
  .pass-details summary::-webkit-details-marker{display:none;}
  .pass-details[open] summary{border-radius:3px 3px 0 0;}
  .pass-details .group-table-wrap{margin-top:0;}
  .potential-group{margin-bottom:4px;}
  .cell-decision-ro{font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;padding:4px 10px;border-radius:3px;white-space:nowrap;font-weight:500;}
  .cell-decision-ro.buy{background:var(--green-bg);color:var(--green);border:1px solid var(--green-dim);}
  .cell-decision-ro.choose{background:var(--yellow-bg);color:var(--yellow);border:1px solid var(--yellow-dim);}
  .cell-decision-ro.sell{background:var(--sell-bg);color:var(--sell);border:1px solid var(--sell-dim);}
  .cell-decision-ro.pass{color:var(--gray);}
  .decision-select{font-family:var(--mono);font-size:11px;background:var(--surface-bright);color:var(--text);border:1px solid var(--border-bright);border-radius:3px;padding:3px 6px;cursor:pointer;outline:none;}
  .decision-select:focus{border-color:var(--amber-dim);}
  .revoke-btn{font-family:var(--mono);font-size:11px;padding:4px 10px;border-radius:3px;border:1px solid var(--border-bright);background:var(--surface-bright);color:var(--text-muted);cursor:pointer;margin-left:6px;white-space:nowrap;}
  .revoke-btn:hover{border-color:var(--amber-dim);color:var(--amber);}
  .save-indicator{font-family:var(--mono);font-size:10px;margin-left:6px;}
  .save-ok{color:var(--green);}
  .save-err{color:var(--red);}
  .cell-watching{font-size:12px;color:var(--text-muted);font-family:var(--mono);white-space:nowrap;}
  .watch-icon{color:var(--amber);}
  .cell-price{font-family:var(--mono);font-size:12px;color:var(--text-muted);white-space:nowrap;}
  .cell-context{font-size:11px;color:var(--text-dim);max-width:200px;line-height:1.6;}
  .cell-tier{font-family:var(--mono);font-size:10px;white-space:nowrap;}
  .tier-strong{color:var(--text-muted);}
  .tier-dots{color:var(--amber);}
  .tier-medium{color:var(--text-muted);}
  .tier-medium-strong{color:var(--text-muted);}
  .tier-low{color:var(--text-dim);}
  .cell-pot-notes{font-size:12px;color:var(--text-muted);max-width:280px;line-height:1.4;}
  .save-indicator{font-family:var(--mono);font-size:10px;margin-left:6px;}

  .modal-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:200;align-items:center;justify-content:center;}
  .modal-backdrop.open{display:flex;}
  .modal{background:var(--surface);border:1px solid var(--border-bright);border-radius:6px;padding:24px;width:360px;max-width:90vw;}
  .modal h3{font-family:var(--mono);font-size:19px;font-weight:700;color:var(--amber);letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px;}
  .modal p{font-size:12px;color:var(--text-muted);margin-bottom:14px;line-height:1.5;}
  .modal p a{color:var(--amber);}
  .modal input[type="password"]{width:100%;font-family:var(--mono);font-size:12px;background:var(--bg);border:1px solid var(--border-bright);border-radius:3px;color:var(--text);padding:8px 10px;margin-bottom:12px;outline:none;}
  .modal input[type="password"]:focus{border-color:var(--amber-dim);}
  .modal-actions{display:flex;gap:8px;justify-content:flex-end;}
  .btn-save{background:var(--amber-bg);border-color:var(--amber-dim);color:var(--text-muted);}
  .btn-save:hover{background:#2a1c08;}
  .btn-clear{background:var(--red-bg);border-color:var(--red-dim);color:var(--red);}

  .about-modal{width:480px;max-width:92vw;padding:0;overflow:hidden;}
  .about-hero{position:relative;height:200px;overflow:hidden;}
  .about-hero-img{width:100%;height:100%;object-fit:cover;object-position:center bottom;display:block;}
  .about-hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.55) 0%,rgba(0,0,0,.2) 45%,rgba(0,0,0,0) 100%);pointer-events:none;}
  .about-hero-text{position:absolute;top:0;left:0;right:0;padding:14px 20px;}
  .about-hero-handle{font-family:var(--mono);font-size:19px;font-weight:700;color:var(--amber);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;text-shadow:0 1px 3px rgba(0,0,0,.9);}
  .about-hero-tagline{position:absolute;bottom:-24px;right:20px;left:40%;text-align:right;font-family:var(--sans);font-size:18px;font-weight:500;color:var(--text);line-height:1.25;text-shadow:0 1px 4px rgba(0,0,0,.9);}
  .about-close-btn{position:absolute;top:10px;right:12px;background:rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.15);border-radius:3px;color:var(--text-muted);font-family:var(--mono);font-size:11px;padding:2px 8px;cursor:pointer;line-height:1.6;transition:background .15s;}
  .about-close-btn:hover{background:rgba(0,0,0,.75);color:var(--text);}
  .about-body{padding:16px 20px 20px;}
  .about-body p{font-size:13px;color:var(--text-muted);line-height:1.6;margin-bottom:14px;}
  .about-modal .about-links{display:flex;flex-direction:column;gap:7px;}
  .about-modal .about-link{font-family:var(--mono);font-size:19px;font-weight:700;color:var(--amber);text-decoration:none;padding:6px 10px;border:1px solid var(--amber-dim);border-radius:3px;background:var(--amber-bg);}
  .about-modal .about-link:hover{background:#2a1c08;}
  .hat-btn{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;font-size:22px;line-height:1;opacity:.85;transition:opacity .15s,transform .15s;}
  .hat-btn:hover{opacity:1;transform:rotate(-8deg) scale(1.08);}

  .bystander-banner{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:10px 14px;margin-bottom:16px;display:flex;align-items:center;gap:12px;font-size:12px;color:var(--text-muted);}
  .bystander-banner .forsale-cta{margin-left:auto;font-family:var(--mono);font-size:13px;font-weight:600;background:none;border:1px solid var(--sell);border-radius:3px;color:var(--sell);padding:4px 10px;cursor:pointer;white-space:nowrap;transition:background .15s;}
  .bystander-banner .forsale-cta:hover{background:var(--sell-bg);}
  .bystander-banner .recommend-cta-header{margin-left:auto;}
  .recommend-cta-header{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--yellow);border:1px solid var(--yellow-dim);border-radius:3px;padding:3px 9px;background:var(--yellow-bg);cursor:not-allowed;opacity:.6;white-space:nowrap;transition:background .15s,color .15s;}
  .recommend-cta-header.active{cursor:pointer;opacity:1;}
  .recommend-cta-header.active:hover{background:var(--yellow-dim);color:var(--yellow);}
  .recommend-modal{width:460px;max-width:92vw;}

  .notes-edit-wrap{display:flex;flex-direction:column;gap:4px;}
  .notes-textarea{font-family:var(--mono);font-size:11px;background:var(--bg);border:1px solid var(--amber-dim);border-radius:3px;color:var(--text);padding:6px 8px;resize:vertical;min-height:60px;width:100%;outline:none;}
  .config-textarea{font-family:var(--mono);font-size:12px;line-height:1.5;background:var(--bg);border:1px solid var(--amber-dim);border-radius:3px;color:var(--text);padding:8px 10px;width:100%;box-sizing:border-box;min-height:340px;resize:vertical;white-space:pre;overflow:auto;tab-size:2;outline:none;}
  .config-textarea:focus{border-color:var(--amber);}
  .notes-edit-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
  .notes-save-btn{font-family:var(--mono);font-size:10px;background:var(--amber-bg);border:1px solid var(--amber-dim);color:var(--text-muted);border-radius:2px;padding:2px 8px;cursor:pointer;}
  .notes-cancel-btn{font-family:var(--mono);font-size:10px;background:var(--surface-bright);border:1px solid var(--border-bright);color:var(--text-dim);border-radius:2px;padding:2px 8px;cursor:pointer;}
  .notes-switch-btn{font-family:var(--mono);font-size:10px;background:none;border:none;color:var(--text-dim);padding:2px 4px;cursor:pointer;margin-left:auto;}
  .notes-edit-btn{font-family:var(--mono);font-size:10px;background:none;border:none;color:var(--text-dim);padding:0 4px 2px;cursor:pointer;opacity:0;transition:opacity .15s;float:right;}
  td:hover .notes-edit-btn{opacity:1;}
  .notes-save-ind{font-family:var(--mono);font-size:10px;}
  .notes-field-label{font-family:var(--mono);font-size:10px;color:var(--text-dim);letter-spacing:.05em;}

  .fs-artist{font-size:16px;font-weight:500;color:var(--text);margin-bottom:6px;}
  .fs-detail{font-size:12px;color:var(--text-muted);margin-bottom:4px;}
  .fs-price{font-family:var(--mono);font-size:14px;color:var(--text);margin:10px 0 8px;}
  .fs-notes{font-size:12px;color:var(--text-dim);margin-bottom:12px;}
  .fs-buy-btn{display:inline-block;font-family:var(--mono);font-size:12px;background:var(--sell-bg);border:1px solid var(--sell);color:var(--sell);text-decoration:none;padding:6px 14px;border-radius:3px;margin-top:4px;}
  .fs-buy-btn:hover{background:var(--sell-dim);}

  .ft-table{width:100%;border-collapse:collapse;}
  .ft-table th{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);text-align:left;padding:6px 10px;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface);}
  .ft-table td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top;}
  .ft-artist{font-size:13px;color:var(--text);font-weight:500;}
  .ft-why{font-size:12px;color:var(--text-muted);line-height:1.4;}
  .ft-links{display:flex;gap:6px;flex-wrap:wrap;}
  .ft-link{font-family:var(--mono);font-size:10px;text-decoration:none;padding:2px 6px;border-radius:2px;white-space:nowrap;}
  .ft-link-tour{background:var(--sell-bg);border:1px solid var(--sell-dim);color:var(--sell);}
  .ft-link-sp{background:#0e1e12;border:1px solid #1e4a28;color:var(--green);}

  .rec-debug-tag{font-family:var(--mono);font-size:10px;color:var(--red);margin-bottom:12px;}
  .rec-lead{font-size:13px;color:var(--text);margin-bottom:14px;}
  .rec-paths{display:flex;flex-direction:column;gap:8px;}
  .rec-path-btn{font-family:var(--mono);font-size:12px;background:var(--surface-bright);border:1px solid var(--border-bright);color:var(--text-muted);padding:10px 14px;border-radius:3px;cursor:pointer;text-align:left;transition:border-color .15s,color .15s;}
  .rec-path-btn:hover{border-color:var(--amber-dim);color:var(--text);}
  .rec-label{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);display:block;margin:10px 0 4px;}
  .rec-opt{color:var(--text-dim);font-weight:400;}
  .rec-input{width:100%;font-family:var(--mono);font-size:12px;background:var(--bg);border:1px solid var(--border-bright);border-radius:3px;color:var(--text);padding:6px 10px;margin-bottom:2px;outline:none;resize:vertical;}
  .rec-input:focus{border-color:var(--amber-dim);}
  .rec-or{font-family:var(--mono);font-size:10px;color:var(--text-dim);text-align:center;margin:8px 0;}
  .rec-pot-list{display:flex;flex-direction:column;gap:4px;margin-bottom:8px;}
  .rec-pot-item{font-size:12px;background:var(--surface-bright);border:1px solid var(--border);border-radius:3px;padding:6px 10px;cursor:pointer;text-align:left;color:var(--text-muted);transition:border-color .15s;}
  .rec-pot-item span{display:block;font-family:var(--mono);font-size:10px;color:var(--text-dim);margin-top:2px;}
  .rec-pot-item:hover{border-color:var(--border-bright);color:var(--text);}
  .rec-msg{font-size:12px;color:var(--text-muted);padding:8px 0;}
  .rec-err{font-size:12px;color:var(--red);padding:8px 0;}
  .rec-ack{font-size:13px;color:var(--text);line-height:1.5;}
  .rec-sub{font-family:var(--mono);font-size:11px;color:var(--text-dim);}
  .rec-gift{font-family:var(--mono);font-size:11px;color:var(--amber);text-decoration:none;border:1px solid var(--amber-dim);border-radius:2px;padding:2px 8px;margin-right:4px;}
  .rec-gift:hover{background:var(--amber-bg);}
  .rec-prev-title{font-size:13px;color:var(--text);background:var(--surface-bright);border:1px solid var(--border);border-radius:3px;padding:8px 10px;margin-bottom:2px;}
  .rec-prev-body{font-family:var(--mono);font-size:11px;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:3px;padding:8px 10px;white-space:pre-wrap;max-height:240px;overflow:auto;}
  .rec-prev-meta{font-family:var(--mono);font-size:11px;color:var(--text-dim);margin-bottom:2px;}

  @media(max-width:768px){
    .panel{padding:12px;}
    /* Tabs: 2x2 grid; hide OTD strip (too cramped) */
    .tab-row{flex-wrap:wrap;padding:0;}
    .tabs{flex:1 1 100%;display:flex;flex-wrap:wrap;padding:0 8px;}
    .tab{flex:1 1 50%;text-align:center;padding:8px 4px;font-size:13px;}
    .on-this-day{display:none;}
    /* Banners: stack message and CTA button vertically, each full-width */
    .bystander-banner{flex-direction:column;align-items:flex-start;gap:8px;}
    .bystander-banner .forsale-cta,.bystander-banner .recommend-cta-header{margin-left:0;width:100%;text-align:center;}
    /* Hide venue column (shown in Artist cell via cell-venue-mobile instead) */
    .col-support,.col-seat,.col-cost,.cell-venue{display:none;}
    .cell-notes{max-width:220px;}
    .col-watching,.col-tier,.col-price,.col-context{display:none;}
    .cell-pot-notes{max-width:160px;}
    .cell-venue-mobile{display:block;}
  }
