/* Panel Inkcore. Tokens según la paleta de datos validada (superficie clara) + acento de marca para la interfaz. */
:root{
  --page:#f9f9f7;--surface:#fcfcfb;--surface-2:#f1f0ee;
  --ink:#0b0b0b;--ink-2:#52514e;--muted:#898781;
  --grid:#e1e0d9;--base:#c3c2b7;--border:rgba(11,11,11,.10);
  --side:#0a0a0a;--accent:#b15f2c;--accent-2:#97501f;
  --series:#2a78d6;--good:#006300;--bad:#d03b3b;
  --radius:1rem;--ease:cubic-bezier(.2,.8,.2,1);
  font-family:'Onest',system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased}
body{background:var(--page);color:var(--ink);font-size:15px;line-height:1.45}
[hidden]{display:none!important}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.muted{color:var(--ink-2);font-size:.875rem}
.sub{display:block;color:var(--ink-2);font-size:.8rem;font-weight:400}
.link{color:var(--accent-2);font-weight:500;text-decoration:none}.link:hover{text-decoration:underline}.sm{font-size:.8125rem}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---- controles ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-size:.875rem;font-weight:500;border-radius:9999px;border:1px solid var(--ink);background:var(--ink);color:#fff;padding:.55rem 1.1rem;transition:transform .2s var(--ease),background .2s}
.btn:hover:not(:disabled){transform:translateY(-1px)}
.btn:disabled{opacity:.45;cursor:default}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--base)}
.btn.ghost:hover:not(:disabled){background:var(--surface-2)}
.btn.danger{background:var(--bad);border-color:var(--bad)}
.btn.sm{padding:.35rem .8rem;font-size:.8125rem}
.btn.block{width:100%}
.icon-btn{display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:9999px;color:var(--ink-2)}
.icon-btn:hover{background:var(--surface-2);color:var(--ink)}
.stack{display:flex;flex-direction:column;gap:1rem}
.stack.narrow{max-width:26rem}
label{display:block;font-size:.75rem;font-weight:500;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-2)}
input,select,textarea{display:block;width:100%;margin-top:.35rem;font:inherit;font-size:.9rem;text-transform:none;letter-spacing:0;color:var(--ink);background:var(--surface);border:1px solid var(--base);border-radius:.75rem;padding:.6rem .85rem}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}
input[type=search]{margin:0;border:0;background:transparent;padding:.5rem 0}
input[type=search]:focus{outline:none}
.msg{font-size:.875rem}.msg:empty{display:none}.msg.err{color:var(--bad)}

