:root{--bg:#f3f6fa;--panel:#fff;--text:#13213a;--muted:#667085;--line:#e4e9f0;--primary:#1f4ed8;--primary2:#163fb5;--good:#0c8b61;--goodsoft:#eaf8f2;--warn:#b66c00;--warnsoft:#fff5dd;--bad:#cf3426;--badsoft:#fff0ee;--dark:#101827;--bluesoft:#eef4ff;--shadow:0 8px 28px rgba(17,24,39,.07);--r:16px}*{box-sizing:border-box}html{min-height:100%}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit}button,input,select,textarea{font:inherit}.layout{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:100vh}.sidebar{background:#0d1525;color:#e8edf5;padding:20px 14px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 22px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;background:#1f4ed8;color:#fff;border-radius:11px;font-weight:950}.brand b{font-size:14px;line-height:1.15}.brand small{display:block;color:#95a1b4;margin-top:3px}.nav{display:grid;gap:5px}.nav a{padding:10px 11px;border-radius:10px;text-decoration:none;font-size:13px;font-weight:750;color:#b8c3d3}.nav a:hover,.nav a.active{background:#1a2538;color:#fff}.nav-section{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#738095;font-weight:900;padding:18px 10px 6px}.sidebar-user{margin-top:24px;border-top:1px solid #263247;padding:15px 8px 0}.sidebar-user b{display:block;font-size:12px}.sidebar-user span{font-size:11px;color:#8d9aaf}.sidebar-user a{display:inline-block;margin-top:8px;font-size:11px;color:#b8c3d3}.main{min-width:0}.top{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:20}.top-title{font-size:17px;font-weight:900}.top-actions{display:flex;align-items:center;gap:8px}.content{max-width:1520px;padding:24px;margin:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:800;text-decoration:none;transition:.15s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary2)}.btn-light{background:#fff;border:1px solid var(--line);color:var(--text)}.btn-good{background:var(--goodsoft);color:var(--good);border:1px solid #c6e9dc}.btn-danger{background:var(--badsoft);color:var(--bad);border:1px solid #ffd3cf}.btn-dark{background:var(--dark);color:#fff}.btn-sm{padding:7px 9px;font-size:11px}.btn-block{width:100%;margin-top:14px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:20px}.page-head h1{margin:0;font-size:27px}.page-head p{margin:5px 0 0;color:var(--muted);font-size:13px}.actions{display:flex;gap:7px;flex-wrap:wrap}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.summary-card{padding:17px 18px;min-height:118px}.label{font-size:11px;color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.05em}.value{font-size:27px;font-weight:950;margin-top:8px}.mini{font-size:11px;color:var(--muted);margin-top:4px}.progress{height:7px;background:#e8edf4;border-radius:999px;overflow:hidden;margin-top:11px}.progress span{display:block;height:100%;background:var(--good);border-radius:999px}.money-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:12px;margin-bottom:12px}.money-card{padding:20px;min-height:180px;display:flex;flex-direction:column}.money-card.cash{background:var(--dark);border-color:var(--dark);color:#fff}.money-label{font-size:11px;color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.05em}.cash .money-label,.cash .money-note,.cash .money-breakdown{color:#bcc5d3}.money-value{font-size:34px;font-weight:950;margin-top:6px}.money-note{font-size:12px;color:var(--muted)}.money-breakdown{font-size:11px;color:var(--muted);line-height:1.6;margin-top:auto;padding-top:14px}.section-title{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#475569;font-weight:900;margin:20px 0 9px}.reconcile{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:13px 16px;margin-bottom:20px}.reconcile b{font-size:22px}.panel{overflow:hidden}.panel-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:15px 18px;border-bottom:1px solid var(--line)}.panel-head h2{font-size:16px;margin:0}.panel-body{padding:16px 18px}.grid-main{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.8fr);gap:18px}.side-stack{display:grid;gap:18px;align-content:start}.filters{display:grid;grid-template-columns:1.5fr .9fr .8fr;gap:9px;margin-bottom:12px}label{display:block;font-size:11px;font-weight:850;color:#475569;margin-bottom:6px}input,select,textarea{width:100%;border:1px solid #d7dce3;border-radius:10px;padding:10px 11px;background:#fff;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:#8aa7ef;box-shadow:0 0 0 3px rgba(31,78,216,.08)}textarea{min-height:82px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.span2{grid-column:1/-1}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:10px 9px;text-align:left;border-bottom:1px solid var(--line);font-size:12px;vertical-align:top}th{background:#f8fafc;color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:10px;white-space:nowrap}tr:hover td{background:#fcfdff}.money{font-weight:850;white-space:nowrap}.muted{color:var(--muted)}.tiny{font-size:10px}.nowrap{white-space:nowrap}.in{color:var(--good);font-weight:850}.out{color:var(--bad);font-weight:850}.neutral{color:var(--primary);font-weight:850}.badge{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900}.badge-good{background:var(--goodsoft);color:var(--good)}.badge-warn{background:var(--warnsoft);color:var(--warn)}.badge-bad{background:var(--badsoft);color:var(--bad)}.badge-blue{background:var(--bluesoft);color:var(--primary)}.flash{padding:11px 13px;border-radius:10px;margin-bottom:14px;font-size:13px}.flash-success{background:var(--goodsoft);color:#08704e}.flash-error{background:var(--badsoft);color:#a32b21}.notice{background:var(--bluesoft);color:#24448d;border:1px solid #d3dfff;border-radius:11px;padding:11px 12px;font-size:12px;margin-bottom:14px}.danger-note{background:var(--badsoft);color:#9a2b23}.ledger-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.ledger-item:last-child{border-bottom:0}.move-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:11px;font-weight:950}.move-in{background:var(--goodsoft);color:var(--good)}.move-out{background:var(--badsoft);color:var(--bad)}.move-transfer{background:var(--bluesoft);color:var(--primary)}.ledger-title{font-size:12px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ledger-meta{font-size:10px;color:var(--muted);margin-top:2px}.empty{text-align:center;color:var(--muted);padding:28px 12px}.event-header{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,minmax(135px,.35fr));gap:12px;margin-bottom:18px}.event-main{padding:18px}.metric{padding:15px}.metric b{font-size:21px;display:block;margin-top:5px}.upload-box{border:1px dashed #b8c5d5;background:#f8fafc;padding:12px;border-radius:11px}.receipt-thumb{width:48px;height:48px;object-fit:cover;border:1px solid var(--line);border-radius:8px}.modal{display:none;position:fixed;inset:0;background:rgba(15,23,42,.56);z-index:100;align-items:center;justify-content:center;padding:20px}.modal.show{display:flex}.modal-card{width:min(700px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:17px;box-shadow:0 28px 80px rgba(0,0,0,.25)}.modal-head,.modal-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 18px;border-bottom:1px solid var(--line)}.modal-foot{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-end}.modal-body{padding:18px}.modal h3{margin:0;font-size:17px}.x{border:0;background:transparent;font-size:24px;cursor:pointer;color:#667085}.receipt-view{display:flex;align-items:center;justify-content:center;background:#f4f6f9;border-radius:12px;min-height:300px;padding:12px}.receipt-view img{max-width:100%;max-height:68vh;object-fit:contain}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:#edf2f8}.login-wrap{width:min(410px,100%)}.login-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:0 18px 50px rgba(17,24,39,.1)}.login-card .brand-mark{margin-bottom:18px}.login-card h1{margin:0 0 4px}.login-card form{margin-top:20px}.login-card label{margin-top:12px}.kbd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#eef2f7;padding:2px 5px;border-radius:5px;font-size:10px}.mobile-nav{display:none}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--good);display:inline-block;margin-right:5px}.audit-detail{max-width:430px;white-space:pre-wrap;word-break:break-word;font-size:10px;color:#667085}.inline-form{display:inline}.pagination{display:flex;gap:6px;justify-content:flex-end;margin-top:14px}.pagination a,.pagination span{border:1px solid var(--line);background:#fff;padding:7px 9px;border-radius:8px;text-decoration:none;font-size:11px}.pagination .current{background:var(--dark);color:#fff;border-color:var(--dark)}
@media(max-width:1100px){.summary-grid{grid-template-columns:repeat(2,1fr)}.money-grid{grid-template-columns:1fr 1fr}.money-card.cash{grid-column:1/-1}.grid-main{grid-template-columns:1fr}.side-stack{grid-template-columns:1fr 1fr}.event-header{grid-template-columns:1fr 1fr}.event-main{grid-column:1/-1}}
@media(max-width:800px){.layout{display:block}.sidebar{display:none}.mobile-nav{display:flex;position:fixed;left:10px;right:10px;bottom:10px;z-index:80;background:#0d1525;border-radius:14px;padding:7px;gap:5px;overflow:auto;box-shadow:0 15px 40px rgba(0,0,0,.28)}.mobile-nav a{color:#bdc6d4;text-decoration:none;font-size:10px;font-weight:800;padding:9px 10px;border-radius:9px;white-space:nowrap}.mobile-nav a.active{background:#1f4ed8;color:#fff}.top{padding:0 14px}.content{padding:16px 14px 86px}.page-head{display:block}.page-head .actions{margin-top:12px}.filters,.form-grid,.summary-grid,.money-grid,.side-stack,.event-header{grid-template-columns:1fr}.money-card.cash,.event-main{grid-column:auto}.reconcile{display:block}.reconcile b{display:block;margin-top:6px}.top-title{font-size:14px}.top-actions .hide-mobile{display:none}}

/* v2 · operación y reportes */
.badge-purple{background:#f3edff;color:#7047b8}
.filters-4{grid-template-columns:1.35fr .9fr .9fr .8fr}
.event-schedule{display:grid;grid-template-columns:1.1fr repeat(3,1fr);gap:12px;padding:15px 18px;margin-bottom:12px;align-items:center}
.event-schedule>div{min-width:0}.event-schedule b{display:block;font-size:18px;margin-top:5px}.event-schedule>div+div{border-left:1px solid var(--line);padding-left:16px}
.report-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:end;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:13px 16px;margin-bottom:18px}.report-toolbar form{display:flex;gap:10px;align-items:end}.report-toolbar label{margin:0}.report-month-control{display:flex;gap:6px;align-items:center}.report-month-control input{min-width:170px}
.print-report-title{display:none}.report-summary{grid-template-columns:repeat(5,1fr)}
.report-two{display:grid;grid-template-columns:1fr 1.25fr;gap:14px;margin-bottom:18px}.report-three{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.status-stat{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.status-stat b{font-size:18px}
.simple-list>div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--line);font-size:12px}.simple-list>div:last-child{border-bottom:0}.simple-list small{color:var(--muted)}.simple-list .simple-total{font-weight:900;border-top:2px solid var(--line);border-bottom:0;margin-top:3px;padding-top:10px}
.row-cancelled td{opacity:.62;background:#fafafa}.row-cancelled a{text-decoration:line-through}
tfoot th{background:#f8fafc;font-size:11px}
@media(max-width:1200px){.report-summary{grid-template-columns:repeat(3,1fr)}.report-three{grid-template-columns:1fr 1fr}.report-three>.panel:last-child{grid-column:1/-1}}
@media(max-width:900px){.filters-4{grid-template-columns:1fr 1fr}.event-schedule{grid-template-columns:1fr 1fr}.event-schedule>div+div{border-left:0;padding-left:0}.report-two,.report-three{grid-template-columns:1fr}.report-three>.panel:last-child{grid-column:auto}.report-summary{grid-template-columns:1fr 1fr}.report-toolbar{display:block}.report-toolbar>div{margin-top:12px}}
@media(max-width:600px){.filters-4,.event-schedule,.report-summary{grid-template-columns:1fr}.report-toolbar form{display:block}.report-month-control{margin-top:6px}.status-grid{grid-template-columns:1fr}}

@media print{
  body{background:#fff!important}.sidebar,.top,.mobile-nav,.report-no-print,.btn{display:none!important}.layout{display:block!important}.main{display:block!important}.content{max-width:none!important;padding:0!important}.print-report-title{display:block;margin-bottom:18px}.print-report-title h1{margin:0;font-size:24px}.print-report-title p{margin:4px 0;color:#667085;font-size:11px}.card,.panel{box-shadow:none!important;break-inside:avoid}.summary-card{min-height:90px}.summary-grid{gap:7px}.report-summary{grid-template-columns:repeat(5,1fr)!important}.report-two{grid-template-columns:1fr 1fr!important}.report-three{grid-template-columns:repeat(3,1fr)!important}.money-grid{grid-template-columns:repeat(3,1fr)!important}.money-card.cash{grid-column:auto!important;background:#fff!important;color:#13213a!important;border-color:#e4e9f0!important}.cash .money-label,.cash .money-note,.cash .money-breakdown{color:#667085!important}.money-card{min-height:120px}.money-value{font-size:24px}.table-wrap{overflow:visible}table{font-size:9px}th,td{padding:6px 5px;font-size:9px}a{color:inherit!important;text-decoration:none!important}.section-title{margin-top:14px}.report-two,.report-three,.money-grid,.summary-grid{break-inside:avoid}.panel{margin-bottom:10px}@page{size:A4 landscape;margin:9mm}}
.event-header>.event-main:only-child{grid-column:1/-1}
