﻿/* Cast & Crew  PREP */
:root {
  --color-primary:#5a189a;--color-secondary:#ffc300;--color-dark-purple:#3c096c;
  --color-background:#f4f7f9;--color-card-background:#ffffff;--color-text:#2d3748;
  --color-soft-gray:#718096;--color-light-gray:#e2e8f0;--color-success:#38a169;--color-error:#e53e3e;
  --bg-body:var(--color-background);--bg-glass-panel:rgba(255,255,255,0.55);--bg-glass-card:rgba(255,255,255,0.6);--bg-input:rgba(255,255,255,0.75);
  --glass-blur:blur(18px) saturate(180%);
  --border-glass:rgba(255,255,255,0.7);--border-color:rgba(192,192,192,0.5);
  --shadow-sm:0 2px 8px rgba(90,24,154,0.06);--shadow-md:0 8px 32px rgba(90,24,154,0.12),0 2px 8px rgba(0,0,0,0.06);
  --shadow-lg:0 16px 40px rgba(90,24,154,0.18),0 4px 12px rgba(0,0,0,0.08);
  --font-family-sans:"Poppins",system-ui,sans-serif;--font-family-logo:"Montserrat",sans-serif;
  --border-radius-sm:8px;--border-radius-md:12px;--border-radius-pill:50px;
  --transition-fast:0.2s cubic-bezier(0.4,0,0.2,1);
  --avail-available:#38a169;--avail-confirmed:#3182ce;--avail-tentative:#d69e2e;--avail-unavailable:#e53e3e;
}
body.dark{--bg-body:#050505;--bg-glass-panel:rgba(15,10,25,0.65);--bg-glass-card:rgba(20,15,35,0.6);--bg-input:rgba(30,25,45,0.75);--color-text:#f7fafc;--color-soft-gray:#a0aec0;--border-color:rgba(90,24,154,0.3);--border-glass:rgba(90,24,154,0.35);--color-secondary:#f6e05e;--color-card-background:#1a202c;--shadow-md:0 8px 32px rgba(0,0,0,0.4),0 0 0 1px rgba(90,24,154,0.15)}
*,*::before,*::after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{font-family:var(--font-family-sans);background:var(--bg-body);color:var(--color-text);min-height:100vh;margin:0;padding:0 0 100px;transition:background .3s,color .3s}
body::before{content:'';position:fixed;inset:0;background:radial-gradient(ellipse at 20% 20%,rgba(90,24,154,0.12) 0%,transparent 60%),radial-gradient(ellipse at 80% 80%,rgba(255,195,0,0.08) 0%,transparent 60%);pointer-events:none;z-index:0}
body>*{position:relative;z-index:1}

/* LOADER */
.loader-overlay{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none;transition:opacity .25s;z-index:1000}
.loader-overlay.visible{opacity:1;pointer-events:auto}
.loader-overlay .clapperboard{width:220px;height:180px;position:relative}
.loader-overlay .clap{width:100%;height:35px;background-color:#111;position:absolute;top:0;left:0;transform-origin:top left;animation:clap-anim 1s infinite ease-in-out;border-radius:6px 6px 0 0;background-image:repeating-linear-gradient(120deg,#fff,#fff 30px,#111 30px,#111 60px)}
.loader-overlay .board{width:100%;height:145px;background:linear-gradient(135deg,#333,#1a1a1a);position:absolute;bottom:0;left:0;border-radius:0 0 6px 6px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:8px;text-align:center;gap:12px}
.loader-overlay .loader-text{font-family:"Courier New",monospace;color:var(--color-secondary);font-size:1.2rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;animation:pulse 1.5s infinite}
@keyframes clap-anim{0%,100%{transform:rotate(0deg)}50%{transform:rotate(-15deg)}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}

/* CONTAINER */
.container{width:100%;padding:0 0 100px}
.cc-tabs,.controls-bar,.members-grid,.empty-state{padding-left:20px;padding-right:20px}
.cc-tabs{margin-top:16px}

/* HEADER */
.header-section{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between;margin-bottom:0;padding:12px 20px;border-radius:0;border:none;border-bottom:1px solid var(--border-glass);background:var(--bg-glass-panel);box-shadow:none;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);position:sticky;top:0;z-index:100}
body.dark .header-section{background:var(--bg-glass-panel);border-color:var(--border-glass)}
#projectTitle{flex-grow:1;font-family:var(--font-family-logo);font-size:1.05rem;font-weight:700;color:var(--color-text);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-0.02em}
body.dark #projectTitle{color:var(--color-text)}
.back-btn{background:var(--bg-glass-panel);color:var(--color-text);border:1px solid var(--border-glass);font-size:1rem;cursor:pointer;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);flex-shrink:0}
.back-btn:hover{background:rgba(90,24,154,0.12);border-color:var(--color-primary);color:var(--color-primary);transform:translateX(-2px)}
.header-actions{display:flex;align-items:center;gap:10px}
.action-btn{background:var(--color-primary);color:white;border:none;font-size:.95rem;cursor:pointer;padding:10px 14px;min-height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:500;font-family:var(--font-family-sans);transition:all var(--transition-fast)}
.action-btn:hover{background:var(--color-dark-purple)}
body.dark .action-btn:hover{color:#000;background:var(--color-secondary)}
.add-btn{background:var(--color-primary)}
.export-header-btn{background:linear-gradient(135deg,var(--color-secondary),#ffd60a);color:#3E1F47;border-radius:999px;box-shadow:0 2px 8px rgba(255,195,0,0.3);font-weight:600;padding:10px 16px}
.export-header-btn:hover{background:linear-gradient(135deg,#ffe066,#ffcd3c)!important;color:#240f44!important}

/* STATS BAR */
.stats-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:center;background:var(--bg-glass-card);border:1px solid var(--border-glass);padding:8px 10px;border-radius:12px;flex:1 1 260px;min-width:200px;color:var(--color-text);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}
body.dark .stats-bar{background:var(--bg-glass-card);border-color:var(--border-glass)}
.stat-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;background:rgba(255,255,255,0.5);border:1px solid rgba(255,255,255,0.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
body.dark .stat-item{background:rgba(255,255,255,0.06);border-color:rgba(90,24,154,0.25)}
.stat-item i{font-size:1.1rem;color:var(--color-primary);background:linear-gradient(135deg,rgba(90,24,154,0.12),rgba(149,76,233,0.12));padding:8px;border-radius:8px}
body.dark .stat-item i{color:var(--color-secondary);background:rgba(246,224,94,0.1)}
.stat-info{display:flex;flex-direction:column}
.stat-item span{font-size:1.1rem;font-weight:700;color:var(--color-text);line-height:1.2}
.stat-item small{font-size:.7rem;color:var(--color-soft-gray);text-transform:uppercase;letter-spacing:.5px;font-weight:600}

/* TABS */
.cc-tabs{display:flex;gap:6px;margin-bottom:16px}
.cc-tab{display:flex;align-items:center;gap:7px;padding:9px 20px;border-radius:var(--border-radius-pill);border:1px solid var(--border-glass);background:var(--bg-glass-card);color:var(--color-soft-gray);font-size:.88rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-family-sans);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}
.cc-tab:hover{border-color:var(--color-primary);color:var(--color-primary)}
.cc-tab.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}
.cc-tab i{font-size:.85rem}

/* CONTROLS BAR */
.controls-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:20px}
.search-wrap{display:flex;align-items:center;gap:8px;background:var(--bg-glass-card);border:1px solid var(--border-glass);border-radius:var(--border-radius-md);padding:9px 14px;flex:1;min-width:200px;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}
.search-wrap i{color:var(--color-soft-gray);font-size:.85rem}
.search-wrap input{border:none;background:none;outline:none;font-size:.88rem;color:var(--color-text);width:100%;font-family:var(--font-family-sans)}
.search-wrap input::placeholder{color:var(--color-soft-gray)}
.compact-select{padding:9px 12px;border-radius:var(--border-radius-md);border:1px solid var(--border-glass);background:var(--bg-glass-card);color:var(--color-text);font-size:.85rem;font-family:var(--font-family-sans);cursor:pointer;outline:none;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}

/* EMPTY STATE */
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px 24px;gap:12px}
.empty-icon-wrap{width:80px;height:80px;border-radius:50%;background:rgba(90,24,154,0.08);display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--color-primary);margin-bottom:8px}
.empty-state h3{font-size:1.2rem;font-weight:700;color:var(--color-text);margin:0}
.empty-state p{font-size:.9rem;color:var(--color-soft-gray);max-width:320px;line-height:1.6;margin:0}
.empty-btn{display:flex;align-items:center;gap:6px;padding:10px 20px;border-radius:var(--border-radius-md);font-size:.88rem;font-weight:600;cursor:pointer;border:none;transition:all var(--transition-fast);font-family:var(--font-family-sans);margin-top:4px}
.empty-btn.primary{background:var(--color-primary);color:#fff}
.empty-btn.primary:hover{background:var(--color-dark-purple)}

/* MEMBERS GRID */
.members-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}

/* MEMBER CARD */
.member-card{background:var(--bg-glass-card);border:1px solid var(--border-glass);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-md);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);transition:transform var(--transition-fast),box-shadow var(--transition-fast);cursor:pointer;animation:cardIn .22s ease both;position:relative}
.member-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
@keyframes cardIn{from{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}

/* Availability stripe */
.member-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;z-index:2}
.member-card[data-avail="available"]::before{background:var(--avail-available)}
.member-card[data-avail="confirmed"]::before{background:var(--avail-confirmed)}
.member-card[data-avail="tentative"]::before{background:var(--avail-tentative)}
.member-card[data-avail="unavailable"]::before{background:var(--avail-unavailable)}

