/* =============================================================
   NOFgestion — Sistema de diseño (v2 "pro")
   Neutros fríos + acento azul NOF usado con moderación.
   Escala de espaciado de 4px · tipografía Inter + Space Grotesk.
   ============================================================= */
:root{
  /* Neutros */
  --c0:#ffffff; --c25:#fcfcfd; --c50:#f7f8fa; --c100:#eef0f3; --c150:#e6e8ec;
  --c200:#dde0e6; --c300:#c4c9d2; --c400:#98a0ae; --c500:#6b7480;
  --c600:#4d5563; --c700:#363d49; --c800:#23272f; --c900:#14171c;
  /* Marca / semánticos */
  --blue:#1400FF; --blue-700:#1000c4; --blue-soft:#ecebff; --blue-tint:#f4f3ff;
  --green:#0c8f63; --green-soft:#e6f7ef;
  --amber:#9a6b00; --amber-soft:#fdf3da;
  --red:#cf3a22; --red-soft:#fdece8;
  --violet:#5b3fb0; --violet-soft:#efeaff;
  --teal:#0a8f86; --teal-soft:#e1f7f4;
  --pink:#b5359e; --pink-soft:#fbe7f6;
  /* Roles */
  /* --ink-2/--ink-3 oscurecidos a tonos que cumplen WCAG AA (≥4.5:1) sobre blanco */
  --bg:var(--c50); --surface:var(--c0); --ink:var(--c900); --ink-2:var(--c600);
  --ink-3:var(--c500); --line:var(--c150); --line-2:var(--c200);
  /* Forma / sombra */
  --r-sm:7px; --r-md:10px; --r:9px; --r-lg:13px; --r-xl:18px;
  /* Alto de control de formulario coherente en toda la app */
  --ctrl-pad-y:.52rem; --ctrl-pad-x:.7rem;
  color-scheme:light;
  --sh-1:0 1px 2px rgba(20,23,28,.05);
  --sh-2:0 2px 4px rgba(20,23,28,.05),0 1px 2px rgba(20,23,28,.04);
  --sh-3:0 8px 24px rgba(20,23,28,.10),0 2px 6px rgba(20,23,28,.06);
  --sh-pop:0 16px 48px rgba(20,23,28,.20);
  --sidebar:236px; --topbar:56px;
  /* Tipografía */
  --fs-xs:11.5px; --fs-sm:12.5px; --fs:13.5px; --fs-md:14px; --fs-lg:16px;
  --fs-xl:20px; --fs-2xl:26px;
  --font:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --display:"Space Grotesk",var(--font);
  --serif:"Fraunces",Georgia,serif;
  /* Dashboard hero — defaults (tema Sobre = base :root) */
  --d-hero-bg:var(--surface);
  --d-hero-spot:transparent;
  --d-leftbar:transparent;
}

/* ===========================================================
   TEMAS — se redefine la rampa de neutros (--c0..--c900) y los
   roles cascadean a toda la app. Sobre = base :root.
   =========================================================== */
/* Programme — clair éditorial (papier/crème) */
body[data-theme="programme"]{
  color-scheme:light;
  --c0:#ffffff; --c25:#fbf8f2; --c50:#f3eee4; --c100:#ece4d6; --c150:#e6ded0;
  --c200:#d8cebb; --c300:#c6bba6; --c400:#a89d89; --c500:#776d5d;
  --c600:#544c3f; --c700:#3a342b; --c800:#241f18; --c900:#1a1712;
  --blue-tint:#f4f1ff;
  /* roles re-declarados aquí para que resuelvan con la rampa de ESTE tema (no la de :root) */
  --bg:var(--c50); --surface:var(--c0); --ink:var(--c900); --ink-2:var(--c600);
  --ink-3:var(--c500); --line:var(--c150); --line-2:var(--c200);
  --d-hero-bg:radial-gradient(560px 320px at 86% -25%, var(--blue-soft), rgba(255,255,255,0) 60%), var(--surface);
  --d-leftbar:var(--blue);
}
/* Régie — sombre théâtral (rampa invertida) */
body[data-theme="regie"]{
  color-scheme:dark;
  --c0:#171b22; --c25:#13161c; --c50:#0e1014; --c100:#222834; --c150:#2a313d;
  --c200:#36404e; --c300:#475264; --c400:#5f697a; --c500:#8b94a3;
  --c600:#aab2bf; --c700:#c8cdd6; --c800:#e2e5ea; --c900:#f4f1ea;
  --blue:#5a4dff; --blue-700:#bcb6ff; --blue-soft:#23234d; --blue-tint:#191a2e;
  /* roles re-declarados aquí para que resuelvan con la rampa oscura */
  --bg:var(--c50); --surface:var(--c0); --ink:var(--c900); --ink-2:var(--c600);
  --ink-3:var(--c500); --line:var(--c150); --line-2:var(--c200);
  /* sombras más marcadas sobre oscuro */
  --sh-1:0 1px 2px rgba(0,0,0,.4); --sh-2:0 2px 6px rgba(0,0,0,.45);
  --sh-3:0 10px 30px rgba(0,0,0,.5); --sh-pop:0 18px 50px rgba(0,0,0,.6);
  --d-hero-bg:radial-gradient(620px 360px at 88% -30%, rgba(90,77,255,.42), rgba(20,23,29,0) 62%), linear-gradient(180deg,#191d26,#12151b);
  --d-hero-spot:radial-gradient(circle, rgba(255,184,77,.15), rgba(255,184,77,0) 60%);
}
*{box-sizing:border-box}
[hidden]{display:none !important}
@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms !important;transition-duration:.001ms !important}}
html,body{margin:0;height:100%}
body{font-family:var(--font);color:var(--ink);background:var(--bg);font-size:var(--fs);line-height:1.5;-webkit-font-smoothing:antialiased;letter-spacing:-.005em}
h1,h2,h3,.brand,.logo{font-family:var(--display);letter-spacing:-.02em}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;color:inherit}
::selection{background:var(--blue-soft)}

/* ---- Accesibilidad: foco visible, skip-link, sr-only ---- */
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.skip-link{position:fixed;top:.5rem;left:.5rem;z-index:100;background:var(--blue);color:#fff;
  padding:.55rem .9rem;border-radius:var(--r-sm);font-weight:600;transform:translateY(-150%);transition:transform .15s}
.skip-link:focus{transform:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* Filas/tarjetas clicables (rol=button vía JS): anillo de foco para teclado */
tbody tr:focus-visible,.kpi:focus-visible,.list-row:focus-visible,.cal-ev:focus-visible,.plan-item:focus-visible{
  outline:2px solid var(--blue);outline-offset:-2px}

/* ---- Botones ---- */
.btn{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--line-2);background:var(--surface);color:var(--c700);padding:.5rem .85rem;border-radius:var(--r-sm);font-weight:500;font-size:var(--fs);transition:.13s;box-shadow:var(--sh-1);white-space:nowrap}
.btn:hover{background:var(--c50);border-color:var(--c300)}
.btn:active{transform:translateY(.5px)}
.btn-primary{background:var(--blue);color:#fff;border-color:var(--blue)}
.btn-primary:hover{background:var(--blue-700);border-color:var(--blue-700)}
.btn-danger{color:var(--red);border-color:color-mix(in srgb,var(--red) 32%,var(--line-2))}
.btn-danger:hover{background:var(--red-soft)}
.btn-sm{padding:.32rem .6rem;font-size:var(--fs-sm)}
.btn-ghost{border-color:transparent;box-shadow:none;background:transparent}
.btn-ghost:hover{background:var(--c100)}
.link{background:none;border:none;color:var(--ink-2);padding:0;font-size:var(--fs-sm)}
.link:hover{color:var(--blue)}
.icon-btn{background:none;border:none;font-size:17px;color:var(--ink-3);line-height:1;padding:.2rem;border-radius:6px}
.icon-btn:hover{background:var(--c100);color:var(--ink)}

/* ---- Controles de formulario (baseline unificado) ----
   Un solo estilo para TODOS los campos: misma tipografía, alto, radios,
   foco y colores que responden al tema (arregla el texto negro sobre fondo
   oscuro). Los componentes sólo aportan layout (ancho, márgenes). */
input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),
select,textarea{
  font:inherit;font-size:var(--fs);line-height:1.4;
  color:var(--ink);background-color:var(--surface);
  border:1px solid var(--line-2);border-radius:var(--r-sm);
  padding:var(--ctrl-pad-y) var(--ctrl-pad-x);
  transition:border-color .13s,box-shadow .13s;
  -webkit-appearance:none;appearance:none;
}
select{cursor:pointer;padding-right:1.9rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7480' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .65rem center}
textarea{min-height:76px;resize:vertical;line-height:1.55}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
input::placeholder,textarea::placeholder{color:var(--ink-3);opacity:1}
input[type=checkbox],input[type=radio]{accent-color:var(--blue);cursor:pointer}
input[type=date],input[type=time]{color-scheme:inherit}
/* Autofill del navegador coherente con el tema (Chrome/Safari) */
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--ink);-webkit-box-shadow:0 0 0 100px var(--surface) inset;caret-color:var(--ink)}

