:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f4f1eb;color:#1c2420;--surface: #fffdf8;--surface-2: #f8f5ee;--surface-3: #ece7dc;--ink: #1c2420;--muted: #657169;--line: #d9d1c2;--green: #2f6b4f;--green-2: #e5f0e8;--blue: #315f7c;--blue-2: #e2edf3;--rose: #8f3e45;--amber: #a7662b;--shadow: 0 18px 45px rgba(55, 45, 32, .08)}*{box-sizing:border-box}html{background:#f4f1eb}body{margin:0;min-width:320px;background:linear-gradient(180deg,#e6ede3b3,#f4f1eb00 320px),#f4f1eb}button,input{font:inherit}a{color:inherit}.session-strip{border-bottom:1px solid var(--line);background:#1f2b25;color:#fff}.session-inner{display:flex;width:min(1480px,calc(100vw - 32px));min-height:34px;margin:0 auto;align-items:center;justify-content:flex-end;gap:12px;font-size:.76rem}.session-inner>span,.session-inner button{display:inline-flex;align-items:center;gap:6px}.session-inner form{margin:0}.session-inner button{border:0;background:transparent;color:inherit;padding:5px 0;cursor:pointer}.session-inner button:hover{text-decoration:underline}.app-shell{width:min(1480px,calc(100vw - 32px));margin:0 auto;padding:18px 0 48px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px 0 16px}.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none}.brand-mark,.venue-icon{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#1f2b25;color:#f8f5ee}.brand strong,.brand small{display:block}.brand strong{line-height:1}.brand small{margin-top:4px;color:var(--muted);font-size:.76rem}.topnav{display:flex;align-items:center;gap:6px}.topnav a,.text-link,.icon-link,.icon-button{border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);text-decoration:none}.topnav a{padding:8px 11px;color:#34423a;font-size:.9rem}.toolbar,.panel,.metric{border:1px solid var(--line);background:#fffdf8e6;box-shadow:var(--shadow)}.toolbar{position:sticky;top:0;z-index:5;border-radius:10px;padding:12px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.search-form{display:grid;grid-template-columns:minmax(220px,1.7fr) minmax(160px,.8fr) minmax(160px,.8fr) auto auto;gap:10px;align-items:end}.field{display:grid;gap:6px}.field span,.toggle span{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.78rem;font-weight:700;text-transform:uppercase}.field input{width:100%;min-height:40px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:8px 10px}.toggle{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.toggle input{accent-color:var(--green)}.icon-button,.icon-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:8px 10px;cursor:pointer}.icon-button:disabled{cursor:not-allowed;opacity:.45}.icon-button.primary{background:#1f2b25;color:#fff;border-color:#1f2b25}.icon-link{width:38px;height:38px;padding:0}.icon-link.good{border-color:#bad3c3;background:var(--green-2);color:var(--green)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.metric{border-radius:10px;padding:13px 15px}.metric span{display:block;color:var(--muted);font-size:.78rem;font-weight:700;text-transform:uppercase}.metric strong{display:block;margin-top:4px;font-size:1.45rem}.metric.accent{background:var(--green-2);border-color:#b8d2c0}.workspace-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(390px,.8fr);gap:16px;align-items:start}.lower-grid{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);gap:16px;margin-top:16px;align-items:start}.panel{border-radius:10px;overflow:hidden}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:15px 16px;background:var(--surface-2)}.panel-heading.compact{align-items:center}.eyebrow{margin:0 0 4px;color:var(--muted);font-size:.76rem;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1,h2{margin-bottom:0;line-height:1.1}h1{font-size:clamp(1.35rem,2vw,1.9rem)}h2{font-size:1.05rem}h3{margin-bottom:9px;color:#37463d;font-size:.88rem}h3 span{color:var(--muted);font-weight:600}.band-list,.venue-list,.show-list{max-height:820px;overflow:auto}.band-row,.venue-row,.show-row{border-bottom:1px solid var(--line)}.band-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:13px 15px;color:inherit;text-decoration:none}.band-row.active-card{background:#edf4ef;box-shadow:inset 3px 0 0 var(--green)}.band-row:hover{background:#f6faf7}.entity-title{color:var(--ink);font-weight:800;text-decoration:none}.entity-title:hover,.venue-row:hover strong,.show-row a:hover,.topnav a:hover,.text-link:hover,.mini-node:hover{text-decoration:underline}.muted-line{margin-top:4px;color:var(--muted);font-size:.86rem}.tag-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.tag-pill{display:inline-flex;align-items:center;min-height:22px;border:1px solid #d7cdbc;border-radius:999px;background:#f7efe0;color:#574536;padding:2px 8px;font-size:.74rem;line-height:1}.row-actions{display:flex;align-items:center;gap:8px}.text-link{display:inline-flex;align-items:center;min-height:38px;padding:0 10px;font-size:.86rem}.graph-panel{position:sticky;top:92px}.graph-hub{padding:15px}.scope-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-3);padding:3px}.scope-switch a{min-width:0;border-radius:6px;padding:7px 9px;color:var(--muted);font-size:.8rem;font-weight:750;text-align:center;text-decoration:none}.scope-switch a:hover{color:var(--ink)}.scope-switch a.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #372d201f}.hub-node{display:grid;gap:5px;border:1px solid #b8d2c0;border-radius:10px;background:var(--green-2);padding:14px}.hub-node strong{font-size:1.05rem}.hub-node span{color:var(--muted);font-size:.86rem}.hub-node small{color:var(--green);font-size:.76rem;font-weight:700}.graph-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:15px}.node-list{display:grid;gap:7px}.graph-node-list{max-height:510px;overflow-y:auto;padding-right:3px}.node-empty{margin:0;border:1px dashed var(--line);border-radius:8px;color:var(--muted);padding:10px;font-size:.8rem}.mini-node{display:grid;gap:3px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:9px;text-decoration:none}.mini-node span{font-weight:750}.mini-node small{color:var(--muted)}.venue-node{background:var(--blue-2);border-color:#bdd0dc}.venue-row{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;padding:12px 15px;text-decoration:none}.venue-row small,.show-row time{display:block;color:var(--muted);font-size:.83rem}.show-row{display:grid;grid-template-columns:92px minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:center;padding:10px 15px}.show-row a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.venue-show-row{grid-template-columns:92px minmax(0,1fr) minmax(110px,.35fr)}.band-show-row{grid-template-columns:92px minmax(170px,.5fr) minmax(0,1fr)}.explore-show-row{grid-template-columns:92px minmax(170px,.45fr) minmax(0,1fr)}.show-venue-link{display:inline-flex;align-items:center;gap:5px}.show-lineup{display:flex;min-width:0;align-items:center;gap:4px;overflow:hidden;white-space:nowrap}.show-lineup a,.show-lineup .comma{flex:0 0 auto}.show-lineup a{display:inline}.show-lineup a.current-band,.show-lineup a.selected-band{font-weight:800}.empty-state,.notice{padding:18px;color:var(--muted)}.notice.danger{margin:16px 0;border:1px solid #e2b9b0;border-radius:10px;background:#fff0ed;color:#8f3e45}.notice.success{display:grid;gap:4px;border:1px solid #b8d2c0;border-radius:8px;background:var(--green-2);color:var(--green)}.auth-page{display:grid;min-height:100vh;place-items:center;padding:24px}.auth-panel{display:grid;width:min(100%,440px);gap:28px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:var(--shadow);padding:28px}.auth-brand{display:inline-flex;align-items:center;gap:10px}.auth-brand strong,.auth-brand small{display:block}.auth-brand small{margin-top:4px;color:var(--muted);font-size:.76rem}.auth-copy{margin:10px 0 0;color:var(--muted);line-height:1.5}.auth-form{display:grid;gap:14px}.auth-submit{min-height:42px;border:1px solid #1f2b25;border-radius:8px;background:#1f2b25;color:#fff;padding:8px 12px;cursor:pointer}.auth-submit:hover{background:#2c3a33}.form-error{margin:0;color:var(--rose);font-size:.84rem}.detail-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:16px;align-items:start}.detail-header{border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:var(--shadow);padding:18px}.detail-title{margin-bottom:8px;font-size:clamp(1.8rem,4vw,3rem)}.detail-meta{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}.contact-stack,.link-stack,.stat-stack{display:grid;gap:8px;padding:15px}.contact-item,.link-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px;text-decoration:none}.contact-item span,.link-item span{min-width:0;overflow-wrap:anywhere}.stat-line{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding-bottom:8px}.stat-line:last-child{border-bottom:0;padding-bottom:0}@media(max-width:1040px){.search-form,.workspace-grid,.lower-grid,.detail-grid{grid-template-columns:1fr}.graph-panel{position:static}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.app-shell{width:min(100vw - 20px,1480px);padding-top:10px}.toolbar{position:static}.topbar,.topnav,.graph-columns{align-items:stretch;flex-direction:column;grid-template-columns:1fr}.search-form,.metric-grid,.band-row,.show-row{grid-template-columns:1fr}.row-actions{justify-content:flex-start}.session-inner{width:min(100vw - 20px,1480px)}.session-inner>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-page{padding:14px}.auth-panel{padding:22px}}
