:root{--azul-oscuro: #20305d;--rosa: #dc2978;--texto: #1d1d1b;--gris-claro: #f0f2f7;--gris-borde: #d0d5e0;--blanco: #ffffff;--exito: #1a9c5a;--error: #d32f2f}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Roboto,-apple-system,BlinkMacSystemFont,sans-serif;background:#f4f6fb;color:var(--texto);min-height:100vh}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:16px;color:var(--azul-oscuro)}.spinner{width:40px;height:40px;border:4px solid var(--gris-borde);border-top-color:var(--azul-oscuro);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--azul-oscuro) 0%,#1a2550 60%,var(--rosa) 160%)}.login-card{background:var(--blanco);border-radius:16px;padding:40px 44px;width:400px;max-width:92vw;box-shadow:0 20px 60px #0000004d}.login-card .logo-wrap{display:flex;justify-content:center;margin-bottom:20px}.login-card .logo-wrap img{height:48px}.login-card h1{text-align:center;font-size:22px;color:var(--azul-oscuro);margin-bottom:4px}.login-card .sub{text-align:center;color:#6b7280;font-size:14px;margin-bottom:24px}.login-card label{display:block;font-size:13px;font-weight:700;color:var(--azul-oscuro);margin:14px 0 6px}.login-card input{width:100%;padding:11px 14px;border:1.5px solid var(--gris-borde);border-radius:8px;font-size:15px;transition:border-color .2s}.login-card input:focus{outline:none;border-color:var(--rosa)}.login-error{background:#fde8e8;color:var(--error);padding:10px 12px;border-radius:8px;font-size:13px;margin-top:14px}.btn-login{width:100%;margin-top:22px;padding:12px;background:var(--azul-oscuro);color:var(--blanco);border:none;border-radius:8px;font-size:16px;font-weight:700;transition:background .2s}.btn-login:hover{background:#2a3d7a}.btn-login:disabled{opacity:.6;cursor:not-allowed}.app-shell{display:flex;flex-direction:column;min-height:100vh}.topbar{background:var(--azul-oscuro);color:var(--blanco);padding:14px 28px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 10px #00000026;position:sticky;top:0;z-index:50}.topbar .brand{display:flex;align-items:center;gap:12px;font-weight:700;font-size:17px}.topbar .brand img{height:30px}.topbar .user-box{display:flex;align-items:center;gap:12px;font-size:13px;color:#c9d2ea}.btn-logout{background:#ffffff1f;border:1px solid rgba(255,255,255,.25);color:var(--blanco);padding:6px 14px;border-radius:6px;font-size:13px}.btn-logout:hover{background:#ffffff38}.main{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:28px}.dash-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;flex-wrap:wrap;gap:12px}.dash-head h2{color:var(--azul-oscuro);font-size:24px}.btn-primary{background:var(--rosa);color:var(--blanco);border:none;padding:11px 20px;border-radius:8px;font-size:15px;font-weight:700;transition:filter .2s}.btn-primary:hover{filter:brightness(1.08)}.btn-secondary{background:var(--blanco);color:var(--azul-oscuro);border:1.5px solid var(--azul-oscuro);padding:9px 16px;border-radius:8px;font-size:14px;font-weight:700}.btn-secondary:hover{background:#eef1fa}.btn-ghost{background:transparent;border:1px solid var(--gris-borde);color:var(--texto);padding:7px 12px;border-radius:6px;font-size:13px}.btn-ghost:hover{background:var(--gris-claro)}.toolbar{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap}.toolbar input[type=search]{flex:1;min-width:220px;padding:10px 14px;border:1.5px solid var(--gris-borde);border-radius:8px;font-size:14px}.toolbar select{padding:10px 12px;border:1.5px solid var(--gris-borde);border-radius:8px;font-size:14px;background:var(--blanco)}.table-wrap{background:var(--blanco);border-radius:12px;border:1px solid var(--gris-borde);overflow:hidden;box-shadow:0 4px 16px #141e3c0f}table.data-table{width:100%;border-collapse:collapse}.data-table thead th{background:var(--azul-oscuro);color:var(--blanco);text-align:left;padding:12px 16px;font-size:13px;font-weight:700}.data-table tbody td{padding:12px 16px;border-bottom:1px solid #e8ebf2;font-size:14px}.data-table tbody tr:hover{background:#f7f8fc}.data-table .num{font-weight:700;color:var(--azul-oscuro)}.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:700}.badge-creada{background:#fff3cd;color:#856404}.badge-enviada{background:#d4edda;color:#155724}.row-actions{display:flex;gap:6px}.row-actions button{font-size:12px;padding:5px 10px}.empty-state{text-align:center;padding:60px 20px;color:#6b7280}.empty-state .big{font-size:40px;margin-bottom:12px}.form-section{background:var(--blanco);border-radius:12px;border:1px solid var(--gris-borde);padding:22px;margin-bottom:18px}.form-section h3{color:var(--azul-oscuro);font-size:16px;margin-bottom:16px;padding-bottom:10px;border-bottom:2px solid var(--rosa);display:inline-block}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.field label{display:block;font-size:12px;font-weight:700;color:var(--azul-oscuro);margin-bottom:5px}.field input,.field select,.field textarea{width:100%;padding:9px 12px;border:1.5px solid var(--gris-borde);border-radius:7px;font-size:14px}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--rosa)}.field textarea{resize:vertical;min-height:60px}.items-table{width:100%;border-collapse:collapse;margin-top:8px}.items-table th{background:var(--azul-oscuro);color:var(--blanco);padding:9px 10px;font-size:13px;text-align:left}.items-table td{padding:6px 4px;border-bottom:1px solid #e8ebf2}.items-table input{width:100%;padding:7px 9px;border:1.5px solid var(--gris-borde);border-radius:6px;font-size:13px}.items-table input.desc{min-width:240px}.items-table input.num-input{width:90px;text-align:right}.btn-remove{background:#fde8e8;border:none;color:var(--error);border-radius:6px;padding:6px 9px;font-size:13px}.btn-add-item{margin-top:10px;border:1.5px dashed var(--azul-oscuro);background:transparent;color:var(--azul-oscuro);padding:9px 16px;border-radius:7px;font-size:14px;font-weight:700}.btn-add-item:hover{background:#eef1fa}.totals-box{background:var(--gris-claro);border-radius:10px;padding:16px 20px;max-width:320px;margin-left:auto}.totals-box .row{display:flex;justify-content:space-between;padding:5px 0;font-size:14px}.totals-box .row.total{font-size:18px;font-weight:700;color:var(--azul-oscuro);border-top:2px solid var(--azul-oscuro);margin-top:6px;padding-top:10px}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:6px}.detail-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:12px}.detail-actions{display:flex;gap:10px;flex-wrap:wrap}.notice{background:#fff3cd;border:1px solid #ffe69c;color:#856404;padding:12px 16px;border-radius:8px;font-size:14px;margin-bottom:16px}.pdf-preview{background:#2a2d33;border-radius:12px;padding:20px;margin-top:20px}.pdf-preview iframe{width:100%;height:700px;border:none;border-radius:8px;background:var(--blanco)}.pdf-empty{text-align:center;color:#9aa0ad;padding:40px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a142d8c;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--blanco);border-radius:12px;padding:24px;width:420px;max-width:92vw;max-height:90vh;overflow-y:auto}.modal h3{color:var(--azul-oscuro);margin-bottom:16px}.modal .field{margin-bottom:12px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.autocomplete-wrap{position:relative}.autocomplete-list{position:absolute;top:100%;left:0;right:0;background:var(--blanco);border:1px solid var(--gris-borde);border-radius:0 0 8px 8px;max-height:220px;overflow-y:auto;z-index:20;box-shadow:0 8px 20px #0000001f}.autocomplete-list button{display:block;width:100%;text-align:left;padding:9px 12px;border:none;background:transparent;font-size:14px;border-bottom:1px solid #f0f2f7}.autocomplete-list button:hover{background:#eef1fa}.msg-ok{background:#d4edda;color:#155724;padding:10px 14px;border-radius:8px;font-size:14px;margin-bottom:14px}.msg-err{background:#fde8e8;color:var(--error);padding:10px 14px;border-radius:8px;font-size:14px;margin-bottom:14px}@media (max-width: 720px){.grid-2,.grid-3{grid-template-columns:1fr}.main{padding:16px}}
