:root,[data-tema=oscuro]{--bg-base: #0a0a0a;--bg-card: #0f0f0f;--bg-input: #0a0a0a;--bg-elevated: #1a1a1a;--border-soft: #1a1a1a;--border-medium: #222;--border-strong: #333;--text-base: #fff;--text-soft: #aaa;--text-muted: #888;--text-dim: #666;--text-faint: #444;--text-ghost: #333;--accent: #4dd0ff;--accent-soft: rgba(77, 208, 255, .1);--accent-border: rgba(77, 208, 255, .3);--danger: #ff6b6b;--overlay: rgba(0, 0, 0, .85);--scheme: dark}[data-tema=claro]{--bg-base: #fafafa;--bg-card: #fff;--bg-input: #fff;--bg-elevated: #f0f0f0;--border-soft: #ececec;--border-medium: #d4d4d4;--border-strong: #bbb;--text-base: #0a0a0a;--text-soft: #2a2a2a;--text-muted: #555;--text-dim: #888;--text-faint: #aaa;--text-ghost: #ccc;--accent: #0891b2;--accent-soft: rgba(8, 145, 178, .08);--accent-border: rgba(8, 145, 178, .3);--danger: #dc2626;--overlay: rgba(0, 0, 0, .4);--scheme: light}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg-base);color:var(--text-base);font-family:Inter Tight,sans-serif;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);overflow-x:hidden;color-scheme:var(--scheme);transition:background .3s ease,color .3s ease}body{min-height:100vh;min-height:100dvh}input,textarea,select,button{font-family:inherit;font-size:16px}button{cursor:pointer;border:none;background:none;color:inherit}button:active{transform:scale(.98)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--border-medium)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}input,textarea{font-family:JetBrains Mono,monospace;background:var(--bg-card);border:1px solid var(--border-medium);color:var(--text-base);padding:12px 14px;font-size:14px;outline:none;transition:border-color .15s,background .3s ease;width:100%;border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}input:focus,textarea:focus{border-color:var(--accent)}select{background:var(--bg-card);color:var(--text-base);border:1px solid var(--border-medium)}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){button{min-height:44px}}
