:root{
  --bg:#0e1411; --panel:#16201b; --panel2:#1d2a23; --line:#2c3a31;
  --gold:#c9a24b; --gold-soft:#e3c989; --text:#eef2ee; --muted:#9bb0a3;
  --green:#3fae6b; --red:#d9534f; --shadow:0 6px 20px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);color:var(--text);font-size:15px;line-height:1.45}
a{color:var(--gold-soft);text-decoration:none}
h1{font-size:1.5rem;margin:.2em 0}
h2{font-size:1.15rem}
h3,h4{margin:.6em 0 .3em}
.muted{color:var(--muted);font-weight:400}
.empty{color:var(--muted);padding:1rem 0}
.small{font-size:.88rem}

/* Topbar */
.topbar{display:flex;justify-content:space-between;align-items:center;
  padding:.7rem 1.4rem;background:linear-gradient(180deg,#10180f,#0c120e);
  border-bottom:1px solid var(--line)}
.brand a{color:var(--gold);font-weight:600;letter-spacing:.06em}
.brand b{color:var(--gold-soft)}
.brand .sub{color:var(--muted);font-size:.8rem;margin-left:.6rem;letter-spacing:.02em}
.topbar nav a{margin-left:1.1rem;color:var(--text);font-size:.92rem}
.topbar nav a:hover{color:var(--gold-soft)}
.topbar nav a.logout{color:var(--muted)}

.wrap{max-width:1180px;margin:0 auto;padding:1.3rem}
.foot{text-align:center;color:var(--muted);font-size:.8rem;padding:1.5rem}

/* Buttons */
.btn{background:var(--panel2);color:var(--text);border:1px solid var(--line);
  border-radius:8px;padding:.5rem .85rem;cursor:pointer;font-size:.9rem;transition:.15s}
.btn:hover{border-color:var(--gold)}
.btn-primary{background:var(--gold);color:#1a1205;border-color:var(--gold);font-weight:600}
.btn-primary:hover{background:var(--gold-soft)}
.btn-danger{border-color:var(--red);color:#f4b3b1}
.btn-danger:hover{background:var(--red);color:#fff}
.btn-sm{padding:.32rem .6rem;font-size:.82rem}
.x{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.9rem}
.x:hover{color:var(--red)}

/* Cards */
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:1rem 1.1rem;box-shadow:var(--shadow);margin-bottom:1.1rem}
.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem}
.head-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.back{display:inline-block;color:var(--muted);font-size:.85rem;margin-bottom:.2rem}

/* Forms */
label{display:block;font-size:.78rem;color:var(--muted);margin-bottom:.2rem}
input,select{background:#0f1714;border:1px solid var(--line);color:var(--text);
  border-radius:7px;padding:.5rem .6rem;font-size:.92rem;width:100%}
input:focus,select:focus{outline:none;border-color:var(--gold)}
.form-inline{display:flex;gap:.7rem;align-items:flex-end;flex-wrap:wrap}
.form-inline .grow{flex:1;min-width:160px}
.hidden{display:none}

/* Login */
.login-card{max-width:340px;margin:8vh auto;background:var(--panel);border:1px solid var(--line);
  border-radius:14px;padding:1.6rem;box-shadow:var(--shadow)}
.login-card input{margin-bottom:.9rem}
.login-card .btn{width:100%}
.login-card .hint{color:var(--muted);font-size:.78rem;margin-top:1rem}
.error{color:#f4b3b1;background:#3a1d1c;padding:.5rem .7rem;border-radius:7px;font-size:.86rem}

/* Event grid (home) */
.event-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}
.event-card{display:block;color:var(--text)}
.event-card:hover{border-color:var(--gold)}
.event-card.closed{opacity:.7}
.event-card-top{display:flex;justify-content:space-between;align-items:center;font-size:.8rem}
.event-card h3{margin:.5rem 0}
.event-stats{display:flex;gap:1rem;font-size:.8rem;color:var(--muted)}
.event-stats span{display:block;color:var(--text);font-weight:600;font-size:1rem}
.event-stats .pos span{color:var(--green)} .event-stats .neg span{color:var(--red)}
.badge{padding:.12rem .5rem;border-radius:20px;font-size:.72rem}
.badge-green{background:#13361f;color:#7fe0a3} .badge-gray{background:#2a2f2c;color:var(--muted)}

/* Event layout */
.event-head h1{font-size:1.3rem}
.event-layout{display:grid;grid-template-columns:340px 1fr;gap:1.1rem;align-items:start}
@media(max-width:880px){.event-layout{grid-template-columns:1fr}}
.section-title{color:var(--gold-soft);border-bottom:1px solid var(--line);padding-bottom:.3rem;margin-top:0}

/* Category banners */
.banner-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.7rem;margin-bottom:.8rem}
.banner{display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:var(--panel2);border:2px solid var(--line);border-radius:12px;
  padding:1rem .6rem;cursor:pointer;color:var(--text);transition:.15s;min-height:74px}
.banner span{font-weight:600;letter-spacing:.03em}
.banner small{color:var(--muted);font-size:.72rem;margin-top:.2rem}
.banner:hover{border-color:var(--gold)}
.banner.active{background:#0a0f0c;border-color:var(--gold);box-shadow:inset 0 0 0 99px rgba(0,0,0,.35)}
.banner.active span{color:var(--gold-soft)}

/* Item panel */
.item-panel{background:var(--panel);border:1px solid var(--gold);border-radius:12px;
  padding:.9rem;margin-bottom:1rem}
.item-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem}
.for-client{font-size:.82rem;color:var(--muted)} .for-client.warn{color:#e6b25a}
.mini-banner-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem}
.mini-banner{display:flex;flex-direction:column;align-items:flex-start;
  background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:.55rem .65rem;
  cursor:pointer;color:var(--text);text-align:left;transition:.12s}
.mini-banner:hover{border-color:var(--gold);background:#22332a}
.mini-banner.flash{background:var(--gold);color:#1a1205}
.mb-name{font-size:.84rem;font-weight:500} .mb-price{font-size:.8rem;color:var(--gold-soft);margin-top:.2rem}

/* Clients */
.clients-header{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem}
.client-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.6rem;margin-top:.5rem}
.client-banner{background:var(--panel2);border:2px solid var(--line);border-radius:10px;
  padding:.6rem .7rem;cursor:pointer;transition:.15s}
.client-banner:hover{border-color:var(--gold)}
.client-banner.active{background:#0a0f0c;border-color:var(--gold)}
.cb-head{display:flex;justify-content:space-between;align-items:center}
.cb-head span{color:var(--gold-soft);font-weight:600}
.cb-meta{font-size:.75rem;color:var(--muted);margin-top:.25rem}

/* Client panel (left) */
.client-panel{position:sticky;top:1rem}
.cp-head{display:flex;gap:.5rem;align-items:center;margin-bottom:.5rem}
.cp-name{font-weight:600;font-size:1rem}
table.consumo{width:100%;border-collapse:collapse;font-size:.86rem}
table.consumo td{padding:.3rem .2rem;border-bottom:1px solid var(--line)}
table.consumo td.num{text-align:right;color:var(--gold-soft)}
.cp-total{display:flex;justify-content:space-between;margin-top:.4rem;font-size:.9rem;color:var(--muted)}
.cp-total b{color:var(--text)}
.cp-grand{margin-top:.6rem;padding-top:.5rem;border-top:1px dashed var(--line);font-size:.9rem}
.cp-grand b{color:var(--gold-soft)}
.tip-list{list-style:none;padding:0;margin:.2rem 0;font-size:.84rem}
.tip-list li{display:flex;gap:.4rem;align-items:center;padding:.25rem 0;border-bottom:1px solid var(--line)}
.tip-list li b{color:var(--gold-soft)} .tip-list li em{color:var(--muted);font-style:normal;font-size:.78rem}
.tip-form{display:grid;grid-template-columns:1fr;gap:.4rem;margin:.5rem 0}
.tip-form select,.tip-form input{font-size:.84rem}

/* Expenses */
.expenses-section{margin-top:1.1rem}
.exp-group{display:inline-block;vertical-align:top;min-width:240px;margin-right:1.5rem}
.exp-group ul{list-style:none;padding:0;margin:.2rem 0;font-size:.86rem}
.exp-group li{display:flex;gap:.5rem;align-items:center;padding:.25rem 0;border-bottom:1px solid var(--line)}
.exp-group li span{flex:1} .exp-group li b{color:var(--gold-soft)}

/* Summary bar */
.summary-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.7rem;margin-top:.5rem}
.sb{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.7rem .8rem;text-align:center}
.sb span{display:block;color:var(--muted);font-size:.74rem}
.sb b{font-size:1.05rem}
.sb.pos b{color:var(--green)} .sb.neg b{color:var(--red)}

/* Report */
.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media(max-width:760px){.report-grid{grid-template-columns:1fr}}
table.report{width:100%;border-collapse:collapse}
table.report td,table.report th{padding:.45rem .5rem;border-bottom:1px solid var(--line);text-align:left}
table.report td.num,table.report th.num{text-align:right}
table.report tr.total td{font-weight:700;border-top:2px solid var(--gold);color:var(--gold-soft)}
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin-bottom:1.1rem}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem;text-align:center}
.kpi span{display:block;color:var(--muted);font-size:.8rem}
.kpi b{font-size:1.4rem} .kpi.pos b{color:var(--green)} .kpi.neg b{color:var(--red)}

/* tables admin */
table.admin{width:100%;border-collapse:collapse;font-size:.9rem}
table.admin th,table.admin td{padding:.45rem .5rem;border-bottom:1px solid var(--line);text-align:left}
table.admin td.num{text-align:right}
table.admin input,table.admin select{padding:.3rem .4rem}
.pos{color:var(--green)} .neg{color:var(--red)}

/* Admin editable rows (carta / personal) */
.admin-rows{display:flex;flex-direction:column;gap:.3rem}
.admin-row{display:grid;grid-template-columns:2.2fr 1fr 1fr 1.2fr .6fr 1.4fr;gap:.5rem;align-items:center;
  padding:.3rem .2rem;border-bottom:1px solid var(--line)}
.admin-row.admin-head{font-size:.75rem;color:var(--muted);border-bottom:1px solid var(--gold);text-transform:uppercase;letter-spacing:.03em}
.admin-row .ar-num{text-align:right}
.admin-row .ar-act{text-align:center}
.admin-row .ar-btn{display:flex;gap:.3rem;justify-content:flex-end}
.admin-row input[type=checkbox]{width:auto}
@media(max-width:760px){.admin-row{grid-template-columns:1fr 1fr;text-align:left}
  .admin-row.admin-head{display:none}.admin-row .ar-num{text-align:left}}

/* Print */
@media print{
  .topbar,.foot,.head-actions,.back{display:none}
  body{background:#fff;color:#000}
  .card,.kpi{background:#fff;border-color:#ccc;box-shadow:none}
  .kpi b,.section-title,table.report tr.total td{color:#000}
}