/* Photo area */
.card-photo-wrap{width:100%;height:160px;overflow:hidden;background:linear-gradient(135deg,rgba(90,24,154,0.15),rgba(149,76,233,0.15));display:flex;align-items:center;justify-content:center;position:relative}
.card-photo{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.member-card:hover .card-photo{transform:scale(1.04)}
.card-photo-placeholder{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),#9b59b6);display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:#fff;font-family:var(--font-family-logo);flex-shrink:0}

/* Gradient overlay on photo */
.card-photo-overlay{position:absolute;bottom:0;left:0;right:0;padding:28px 12px 10px;background:linear-gradient(to top,rgba(0,0,0,0.72) 0%,transparent 100%);pointer-events:none}
.card-overlay-name{font-size:.92rem;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;text-shadow:0 1px 3px rgba(0,0,0,0.5)}
.card-overlay-role{font-size:.72rem;color:rgba(255,255,255,0.8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;text-shadow:0 1px 2px rgba(0,0,0,0.5)}

/* Availability dot on photo */
.card-avail-dot{position:absolute;top:10px;right:10px;width:11px;height:11px;border-radius:50%;border:2px solid rgba(255,255,255,0.9);z-index:2;box-shadow:0 1px 4px rgba(0,0,0,0.3)}
.card-avail-dot.available{background:var(--avail-available)}
.card-avail-dot.confirmed{background:var(--avail-confirmed)}
.card-avail-dot.tentative{background:var(--avail-tentative)}
.card-avail-dot.unavailable{background:var(--avail-unavailable)}

/* Card body */
.card-body{padding:12px 14px 14px}
.card-character{font-size:.76rem;font-style:italic;color:var(--color-primary);margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:5px}
.card-character i{font-size:.65rem;flex-shrink:0}
body.dark .card-character{color:var(--color-secondary)}
.card-badges{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}
.card-dept{display:flex;align-items:center;gap:5px;font-size:.73rem;color:var(--color-soft-gray);margin-bottom:10px}
.card-dept i{font-size:.65rem;color:var(--color-primary)}
body.dark .card-dept i{color:var(--color-secondary)}

/* Scenes badge */
.card-scenes-badge{display:inline-flex;align-items:center;gap:4px;font-size:.65rem;font-weight:700;padding:2px 7px;border-radius:var(--border-radius-pill);background:rgba(90,24,154,0.08);color:var(--color-primary)}
body.dark .card-scenes-badge{background:rgba(246,224,94,0.1);color:var(--color-secondary)}
.card-scenes-badge i{font-size:.6rem}

/* Availability badge (used on cards and detail modal) */
.avail-badge{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:var(--border-radius-pill);text-transform:capitalize}
.avail-badge.available{background:rgba(56,161,105,0.1);color:var(--avail-available)}
.avail-badge.confirmed{background:rgba(49,130,206,0.1);color:var(--avail-confirmed)}
.avail-badge.tentative{background:rgba(214,158,46,0.1);color:var(--avail-tentative)}
.avail-badge.unavailable{background:rgba(229,62,62,0.1);color:var(--avail-unavailable)}

/* Contract badge on card */
.card-contract-badge{display:inline-flex;align-items:center;font-size:.65rem;font-weight:700;padding:2px 7px;border-radius:var(--border-radius-pill)}
.card-contract-badge.sent{background:rgba(214,158,46,0.12);color:#d69e2e}
.card-contract-badge.signed{background:rgba(49,130,206,0.12);color:#3182ce}
.card-contract-badge.paid{background:rgba(56,161,105,0.12);color:var(--color-success)}

/* Card footer row */
.card-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border-color);padding-top:10px;gap:6px}
.card-quick-actions{display:flex;gap:4px}
.card-quick-btn{width:30px;height:30px;border-radius:8px;background:rgba(90,24,154,0.07);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-size:.75rem;text-decoration:none;transition:all var(--transition-fast)}
.card-quick-btn:hover{background:var(--color-primary);color:#fff}
body.dark .card-quick-btn{background:rgba(246,224,94,0.08);color:var(--color-secondary)}
body.dark .card-quick-btn:hover{background:var(--color-secondary);color:#000}
.card-actions{display:flex;gap:5px}
.card-action-btn{width:30px;height:30px;border-radius:8px;border:none;cursor:pointer;font-size:.75rem;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);font-family:var(--font-family-sans)}
.card-action-btn.edit{background:rgba(90,24,154,0.07);color:var(--color-primary)}
.card-action-btn.edit:hover{background:var(--color-primary);color:#fff}
.card-action-btn.del{background:rgba(229,62,62,0.07);color:var(--color-error)}
.card-action-btn.del:hover{background:var(--color-error);color:#fff}

/* FAB */
.fab{position:fixed;bottom:28px;right:24px;width:56px;height:56px;border-radius:50%;background:var(--color-primary);color:#fff;border:none;font-size:1.4rem;cursor:pointer;box-shadow:0 6px 20px rgba(90,24,154,0.4);display:flex;align-items:center;justify-content:center;transition:transform var(--transition-fast),background var(--transition-fast);z-index:200}
.fab:hover{background:var(--color-dark-purple);transform:scale(1.08)}

/* MODAL */
.modal{position:fixed;inset:0;background:rgba(0,0,0,0.55);display:none;align-items:center;justify-content:center;z-index:500;padding:16px;overflow-y:auto}
.modal-content{background:var(--bg-glass-panel);border:1px solid var(--border-glass);border-radius:14px;padding:28px 24px 24px;width:100%;max-width:560px;position:relative;box-shadow:0 20px 60px rgba(0,0,0,0.25);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);animation:modalIn .22s ease both;max-height:92vh;overflow-y:auto}
.modal-content--sm{max-width:360px}
.modal-content--detail{max-width:480px}
@keyframes modalIn{from{opacity:0;transform:scale(.95) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}
.modal-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;border:none;background:var(--border-color);color:var(--color-soft-gray);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.85rem;transition:all var(--transition-fast)}
.modal-close:hover{background:var(--color-error);color:#fff}
.modal-content h3{font-size:1.1rem;font-weight:700;color:var(--color-text);margin:0 0 16px;padding-right:32px}
.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}

/* PHOTO SECTION */
.photo-section{display:flex;justify-content:center;margin-bottom:16px;cursor:pointer}
.photo-preview-wrap{position:relative;width:80px;height:80px;border-radius:50%;overflow:hidden;display:none}
.photo-preview-wrap img{width:100%;height:100%;object-fit:cover}
.remove-photo-btn{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;border:none;background:rgba(0,0,0,0.6);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.55rem}
.photo-placeholder{width:80px;height:80px;border-radius:50%;background:rgba(90,24,154,0.08);border:2px dashed rgba(90,24,154,0.3);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;transition:all var(--transition-fast);color:var(--color-primary);font-size:.65rem;font-weight:600}
.photo-placeholder i{font-size:1.4rem}
.photo-placeholder:hover{background:rgba(90,24,154,0.12);border-color:var(--color-primary)}

/* FORM GRID */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-group{display:flex;flex-direction:column;gap:5px}
.form-group--full{grid-column:1/-1}
.form-group label{font-size:.75rem;font-weight:600;color:var(--color-soft-gray);text-transform:uppercase;letter-spacing:.04em}
.required{color:var(--color-error)}
.form-group input,.form-group textarea,.form-group select{padding:9px 12px;border-radius:var(--border-radius-md);border:1px solid var(--border-color);background:var(--bg-input);color:var(--color-text);font-size:.88rem;font-family:var(--font-family-sans);outline:none;resize:vertical;transition:border-color var(--transition-fast)}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--color-primary)}

/* DETAIL MODAL */
.detail-header{display:flex;align-items:center;gap:16px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border-color)}
.detail-avatar{width:64px;height:64px;border-radius:50%;overflow:hidden;flex-shrink:0;background:linear-gradient(135deg,var(--color-primary),#9b59b6);display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:#fff;font-family:var(--font-family-logo)}
.detail-avatar img{width:100%;height:100%;object-fit:cover}
.detail-name{font-size:1.1rem;font-weight:700;color:var(--color-text);margin-bottom:2px}
.detail-role{font-size:.85rem;color:var(--color-soft-gray)}
.detail-rows{display:flex;flex-direction:column;gap:10px}
.detail-row{display:flex;gap:10px;align-items:flex-start}
.detail-label{font-size:.75rem;font-weight:700;color:var(--color-soft-gray);text-transform:uppercase;letter-spacing:.04em;min-width:90px;flex-shrink:0;padding-top:1px}
.detail-value{font-size:.88rem;color:var(--color-text);flex:1;line-height:1.5}
.detail-value a{color:var(--color-primary);text-decoration:none}
.detail-value a:hover{text-decoration:underline}

.btn-cancel,.btn-save,.btn-danger{padding:9px 20px;border-radius:var(--border-radius-md);font-size:.85rem;font-weight:600;cursor:pointer;border:none;transition:all var(--transition-fast);font-family:var(--font-family-sans)}
.btn-cancel{background:var(--border-color);color:var(--color-soft-gray)}
.btn-cancel:hover{background:var(--color-light-gray)}
.btn-save{background:var(--color-primary);color:#fff}
.btn-save:hover{background:var(--color-dark-purple)}
.btn-danger{background:var(--color-error);color:#fff}
.btn-danger:hover{background:#c53030}

/* TOAST */
.toast-notification{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:#1a1a1a;color:#fff;padding:12px 24px;border-radius:var(--border-radius-pill);font-size:.85rem;font-weight:500;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;z-index:9999;white-space:nowrap;max-width:90vw;text-align:center}
.toast-notification.show{opacity:1;transform:translateX(-50%) translateY(0)}

@media(max-width:640px){
  .cc-tabs,.controls-bar,.members-grid,.empty-state{padding-left:12px;padding-right:12px}
  .header-section{padding:10px 14px;gap:8px}
  .stats-bar{flex:1 1 100%;min-width:0}
  #projectTitle{font-size:.95rem}
  .members-grid{grid-template-columns:1fr 1fr}
  .form-grid{grid-template-columns:1fr}
  .fab{bottom:20px;right:16px}
}

/* PHONE INPUT WITH COUNTRY CODE */
.phone-input-wrap { display:flex; gap:6px; }
.phone-code-select {
  flex-shrink:0; width:110px; padding:9px 6px;
  border-radius:var(--border-radius-md); border:1px solid var(--border-color);
  background:var(--bg-input); color:var(--color-text);
  font-size:.82rem; font-family:var(--font-family-sans); outline:none;
  cursor:pointer; transition:border-color var(--transition-fast);
}
.phone-code-select:focus { border-color:var(--color-primary); }
.phone-input-wrap input { flex:1; }

/* CONTRACT BADGE */
.contract-badge {
  display:inline-flex; align-items:center; gap:4px;
  font-size:.68rem; font-weight:700; padding:2px 8px;
  border-radius:var(--border-radius-pill); text-transform:capitalize;
}
.contract-badge.none     { background:rgba(113,128,150,0.1); color:var(--color-soft-gray); }
.contract-badge.sent     { background:rgba(214,158,46,0.1);  color:#d69e2e; }
.contract-badge.signed   { background:rgba(49,130,206,0.1);  color:#3182ce; }
.contract-badge.paid     { background:rgba(56,161,105,0.1);  color:var(--color-success); }

/* AI BUTTON */
.ai-btn {
  background:linear-gradient(135deg,#667eea,#764ba2);
  border-radius:999px; box-shadow:0 2px 8px rgba(102,126,234,0.35);
  font-weight:600; padding:10px 16px; border:none;
}
.ai-btn:hover { background:linear-gradient(135deg,#764ba2,#667eea)!important; color:white!important; }

/* AI MODAL */
.modal-content--ai { max-width:540px; }
.ai-modal-header { display:flex; align-items:flex-start; gap:14px; margin-bottom:20px; padding-bottom:16px; border-bottom:1px solid var(--border-color); }
.ai-modal-icon { width:44px; height:44px; border-radius:12px; flex-shrink:0; background:linear-gradient(135deg,#667eea,#764ba2); display:flex; align-items:center; justify-content:center; font-size:1.1rem; color:#fff; }
.ai-modal-header h3 { margin:0 0 4px; font-size:1.05rem; font-weight:700; color:var(--color-text); }
.ai-modal-sub { margin:0; font-size:.82rem; color:var(--color-soft-gray); }
.ai-loading { display:flex; flex-direction:column; align-items:center; gap:14px; padding:40px 0; text-align:center; }
.ai-spinner { width:44px; height:44px; border-radius:50%; border:3px solid var(--border-color); border-top-color:#764ba2; animation:spin .8s linear infinite; }
.ai-spinner--sm { width:18px; height:18px; border-width:2px; }
@keyframes spin { to { transform:rotate(360deg); } }
.ai-loading p { font-size:.88rem; color:var(--color-soft-gray); margin:0; }

/* Script preview box */
.ai-script-preview {
  display:flex; flex-direction:column; gap:6px;
  background:rgba(90,24,154,0.05); border:1px solid rgba(90,24,154,0.18);
  border-radius:10px; padding:12px 14px; margin-bottom:14px;
}
body.dark .ai-script-preview { background:rgba(90,24,154,0.12); border-color:rgba(149,76,233,0.3); }
.ai-script-preview-header { display:flex; align-items:center; gap:8px; font-size:.8rem; font-weight:700; color:var(--color-primary); }
body.dark .ai-script-preview-header { color:var(--color-secondary); }
.ai-script-preview-header i { font-size:.85rem; }
.ai-script-snippet { font-size:.75rem; color:var(--color-soft-gray); line-height:1.5; margin:0; font-family:"Courier New",monospace; white-space:pre-wrap; word-break:break-word; max-height:60px; overflow:hidden; }

/* No script state */
.ai-no-script {
  display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center;
  background:rgba(214,158,46,0.06); border:1px solid rgba(214,158,46,0.25);
  border-radius:10px; padding:14px; margin-bottom:14px;
}
.ai-no-script i { font-size:1.6rem; color:#d69e2e; }
.ai-no-script p { font-size:.8rem; color:var(--color-soft-gray); margin:0; line-height:1.5; }

/* Script check loading */
.ai-script-check-loading { display:flex; align-items:center; gap:10px; padding:12px 0; font-size:.82rem; color:var(--color-soft-gray); }

.ai-results-toolbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; flex-wrap:wrap; gap:8px; }
.ai-results-count { font-size:.82rem; font-weight:600; color:var(--color-soft-gray); }
.ai-tool-btn { padding:5px 12px; border-radius:var(--border-radius-pill); border:1px solid var(--border-color); background:var(--bg-glass-card); color:var(--color-soft-gray); font-size:.78rem; font-weight:600; cursor:pointer; font-family:var(--font-family-sans); transition:all var(--transition-fast); }
.ai-tool-btn:hover { border-color:var(--color-primary); color:var(--color-primary); }
.ai-results-list { display:flex; flex-direction:column; gap:6px; max-height:320px; overflow-y:auto; padding-right:4px; scrollbar-width:thin; }
.ai-result-item { display:flex; align-items:flex-start; gap:10px; padding:10px 12px; border-radius:var(--border-radius-md); border:1px solid var(--border-color); background:var(--bg-input); cursor:pointer; transition:all var(--transition-fast); user-select:none; }
.ai-result-item:hover { border-color:var(--color-primary); }
.ai-result-item.selected { border-color:var(--color-primary); background:rgba(90,24,154,0.06); }
body.dark .ai-result-item.selected { background:rgba(90,24,154,0.15); }
.ai-result-check { width:20px; height:20px; border-radius:6px; flex-shrink:0; border:2px solid var(--border-color); display:flex; align-items:center; justify-content:center; font-size:.7rem; color:#fff; margin-top:1px; transition:all var(--transition-fast); }
.ai-result-item.selected .ai-result-check { background:var(--color-primary); border-color:var(--color-primary); }
.ai-result-item.selected .ai-result-check::after { content:"✓"; }
.ai-result-info { flex:1; min-width:0; }
.ai-result-name { font-size:.88rem; font-weight:700; color:var(--color-text); margin-bottom:2px; }
.ai-result-meta { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:2px; }
.ai-result-desc { font-size:.76rem; color:var(--color-soft-gray); line-height:1.4; }
.ai-type-badge { font-size:.65rem; font-weight:700; padding:2px 7px; border-radius:var(--border-radius-pill); }
.ai-type-badge.cast { background:rgba(90,24,154,0.1); color:var(--color-primary); }
.ai-type-badge.crew { background:rgba(49,130,206,0.1); color:#3182ce; }

/* Choose from Media button - shared across pages */
.choose-media-btn {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 8px; padding: 8px 14px; border-radius: 10px;
  border: 1px dashed var(--color-primary, #5a189a);
  background: rgba(90,24,154,0.05); color: var(--color-primary, #5a189a);
  font-size: .82rem; font-weight: 600; cursor: pointer;
  font-family: inherit; transition: all .2s ease; width: 100%;
  justify-content: center;
}
.choose-media-btn:hover { background: rgba(90,24,154,0.12); }
body.dark .choose-media-btn { border-color: #f6e05e; color: #f6e05e; background: rgba(246,224,94,0.06); }
body.dark .choose-media-btn:hover { background: rgba(246,224,94,0.12); }

.photo-actions { display: flex; gap: 6px; margin-top: 8px; flex-wrap: wrap; justify-content: center; }
.photo-action-btn {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 6px 12px; border-radius: 8px; font-size: .78rem; font-weight: 600;
  cursor: pointer; border: 1px solid var(--border-color, #e2e8f0);
  background: var(--bg-input, #f8fafc); color: var(--color-soft-gray, #718096);
  font-family: inherit; transition: all .2s ease;
}
.photo-action-btn:hover { border-color: var(--color-primary, #5a189a); color: var(--color-primary, #5a189a); }

/* ── VIEWER MODE BANNER ── */
.viewer-mode-banner {
  width: 100%;
  padding: 10px 20px;
  background: rgba(251, 191, 36, 0.12);
  border-bottom: 1px solid rgba(251, 191, 36, 0.3);
  color: #92400e;
  font-size: 0.82rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 10px;
  position: sticky;
  top: 0;
  z-index: 999;
}
.viewer-mode-banner i { color: #f59e0b; flex-shrink: 0; }
.viewer-mode-banner span { white-space: normal; }
body.dark .viewer-mode-banner { background: rgba(251,191,36,0.08); color: #fcd34d; border-color: rgba(251,191,36,0.2); }