/* ---- Login ---- */
.login{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(1200px 600px at 70% -10%,var(--blue-tint),var(--bg))}
.login-card{background:var(--surface);padding:2.4rem;border-radius:var(--r-xl);box-shadow:var(--sh-3);width:360px;display:flex;flex-direction:column;gap:.3rem;border:1px solid var(--line)}
.logo{font-size:1.7rem;margin:0;font-weight:700}
.logo span,.brand span{color:var(--blue)}
.login-sub{color:var(--ink-2);margin:.1rem 0 1.3rem;font-size:var(--fs-md)}
.login-card label{font-size:var(--fs-xs);font-weight:600;color:var(--ink-2);margin-top:.6rem;text-transform:uppercase;letter-spacing:.04em}
.login-card input{margin-top:.15rem}
.login-card label.login-remember{display:flex;flex-direction:row;align-items:center;gap:.45rem;margin-top:.95rem;text-transform:none;letter-spacing:0;font-weight:500;font-size:var(--fs-sm);color:var(--ink-2);cursor:pointer}
.login-card .login-remember input{width:auto;padding:0;border:0;box-shadow:none;margin:0;accent-color:var(--coral,var(--blue))}
.login-card .btn{margin-top:.9rem;justify-content:center;padding:.62rem}
.login-error{color:var(--red);font-size:var(--fs-sm);margin:.5rem 0 0}

/* ---- Layout ---- */
/* Alto real de la ventana: la fila se limita a la pantalla (minmax(0,1fr))
   para que el scroll interno de .view funcione y no se corte el fondo (Windows). */
.app{display:grid;grid-template-columns:var(--sidebar) 1fr;grid-template-rows:minmax(0,1fr);height:100vh;height:100dvh;overflow:hidden}
.sidebar{background:var(--c25);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:.85rem .7rem}
.brand{font-size:1.18rem;font-weight:700;padding:.35rem .55rem .9rem;display:flex;align-items:center;gap:.4rem}
.brand .dot{width:8px;height:8px;border-radius:50%;background:var(--blue);display:inline-block}
.nav-group{margin-top:.9rem}
.nav-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:0 .6rem .35rem}
.nav{display:flex;flex-direction:column;gap:1px}
.nav a{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem;border-radius:var(--r-sm);color:var(--c600);font-weight:500;font-size:var(--fs-md)}
.nav a:hover{background:var(--c100);color:var(--ink)}
.nav a.active{background:var(--blue-soft);color:var(--blue-700)}
.nav a.active .ico{color:var(--blue)}
.nav .ico{width:17px;text-align:center;color:var(--ink-3);font-size:14px}
.sidebar-spacer{flex:1}
.sidebar-foot{border-top:1px solid var(--line);padding-top:.7rem;display:flex;flex-direction:column;gap:.6rem}
.lang-switch{display:inline-flex;background:var(--c100);border-radius:var(--r-sm);padding:2px;width:fit-content}
.lang-switch button{background:none;border:none;color:var(--ink-2);padding:.25rem .6rem;border-radius:5px;font-size:var(--fs-sm);font-weight:600}
.lang-switch button.active{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}
.user-box{display:flex;align-items:center;gap:.55rem;padding:.15rem .3rem}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:600;font-size:var(--fs-sm);font-family:var(--display)}
.user-meta{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.user-meta b{font-size:var(--fs-sm);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-meta .link{font-size:var(--fs-xs)}

/* ---- Main + topbar ---- */
.main{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}
.topbar{height:var(--topbar);flex-shrink:0;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 82%,transparent);backdrop-filter:saturate(1.4) blur(8px);display:flex;align-items:center;gap:1rem;padding:0 1.4rem}
.crumb{font-family:var(--display);font-weight:600;font-size:var(--fs-lg)}
.topbar-spacer{flex:1}
.season-select{font-size:var(--fs-sm);padding:.4rem 1.7rem .4rem .6rem;margin-left:.4rem}
.cmdk-btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--c50);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:.4rem .7rem;color:var(--ink-3);font-size:var(--fs-sm);min-width:200px}
.cmdk-btn:hover{background:var(--surface);border-color:var(--c300)}
.cmdk-btn .kbd{margin-left:auto}
.kbd{font-family:var(--font);font-size:10.5px;font-weight:600;background:var(--surface);border:1px solid var(--line-2);border-bottom-width:2px;border-radius:4px;padding:1px 5px;color:var(--ink-2)}
.nav-toggle{display:none;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:.3rem .55rem;font-size:16px;color:var(--ink-2);line-height:1}
.nav-toggle:hover{background:var(--c50)}
.nav-backdrop{display:none}

/* ---- Vista ---- */
.view{overflow:auto;padding:1.5rem 1.7rem;flex:1;min-height:0}
.view-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:1.2rem;gap:1rem;flex-wrap:wrap}
.view-head h1{font-family:var(--serif);font-size:var(--fs-2xl);margin:0;font-weight:500;letter-spacing:-.01em}
.view-head .sub{color:var(--ink-2);font-size:var(--fs-md);margin-top:.15rem}
.toolbar{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}
.pl-toolbar{flex-direction:column;align-items:stretch;gap:.6rem}
.pl-top{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.pl-range{display:flex;align-items:center;gap:.4rem;margin-left:auto}
.pl-range input[type=date]{font-size:var(--fs-sm);padding:.42rem .5rem}
.pl-range-sep{color:var(--ink-3)}
.search{flex:1;min-width:220px;padding-left:2rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%2398a0ae' stroke-width='2.2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:.65rem center}
.chips{display:flex;gap:.3rem;flex-wrap:wrap}
.chip{padding:.34rem .7rem;border:1px solid var(--line-2);border-radius:999px;background:var(--surface);font-size:var(--fs-sm);color:var(--ink-2);font-weight:500}
.chip:hover{border-color:var(--c300)}
.chip.active{background:var(--ink);color:var(--surface);border-color:var(--ink)}

/* ---- Tarjetas / tabla ---- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1)}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:.5rem .8rem;border-bottom:1px solid var(--line);font-size:var(--fs);vertical-align:middle}
th{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);background:var(--c25);font-weight:700;position:sticky;top:0;z-index:1}
tbody tr{cursor:pointer;transition:background .1s}
tbody tr:nth-child(even){background:var(--c25)}
tbody tr:hover{background:var(--blue-tint)}
tbody tr:last-child td{border-bottom:none}
td b{font-weight:600}
td.num,.num{font-variant-numeric:tabular-nums}

/* ---- Badges / pills ---- */
.tag{display:inline-flex;align-items:center;gap:.3rem;padding:.13rem .5rem;border-radius:5px;font-size:var(--fs-xs);font-weight:600;background:var(--c100);color:var(--c600);white-space:nowrap}
.tag.artista{background:var(--teal-soft);color:var(--teal)}
.tag.persona{background:var(--c100);color:var(--c600)}
.tag.organizacion{background:var(--amber-soft);color:var(--amber)}
.tag.tc-prod{background:var(--green-soft);color:var(--green)}
.tag.tc-coprod{background:var(--blue-soft);color:var(--blue-700)}
.tag.tc-cession{background:var(--amber-soft);color:var(--amber)}
.tag.tc-coreal{background:var(--red-soft);color:var(--red)}
.dotstat{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--fs-sm);color:var(--c600)}
.dotstat::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c400)}
.dotstat.Confirmé::before{background:var(--green)}
.dotstat.Option::before{background:var(--amber)}
.dotstat.Annulé::before{background:var(--red)}
.muted{color:var(--ink-2)}
.empty{padding:3.5rem;text-align:center;color:var(--ink-2)}
.empty .big{font-size:1.6rem;margin-bottom:.4rem}

