:root{
  --forest:#1F4D3D;
  --forest-dark:#153529;
  --parchment:#EDE4D2;
  --parchment-light:#F6F1E6;
  --sky:#3E7E92;
  --amber:#E8A33D;
  --berry:#C4423A;
  --ink:#2B2118;
  --ink-soft:#5B4C3E;
  --line:#DCD3BF;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{
  font-family:'Work Sans', -apple-system, sans-serif;
  background:var(--parchment);
  color:var(--ink);
  min-height:100vh;
}
button{font-family:inherit; cursor:pointer;}
input, textarea, select{font-family:inherit;}

/* ===== LOGIN ===== */
.login-wrap{
  min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px;
}
.login-card{
  background:var(--parchment-light); border-radius:16px; padding:40px 36px;
  width:100%; max-width:380px; border:2px solid var(--line);
  box-shadow:0 20px 50px rgba(31,77,61,0.15);
}
.login-card .brand-badge{
  width:52px; height:52px; border-radius:50%; background:var(--amber);
  display:flex; align-items:center; justify-content:center; font-family:'Baloo 2',sans-serif;
  font-weight:800; font-size:1.4rem; color:var(--forest-dark); margin:0 auto 18px;
}
.login-card h1{
  font-family:'Baloo 2', sans-serif; font-size:1.4rem; text-align:center; color:var(--forest-dark); margin-bottom:6px;
}
.login-card p.sub{text-align:center; color:var(--ink-soft); font-size:0.88rem; margin-bottom:26px;}
.field{margin-bottom:16px; display:flex; flex-direction:column; gap:6px;}
.field label{font-size:0.82rem; font-weight:600; color:var(--forest-dark);}
.field input, .field select, .field textarea{
  padding:11px 14px; border-radius:9px; border:2px solid var(--line); background:#fff; font-size:0.95rem;
}
.field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--sky); border-color:transparent;}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:11px 20px; border-radius:9px; font-weight:600; border:2px solid transparent; font-size:0.92rem;
  transition:transform .12s;
}
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--berry); color:#fff; width:100%;}
.btn-secondary{background:transparent; border-color:var(--forest); color:var(--forest);}
.btn-outline{background:transparent; border-color:var(--line); color:var(--ink-soft);}
.btn-danger{background:transparent; border-color:var(--berry); color:var(--berry);}
.btn-sm{padding:7px 14px; font-size:0.82rem;}
.alert{padding:10px 14px; border-radius:8px; font-size:0.85rem; margin-bottom:16px; display:none;}
.alert.show{display:block;}
.alert-error{background:rgba(196,66,58,0.12); color:var(--berry);}
.alert-success{background:rgba(31,77,61,0.12); color:var(--forest-dark);}

/* ===== DASHBOARD LAYOUT ===== */
.app{display:none; min-height:100vh; grid-template-columns:240px 1fr;}
.app.active{display:grid;}

