/* BACKLINE CSS: reset, tokens and structural defaults. */
*{box-sizing:border-box;}
body{margin:0;color:var(--text);min-height:100vh;}
button,input{font:inherit;}
.app{margin:0 auto;}
.topbar{justify-content:space-between;}
.brand p{margin:0;}
.source{text-align:right;}
.source b{display:block;}
.grid{display:grid;}
.sidebar{position:sticky;height:max-content;}
.section-title{text-transform:uppercase;}
.genre-list{display:grid;gap:8px;}
.genre{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel2);cursor:pointer;user-select:none;transition:.15s ease;}
.genre:hover{transform:translateY(-1px);border-color:#44516a;}
.genre input{width:18px;height:18px;accent-color:#38bdf8;}
.genre .label{font-weight:700;flex:1;}
.genre .count{font-size:12px;color:var(--muted);}
.actions{display:flex;gap:8px;}
.actions button,.view-btn,.nav-btn{border:1px solid var(--line);background:#202838;color:var(--text);padding:9px 11px;border-radius:10px;cursor:pointer;}
.actions button:hover,.view-btn:hover,.nav-btn:hover{border-color:#4b5b77;}
.venue-list{display:grid;gap:7px;}
.venue{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#111722;cursor:pointer;user-select:none;}
.venue:hover{border-color:#44516a;}
.venue input{width:17px;height:17px;accent-color:#38bdf8;}
.venue .label{font-weight:700;flex:1;}
.venue .count{font-size:11px;color:var(--muted);}
.band-about{margin-top:14px;padding:12px 13px;border-radius:11px;border:1px solid #33435b;background:#101823;}
.band-about strong{display:block;margin-bottom:5px;}
.band-about p{margin:0;color:#c7d2e0;line-height:1.48;font-size:13px;}
.venue-badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:#172033;border:1px solid #33435b;color:#dbeafe;font-size:11px;}
.info{margin-top:16px;padding:12px;border-radius:12px;background:#111722;border:1px solid var(--line);color:var(--muted);font-size:13px;line-height:1.45;}
.info strong{color:var(--text);}
.main{min-width:0;}
.toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;}
.month-nav{display:flex;align-items:center;gap:8px;}
.month-title{font-weight:800;min-width:170px;text-align:center;}
.view-switch{display:flex;gap:6px;}
.view-btn.active{font-weight:800;}
.summary{display:flex;flex-wrap:wrap;margin:0 0 14px;}
.pill{color:var(--muted);}
.pill b{color:var(--text);}
.empty{padding:52px 20px;text-align:center;color:var(--muted);border:1px dashed #344055;border-radius:14px;}
.empty strong{display:block;color:var(--text);font-size:18px;margin-bottom:7px;}
.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:hidden;}
.weekday{padding:10px 6px;text-align:center;font-size:12px;font-weight:800;text-transform:uppercase;border-bottom:1px solid var(--line);}
.day{min-height:118px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0;}
.day:nth-child(7n){border-right:0;}
.day.muted{opacity:.28;}
.date-num{width:26px;height:26px;display:grid;place-items:center;font-size:12px;font-weight:800;margin-bottom:5px;}
.event-mini{font-size:11px;line-height:1.25;cursor:pointer;overflow:hidden;}
.event-mini .time{color:var(--muted);font-size:10px;}
.event-mini .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.list{display:grid;gap:10px;}
.event-row{display:grid;grid-template-columns:74px 1fr auto;gap:14px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:13px;background:#111722;}
.datebox{text-align:center;border-right:1px solid var(--line);padding-right:12px;}
.datebox b{display:block;font-size:22px;}
.datebox span{font-size:11px;color:var(--muted);text-transform:uppercase;}
.event-title{font-weight:850;margin-bottom:5px;}
.event-meta{color:var(--muted);font-size:13px;}
.tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px;}
.tag{font-size:11px;padding:4px 7px;border-radius:999px;background:#202838;border:1px solid #303b50;color:#cbd5e1;}
.ticket{border-radius:9px;border:1px solid var(--line);color:var(--text);text-decoration:none;}
.ticket:hover{border-color:var(--accent);color:var(--accent);}
.statusbar{margin-top:14px;padding:10px 12px;border:1px solid var(--line);color:var(--muted);font-size:12px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.legend{display:flex;gap:12px;align-items:center;}
.dot{width:8px;height:8px;border-radius:50%;background:var(--ok);display:inline-block;margin-right:5px;}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.72);display:none;place-items:center;padding:20px;z-index:20;}
.modal.show{display:grid;}
.modal-card{width:min(560px,100%);background:#151a22;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow);}
.modal-head{display:flex;justify-content:space-between;gap:10px;}
.modal h2{margin:0 0 5px;}
.close{border:0;background:transparent;color:var(--muted);font-size:26px;cursor:pointer;}
.modal p{color:var(--muted);line-height:1.5;}
.modal a{display:inline-block;margin-top:10px;color:#b8e8ff;}
.friend-strip{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px;}
.friend-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:999px;background:#182437;border:1px solid #31425c;font-size:11px;color:#dbeafe;}
.friend-chip.going{border-color:#28563c;background:#143222;color:#bbf7d0;}
.friend-chip.maybe{border-color:#6b5a22;background:#342b12;color:#fde68a;}
.friend-chip.asked{border-color:#315b83;background:#13283d;color:#bae6fd;}
.friend-count{font-size:10px;color:#bfdbfe;margin-top:4px;}
.social-box{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);}
.social-title{font-weight:800;margin-bottom:8px;}
.social-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.social-btn{border:1px solid var(--line);background:#202838;color:var(--text);padding:9px 11px;border-radius:10px;cursor:pointer;}
.social-btn.primary{background:#dff6ff;color:#071019;border-color:#dff6ff;font-weight:800;}
.social-btn:disabled{opacity:.45;cursor:not-allowed;}
.ask-row{display:none;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap;}
.ask-row.show{display:flex;}
.ask-row select{background:#111722;color:var(--text);border:1px solid var(--line);border-radius:9px;padding:9px 10px;min-width:170px;}
.notice{display:none;margin-top:10px;padding:9px 10px;border-radius:9px;background:#13261d;border:1px solid #28563c;color:#bbf7d0;font-size:12px;}
.notice.show{display:block;}
.friends-demo{margin-top:16px;}
.friend-list{display:grid;gap:7px;}
.friend-person{display:flex;align-items:center;gap:9px;padding:8px 9px;border:1px solid var(--line);background:#111722;border-radius:10px;}
.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#283349;font-size:11px;font-weight:900;}
.friend-person span:last-child{font-size:13px;}
.mini-friends{margin-top:3px;color:#bbf7d0;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.event-time{display:inline-flex;align-items:center;gap:5px;font-weight:800;color:#e0f2fe;}
.event-time.unknown{color:var(--muted);font-weight:650;}
.time-box{margin-top:12px;padding:12px 13px;border:1px solid #33435b;border-radius:12px;background:#0f1722;}
.time-main{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;}
.time-main strong{font-size:18px;}
.time-sub{margin-top:5px;color:var(--muted);font-size:12px;line-height:1.45;}
.time-actions{display:flex;gap:7px;flex-wrap:wrap;}
.refresh-btn{border:1px solid #3d5a77;background:#16263a;color:#dbeafe;padding:8px 10px;border-radius:9px;cursor:pointer;font-weight:750;}
.refresh-btn:hover{border-color:var(--accent);}
.refresh-btn:disabled{opacity:.5;cursor:wait;}
.source-btn{border:1px solid var(--line);background:#202838;color:var(--text);padding:8px 10px;border-radius:9px;text-decoration:none;font-size:12px;}
.time-message{display:none;margin-top:8px;padding:8px 9px;border-radius:8px;font-size:12px;line-height:1.4;}
.time-message.show{display:block;}
.time-message.ok{background:#13261d;border:1px solid #28563c;color:#bbf7d0;}
.time-message.warn{background:#332a12;border:1px solid #66551f;color:#fde68a;}
.time-message.error{background:#32191b;border:1px solid #6c3137;color:#fecaca;}
.same-day{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:#5b4713;border:1px solid #8a6b16;color:#fde68a;font-size:10px;font-weight:850;}
.time-check-due{color:#fde68a;}
.time-source{font-size:10px;color:#93a4ba;}
.list-time{margin-left:8px;color:#dbeafe;font-weight:800;}
.list-time.unknown{color:var(--muted);font-weight:600;}
.update-panel{margin:0 0 14px;justify-content:space-between;}
.update-title{font-weight:850;margin-bottom:3px;}
.update-meta{color:var(--muted);line-height:1.45;}
.calendar-refresh-btn{border:1px solid #4a6788;background:#17304a;color:#e0f2fe;padding:9px 12px;border-radius:10px;cursor:pointer;font-weight:800;white-space:nowrap;}
.calendar-refresh-btn:hover{border-color:var(--accent);}
.calendar-refresh-btn:disabled{opacity:.55;cursor:wait;}
.update-result{display:none;width:100%;padding-top:9px;margin-top:2px;border-top:1px solid #273449;font-size:12px;line-height:1.45;}
.update-result.show{display:block;}
.update-result.ok{color:#bbf7d0;}
.update-result.warn{color:#fde68a;}
.update-result.error{color:#fecaca;}
.update-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:999px;border:1px solid #315b83;background:#13283d;color:#bae6fd;font-size:10px;font-weight:800;margin-left:5px;}
@media (max-width:850px){
  .genre-list{grid-template-columns:repeat(2,minmax(0,1fr));}
  .topbar{flex-direction:column;}
  .source{text-align:left;}
  .day{min-height:90px;}
  .event-mini{padding:5px;}
  .event-row{grid-template-columns:58px 1fr;}
  .event-row .ticket{grid-column:2;width:max-content;}
}
@media (max-width:560px){
  .main{padding:10px;}
  .weekday{font-size:10px;padding:8px 2px;}
  .day{min-height:70px;padding:4px;}
  .event-mini{border-left-width:2px;font-size:9px;padding:4px;}
  .event-mini .time{display:none;}
  .month-title{min-width:125px;font-size:17px;}
}
.big-controls{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px;padding:11px 12px;border:1px solid var(--line);background:#111722;border-radius:12px;}
.big-intro{color:var(--muted);font-size:12px;line-height:1.45;max-width:620px;}
.big-intro strong{color:var(--text);}
.city-switch{display:flex;gap:7px;flex-wrap:wrap;}
.city-toggle{display:flex;gap:7px;align-items:center;padding:7px 9px;border:1px solid var(--line);background:#182130;border-radius:9px;font-size:12px;font-weight:750;cursor:pointer;}
.city-toggle input{accent-color:#38bdf8;}
.big-list{display:grid;gap:12px;}
.big-card{border:1px solid var(--line);border-radius:14px;background:#111722;padding:14px;display:grid;grid-template-columns:86px 1fr auto;gap:14px;align-items:start;}
.big-date{text-align:center;padding-right:12px;border-right:1px solid var(--line);}
.big-date b{display:block;font-size:26px;}
.big-date span{font-size:11px;color:var(--muted);text-transform:uppercase;}
.big-title{font-size:18px;font-weight:900;margin:0 0 5px;}
.big-meta{color:var(--muted);font-size:12px;line-height:1.5;}
.big-desc{color:#c7d2e0;font-size:13px;line-height:1.5;margin-top:9px;}
.big-actions{display:grid;gap:7px;min-width:145px;}
.big-ticket,.watch-btn{border:1px solid var(--line);border-radius:9px;padding:9px 10px;text-align:center;text-decoration:none;font-size:12px;font-weight:800;}
.watch-btn{background:#202838;color:var(--text);cursor:pointer;}
.watch-btn.active{background:#163522;border-color:#2f6a48;color:#bbf7d0;}
.ticket-state{display:inline-flex;padding:4px 7px;border-radius:999px;border:1px solid #315b83;background:#13283d;color:#bae6fd;font-size:10px;font-weight:850;margin-right:5px;}
.ticket-state.urgent{border-color:#7a5e22;background:#362b10;color:#fde68a;}
.ticket-state.low{border-color:#7b3131;background:#351818;color:#fecaca;}
.big-source-note{margin-top:7px;font-size:11px;color:var(--muted);}
.big-empty{padding:40px 18px;text-align:center;border:1px dashed #344055;border-radius:13px;color:var(--muted);}
@media (max-width:760px){
  .big-card{grid-template-columns:66px 1fr;}
  .big-actions{grid-column:1/-1;grid-template-columns:1fr 1fr;}
  .big-date b{font-size:22px;}
}
.big-genre-box{margin:0 0 12px;padding:12px;border:1px solid #33435b;border-radius:13px;background:#101823;}
.big-genre-head{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:9px;}
.big-genre-head strong{font-size:13px;}
.big-genre-head span{font-size:11px;color:var(--muted);}
.big-genre-chips{display:flex;gap:7px;flex-wrap:wrap;}
.big-genre-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid var(--line);border-radius:999px;background:#151d29;font-size:11px;font-weight:750;cursor:pointer;user-select:none;}
.big-genre-chip input{accent-color:#38bdf8;}
.big-genre-chip.on{border-color:#3c6f91;background:#14283a;color:#d9f3ff;}
.big-rules{margin:0 0 13px;border:1px solid #3a4658;border-radius:13px;background:#111722;overflow:hidden;}
.big-rules summary{cursor:pointer;padding:11px 12px;font-weight:850;font-size:12px;color:#dbeafe;}
.big-rules-body{padding:0 12px 12px;color:#b8c3d2;font-size:12px;line-height:1.55;}
.big-rules-body b{color:#eef4fb;}
.big-rules-body ul{margin:7px 0 0 18px;padding:0;}
.big-rules-body li{margin:4px 0;}
.engine-note{margin-top:8px;font-size:11px;color:#9fb0c5;}
.engine-diag{margin-top:9px;border-top:1px solid #334155;padding-top:8px;color:#cbd5e1;}
.engine-diag summary{cursor:pointer;font-weight:800;color:#dbeafe;}
.diag-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:6px;margin-top:7px;}
.diag-item{border:1px solid #334155;padding:7px;font-size:10px;line-height:1.4;}
.diag-ok{color:#86efac;}
.diag-err{color:#fca5a5;}
.diag-num{font-weight:900;color:#fff;}
.conflict-badge{display:inline-flex;padding:2px 6px;border-radius:999px;background:#422006;border:1px solid #92400e;color:#fde68a;font-size:9px;font-weight:900;margin-left:5px;}
.conflict-panel{display:none;margin:12px 0;border:1px solid #8a621d;background:#171106;color:#f3e8bf;}
.conflict-panel.show{display:block;}
.conflict-panel-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 10px;border-bottom:1px solid #705019;background:#221807;}
.conflict-panel-head strong{font-family:Impact,"Arial Narrow",Arial,sans-serif;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#ffe49a;}
.conflict-panel-head span{font-size:9px;color:#d8bd78;}
.conflict-list{display:grid;}
.conflict-item{padding:9px 10px;border-bottom:1px solid #4c3815;}
.conflict-item:last-child{border-bottom:0;}
.conflict-field{margin-bottom:7px;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#ffe49a;}
.conflict-values{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.conflict-value{min-width:0;padding:7px 8px;border:1px solid #554019;background:#090704;}
.conflict-value.incoming{border-style:dashed;}
.conflict-value-label{display:block;margin-bottom:3px;color:#a9935b;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;}
.conflict-value strong{display:block;font-size:15px;color:#fff4cf;overflow-wrap:anywhere;}
.conflict-source{display:block;margin-top:4px;color:#d1bd86;font-size:9px;line-height:1.35;overflow-wrap:anywhere;}
.conflict-source a{margin:0;color:#ffe49a;text-decoration:underline;}
.conflict-note{margin-top:7px;color:#bba873;font-size:9px;line-height:1.4;}
.engine-connection{display:inline-flex;align-items:center;gap:6px;margin-left:8px;padding:4px 8px;border-radius:999px;border:1px solid #415169;font-size:11px;font-weight:850;}
.engine-connection::before{content:"";width:8px;height:8px;border-radius:50%;background:#64748b;}
.engine-connection.connected{border-color:#166534;color:#bbf7d0;background:#102016;}
.engine-connection.connected::before{background:#22c55e;}
.engine-connection.disconnected{border-color:#7f1d1d;color:#fecaca;background:#261111;}
.engine-connection.disconnected::before{background:#ef4444;}
.engine-help{margin-top:8px;font-size:11px;color:#fca5a5;line-height:1.45;}
.venue-search{width:100%;box-sizing:border-box;margin:0 0 8px;outline:none;}
.venue-quick{display:grid;}
.venue-quick button{border:1px solid var(--line);border-radius:8px;background:#182132;color:#dbeafe;cursor:pointer;font-weight:750;}
.venue-auto{display:flex;align-items:flex-start;gap:7px;line-height:1.35;}
.venue-auto input{margin-top:1px;}
.venue-group-title{display:flex;align-items:center;justify-content:space-between;font-weight:900;text-transform:uppercase;}
.venue-group-title:first-child{margin-top:0;}
.venue-group-title span{font-weight:600;letter-spacing:0;}
.venue .new-badge{font-weight:900;}
.venue.priority-venue .label:after{content:" PRIORITERAD";margin-left:5px;color:#6ea8d8;font-size:8px;font-weight:900;letter-spacing:.04em;}
.venue-hidden-note{padding:8px 9px;border:1px dashed #334155;border-radius:9px;color:#8290a5;font-size:11px;line-height:1.4;}