/* ---- Skeleton ---- */
.skeleton{padding:.4rem .95rem}
.skel-row{height:14px;background:linear-gradient(90deg,var(--c100),var(--c50),var(--c100));background-size:200% 100%;border-radius:5px;margin:.85rem 0;animation:shimmer 1.2s infinite}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ---- Paginación ---- */
.pager{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;margin-top:1rem;font-size:var(--fs-sm);color:var(--ink-2)}

/* ---- Dashboard ---- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin-bottom:1.4rem}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.1rem 1.2rem;box-shadow:var(--sh-1)}
.kpi .label{font-size:var(--fs-sm);color:var(--ink-2);font-weight:500}
.kpi .value{font-family:var(--display);font-size:2rem;font-weight:700;margin-top:.3rem;line-height:1}
.kpi .meta{font-size:var(--fs-sm);color:var(--ink-3);margin-top:.35rem}
.kpi.accent{background:linear-gradient(135deg,var(--blue),var(--blue-700));border-color:transparent;color:#fff}
.kpi.accent .label,.kpi.accent .meta{color:rgba(255,255,255,.8)}
.dash-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:1.2rem}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:hidden}
.panel-head{padding:.85rem 1.1rem;border-bottom:1px solid var(--line);font-weight:600;font-size:var(--fs-md);display:flex;align-items:center;justify-content:space-between}
.panel-body{padding:.4rem 0}
.list-row{display:flex;align-items:center;gap:.7rem;padding:.6rem 1.1rem;border-bottom:1px solid var(--c50);cursor:pointer}
.list-row:hover{background:var(--blue-tint)}
.list-row:last-child{border-bottom:none}
.list-row .when{font-variant-numeric:tabular-nums;color:var(--ink-2);font-size:var(--fs-sm);min-width:92px}
.list-row .main{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---- Modal centrado (flotante, fondo desenfocado) ---- */
.drawer{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:max(2vh,1rem)}
.drawer-backdrop{position:absolute;inset:0;background:rgba(18,21,26,.42);backdrop-filter:blur(6px) saturate(1.05);-webkit-backdrop-filter:blur(6px) saturate(1.05)}
.drawer-panel{position:relative;width:min(920px,94vw);max-height:92vh;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-pop);display:flex;flex-direction:column;animation:modalpop .18s cubic-bezier(.2,.7,.3,1)}
@keyframes modalpop{from{transform:scale(.96) translateY(8px);opacity:0}to{transform:none;opacity:1}}
/* Móvil: el popup ocupa toda la pantalla; en pantallas más grandes crece hasta 920px */
@media(max-width:680px){
  .drawer{padding:0}
  .drawer-panel{width:100%;max-width:100%;height:100%;max-height:100%;border:none;border-radius:0;animation:modalslide .2s cubic-bezier(.2,.7,.3,1)}
  .drawer-body{padding:1.15rem}
  /* Búsqueda colapsada a sólo la lupa (móvil); el botón sigue abriendo el diálogo */
  .cmdk-btn{min-width:0;padding:.45rem;gap:0}
  .cmdk-btn>span:not([aria-hidden]),.cmdk-btn .kbd{display:none}
  .topbar{gap:.5rem;padding:0 .9rem}
  .crumb{font-size:var(--fs)}
}
@keyframes modalslide{from{transform:translateY(100%);opacity:.4}to{transform:none;opacity:1}}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:1.15rem 1.5rem;border-bottom:1px solid var(--line);flex-shrink:0}
.drawer-head h2{font-family:var(--serif);margin:0;font-size:1.35rem;font-weight:500;letter-spacing:-.01em}
.drawer-body{overflow:auto;padding:1.5rem;flex:1}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1rem}
.field{display:flex;flex-direction:column;gap:.28rem}
.field.full{grid-column:1/-1}
.field label{font-size:10.5px;font-weight:600;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em}
.drawer-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.4rem;padding-top:1rem;border-top:1px solid var(--line)}
.drawer-actions .spacer{flex:1}
.section-title{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:700}

/* ---- Planning editable ---- */
.plan-head{display:flex;align-items:center;justify-content:space-between;margin:1.6rem 0 .5rem}
.plan-list{display:flex;flex-direction:column}
.plan-item{display:flex;gap:.7rem;align-items:center;padding:.55rem .5rem;border-bottom:1px solid var(--line);cursor:pointer;border-radius:var(--r-sm)}
.plan-item:hover{background:var(--blue-tint)}
.plan-date{font-variant-numeric:tabular-nums;color:var(--ink-2);min-width:82px;font-size:var(--fs-sm)}
.plan-main{flex:1}
.plan-cancel{color:var(--red);font-weight:600}
.plan-edit-ico{opacity:0;color:var(--blue);font-size:13px}
.plan-item:hover .plan-edit-ico{opacity:1}
.plan-edit{background:var(--blue-tint);border:1px solid color-mix(in srgb,var(--blue) 28%,var(--line-2));border-radius:var(--r);padding:1rem;margin:.5rem 0}
.plan-edit .drawer-actions{margin-top:1rem}
.eng-cachet{font-variant-numeric:tabular-nums}
.cast-group{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--blue-700);background:var(--blue-tint);padding:.3rem .5rem;border-radius:var(--r-sm);margin:.6rem 0 .2rem}
.conflict-flag{color:var(--amber);margin-left:.35rem;cursor:help}
.conflict-panel{border-color:color-mix(in srgb,var(--amber) 40%,var(--line-2));background:linear-gradient(0deg,var(--surface),var(--amber-soft))}
.conflict-panel .panel-head{color:var(--amber);border-bottom-color:color-mix(in srgb,var(--amber) 40%,var(--line-2))}

/* Combobox de búsqueda de contactos (picker) */
.picker{position:relative}
.pp-input{width:100%}
.pp-results{position:absolute;top:100%;left:0;right:0;z-index:5;margin-top:3px;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm);box-shadow:var(--sh-3);max-height:240px;overflow:auto;padding:.25rem}
.pp-item{display:flex;align-items:center;gap:.4rem;padding:.45rem .55rem;border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs)}
.pp-item:hover{background:var(--blue-soft)}
.pp-empty{padding:.7rem;text-align:center;color:var(--ink-3);font-size:var(--fs-sm)}
.pp-create{color:var(--blue-700);font-weight:600;border-top:1px solid var(--line)}
.pp-plus{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--blue);color:#fff;font-weight:700;font-size:12px;line-height:1}

