*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--c-bg: #f7f6f2;--c-surface: #ffffff;--c-border: #e2e0d8;--c-border-strong: #c8c5ba;--c-text: #1a1917;--c-text-muted: #6b6960;--c-accent: #1a3a2a;--c-accent-light: #e8f0ec;--c-accent-hover: #132d20;--c-sidebar: #1a3a2a;--c-danger: #c0392b;--c-warning: #d4860a;--c-success: #1a6b3a;--radius: 8px;--radius-lg: 12px;--shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(0,0,0,.1)}[data-theme=pizarra]{--c-bg: #f1f5f9;--c-surface: #ffffff;--c-border: #e2e8f0;--c-border-strong: #cbd5e1;--c-text: #0f172a;--c-text-muted: #64748b;--c-accent: #2563eb;--c-accent-light: #e0edff;--c-accent-hover: #1d4ed8;--c-sidebar: #1e293b;--c-success: #15803d}[data-theme=grafito]{--c-bg: #f8fafc;--c-surface: #ffffff;--c-border: #e5e7eb;--c-border-strong: #d1d5db;--c-text: #0f172a;--c-text-muted: #64748b;--c-accent: #059669;--c-accent-light: #d1fae5;--c-accent-hover: #047857;--c-sidebar: #18181b;--c-success: #047857}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--c-bg);color:var(--c-text);font-size:15px;line-height:1.6;min-height:100vh}.layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:220px;background:var(--c-sidebar);color:#fff;padding:0;flex-shrink:0;display:flex;flex-direction:column}.sidebar-logo{padding:24px 20px 20px;border-bottom:1px solid rgba(255,255,255,.12)}.sidebar-logo h1{font-size:14px;font-weight:600;letter-spacing:.02em}.sidebar-logo p{font-size:11px;opacity:.6;margin-top:2px}.sidebar-nav{padding:12px 0;flex:1;overflow-y:auto;min-height:0}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 20px;color:#ffffffbf;text-decoration:none;font-size:14px;transition:all .15s;cursor:pointer;border:none;background:none;width:100%;text-align:left}.nav-item:hover{background:#ffffff14;color:#fff}.nav-item.active{background:#ffffff26;color:#fff;font-weight:500}.nav-item .icon{font-size:16px;width:20px;text-align:center}.main{flex:1;overflow-y:auto}.topbar{background:var(--c-surface);border-bottom:1px solid var(--c-border);padding:14px 32px;display:flex;align-items:center;justify-content:space-between}.topbar-title{font-size:16px;font-weight:600}.topbar-sub{font-size:13px;color:var(--c-text-muted);margin-top:1px}.content{padding:32px;max-width:900px}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow)}.card+.card{margin-top:20px}.card-title{font-size:15px;font-weight:600;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--c-border);display:flex;align-items:center;gap:8px}.stepper{display:flex;align-items:center;gap:0;margin-bottom:32px}.step-item{display:flex;align-items:center;gap:8px;flex:1}.step-item:last-child{flex:0}.step-circle{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;background:var(--c-border);color:var(--c-text-muted);flex-shrink:0;transition:all .2s}.step-circle.active{background:var(--c-accent);color:#fff}.step-circle.done{background:var(--c-success);color:#fff}.step-label{font-size:12px;color:var(--c-text-muted);white-space:nowrap}.step-label.active{color:var(--c-accent);font-weight:500}.step-connector{height:1px;background:var(--c-border);flex:1;margin:0 8px}.form-grid{display:grid;gap:16px}.form-grid-2{grid-template-columns:1fr 1fr}.form-grid-3{grid-template-columns:1fr 1fr 1fr}.field label{display:block;font-size:12px;font-weight:500;color:var(--c-text-muted);margin-bottom:5px;letter-spacing:.02em;text-transform:uppercase}.field label .req{color:var(--c-danger);margin-left:2px}.field input,.field select,.field textarea{width:100%;padding:9px 12px;border:1px solid var(--c-border);border-radius:var(--radius);font-size:14px;color:var(--c-text);background:var(--c-surface);transition:border-color .15s;font-family:inherit}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-light)}.field input.error,.field select.error{border-color:var(--c-danger)}.field .hint{font-size:11px;color:var(--c-text-muted);margin-top:4px}.field .error-msg{font-size:11px;color:var(--c-danger);margin-top:4px}.field textarea{resize:vertical;min-height:80px}.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:var(--radius);font-size:14px;font-weight:500;border:none;cursor:pointer;transition:all .15s;text-decoration:none}.btn-primary{background:var(--c-accent);color:#fff}.btn-primary:hover{background:var(--c-accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-outline{background:transparent;color:var(--c-accent);border:1px solid var(--c-border-strong)}.btn-outline:hover{background:var(--c-accent-light);border-color:var(--c-accent)}.btn-ghost{background:transparent;color:var(--c-text-muted)}.btn-ghost:hover{background:var(--c-bg);color:var(--c-text)}.btn-danger{background:var(--c-danger);color:#fff}.btn-sm{padding:6px 12px;font-size:13px}.btn-lg{padding:12px 24px;font-size:15px}.empresa-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.empresa-card{border:2px solid var(--c-border);border-radius:var(--radius-lg);padding:20px;cursor:pointer;transition:all .15s;text-align:center;background:var(--c-surface)}.empresa-card:hover,.empresa-card.selected{border-color:var(--c-accent);background:var(--c-accent-light)}.empresa-card .emoji{font-size:28px;margin-bottom:8px}.empresa-card .nombre{font-weight:600;font-size:14px}.empresa-card .sub{font-size:12px;color:var(--c-text-muted);margin-top:2px}.tabla{width:100%;border-collapse:collapse;font-size:13px}.tabla th{text-align:left;padding:8px 12px;border-bottom:2px solid var(--c-border);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--c-text-muted);font-weight:600}.tabla td{padding:10px 12px;border-bottom:1px solid var(--c-border)}.tabla tr:hover td{background:var(--c-bg)}.tabla tr.selected td{background:var(--c-accent-light)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:500}.badge-green{background:#d4edda;color:#155724}.badge-yellow{background:#fff3cd;color:#856404}.badge-red{background:#f8d7da;color:#721c24}.badge-gray{background:#e2e0d8;color:#6b6960}.form-actions{display:flex;align-items:center;justify-content:space-between;margin-top:28px;padding-top:20px;border-top:1px solid var(--c-border)}.doc-preview{background:#fffef9;border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:40px 48px;font-family:Times New Roman,Times,serif;font-size:14px;line-height:1.8;white-space:pre-wrap;word-break:break-word;max-height:600px;overflow-y:auto;box-shadow:var(--shadow)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--c-surface);border-radius:var(--radius-lg);padding:28px;width:500px;max-width:95vw;box-shadow:var(--shadow-md)}.modal-title{font-size:17px;font-weight:600;margin-bottom:4px}.modal-sub{font-size:13px;color:var(--c-text-muted);margin-bottom:20px}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.op-list{display:flex;flex-direction:column;gap:10px}.op-row{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);padding:14px 18px;display:flex;align-items:center;gap:16px;transition:box-shadow .15s}.op-row:hover{box-shadow:var(--shadow)}.op-row .op-main{flex:1}.op-row .op-nombre{font-weight:600;font-size:14px}.op-row .op-sub{font-size:12px;color:var(--c-text-muted);margin-top:2px}.alert{padding:12px 16px;border-radius:var(--radius);font-size:13px;display:flex;gap:8px;align-items:flex-start}.alert-info{background:#e8f4fd;color:#0c5460;border:1px solid #bee5eb}.alert-success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.alert-warning{background:#fff3cd;color:#856404;border:1px solid #ffeeba}.alert-error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.badge-blue{background:#e0f0ff;color:#1a6fa8}.badge-purple{background:#ede9fe;color:#5b21b6}
