[hidden] { display: none !important; }
.session-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin: 2rem 0; }
.session-actions button { font: inherit; padding: .8rem 1.2rem; border: 1px solid var(--marino); border-radius: .3rem; color: var(--marino); background: transparent; cursor: pointer; }
.session-actions #login { color: var(--papel); background: var(--marino); }
.session-actions button:disabled { opacity: .6; cursor: wait; }
.session-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin-top: 2rem; text-align: left; }
.session-details div { padding: 1.5rem; border: var(--fino); }
.session-details dt { font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; }
.session-details dd { margin: .6rem 0 0; font-size: 1.2rem; overflow-wrap: anywhere; }
#status { margin: 1rem 0; }
.session-subtitle { margin: 2.5rem 0 0; font-size: 1.1rem; text-transform: uppercase; letter-spacing: .1em; }
.session-online .session-details { margin-top: 1rem; }
.session-link { display: inline-block; padding: .6rem 1rem; border: 1px solid var(--marino); border-radius: .3rem; color: var(--papel); background: var(--marino); font-size: 1rem; text-decoration: none; }
.session-link:hover, .session-link:focus-visible { outline: 2px solid var(--marino); outline-offset: 2px; }
.session-note { margin: 1rem 0 0; font-size: .85rem; opacity: .75; }
@media (max-width: 540px) { .session-details { grid-template-columns: 1fr; } }

/* ── Mi diario ─────────────────────────────────────────────────── */
.diario { border-top: var(--fino); margin-top: 1rem; }
.diario .e-titulo { font-size: clamp(1.8rem, 3.2vw, 2.6rem); }
.d-privacy { margin: 0 0 1.5rem; font-size: .85rem; opacity: .75; }
.d-form { display: grid; gap: 1.1rem; margin-top: 1.5rem; max-width: 44rem; }
.d-field { display: grid; gap: .4rem; }
.d-field label { font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; }
.d-field input, .d-field select, .d-field textarea { font: inherit; width: 100%; box-sizing: border-box; padding: .8rem 1rem; border: 1px solid var(--marino); border-radius: .3rem; background: transparent; color: var(--marino); }
.d-field textarea { min-height: 9rem; resize: vertical; line-height: 1.5; }
.d-actions { display: flex; flex-wrap: wrap; gap: 1rem; }
.d-btn { font: inherit; padding: .8rem 1.2rem; border: 1px solid var(--marino); border-radius: .3rem; color: var(--marino); background: transparent; cursor: pointer; }
.d-btn.d-primary { color: var(--papel); background: var(--marino); }
.d-btn:disabled, .d-entry-actions button:disabled, .d-field :disabled { opacity: .6; cursor: wait; }
#d-status[data-kind="error"] { color: #9b1c1c; }
.d-count { margin: 2.5rem 0 0; font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; }
.d-empty { margin: 1.5rem 0 0; opacity: .75; }
.d-list { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: 1.2rem; max-width: 44rem; }
.d-entry { padding: 1.4rem; border: var(--fino); }
.d-entry h3 { margin: 0; font-size: 1.15rem; overflow-wrap: anywhere; }
.d-meta { display: flex; flex-wrap: wrap; gap: .3rem 1rem; margin: .5rem 0 0; font-size: .8rem; opacity: .75; }
.d-type { text-transform: uppercase; letter-spacing: .08em; }
.d-text { margin: .9rem 0 0; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.55; }
.d-entry-actions { display: flex; gap: .8rem; margin-top: 1.1rem; }
.d-entry-actions button { font: inherit; font-size: .85rem; padding: .4rem .9rem; border: 1px solid var(--marino); border-radius: .3rem; background: transparent; color: var(--marino); cursor: pointer; }
.d-btn:focus-visible, .d-entry-actions button:focus-visible, .d-field :focus-visible { outline: 2px solid var(--marino); outline-offset: 2px; }

/* «Tu diploma»: la hoja se ve completa (el lienzo se escala al ancho) y debajo van las descargas. */
.diploma { border-top: var(--fino); margin-top: 1rem; }
.diploma .e-titulo { font-size: clamp(1.8rem, 3.2vw, 2.6rem); }
.dp-field { display: grid; gap: .4rem; max-width: 34rem; margin-top: 1.5rem; }
.dp-field label { font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; }
.dp-field input { font: inherit; width: 100%; box-sizing: border-box; padding: .8rem 1rem; border: 1px solid var(--marino); border-radius: .3rem; background: transparent; color: var(--marino); }
.dp-field input:focus-visible { outline: 2px solid var(--marino); outline-offset: 2px; }
.dp-field .session-note { margin: 0; }
.dp-canvas { display: block; width: 100%; max-width: 56rem; height: auto; aspect-ratio: 3508 / 2480; margin-top: 1.5rem; border: 1px solid rgba(15, 35, 64, .2); background: var(--papel); box-shadow: 0 10px 30px rgba(15, 35, 64, .12); }
.dp-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.25rem; }

/* Selector de idioma de la zona privada: el diploma sale en el idioma elegido aquí. */
.e-idioma { display: flex; gap: .15rem; margin-left: auto; margin-right: 1rem; font-size: .78rem; letter-spacing: .08em; }
.e-idioma a { padding: .35rem .55rem; border-radius: .3rem; color: var(--marino); text-decoration: none; opacity: .65; }
.e-idioma a[aria-current="true"] { opacity: 1; font-weight: 800; border: 1px solid var(--marino); }
.e-idioma a:focus-visible { outline: 2px solid var(--marino); outline-offset: 2px; }