/* ---- Calendario ---- */
.cal-head{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem;flex-wrap:wrap}
.cal-modes{display:inline-flex;background:var(--c100);border-radius:var(--r-sm);padding:2px;margin-right:.4rem}
.cal-modes button{background:none;border:none;color:var(--ink-2);padding:.32rem .7rem;border-radius:5px;font-size:var(--fs-sm);font-weight:600;cursor:pointer;font-family:var(--font)}
.cal-modes button.active{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}
.cal-grid-week .cal-cell{min-height:330px}
/* Vistas de lista (semestre / année) */
.cal-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.cal-list-month{font-family:var(--serif);font-size:1.15rem;font-weight:500;padding:.85rem 1.1rem .45rem;background:var(--c25);border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-transform:capitalize}
.cal-list-month:first-child{border-top:none}
.cal-list-row{display:grid;grid-template-columns:96px 1fr;gap:.8rem;align-items:center;padding:.4rem 1.1rem;border-bottom:1px solid var(--c50)}
.cal-list-row:last-child{border-bottom:none}
.cal-list-row:hover{background:var(--blue-tint)}
.cal-list-date{font-family:var(--display);font-size:12.5px;font-weight:600;color:var(--ink-2);text-transform:capitalize;font-variant-numeric:tabular-nums}
.cal-list-ev{cursor:pointer;max-width:100%;white-space:normal}
/* Semestre = varias grillas mensuales apiladas */
.cal-months{display:flex;flex-direction:column;gap:1.7rem}
.cal-month-title{font-family:var(--serif);font-size:1.3rem;font-weight:500;margin-bottom:.5rem;text-transform:capitalize}
/* Année = lista de TODOS los días (vacíos en blanco) */
.cal-list-evs{display:flex;flex-direction:column;gap:3px;min-width:0;padding:.1rem 0}
.cal-list-row.cal-empty{padding-top:.25rem;padding-bottom:.25rem}
.cal-list-row.cal-empty .cal-list-date{color:var(--ink-3)}
.cal-list-row.today{background:var(--blue-tint)}
.cal-list-row.today .cal-list-date{color:var(--blue);font-weight:700}
/* Vista Année estilo planning de pared: 12 meses × 31 días */
.yr-grid{border:1px solid var(--line);border-radius:var(--r);overflow:auto;background:var(--surface)}
.yr-row{display:grid;grid-template-columns:24px repeat(12,minmax(0,1fr))}
.yr-head{position:sticky;top:0;z-index:1;background:var(--c25);border-bottom:1px solid var(--line-2)}
.yr-mh{font-family:var(--display);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--ink-3);text-align:center;padding:5px 0;border-left:1px solid var(--line)}
.yr-num{font-size:9px;color:var(--ink-3);text-align:right;padding-right:3px;font-variant-numeric:tabular-nums;display:flex;align-items:center;justify-content:flex-end;border-bottom:1px solid var(--c50)}
.yr-cell{position:relative;min-height:19px;border-left:1px solid var(--line);border-bottom:1px solid var(--c50);display:flex;align-items:center;gap:2px;padding:0 2px;overflow:hidden;cursor:pointer}
.yr-cell.yr-block{background:var(--c50);cursor:default}
.yr-cell.yr-today{background:var(--blue-tint)}
.yr-bar{width:4px;align-self:stretch;border-radius:1px;flex-shrink:0;display:block}
.yr-label{font-size:8px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-2)}
.yr-dots{display:flex;gap:1px;margin-left:auto;flex-shrink:0}
.yr-dot{width:5px;height:5px;border-radius:50%}
.view-head-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.cal-sub-hint{margin:0 0 1.1rem;font-size:var(--fs-md);line-height:1.5}
.cal-sub-row{display:flex;gap:.5rem;margin-bottom:1.1rem}
.cal-sub-row input{flex:1;font-size:var(--fs-sm);background-color:var(--c25);color:var(--ink-2)}
/* Modal de export (elegir secciones de la feuille de route) */
.exp-hint{margin:0 0 1rem;font-size:var(--fs-md);line-height:1.5}
.exp-opt{display:flex;align-items:center;gap:.6rem;padding:.55rem .2rem;font-size:var(--fs-md);cursor:pointer;border-bottom:1px solid var(--c50)}
.exp-opt input{width:16px;height:16px;accent-color:var(--blue)}
.exp-grp{margin-bottom:1rem}
.exp-grp-t{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin:0 0 .3rem}
.cal-title{font-family:var(--display);font-weight:600;font-size:var(--fs-xl);min-width:190px;text-transform:capitalize}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;gap:1px}
.cal-dow{background:var(--c25);padding:.5rem;text-align:center;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}
.cal-cell{background:var(--surface);min-height:104px;min-width:0;padding:.4rem;display:flex;flex-direction:column;gap:3px}
.cal-cell .cal-ev{min-width:0;max-width:100%}
.cal-cell.out{background:var(--c25)}
.cal-cell .daynum{font-size:var(--fs-sm);color:var(--ink-2);font-weight:600;align-self:flex-end}
.cal-cell.today .daynum{background:var(--blue);color:#fff;border-radius:50%;width:22px;height:22px;display:grid;place-items:center}
.cal-ev{font-size:11px;padding:2px 5px;border-radius:4px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid var(--c400);background:var(--c100);color:var(--c700)}
.cal-ev:hover{filter:brightness(.97)}
.cal-ev.Répétition{background:var(--blue-soft);color:var(--blue-700);border-color:var(--blue)}
.cal-ev.Représentation{background:var(--green-soft);color:var(--green);border-color:var(--green)}
.cal-ev.Technique{background:var(--violet-soft);color:var(--violet);border-color:var(--violet)}
.cal-ev.Voyage{background:var(--amber-soft);color:var(--amber);border-color:var(--amber)}
.cal-ev.Hébergement{background:var(--teal-soft);color:var(--teal);border-color:var(--teal)}
.cal-more{font-size:10.5px;color:var(--ink-3);padding-left:5px}

/* ---- Command palette ---- */
.cmdk{position:fixed;inset:0;z-index:80;display:flex;justify-content:center;align-items:flex-start;padding-top:12vh}
.cmdk-back{position:absolute;inset:0;background:rgba(18,21,26,.42);backdrop-filter:blur(6px) saturate(1.05);-webkit-backdrop-filter:blur(6px) saturate(1.05)}
.cmdk-box{position:relative;width:min(580px,92vw);background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-pop);overflow:hidden;animation:pop .14s ease}
@keyframes pop{from{transform:scale(.98);opacity:.6}to{transform:none;opacity:1}}
.cmdk-input{width:100%;border:none;border-bottom:1px solid var(--line);padding:1rem 1.2rem;font-size:var(--fs-lg);outline:none;font-family:var(--font)}
.cmdk-results{max-height:54vh;overflow:auto;padding:.4rem}
.cmdk-sec{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);padding:.6rem .8rem .3rem}
.cmdk-item{display:flex;align-items:center;gap:.6rem;padding:.55rem .8rem;border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-md)}
.cmdk-item .ico{width:18px;text-align:center;color:var(--ink-3)}
.cmdk-item .tag{margin-left:auto}
.cmdk-item.sel,.cmdk-item:hover{background:var(--blue-soft);color:var(--blue-700)}
.cmdk-item.sel .ico{color:var(--blue)}
.cmdk-empty{padding:1.4rem;text-align:center;color:var(--ink-3);font-size:var(--fs-sm)}

