/* bulk edit modal */
.bulk-edit-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.7);z-index:99998;align-items:center;justify-content:center;}
.bulk-edit-modal.open{display:flex;}
.bulk-edit-inner{background:var(--card);border:1px solid var(--border2);border-radius:16px;padding:28px;min-width:340px;max-width:480px;width:90%;}
.bulk-edit-title{font-family:'Bebas Neue';font-size:20px;letter-spacing:2px;color:var(--bright);margin-bottom:4px;}
.bulk-edit-sub{font-family:'IBM Plex Mono';font-size:10px;color:var(--muted);letter-spacing:1px;margin-bottom:20px;}
.bulk-edit-fields{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;}
.bulk-edit-row{display:flex;flex-direction:column;gap:5px;}
.bulk-edit-row label{font-family:'IBM Plex Mono';font-size:10px;color:var(--muted);letter-spacing:1.5px;}
.bulk-edit-row select{font-family:'IBM Plex Mono';font-size:12px;background:var(--surface);border:1px solid var(--border2);border-radius:8px;padding:9px 12px;color:var(--text);width:100%;}
.bulk-edit-row select:focus{outline:none;border-color:var(--accent);}
.bulk-edit-actions{display:flex;gap:8px;justify-content:flex-end;}
.bulk-edit-note{font-family:'IBM Plex Mono';font-size:10px;color:var(--muted);margin-bottom:16px;}
.bulk-deselect{font-family:"IBM Plex Mono";font-size:11px;color:var(--muted);background:none;border:none;cursor:pointer;padding:3px 8px;margin-left:4px;}
.bulk-deselect:hover{color:var(--text);}
.row-cb{width:14px;height:14px;cursor:pointer;accent-color:var(--accent);flex-shrink:0;}
.tickets-section .row-cb{accent-color:var(--purple);}
.settings-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:26px;margin-bottom:16px;}
.settings-card-title{font-family:"Bebas Neue";font-size:18px;letter-spacing:2px;color:var(--bright);margin-bottom:6px;}
.settings-card-sub{font-family:"IBM Plex Mono";font-size:10px;color:var(--muted);margin-bottom:18px;letter-spacing:1px;}
.cat-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;min-height:32px;}
.cat-chip{display:inline-flex;align-items:center;gap:6px;font-family:"IBM Plex Mono";font-size:11px;padding:5px 12px;border-radius:100px;background:var(--card);border:1px solid var(--border2);color:var(--text2);transition:border-color 0.15s;}
.cat-chip:hover{border-color:var(--accent);}
.cat-chip-del{background:none;border:none;cursor:pointer;color:var(--muted);font-size:15px;line-height:1;padding:0;transition:color 0.15s;}
.cat-chip-del:hover{color:var(--red);}
.cat-add-row{display:flex;gap:8px;align-items:center;}
.empty-state{text-align:center;padding:60px 20px;color:var(--muted);}
.empty-icon{font-size:48px;margin-bottom:16px;opacity:0.6;display:block;}
.empty-state p{font-family:'IBM Plex Mono';font-size:11px;line-height:2;margin-bottom:20px;}
.empty-state-title{font-family:'Bebas Neue';font-size:22px;letter-spacing:3px;color:rgba(255,255,255,0.25);margin-bottom:8px;}
.empty-cta{
  display:inline-flex;align-items:center;gap:8px;
  font-family:'Barlow';font-weight:700;font-size:13px;
  padding:10px 22px;border-radius:8px;cursor:pointer;
  border:1px dashed rgba(0,229,255,0.3);background:rgba(0,229,255,0.04);
  color:var(--accent);transition:all 0.2s;letter-spacing:0.5px;
}
.empty-cta:hover{border-color:var(--accent);background:rgba(0,229,255,0.08);transform:translateY(-1px);}
.empty-cta.purple{border-color:rgba(167,139,250,0.3);background:rgba(167,139,250,0.04);color:var(--purple);}
.empty-cta.purple:hover{border-color:var(--purple);background:rgba(167,139,250,0.08);}