/* ---- acceso ---- */
.auth{min-height:100vh;display:grid;grid-template-columns:1fr}
.auth-brand{background:var(--side);color:#fff;padding:2rem;display:flex;flex-direction:column;justify-content:space-between;gap:2rem}
.auth-brand .brand{font-size:1.25rem;font-weight:600;display:inline-flex;align-items:center;gap:.5rem;text-decoration:none}
.auth-brand .brand svg{color:#cf8047}
.auth-brand p{font-size:1.75rem;font-weight:500;letter-spacing:-.02em;max-width:16ch;line-height:1.15;color:rgba(255,255,255,.85)}
.auth-form{display:grid;place-items:center;padding:2rem 1.25rem}
.auth-form form{width:100%;max-width:22rem}
.auth-form h1{font-size:1.75rem;font-weight:600;letter-spacing:-.02em}
@media (min-width:860px){.auth{grid-template-columns:1fr 1fr}.auth-brand{padding:3rem}.auth-brand p{font-size:2.75rem}}

/* ---- armazón ---- */
.app{min-height:100vh;display:grid;grid-template-columns:15rem 1fr}
.side{position:sticky;top:0;height:100vh;background:var(--side);color:#fff;display:flex;flex-direction:column;padding:1.25rem .75rem}
.brand{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:1.0625rem;text-decoration:none;padding:.25rem .75rem 1.5rem}
.brand svg{color:#cf8047}
.tag{margin-left:.25rem;font-size:.625rem;text-transform:uppercase;letter-spacing:.08em;border:1px solid rgba(255,255,255,.25);border-radius:9999px;padding:.1rem .45rem;color:rgba(255,255,255,.65)}
#nav{display:flex;flex-direction:column;gap:.125rem;flex:1}
#nav a{display:flex;align-items:center;gap:.7rem;padding:.6rem .75rem;border-radius:.75rem;color:rgba(255,255,255,.66);text-decoration:none;font-size:.9rem;font-weight:500;transition:background .2s,color .2s}
#nav a:hover{background:rgba(255,255,255,.06);color:#fff}
#nav a[aria-current]{background:rgba(255,255,255,.10);color:#fff;box-shadow:inset 3px 0 0 #cf8047}
.nav-count{margin-left:auto;min-width:1.4rem;text-align:center;font-size:.7rem;font-weight:600;background:var(--accent);color:#fff;border-radius:9999px;padding:.1rem .45rem}
.side-foot{font-size:.8rem;color:rgba(255,255,255,.5);text-decoration:none;padding:.75rem}
.side-foot:hover{color:#fff}
.main{min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;background:rgba(249,249,247,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
.top h1{font-size:1.25rem;font-weight:600;letter-spacing:-.01em}
.top-r{margin-left:auto;display:flex;align-items:center;gap:.6rem}
.user{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2;font-size:.8125rem}
.user small{color:var(--ink-2)}
#refresh.spin svg{animation:spin .9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
#view{padding:1.5rem;max-width:84rem;width:100%;margin-inline:auto;outline:none}
.only-mobile{display:none}
.scrim-nav{display:none}
@media (max-width:900px){
  .app{grid-template-columns:1fr}
  .side{position:fixed;inset:0 auto 0 0;width:16rem;z-index:60;transform:translateX(-100%);transition:transform .3s var(--ease)}
  .nav-open .side{transform:none}
  .nav-open .scrim-nav{display:block;position:fixed;inset:0;z-index:55;background:rgba(0,0,0,.4)}
  .only-mobile{display:inline-grid}
  .hide-sm,.user{display:none}
  .top{padding:.6rem 1rem}#view{padding:1rem}
}

/* ---- páginas ---- */
.page-h{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}
.foot{margin-top:1rem;max-width:60rem}
.seg{display:inline-flex;background:var(--surface-2);border-radius:9999px;padding:.2rem}
.seg button{font-size:.8125rem;font-weight:500;padding:.35rem .9rem;border-radius:9999px;color:var(--ink-2)}
.seg button[aria-pressed=true]{background:var(--ink);color:#fff}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;min-width:0}
.card.flush{padding:0;overflow:hidden}
.card h2{font-size:1rem;font-weight:600;letter-spacing:-.005em}
.card .sub{margin:.15rem 0 1rem}
.grid2{display:grid;grid-template-columns:1.6fr 1fr;gap:1rem;margin-top:1rem}
.grid2.even{grid-template-columns:1fr 1fr}
@media (max-width:1000px){.grid2,.grid2.even{grid-template-columns:1fr}}
.row{display:flex;align-items:center;gap:.75rem}.row.between{justify-content:space-between}.grow{flex:1}
.big{font-size:1.5rem;font-weight:600;letter-spacing:-.02em}

/* alertas */
.alerts{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}
.alerts:empty{display:none}
.alert{display:flex;align-items:center;gap:.6rem;padding:.7rem 1rem;border-radius:.85rem;background:#fdf3e1;border:1px solid #f3d9a6;text-decoration:none;font-size:.875rem;color:#5a3d00}
.alert svg{color:#c98500;flex:none}
.alert .go{margin-left:auto;display:inline-flex;align-items:center;gap:.15rem;font-weight:600}

/* KPIs */
.kpis{display:grid;grid-template-columns:1.9fr repeat(4,1fr);gap:1rem}
.kpis.four{grid-template-columns:repeat(4,1fr)}
@media (max-width:1100px){.kpis,.kpis.four{grid-template-columns:repeat(2,1fr)}.stat.hero{grid-column:1/-1}}
.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem;min-width:0}
.stat-l{font-size:.8125rem;color:var(--ink-2);font-weight:500}
.stat-v{font-size:clamp(1.35rem,2vw,1.75rem);font-weight:600;letter-spacing:-.02em;margin-top:.35rem;line-height:1.1;white-space:nowrap}
.stat.hero{background:var(--ink);color:#fff;border-color:var(--ink)}
.stat.hero .stat-l{color:rgba(255,255,255,.65)}
.stat.hero .stat-v{font-size:clamp(2rem,3.2vw,2.75rem)}
.stat-s{margin-top:.5rem}
.delta{display:inline-flex;align-items:center;gap:.25rem;font-size:.8rem;font-weight:500}
.delta.up{color:var(--good)}.delta.down{color:var(--bad)}.delta.muted{color:var(--ink-2);font-weight:400}.delta.link{font-weight:500}
.stat.hero .delta.up{color:#5fd07a}.stat.hero .delta.down{color:#ff8f8f}.stat.hero .delta.muted{color:rgba(255,255,255,.6)}

/* gráfico de columnas */
.chart{position:relative;height:13rem;margin-left:2rem}
.grid{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}
.gl{position:relative;border-top:1px solid var(--grid);height:0}
.gl:last-child{border-top-color:var(--base)}
.gl span{position:absolute;left:-2rem;top:-.6em;width:1.6rem;text-align:right;font-size:.7rem;color:var(--muted)}
.cols{position:absolute;inset:0;display:flex;align-items:flex-end}
.col{flex:1;height:100%;display:flex;align-items:flex-end;justify-content:center;padding:0 1px}
.col i{display:block;width:min(100%,24px);background:var(--series);border-radius:4px 4px 0 0;min-height:0;transition:opacity .15s}
.col:hover{background:rgba(42,120,214,.07)}
.cols:hover .col:not(:hover) i{opacity:.55}
.tip{position:absolute;top:-.25rem;transform:translate(-50%,-100%);background:var(--ink);color:#fff;font-size:.75rem;padding:.35rem .6rem;border-radius:.5rem;white-space:nowrap;pointer-events:none;z-index:5}
.xaxis{display:flex;justify-content:space-between;margin:.5rem 0 0 2rem;font-size:.7rem;color:var(--muted)}
.tableview{margin-top:.75rem;font-size:.8125rem}.tableview summary{cursor:pointer;color:var(--ink-2)}
.mini{width:100%;border-collapse:collapse;margin-top:.5rem}.mini th,.mini td{text-align:left;padding:.3rem .5rem;border-bottom:1px solid var(--grid)}

/* barras horizontales */
.bars{display:flex;flex-direction:column;gap:.85rem}
.brow{display:grid;grid-template-columns:7.5rem 1fr 4.5rem;align-items:center;gap:.75rem;font-size:.875rem}
.bl{color:var(--ink-2)}
.track{height:.9rem;background:var(--surface-2);border-radius:4px;overflow:hidden}
.track i{display:block;height:100%;border-radius:0 4px 4px 0}
.bv{text-align:right;font-weight:600}.bv small{font-weight:400;color:var(--ink-2)}

/* actividad reciente */
.recent{list-style:none;margin-top:.75rem}
.recent li+li{border-top:1px solid var(--grid)}
.recent button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem .25rem;text-align:left;border-radius:.5rem}
.recent button:hover{background:var(--surface-2)}
.rn{display:flex;flex-direction:column;min-width:0}.rn small{color:var(--ink-2);font-size:.78rem}
.rb{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}

/* insignias */
.badge{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap;font-size:.75rem;font-weight:500;background:var(--surface-2);border-radius:9999px;padding:.2rem .65rem .2rem .5rem}
.bi{display:inline-flex}

/* filtros y tablas */
.filters,.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.75rem}
.search{display:flex;align-items:center;gap:.5rem;flex:1;min-width:14rem;background:var(--surface);border:1px solid var(--base);border-radius:9999px;padding:0 1rem;color:var(--muted)}
.search:focus-within{outline:2px solid var(--accent)}
.fsel select{margin:0;border-radius:9999px;padding:.5rem 2rem .5rem .9rem;width:auto;font-size:.8125rem}
.tablewrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:.875rem}
.tbl th{position:sticky;top:0;text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;font-weight:500;color:var(--ink-2);background:var(--surface-2);padding:.65rem 1rem;white-space:nowrap}
.tbl td{white-space:nowrap;padding:.6rem 1rem;border-top:1px solid var(--grid);vertical-align:middle}
.tbl td strong{font-weight:600}
.tbl .num{font-variant-numeric:tabular-nums;font-weight:500}
.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:#f4f3f0}
.tbl .idea-cell{max-width:18rem;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis}
.tbl .chev{color:var(--muted);width:2rem}
.tbl .act{text-align:right}
.sortbtn{display:inline-flex;align-items:center;gap:.25rem;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit}
.sortbtn:hover{color:var(--ink)}
select.inline{margin:0;width:auto;padding:.3rem 1.6rem .3rem .65rem;font-size:.8125rem;border-radius:9999px}
.code-btn{font-family:ui-monospace,Consolas,monospace;font-size:.78rem;color:var(--ink-2);border-bottom:1px dotted var(--base)}
.code-btn:hover{color:var(--ink)}
.empty{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:3rem 1rem;color:var(--ink-2);text-align:center}
.pager{display:flex;justify-content:flex-end;align-items:center;gap:.75rem;margin-top:.75rem}
.tabs{display:flex;gap:.25rem;overflow-x:auto;padding-bottom:2px}
.tabs button{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;font-size:.8125rem;font-weight:500;color:var(--ink-2);padding:.45rem .9rem;border-radius:9999px}
.tabs button:hover{background:var(--surface-2)}
.tabs button[aria-selected=true]{background:var(--ink);color:#fff}
.count{font-size:.7rem;background:rgba(127,127,127,.2);border-radius:9999px;padding:.05rem .45rem}
.toolbar{justify-content:space-between}.toolbar .search{flex:0 1 22rem}
.kpis+.toolbar,.kpis+.filters{margin-top:1rem}

/* drawer */
.scrim{position:fixed;inset:0;z-index:70;background:rgba(10,10,10,.35);animation:fade .2s}
.drawer{position:fixed;z-index:71;top:0;right:0;bottom:0;width:min(32rem,100vw);background:var(--surface);box-shadow:-20px 0 50px rgba(0,0,0,.15);display:flex;flex-direction:column;animation:slide .3s var(--ease)}
@keyframes fade{from{opacity:0}}@keyframes slide{from{transform:translateX(2rem);opacity:0}}
.drawer-h{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}
.drawer-h h2{font-size:1.25rem;font-weight:600;letter-spacing:-.01em}
.drawer-b{overflow-y:auto;padding:0 1.5rem 2rem}
.drawer-b section{padding:1.25rem 0;border-bottom:1px solid var(--grid);display:flex;flex-direction:column;gap:.75rem}
.drawer-b section:last-child{border:0}
.drawer-b h3{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:500;color:var(--ink-2)}
.kv{display:flex;flex-direction:column;gap:.5rem}
.refs{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.5rem}
.refs img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:.6rem;background:var(--surface-2)}
.f{display:flex;justify-content:space-between;gap:1rem;font-size:.875rem;align-items:center}
.f dt{color:var(--ink-2)}.f dd{text-align:right;overflow-wrap:anywhere}
.f code{font-size:.78rem;background:var(--surface-2);padding:.1rem .4rem;border-radius:.35rem}
.idea{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;background:var(--surface-2);border-radius:.85rem;padding:.9rem 1rem;font-size:.9rem}
.linkbox{background:#eaf6ee;border:1px solid #bfe3cb;border-radius:.85rem;padding:.8rem;font-size:.8125rem;display:flex;flex-direction:column;gap:.5rem}
.linkbox.warn{background:#fdf3e1;border-color:#f3d9a6}
.copyrow{display:flex;gap:.4rem;flex-wrap:wrap}.copyrow input{flex:1;min-width:10rem;margin:0;font-size:.75rem}

/* diálogos y avisos */
.dlg{border:0;border-radius:1.25rem;padding:1.5rem;width:min(26rem,92vw);box-shadow:0 30px 80px rgba(0,0,0,.3);background:var(--surface);color:var(--ink)}
.dlg.wide{width:min(28rem,92vw)}
.dlg.xwide{width:min(42rem,94vw)}
.dlg::backdrop{background:rgba(10,10,10,.45)}
.dlg h3{font-size:1.125rem;font-weight:600;margin-bottom:.5rem}
.dlg p{color:var(--ink-2);font-size:.9rem;margin-bottom:1rem}
.dlg form{margin-bottom:1rem}
.dlg-actions{display:flex;justify-content:flex-end;gap:.5rem}
#toasts{position:fixed;z-index:200;right:1rem;bottom:1rem;display:flex;flex-direction:column;gap:.5rem;align-items:flex-end}
.toast{display:flex;align-items:center;gap:.6rem;background:var(--ink);color:#fff;padding:.7rem 1rem;border-radius:.85rem;font-size:.875rem;box-shadow:0 10px 30px rgba(0,0,0,.25);animation:slide .25s var(--ease)}
.toast.ok svg{color:#5fd07a}.toast.err{background:#7a1f1f}.toast.err svg{color:#ffb4b4}
textarea{resize:vertical;min-height:4.5rem;font-family:inherit;line-height:1.5}
.row.wrap{flex-wrap:wrap}
.acts{display:flex;gap:.4rem;justify-content:flex-end}
.btn.danger-text{color:var(--bad);border-color:rgba(208,59,59,.4)}
label.check{display:flex;align-items:center;gap:.5rem;text-transform:none;letter-spacing:0;font-size:.9rem;color:var(--ink)}
label.check input{width:auto;margin:0}
.two{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;align-items:end}
label.check.inline{padding-bottom:.65rem}
/* tatuadores: miniaturas, sedes en checkboxes y grilla del portafolio */
.thumb{width:2.5rem;height:2.5rem;border-radius:.6rem;object-fit:cover;background:var(--surface-2);display:grid;place-items:center;color:var(--muted)}
fieldset.checks{border:0;display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}
fieldset.checks legend{font-size:.875rem;margin-bottom:.4rem}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr));gap:.6rem}
.pgrid figure{display:flex;flex-direction:column;gap:.3rem;font-size:.75rem;color:var(--ink-2)}
.pgrid figure[draggable]{cursor:grab}
.pgrid figure.dragging{opacity:.4}
.pf-acts{display:flex;gap:.25rem;flex-wrap:wrap}
.pgrid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:.6rem;background:var(--surface-2)}
@media (max-width:520px){.two{grid-template-columns:1fr}}

/* detalle de cita: proyecto, sesiones y pagos (drawer-proyecto.js) */
.small{font-size:.8rem}
.slots:empty{display:none}
.chips{display:flex;flex-wrap:wrap;gap:.35rem}
.chip{border:1px solid var(--border);background:var(--surface);border-radius:9999px;padding:.3rem .7rem;font:inherit;font-size:.8rem;color:var(--ink);cursor:pointer}
.chip.pref{border-color:var(--series);color:var(--series)}
.chip.on,.chip:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.ses-list,.pago-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}
.ses{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;border:1px solid var(--border);border-radius:.8rem;background:#fff}
.ses.cancelada,.ses.no_asistio{opacity:.65}
.ses-main{display:flex;flex-direction:column;gap:.1rem}
.ses-acts{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
.money{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.money div{padding:.6rem .75rem;border-radius:.8rem;background:#fff;border:1px solid var(--border)}
.money dt{font-size:.72rem;color:var(--ink-2)}
.money dd{font-weight:600;font-variant-numeric:tabular-nums}
.money dd.due{color:var(--accent-2)}
.pago{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem .75rem;border-radius:.8rem;background:#fff;border:1px solid var(--border)}
.pago.warn{border-color:var(--bad)}
.pago-r{display:flex;align-items:center;gap:.25rem}
.num.neg{color:var(--bad)}

/* agenda (js/admin/views/agenda.js) */
.pad{padding:1rem 1.25rem}
.flip{display:inline-grid;transform:scaleX(-1)}
.ag-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}
.ag-nav,.ag-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
.ag-title{font-size:1.05rem;font-weight:600;margin-left:.35rem}
.ag-legend{display:flex;flex-wrap:wrap;gap:.9rem;margin-bottom:.75rem;font-size:.78rem;color:var(--ink-2)}
.ag-legend span{display:inline-flex;align-items:center;gap:.35rem}
.ag-legend i{width:.7rem;height:.7rem;border-radius:.2rem}
.ag-legend i.blk,.ag-blk{background:repeating-linear-gradient(135deg,rgba(11,11,11,.07) 0 6px,rgba(11,11,11,.13) 6px 12px)}
.ag-card{overflow:hidden}
.ag-scroll{overflow:auto;max-height:calc(100dvh - 15rem)}
.ag-grid{display:grid;min-width:min-content}
.ag-colh{position:sticky;top:0;z-index:3;padding:.6rem .5rem;font-size:.8rem;font-weight:600;text-align:center;background:var(--surface);border-bottom:1px solid var(--grid);border-left:1px solid var(--grid)}
.ag-colh:first-child{border-left:0}
.ag-colh.today{color:var(--accent)}
.ag-hours{position:relative}
.ag-hours span{position:absolute;right:.4rem;transform:translateY(-50%);font-size:.7rem;color:var(--muted);font-variant-numeric:tabular-nums}
.ag-hours span:first-child{transform:none}
.ag-col{position:relative;border-left:1px solid var(--grid);background-image:linear-gradient(to bottom,var(--grid) 1px,transparent 1px)}
.ag-blk{position:absolute;left:0;right:0;z-index:1;display:flex;align-items:flex-start;padding:.3rem .4rem;font:inherit;font-size:.72rem;color:var(--ink-2);border:0;text-align:left;overflow:hidden}
button.ag-blk{cursor:pointer}
.ag-ses{position:absolute;left:.25rem;right:.25rem;z-index:2;display:flex;flex-direction:column;gap:.05rem;padding:.3rem .45rem;border:0;border-left:3px solid var(--c);border-radius:.45rem;background:color-mix(in srgb,var(--c) 14%,#fff);color:var(--ink);font:inherit;text-align:left;overflow:hidden;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.ag-ses:hover,.ag-ses:focus-visible{background:color-mix(in srgb,var(--c) 24%,#fff)}
.ag-ses strong{font-size:.78rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-ses small{font-size:.7rem;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-now{position:absolute;left:0;right:0;z-index:3;height:2px;background:var(--bad)}
.hlist{display:flex;flex-direction:column;gap:.4rem}
.hrow{display:grid;grid-template-columns:1.2fr 1.2fr 1fr 1fr auto;gap:.35rem;align-items:center}
.hrow select,.hrow input{margin:0}
@media (max-width:520px){.hrow{grid-template-columns:1fr 1fr}.hrow .icon-btn{justify-self:end}}
.pick-list{list-style:none;display:flex;flex-direction:column;gap:.25rem;margin-top:.35rem}
.pick-list li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-size:.85rem}
.prop-h{list-style:none;margin-top:.35rem;display:flex;flex-direction:column;gap:.15rem;font-size:.8rem;color:var(--ink-2)}
.prop-h li.off{text-decoration:line-through;opacity:.7}
.ag-ses.apartada{border-left-style:dashed;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--c) 14%,#fff) 0 8px,color-mix(in srgb,var(--c) 22%,#fff) 8px 16px)}
.ses-when{color:inherit;text-decoration:none}.ses-when:hover strong{text-decoration:underline}
.pm{margin-bottom:1rem;border-color:#f0c27a;background:#fffaf0}
.pm-h{display:flex;gap:.6rem;align-items:flex-start;color:#8a5a00;margin-bottom:.6rem}
.pm-h strong{color:var(--ink)}
.pm ul{list-style:none;display:flex;flex-direction:column}
.pm-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem 0;border-top:1px solid var(--grid)}
.pm-who{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:none;border:0;font:inherit;color:inherit;cursor:pointer;padding:0}
.pm-who:hover strong{text-decoration:underline}
.pm-acts{display:flex;gap:.35rem}
button.link{background:none;border:0;padding:0;cursor:pointer;font-family:inherit;text-align:left;align-self:flex-start}