/* ---- Toast ---- */
.toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--surface);padding:.7rem 1.1rem;border-radius:var(--r);z-index:90;box-shadow:var(--sh-3);font-size:var(--fs-md);display:flex;align-items:center;gap:.5rem}
.toast::before{content:"✓";color:var(--green)}
.toast.err::before{content:"!";color:#ff6b5a}

/* Grillas a 1 columna antes de que el espacio apriete */
@media(max-width:980px){ .form-grid,.dash-grid{grid-template-columns:1fr} }
/* Sidebar más estrecho en laptops chicas */
@media(max-width:1040px){ :root{--sidebar:200px} }
/* ≤680px: una sola columna, sidebar en overlay accesible vía botón hamburguesa */
@media(max-width:680px){
  .app{grid-template-columns:1fr}
  .nav-toggle{display:inline-flex;align-items:center}
  .sidebar{position:fixed;top:0;left:0;bottom:0;width:240px;z-index:60;
    transform:translateX(-100%);transition:transform .2s ease;box-shadow:var(--sh-pop)}
  .app.nav-open .sidebar{transform:none}
  .nav-backdrop{display:block;position:fixed;inset:0;z-index:55;
    background:rgba(18,21,26,.42);opacity:0;pointer-events:none;transition:opacity .2s}
  .app.nav-open .nav-backdrop{opacity:1;pointer-events:auto}
  /* Tablas: permitir scroll horizontal en lugar de romper el layout */
  .card{overflow-x:auto}
  .view{padding:1.1rem 1rem}
}
@media (prefers-reduced-motion: reduce){ .sidebar{transition:none} }

/* ===========================================================
   Switcher de temas (sidebar)
   =========================================================== */
.theme-switch{display:flex;background:var(--c100);border-radius:var(--r-sm);padding:2px;gap:2px}
.theme-switch button{flex:1;background:none;border:none;color:var(--ink-2);padding:.3rem .35rem;border-radius:5px;font-size:10.5px;font-weight:600;font-family:var(--font);cursor:pointer;white-space:nowrap}
.theme-switch button.active{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}

/* ===========================================================
   Dashboard rediseñado (.d-*) — serif solo en títulos, sans en datos
   =========================================================== */
.d-hero{position:relative;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;background:var(--d-hero-bg);margin-bottom:1.2rem;cursor:pointer}
.d-hero::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--d-leftbar)}
.d-hero::after{content:"";position:absolute;right:-60px;top:-120px;width:480px;height:480px;border-radius:50%;background:var(--d-hero-spot);pointer-events:none}
.d-hero-in{position:relative;display:grid;grid-template-columns:1.55fr .85fr;gap:1.2rem;padding:1.9rem 2.1rem}
.d-eyebrow{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--red);display:flex;align-items:center;gap:.5rem}
body[data-theme="regie"] .d-eyebrow{color:#ffb84d}
.d-live{width:7px;height:7px;border-radius:50%;background:currentColor}
.d-opera{font-family:var(--serif);font-weight:500;font-size:2.9rem;line-height:1;letter-spacing:-.02em;margin:.7rem 0 0;color:var(--ink)}
.d-meta{display:flex;gap:1.6rem;margin-top:1.3rem;flex-wrap:wrap}
.d-meta>div{display:flex;flex-direction:column;gap:.2rem}
.d-meta .d-l{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.d-meta .d-v{font-family:var(--display);font-size:.9rem;font-weight:500;color:var(--ink)}
.d-hero-cta{display:flex;gap:.5rem;margin-top:1.5rem;flex-wrap:wrap}
.d-date{border-left:1px solid var(--line);padding-left:1.5rem;display:flex;flex-direction:column;justify-content:center}
.d-jx{font-family:var(--display);font-size:12px;font-weight:600;color:var(--teal);letter-spacing:.04em}
body[data-theme="regie"] .d-jx{color:#28ffbf}
.d-bigdate{font-family:var(--display);font-weight:600;font-size:4.6rem;line-height:.9;letter-spacing:-.03em;margin-top:.3rem;font-variant-numeric:tabular-nums;color:var(--ink)}
.d-bigdate small{display:block;font-family:var(--font);font-size:.95rem;color:var(--ink-2);margin-top:.45rem;font-weight:400;letter-spacing:0;text-transform:capitalize}
.d-hero-empty .d-opera{color:var(--ink-3);font-style:italic}

.d-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;margin-bottom:1.2rem}
.d-kpi{background:var(--surface);padding:1.1rem 1.2rem;display:flex;flex-direction:column;gap:.4rem;cursor:pointer;transition:background .12s}
.d-kpi:hover{background:var(--blue-tint)}
.d-kpi-l{font-size:11.5px;color:var(--ink-2);font-weight:500}
.d-kpi-n{font-family:var(--display);font-weight:600;font-size:2.3rem;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink)}
.d-kpi-d{font-size:11.5px;color:var(--ink-3)}
.d-kpi-alert .d-kpi-n{color:var(--amber)}
.d-kpi-alert .d-kpi-l::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--amber);margin-left:.4rem;vertical-align:middle}