/* MODAL */
#modal{visibility:hidden;opacity:0;pointer-events:none;position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;background:rgba(0,0,0,0.82);z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px;transition:opacity 0.15s,visibility 0.15s;}
#modal.open{visibility:visible;opacity:1;pointer-events:all;}
.modal-inner{background:var(--surface);border:1px solid var(--border2);border-radius:16px;padding:30px;width:100%;max-width:640px;max-height:90vh;overflow-y:auto;animation:scaleIn 0.18s cubic-bezier(0.16,1,0.3,1) both;box-shadow:0 18px 50px rgba(0,0,0,0.45);contain:layout paint;}
.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;}
.modal-title{font-family:'Bebas Neue';font-size:22px;letter-spacing:2px;color:var(--bright);}
.modal-close{background:var(--card);border:1px solid var(--border2);color:var(--muted);width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;transition:all 0.15s;}
.modal-close:hover{border-color:var(--red);color:var(--red);}

@keyframes slideDown{from{opacity:0;transform:translateY(-20px);}to{opacity:1;transform:none;}}

/* SAVE INDICATOR */
#saveIndicator{
  position:fixed;bottom:24px;right:24px;z-index:400;
  font-family:'IBM Plex Mono';font-size:11px;letter-spacing:1px;
  background:rgba(0,255,136,0.1);border:1px solid rgba(0,255,136,0.3);
  color:var(--green);padding:8px 16px;border-radius:8px;
  display:flex;align-items:center;gap:7px;
  opacity:0;transform:translateY(8px);
  transition:opacity 0.2s,transform 0.2s;
  pointer-events:none;
}
#saveIndicator.show{opacity:1;transform:translateY(0);}
#saveIndicator::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);}
#undoToast{
  position:fixed;bottom:24px;left:24px;z-index:400;
  font-family:'IBM Plex Mono';font-size:11px;letter-spacing:1px;
  background:var(--surface);border:1px solid var(--border2);color:var(--text2);
  padding:9px 14px;border-radius:8px;display:flex;align-items:center;gap:12px;
  opacity:0;transform:translateY(8px);transition:opacity 0.2s,transform 0.2s;
  pointer-events:none;box-shadow:0 12px 40px rgba(0,0,0,0.35);max-width:min(420px,calc(100vw - 48px));
}
#undoToast.show{opacity:1;transform:translateY(0);pointer-events:all;}
#undoToast button{background:none;border:none;color:var(--accent);font-family:'IBM Plex Mono';font-size:11px;font-weight:700;letter-spacing:1px;cursor:pointer;padding:2px 0;}

/* IMPORT MODAL */
#importModal{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.75);backdrop-filter:blur(8px);z-index:400;align-items:center;justify-content:center;padding:20px;}
#importModal.open{display:flex;}
.import-modal-inner{background:var(--surface);border:1px solid var(--border2);border-radius:16px;padding:30px;width:100%;max-width:560px;animation:scaleIn 0.25s cubic-bezier(0.16,1,0.3,1) both;box-shadow:0 25px 80px rgba(0,0,0,0.6);}
.import-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;}
.import-modal-title{font-family:'Bebas Neue';font-size:22px;letter-spacing:2px;color:var(--bright);}
.import-modal-sub{font-family:'IBM Plex Mono';font-size:10px;color:var(--muted);letter-spacing:1px;margin-bottom:20px;}
.import-tabs{display:flex;gap:2px;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:3px;width:fit-content;margin-bottom:16px;}
.import-tab{font-family:'Barlow';font-weight:700;font-size:12px;padding:6px 16px;border-radius:6px;border:none;cursor:pointer;background:transparent;color:var(--muted);transition:all 0.15s;}
.import-tab.active{background:var(--surface);color:var(--accent);border:1px solid rgba(0,229,255,0.15);}
.import-hint-box{background:rgba(255,209,102,0.05);border:1px solid rgba(255,209,102,0.15);border-left:3px solid var(--gold);border-radius:0 8px 8px 0;padding:10px 14px;font-family:'IBM Plex Mono';font-size:10px;color:rgba(255,209,102,0.8);line-height:1.8;margin-bottom:12px;}
