@import"https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&family=Mulish:wght@400;500;600;700;800&display=swap";:root{--brand-blue: #1077bb;--brand-green: #74ba32;--brand-blue-deep: #036fad;--blue-50: #e9f4fb;--blue-100: #cbe4f5;--blue-200: #9ccdec;--blue-300: #5aa9dc;--blue-400: #2b8fcd;--blue-500: #1077bb;--blue-600: #036fad;--blue-700: #045d90;--blue-800: #064a72;--blue-900: #08324d;--green-50: #f0f8e6;--green-100: #ddefc6;--green-200: #bfe197;--green-300: #9fd166;--green-400: #86c548;--green-500: #74ba32;--green-600: #63a127;--green-700: #4f811f;--green-800: #3c6118;--green-900: #2a440f;--neutral-0: #ffffff;--neutral-50: #f6f8fa;--neutral-100: #eef1f4;--neutral-200: #dfe4e9;--neutral-300: #c6cdd5;--neutral-400: #97a1ad;--neutral-500: #6b7684;--neutral-600: #4d5763;--neutral-700: #38414b;--neutral-800: #232a32;--neutral-900: #141920;--success: #74ba32;--success-bg: #f0f8e6;--warning: #e8a020;--warning-bg: #fdf3e0;--danger: #d64545;--danger-bg: #fbeaea;--info: #1077bb;--info-bg: #e9f4fb;--color-primary: var(--blue-500);--color-primary-hover: var(--blue-600);--color-primary-active: var(--blue-700);--color-accent: var(--green-500);--color-accent-hover: var(--green-600);--text-strong: var(--neutral-900);--text-body: var(--neutral-700);--text-muted: var(--neutral-500);--text-on-brand: var(--neutral-0);--text-link: var(--blue-600);--surface-page: var(--neutral-50);--surface-card: var(--neutral-0);--surface-sunken: var(--neutral-100);--surface-brand: var(--blue-500);--surface-brand-deep: var(--blue-800);--surface-accent: var(--green-500);--border-subtle: var(--neutral-200);--border-strong: var(--neutral-300);--border-brand: var(--blue-500);--gradient-brand: linear-gradient(135deg, var(--blue-500) 0%, var(--blue-800) 100%);--gradient-brand-green: linear-gradient(135deg, var(--green-400) 0%, var(--green-600) 100%)}:root{--font-display: "Montserrat", "Segoe UI", system-ui, sans-serif;--font-body: "Mulish", "Segoe UI", system-ui, sans-serif;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-extrabold: 800;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.125rem;--text-lg: 1.375rem;--text-xl: 1.75rem;--text-2xl: 2.25rem;--text-3xl: 3rem;--text-4xl: 3.75rem;--leading-tight: 1.1;--leading-snug: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.7;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .04em;--tracking-caps: .12em;--role-eyebrow: var(--fw-bold) var(--text-sm)/var(--leading-snug) var(--font-body);--role-display: var(--fw-extrabold) var(--text-3xl)/var(--leading-tight) var(--font-display);--role-h1: var(--fw-extrabold) var(--text-2xl)/var(--leading-tight) var(--font-display);--role-h2: var(--fw-bold) var(--text-xl)/var(--leading-snug) var(--font-display);--role-h3: var(--fw-bold) var(--text-lg)/var(--leading-snug) var(--font-display);--role-body: var(--fw-regular) var(--text-base)/var(--leading-relaxed) var(--font-body)}:root{--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 2.5rem;--space-8: 3rem;--space-9: 4rem;--space-10: 6rem;--radius-xs: 4px;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 22px;--radius-xl: 32px;--radius-pill: 999px;--container-max: 1200px;--container-pad: var(--space-5);--section-gap: var(--space-10)}:root{--shadow-xs: 0 1px 2px rgba(8, 50, 77, .06);--shadow-sm: 0 2px 8px rgba(8, 50, 77, .08);--shadow-md: 0 8px 24px rgba(8, 50, 77, .1);--shadow-lg: 0 18px 44px rgba(8, 50, 77, .14);--shadow-brand: 0 12px 28px rgba(16, 119, 187, .3);--shadow-green: 0 12px 28px rgba(116, 186, 50, .3);--ring-primary: 0 0 0 3px rgba(16, 119, 187, .35);--ring-accent: 0 0 0 3px rgba(116, 186, 50, .35);--ease-standard: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-fast: .14s;--dur-base: .22s;--dur-slow: .38s;--transition-base: all var(--dur-base) var(--ease-standard)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font:var(--role-body);color:var(--text-body);background:var(--surface-page);overflow-x:hidden}button,a{touch-action:manipulation}h1,h2,h3{font-family:var(--font-display);color:var(--text-strong);margin:0}.app-shell{display:flex;min-height:100dvh}.sidebar{width:240px;flex-shrink:0;background:var(--surface-card);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;padding:var(--space-5) 0}.sidebar-brand{display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-5) var(--space-5);margin-bottom:var(--space-3);border-bottom:1px solid var(--border-subtle)}.sidebar-brand img{flex:1;min-width:0;height:auto;display:block}.sidebar-close{display:none;flex-shrink:0;width:32px;height:32px;align-items:center;justify-content:center;border:none;background:none;font-size:1.4rem;line-height:1;color:var(--text-muted);cursor:pointer}.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto}.sidebar-link{display:flex;align-items:center;min-height:44px;padding:8px var(--space-5);color:var(--text-muted);text-decoration:none;font-size:var(--text-sm);font-weight:var(--fw-medium);border-left:3px solid transparent}.sidebar-link:hover{background:var(--surface-sunken);color:var(--text-body)}.sidebar-link.active{background:var(--blue-50);color:var(--color-primary);font-weight:var(--fw-bold);border-left-color:var(--color-primary)}.sidebar-footer{padding:var(--space-4) var(--space-5) 0;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted)}.app-content{flex:1;min-width:0;padding:var(--space-6) var(--space-6);max-width:var(--container-max)}.mobile-topbar{display:none}@media (max-width: 767px){.app-shell{flex-direction:column}.mobile-topbar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-card);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:30}.mobile-menu-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-body);cursor:pointer}.mobile-menu-btn:focus-visible{outline:none;box-shadow:var(--ring-primary)}.mobile-topbar-logo{height:26px;width:auto}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#08324d80;z-index:40}.sidebar{position:fixed;top:0;left:0;bottom:0;width:82vw;max-width:300px;transform:translate(-100%);transition:transform var(--dur-slow) var(--ease-standard);z-index:50;box-shadow:var(--shadow-lg)}.sidebar.open{transform:translate(0)}.sidebar-close{display:flex}.app-content{padding:var(--space-4) var(--space-4)}}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-5)}.page-header h1{font:var(--role-h1);color:var(--text-strong)}.card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:var(--space-5);margin-bottom:var(--space-5)}.card h2{font:var(--role-h3);margin-bottom:var(--space-3)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:var(--space-5)}.table{width:100%;border-collapse:collapse;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;margin-bottom:0}.table th,.table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border-subtle);font-size:var(--text-sm)}.table th{background:var(--surface-sunken);font-weight:var(--fw-bold);color:var(--text-muted);text-transform:uppercase;font-size:var(--text-xs);letter-spacing:var(--tracking-wide)}.table tr:last-child td{border-bottom:none}.table-empty{text-align:center;color:var(--text-muted);padding:var(--space-6)}.table-actions{display:flex;align-items:center;gap:var(--space-4);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--border-strong);background:var(--surface-card);border-radius:var(--radius-pill);padding:9px 20px;font:var(--fw-semibold) var(--text-sm)/1 var(--font-body);cursor:pointer;color:var(--text-body);transition:var(--transition-base)}.btn:hover{background:var(--surface-sunken);border-color:var(--border-strong)}.btn:focus-visible{outline:none;box-shadow:var(--ring-primary)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--text-on-brand)}.btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:var(--shadow-brand)}.btn-link{display:inline;min-height:0;border:none;background:none;border-radius:var(--radius-xs);color:var(--text-link);padding:10px 2px}.btn-link:hover{text-decoration:underline;background:none}.btn-danger{color:var(--danger)}.search-input,select,input:not([type=checkbox]):not([type=radio]),textarea{font-family:var(--font-body);font-size:var(--text-base);min-height:44px;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-body)}textarea{min-height:0}input[type=checkbox],input[type=radio]{width:20px;height:20px;accent-color:var(--color-primary)}.search-input:focus,select:focus,input:focus,textarea:focus{outline:none;border-color:var(--border-brand);box-shadow:var(--ring-primary)}.search-input{width:100%;max-width:320px;margin-bottom:var(--space-5);display:block}.diario-selectors{display:flex;gap:var(--space-4);flex-wrap:wrap;align-items:flex-end;margin-bottom:var(--space-5)}.diario-selectors label{flex:1 1 160px;min-width:140px}.diario-selectors select,.diario-selectors input{width:100%}.diario-selectors label,.form label{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--text-muted)}.form{display:flex;flex-direction:column;gap:var(--space-4)}.form-narrow{max-width:420px}.form-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-2)}.inline-form{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-3)}.inline-form select,.inline-form input{flex:1 1 140px;min-width:120px}.new-item-form{background:var(--surface-sunken);padding:var(--space-3);border-radius:var(--radius-md)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-3)}.alert-error{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger)}.alert-success{background:var(--success-bg);color:var(--green-700);border:1px solid var(--success)}.hint{color:var(--text-muted);font-size:var(--text-sm)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#08324d80;display:flex;align-items:center;justify-content:center;z-index:60;padding:var(--space-5)}.modal{background:var(--surface-card);border-radius:var(--radius-lg);width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.modal-header h3{font:var(--role-h3)}.modal-close{border:none;background:none;font-size:1.3rem;cursor:pointer;color:var(--text-muted)}.modal-body{padding:var(--space-5)}@media (max-width: 480px){.modal-backdrop{padding:var(--space-3)}.modal-header{padding:var(--space-3) var(--space-4)}.modal-body{padding:var(--space-4)}}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--gradient-brand);padding:var(--space-5)}.login-card{background:var(--surface-card);border-radius:var(--radius-lg);padding:var(--space-6);width:100%;max-width:380px;display:flex;flex-direction:column;gap:var(--space-4);box-shadow:var(--shadow-lg)}.login-logo{width:140px;max-width:60%;height:auto;margin:0 auto var(--space-2);display:block}@media (max-width: 400px){.login-page{padding:var(--space-3)}.login-card{padding:var(--space-5)}}.login-card h1{font:var(--role-h2);text-align:center}.login-subtitle{margin:-8px 0 4px;color:var(--text-muted);font-size:var(--text-sm);text-align:center}.page-loading{padding:var(--space-7);text-align:center;color:var(--text-muted)}