.d-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:1.2rem}
.d-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.d-ph{display:flex;align-items:center;justify-content:space-between;padding:.95rem 1.2rem;border-bottom:1px solid var(--line)}
.d-ph h3{font-family:var(--serif);font-weight:500;font-size:1.2rem;letter-spacing:-.01em;margin:0}
.d-count{font-family:var(--display);font-size:12px;font-weight:600;color:var(--amber);background:var(--amber-soft);padding:2px 9px;border-radius:999px}
.d-list{padding:.2rem 0}
.d-ev{display:grid;grid-template-columns:3px 52px 1fr auto;align-items:center;gap:.8rem;padding:.7rem 1.2rem;border-bottom:1px solid var(--c50);cursor:pointer}
.d-ev:last-child{border-bottom:none}
.d-ev:hover{background:var(--blue-tint)}
.d-bar{width:3px;height:32px;border-radius:3px;background:var(--blue)}
.d-when .dd{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600;color:var(--ink)}
.d-ev-body{min-width:0;display:flex;flex-direction:column;gap:1px}
.d-ev-ti{font-size:13.5px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d-ev-pl{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d-pill{font-family:var(--display);font-size:10.5px;font-weight:600;padding:3px 9px;border-radius:6px;white-space:nowrap;background:color-mix(in srgb,var(--blue) 14%,transparent);color:var(--blue-700)}
/* color por tipo de actividad (mismos nombres que el calendario) */
.d-ev.Répétition .d-bar{background:var(--blue)}      .d-pill.Répétition{background:color-mix(in srgb,var(--blue) 14%,transparent);color:var(--blue-700)}
.d-ev.Représentation .d-bar{background:var(--green)} .d-pill.Représentation{background:var(--green-soft);color:var(--green)}
.d-ev.Technique .d-bar{background:var(--violet)}     .d-pill.Technique{background:var(--violet-soft);color:var(--violet)}
.d-ev.Voyage .d-bar{background:var(--amber)}         .d-pill.Voyage{background:var(--amber-soft);color:var(--amber)}
.d-ev.Hébergement .d-bar{background:var(--teal)}     .d-pill.Hébergement{background:var(--teal-soft);color:var(--teal)}

.d-prod{display:flex;align-items:center;gap:.9rem;padding:.85rem 1.2rem;border-bottom:1px solid var(--c50);cursor:pointer}
.d-prod:last-child{border-bottom:none}
.d-prod:hover{background:var(--blue-tint)}
.d-no{font-family:var(--display);font-weight:600;font-size:.95rem;color:var(--ink-3);width:26px;font-variant-numeric:tabular-nums}
.d-prod-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.d-prod-ti{font-family:var(--serif);font-size:1.2rem;line-height:1.1;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d-prod-sub{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d-tag{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;padding:3px 8px;border-radius:6px;border:1px solid var(--line-2);color:var(--ink-2);white-space:nowrap}
.d-tag.tc-coprod,.d-tag.tc-coreal{color:var(--blue-700);border-color:color-mix(in srgb,var(--blue) 35%,var(--line-2))}

.d-conflict{border:1px solid color-mix(in srgb,var(--amber) 45%,var(--line));margin-bottom:1.2rem;border-radius:var(--r-lg);overflow:hidden;background:var(--surface)}
.d-conflict .d-ph h3{font-family:var(--display);font-weight:600;font-size:.95rem;color:var(--amber)}
.d-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 1.2rem;border-bottom:1px solid var(--c50)}
.d-row:last-child{border-bottom:none}
.d-row-main{font-size:13px;min-width:0}
.d-row .d-when{font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}

@media(max-width:980px){ .d-grid,.d-hero-in{grid-template-columns:1fr} .d-kpis{grid-template-columns:repeat(2,1fr)}
  .d-date{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:1rem;margin-top:.4rem} }
@media(max-width:680px){ .d-kpis{grid-template-columns:1fr} .d-opera{font-size:2.3rem} .d-bigdate{font-size:3.4rem} }

/* ===========================================================
   Página de detalle de producción (.pd-*) — solo lectura + lápiz
   =========================================================== */
.pd-head{margin-bottom:1.4rem}
.pd-back{display:inline-block;margin-bottom:.7rem;font-size:.85rem}
.pd-title-row{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}
.pd-head h1{font-family:var(--serif);font-size:var(--fs-2xl);font-weight:500;letter-spacing:-.01em;margin:0}
.pd-tags{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.pd-sub{color:var(--ink-2);margin:.35rem 0 0;font-size:var(--fs-md)}
.pd-meta-line{margin:.3rem 0 0;font-size:var(--fs-sm)}
.pd-actions{display:flex;gap:.5rem;margin-top:.9rem;flex-wrap:wrap}

.pd-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:1.2rem;overflow:hidden}
.pd-sh{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.3rem;border-bottom:1px solid var(--line)}
.pd-sh h2{font-family:var(--serif);font-weight:500;font-size:1.3rem;letter-spacing:-.01em;margin:0;display:flex;align-items:center;gap:.55rem}
.pd-count{font-family:var(--display);font-size:11px;font-weight:600;color:var(--ink-3);background:var(--c100);padding:1px 8px;border-radius:999px}
.pd-edit{border:1px solid var(--line-2);border-radius:var(--r-sm);width:30px;height:30px;display:grid;place-items:center;color:var(--ink-2);font-size:14px;flex-shrink:0}
.pd-edit:hover{background:var(--blue-soft);color:var(--blue-700);border-color:transparent}
.pd-body{padding:1.1rem 1.3rem}

.pd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.9rem 1.5rem;margin:0}
.pd-row{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.pd-row dt{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:600}
.pd-row dd{margin:0;font-size:.92rem;color:var(--ink)}
.pd-texts{margin-top:1.1rem;border-top:1px solid var(--line);padding-top:1.1rem;display:flex;flex-direction:column;gap:1rem}
.pd-text dt{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:600}
.pd-text dd{margin:.25rem 0 0;font-size:.9rem;color:var(--ink-2);white-space:pre-wrap;line-height:1.5}

.pd-eng{display:flex;align-items:center;gap:.7rem;padding:.6rem 0;border-bottom:1px solid var(--c50)}
.pd-eng:last-child{border-bottom:none}
.pd-eng-main{min-width:0;font-size:.92rem}
/* Tabla de artistes & équipes (alineación vertical de columnas) */
.pd-eng-table{width:100%;font-size:.92rem}
.pd-eng-table td{padding:.5rem .55rem;border-bottom:1px solid var(--c50);vertical-align:middle}
.pd-egrp td{border-bottom:none;padding:.9rem .55rem .25rem}
.pd-egrp:first-child td{padding-top:.2rem}
.pd-eng-ct{white-space:nowrap;text-align:right}
.pd-eng-ct .icon-btn{vertical-align:middle;margin-left:.25rem}
.eng-perrep{font-size:var(--fs-xs);opacity:.65;white-space:nowrap}
/* Bitácora de notas */
.notes-tabs{margin-bottom:1rem}
.notes-tabs .note-dot{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 4px;margin-left:.3rem;border-radius:9px;background:var(--amber);color:#3a2a00;font-size:10px;font-weight:700}
.note-add{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.1rem}
.note-add-row{display:flex;gap:.6rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.note-input,.note-edit-input{width:100%}
.note-assign-lbl{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--fs-sm);color:var(--ink-2)}
.note-assign-lbl select{font-size:var(--fs-sm);padding:.4rem 1.6rem .4rem .5rem}
.note-assignee-tag{color:var(--blue-700);font-weight:600}
.note-edit-actions{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}
.note-feed{display:flex;flex-direction:column;gap:.7rem}
.note-card{position:relative;border:1px solid var(--line);border-radius:var(--r-md);padding:.7rem .85rem;background:var(--surface)}
.note-card.done{opacity:.62;background:var(--bg)}
.note-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.35rem}
.note-meta{font-size:var(--fs-sm);color:var(--ink-2)}
.note-actions{display:flex;gap:.1rem;flex-shrink:0}
.note-actions .icon-btn{font-size:13px;width:26px;height:26px;display:grid;place-items:center;padding:0}
.note-body{font-size:.93rem;color:var(--ink);white-space:normal;word-break:break-word}
.note-status{display:inline-block;margin-top:.5rem;font-size:var(--fs-xs);font-weight:600;padding:.1rem .5rem;border-radius:5px;border:1px solid var(--line-2)}
.note-status.st-open{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 45%,var(--line-2))}
.note-status.st-done{color:var(--green);border-color:color-mix(in srgb,var(--green) 45%,var(--line-2))}
.note-card.editing{border-color:var(--blue)}
.note-edit-actions{display:flex;justify-content:flex-end;gap:.4rem;margin-top:.5rem}
.note-empty{padding:1.2rem 0;text-align:center}
/* Mon espace → Mes notes */
.pn-list{display:flex;flex-direction:column;gap:.7rem}
.pn-note{border:1px solid var(--line);border-radius:var(--r-md);padding:.7rem .85rem;background:var(--surface)}
.pn-note.done{opacity:.6;background:var(--bg)}
.pn-note-top{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem;flex-wrap:wrap}
.pn-prod{font-weight:600}
.pn-spacer{flex:1}
.pn-when{font-size:var(--fs-sm)}
.pn-body{font-size:.93rem;color:var(--ink);word-break:break-word}
.pn-meta{font-size:var(--fs-xs);margin-top:.45rem}
.pn-empty{padding:1rem 0}
.pn-clickable{cursor:pointer;transition:background .12s}
.pn-clickable:hover{background:var(--c50)}
.pn-prod-label{font-weight:600}
.pn-open{font-size:13px;width:26px;height:26px;display:grid;place-items:center;padding:0}
.pn-note.editing{border-color:var(--blue)}
.pn-edit-input{width:100%;margin:.2rem 0 .5rem}
.pn-edit-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.pn-done-lbl{display:inline-flex;align-items:center;gap:.35rem;font-size:var(--fs-sm);color:var(--ink-2)}
.pn-add{display:flex;flex-direction:column;gap:.5rem}
.pn-add-input{width:100%}
.pn-add-row{display:flex;gap:.6rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
/* Adjuntos (fichiers) */
.files-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.7rem}
.file-card{display:flex;align-items:center;gap:.7rem;border:1px solid var(--line);border-radius:var(--r-md);padding:.5rem .6rem;background:var(--surface)}
.file-thumb{width:46px;height:46px;flex-shrink:0;border-radius:var(--r-sm);background-size:cover;background-position:center;background-color:var(--c50);display:grid;place-items:center;text-decoration:none}
.file-doc{font-family:var(--display);font-size:11px;font-weight:700;color:var(--ink-2);border:1px solid var(--line-2)}
.file-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}
.file-name{font-size:.92rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file-meta{font-size:var(--fs-xs)}
.files-add{cursor:pointer;display:inline-flex;align-items:center}
.files-add.is-busy{opacity:.6;cursor:default}
.files-empty{padding:.4rem 0}
.files-group{margin-bottom:1rem}
.files-group-h{display:flex;align-items:center;gap:.5rem;margin-bottom:.45rem}
.files-add-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:.3rem}
.files-cat-lbl{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--fs-sm);color:var(--ink-2)}
.files-cat-lbl select{font-size:var(--fs-sm);padding:.4rem 1.6rem .4rem .5rem}
.files-top{margin-bottom:.8rem}
.files-filter{margin-bottom:.9rem}
.files-add-form{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:.5rem;padding:.7rem .8rem;border:1px dashed var(--line-2);border-radius:var(--r-md);background:var(--bg)}
.files-add-form .files-file{font-size:var(--fs-sm);max-width:100%}
.file-card.editing{border-color:var(--blue)}
.file-edit{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;width:100%}
.file-edit-name{flex:1;min-width:160px;font-size:var(--fs-sm);padding:.42rem .55rem}
/* Encabezado de grupo de equipo (Création / Artistes / Technique / Autres) */
.eng-group{display:block;width:fit-content;font-family:var(--display);font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.3rem .6rem;border-radius:var(--r-sm);margin:1rem 0 .4rem}
.eng-group:first-child{margin-top:0}
.eng-group-n{font-weight:600;opacity:.65}
/* Badge del estado del contrato (distinto del estado de casting) */
.eng-contrat{font-size:var(--fs-xs);font-weight:600;padding:.12rem .5rem;border-radius:5px;border:1px solid var(--line-2);white-space:nowrap;color:var(--ink-2)}
.eng-contrat.ct-signe{color:var(--green);border-color:color-mix(in srgb,var(--green) 45%,var(--line-2))}
.eng-contrat.ct-etabli{color:var(--blue-700);border-color:color-mix(in srgb,var(--blue) 40%,var(--line-2))}
.eng-contrat.ct-aetablir{color:var(--ink-3);border-color:var(--line-2)}
.eng-contrat.ct-paye{color:var(--blue-700);border-color:color-mix(in srgb,var(--blue) 45%,var(--line-2))}
.eng-contrat.ct-annule{color:var(--red);border-color:color-mix(in srgb,var(--red) 40%,var(--line-2))}
.eng-ctr-btn{white-space:nowrap;padding:.22rem .55rem;font-size:var(--fs-xs)}
/* Nombre de la persona = misma tipografía que el rol (no el .link gris pequeño) */
.pd-personlink,.eng-person{color:inherit;font-size:inherit;font-weight:inherit;text-decoration:none}
.pd-personlink:hover{color:var(--blue);text-decoration:underline}
/* Separador entre bloques de Informations générales */
.pd-grid-sep{margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--line)}
/* Flechas de reordenamiento en el editor de distribución */
.eng-reorder{display:inline-flex;flex-direction:column;line-height:.7;flex-shrink:0}
.eng-reorder .icon-btn{font-size:9px;width:18px;height:14px;padding:0;display:grid;place-items:center;color:var(--ink-3)}
.eng-reorder .icon-btn[disabled]{opacity:.25;cursor:default}
/* Divisor "passées/passés" en las tablas con orden temporal — banda clara */
tbody tr.tbl-divider{cursor:default}
.tbl-divider td{background:var(--bg);padding:1.2rem .8rem .55rem;border-top:2px solid var(--line-2);border-bottom:1px solid var(--line)}
.tbl-divider-l{font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.tbl-divider-l::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ink-3);margin-right:.5rem;vertical-align:middle;opacity:.5}
tbody tr.tbl-divider:hover td{background:var(--bg)}
/* Producciones pasadas: visualmente atenuadas */
tbody tr.pst td{color:var(--ink-3)}
tbody tr.pst strong{font-weight:500;color:var(--ink-2)}
tbody tr.pst:hover td{color:var(--ink-2)}
/* Bloque separado de "producciones pasadas" */
.prod-past-link{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:1.1rem;padding:.85rem 1.1rem;text-decoration:none;color:var(--ink);font-weight:500;transition:.12s}
.prod-past-link:hover{background:var(--blue-tint);border-color:var(--c300)}
.prod-past-link .prod-past-arrow{color:var(--ink-3);font-size:1.1rem}
.prod-past-link:hover .prod-past-arrow{color:var(--blue)}
.prod-past{margin-top:1.9rem}
.prod-past-h{font-family:var(--serif);font-size:1.3rem;font-weight:500;letter-spacing:-.01em;margin:0 0 .7rem;display:flex;align-items:center;gap:.55rem;color:var(--ink-2)}
.prod-past .card{background:var(--bg)}
.prod-past .card table{background:var(--surface)}
/* Planning como lista vertical (campos apilados) */
.plg-table{width:100%}
.plg-row{cursor:pointer;transition:background .12s}
.plg-row:hover td{background:var(--c50)}
.plg-row:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.plg-date{font-family:var(--display);font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink);white-space:nowrap}
.plg-titre{color:var(--ink)}
.plg-row.pst{opacity:.7}
.plg-row.pst .plg-date,.plg-row.pst .plg-titre{color:var(--ink-2)}
.plg-div td{font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);background:var(--bg);padding-top:1rem}
/* Celdas del calendario: clic en vacío crea evento */
.cal-cell{cursor:pointer}
.cal-ev{cursor:pointer}
.pd-plan{display:grid;grid-template-columns:128px auto 1fr;align-items:center;gap:.7rem;padding:.55rem 0;border-bottom:1px solid var(--c50);cursor:pointer;border-radius:8px;transition:background .12s}
.pd-plan:hover{background:var(--c50)}
.pd-plan:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.pd-plan:last-child{border-bottom:none}
/* Sección estimación de costos */
.pd-costs{border-collapse:collapse;min-width:min(420px,100%)}
.pd-costs th{text-align:left;font-size:.78rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-2);padding:.4rem 2.5rem .4rem 0}
.pd-costs td{padding:.2rem 2.5rem .2rem 0}
.pd-cost-val{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:600;color:var(--ink)}
.pd-cost-note{margin:.7rem 0 0;font-size:.82rem}
.pd-plan-date{font-family:var(--display);font-variant-numeric:tabular-nums;color:var(--ink-2);font-size:.85rem}
.pd-plan-main{min-width:0;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pd-plan-table{width:100%;font-size:.92rem}
.pd-plan-table td{padding:.5rem .55rem;border-bottom:1px solid var(--c50);vertical-align:middle}
.pd-plan-row{cursor:pointer;transition:background .12s}
.pd-plan-row:hover td{background:var(--c50)}
.pd-plan-row:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.pd-plan-table .pd-plan-date{white-space:nowrap}
.pd-plan-chk{width:1%;white-space:nowrap;text-align:center}
.row-dup{width:1%;white-space:nowrap;text-align:center}
.row-dup .icon-btn{font-size:14px;opacity:.55}
.row-dup .icon-btn:hover{opacity:1}
.pd-costs-def{margin-top:1.2rem}
.pd-fact-table{width:100%}
.pd-fact-row{cursor:pointer;transition:background .12s}
.pd-fact-row:hover td{background:var(--c50)}
/* Facturas: editor */
.fa-client-box{margin:.4rem 0 .2rem}
.fa-lines{margin:1rem 0}
.fa-lines-lbl{display:block;font-size:var(--fs-sm);font-weight:600;color:var(--ink-2);margin-bottom:.4rem}
.fa-lines-table{width:100%;border-collapse:collapse;margin-bottom:.5rem}
.fa-lines-table th{text-align:left;font-size:var(--fs-xs);color:var(--ink-3);font-weight:600;padding:.2rem .4rem}
.fa-lines-table th.r{text-align:right}
.fa-lines-table td{padding:.2rem .3rem;vertical-align:middle}
.fa-lines-table input{width:100%;font-size:var(--fs-sm);padding:.4rem .5rem}
.fa-lines-table input.r{text-align:right}
.fa-lines-table td:nth-child(2){width:130px}
.fa-lines-table td:nth-child(3){width:90px}
.fa-lines-table td:nth-child(4){width:34px;text-align:center}
.fa-totals{display:flex;gap:1.2rem;justify-content:flex-end;align-items:baseline;margin-top:.6rem;font-size:var(--fs-sm);color:var(--ink-2)}
.fa-totals .fa-ttc{font-size:var(--fs);color:var(--ink)}
.fa-totals b{color:var(--ink);font-variant-numeric:tabular-nums}
.pd-plan-notes{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm)}
.pd-plan-bulk{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.7rem;padding:.6rem .8rem;border:1px solid var(--blue);border-radius:var(--r-md);background:var(--blue-tint,var(--c50))}
.pd-plan-bulk-n{font-weight:600;font-size:var(--fs-sm)}
.pd-plan-bulk select{font-size:var(--fs-sm);padding:.42rem 1.6rem .42rem .55rem}
.pd-body .cast-group:first-child{margin-top:0}
.pd-empty{padding:.5rem 0}