.sidebar{
  background:var(--forest); color:var(--parchment-light); padding:24px 16px; display:flex; flex-direction:column;
}
.sidebar .brand{display:flex; align-items:center; gap:10px; margin-bottom:30px; padding:0 8px;}
.sidebar .brand-badge{
  width:36px; height:36px; border-radius:50%; background:var(--amber); display:flex; align-items:center; justify-content:center;
  font-family:'Baloo 2',sans-serif; font-weight:800; color:var(--forest-dark); flex-shrink:0;
}
.sidebar .brand-text{font-family:'Baloo 2',sans-serif; font-weight:700; font-size:0.95rem; line-height:1.2;}
.sidebar nav{display:flex; flex-direction:column; gap:2px; flex:1;}
.sidebar nav button{
  text-align:left; background:none; border:none; color:rgba(246,241,230,0.75); padding:11px 14px; border-radius:9px;
  font-size:0.92rem; font-weight:500; display:flex; align-items:center; gap:10px;
}
.sidebar nav button:hover{background:rgba(255,255,255,0.08); color:#fff;}
.sidebar nav button.active{background:var(--amber); color:var(--forest-dark); font-weight:700;}
.sidebar .user-box{
  border-top:1px solid rgba(255,255,255,0.15); padding-top:16px; margin-top:12px; font-size:0.82rem;
}
.sidebar .user-box .name{font-weight:600; color:#fff; margin-bottom:2px;}
.sidebar .user-box .role{opacity:0.65; margin-bottom:12px; text-transform:capitalize;}
.sidebar .user-box button{
  width:100%; background:rgba(255,255,255,0.1); border-radius:8px; padding:9px; color:#fff; font-size:0.85rem;
}

.main{padding:32px 40px; overflow-y:auto; max-height:100vh;}
.main h2{font-family:'Baloo 2', sans-serif; color:var(--forest-dark); font-size:1.6rem; margin-bottom:4px;}
.main .panel-sub{color:var(--ink-soft); font-size:0.92rem; margin-bottom:28px;}

.panel{display:none;}
.panel.active{display:block;}

/* content blocks grouped */
.content-section-group{margin-bottom:36px;}
.content-section-group h3{
  font-family:'Baloo 2', sans-serif; color:var(--forest); font-size:1.05rem; text-transform:capitalize;
  border-bottom:2px solid var(--line); padding-bottom:8px; margin-bottom:16px;
}
.content-field-card{
  background:var(--parchment-light); border:1.5px solid var(--line); border-radius:12px; padding:16px 18px; margin-bottom:12px;
}
.content-field-card .field-label{font-weight:600; font-size:0.88rem; margin-bottom:10px; color:var(--forest-dark);}
.lang-pair{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.lang-pair .lang-block label{font-size:0.72rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--ink-soft); display:block; margin-bottom:4px;}
.lang-pair textarea, .lang-pair input{
  width:100%; padding:9px 12px; border-radius:8px; border:1.5px solid var(--line); font-size:0.9rem; background:#fff;
}
.content-field-card .actions{margin-top:10px; display:flex; justify-content:flex-end; gap:8px;}
@media (max-width:700px){.lang-pair{grid-template-columns:1fr;}}

/* generic CRUD cards */
.crud-toolbar{display:flex; justify-content:space-between; align-items:center; margin-bottom:18px;}
.item-card{
  background:var(--parchment-light); border:1.5px solid var(--line); border-radius:12px; padding:18px 20px; margin-bottom:14px;
}
.item-card .grid-fields{display:grid; grid-template-columns:repeat(2, 1fr); gap:12px;}
.item-card .grid-fields.wide{grid-template-columns:1fr;}
.item-card .field-mini{display:flex; flex-direction:column; gap:4px;}
.item-card .field-mini label{font-size:0.72rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--ink-soft);}
.item-card .field-mini input, .item-card .field-mini select, .item-card .field-mini textarea{
  padding:9px 12px; border-radius:8px; border:1.5px solid var(--line); font-size:0.9rem; background:#fff;
}
.item-card .field-mini textarea{min-height:60px; resize:vertical;}
.item-card .item-footer{display:flex; justify-content:space-between; align-items:center; margin-top:14px;}
.item-card .item-footer .checkbox-line{display:flex; align-items:center; gap:8px; font-size:0.85rem; color:var(--ink-soft);}
.item-card .item-footer .btns{display:flex; gap:8px;}
@media (max-width:700px){.item-card .grid-fields{grid-template-columns:1fr;}}

.new-item-card{border-style:dashed; border-color:var(--sky);}
.new-item-card::before{
  content:"➕ Novo item"; display:block; font-weight:700; color:var(--sky); margin-bottom:12px; font-size:0.85rem;
}

/* messages list */
.message-card{
  background:var(--parchment-light); border:1.5px solid var(--line); border-radius:12px; padding:16px 20px; margin-bottom:12px;
}
.message-card.unread{border-left:4px solid var(--berry);}
.message-card .meta{display:flex; justify-content:space-between; font-size:0.8rem; color:var(--ink-soft); margin-bottom:6px;}
.message-card .body{font-size:0.92rem; margin-bottom:10px;}
.message-card .actions{display:flex; gap:8px;}

.empty-state{color:var(--ink-soft); font-style:italic; padding:20px 0;}
.loading-state{color:var(--ink-soft); padding:20px 0;}

.badge{display:inline-block; font-size:0.7rem; padding:3px 9px; border-radius:12px; background:rgba(62,126,146,0.15); color:var(--sky); font-weight:600;}
.badge.admin{background:rgba(196,66,58,0.15); color:var(--berry);}
