:root{--b:#0f766e;--b2:#065f46;--d:#0f172a;--g:#f1f5f9;--r:#ef4444;--y:#f59e0b;--ok:#16a34a;--blue:#2563eb}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:#eef6f5;color:#1e293b}.side{position:fixed;left:0;top:0;width:255px;height:100vh;background:linear-gradient(180deg,#042f2e,#0f766e);padding:18px;box-shadow:4px 0 18px #0002;z-index:10}.brand{color:white;font-size:22px;font-weight:900;margin:8px 0 22px}.brand small{display:block;font-size:12px;opacity:.8}.side a{display:block;color:white;text-decoration:none;padding:12px;border-radius:14px;margin:5px 0}.side a:hover{background:#ffffff24}.main{margin-left:255px;padding:22px}.top{background:white;padding:16px 20px;border-radius:20px;display:flex;justify-content:space-between;box-shadow:0 8px 24px #0f766e18;margin-bottom:18px}.card{background:white;padding:18px;border-radius:20px;box-shadow:0 8px 24px #0f766e18;margin-bottom:18px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stat{padding:18px;border-radius:20px;background:linear-gradient(135deg,#fff,#dcfce7);border:1px solid #d1fae5}.stat b{font-size:28px;color:#065f46}.btn{border:0;border-radius:13px;background:var(--b);color:#fff;padding:10px 14px;text-decoration:none;display:inline-block;cursor:pointer;font-weight:700}.btn.red{background:var(--r)}.btn.gray{background:#475569}.btn.yellow{background:var(--y)}.btn.blue{background:var(--blue)}input,select,textarea{width:100%;padding:11px;border:1px solid #cbd5e1;border-radius:13px;margin:5px 0 12px;background:white}label{font-weight:800;font-size:13px}.row{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}table{width:100%;border-collapse:collapse;background:white;border-radius:14px;overflow:hidden}th,td{padding:11px;border-bottom:1px solid #e2e8f0;text-align:left;vertical-align:top}th{background:#ecfeff;font-size:13px}.badge{padding:5px 9px;border-radius:999px;font-size:12px;font-weight:900;display:inline-block}.activo{background:#dcfce7;color:#166534}.vencido{background:#fef3c7;color:#92400e}.cortado,.cancelado{background:#fee2e2;color:#991b1b}.pendiente{background:#dbeafe;color:#1d4ed8}.hecha{background:#dcfce7;color:#166534}.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto auto;gap:10px;align-items:end}.muted{color:#64748b}.right{text-align:right}.ticket{max-width:430px;margin:auto;font-family:monospace}.ticket h2{text-align:center}.pill{background:#f8fafc;border:1px solid #e2e8f0;padding:10px;border-radius:14px}.menuBtn{display:none;position:fixed;right:12px;bottom:12px;z-index:30;background:#0f766e;color:white;border:0;border-radius:999px;padding:12px 16px;font-weight:800;box-shadow:0 8px 25px #0003}.tableWrap{overflow:auto}.dangerLine{border-left:5px solid #ef4444}.okLine{border-left:5px solid #16a34a}.warnLine{border-left:5px solid #f59e0b}@media(max-width:950px){.menuBtn{display:block}.side{transform:translateX(-110%);transition:.2s}.showMenu .side{transform:translateX(0)}.main{margin-left:0;padding:12px}.grid,.grid3,.row,.row3,.filters{grid-template-columns:1fr}.top{margin-top:0}.card{padding:14px}table{font-size:13px}th,td{padding:9px}}@media print{.side,.top,.no-print,.btn,.menuBtn{display:none!important}.main{margin:0;padding:0}.card{box-shadow:none;border-radius:0}.ticket{max-width:100%}body{background:white}}
button,
.btn,
input[type="submit"],
input[type="button"],
a.btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px;
    padding: 9px 14px !important;
    min-height: 40px;
    line-height: 1.2 !important;
    border-radius: 12px;
    white-space: nowrap !important;
    text-decoration: none !important;
    box-sizing: border-box;
}

.btn-sm {
    padding: 7px 10px !important;
    min-height: 34px;
    font-size: 14px;
}

td button,
td .btn,
td a.btn {
    margin: 3px;
    vertical-align: middle;
}

td.acciones,
.table td:last-child {
    white-space: nowrap;
    min-width: 230px;
}

@media (max-width: 768px) {
    button,
    .btn,
    input[type="submit"],
    input[type="button"],
    a.btn {
        width: 100%;
        margin-bottom: 6px;
    }

    td.acciones,
    .table td:last-child {
        white-space: normal;
        min-width: 160px;
    }
}