@media(max-width:680px){ .pd-eng,.pd-plan{grid-template-columns:1fr;gap:.25rem} }
/* Filtro de la sección planning en el detalle */
.pd-filter{margin-bottom:.8rem}
/* Communication: encabezados de grupo (FR/DE) y texto preformateado */
.pd-commgroup{font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--blue-700);margin:1.1rem 0 .6rem}
.pd-commgroup:first-child{margin-top:0}
.pd-pre{white-space:pre-wrap}
.pd-form-group{color:var(--blue-700);margin:.4rem 0 -.2rem;padding-top:.6rem;border-top:1px solid var(--line)}

/* ===========================================================
   Tags de color por paleta (configurable) — adaptan a los temas
   =========================================================== */
.tag--green{background:var(--green-soft);color:var(--green)}
.tag--blue{background:var(--blue-soft);color:var(--blue-700)}
.tag--amber{background:var(--amber-soft);color:var(--amber)}
.tag--red{background:var(--red-soft);color:var(--red)}
.tag--violet{background:var(--violet-soft);color:var(--violet)}
.tag--teal{background:var(--teal-soft);color:var(--teal)}
.tag--pink{background:var(--pink-soft);color:var(--pink)}
.tag--gray{background:var(--c100);color:var(--ink-2)}

/* ===========================================================
   Configuration (.cfg-*) — solo admin ve la nav; lista editable
   =========================================================== */
