    /* Ficha + Mochila */
    .modal{
      position:fixed;inset:0;z-index:80;display:none;place-items:center;padding:24px;background:rgba(0,0,0,.72);
    }
    .modal.open{display:grid;}
    .modal-box{
      width:min(1420px,97vw);height:min(870px,93vh);display:grid;grid-template-rows:78px minmax(0,1fr);
      border:1px solid #242424;outline:1px solid rgba(58,9,13,.9);border-radius:4px;overflow:hidden;
      background:#050505;box-shadow:0 28px 70px rgba(0,0,0,.82), inset 0 0 0 1px rgba(0,0,0,.95);
    }
    .modal-head{
      min-height:78px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:10px 12px;
      border-bottom:1px solid rgba(58,9,13,.72);background:linear-gradient(180deg,#111,#050505);min-width:0;
    }
    .modal-head h3{margin:0;color:#fff;text-transform:uppercase;letter-spacing:.08em;font-size:.92rem;line-height:1.1;}
    .modal-head p{margin:3px 0 0;color:#8f8680;text-transform:uppercase;letter-spacing:.08em;font-size:.58rem;}
    .modal-head-actions{
display:flex;gap:8px;align-items:center;justify-content:flex-end;
    }
    .mochila-empty-space{
      background:
        radial-gradient(circle at 50% 40%, rgba(58,9,13,.08), transparent 48%),
        linear-gradient(180deg,#080808,#030303);
    }

    .ficha-space{
      width:100%;height:100%;min-height:0;display:grid;grid-template-rows:minmax(0,1fr);gap:0;padding:8px;overflow:hidden;color:#f2eee8;
    }
    .ficha-top{
      min-height:78px;display:grid;grid-template-columns:minmax(0,1fr) 160px;align-items:center;gap:12px;padding:11px 12px;
      border:1px solid #242424;background:linear-gradient(180deg,rgba(14,14,14,.92),rgba(2,2,2,.96));box-shadow:inset 0 0 0 1px rgba(0,0,0,.86);
    }
    .ficha-top h2{margin:0;color:#fff;text-transform:uppercase;letter-spacing:.12em;font-size:1.28rem;line-height:1.05;}
    .ficha-top p{margin:5px 0 0;color:#aaa29a;text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;line-height:1.25;}
    .ficha-level{
      height:58px;display:grid;place-items:center;border:1px solid #242424;background:#030303;text-align:center;text-transform:uppercase;color:#aaa29a;font-size:.62rem;letter-spacing:.08em;
    }
    .ficha-level strong{display:block;color:#fff;font-size:1.4rem;line-height:1.1;margin-top:3px;}
    .ficha-grid{
      min-height:0;display:grid;grid-template-columns:34% minmax(0,1fr);grid-template-rows:188px minmax(0,1fr);gap:8px;overflow:hidden;
    }
    .ficha-panel{
      min-height:0;border:1px solid #242424;background:linear-gradient(180deg,rgba(14,14,14,.90),rgba(2,2,2,.96));box-shadow:inset 0 0 0 1px rgba(0,0,0,.85);overflow:hidden;
    }
    .ficha-panel.identity{grid-column:1;grid-row:1;display:grid;grid-template-rows:31px minmax(0,1fr);}
    .ficha-panel.resources{display:grid;grid-template-rows:31px minmax(0,1fr);}
    .ficha-panel.attributes{grid-column:2;grid-row:1;display:grid;grid-template-rows:31px auto minmax(0,1fr);}
    .ficha-panel.skills{grid-column:2;grid-row:2;display:grid;grid-template-rows:31px auto minmax(0,1fr);}
    .ficha-panel.extra{grid-column:1;grid-row:2;display:grid;grid-template-rows:31px auto minmax(0,1fr);}
    .ficha-panel-head{
      min-height:31px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border-bottom:1px solid rgba(58,9,13,.72);background:#050505;
    }
    .ficha-panel-head h3{margin:0;color:#fff;text-transform:uppercase;letter-spacing:.10em;font-size:.78rem;line-height:1;}
    .ficha-panel-head small{color:#6f1119;font-size:.68rem;font-weight:900;}
    .ficha-panel-body{min-height:0;padding:8px;overflow:auto;scrollbar-width:none;}
    .ficha-panel-body::-webkit-scrollbar{display:none;}
    .ficha-panel.identity .ficha-panel-body{overflow:hidden;}

    .ficha-identity-fields{
display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,1fr);gap:7px;align-content:stretch;height:100%;
    }
    .ficha-field textarea{min-height:78px;resize:none;line-height:1.25;font-weight:700;text-transform:none;letter-spacing:.03em;}
    .ficha-field input:focus,.ficha-field textarea:focus{border-color:#6f1119;}
    .ficha-tabs{
display:flex;gap:5px;padding:7px;border-bottom:1px solid #242424;background:#020202;
    }
    .ficha-tab.active{border-color:#6f1119;color:#fff;background:linear-gradient(180deg,rgba(111,17,25,.26),rgba(5,5,5,.95));}
    .ficha-pages{
min-height:0;padding:8px;overflow:auto;scrollbar-width:none;
    }
    .ficha-note-buttons{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px;}
    .ficha-note-buttons button{min-height:28px;padding:4px 8px;font-size:.58rem;letter-spacing:.06em;}
    .ficha-small-note{padding:9px;border-left:2px solid #6f1119;background:#030303;color:#8f8680;font-size:.72rem;line-height:1.28;}

    .mochila-inventory-panel{
      min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:9px;padding:10px;border:1px solid #242424;outline:1px solid rgba(58,9,13,.55);border-radius:3px;background:#080808;overflow:hidden;box-shadow:inset 0 0 28px rgba(0,0,0,.75);
    }
    .mochila-side .ficha-panel.resources{
      min-height:0;grid-column:auto;grid-row:auto;border:1px solid #242424;outline:1px solid rgba(58,9,13,.55);border-radius:3px;background:linear-gradient(180deg,rgba(14,14,14,.90),rgba(2,2,2,.96));box-shadow:inset 0 0 28px rgba(0,0,0,.75);overflow:hidden;
    }
    .mochila-side .ficha-panel.resources .ficha-panel-body{padding:8px;}
    .mochila-side{
display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:0;color:#c8beb4;border:0;outline:0;background:transparent;box-shadow:none;
    }


    /* Modal ficha/mochila reescrito limpio */
    .modal-body{
      min-height:0;
      display:grid;
      grid-template-columns:minmax(0,1fr) 330px;
      gap:10px;
      padding:10px;
      overflow:hidden;
      background:#020202;
    }
    .modal-player-head{
      display:grid;
      grid-template-columns:58px minmax(0,1fr);
      gap:10px;
      align-items:center;
      min-width:0;
    }
    .modal-character-avatar{
      width:54px;
      height:54px;
      border-radius:50%;
      border:1px solid #4c0b11;
      overflow:hidden;
      background:#050505;
      display:grid;
      place-items:center;
      color:#fff;
      box-shadow:inset 0 0 12px #000;
    }
    .modal-character-avatar img{width:100%;height:100%;display:block;object-fit:cover;}

    .modal-character-avatar{position:relative;}
    .modal-avatar-edit{
      position:absolute;
      right:-4px;
      bottom:-4px;
      width:21px;
      height:21px;
      min-height:21px;
      padding:0;
      display:grid;
      place-items:center;
      border-radius:50%;
      border:1px solid #6f1119;
      background:linear-gradient(180deg,#161616,#050505);
      color:#f2eee8;
      font-size:.68rem;
      line-height:1;
      z-index:3;
      box-shadow:0 0 0 2px #020202, 0 2px 6px rgba(0,0,0,.8);
    }
    .modal-avatar-edit:hover{border-color:#9d1d27;filter:brightness(1.16);}
    .modal-title-wrap{min-width:0;}
    .modal-race-label{
      display:flex;
      align-items:center;
      gap:6px;
      color:#c8beb4;
      font-size:.78rem;
      text-transform:none;
      letter-spacing:.03em;
    }
    .modal-race-select{
      width:120px;
      min-height:31px;
      padding:4px 7px;
      border:1px solid #242424;
      background:#070707;
      color:#f2eee8;
      font-family:Georgia,"Times New Roman",serif;
    }
    .modal-race-select:disabled{
      opacity:.56;
      cursor:not-allowed;
      color:#8f8680;
      border-color:#1a1a1a;
      background:#050505;
    }
    .modal-race-label.locked{
      opacity:.74;
    }
    .modal-race-label.locked::after{
      content:"Storyteller";
      color:#8f8680;
      border:1px solid rgba(111,17,25,.42);
      padding:2px 5px;
      font-size:.50rem;
      text-transform:uppercase;
      letter-spacing:.08em;
      background:#030303;
    }
    .modal-save-btn,.modal-close-btn{
      min-height:33px;
      padding:7px 12px;
      font-size:.72rem;
    }
    .modal-save-btn.dirty{
      border-color:#8f1b23;
      box-shadow:inset 0 0 0 1px rgba(255,215,190,.08),0 0 12px rgba(143,27,35,.45);
      color:#fff3ee;
    }
    .mochila-empty-space{
      min-height:0;
      overflow:hidden;
      border:1px solid #242424;
      outline:1px solid rgba(58,9,13,.55);
    }
    .ficha-space{padding:8px;}
    .ficha-grid{
      width:100%;
      height:100%;
      min-height:0;
      display:grid;
      grid-template-columns:34% minmax(0,1fr);
      grid-template-rows:230px minmax(0,1fr);
      gap:8px;
      overflow:hidden;
    }
    .ficha-field{
      display:grid;
      gap:3px;
      color:#cfc5ba;
      font-size:.54rem;
      text-transform:uppercase;
      letter-spacing:.08em;
      min-width:0;
    }
    .ficha-field input,.ficha-power-row input,.ficha-quick-textarea{
      width:100%;
      min-height:27px;
      padding:5px 7px;
      border:1px solid #242424;
      background:#020202;
      color:#f2eee8;
      font-family:Georgia,"Times New Roman",serif;
      font-size:.72rem;
      outline:none;
    }
    .ficha-pages::-webkit-scrollbar{display:none;}
    .ficha-page{display:none;gap:7px;align-content:start;}
    .ficha-page.active{display:grid;}
    .ficha-tab{
      flex:1;
      min-height:28px;
      padding:4px 6px;
      color:#c8beb4;
      background:linear-gradient(180deg,#0d0d0d,#030303);
      border:1px solid #242424;
      font-size:.60rem;
      letter-spacing:.08em;
    }
    .ficha-stat-row{
      display:grid;
      grid-template-columns:minmax(120px,1fr) auto;
      gap:8px;
      align-items:center;
      min-height:24px;
    }
    .ficha-stat-name{
      color:#d7cec5;
      font-size:.72rem;
      line-height:1.1;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    .ficha-dots,.ficha-marks{
      display:flex;
      align-items:center;
      justify-content:flex-end;
      gap:5px;
      flex-wrap:wrap;
    }
    .ficha-dot,.ficha-mark{
      width:14px;
      height:14px;
      border:1px solid #474747;
      border-radius:50%;
      background:#050505;
      cursor:pointer;
      display:block;
    }
    .ficha-mark.box{border-radius:0;}
    .ficha-dot.on,.ficha-mark.on{
      background:#6f1119;
      border-color:#9d1d27;
      box-shadow:0 0 6px rgba(111,17,25,.55);
    }
    .ficha-resource-list{display:grid;gap:8px;align-content:start;}
    .ficha-resource-row{
      border:1px solid #202020;
      background:#030303;
      padding:8px;
      display:grid;
      gap:7px;
    }
    .ficha-resource-top{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:8px;
      color:#fff;
      font-size:.72rem;
      text-transform:uppercase;
      letter-spacing:.06em;
    }
    .ficha-resource-value{color:#cfc5ba;font-size:.68rem;}
    .ficha-power-group-title{color:#fff;text-transform:uppercase;letter-spacing:.08em;font-size:.62rem;border-bottom:1px solid #242424;padding:3px 0 2px;}
    .ficha-power-row{
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      gap:8px;
      align-items:center;
    }
    .ficha-quick-textarea{
      min-height:250px;
      resize:none;
      line-height:1.3;
      font-size:.76rem;
    }
    .mochila-side{
      min-height:0;
      display:grid;
      grid-template-rows:minmax(0,1fr) minmax(0,1fr);
      gap:10px;
      overflow:hidden;
    }
    .mochila-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:8px;
      padding:2px 0 6px;
      border-bottom:1px solid rgba(58,9,13,.72);
    }
    .mochila-head h3{margin:0;color:#fff;text-transform:uppercase;letter-spacing:.10em;font-size:.82rem;}
    .mochila-head small{color:#8f8680;text-transform:uppercase;letter-spacing:.08em;font-size:.56rem;}
    .mochila-equipped-title{
      text-align:center;
      color:#aaa29a;
      text-transform:uppercase;
      letter-spacing:.08em;
      font-size:.58rem;
      margin-bottom:6px;
    }
    .mochila-equipped-slots{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:6px;
      min-height:74px;
    }
    .mochila-equipped-slot{
      border:1px dashed #242424;
      background:#030303;
      display:grid;
      place-items:center;
      color:#8f8680;
      font-size:.62rem;
      text-transform:uppercase;
      overflow:hidden;
      text-align:center;
      padding:4px;
    }
    .mochila-equipped-slot.filled{border-style:solid;padding:0;display:block;}
    .mochila-equipped-slot img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;display:block;}
    .mochila-equipped-slot strong{display:none;}
    .mochila-list{
      min-height:0;
      overflow:auto;
      display:grid;
      align-content:start;
      gap:7px;
      padding-right:2px;
      scrollbar-width:none;
    }
    .mochila-list::-webkit-scrollbar{display:none;}
    .mochila-item{
      min-height:54px;
      display:grid;
      grid-template-columns:48px minmax(0,1fr) 58px 26px;
      gap:7px;
      align-items:center;
      border:1px solid #202020;
      background:#030303;
      padding:6px;
    }
    .mochila-item.equipped{border-color:#4c0b11;background:rgba(111,17,25,.10);}
    .mochila-thumb{width:48px;height:42px;border:1px solid #242424;background:#020202;display:grid;place-items:center;overflow:hidden;}
    .mochila-thumb img{width:100%;height:100%;object-fit:contain;}
    .mochila-info{min-width:0;display:grid;gap:3px;}
    .mochila-info strong{color:#fff;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .mochila-info span{color:#8f8680;font-size:.58rem;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
    .mochila-actions button{min-height:26px;padding:4px 6px;font-size:.55rem;}
    .mochila-remove-btn{
      width:24px;
      height:26px;
      min-height:26px;
      padding:0;
      display:grid;
      place-items:center;
      border:1px solid #6f1119;
      border-radius:3px;
      background:linear-gradient(180deg,#4e0b12,#100203);
      color:#ffb7b7;
      font-size:.82rem;
      font-weight:900;
      line-height:1;
      text-transform:uppercase;
      box-shadow:inset 0 0 0 1px rgba(0,0,0,.65);
    }
    .mochila-remove-btn:hover{border-color:#d32738;color:#fff;filter:brightness(1.18);}
    .mochila-empty{padding:12px;border:1px dashed #242424;color:#8f8680;text-align:center;text-transform:uppercase;font-size:.64rem;}

  

