@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #f0f2f8;--color-bg-gradient: linear-gradient(135deg, #f0f2f8 0%, #e8ecf4 50%, #f0f2f8 100%);--color-surface: #ffffff;--color-surface-glass: rgba(255, 255, 255, .72);--color-card: #ffffff;--color-card-hover: #f8f9fc;--color-border: rgba(0, 0, 0, .06);--color-border-hover: rgba(0, 0, 0, .12);--color-text: #0f172a;--color-text-secondary: #334155;--color-muted: #64748b;--color-input: #f1f5f9;--color-input-focus: #ffffff;--color-accent: #6366f1;--color-accent-hover: #4f46e5;--color-accent-glow: rgba(99, 102, 241, .25);--color-accent-soft: rgba(99, 102, 241, .08);--color-success: #10b981;--color-success-bg: rgba(16, 185, 129, .1);--color-success-border: rgba(16, 185, 129, .25);--color-warning: #f59e0b;--color-warning-bg: rgba(245, 158, 11, .1);--color-warning-border: rgba(245, 158, 11, .25);--color-danger: #ef4444;--color-danger-bg: rgba(239, 68, 68, .1);--color-danger-border: rgba(239, 68, 68, .25);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .08);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .1);--shadow-glow: 0 0 40px var(--color-accent-glow);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--header-height: 64px}[data-theme=dark]{--color-bg: #0b0e14;--color-bg-gradient: linear-gradient(135deg, #0b0e14 0%, #111827 50%, #0b0e14 100%);--color-surface: #151923;--color-surface-glass: rgba(21, 25, 35, .78);--color-card: #1a1f2e;--color-card-hover: #1f2537;--color-border: rgba(255, 255, 255, .06);--color-border-hover: rgba(255, 255, 255, .12);--color-text: #e2e8f0;--color-text-secondary: #cbd5e1;--color-muted: #64748b;--color-input: #1e2433;--color-input-focus: #242b3d;--color-accent: #818cf8;--color-accent-hover: #6366f1;--color-accent-glow: rgba(129, 140, 248, .2);--color-accent-soft: rgba(129, 140, 248, .1);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .5)}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.5;min-height:100vh;transition:background var(--transition-slow),color var(--transition-slow)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-10px)}40%,80%{transform:translate(10px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes floatParticle{0%,to{transform:translateY(0) translate(0);opacity:0}10%{opacity:.6}90%{opacity:.6}50%{transform:translateY(-120px) translate(30px)}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.pin-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--color-bg-gradient);position:relative;overflow:hidden}.pin-screen:before{content:"";position:absolute;width:400px;height:400px;background:radial-gradient(circle,var(--color-accent-glow),transparent 70%);top:-100px;right:-100px;border-radius:50%;animation:pulse 4s ease-in-out infinite}.pin-screen:after{content:"";position:absolute;width:300px;height:300px;background:radial-gradient(circle,rgba(99,102,241,.12),transparent 70%);bottom:-50px;left:-50px;border-radius:50%;animation:pulse 5s ease-in-out infinite 1s}.pin-container{width:100%;max-width:340px;position:relative;z-index:1;animation:slideUp .6s ease-out}.pin-container.shake{animation:shake .5s ease}.pin-logo{text-align:center;margin-bottom:40px}.pin-logo-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));box-shadow:var(--shadow-glow);margin-bottom:20px}.pin-title{font-size:26px;font-weight:700;letter-spacing:-.5px;color:var(--color-text)}.pin-title span{background:linear-gradient(135deg,var(--color-accent),#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.pin-subtitle{font-size:14px;color:var(--color-muted);margin-top:8px}.pin-dots{display:flex;justify-content:center;gap:16px;margin-bottom:36px}.pin-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--color-border);background:transparent;transition:all var(--transition-fast)}.pin-dot.filled{background:var(--color-accent);border-color:var(--color-accent);box-shadow:0 0 12px var(--color-accent-glow);transform:scale(1.1)}.pin-dot.error{background:var(--color-danger);border-color:var(--color-danger);box-shadow:0 0 12px #ef44444d}.pin-error-msg{text-align:center;font-size:13px;color:var(--color-danger);margin-bottom:16px;animation:slideDown .3s ease}.pin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.pin-btn{height:64px;font-size:22px;font-weight:500;font-family:var(--font-sans);background:var(--color-surface-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.pin-btn:hover{background:var(--color-accent-soft);border-color:var(--color-accent);transform:translateY(-1px)}.pin-btn:active{transform:scale(.96)}.pin-btn.delete-btn{color:var(--color-muted)}.header{background:var(--color-surface-glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border);padding:0 24px;position:sticky;top:0;z-index:50;height:var(--header-height)}.header-inner{max-width:1360px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:100%}.header-brand{display:flex;align-items:center;gap:12px}.header-logo{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));box-shadow:0 2px 8px var(--color-accent-glow);transition:transform var(--transition-fast)}.header-logo:hover{transform:scale(1.05)}.header-title{font-weight:600;font-size:17px;letter-spacing:-.3px}.header-title span{background:linear-gradient(135deg,var(--color-accent),#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-badge{font-size:11px;font-weight:600;color:var(--color-accent);background:var(--color-accent-soft);padding:3px 10px;border-radius:var(--radius-full);letter-spacing:.3px;text-transform:uppercase}.sync-indicator{display:flex;align-items:center;gap:6px;font-size:12px;margin-left:12px;padding:4px 10px;border-radius:var(--radius-full);background:var(--color-accent-soft);transition:all var(--transition-base)}.sync-indicator .icon{display:flex}.sync-indicator.syncing .icon{animation:spin 1s linear infinite}.header-actions{display:flex;gap:8px}.header-btn{display:flex;align-items:center;gap:6px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:7px 14px;cursor:pointer;color:var(--color-muted);font-size:13px;font-family:var(--font-sans);font-weight:500;transition:all var(--transition-fast)}.header-btn:hover{border-color:var(--color-border-hover);color:var(--color-text);background:var(--color-card-hover);transform:translateY(-1px)}.main-content{max-width:1360px;margin:0 auto;padding:28px 24px 48px;animation:fadeIn .4s ease-out}.dashboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-bottom:28px}.stat-card{background:var(--color-surface-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:22px 24px;display:flex;align-items:center;gap:18px;transition:all var(--transition-base);position:relative;overflow:hidden;animation:slideUp .5s ease-out backwards}.stat-card:nth-child(1){animation-delay:.05s}.stat-card:nth-child(2){animation-delay:.1s}.stat-card:nth-child(3){animation-delay:.15s}.stat-card:after{content:"";position:absolute;top:0;right:0;width:100px;height:100px;border-radius:50%;opacity:.06;transition:opacity var(--transition-base)}.stat-card:hover{border-color:var(--color-border-hover);transform:translateY(-3px);box-shadow:var(--shadow-lg)}.stat-card:hover:after{opacity:.12}.stat-icon{flex-shrink:0;width:50px;height:50px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;transition:transform var(--transition-fast)}.stat-card:hover .stat-icon{transform:scale(1.08)}.stat-icon.success{background:var(--color-success-bg);color:var(--color-success)}.stat-icon.accent{background:var(--color-accent-soft);color:var(--color-accent)}.stat-icon.warning{background:var(--color-warning-bg);color:var(--color-warning)}.stat-label{font-size:12px;font-weight:500;color:var(--color-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:26px;font-weight:700;letter-spacing:-.5px;line-height:1.2}.toolbar{display:flex;gap:10px;margin-bottom:16px;align-items:center}.search-wrapper{flex:1;min-width:200px;position:relative}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--color-muted);pointer-events:none}.search-input{width:100%;padding:0 14px 0 40px;height:44px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:14px;font-family:var(--font-sans);outline:none;transition:all var(--transition-fast)}.search-input::placeholder{color:var(--color-muted)}.search-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow);background:var(--color-input-focus)}.toolbar-actions{display:flex;gap:8px;align-items:center}.toolbar-btn{display:flex;align-items:center;gap:8px;background:var(--color-surface-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0 18px;height:44px;font-size:13px;font-weight:500;font-family:var(--font-sans);cursor:pointer;white-space:nowrap;transition:all var(--transition-base);position:relative;overflow:hidden}.toolbar-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,var(--color-accent-soft),transparent);opacity:0;transition:opacity var(--transition-base)}.toolbar-btn:hover{border-color:var(--color-accent);color:var(--color-text);transform:translateY(-2px);box-shadow:var(--shadow-md)}.toolbar-btn:hover:before{opacity:1}.toolbar-btn:active{transform:translateY(0) scale(.98)}.toolbar-btn.primary{background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));color:#fff;border:none;font-weight:600;font-size:14px;padding:0 24px;box-shadow:0 4px 14px var(--color-accent-glow);letter-spacing:.2px}.toolbar-btn.primary:before{background:linear-gradient(135deg,rgba(255,255,255,.15),transparent)}.toolbar-btn.primary:hover{box-shadow:0 6px 24px var(--color-accent-glow);transform:translateY(-3px);border-color:transparent}.import-label{display:flex;align-items:center;gap:8px;background:var(--color-surface-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0 18px;height:44px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all var(--transition-base);position:relative;overflow:hidden}.import-label:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,var(--color-accent-soft),transparent);opacity:0;transition:opacity var(--transition-base)}.import-label:hover{border-color:var(--color-accent);color:var(--color-text);transform:translateY(-2px);box-shadow:var(--shadow-md)}.import-label:hover:before{opacity:1}.import-label:active{transform:translateY(0) scale(.98)}.import-label input[type=file]{display:none}.import-msg{margin-bottom:14px;padding:12px 18px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;animation:slideDown .3s ease}.import-msg.success{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success)}.import-msg.error{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger)}.table-container{background:var(--color-surface-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;animation:slideUp .5s ease-out .2s backwards}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table thead tr{border-bottom:1px solid var(--color-border)}.data-table th{padding:14px 16px;text-align:left;font-weight:600;font-size:11px;color:var(--color-muted);text-transform:uppercase;letter-spacing:.6px;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.data-table th:hover{color:var(--color-text)}.th-content{display:inline-flex;align-items:center;gap:4px}.data-table tbody tr{border-bottom:1px solid var(--color-border);transition:background var(--transition-fast)}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody tr:hover{background:var(--color-card-hover)}.data-table td{padding:13px 16px}.cell-code{font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--color-accent)}.cell-sn{font-family:var(--font-mono);font-size:12px;color:var(--color-muted)}.cell-client{font-weight:500}.cell-date{color:var(--color-muted)}.cell-date.danger{color:var(--color-danger)}.cell-date.warning{color:var(--color-warning)}.cell-years{color:var(--color-muted);text-align:center}.cell-currency{text-align:right;font-variant-numeric:tabular-nums}.cell-profit{font-weight:600}.cell-profit.positive{color:var(--color-success)}.cell-profit.negative{color:var(--color-danger)}.status-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--radius-full);font-size:11px;font-weight:600;letter-spacing:.3px}.status-badge.actiu{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.status-badge.caducat{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger-border)}.status-badge.pendent{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning-border)}.actions-cell{display:flex;gap:6px}.action-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:6px 8px;cursor:pointer;color:var(--color-muted);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.action-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft);transform:translateY(-1px)}.action-btn.danger{border-color:var(--color-danger-border);color:var(--color-danger)}.action-btn.danger:hover{background:var(--color-danger-bg);border-color:var(--color-danger)}.table-footer{padding:12px 16px;border-top:1px solid var(--color-border);font-size:12px;color:var(--color-muted);display:flex;align-items:center;justify-content:space-between}.table-empty{padding:60px 20px;text-align:center;color:var(--color-muted)}.table-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:60px 20px;color:var(--color-muted)}.table-loading .spinner{animation:spin 1s linear infinite;display:flex}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px;animation:fadeIn .2s ease}.modal-content{background:var(--color-surface);border-radius:var(--radius-xl);padding:32px;width:100%;border:1px solid var(--color-border);box-shadow:var(--shadow-xl);animation:scaleIn .3s cubic-bezier(.34,1.56,.64,1)}.modal-content.form-modal{max-width:580px;max-height:90vh;overflow-y:auto}.modal-content.delete-modal{max-width:380px;text-align:center}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modal-title{font-size:20px;font-weight:700;letter-spacing:-.3px}.modal-close{background:none;border:none;cursor:pointer;color:var(--color-muted);padding:4px;border-radius:var(--radius-sm);transition:all var(--transition-fast);display:flex}.modal-close:hover{background:var(--color-accent-soft);color:var(--color-text)}.form-hint{background:var(--color-accent-soft);border:1px solid rgba(99,102,241,.15);border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:22px;font-size:13px;color:var(--color-muted);line-height:1.6}.form-hint strong{color:var(--color-text)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-field{display:flex;flex-direction:column}.form-field.full{grid-column:1 / -1}.form-label{font-size:12px;font-weight:600;color:var(--color-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.4px}.form-input{padding:10px 14px;background:var(--color-input);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-size:14px;font-family:var(--font-sans);outline:none;transition:all var(--transition-fast)}.form-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow);background:var(--color-input-focus)}.form-input.error{border-color:var(--color-danger)}.form-input.error:focus{box-shadow:0 0 0 3px #ef444426}.form-error{font-size:11px;color:var(--color-danger);margin-top:4px;animation:slideDown .2s ease}.form-actions{display:flex;gap:10px;margin-top:26px;justify-content:flex-end}.btn{display:flex;align-items:center;gap:6px;padding:10px 22px;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-family:var(--font-sans);font-weight:500;transition:all var(--transition-fast)}.btn-ghost{background:none;border:1px solid var(--color-border);color:var(--color-muted)}.btn-ghost:hover{border-color:var(--color-border-hover);color:var(--color-text)}.btn-primary{background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));border:none;color:#fff;font-weight:600;box-shadow:0 2px 8px var(--color-accent-glow)}.btn-primary:hover{box-shadow:0 4px 16px var(--color-accent-glow);transform:translateY(-1px)}.btn-danger{background:var(--color-danger);border:none;color:#fff;font-weight:600}.btn-danger:hover{background:#dc2626;transform:translateY(-1px)}.delete-icon{color:var(--color-danger);margin-bottom:16px;display:flex;justify-content:center}.delete-title{font-size:18px;font-weight:700;margin-bottom:8px}.delete-text{color:var(--color-muted);font-size:14px;margin-bottom:24px}.delete-actions{display:flex;gap:10px;justify-content:center}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-muted)}@media(max-width:768px){.header{padding:0 16px}.header-badge,.sync-indicator span:last-child{display:none}.header-btn span{display:none}.main-content{padding:20px 16px 40px}.dashboard{grid-template-columns:1fr}.toolbar{flex-direction:column}.search-wrapper{width:100%}.toolbar-actions{display:flex;gap:8px;width:100%}.toolbar-actions>*{flex:1}.form-grid{grid-template-columns:1fr}.modal-content{padding:24px 20px}}@media(max-width:480px){.stat-card{padding:18px}.stat-value{font-size:22px}.pin-container{max-width:300px}}
