/* Favor de Jack · Regulaciones: libro abierto (índice, lista y detalle). */
:root{
    --night:#0b0705;
    --leather:#1a110b;
    --leather-2:#24170e;
    --gold:#c99a45;
    --gold-soft:#e8c47a;
    --gold-deep:#7b5a22;
    --cream:#f2dfb6;
    --muted:#b9a27c;
    --ink:#2b1c10;
    --ink-soft:#5a4430;
    --ink-faint:#8a7253;
    --paper:#ecdcb9;
    --paper-hi:#f6ead0;
    --paper-edge:#c7ab7c;
    --buff:#3f6b2f;
    --nerf:#8a3a22;
    --ban:#6b1f2a;
}
*{box-sizing:border-box}
body{
    margin:0;
    min-height:100vh;
    color:var(--cream);
    font-family:'EB Garamond',Georgia,serif;
    background:
        radial-gradient(ellipse at 50% 0,rgba(201,154,69,.16),transparent 42%),
        radial-gradient(circle at 6% 18%,rgba(255,170,70,.10),transparent 18%),
        radial-gradient(circle at 94% 18%,rgba(255,170,70,.10),transparent 18%),
        linear-gradient(180deg,#120c08 0,#0b0705 420px,#0b0705);
}
button,input,select,textarea{font:inherit}
.reg-icon{width:1em;height:1em;fill:currentColor;flex:none}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}

