.layout{display:flex;min-height:100vh}.layout-sidebar{width:230px;flex-shrink:0;background:var(--color-bg-elevated);border-right:1px solid var(--color-border);display:flex;flex-direction:column;padding:20px 14px}.layout-brand{display:flex;align-items:center;gap:8px;padding:0 8px 20px;font-family:var(--font-display);font-weight:600;font-size:16px;color:var(--color-text)}.layout-brand-icon{width:28px;height:28px;border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-accent-text);display:flex;align-items:center;justify-content:center}.layout-nav{display:flex;flex-direction:column;gap:2px}.layout-nav-link{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-weight:500;font-size:14px;text-decoration:none}.layout-nav-link:hover{background:var(--color-bg-hover);text-decoration:none}.layout-nav-link.active{background:var(--color-accent-soft);color:var(--color-accent)}.layout-sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:8px}.layout-main{flex:1;min-width:0;display:flex;flex-direction:column}.layout-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;border-bottom:1px solid var(--color-border)}.layout-user{display:flex;align-items:center;gap:10px}.layout-user-avatar{width:30px;height:30px;border-radius:50%;background:var(--color-bg-secondary);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.layout-content{flex:1;padding:28px;max-width:1100px;width:100%}:root{--color-bg: #faf9f6;--color-bg-elevated: #ffffff;--color-bg-secondary: #f1eee7;--color-bg-hover: #ece8de;--color-border: #e3dfd3;--color-border-strong: #cbc6b8;--color-text: #221f1a;--color-text-secondary: #6e6a5e;--color-text-tertiary: #9c968a;--color-accent: #2b5d52;--color-accent-text: #ffffff;--color-accent-soft: #e4eeea;--cat-teal-bg: #dcefe9;--cat-teal-text: #1f6f5c;--cat-amber-bg: #fbe9cf;--cat-amber-text: #92590a;--cat-coral-bg: #fce1db;--cat-coral-text: #b23b22;--cat-pink-bg: #fbe1ed;--cat-pink-text: #b23368;--cat-gray-bg: #eceae4;--cat-gray-text: #5c584d;--cat-green-bg: #deefdc;--cat-green-text: #2c7a39;--row-urgente-bg: #fcefd2;--row-muy-urgente-bg: #fbdada;--color-danger-bg: #fbdada;--color-danger-text: #ad2a20;--color-success-bg: #deefdc;--color-success-text: #2c7a39;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--font-display: "Outfit", "Segoe UI", sans-serif;--font-body: "Inter", "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "SFMono-Regular", monospace;--shadow-card: 0 1px 2px rgba(34, 31, 26, .06), 0 1px 1px rgba(34, 31, 26, .04)}[data-theme=dark]{--color-bg: #171512;--color-bg-elevated: #221f1b;--color-bg-secondary: #2a2722;--color-bg-hover: #332f28;--color-border: #39352c;--color-border-strong: #4a4537;--color-text: #f2efe9;--color-text-secondary: #b6b0a1;--color-text-tertiary: #847e6f;--color-accent: #62c0a4;--color-accent-text: #14241f;--color-accent-soft: #1f352e;--cat-teal-bg: #1f3d36;--cat-teal-text: #74d6bb;--cat-amber-bg: #3d2f16;--cat-amber-text: #ecb75e;--cat-coral-bg: #3d211b;--cat-coral-text: #f2937a;--cat-pink-bg: #3a1f2c;--cat-pink-text: #f393b7;--cat-gray-bg: #322f2a;--cat-gray-text: #cbc6b8;--cat-green-bg: #20351f;--cat-green-text: #82cc8a;--row-urgente-bg: #3d3016;--row-muy-urgente-bg: #3d1e1e;--color-danger-bg: #3d1e1e;--color-danger-text: #f2887e;--color-success-bg: #20351f;--color-success-text: #82cc8a;--shadow-card: 0 1px 2px rgba(0, 0, 0, .3), 0 1px 1px rgba(0, 0, 0, .2)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:600;margin:0;letter-spacing:-.01em}h1{font-size:22px}h2{font-size:17px}h3{font-size:15px}p{margin:0}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font-family:var(--font-body);font-size:14px;color:var(--color-text)}input,select,textarea{background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:8px 10px;outline:none;transition:border-color .15s ease}input:focus,select:focus,textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}button{background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:8px 14px;cursor:pointer;font-weight:500;transition:background .15s ease,border-color .15s ease}button:hover{background:var(--color-bg-hover)}button:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--color-text);border-color:var(--color-text);color:var(--color-bg)}button.primary:hover{opacity:.85}button.danger{color:var(--color-danger-text);border-color:var(--color-danger-bg)}button.danger:hover{background:var(--color-danger-bg)}button.ghost{background:transparent;border-color:transparent}button.ghost:hover{background:var(--color-bg-hover)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap}.badge-teal{background:var(--cat-teal-bg);color:var(--cat-teal-text)}.badge-amber{background:var(--cat-amber-bg);color:var(--cat-amber-text)}.badge-coral{background:var(--cat-coral-bg);color:var(--cat-coral-text)}.badge-pink{background:var(--cat-pink-bg);color:var(--cat-pink-text)}.badge-gray{background:var(--cat-gray-bg);color:var(--cat-gray-text)}.badge-green{background:var(--cat-green-bg);color:var(--cat-green-text)}.id-tag{display:inline-flex;align-items:center;font-family:var(--font-mono);font-weight:600;font-size:12.5px;padding:2px 8px 2px 9px;border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text-secondary);background:var(--color-bg-secondary)}.card{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.spinner{width:16px;height:16px;border:2px solid var(--color-border-strong);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:1.6s}}
