@font-face{font-family:"Cormorant Garamond";font-weight:500;font-style:normal;font-display:swap;src:url(fonts/CormorantGaramond-500-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-weight:600;font-style:normal;font-display:swap;src:url(fonts/CormorantGaramond-600-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-weight:500;font-style:italic;font-display:swap;src:url(fonts/CormorantGaramond-500-italic.woff2) format("woff2")}
@font-face{font-family:Inter;font-weight:400;font-style:normal;font-display:swap;src:url(fonts/Inter-400-normal.woff2) format("woff2")}
@font-face{font-family:Inter;font-weight:500;font-style:normal;font-display:swap;src:url(fonts/Inter-500-normal.woff2) format("woff2")}
@font-face{font-family:Inter;font-weight:600;font-style:normal;font-display:swap;src:url(fonts/Inter-600-normal.woff2) format("woff2")}
  :root{
    --ivory:#F7F3EC; --ivory-2:#F1EBDF; --paper:#FFFDF9; --ink:#1C1C1E; --ink-2:#55514A; --ink-3:#6B665F;
    --line:#E8E1D4; --gold:#B8955A; --gold-ink:#7A5E2C; --bronze:#6F5326; --gold-soft:#F0E5CC; --champagne:#F6EEDC;
    --rose:#F3E6E0; --rose-ink:#8A4A39; --sage:#E3ECE5; --sage-ink:#3F6150; --alert:#B5543A; --alert-ink:#9A3F25; --alert-soft:#FBEFEA; --alert-line:#EBCFC4;
    --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
    --sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
    --shadow:0 1px 0 rgba(60,45,20,.04),0 12px 32px rgba(60,45,20,.07);
    /* escala: 13 · 15 · 17 · 26 · 44 */
  }
  *{box-sizing:border-box}
  html{-webkit-text-size-adjust:100%;scrollbar-color:#D9CFB8 transparent;scrollbar-width:thin}
  body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;caret-color:var(--gold-ink)}
  ::selection{background:var(--gold-soft);color:var(--ink)}
  button{font:inherit;color:inherit}
  h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:.005em;margin:0;color:var(--ink)}
  p{margin:0}
  :focus-visible{outline:2px solid var(--gold-ink);outline-offset:3px;border-radius:8px}
  [hidden]{display:none!important}
  .sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .skip{position:absolute;left:12px;top:-60px;background:var(--ink);color:#FBF7EE;padding:12px 18px;border-radius:12px;z-index:50;text-decoration:none}
  .skip:focus{top:12px}

  .app{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
  .side{position:sticky;top:0;height:100vh;background:var(--ivory-2);border-right:1px solid var(--line);padding:30px 18px 22px;display:flex;flex-direction:column}
  .brand{font-family:var(--serif);font-size:32px;font-weight:600;letter-spacing:.01em;line-height:1;padding:0 12px}
  .brand .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--gold);margin-left:3px;vertical-align:super}
  .by{display:block;margin-top:8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
  .nav{margin-top:34px;display:flex;flex-direction:column;gap:4px}
  .nav-item{display:flex;align-items:center;gap:13px;width:100%;min-height:46px;padding:0 14px;border:0;background:none;border-radius:13px;font-size:15px;color:var(--ink-2);cursor:pointer;text-align:left}
  .nav-item svg{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
  .nav-item:hover{background:rgba(255,253,249,.6)}
  .nav-item[aria-current="page"]{background:var(--paper);color:var(--ink);box-shadow:0 1px 0 var(--line),0 8px 20px rgba(60,45,20,.06)}
  .nav-item[aria-current="page"] svg{stroke:var(--gold-ink)}
  .badge{margin-left:auto;min-width:22px;height:22px;padding:0 7px;border-radius:99px;background:var(--alert);color:#fff;font-size:13px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}
  .side-foot{margin-top:auto;padding:0 6px}
  .clinic{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:var(--paper);border:1px solid var(--line)}
  .avatar{width:40px;height:40px;border-radius:50%;background:var(--gold-soft);color:var(--gold-ink);display:inline-flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:19px;font-weight:600;flex:none}
  .clinic b{display:block;font-weight:600;font-size:15px;line-height:1.25}
  .clinic span{font-size:13px;color:var(--ink-3)}
  .link{background:none;border:0;padding:0 8px;min-height:44px;color:var(--ink-2);font-size:13px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

  main{padding:36px 52px 80px;max-width:1160px;width:100%;margin:0 auto}
  .sampbar{font-size:13px;color:var(--ink-3);margin-bottom:22px}
  .page-title{font-size:44px;line-height:1.08}
  .lede{color:var(--ink-2);font-size:17px;margin-top:10px;max-width:62ch}
  .status{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--sage-ink);background:var(--sage);padding:4px 12px;border-radius:99px;margin-left:8px;vertical-align:middle}
  .status i{width:7px;height:7px;border-radius:50%;background:var(--sage-ink)}
  .sec{margin-top:40px}
  .sec>h2{font-size:26px;line-height:1.2}
  .sec>.sub{color:var(--ink-3);font-size:15px;margin-top:4px;max-width:64ch}
  .sec p.txt{color:var(--ink-2);font-size:17px;margin-top:10px;max-width:60ch}

  .card{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:24px}
  .card h2{font-size:26px;line-height:1.2}
  .card .sub{color:var(--ink-3);font-size:15px;margin-top:4px}

  .btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:99px;border:1px solid var(--bronze);background:var(--bronze);color:#FBF7EE;font-weight:500;font-size:15px;cursor:pointer}
  .btn:hover{background:#5C4420;border-color:#5C4420}
  .btn.ghost{background:transparent;color:var(--bronze);border-color:#CDBE9F}
  .btn.ghost:hover{background:var(--champagne)}
  .btn.small{min-height:44px;padding:0 18px;font-size:15px}
  .btn[disabled]{opacity:.5;cursor:not-allowed}

  /* Urgente */
  .urgent{background:var(--alert-soft);border-color:var(--alert-line);margin-top:30px}
  .attn-list{list-style:none;margin:6px 0 0;padding:0}
  .attn{padding:18px 0;border-top:1px solid var(--alert-line)}
  .attn:first-child{border-top:0}
  .attn b{font-size:17px;font-weight:600}
  .wait{display:inline-flex;align-items:center;gap:6px;margin-left:10px;font-size:13px;font-weight:500;color:var(--alert-ink)}
  .wait svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round}
  .attn p{color:var(--ink-2);margin-top:6px;max-width:62ch}
  .attn p.promise{color:var(--alert-ink);font-weight:500}
  .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
  .calm{font-family:var(--serif);font-size:26px;color:var(--sage-ink);padding:10px 0}

  /* Tarjeta de recepción (nota de bienvenida) */
  .welcomes{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}
  .welcome{position:relative;background:linear-gradient(180deg,#FBF4E3 0%,var(--champagne) 100%);border:1px solid #E6D9BC;border-radius:16px;padding:22px 20px 18px}
  .welcome::before{content:"";position:absolute;left:20px;top:0;width:36px;height:3px;background:var(--gold);border-radius:0 0 3px 3px}
  .w-head{display:flex;gap:14px;align-items:flex-start}
  .time{font-family:var(--serif);font-size:26px;font-weight:600;line-height:1.1;font-variant-numeric:lining-nums;min-width:66px}
  .w-head b{display:block;font-size:17px;font-weight:600;line-height:1.3}
  .w-head span{display:block;color:var(--ink-2);font-size:15px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .w-note{margin-top:14px;padding-top:12px;border-top:1px solid #E6D9BC;font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.25;color:#4a3a1a}
  .w-note small{display:block;font-family:var(--sans);font-style:normal;font-size:13px;letter-spacing:.06em;color:var(--gold-ink);text-transform:uppercase;margin-bottom:4px}
  .w-note em{font-style:normal;font-family:var(--sans);font-size:13px;color:var(--ink-2);display:block;margin-top:6px}
  .empty{color:var(--ink-3);font-size:15px;padding:18px 0}
  .src{display:block;font-style:normal;font-size:13px;color:var(--gold-ink);margin-top:2px}
  .src.team{color:var(--ink-3)}
  .w-note .none{display:block;font-family:var(--sans);font-style:normal;font-size:15px;color:var(--ink-3)}
  .w-note .btn{margin-top:10px}
  .msg.team{background:var(--ivory-2);border:1px solid var(--line);border-bottom-right-radius:5px;align-self:flex-end}

  /* Cifras sin caja */
  .figs{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:22px 0 0;padding:0}
  .fig{padding:14px 22px 6px 0;border-top:1px solid var(--line);margin:0}
  .fig dt{order:2;color:var(--ink-2);font-size:15px}
  .fig .h{order:3}
  .fig dd{order:1;margin:0;font-family:var(--serif);font-size:44px;font-weight:600;line-height:1;font-variant-numeric:lining-nums}
  .fig .h{display:block;color:var(--ink-3);font-size:13px;margin-top:6px}
  .fig{display:flex;flex-direction:column}
  .fig dt{margin-top:8px}
  .fig dd{order:1}

  .cols{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;margin-top:30px;align-items:start}
  .stack{display:flex;flex-direction:column;gap:18px}
  .chip{display:inline-flex;align-items:center;padding:3px 11px;border-radius:99px;background:var(--gold-soft);color:var(--gold-ink);font-size:13px;font-weight:500}
  .chip.rose{background:var(--rose);color:var(--rose-ink)}
  .chip.sage{background:var(--sage);color:var(--sage-ink)}
  .chip.alert{background:var(--alert-soft);color:var(--alert-ink)}
  .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}

  /* Mensajes */
  .inbox{display:grid;grid-template-columns:320px 1fr 300px;margin-top:26px;background:var(--paper);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);min-height:640px}
  .inbox-list{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
  .filters{display:flex;gap:6px;padding:12px 14px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
  .filter{border:1px solid var(--line);background:none;border-radius:99px;padding:0 15px;font-size:13px;cursor:pointer;color:var(--ink-2);min-height:44px}
  .filter[aria-pressed="true"]{background:var(--bronze);color:#FBF7EE;border-color:var(--bronze)}
  #convlist{list-style:none;margin:0;padding:0;overflow:auto;max-height:560px}
  .conv{display:flex;gap:12px;width:100%;padding:16px 14px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer;align-items:flex-start;min-height:44px}
  .conv:hover{background:#FBF7EE}
  .conv[aria-current="true"]{background:var(--gold-soft)}
  .conv .meta{min-width:0;flex:1}
  .conv .top{display:flex;justify-content:space-between;gap:8px}
  .conv .nm{font-weight:600;font-size:15px}
  .conv .tm{font-size:13px;color:var(--ink-3);white-space:nowrap}
  .conv .pv{color:var(--ink-2);font-size:15px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .conv.urgent-row .avatar{background:var(--alert-soft);color:var(--alert-ink)}
  .chat{display:flex;flex-direction:column;min-width:0}
  .chat-head{display:flex;align-items:center;gap:12px;padding:16px 22px;border-bottom:1px solid var(--line)}
  .chat-head .back{display:none;background:none;border:0;font-size:22px;min-width:44px;min-height:44px;cursor:pointer;margin-left:-10px}
  .chat-head b{font-size:17px}
  .chat-head span.s{display:block;font-size:13px;color:var(--ink-3)}
  .note-mob{display:none;border-bottom:1px solid var(--line);background:var(--champagne);padding:4px 0}
  .note-mob summary{min-height:48px;display:flex;align-items:center;gap:10px;padding:0 20px;cursor:pointer;font-weight:500;font-size:15px;color:var(--gold-ink)}
  .note-mob .inner{padding:0 20px 18px}
  .thread{flex:1;padding:24px 22px;display:flex;flex-direction:column;gap:14px;overflow:auto;background:var(--paper)}
  .day{align-self:center;font-size:13px;color:var(--ink-3);letter-spacing:.06em}
  .msg{max-width:78%;padding:12px 16px;border-radius:18px;font-size:15px;line-height:1.5}
  .msg.in{background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:5px;align-self:flex-start}
  .msg.out{background:var(--gold-soft);color:var(--ink);border-bottom-right-radius:5px;align-self:flex-end}
  .msg small{display:block;font-size:13px;color:var(--ink-3);margin-top:5px}
  .sys{align-self:center;background:var(--sage);color:var(--sage-ink);font-size:13px;padding:8px 14px;border-radius:99px;text-align:center}
  .composer{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center;background:var(--paper)}
  .composer .fake{flex:1;min-height:46px;border:1px solid var(--line);border-radius:99px;padding:0 18px;display:flex;align-items:center;color:var(--ink-3);font-size:15px;background:var(--ivory)}
  .note{border-left:1px solid var(--line);padding:22px;background:#FBF8F1;overflow:auto}
  .note h2{font-size:26px}
  .kv{margin:14px 0 0;display:flex;flex-direction:column;gap:12px}
  .kv div{font-size:15px}
  .kv dt{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:1px}
  .kv dd{margin:0}
  .note .btn{width:100%;margin-top:14px}
  .note .tip{margin-top:12px;font-size:13px;color:var(--ink-3)}

  /* Llegadas */
  .day-title{font-size:26px;margin:36px 0 0}
  .welcomes.two{grid-template-columns:repeat(2,1fr)}

  /* Informe */
  .bars{display:flex;align-items:flex-end;gap:5px;height:150px;margin-top:20px}
  .bars i{flex:1;background:linear-gradient(#D9BE88,#C9A96A);border-radius:6px 6px 2px 2px;min-height:6px}
  .axis{display:flex;justify-content:space-between;font-size:13px;color:var(--ink-3);margin-top:8px}
  .hbar{margin-top:16px}
  .hbar .lab{display:flex;justify-content:space-between;font-size:15px}
  .hbar .track{height:9px;border-radius:9px;background:var(--ivory-2);margin-top:6px;overflow:hidden}
  .hbar .track i{display:block;height:100%;background:var(--gold);border-radius:9px}
  .insight{margin-top:18px;padding:14px 16px;border-radius:14px;background:var(--gold-soft);color:#5d4721;font-size:15px}

  /* Mi clínica */
  .grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:30px;align-items:start}
  .field{margin-top:16px}
  .field label,.field .lbl{display:block;font-size:13px;color:var(--ink-3);margin-bottom:6px}
  .input{width:100%;min-height:46px;border:1px solid var(--line);border-radius:12px;background:var(--ivory);padding:0 14px;font:inherit;color:var(--ink)}
  .tog{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-top:1px solid var(--line);min-height:60px}
  .tog:first-of-type{border-top:0}
  .tog b{font-weight:500;font-size:15px;display:block}
  .tog span.d{font-size:13px;color:var(--ink-3);display:block}
  .switch{position:relative;width:60px;height:44px;flex:none}
  .switch input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:2}
  .switch i{position:absolute;left:7px;top:8px;width:46px;height:28px;border-radius:99px;background:#CFC6B2;transition:background .2s}
  .switch i::after{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .2s}
  .switch input:checked + i{background:var(--bronze)}
  .switch input:checked + i::after{transform:translateX(18px)}
  .switch input:disabled{cursor:not-allowed}
  .switch input:disabled + i{opacity:.55}
  .switch input:focus-visible + i{outline:2px solid var(--gold-ink);outline-offset:3px}
  .tones{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
  .tone{border:1px solid var(--line);background:none;border-radius:99px;min-height:44px;padding:0 18px;cursor:pointer;font-size:15px}
  .tone[aria-pressed="true"]{background:var(--bronze);color:#FBF7EE;border-color:var(--bronze)}
  .preview{margin-top:16px;padding:16px;border-radius:14px;background:var(--champagne);font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.3}
  .preview small{display:block;font-family:var(--sans);font-style:normal;color:var(--ink-3);font-size:13px;margin-bottom:4px}
  .conn{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--line)}
  .conn:first-of-type{border-top:0}
  .conn b{font-weight:500;display:block}
  .conn span.d{display:block;font-size:13px;color:var(--ink-3)}
  .conn .chip{margin-left:auto}
  .confirm{margin-top:10px;padding:14px 16px;border-radius:14px;background:var(--alert-soft);border:1px solid var(--alert-line)}
  .confirm p{color:var(--ink-2)}
  .saved{min-height:22px;margin-top:14px;font-size:13px;color:var(--sage-ink)}

  #alertbar{position:sticky;top:0;z-index:20;display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:12px 18px;background:var(--alert-soft);color:var(--alert-ink);border-bottom:1px solid var(--alert-line);font-weight:500}
  #alertbar .btn{margin-left:auto}

  dialog{border:0;border-radius:22px;padding:0;max-width:640px;width:calc(100% - 32px);background:var(--paper);color:var(--ink);box-shadow:0 30px 80px rgba(40,30,10,.3)}
  dialog::backdrop{background:rgba(28,28,30,.45)}
  .dlg{padding:30px}
  .dlg h2{font-size:34px}
  .dlg h3{font-size:17px;margin-top:22px;font-family:var(--sans);font-weight:600;letter-spacing:0}
  .dlg ul{margin:8px 0 0;padding-left:20px;color:var(--ink-2);font-size:15px}
  .dlg li{margin:5px 0}
  .dlg .btn{margin-top:24px}

  .topbar,.tabbar{display:none}

  @media (max-width:1180px){
    .inbox{grid-template-columns:300px 1fr}
    .note{display:none}
    .note-mob{display:block}
    .figs{grid-template-columns:repeat(2,1fr)}
    .welcomes{grid-template-columns:repeat(2,1fr)}
  }
  @media (max-width:860px){
    .app{display:block}
    .side{display:none}
    .topbar{display:flex;align-items:center;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top,0px)) 18px 6px;background:var(--ivory);position:sticky;top:0;z-index:5;border-bottom:1px solid var(--line)}
    .topbar .brand{padding:0;font-size:28px}
    .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:6;background:rgba(255,253,249,.97);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px))}
    .tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:54px;border:0;background:none;font-size:12px;color:var(--ink-3);cursor:pointer;position:relative}
    .tab svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
    .tab[aria-current="page"]{color:var(--ink)}
    .tab[aria-current="page"] svg{stroke:var(--gold-ink)}
    .tab .badge{position:absolute;top:2px;left:calc(50% + 6px);min-width:18px;height:18px;font-size:12px;padding:0 5px;margin:0}
    main{padding:20px 16px 110px}
    .page-title{font-size:38px}
    .status{margin-left:0;margin-top:8px}
    .welcomes,.welcomes.two,.grid2,.cols{grid-template-columns:1fr}
    .inbox{grid-template-columns:1fr;min-height:0;margin-top:20px}
    .inbox .chat{display:none}
    .inbox.show-chat .inbox-list{display:none}
    .inbox.show-chat .chat{display:flex;min-height:70vh}
    .chat-head .back{display:inline-flex;align-items:center;justify-content:center}
    .msg{max-width:88%}
    .composer{position:sticky;bottom:calc(66px + env(safe-area-inset-bottom,0px))}
    #alertbar{top:56px}
  }
  @media (max-width:420px){ .figs{grid-template-columns:1fr 1fr} .fig dd{font-size:36px} }
  @media (prefers-reduced-motion:reduce){ *{transition:none!important} }

/* ---- v1: añadidos sobre la maqueta ---- */
.sampbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.sampbar .link{padding:0;min-height:0}
.composer .field-in{flex:1;min-height:46px;border:1px solid var(--line);border-radius:99px;padding:0 18px;font:inherit;color:var(--ink);background:var(--ivory)}
.composer .field-in:disabled{color:var(--ink-3)}
.msg.out .who{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:3px}
.chip.ghost{background:transparent;border:1px solid var(--line);color:var(--ink-3)}
.conv .nm .ch{font-weight:400;color:var(--ink-3);font-size:13px;margin-left:6px}
.empty-state{padding:30px 6px;color:var(--ink-3)}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:#FBF7EE;padding:12px 20px;border-radius:99px;font-size:14px;z-index:60;max-width:calc(100% - 32px)}
.field textarea.input{min-height:90px;padding:12px 14px;resize:vertical}
.embed{margin-top:14px;padding:14px;border-radius:12px;background:var(--ivory-2);font:13px/1.5 ui-monospace,Menlo,Consolas,monospace;word-break:break-all;color:var(--ink-2)}
.note .none{display:block;color:var(--ink-3)}
.mini-form{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.mini-form .input{flex:1;min-width:140px}
.login{min-height:100vh;display:grid;place-items:center;padding:24px}
.login-card{width:100%;max-width:420px;background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:34px;box-shadow:var(--shadow)}
.login-card .brand{padding:0;font-size:40px}
.login-card p.lede{font-size:15px;margin-top:12px}
.login-card .btn{width:100%;margin-top:22px}
.err{color:var(--alert-ink);font-size:14px;min-height:20px;margin-top:12px}
.btn.small.danger{background:var(--alert);border-color:var(--alert)}

/* Mensajes: altura fija, cada columna desplaza por dentro */
.inbox{height:clamp(520px,calc(100dvh - 270px),760px);min-height:0;grid-template-rows:minmax(0,1fr)}
.inbox>*{min-height:0}
.inbox-list #convlist{flex:1;max-height:none;min-height:0}
.inbox .chat .thread{min-height:0}
.inbox>aside{overflow:auto}
.composer>button{white-space:nowrap;flex:none}
@media (max-width:860px){.inbox{height:auto}}
.composer{flex-wrap:wrap}
.composer .field-in{flex:1 1 160px;min-width:0}

/* Mensajes v2: dos zonas a toda altura, nota como panel */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#view-mensajes .lede{display:none}
.inbox{position:relative;margin-top:0}
.list-head{padding:18px 16px 2px}
.list-head b{font:600 26px/1.1 "Cormorant Garamond",Georgia,serif;display:block}
.list-head .s{display:block;font-size:13px;color:var(--ink-3);margin-top:2px}
.search{padding:10px 14px 0}
.search input{width:100%;min-height:44px;border:1px solid var(--line);border-radius:99px;padding:0 18px;font:inherit;font-size:15px;background:var(--ivory);color:var(--ink)}
.filters{border-bottom:1px solid var(--line)}
#convlist li[hidden]{display:none}
.chat-head{min-height:68px;padding:12px 20px}
.chat-head .who{min-width:0}
.head-acts{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.head-acts .btn{min-height:40px;padding:0 16px;font-size:14px;white-space:nowrap}
.head-acts [hidden]{display:none}
.cita-strip{padding:9px 22px;background:var(--champagne);border-bottom:1px solid var(--line);font-size:14px;color:var(--gold-ink)}
.note{display:block!important;position:absolute;top:0;right:0;bottom:0;width:min(340px,100%);z-index:3;border-left:1px solid var(--line);box-shadow:-18px 0 40px rgba(60,45,20,.12);transform:translateX(104%);visibility:hidden;transition:transform .25s ease,visibility 0s .25s}
.inbox.show-note .note{transform:none;visibility:visible;transition:transform .25s ease}
.note-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.x-note{background:none;border:0;font-size:24px;line-height:1;color:var(--ink-2);min-width:44px;min-height:44px;margin:-8px -10px 0 0;cursor:pointer}
.note-mob{display:none!important}
@media (min-width:861px){
  body.v-mensajes main{max-width:none;padding:16px 28px 20px}
  body.v-mensajes .sampbar{margin-bottom:12px}
  .inbox{height:max(500px,calc(100dvh - 96px));grid-template-columns:minmax(330px,420px) 1fr}
}
@media (max-width:860px){
  .chat-head{flex-wrap:wrap}
  .head-acts{width:100%;margin-left:0;justify-content:flex-start}
  .note{position:fixed;inset:0;width:100%;z-index:20;padding-top:calc(22px + env(safe-area-inset-top,0px));box-shadow:none}
}
@media (prefers-reduced-motion:reduce){.note{transition:none!important}}
@media (max-width:860px){.inbox{grid-template-columns:minmax(0,1fr)}.inbox-list,.chat{min-width:0}}
@media (min-width:1500px){.inbox .thread{padding-left:max(22px,calc((100% - 900px)/2));padding-right:max(22px,calc((100% - 900px)/2))}}

/* Mensajes a sangre: ocupa todo el contenido a la derecha del menú */
@media (min-width:861px){
  body.v-mensajes main{max-width:none;padding:0;height:100dvh;display:flex;flex-direction:column;overflow:hidden}
  body.v-mensajes .sampbar{margin:0;padding:8px 22px;border-bottom:1px solid var(--line);background:var(--ivory);font-size:12.5px}
  body.v-mensajes #view-mensajes{flex:1;min-height:0;display:flex;flex-direction:column}
  body.v-mensajes .inbox{flex:1;height:auto;min-height:0;margin:0;border:0;border-radius:0;box-shadow:none}
}

/* Pantallas grandes: la nota va siempre visible como tercera columna */
@media (min-width:1480px){
  body.v-mensajes .inbox{grid-template-columns:minmax(320px,380px) minmax(0,1fr) 320px}
  .inbox .note{position:static;transform:none;visibility:visible;width:auto;z-index:auto;box-shadow:none;transition:none}
  .head-acts #note-btn,.note .x-note{display:none}
  .inbox .note:empty::before{content:"La nota de la conversación aparece aquí.";color:var(--ink-3);font-size:14px}
}
@media (min-width:1480px){ .inbox .cita-strip{display:none} }

/* Mi perfil */
.avatar.has-photo{background-size:cover;background-position:center;color:transparent}
.avatar.big{width:96px;height:96px;font-size:40px}
.me-btn{display:flex;align-items:center;gap:10px;width:100%;margin-top:10px;padding:8px 10px;border:1px solid transparent;border-radius:14px;background:none;cursor:pointer;text-align:left;font:inherit;color:var(--ink);min-height:52px}
.me-btn:hover{background:var(--paper);border-color:var(--line)}
.me-btn .avatar{width:36px;height:36px;font-size:16px}
.me-t{min-width:0;display:flex;flex-direction:column}
.me-t b{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me-t span{font-size:13px;color:var(--ink-3)}
.top-r{display:flex;align-items:center;gap:12px}
.me-top{background:none;border:0;padding:0;cursor:pointer;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}
.me-top .avatar{width:34px;height:34px;font-size:15px}
.acct{grid-template-columns:1fr 1fr;max-width:980px}
.acct .card h2{margin-bottom:6px}
.photo-row{display:flex;align-items:center;gap:20px;margin-top:14px;flex-wrap:wrap}
.photo-acts{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.photo-acts .hint{flex-basis:100%}
.hint{display:block;font-size:13px;color:var(--ink-3);margin-top:6px}
.form-foot{display:flex;align-items:center;gap:14px;margin-top:22px;flex-wrap:wrap}
.fmsg{font-size:14px}.fmsg.ok{color:var(--sage-ink)}.fmsg.bad{color:var(--alert-ink)}
@media (max-width:860px){.acct{grid-template-columns:1fr}}
.photo-acts{flex:1;min-width:200px}

/* Ajustar foto */
.crop-dlg{padding:26px;max-width:420px}
.crop-dlg h2{margin:0}
.crop-box{position:relative;width:280px;height:280px;margin:18px auto 0;border-radius:18px;overflow:hidden;touch-action:none;cursor:grab;background:var(--ivory);outline-offset:3px}
.crop-box:active{cursor:grabbing}
.crop-box canvas{display:block;width:280px;height:280px}
.crop-mask{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 400px rgba(251,248,241,.78);border:2px solid #fff;pointer-events:none}
.crop-zoom{display:flex;align-items:center;gap:12px;margin:18px auto 0;width:280px}
.crop-zoom label{font-size:13px;color:var(--ink-3)}
.crop-zoom input{flex:1;accent-color:var(--bronze);min-height:44px}
.crop-dlg .form-foot{justify-content:flex-end;margin-top:20px}
.crop-dlg .btn{margin-top:0}
dialog#crop{max-width:420px}
.side-foot .me-btn{margin-top:0;background:var(--paper);border-color:var(--line);padding:10px 12px}
.side-foot .me-btn .avatar{width:40px;height:40px;font-size:18px}
.side-foot .me-btn:hover{border-color:#CDBE9F}

/* Plan y facturas */
.plan-link{margin-top:6px}
.plan2{grid-template-columns:1fr 1fr;max-width:1100px}
.plan-name{font:600 26px/1.15 var(--serif);margin-top:10px}
.plan-price{font-size:30px;font-weight:600;margin-top:6px}
.plan-price small{font-size:14px;font-weight:400;color:var(--ink-3)}
.inc{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:7px;font-size:15px}
.inc li{display:flex;gap:10px;align-items:baseline}
.inc li::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--gold);transform:translateY(-1px)}
.inc li.no{color:var(--ink-3)}.inc li.no::before{background:var(--line)}
.meter-row{margin-top:18px}
.meter-top{display:flex;justify-content:space-between;gap:12px;font-size:15px}
.meter-top b{font-weight:600}
.meter{height:10px;border-radius:99px;background:var(--line);overflow:hidden;margin-top:8px}
.meter i{display:block;height:100%;background:var(--gold);border-radius:99px}
.meter.near i{background:var(--bronze)}.meter.over i{background:var(--alert)}
.usage-msg{margin-top:16px;padding:10px 14px;border-radius:12px;background:var(--sage);color:var(--sage-ink);font-size:14.5px}
.usage-msg.near{background:var(--champagne);color:var(--gold-ink)}.usage-msg.over{background:var(--alert-soft);color:var(--alert-ink)}
.kv2{margin:16px 0 0}.kv2 dt{font-size:13px;color:var(--ink-3)}.kv2 dd{margin:2px 0 0;font-size:15px}
.check{display:flex;gap:10px;align-items:flex-start;margin-top:16px;font-size:15px;cursor:pointer;min-height:44px}
.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--bronze);flex:none}
.tbl-wrap{overflow-x:auto;margin-top:10px}
.tbl{width:100%;border-collapse:collapse;font-size:14.5px;min-width:520px}
.tbl th{text-align:left;font-size:12.5px;font-weight:500;color:var(--ink-3);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl .r{text-align:right;white-space:nowrap}
.pay{display:flex;align-items:center;gap:14px;margin-top:14px}
.pay-ico{display:inline-flex;align-items:center;justify-content:center;min-width:56px;height:38px;border:1px solid var(--line);border-radius:8px;font-weight:600;font-size:13px;color:var(--gold-ink);background:var(--ivory)}
.plans-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:14px;max-width:1100px}
.plan-card{display:flex;flex-direction:column;align-items:flex-start}
.plan-card .plan-name{font-size:22px}.plan-card .plan-price{font-size:26px}
.plan-card .btn,.plan-card .chip{margin-top:auto;align-self:flex-start}
.plan-card .hint:last-of-type{margin-bottom:14px}
.plan-card.current{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
@media (max-width:1180px){.plans-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:860px){.plan2,.plans-grid{grid-template-columns:1fr}}
.plan3{grid-template-columns:1.7fr 1fr;max-width:1100px}
a.btn{text-decoration:none}
.tbl .nw{white-space:nowrap}
@media (max-width:1180px){.plan3{grid-template-columns:minmax(0,1fr)}}
@media (max-width:860px){.plan2,.plan3,.plans-grid{grid-template-columns:minmax(0,1fr)}}
.inv{list-style:none;margin:8px 0 0;padding:0}
.inv li{padding:14px 0;border-bottom:1px solid var(--line)}
.inv li:last-child{border-bottom:0}
.inv-top{display:flex;justify-content:space-between;gap:14px;align-items:baseline;font-size:15px}
.inv-top b{white-space:nowrap;font-weight:600}
.inv-sub{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:6px;font-size:13.5px;color:var(--ink-3)}
.inv-sub .link{margin-left:auto;min-height:36px}

/* Mensajes: buscador y filtros estilo WhatsApp Web */
.search{position:relative}
.search svg{position:absolute;left:30px;top:50%;margin-top:5px;transform:translateY(-50%);width:18px;height:18px;stroke:var(--ink-3);fill:none;stroke-width:1.8;stroke-linecap:round;pointer-events:none}
.search input{padding-left:44px}
.filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.filters::-webkit-scrollbar{display:none}
.filter{white-space:nowrap;flex:none}
.filter .cnt{display:inline-block;min-width:20px;padding:0 6px;margin-left:4px;border-radius:99px;background:var(--gold-soft);color:var(--gold-ink);font-size:12px;font-weight:600;text-align:center;line-height:20px}
.filter[aria-pressed="true"] .cnt{background:rgba(255,255,255,.22);color:#FBF7EE}
.conv .tm{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.conv.unread .nm{font-weight:700}.conv.unread .pv{color:var(--ink);font-weight:500}
.ubadge{min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:var(--bronze);color:#FBF7EE;font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}

/* Plan: capacidades */
.caps{list-style:none;margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:9px;font-size:14.5px;width:100%}
.caps li{display:flex;gap:10px;align-items:baseline}
.caps .ck{flex:none;width:18px;text-align:center;font-weight:700;color:var(--sage-ink)}
.caps li.no{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--line)}.caps li.no .ck{color:var(--ink-3)}
.caps li.soon .ck{color:var(--gold-ink)}
.caps li.soon{background:none}
.caps .soonchip{font-style:normal;font-size:12px;font-weight:500;color:var(--gold-ink);background:var(--champagne);padding:2px 8px;border-radius:99px;margin-left:4px;white-space:nowrap}
.plans-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:860px){.plans-grid{grid-template-columns:minmax(0,1fr)}}

/* Llamadas */
.chip.ok{background:var(--sage);color:var(--sage-ink)}
.crow{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}
.crow .cm{font-size:13px;color:var(--ink-3)}
.calls2 .conv .pv{white-space:nowrap}
.calldet{padding:22px 24px 40px;gap:0;overflow:auto}
.calldet>*{max-width:760px}
.call-top{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.call-ap{font-size:15px;color:var(--gold-ink);font-weight:500}
.call-h{font:600 20px/1.2 var(--serif);margin:26px 0 8px}
.call-p{margin:0 0 8px;font-size:15.5px;line-height:1.55;max-width:62ch}
.call-kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px 22px;margin-top:10px}
.call-tech{margin-top:16px;border-top:1px solid var(--line);padding-top:10px}
.call-tech summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-size:14px;color:var(--ink-2)}
.call-msgs{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.call-msgs .msg{max-width:78%}
@media (min-width:861px){
  body.v-mensajes #view-llamadas{flex:1;min-height:0;display:flex;flex-direction:column}
  body.v-mensajes .inbox.calls2{grid-template-columns:minmax(340px,430px) minmax(0,1fr)}
}
@media (max-width:860px){.tabbar{grid-template-columns:repeat(6,1fr)}.tab{font-size:11px;min-width:0}.call-msgs .msg{max-width:90%}}
#calllist{list-style:none;margin:0;padding:0;overflow:auto;flex:1;min-height:0}
.inbox-list>.list-head,.inbox-list>.search,.inbox-list>.filters{flex:none}
.call-tech summary::before{content:"▸";margin-right:8px;color:var(--ink-3)}
.call-tech[open] summary::before{content:"▾"}
.call-tech summary{list-style:none}.call-tech summary::-webkit-details-marker{display:none}
.plans-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