/* ── Cabecera ─────────────────────────────── */
.masthead{
    display:grid;
    grid-template-columns:1fr minmax(0,760px) 1fr;
    align-items:center;
    gap:16px;
    width:min(1600px,calc(100% - 32px));
    margin:0 auto;
    padding:26px 0 22px;
    text-align:center;
}
.masthead-center{grid-column:2}
.motto{
    margin:0;
    color:rgba(232,196,122,.42);
    font-family:'Cinzel',serif;
    font-size:.72rem;
    line-height:1.7;
    letter-spacing:.24em;
    text-transform:uppercase;
}
.motto-left{grid-column:1;justify-self:center}
.motto-right{grid-column:3;justify-self:center}
.seal{
    width:58px;height:58px;margin:0 auto 6px;
    display:grid;place-items:center;
    color:var(--gold-soft);
    font-size:2.1rem;
    filter:drop-shadow(0 0 10px rgba(232,196,122,.35));
}
.eyebrow{
    margin:0 0 2px;
    color:#c6a36a;
    font-family:'Cinzel',serif;
    font-size:.8rem;
    letter-spacing:.32em;
    text-transform:uppercase;
}
h1{
    margin:0;
    font-family:'Cinzel Decorative','Cinzel',serif;
    font-size:clamp(2.5rem,7vw,5.4rem);
    line-height:1;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:#e2b866;
    background:linear-gradient(180deg,#f8dc9b 0%,#e0b05a 48%,#a8742c 100%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    filter:drop-shadow(0 3px 0 rgba(60,34,10,.9)) drop-shadow(0 0 18px rgba(201,154,69,.25));
}
.lead{margin:12px auto 0;max-width:640px;color:#e3d2ae;font-size:1.06rem;line-height:1.45}
.updated{margin:6px 0 0;color:#a08a66;font-size:.82rem}

/* ── Libro ─────────────────────────────── */
.book{
    --book-h:clamp(620px,calc(100vh - 110px),980px);
    display:grid;
    grid-template-columns:minmax(200px,240px) minmax(0,1fr) minmax(0,1fr);
    width:min(1600px,calc(100% - 32px));
    height:var(--book-h);
    margin:0 auto;
    padding:12px;
    border-radius:10px;
    background:
        linear-gradient(135deg,rgba(255,255,255,.04),transparent 40%),
        linear-gradient(180deg,#2b1c11,#170f09);
    box-shadow:
        inset 0 0 0 1px rgba(232,196,122,.35),
        inset 0 0 0 5px #120b07,
        inset 0 0 0 6px rgba(201,154,69,.45),
        0 24px 60px rgba(0,0,0,.6);
}

/* Índice (columna oscura) */
.index{
    display:flex;
    flex-direction:column;
    gap:3px;
    padding:12px 10px;
    overflow-y:auto;
    background:linear-gradient(180deg,#140d08,#0e0906);
    border:1px solid rgba(201,154,69,.25);
    border-radius:6px 0 0 6px;
}
.index hr{width:80%;margin:10px auto;border:0;border-top:1px solid rgba(201,154,69,.3)}
.index-item{
    display:flex;align-items:center;gap:12px;
    width:100%;min-height:46px;padding:8px 10px;
    border:1px solid transparent;border-radius:6px;
    background:transparent;color:#d8c49c;
    font-family:'Cinzel',serif;font-size:.86rem;text-align:left;
    cursor:pointer;transition:background .15s,border-color .15s,color .15s;
}
.index-item .reg-icon{font-size:1.5rem;color:#b7955c}
.index-item span{flex:1;min-width:0;line-height:1.2}
.index-item b{
    min-width:26px;padding:1px 7px;border-radius:999px;
    font-family:'EB Garamond',serif;font-size:.85rem;font-weight:600;text-align:center;
    color:#cdb68a;background:rgba(255,255,255,.06);
}
.index-item:hover{background:rgba(201,154,69,.10);color:#f3dfb2}
.index-item.active{
    border-color:var(--gold-soft);
    color:#fff1cc;
    background:linear-gradient(180deg,rgba(201,154,69,.32),rgba(120,82,30,.28));
    box-shadow:0 0 14px rgba(232,196,122,.25),inset 0 0 0 1px rgba(255,230,170,.18);
}
.index-item.active .reg-icon{color:var(--gold-soft)}
.index-item.active b{background:var(--gold-soft);color:#2a1a0c}
.index-motto{
    margin:auto 0 6px;padding-top:22px;
    display:flex;flex-direction:column;align-items:center;gap:8px;
    color:rgba(201,154,69,.55);
    font-family:'Cinzel',serif;font-size:.68rem;letter-spacing:.2em;line-height:1.6;
    text-transform:uppercase;text-align:center;
}
.index-motto .reg-icon{font-size:2.4rem}

/* Páginas de pergamino */
.page{
    position:relative;
    min-width:0;
    overflow-y:auto;
    color:var(--ink);
    background:
        radial-gradient(ellipse at 50% 40%,var(--paper-hi) 0%,var(--paper) 55%,#dcc596 100%);
    box-shadow:inset 0 0 40px rgba(110,72,28,.32),inset 0 0 0 1px rgba(120,84,40,.35);
    scrollbar-color:#a4865a transparent;
}
.page-list{padding:22px 22px 26px;border-right:1px solid rgba(90,60,25,.35)}
.page-detail{padding:28px 34px 34px;border-radius:0 6px 6px 0;outline:none}
.page-list::after,.page-detail::before{
    content:"";position:absolute;top:0;bottom:0;width:26px;pointer-events:none;
}
.page-list::after{right:0;background:linear-gradient(90deg,transparent,rgba(90,58,22,.18))}
.page-detail::before{left:0;background:linear-gradient(270deg,transparent,rgba(90,58,22,.22))}

.list-head{display:flex;align-items:center;gap:16px}
.searchbox{
    flex:1;min-width:0;
    display:flex;align-items:center;gap:10px;
    min-height:46px;padding:0 14px;
    border-radius:6px;
    background:#1b120b;
    border:1px solid #3b2a18;
    box-shadow:inset 0 2px 6px rgba(0,0,0,.5);
    color:#c9a86a;
}
.searchbox .reg-icon{font-size:1.15rem}
.searchbox input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#f0dfba;font-size:1.02rem}
.searchbox input::placeholder{color:#8f7a5a}
.searchbox:focus-within{border-color:var(--gold);box-shadow:inset 0 2px 6px rgba(0,0,0,.5),0 0 0 2px rgba(201,154,69,.35)}
.count{margin:0;display:flex;flex-direction:column;align-items:center;line-height:1;color:var(--ink)}
.count strong{font-family:'Cinzel',serif;font-size:1.65rem}
.count span{font-family:'Cinzel',serif;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}

.chips{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 12px}
.chip{
    min-height:32px;padding:4px 13px;border-radius:999px;
    border:1px solid #9b7c4e;background:rgba(255,248,230,.35);color:var(--ink-soft);
    font-family:'EB Garamond',serif;font-size:.92rem;cursor:pointer;
}
.chip:hover{background:rgba(255,248,230,.75);color:var(--ink)}
.chip.active{background:#2a1b0f;border-color:#2a1b0f;color:#f3dfb2}
.chip-type{display:none}

.new-rule{
    display:flex;align-items:center;justify-content:center;gap:8px;
    width:100%;min-height:44px;margin:0 0 12px;
    border:1px dashed #8b6a35;border-radius:8px;
    background:rgba(255,246,222,.55);color:#4a3015;
    font-family:'Cinzel',serif;font-size:.92rem;font-weight:600;letter-spacing:.04em;cursor:pointer;
}
.new-rule span{font-size:1.3rem;line-height:1}
.new-rule:hover{background:#fff4d6;border-style:solid;border-color:var(--gold)}

.rule-list{list-style:none;margin:0;padding:0;border-top:1px solid rgba(110,80,40,.35)}
.rule-item{border-bottom:1px solid rgba(110,80,40,.28)}
.rule-open{
    display:grid;
    grid-template-columns:52px minmax(0,1fr) auto 16px;
    align-items:center;gap:14px;
    width:100%;padding:13px 12px;
    border:1px solid transparent;border-radius:6px;
    background:transparent;color:inherit;text-align:left;cursor:pointer;
    transition:background .15s,border-color .15s,box-shadow .15s;
}
.rule-open:hover{background:rgba(255,248,228,.55)}
.rule-item.selected .rule-open{
    background:linear-gradient(180deg,#fbefcf,#f2dfae);
    border-color:#c99a45;
    box-shadow:0 0 0 1px rgba(201,154,69,.45),0 4px 14px rgba(150,105,35,.28);
}
.medal{
    display:grid;place-items:center;
    width:46px;height:46px;border-radius:50%;
    color:#2a1a0e;font-size:1.65rem;
    background:radial-gradient(circle at 50% 35%,#f7ecd2,#dcc59a);
    box-shadow:inset 0 0 0 1px rgba(90,60,25,.45),0 1px 2px rgba(0,0,0,.15);
}
.rule-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.rule-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 9px}
.rule-title{
    font-family:'Cinzel',serif;font-weight:600;font-size:1rem;line-height:1.2;
    color:#24170c;font-variant:small-caps;letter-spacing:.02em;
}
.rule-summary{color:var(--ink-soft);font-size:.95rem;line-height:1.3}
.rule-date{align-self:start;padding-top:3px;color:var(--ink-faint);font-size:.8rem;white-space:nowrap}
.chev{color:#7a5c33;font-size:1.6rem;line-height:1}
.pill{
    display:inline-flex;align-items:center;
    padding:1px 9px;border-radius:999px;
    border:1px solid #8f7046;color:#4b3520;background:rgba(255,250,236,.4);
    font-family:'Cinzel',serif;font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
    white-space:nowrap;
}
.pill-buff{border-color:var(--buff);color:#fff;background:var(--buff)}
.pill-nerf{border-color:var(--nerf);color:#fff;background:var(--nerf)}
.pill-ban{border-color:var(--ban);color:#fff;background:var(--ban)}
.pill-mesa{border-color:#7b5a22;color:#f8e7bf;background:#5b3f17}
.pill-draft{border-style:dashed;color:#6b4a1c;background:#fff3cf}

.empty-state{padding:50px 16px;text-align:center;color:var(--ink-soft)}
.empty-state h2{margin:10px 0 4px;font-family:'Cinzel',serif;font-size:1.15rem;color:var(--ink)}
.empty-icon{font-size:3rem;color:#8a6a3c}

/* ── Detalle ─────────────────────────────── */
.detail-close{display:none}
.detail-placeholder{display:grid;place-items:center;gap:8px;height:100%;min-height:300px;color:var(--ink-faint);text-align:center}
.detail-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:22px;align-items:center}
.medal-big{
    width:132px;height:132px;font-size:4.2rem;color:#e7c27a;
    background:radial-gradient(circle at 50% 38%,#4a3220,#1d130b 70%);
    box-shadow:
        0 0 0 4px #b48a45,
        0 0 0 6px #3a2614,
        0 0 0 9px #c99a45,
        0 8px 22px rgba(60,35,10,.45),
        inset 0 0 18px rgba(0,0,0,.6);
    margin:10px;
}
.detail-titles{position:relative;min-width:0}
.detail-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.detail-tags .pill{font-size:.7rem;padding:3px 11px}
.detail-titles h2{
    margin:0;padding-bottom:8px;
    font-family:'Cinzel',serif;font-weight:700;font-size:clamp(1.5rem,2.4vw,2.2rem);line-height:1.1;
    color:#1f140a;text-transform:uppercase;letter-spacing:.02em;
    border-bottom:1px solid rgba(110,80,40,.45);
}
.detail-date{margin:8px 0 0;color:var(--ink-faint);font-size:.82rem;text-align:right;line-height:1.25}
.detail-date strong{color:var(--ink);font-size:.95rem}
.detail-summary{margin:16px 0 4px;font-size:1.15rem;line-height:1.4;color:#3a2716}
.detail-body{font-size:1.06rem;line-height:1.5;color:#2f2013}
.detail-body p{margin:8px 0}
.detail-body strong{color:#1b1007}
.reg-section{
    display:flex;align-items:center;gap:10px;
    margin:22px 0 8px;
    font-family:'Cinzel',serif;font-size:1rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#3a2410;
}
.reg-section::before{content:"✥";color:#9a7136;font-size:1.25rem;line-height:1}
.reg-section::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(120,85,40,.6),rgba(120,85,40,.1))}
.reg-ol{list-style:none;counter-reset:paso;margin:10px 0;padding:0}
.reg-ol li{
    counter-increment:paso;position:relative;
    min-height:34px;margin:10px 0;padding:4px 0 0 50px;
}
.reg-ol li::before{
    content:counter(paso);
    position:absolute;left:0;top:-2px;
    display:grid;place-items:center;width:34px;height:34px;border-radius:50%;
    font-family:'Cinzel',serif;font-weight:700;color:#f0d494;
    background:radial-gradient(circle at 50% 35%,#4c3320,#1e130a);
    box-shadow:0 0 0 2px #b48a45,0 0 0 3px #3a2614;
}
.reg-ul{list-style:none;margin:8px 0;padding:0}
.reg-ul li{position:relative;margin:6px 0;padding-left:24px}
.reg-ul li::before{content:"◆";position:absolute;left:2px;top:.1em;color:#8a6a35;font-size:.8rem}
.reg-note{
    display:flex;gap:14px;align-items:center;
    margin:20px 0 6px;padding:12px 16px;
    border:1px solid #a88655;border-radius:4px;
    background:rgba(255,245,220,.45);
    box-shadow:inset 0 0 0 3px rgba(255,250,235,.4),inset 0 0 0 4px rgba(150,110,60,.35);
    font-style:italic;color:#3d2a17;
}
.reg-note p{margin:0}
.reg-note-mark{
    display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;
    font-family:'Cinzel',serif;font-weight:700;font-style:normal;color:#f0d494;background:#2a1b0f;
    box-shadow:0 0 0 2px #b48a45;
}
.reg-table{overflow-x:auto;margin:10px 0}
.reg-table table{width:100%;border-collapse:collapse;font-size:.98rem}
.reg-table th{
    padding:7px 10px;text-align:left;
    font-family:'Cinzel',serif;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;
    color:#f3dfb2;background:#2f1f12;
}
.reg-table td{padding:7px 10px;vertical-align:top;border-bottom:1px solid rgba(110,80,40,.3)}
.reg-table tr:nth-child(even) td{background:rgba(255,248,230,.35)}
.detail-source{margin:22px 0 0;color:var(--ink-faint);font-size:.88rem;font-style:italic}
.detail-admin{display:flex;gap:10px;margin-top:22px;padding-top:14px;border-top:1px solid rgba(110,80,40,.35)}
.btn{
    min-height:40px;padding:6px 16px;border-radius:6px;cursor:pointer;
    border:1px solid #8f7046;background:#fff7e3;color:#3b2714;
    font-family:'Cinzel',serif;font-size:.85rem;font-weight:600;
}
.btn:hover{background:#fff}
.btn-danger{border-color:#8a3a22;color:#8a3a22}
.btn-danger:hover{background:#8a3a22;color:#fff}
.btn-gold{border-color:#7b5a22;background:linear-gradient(180deg,#e8c47a,#b98a3e);color:#2a1a0c}
.btn-gold:hover{background:linear-gradient(180deg,#f3d48f,#c99a45)}
.btn:disabled{opacity:.6;cursor:wait}

.reg-footer{padding:18px 16px 28px;text-align:center;color:#7d6a4f;font-size:.8rem}
.reg-footer a{color:#b39a6c}

/* ── Editor (admin) ─────────────────────────────── */
.editor{
    width:min(780px,calc(100% - 24px));max-height:calc(100vh - 24px);
    padding:0;border:0;border-radius:10px;
    color:var(--ink);
    background:radial-gradient(ellipse at 50% 30%,var(--paper-hi),var(--paper) 70%,#dcc596);
    box-shadow:0 0 0 1px #8f7046,0 0 0 6px #1a110b,0 0 0 7px #c99a45,0 30px 80px rgba(0,0,0,.7);
}
.editor::backdrop{background:rgba(5,3,2,.72)}
.editor form{padding:22px 24px 20px}
.editor h2{margin:0 0 14px;font-family:'Cinzel',serif;font-size:1.35rem;color:#24170c}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
.field{display:flex;flex-direction:column;gap:4px;margin:0;font-family:'Cinzel',serif;font-size:.8rem;font-weight:600;color:#3a2716;border:0;padding:0}
.field small{font-family:'EB Garamond',serif;font-weight:400;font-size:.85rem;color:var(--ink-faint)}
.field-wide{grid-column:1 / -1}
.field input,.field select,.field textarea{
    width:100%;padding:8px 10px;border-radius:6px;
    border:1px solid #a88655;background:#fffaf0;color:#24170c;
    font-family:'EB Garamond',serif;font-size:1rem;font-weight:400;
}
.field textarea{resize:vertical;min-height:200px;font-family:ui-monospace,Consolas,monospace;font-size:.9rem;line-height:1.45}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(201,154,69,.6);outline-offset:1px}
.format-help{line-height:1.6}
.format-help code{padding:0 4px;border-radius:3px;background:rgba(90,60,25,.12);font-size:.85rem}
.icon-field legend{padding:0;margin-bottom:4px}
.icon-grid{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px;
    max-height:150px;overflow-y:auto;padding:6px;
    border:1px solid #a88655;border-radius:6px;background:#fffaf0;
}
.icon-choice{display:grid;place-items:center;height:44px;border-radius:6px;cursor:pointer;color:#3b2714;font-size:1.6rem;border:1px solid transparent}
.icon-choice input{position:absolute;opacity:0;pointer-events:none}
.icon-choice:hover{background:#f3e3bd}
.icon-choice:has(input:checked){background:#2a1b0f;color:#f0d494;border-color:#c99a45}
.icon-choice:has(input:focus-visible){outline:2px solid #c99a45}
.checks{justify-content:center;gap:8px;font-family:'EB Garamond',serif;font-size:1rem;font-weight:400}
.checks label{display:flex;align-items:center;gap:8px;cursor:pointer}
.checks input{width:18px;height:18px;accent-color:#7b5a22}
.editor-error{margin:12px 0 0;padding:8px 12px;border-radius:6px;background:#f7d9cf;color:#7a2312;border:1px solid #c47a63}
.editor-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}

/* ── Pantallas medianas ─────────────────────────────── */
@media (max-width:1200px){
    .book{grid-template-columns:200px minmax(0,1fr) minmax(0,1fr)}
    .index-item{gap:9px;font-size:.8rem}
    .index-item .reg-icon{font-size:1.3rem}
    .page-detail{padding:24px 24px 28px}
    .medal-big{width:96px;height:96px;font-size:3rem}
    .rule-date{display:none}
    .rule-open{grid-template-columns:48px minmax(0,1fr) 16px}
    .motto{display:none}
}

/* ── Móvil: una columna; el detalle se abre encima de la lista ── */
@media (max-width:900px){
    .masthead{display:block;width:calc(100% - 32px);padding:18px 0 14px}
    .lead{font-size:.98rem}
    .book{
        display:block;height:auto;
        width:calc(100% - 16px);padding:6px;
    }
    .index{display:none}
    .page{overflow:visible;border-radius:6px}
    .page-list{padding:16px 14px 20px;border-right:0}
    .page-list::after,.page-detail::before{display:none}
    .chips{flex-wrap:nowrap;overflow-x:auto;margin:14px -14px 10px;padding:0 14px 4px;scrollbar-width:none}
    .chips::-webkit-scrollbar{display:none}
    .chip{flex:none}
    .chip-type{display:inline-flex;align-items:center}
    .page-detail{display:none;padding:14px 16px 26px}
    .book.reading .page-list{display:none}
    .book.reading .page-detail{display:block}
    .detail-close{
        display:inline-flex;align-items:center;gap:4px;
        min-height:40px;margin:0 0 12px;padding:4px 12px;
        border:1px solid #8f7046;border-radius:6px;background:#fff7e3;color:#3b2714;
        font-family:'Cinzel',serif;font-size:.85rem;font-weight:600;cursor:pointer;
    }
    .detail-placeholder{display:none}
    .rule-open{grid-template-columns:44px minmax(0,1fr) 14px;gap:11px;padding:11px 6px}
    .medal{width:42px;height:42px;font-size:1.45rem}
    .detail-head{grid-template-columns:1fr;justify-items:center;text-align:center;gap:10px}
    .medal-big{width:96px;height:96px;font-size:3rem}
    .detail-tags{justify-content:center}
    .detail-date{text-align:center}
    .field-grid{grid-template-columns:1fr}
    .editor form{padding:18px 16px}
}
@media (max-width:420px){
    .list-head{gap:10px}
    .count strong{font-size:1.35rem}
    .searchbox{padding:0 10px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
