*{box-sizing:border-box}body{color:#1a1a2e;background:#f5f5f7;margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif}#root{min-height:100vh}.app-shell{min-height:100vh;display:flex}.sidebar{color:#fff;background:#2f2b8f;flex-direction:column;flex-shrink:0;width:240px;padding:24px 16px;display:flex}.brand-title{font-size:18px;font-weight:700}.brand-sub{opacity:.75;margin-top:2px;margin-bottom:28px;font-size:13px}.sidebar nav{flex-direction:column;flex:1;gap:4px;display:flex}.sidebar nav a{color:#e4e2ff;border-radius:8px;padding:10px 12px;font-size:14px;text-decoration:none}.sidebar nav a:hover{background:#ffffff14}.sidebar nav a.active{color:#2f2b8f;background:#fff;font-weight:600}.logout-btn{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff4d;border-radius:8px;padding:8px 12px;font-size:13px}.logout-btn:hover{background:#ffffff1a}.main-area{background:#f5f5f7;flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:#fff;border-bottom:1px solid #e5e5ea;justify-content:flex-end;padding:14px 32px;display:flex}.topbar-user{align-items:center;gap:10px;display:flex}.avatar{color:#fff;background:#2f2b8f;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:600;display:flex}.user-email{color:#1a1a2e;font-size:14px;font-weight:600}.user-role{color:#888;font-size:12px}.content{flex:1;padding:32px}.page-header{border-left:4px solid #2f2b8f;margin-bottom:24px;padding-left:14px}.page-header h1{margin:0;font-size:22px}.page-header p{color:#666;margin:4px 0 0;font-size:14px}.card{background:#fff;border-radius:10px;margin-bottom:20px;padding:20px 24px;box-shadow:0 1px 3px #0000000f}.card h2{margin:0 0 14px;font-size:16px}.card-header-row{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.filtro-fecha{color:#555;align-items:center;gap:8px;font-size:13px;display:flex}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid #eee;padding:8px 10px}th{color:#888;text-transform:uppercase;font-size:12px;font-weight:600}.empty{color:#999;font-size:14px}.inline-form{flex-wrap:wrap;gap:8px;display:flex}.inline-form input{border:1px solid #ddd;border-radius:6px;padding:8px 10px;font-size:14px}.menu-form,.config-form{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.menu-form label,.config-form label{color:#555;flex-direction:column;gap:4px;font-size:13px;display:flex}.checkbox-label{align-items:center;flex-direction:row!important;gap:8px!important}.menu-form input,.menu-form textarea,.config-form input,.config-form textarea{border:1px solid #ddd;border-radius:6px;padding:8px 10px;font-family:inherit;font-size:14px}.form-actions{grid-column:1/-1;align-items:center;gap:12px;display:flex}button{color:#fff;cursor:pointer;background:#2f2b8f;border:none;border-radius:7px;padding:9px 16px;font-size:14px}button:hover{background:#241f75}button.secondary{color:#333;background:#eee}button.secondary:hover{background:#ddd}button:disabled{opacity:.6;cursor:default}.link-btn{color:#2f2b8f;cursor:pointer;background:0 0;border:none;padding:0 6px;font-size:13px}.link-btn:hover{background:0 0;text-decoration:underline}.link-btn.danger{color:#c0392b}.saved-msg{color:#2e8b57;font-size:13px}.stats-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.stat-card{text-align:center;background:#fff;border-radius:10px;padding:24px;box-shadow:0 1px 3px #0000000f}.stat-value{color:#2f2b8f;font-size:34px;font-weight:700}.stat-label{color:#666;margin-top:6px;font-size:13px}.loading-screen{color:#666;justify-content:center;align-items:center;height:100vh;display:flex}.login-page{background:#2f2b8f;justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:#fff;border-radius:12px;flex-direction:column;gap:14px;width:320px;padding:36px 32px;display:flex;box-shadow:0 10px 30px #0003}.login-card h1{color:#2f2b8f;margin:0}.login-subtitle{color:#888;margin:-8px 0 8px;font-size:13px}.login-card label{color:#555;flex-direction:column;gap:4px;font-size:13px;display:flex}.login-card input{border:1px solid #ddd;border-radius:7px;padding:10px;font-size:14px}.login-error{color:#c0392b;font-size:13px}.aforo-info{color:#555;margin:10px 0 0;font-size:13px}.aforo-warning{color:#c0392b;margin:10px 0 0;font-size:13px;font-weight:600}
