/* -------------------------
   GLOBAL BOX-SIZING
------------------------- */
*, *::before, *::after {
  box-sizing: border-box;
}

/* -------------------------
   GLOBAL
------------------------- */
body {
  margin: 0;
  font-family: "Georgia", serif;
  background-color: #121212;
  color: #f5e8c7;
  line-height: 1.5;
  min-height: 100vh;
  position: relative;
  padding: 1rem;
}

/* Subtle misty overlay */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  background: url("paper.jpg") repeat;
  opacity: 0.25;
  pointer-events: none;
  z-index: 0;
}

/* Container */
div.container {
  width: 25vw;
  margin: 0 0 0 10vw;
}

/* -------------------------
   CARDS / SECTIONS
------------------------- */
.card {
  background-color: #2c2c2c; /* fully opaque */
  border: 2px solid #5c3a21;
  border-radius: 8px;
  padding: 1rem;
  margin-bottom: 1rem;
  box-shadow: 0 0 15px rgba(0,0,0,0.7);
  color: #f5e8c7;
  z-index: 1;
}

.card h3 {
  margin-top: 0;
  font-size: 1.4rem;
  border-bottom: 1px solid #5c3a21;
  padding-bottom: 0.25rem;
  margin-bottom: 0.5rem;
  text-transform: capitalize;
}

/* -------------------------
   FLEX HELPERS
------------------------- */
.flex-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.flex {
  display: flex;
  gap: 0.5rem;
}

/* -------------------------
   INPUTS / TEXTAREAS
------------------------- */
input, textarea {
  background-color: #3a3a3a;
  color: #f5e8c7;
  border: 1px solid #5c3a21;
  border-radius: 4px;
  padding: 0.25rem 0.5rem;
  margin: 10px 0;
}

input {
  width: 30%;
}

input#name {
  font-size: 1.5rem;
  width: 100%;
}

textarea {
  width: 100%;
  resize: vertical;
}

input[readonly] {
  background-color: #3a3a3a;
  border-color: #5c3a21;
}

/* -------------------------
   TAG PILLS
------------------------- */
.tag-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 0.5rem;
  border: 1px solid #5c3a21;
  border-radius: 4px;
  font-size: 0.9rem;
  color: #f5e8c7;
  font-weight: bold;
  flex-wrap: wrap;
}

.tag-pill button {
  background-color: #5c3a21;
  color: tomato;
  border: none;
  border-radius: 3px;
  padding: 0 0.25rem;
  cursor: pointer;
  font-weight: bold;
}

.tag-pill button:hover {
  background-color: #7a4e2c;
}

.increment, .decrement {
  min-width: 20px;
  text-align: center;
}

.remove-tag {
  background-color: #a83838;
}

.remove-tag:hover {
  background-color: #d15050;
}

/* -------------------------
   SECTION COLORS
------------------------- */
.tag-pill.identity   { background-color: #ff6f61; }
.tag-pill.origin     { background-color: #ffb347; }
.tag-pill.training   { background-color: #6ab04c; }
.tag-pill.relic      { background-color: #1e90ff; }
.tag-pill.weakness   { background-color: #9b59b6; }
.tag-pill.legend     { background-color: #f39c12; }
.tag-pill.status     { background-color: #5737c9; }

/* -------------------------
   ADD / SAVE BUTTONS
------------------------- */
.add-tag, #saveBtn, #topSaveBtn {
  background-color: #5c3a21;
  color: #f5e8c7;
  border: none;
  border-radius: 4px;
  padding: 0.25rem 0.5rem;
  cursor: pointer;
  font-weight: bold;
  margin:4px 0;
}

.add-tag:hover, #saveBtn:hover {
  background-color: #7a4e2c;
}

/* -------------------------
   LOADING OVERLAY
------------------------- */
#loading-overlay {
  position: fixed;
  inset: 0;
  background-color: rgba(0,0,0,0.7);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 999;
  color: #f5e8c7;
  font-size: 1.5rem;
}

#loading-overlay.hidden {
  display: none;
}

.flex { display: flex; gap: 0.5rem; }
.flex-col { display: flex; flex-direction: column; justify-content: space-around; }
.flex-row { display: flex; flex-direction: row; gap:0.5rem; }
.just-between { justify-content: space-between;}
.abimmi { padding:20px; }

/* -------------------------
   TYPOGRAPHY
------------------------- */
h1 {
  margin-top: 0;
  font-size: 2rem;
}

p, label {
  margin: 0.25rem 0;
}

.text-sm {
  font-size: 0.85rem;
  opacity: 0.8;
}

/* -------------------------
   MOBILE RESPONSIVE
------------------------- */
@media (max-width: 1024px) {
    *, *::before, *::after {
      box-sizing: border-box;
    }
    div.container {
        width:100%;
        margin:0;
        font-size:2rem !important;
    }
}