@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Merriweather:wght@400;700&display=swap";
:root{--color-primary:#1e3a5f;--color-primary-light:#2a5a8f;--color-primary-dark:#0f2440;--color-primary-50:#e8eef5;--color-primary-100:#c5d5e8;--color-primary-200:#9db8d4;--color-gray-50:#f8fafc;--color-gray-100:#f1f5f9;--color-gray-200:#e2e8f0;--color-gray-300:#cbd5e1;--color-gray-400:#94a3b8;--color-gray-500:#64748b;--color-gray-600:#475569;--color-gray-700:#334155;--color-gray-800:#1e293b;--color-gray-900:#0f172a;--color-success:#16a34a;--color-success-light:#dcfce7;--color-warning:#d97706;--color-warning-light:#fef3c7;--color-danger:#dc2626;--color-danger-light:#fee2e2;--color-info:#2563eb;--color-info-light:#dbeafe;--color-bg:#fff;--color-bg-secondary:var(--color-gray-50);--color-bg-sidebar:var(--color-primary-dark);--color-surface:#fff;--color-surface-hover:var(--color-gray-50);--color-border:var(--color-gray-200);--color-border-light:var(--color-gray-100);--color-text:var(--color-gray-900);--color-text-secondary:var(--color-gray-600);--color-text-muted:var(--color-gray-400);--color-text-inverse:#fff;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif:"Merriweather", Georgia, "Times New Roman", serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--sidebar-width:260px;--sidebar-collapsed-width:72px;--header-height:64px;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;overflow-x:hidden}body{font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-bg-secondary);min-height:100vh;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit}img{max-width:100%;height:auto}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;font-weight:500;line-height:1.5;display:inline-flex}.btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover{background-color:var(--color-primary-light)}.btn-primary:active{background-color:var(--color-primary-dark)}.btn-secondary{background-color:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background-color:var(--color-surface-hover);border-color:var(--color-gray-300)}.btn-danger{background-color:var(--color-danger);color:var(--color-text-inverse)}.btn-danger:hover{background-color:#b91c1c}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--text-base)}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.card-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--text-lg);color:var(--color-text);font-weight:600}.card-subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.input-group{gap:var(--space-1);flex-direction:column;display:flex}.input-label{font-size:var(--text-sm);color:var(--color-text);font-weight:500}.input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-50)}.input::placeholder{color:var(--color-text-muted)}.input-error{border-color:var(--color-danger)}.input-error:focus{box-shadow:0 0 0 3px var(--color-danger-light)}.error-message{font-size:var(--text-xs);color:var(--color-danger);margin-top:var(--space-1)}.textarea-folio{font-family:var(--font-serif);font-size:var(--text-base);resize:vertical;min-height:200px;line-height:1.8}.badge{padding:2px var(--space-2);font-size:var(--text-xs);border-radius:9999px;align-items:center;font-weight:500;display:inline-flex}.badge-success{background:var(--color-success-light);color:var(--color-success)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning)}.badge-danger{background:var(--color-danger-light);color:var(--color-danger)}.badge-info{background:var(--color-info-light);color:var(--color-info)}.badge-neutral{background:var(--color-gray-100);color:var(--color-gray-600)}.stat-card{gap:var(--space-1);flex-direction:column;display:flex}.stat-value{font-size:var(--text-3xl);color:var(--color-text);font-weight:700;line-height:1.2}.stat-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.progress-bar{background:var(--color-gray-200);border-radius:9999px;width:100%;height:8px;overflow:hidden}.progress-bar-fill{background:var(--color-primary);height:100%;transition:width var(--transition-slow);border-radius:9999px}.progress-bar-fill.warning{background:var(--color-warning)}.progress-bar-fill.danger{background:var(--color-danger)}.table-container{overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th{text-align:left;padding:var(--space-3) var(--space-4);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);border-bottom:2px solid var(--color-border);font-weight:600}.table td{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);border-bottom:1px solid var(--color-border-light);color:var(--color-text)}.table tr:hover td{background:var(--color-surface-hover)}.empty-state{padding:var(--space-12) var(--space-8);text-align:center;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state-icon{width:64px;height:64px;margin-bottom:var(--space-4);opacity:.4}.empty-state-title{font-size:var(--text-lg);color:var(--color-text-secondary);margin-bottom:var(--space-2);font-weight:600}.dashboard-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--color-bg-sidebar);color:var(--color-text-inverse);z-index:40;transition:transform var(--transition-slow);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-logo{padding:var(--space-6);border-bottom:1px solid #ffffff1a}.sidebar-logo h1{font-size:var(--text-lg);letter-spacing:-.02em;font-weight:700}.sidebar-logo span{font-size:var(--text-xs);color:#ffffff80;margin-top:2px;display:block}.sidebar-nav{padding:var(--space-4) var(--space-3);gap:var(--space-1);flex-direction:column;flex:1;display:flex}.sidebar-section-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:#fff6;padding:var(--space-4) var(--space-3) var(--space-2)}.sidebar-link{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);color:#ffffffb3;transition:all var(--transition-fast);font-weight:400;display:flex}.sidebar-link:hover{color:#fff;background:#ffffff1a}.sidebar-link.active{color:#fff;background:#ffffff26;font-weight:500}.sidebar-link svg{flex-shrink:0;width:20px;height:20px}.sidebar-footer{padding:var(--space-4) var(--space-3);border-top:1px solid #ffffff1a}.sidebar-user{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);display:flex}.sidebar-user-avatar{background:var(--color-primary-light);width:36px;height:36px;font-weight:600;font-size:var(--text-sm);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-user-info{overflow:hidden}.sidebar-user-name{font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.sidebar-user-role{font-size:var(--text-xs);color:#ffffff80}.main-header{height:var(--header-height);background:var(--color-surface);border-bottom:1px solid var(--color-border-light);padding:0 var(--space-6);z-index:30;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.main-header-title{font-size:var(--text-xl);color:var(--color-text);font-weight:600}.main-header-actions{align-items:center;gap:var(--space-3);display:flex}.main-content{margin-left:var(--sidebar-width);flex:1;min-height:100vh;overflow-x:hidden}.page-content{padding:var(--space-6);max-width:1400px;overflow-x:hidden}.stats-grid{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.grid-2{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.sidebar-overlay{z-index:35;background:#00000080;display:none;position:fixed;inset:0}.sidebar-overlay.visible{display:block}.mobile-menu-btn{padding:var(--space-2);color:var(--color-text);display:none}.auth-container{background:var(--color-bg-secondary);min-height:100vh;padding:var(--space-4);justify-content:center;align-items:center;display:flex}.auth-card{background:var(--color-surface);border-radius:var(--radius-xl);width:100%;max-width:420px;padding:var(--space-8);box-shadow:var(--shadow-lg)}.auth-logo{text-align:center;margin-bottom:var(--space-8)}.auth-logo h1{font-size:var(--text-2xl);color:var(--color-primary);font-weight:700}.auth-logo p{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.auth-form{gap:var(--space-4);flex-direction:column;display:flex}.auth-footer{text-align:center;margin-top:var(--space-6);font-size:var(--text-sm);color:var(--color-text-secondary)}.auth-footer a{color:var(--color-primary);font-weight:500}.auth-footer a:hover{text-decoration:underline}@media (max-width:1024px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.sidebar{display:none}.sidebar-overlay{display:none!important}.main-content{margin-left:0}.mobile-menu-btn{display:none}.main-header{padding:0 var(--space-3)}.page-content{padding:var(--space-3)}.stats-grid,.grid-2,.grid-3{grid-template-columns:1fr}.bottom-nav{background:var(--color-surface);border-top:1px solid var(--color-border);z-index:40;padding:4px 0 env(safe-area-inset-bottom,4px);display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{color:var(--color-text-muted);transition:color var(--transition-fast);flex-direction:column;flex:1;align-items:center;gap:1px;min-width:0;padding:4px 0;font-size:10px;display:flex}.bottom-nav-item.active{color:var(--color-primary)}.bottom-nav-item svg{width:20px;height:20px}.bottom-nav-item span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.main-content{padding-bottom:70px}}@media (min-width:769px){.bottom-nav{display:none}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn var(--transition-slow) ease forwards}@keyframes slideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.animate-slide-in{animation:slideIn var(--transition-slow) ease forwards}.tooltip-container .tooltip-content{display:none}.tooltip-container:hover .tooltip-content{animation:.2s ease-out fadeIn;display:block}.skeleton{background:linear-gradient(90deg, var(--color-gray-200) 25%, var(--color-gray-100) 50%, var(--color-gray-200) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}:root{--book-page-bg:#fffef9;--book-page-shadow:#00000014;--book-spine-shadow:#0000001f;--book-bg:#e8e4df;--book-page-width:595px;--book-page-height:770px;--font-typewriter:"Courier Prime", "Courier New", monospace}.book-viewer-container{background:var(--book-bg);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-4);touch-action:pan-y pinch-zoom;flex-direction:column;align-items:center;min-height:600px;display:flex;position:relative;overflow-x:hidden}.book-viewer-container .stf__parent{touch-action:none;margin:0 auto}.book-viewer-container .stf__wrapper{border-radius:2px 6px 6px 2px;box-shadow:0 4px 20px #00000026,0 1px 4px #0000001a}.book-page{background:var(--book-page-bg);font-family:var(--font-typewriter);color:#1a1a1a;border:1px solid #0000000f;flex-direction:column;padding:40px 48px 60px;font-size:13px;line-height:1.75;display:flex;position:relative;overflow:hidden}.book-page:before{content:"";pointer-events:none;z-index:0;background:repeating-linear-gradient(#0000,#0000 27px,#0078d70a 27px 28px);position:absolute;inset:0}.book-page--left:after{content:"";pointer-events:none;background:linear-gradient(270deg,#00000014 0%,#00000005 40%,#0000 100%);width:30px;height:100%;position:absolute;top:0;right:0}.book-page--right:after{content:"";pointer-events:none;background:linear-gradient(90deg,#00000014 0%,#00000005 40%,#0000 100%);width:30px;height:100%;position:absolute;top:0;left:0}.book-page-number{font-family:var(--font-sans);color:var(--color-gray-400);z-index:1;font-size:11px;position:absolute;bottom:24px}.book-page-number--left{left:40px}.book-page-number--right{right:40px}.book-page-header{font-family:var(--font-sans);color:var(--color-gray-400);text-transform:uppercase;letter-spacing:.08em;padding-bottom:var(--space-3);border-bottom:1px solid var(--color-gray-200);margin-bottom:var(--space-4);z-index:1;justify-content:space-between;font-size:10px;display:flex;position:relative}.folio-entry{z-index:1;margin-bottom:var(--space-4);position:relative}.folio-entry-header{margin-bottom:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px dashed var(--color-gray-300);justify-content:space-between;align-items:flex-start;display:flex}.folio-entry-title{font-family:var(--font-sans);color:var(--color-primary);align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.folio-entry-meta{font-family:var(--font-sans);color:var(--color-gray-500);gap:var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap;font-size:10px;display:flex}.folio-entry-content{font-family:var(--font-typewriter);color:#1a1a1a;white-space:pre-wrap;word-wrap:break-word;font-size:13px;line-height:1.75}.folio-entry-attachments{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.folio-entry-attachment-thumb{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--color-gray-200);width:80px;height:60px}.folio-signature-block{align-items:center;gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--color-gray-200);font-family:var(--font-sans);color:var(--color-gray-500);font-size:10px;display:flex}.folio-signature-img{opacity:.85;max-width:120px;max-height:40px}.folio-signature-hash{font-family:var(--font-typewriter);color:var(--color-gray-400);word-break:break-all;font-size:8px}.folio-separator{border:none;border-top:2px dashed var(--color-gray-200);margin:var(--space-4) 0;z-index:1;position:relative}.folio-category-badge{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.04em;border-radius:9999px;align-items:center;padding:1px 8px;font-size:9px;font-weight:600;display:inline-flex}.folio-category-badge--avance{background:var(--color-success-light);color:var(--color-success)}.folio-category-badge--observacion{background:var(--color-info-light);color:var(--color-info)}.folio-category-badge--accidente{background:var(--color-danger-light);color:var(--color-danger)}.folio-category-badge--multa{background:var(--color-warning-light);color:var(--color-warning)}.folio-category-badge--visita{background:var(--color-gray-100);color:var(--color-gray-600)}.book-cover{color:#fff;text-align:center;background:linear-gradient(145deg,#1e3a5f 0%,#0f2440 60%,#0a1a30 100%);flex-direction:column;justify-content:center;align-items:center;padding:60px 40px;display:flex;position:relative;overflow:hidden}.book-cover:before{content:"";pointer-events:none;border:2px solid #ffffff26;border-radius:4px;position:absolute;inset:12px}.book-cover:after{content:"";pointer-events:none;border:1px solid #ffffff14;border-radius:2px;position:absolute;inset:16px}.book-cover-title{font-family:var(--font-serif);letter-spacing:.02em;margin-bottom:var(--space-2);text-transform:uppercase;font-size:22px;font-weight:700}.book-cover-subtitle{font-family:var(--font-sans);opacity:.7;margin-bottom:var(--space-8);font-size:14px;font-weight:400}.book-cover-ornament{width:60px;height:2px;margin:var(--space-4) auto;background:#ffffff4d}.book-cover-details{font-family:var(--font-sans);opacity:.6;font-size:12px;line-height:2}.book-cover-book-number{font-family:var(--font-serif);margin:var(--space-4) 0;opacity:.9;font-size:48px;font-weight:700}.book-cover-status{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.06em;margin-top:var(--space-6);border:1px solid #ffffff4d;border-radius:9999px;align-items:center;gap:6px;padding:4px 16px;font-size:11px;font-weight:500;display:inline-flex}.book-nav-controls{justify-content:center;align-items:center;gap:var(--space-4);margin-top:var(--space-6);padding:var(--space-3) var(--space-6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-lg);background:#ffffffb3;display:flex;box-shadow:0 2px 8px #0000000f}.book-nav-btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast);font-weight:500;display:inline-flex}.book-nav-btn:hover:not(:disabled){background:var(--color-primary-50);border-color:var(--color-primary);color:var(--color-primary)}.book-nav-btn:disabled{opacity:.4;cursor:not-allowed}.book-nav-page-info{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text-secondary);text-align:center;min-width:100px;font-weight:600}.book-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.book-toolbar-left{align-items:center;gap:var(--space-3);display:flex}.book-toolbar-right{align-items:center;gap:var(--space-2);display:flex}.close-book-overlay{z-index:100;padding:var(--space-4);background:#0009;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.close-book-modal{background:var(--color-surface);border-radius:var(--radius-xl);width:100%;max-width:560px;padding:var(--space-8);max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px #00000040}.close-book-modal h2{font-size:var(--text-xl);margin-bottom:var(--space-2);font-weight:700}.close-book-modal-warning{background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:#92400e;margin:var(--space-4) 0;align-items:center;gap:var(--space-2);display:flex}.close-book-summary{gap:var(--space-3);margin:var(--space-4) 0;grid-template-columns:1fr 1fr;display:grid}.close-book-summary-item{background:var(--color-gray-50);padding:var(--space-3);border-radius:var(--radius-md);text-align:center}.close-book-summary-item span:first-child{font-size:var(--text-xs);color:var(--color-text-secondary);display:block}.close-book-summary-item span:last-child{font-size:var(--text-xl);color:var(--color-text);font-weight:700}.close-book-hash-display{background:var(--color-gray-50);padding:var(--space-3);border-radius:var(--radius-md);font-family:var(--font-typewriter);word-break:break-all;color:var(--color-text-secondary);margin-top:var(--space-4);border:1px solid var(--color-border-light);font-size:11px}.photo-upload-area{border:2px dashed var(--color-gray-300);border-radius:var(--radius-md);padding:var(--space-4);text-align:center;cursor:pointer;transition:all var(--transition-fast);background:var(--color-gray-50)}.photo-upload-area:hover{border-color:var(--color-primary);background:var(--color-primary-50)}.photo-preview-grid{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.photo-preview-item{border-radius:var(--radius-sm);border:1px solid var(--color-border);width:80px;height:80px;position:relative;overflow:hidden}.photo-preview-item img{object-fit:cover;width:100%;height:100%}.photo-preview-remove{background:var(--color-danger);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;display:flex;position:absolute;top:2px;right:2px}@media (max-width:768px){:root{--book-page-width:100%;--book-page-height:auto}.book-viewer-container{padding:var(--space-3) var(--space-1);border-radius:var(--radius-md);min-height:auto}.book-page{padding:20px 16px 36px;font-size:11px}.book-nav-controls{gap:var(--space-2);padding:var(--space-2) var(--space-3);margin-top:var(--space-3);flex-direction:column;width:100%}.book-nav-controls>div{justify-content:center}.book-nav-page-info{gap:var(--space-1);font-size:var(--text-xs);flex-direction:column;min-width:auto}.book-nav-btn{padding:var(--space-2) var(--space-3);font-size:var(--text-xs)}.book-toolbar{align-items:stretch;gap:var(--space-2);flex-direction:column}.book-toolbar-right{justify-content:flex-start;gap:var(--space-2);flex-wrap:wrap}.folio-entry-meta{gap:var(--space-1);flex-direction:column}.book-cover{padding:40px 24px}.book-cover-title{font-size:16px}.book-cover-book-number{font-size:36px}.book-cover-subtitle{font-size:12px}.book-cover-details{font-size:10px}}.team-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.team-member-card{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border-light);transition:all var(--transition-base);display:flex;position:relative;overflow:hidden}.team-member-card:before{content:"";width:3px;transition:background var(--transition-base);border-radius:3px 0 0 3px;position:absolute;top:0;bottom:0;left:0}.team-member-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-gray-200);transform:translateY(-1px)}.team-member-card--owner:before{background:linear-gradient(#f59e0b,#d97706)}.team-member-card--admin:before{background:linear-gradient(#3b82f6,#2563eb)}.team-member-card--member:before{background:linear-gradient(#10b981,#059669)}.team-member-card--pending{opacity:.75;background:var(--color-gray-50);border-style:dashed}.team-member-card--pending:before{background:linear-gradient(180deg, var(--color-gray-300), var(--color-gray-400))}.team-member-card--pending:hover{opacity:1}.team-avatar{width:40px;height:40px;font-weight:700;font-size:var(--text-sm);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.team-avatar--owner{color:#92400e;background:linear-gradient(135deg,#fef3c7,#fde68a);box-shadow:0 0 0 2px #fbbf24}.team-avatar--admin{color:#1e40af;background:linear-gradient(135deg,#dbeafe,#bfdbfe);box-shadow:0 0 0 2px #60a5fa}.team-avatar--member{color:#065f46;background:linear-gradient(135deg,#d1fae5,#a7f3d0)}.team-avatar--pending{background:var(--color-gray-100);color:var(--color-gray-500);border:2px dashed var(--color-gray-300)}.team-member-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.team-member-name{font-weight:600;font-size:var(--text-sm);color:var(--color-text);align-items:center;gap:var(--space-2);line-height:1.3;display:flex}.team-member-detail{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;display:flex;overflow:hidden}.team-badge{letter-spacing:.02em;white-space:nowrap;border-radius:9999px;align-items:center;gap:3px;padding:1px 8px;font-size:10px;font-weight:600;display:inline-flex}.team-badge--owner{color:#92400e;background:linear-gradient(135deg,#fef3c7,#fde68a)}.team-badge--admin{background:var(--color-info-light);color:var(--color-info)}.team-badge--write{background:var(--color-success-light);color:var(--color-success)}.team-badge--read{background:var(--color-gray-100);color:var(--color-gray-600)}.team-badge--pending{background:var(--color-warning-light);color:var(--color-warning)}.view-toggle{background:var(--color-gray-100);border-radius:var(--radius-lg);gap:2px;padding:3px;display:inline-flex}.view-toggle-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-secondary);transition:all var(--transition-fast);align-items:center;gap:var(--space-2);cursor:pointer;background:0 0;border:none;font-weight:500;display:flex}.view-toggle-btn:hover{color:var(--color-text)}.view-toggle-btn.active{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-sm);font-weight:600}.obra-chip{transition:all var(--transition-fast);border:1px solid #0000;border-radius:9999px;align-items:center;gap:4px;padding:2px 10px;font-size:11px;font-weight:500;display:inline-flex}.obra-chip--write{background:var(--color-primary-50);color:var(--color-primary);border-color:var(--color-primary-100)}.obra-chip--read{background:var(--color-gray-50);color:var(--color-gray-600);border-color:var(--color-gray-200)}.obra-chip:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.obra-accordion{border:1px solid var(--color-border-light);border-radius:var(--radius-lg);background:var(--color-surface);transition:box-shadow var(--transition-base);overflow:hidden}.obra-accordion:hover{box-shadow:var(--shadow-md)}.obra-accordion-header{padding:var(--space-4) var(--space-5);cursor:pointer;transition:background var(--transition-fast);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;display:flex}.obra-accordion-header:hover{background:var(--color-gray-50)}.obra-accordion-header-left{align-items:center;gap:var(--space-3);display:flex}.obra-accordion-icon{border-radius:var(--radius-md);background:var(--color-primary-50);width:38px;height:38px;color:var(--color-primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.obra-accordion-title{font-weight:600;font-size:var(--text-sm);color:var(--color-text)}.obra-accordion-subtitle{font-size:var(--text-xs);color:var(--color-text-muted)}.obra-accordion-chevron{transition:transform var(--transition-base);color:var(--color-text-muted)}.obra-accordion-chevron.open{transform:rotate(180deg)}.obra-accordion-body{padding:0 var(--space-5) var(--space-5);border-top:1px solid var(--color-border-light)}.equipo-member-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);transition:all var(--transition-base);position:relative}.equipo-member-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-gray-200)}.equipo-member-header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.equipo-member-header-left{align-items:center;gap:var(--space-3);flex:1;min-width:0;display:flex}.equipo-member-obras{gap:var(--space-1);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border-light);flex-wrap:wrap;display:flex}@media (max-width:768px){.team-grid{grid-template-columns:1fr}.view-toggle{width:100%}.view-toggle-btn{flex:1;justify-content:center}.equipo-member-header{flex-direction:column;align-items:flex-start}}@media (max-width:480px){.team-member-card{padding:var(--space-2) var(--space-3)}.team-avatar{width:32px;height:32px;font-size:var(--text-xs)}}
@media print{.sidebar,.main-header,.bottom-nav,.btn,.mobile-menu-btn,.stats-grid,.progress-bar{display:none!important}.dashboard-layout{display:block!important}.main-content{margin-left:0!important;padding:0!important}.page-content{max-width:100%!important;padding:0!important}body{font-size:12pt;color:#000!important;background:#fff!important}.card{box-shadow:none!important;border:none!important;margin:0!important;padding:0!important}.print-folio-container{page-break-after:always;padding:20mm!important}.badge{color:#000!important;background:0 0!important;border:1px solid #000!important}.signature-container img,.signature-container canvas{max-width:300px}@page{size:A4;margin:0}}
