/* FullCalendar overrides */
.fc { font-family: inherit; font-size: 13px; }
.fc-toolbar-title { font-size: 16px !important; font-weight: 500; }
.fc-button { background: var(--bg-card-2) !important; border-color: var(--border) !important; color: var(--text) !important; font-size: 12px !important; }
.fc-button:hover { border-color: var(--accent) !important; }
.fc-button-active { background: var(--accent) !important; color: #fff !important; }
.fc-daygrid-day { background: var(--bg-card); }
.fc-daygrid-day:hover { background: var(--bg-card-2); cursor: pointer; }
.fc-day-today { background: rgba(100,160,255,0.07) !important; }
.fc-col-header-cell { background: var(--bg-card-2); color: var(--text-dim); font-weight: 500; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; }
.fc-daygrid-day-number { color: var(--text-dim); font-size: 12px; }
.fc-scrollgrid { border-color: var(--border) !important; }
.fc-scrollgrid td, .fc-scrollgrid th { border-color: var(--border) !important; }
.fc-event { cursor: pointer; font-size: 11px; border: none !important; padding: 2px 5px; border-radius: 4px !important; }
:root {
  --bg:#0f1419; --bg-card:#1a2028; --bg-card-2:#232a34; --bg-input:#0d1217;
  --border:#2d3641; --border-active:#3d4a5a;
  --text:#e6e9ef; --text-dim:#8b95a5; --text-faint:#5a6472;
  --accent:#d4af37; --accent-dim:#8a7224;
  --success:#3fa66e; --warn:#d99c3a; --danger:#c75050; --info:#4a8cb8;
}
* { box-sizing:border-box; margin:0; padding:0; }
body { background:var(--bg); color:var(--text); font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; font-size:14px; line-height:1.5; min-height:100vh; }

/* AUTH */
.auth-screen { display:flex; align-items:center; justify-content:center; min-height:100vh; padding:20px; }
.auth-card { background:var(--bg-card); border:1px solid var(--border); border-radius:12px; padding:32px; width:100%; max-width:400px; }
.auth-logo { text-align:center; margin-bottom:24px; }
.auth-logo h1 { font-size:30px; font-weight:400; letter-spacing:1px; }
.auth-logo h1 em { font-style:normal; color:var(--accent); }
.auth-logo p { color:var(--text-dim); font-size:11px; margin-top:6px; letter-spacing:1.5px; text-transform:uppercase; }
.auth-tabs { display:flex; gap:4px; margin-bottom:18px; border-bottom:1px solid var(--border); }
.auth-tab { padding:8px 14px; cursor:pointer; color:var(--text-dim); border-bottom:2px solid transparent; font-size:13px; }
.auth-tab.active { color:var(--accent); border-bottom-color:var(--accent); }
.auth-form { display:none; }
.auth-form.active { display:block; }
label { display:block; font-size:12px; color:var(--text-dim); margin-bottom:6px; margin-top:12px; }
input, select, textarea { width:100%; background:var(--bg-input); border:1px solid var(--border); color:var(--text); padding:10px 12px; border-radius:6px; font-size:14px; font-family:inherit; }
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--accent-dim); }
textarea { resize:vertical; min-height:80px; line-height:1.5; }
.btn { background:var(--bg-card-2); border:1px solid var(--border); color:var(--text); padding:8px 14px; border-radius:6px; cursor:pointer; font-size:13px; display:inline-flex; align-items:center; gap:6px; font-family:inherit; }
.btn:hover:not(:disabled) { border-color:var(--border-active); }
.btn:disabled { opacity:0.5; cursor:not-allowed; }
.btn-primary { background:var(--accent); color:#1a1a1a; border-color:var(--accent); font-weight:500; }
.btn-primary:hover:not(:disabled) { background:#c5a233; }
.btn-danger { background:transparent; color:var(--danger); border-color:var(--danger); }
.btn-success { background:transparent; color:var(--success); border-color:var(--success); }
.btn-block { width:100%; justify-content:center; padding:11px; margin-top:18px; }
.btn-sm { padding:4px 10px; font-size:12px; }
.auth-msg { font-size:12px; margin-top:12px; min-height:18px; text-align:center; }
.auth-msg.error { color:var(--danger); }
.auth-msg.success { color:var(--success); }
.auth-hint { color:var(--text-faint); font-size:11px; text-align:center; margin-top:18px; line-height:1.6; }

/* APP */
.app { display:none; min-height:100vh; }
.app.active { display:flex; flex-direction:column; }

.topbar { background:var(--bg-card); border-bottom:1px solid var(--border); padding:10px 16px; display:flex; align-items:center; gap:12px; position:sticky; top:0; z-index:100; }
.menu-btn { background:none; border:none; color:var(--text); font-size:22px; cursor:pointer; padding:4px 8px; }
.brand { font-size:18px; font-weight:400; letter-spacing:1px; flex:1; }
.brand em { font-style:normal; color:var(--accent); }
.escribania-tag { font-size:11px; color:var(--text-dim); margin-left:8px; }
.user-pill { display:flex; align-items:center; gap:8px; background:var(--bg-card-2); padding:6px 10px; border-radius:20px; font-size:12px; }
.user-avatar { width:24px; height:24px; border-radius:50%; background:var(--accent); color:#1a1a1a; display:flex; align-items:center; justify-content:center; font-weight:500; font-size:11px; }
.user-info { display:flex; flex-direction:column; line-height:1.2; }
.user-name { font-weight:500; }
.user-role { color:var(--text-dim); font-size:10px; text-transform:uppercase; letter-spacing:0.5px; }
.logout-btn { background:none; border:none; color:var(--text-dim); cursor:pointer; padding:4px; font-size:16px; }

.layout { display:flex; flex:1; }
.sidebar { width:240px; background:var(--bg-card); border-right:1px solid var(--border); padding:16px 0; flex-shrink:0; }
.sidebar-section { margin-bottom:8px; }
.sidebar-label { padding:8px 16px; font-size:10px; color:var(--text-faint); text-transform:uppercase; letter-spacing:1px; }
.nav-item { display:flex; align-items:center; gap:10px; padding:10px 16px; cursor:pointer; color:var(--text-dim); border-left:3px solid transparent; font-size:13px; }
.nav-item:hover { background:var(--bg-card-2); color:var(--text); }
.nav-item.active { background:var(--bg-card-2); color:var(--accent); border-left-color:var(--accent); }
.nav-item .icon { width:18px; text-align:center; opacity:0.8; }

.main { flex:1; padding:20px; overflow-x:hidden; max-width:100%; }
.page { display:none; }
.page.active { display:block; }
.page-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; flex-wrap:wrap; gap:12px; }
.page-title { font-size:22px; font-weight:400; }
.page-subtitle { color:var(--text-dim); font-size:13px; margin-top:2px; }

.card { background:var(--bg-card); border:1px solid var(--border); border-radius:8px; padding:16px; margin-bottom:12px; }
.card-title { font-size:14px; font-weight:500; margin-bottom:12px; color:var(--text); display:flex; align-items:center; justify-content:space-between; gap:8px; }

.form-row { margin-bottom:12px; }
.form-grid { display:grid; gap:12px; }
.form-grid.cols-2 { grid-template-columns:1fr 1fr; }
.form-grid.cols-3 { grid-template-columns:1fr 1fr 1fr; }
.form-grid.cols-4 { grid-template-columns:2fr 1.2fr 0.8fr auto; }
@media (max-width:700px) { .form-grid.cols-2,.form-grid.cols-3,.form-grid.cols-4 { grid-template-columns:1fr; } }

.stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; margin-bottom:20px; }
.stat-card { background:var(--bg-card); border:1px solid var(--border); border-radius:8px; padding:14px; }
.stat-label { font-size:11px; color:var(--text-dim); text-transform:uppercase; letter-spacing:1px; margin-bottom:6px; }
.stat-value { font-size:26px; font-weight:400; }
.stat-value.success { color:var(--success); }
.stat-value.warn { color:var(--warn); }
.stat-value.danger { color:var(--danger); }

.tipo-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.tipo-card { background:var(--bg-card); border:1px solid var(--border); border-radius:8px; padding:16px; cursor:pointer; transition:border-color 0.15s; }
.tipo-card:hover { border-color:var(--accent-dim); }
.tipo-card .tipo-icon { font-size:22px; margin-bottom:8px; opacity:0.7; }
.tipo-card .tipo-name { font-weight:500; font-size:14px; margin-bottom:4px; }
.tipo-card .tipo-desc { font-size:12px; color:var(--text-dim); line-height:1.4; }

.wizard-steps { display:flex; gap:4px; margin-bottom:20px; overflow-x:auto; padding-bottom:4px; }
.wizard-step { background:var(--bg-card); border:1px solid var(--border); padding:8px 14px; border-radius:6px; font-size:12px; color:var(--text-dim); white-space:nowrap; flex-shrink:0; cursor:pointer; }
.wizard-step.active { background:var(--accent); color:#1a1a1a; border-color:var(--accent); font-weight:500; }
.wizard-step.done { color:var(--success); border-color:var(--success); }
.wizard-actions { display:flex; gap:8px; justify-content:space-between; margin-top:20px; padding-top:16px; border-top:1px solid var(--border); }

.table-wrap { overflow-x:auto; border:1px solid var(--border); border-radius:8px; }
table { width:100%; border-collapse:collapse; }
th { background:var(--bg-card-2); text-align:left; padding:10px 12px; font-size:11px; color:var(--text-dim); text-transform:uppercase; letter-spacing:0.8px; font-weight:500; border-bottom:1px solid var(--border); }
td { padding:10px 12px; border-bottom:1px solid var(--border); font-size:13px; }
tr:last-child td { border-bottom:none; }
tr:hover td { background:var(--bg-card-2); }

.badge { display:inline-block; padding:2px 8px; border-radius:10px; font-size:11px; font-weight:500; }
.badge.success { background:rgba(63,166,110,0.15); color:var(--success); }
.badge.warn { background:rgba(217,156,58,0.15); color:var(--warn); }
.badge.danger { background:rgba(199,80,80,0.15); color:var(--danger); }
.badge.info { background:rgba(74,140,184,0.15); color:var(--info); }
.badge.dim { background:var(--bg-card-2); color:var(--text-dim); }

.alert { background:var(--bg-card); border-left:3px solid var(--info); padding:10px 14px; border-radius:4px; margin-bottom:8px; display:flex; align-items:center; gap:10px; font-size:13px; }
.alert.warn { border-left-color:var(--warn); }
.alert.danger { border-left-color:var(--danger); }
.alert.success { border-left-color:var(--success); }
.alert-body { flex:1; }
.alert-meta { font-size:11px; color:var(--text-faint); margin-top:2px; }

.parte-block { background:var(--bg-card-2); border:1px solid var(--border); border-radius:6px; padding:12px; margin-bottom:10px; }
.parte-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.parte-title { font-size:13px; font-weight:500; color:var(--accent); }

.output-area { background:var(--bg-input); border:1px solid var(--border); border-radius:6px; padding:16px; font-family:'Georgia',serif; font-size:13px; line-height:1.7; max-height:500px; overflow-y:auto; white-space:pre-wrap; }
.output-actions { display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }
.output-warning { background:rgba(199,80,80,0.12); border:1px solid var(--danger); border-radius:6px; padding:8px 12px; font-size:12px; color:var(--danger); margin-bottom:4px; }
.output-warning.ok { background:rgba(63,166,110,0.12); border-color:var(--success); color:var(--success); }

.spinner { display:inline-block; width:14px; height:14px; border:2px solid var(--text-dim); border-top-color:var(--accent); border-radius:50%; animation:spin 0.8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.spinner-lg { width:24px; height:24px; border-width:3px; }
.loading-screen { position:fixed; inset:0; background:var(--bg); display:flex; align-items:center; justify-content:center; flex-direction:column; gap:12px; z-index:9999; }
.loading-screen.hidden { display:none; }

@media (max-width:768px) {
  .sidebar { position:fixed; left:0; top:49px; height:calc(100vh - 49px); z-index:90; transform:translateX(-100%); transition:transform 0.2s; }
  .sidebar.open { transform:translateX(0); }
  .sidebar-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:80; }
  .sidebar-overlay.show { display:block; }
  .main { padding:14px; }
  .user-info, .escribania-tag { display:none; }
}

.toast { position:fixed; bottom:20px; right:20px; background:var(--bg-card); border:1px solid var(--border); padding:12px 18px; border-radius:6px; box-shadow:0 4px 12px rgba(0,0,0,0.3); z-index:1000; animation:slideIn 0.2s; max-width:320px; font-size:13px; }
.toast.success { border-left:3px solid var(--success); }
.toast.danger { border-left:3px solid var(--danger); }
@keyframes slideIn { from { transform:translateX(100%); opacity:0; } }

.section-divider { height:1px; background:var(--border); margin:16px 0; }
.text-dim { color:var(--text-dim); }
.text-success { color:var(--success); }
.text-danger { color:var(--danger); }
.text-warn { color:var(--warn); }
.mono { font-family:'SF Mono',Monaco,monospace; font-size:12px; }
.right { text-align:right; }
.uso-bar { background:var(--bg-input); height:8px; border-radius:4px; overflow:hidden; margin-top:6px; }
.uso-fill { height:100%; background:var(--success); transition:width 0.3s; }
.uso-fill.warn { background:var(--warn); }
.uso-fill.danger { background:var(--danger); }
