:root{
  --relleus-yellow:#c0c008;
  --relleus-dark:#203000;
  --relleus-olive:#88a010;
  --bg:#f4f6f2;
  --card:#ffffff;
  --muted:#566;
  --border:#dfe6d8;
}

*{box-sizing:border-box;}
body{
  font-family: Arial, sans-serif;
  margin: 0;
  background: var(--bg);
  color:#111;
}
.page{
  max-width: 1400px;
  margin: 0 auto;
  padding: 16px;
}
a{color:inherit;}

.topbar{
  display:flex;
  gap:12px;
  align-items:center;
  flex-wrap:wrap;
  margin-bottom: 12px;
  padding: 12px 12px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: 0 2px 12px rgba(0,0,0,.05);
}
.topbar h2{margin:0; letter-spacing:.2px;}
.topbar form{margin:0;}
.nav{display:flex; gap:8px; align-items:center; flex-wrap:wrap;}

.card{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 12px;
  margin-bottom: 12px;
  box-shadow: 0 2px 12px rgba(0,0,0,.05);
}
.small{color:var(--muted); font-size:12px;}

table{border-collapse:collapse; width:100%;}
th, td{border-bottom:1px solid #eef2ea; padding:8px; text-align:left; vertical-align:top;}
th{color:#222; font-weight:700;}

input, select, textarea{
  padding: 8px;
  width: 100%;
  border-radius: 10px;
  border: 1px solid #cfd8c7;
  background: #fff;
}
input[type="date"], input[type="time"]{ width:auto; }
label{margin-top:8px; display:block; font-weight:700; color:#222; font-size:13px;}

.btn{
  padding: 8px 12px;
  border: 1px solid var(--relleus-dark);
  background: var(--relleus-yellow);
  cursor: pointer;
  border-radius: 12px;
  display:inline-block;
  text-decoration:none;
  color:#111;
  font-weight:800;
}
.btn:hover{filter:brightness(.96);}
.btn.secondary{background:#fff; border-color:#b9c3b0; font-weight:700;}
.btn.green{background: var(--relleus-olive); border-color: var(--relleus-dark); color:#0c1200;}
.danger{background:#fff; border-color:#b00; color:#b00;}
.danger:hover{background:#fff5f5;}

.inline{display:inline-block; margin-right:6px; margin-bottom:4px;}
.pill{display:inline-block; padding:2px 10px; border:1px solid #d6dfcf; border-radius:999px; font-size:12px; margin-right:6px; background:#fff;}

.grid{display:grid; grid-template-columns: repeat(7, 1fr); gap:8px;}
.cell{border:1px solid #e7eee0; border-radius:14px; padding:10px; min-height:74px; background:#fff;}
.cell a{text-decoration:none;}
.dow{font-weight:800; text-align:center; color:#566; padding:6px 0;}

.field-error{border:2px solid #b00 !important; background:#fff5f5;}

details.card > summary{
  cursor:pointer;
  list-style:none;
  margin: -12px -12px 10px -12px;
  padding: 12px 12px;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, #ffffff 0%, #fbfdf8 100%);
  border-radius: 14px 14px 0 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-weight:900;
  letter-spacing:.2px;
}
details.card[open] > summary{border-bottom-color:#d6dfcf;}
details.card > summary::-webkit-details-marker{display:none;}

.layout{display:grid; grid-template-columns: minmax(360px, 460px) 1fr; gap: 18px; align-items:start;}
.sidebar{position: sticky; top: 16px;}
.sidebarRail{display:none;}
body.sidebar-collapsed .layout{grid-template-columns: 60px 1fr;}
body.sidebar-collapsed .sidebarContent{display:none;}
body.sidebar-collapsed .sidebarRail{display:flex;}

.sidebarRail{
  height: calc(100vh - 32px);
  min-height: 420px;
  align-items:center;
  justify-content:center;
  background:#fff;
  border:1px solid var(--border);
  border-radius: 14px;
  box-shadow: 0 2px 12px rgba(0,0,0,.05);
}
.sidebarRail button{
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  border-radius: 14px;
  padding: 12px 10px;
}

@media (max-width: 980px){
  .layout{grid-template-columns: 1fr;}
  .sidebar{position: static;}
  body.sidebar-collapsed .layout{grid-template-columns: 1fr;}
  body.sidebar-collapsed .sidebarContent{display:block;}
  body.sidebar-collapsed .sidebarRail{display:none;}
}

/* Modal */
#modalOverlay{position:fixed; inset:0; background:rgba(0,0,0,0.55); display:none; align-items:center; justify-content:center; z-index:9999;}
#modal{background:#fff; width:min(760px,92vw); border-radius:14px; padding:16px; border:2px solid var(--relleus-dark); box-shadow:0 10px 40px rgba(0,0,0,.35);}
#modal h3{margin:0 0 8px 0; text-align:center;}
#modal .content{white-space:pre-line; font-size:16px; line-height:1.35; text-align:center;}  /* <-- CENTRAT */
#modal .actions{margin-top:12px; text-align:center; display:flex; justify-content:center; gap:10px; flex-wrap:wrap;}
#modal.error{border-color:#b00;}
#modal.success{border-color:#0a0;}

.state_future td{background:#f5f5f5;}
.state_due td{background:#fff3cd;}
.state_inuse td{background:#dbeafe;}
.state_returned td{background:#dcfce7;}
.state_overdue td{background:#fee2e2;}
.state_badge{font-size:12px; color:#333;}
