/* ═══════════════════════════════════════════════════════════════
   user-menu.css  —  EXPEDIENTE DE OPERATIVO dropdown
   Depende de las CSS vars declaradas en style.css (:root)
   ═══════════════════════════════════════════════════════════════ */

/* ── Panel container ──────────────────────────────────────────── */
.um-panel {
    position: fixed;
    z-index: 8000;
    min-width: 240px;
    max-width: 300px;
    background: #050e05;
    border: 1px solid var(--green, #20c20e);
    box-shadow: 0 0 18px rgba(57,255,20,.22), inset 0 0 40px rgba(0,0,0,.6);
    font-family: var(--font, 'Share Tech Mono','Courier New',monospace);
    font-size: .72rem;
    color: var(--green, #20c20e);
    /* CRT scanline overlay */
    background-image: repeating-linear-gradient(
        0deg, transparent, transparent 2px,
        rgba(0,0,0,.12) 2px, rgba(0,0,0,.12) 4px
    );
    /* entrance animation */
    transform-origin: top right;
    animation: um-open .12s ease-out;
}

.um-panel.um-hidden {
    display: none;
}

@keyframes um-open {
    from { opacity: 0; transform: scaleY(.85); }
    to   { opacity: 1; transform: scaleY(1); }
}

/* ── Header bar ───────────────────────────────────────────────── */
.um-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .35rem .6rem .3rem;
    border-bottom: 1px solid var(--green-dim, #0c420c);
    background: rgba(57,255,20,.05);
}

.um-header-title {
    font-family: var(--font-title, 'VT323','Courier New',monospace);
    font-size: 1rem;
    letter-spacing: .12em;
    color: var(--green-bright, #39ff14);
    text-shadow: 0 0 8px var(--green-glow, rgba(57,255,20,.45));
    line-height: 1;
}

.um-close-btn {
    background: none;
    border: none;
    color: var(--dim, #2a522a);
    font-family: inherit;
    font-size: .8rem;
    cursor: pointer;
    padding: 0 .1rem;
    line-height: 1;
    transition: color .1s;
}
.um-close-btn:hover { color: var(--red, #ff3333); }

/* ── Body ─────────────────────────────────────────────────────── */
.um-body {
    padding: .5rem .6rem .6rem;
}

/* ── Identity block (when logged in) ─────────────────────────── */
.um-identity {
    margin-bottom: .5rem;
    padding-bottom: .45rem;
    border-bottom: 1px solid var(--green-dim, #0c420c);
}

.um-username {
    font-family: var(--font-title, 'VT323','Courier New',monospace);
    font-size: 1.35rem;
    color: var(--green-bright, #39ff14);
    text-shadow: 0 0 10px var(--green-glow, rgba(57,255,20,.45));
    letter-spacing: .06em;
    line-height: 1;
    margin-bottom: .2rem;
    /* truncate if very long */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

.um-tier-row {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: .15rem;
}

.um-tier-badge {
    font-size: .6rem;
    letter-spacing: .1em;
    padding: .06rem .35rem;
    border: 1px solid currentColor;
    line-height: 1.4;
}

/* Tier colours — mirrors ranking.html */
.um-tier-ESPECTRO      { color: #aaaaaa; }
.um-tier-OPERADOR      { color: var(--green-bright, #39ff14); }
.um-tier-SOBREVIVIENTE { color: #90cc60; }
.um-tier-CONTACTADO    { color: var(--green, #20c20e); }
.um-tier-OBSERVADO     { color: #2a8a2a; }
.um-tier-DESCONOCIDO   { color: var(--dim, #2a522a); }

.um-rep {
    font-size: .68rem;
    color: var(--dim, #2a522a);
}
.um-rep span {
    color: var(--green, #20c20e);
}

/* faction / cell line */
.um-affil {
    font-size: .63rem;
    color: var(--dim, #2a522a);
    margin-top: .18rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.um-affil .um-glyph {
    color: var(--cyan, #00e8ff);
    margin-right: .2rem;
}

/* status tags (cursed / marked) */
.um-tags {
    display: flex;
    gap: .3rem;
    margin-top: .18rem;
    flex-wrap: wrap;
}
.um-tag {
    font-size: .58rem;
    letter-spacing: .08em;
    padding: .04rem .28rem;
    border: 1px solid currentColor;
}
.um-tag-cursed  { color: var(--purple, #cc88ff); border-color: var(--purple, #cc88ff); }
.um-tag-marked  { color: var(--amber, #ffb000);  border-color: var(--amber, #ffb000); }

/* Loading skeleton */
.um-loading {
    font-size: .65rem;
    color: var(--dim, #2a522a);
    letter-spacing: .1em;
    padding: .3rem 0;
}
@keyframes um-blink { 0%,100%{opacity:1} 50%{opacity:0} }
.um-loading::after {
    content: '_';
    animation: um-blink .8s step-end infinite;
}

/* ── Nav links ────────────────────────────────────────────────── */
.um-nav {
    display: flex;
    flex-direction: column;
    gap: .18rem;
    margin-bottom: .45rem;
}

.um-nav-link {
    display: flex;
    align-items: center;
    gap: .4rem;
    background: none;
    border: none;
    color: var(--green, #20c20e);
    font-family: inherit;
    font-size: .72rem;
    letter-spacing: .07em;
    text-align: left;
    cursor: pointer;
    padding: .22rem .3rem;
    border-radius: 2px;
    text-decoration: none;
    transition: background .1s, color .1s;
    width: 100%;
}
.um-nav-link:hover {
    background: rgba(57,255,20,.08);
    color: var(--green-bright, #39ff14);
    text-decoration: none;
}
.um-nav-link .um-icon {
    width: 1.1em;
    flex-shrink: 0;
    text-align: center;
}

/* ── Divider ──────────────────────────────────────────────────── */
.um-divider {
    border: none;
    border-top: 1px solid var(--green-dim, #0c420c);
    margin: .35rem 0;
}

/* ── Logout ───────────────────────────────────────────────────── */
.um-logout-btn {
    display: flex;
    align-items: center;
    gap: .4rem;
    background: none;
    border: 1px solid var(--green-dim, #0c420c);
    color: var(--dim, #2a522a);
    font-family: inherit;
    font-size: .7rem;
    letter-spacing: .08em;
    cursor: pointer;
    padding: .25rem .5rem;
    width: 100%;
    transition: border-color .15s, color .15s;
    text-align: left;
}
.um-logout-btn:hover {
    border-color: var(--red, #ff3333);
    color: var(--red, #ff3333);
}

/* ── Guest state ──────────────────────────────────────────────── */
.um-guest-header {
    font-family: var(--font-title, 'VT323','Courier New',monospace);
    font-size: 1.1rem;
    letter-spacing: .12em;
    color: var(--red, #ff3333);
    text-shadow: 0 0 8px rgba(255,51,51,.4);
    margin-bottom: .3rem;
}

.um-guest-note {
    font-size: .64rem;
    color: var(--dim, #2a522a);
    letter-spacing: .06em;
    line-height: 1.5;
    margin-bottom: .5rem;
}

.um-login-btn {
    display: block;
    width: 100%;
    background: none;
    border: 1px solid var(--green, #20c20e);
    color: var(--green, #20c20e);
    font-family: inherit;
    font-size: .75rem;
    letter-spacing: .1em;
    cursor: pointer;
    padding: .3rem .6rem;
    transition: background .12s, color .12s;
    text-align: center;
}
.um-login-btn:hover {
    background: rgba(57,255,20,.12);
    color: var(--green-bright, #39ff14);
}

/* ── Backdrop (invisible click-outside catcher) ───────────────── */
#um-backdrop {
    position: fixed;
    inset: 0;
    z-index: 7999;
}

/* ── Responsive: on very small screens dock to full width ─────── */
@media (max-width: 380px) {
    .um-panel {
        min-width: 0;
        max-width: calc(100vw - 1.2rem);
    }
}

/* ── Misiones Diarias block ────────────────────────────────────── */
.um-missions-block {
    padding: .5rem .9rem .4rem;
    border-top: 1px solid var(--green-dim, #1a4a1a);
    border-bottom: 1px solid var(--green-dim, #1a4a1a);
    margin: .3rem 0;
}
.um-section-title {
    font-size: .65rem;
    letter-spacing: .12em;
    color: var(--green-dim, #1a4a1a);
    margin-bottom: .35rem;
    text-transform: uppercase;
}
.um-section-title.um-missions-done {
    color: var(--amber, #ffb000);
}
.um-missions-loading {
    font-size: .65rem;
    color: var(--green-dim, #1a4a1a);
    font-style: italic;
}
.um-mission-row {
    margin-bottom: .28rem;
    line-height: 1.3;
}
.um-mission-label {
    font-size: .67rem;
    color: var(--green, #20c20e);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.um-mission-bar {
    font-size: .6rem;
    color: var(--green-dim, #1a4a1a);
    font-family: var(--mono, 'Courier New', monospace);
    letter-spacing: .05em;
}
.um-mission-row.um-mission-done .um-mission-label {
    color: var(--amber, #ffb000);
    text-decoration: none;
}
.um-mission-row.um-mission-done .um-mission-bar {
    color: var(--amber, #ffb000);
    opacity: .7;
}
.um-rep-scale {
    font-size: .6rem;
    color: var(--green-dim, #1a4a1a);
    margin-top: .08rem;
}