.cfg-nav{display:none}
body.is-admin .cfg-nav{display:block}
.adm-nav{display:none}
body.can-admin .adm-nav{display:block}

/* Pestañas (Contrats / Modèles) */
.tabs{display:flex;gap:.2rem;border-bottom:1px solid var(--line);margin-bottom:1.2rem}
.tabs button{background:none;border:none;padding:.6rem .95rem;font:inherit;font-weight:600;color:var(--ink-2);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer}
.tabs button:hover{color:var(--ink)}
.tabs button.active{color:var(--blue-700);border-bottom-color:var(--blue)}
.pd-tabs{margin-top:.2rem;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin}
.pd-tabs button{white-space:nowrap;display:inline-flex;align-items:center;gap:.4rem}

/* Generación de contrato + plantillas */
.ct-gen{background:var(--blue-tint);border:1px solid color-mix(in srgb,var(--blue) 28%,var(--line-2));border-radius:var(--r);padding:1rem;margin-bottom:1.1rem}
.ct-gen-hint{font-size:var(--fs-sm);margin:.5rem 0 0}
.tpl-fields{margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.tpl-fields .section-title{width:100%;margin-bottom:.3rem}
.merge-chip{font-family:var(--font);font-size:11.5px;background:var(--c100);border:1px solid var(--line-2);border-radius:5px;padding:2px 7px;color:var(--c700);cursor:pointer}
.merge-chip:hover{background:var(--blue-soft);color:var(--blue-700);border-color:var(--blue)}
.merge-chip:disabled{cursor:default;opacity:.55}

/* Editor de texto enriquecido (richtext.js) */
.rte{border:1px solid var(--line-2);border-radius:var(--r-sm);overflow:hidden;background:var(--surface)}
.rte:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.rte-toolbar{display:flex;gap:2px;padding:.3rem;border-bottom:1px solid var(--line);background:var(--c25);flex-wrap:wrap;position:sticky;top:0;z-index:1}
.rte-toolbar button{height:27px;padding:0 .5rem;border:1px solid transparent;background:none;border-radius:5px;font-size:12.5px;cursor:pointer;color:var(--c700)}
.rte-toolbar button:hover{background:var(--c100)}
.rte-toolbar button:disabled{opacity:.4;cursor:default}
.rte-sep{width:1px;background:var(--line);margin:3px 3px}
.rte-area{min-height:240px;max-height:48vh;overflow:auto;padding:.8rem .9rem;font-size:13.5px;line-height:1.6;outline:none;color:var(--ink)}
.rte-area p{margin:0 0 .65em}
.rte-area ul,.rte-area ol{margin:0 0 .65em;padding-left:1.5em}
.rte-area li{margin:.15em 0}
.rte-area h3{font-size:1.05rem;font-weight:600;margin:.7em 0 .3em;text-align:center;text-decoration:underline}
.rte-area .center{text-align:center}
.rte-area .sign-row{display:flex;gap:2.5rem;margin-top:.6rem}
.rte-area .sign-col{flex:1;white-space:pre-line}
.rte-area:empty::before,.rte-area > p:only-child:empty::before{content:attr(data-ph);color:var(--ink-3)}

.cfg-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:.8rem;overflow:hidden}
.cfg-head{display:flex;align-items:center;justify-content:space-between;padding:.55rem 1rem .55rem .9rem;border-bottom:1px solid var(--line)}
.cfg-card:not(.open) .cfg-head{border-bottom:none}
.cfg-toggle{flex:1;display:flex;align-items:center;gap:.55rem;background:none;border:none;cursor:pointer;font-family:var(--serif);font-weight:500;font-size:1.2rem;letter-spacing:-.01em;color:var(--ink);padding:.35rem 0;text-align:left}
.cfg-chev{display:inline-block;transition:transform .15s;font-size:13px;color:var(--ink-3)}
.cfg-card.open .cfg-chev{transform:rotate(90deg)}
.cfg-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin:0 0 .7rem}
.cfg-panel-head h2{font-family:var(--serif);font-size:1.3rem;font-weight:500;letter-spacing:-.01em;margin:0;display:flex;align-items:center;gap:.5rem}
.cfg-list{padding:.3rem 0}
.cfg-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:1rem;padding:.55rem 1.3rem;border-bottom:1px solid var(--c50)}
.cfg-row:last-child{border-bottom:none}
.cfg-row.cfg-inactive{opacity:.45}
.cfg-main{display:flex;align-items:center;gap:.5rem;min-width:0;flex-wrap:wrap}
.cfg-label{font-weight:500;font-size:.92rem}
.cfg-de{font-size:.82rem}
.cfg-val{font-family:var(--display);font-size:11px;font-variant-numeric:tabular-nums}
.cfg-actions{display:flex;align-items:center;gap:.1rem}
.cfg-actions .icon-btn{font-size:13px;width:26px;height:26px;display:grid;place-items:center;padding:0}
.cfg-actions .icon-btn[disabled]{opacity:.3;cursor:default}
