:root{--primary: #4285f4;--primary-hover: #357ae8;--secondary: #5f6368;--background: #f8f9fa;--surface: #ffffff;--text-primary: #202124;--text-secondary: #5f6368;--border: #dadce0;--success: #34a853;--error: #ea4335;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--radius: 10px;--transition: all .2s ease}@media(prefers-color-scheme:dark){:root{--primary: #8ab4f8;--primary-hover: #aecbfa;--secondary: #9aa0a6;--background: #202124;--surface: #292a2d;--text-primary: #e8eaed;--text-secondary: #9aa0a6;--border: #3c4043;--success: #81c995;--error: #f28b82}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1.6;color:var(--text-primary);background-color:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{width:100%;max-width:100%;overflow-x:hidden}.app-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.app-card{width:100%;max-width:500px;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-lg);padding:2.5rem;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.header{text-align:center;margin-bottom:2rem}.header h1{font-size:2rem;font-weight:600;margin-bottom:.5rem;color:var(--text-primary)}.subtitle{color:var(--text-secondary);font-size:.95rem}.login-section{text-align:center;padding:2rem 0}.login-text{color:var(--text-secondary);margin-bottom:2rem;line-height:1.5}.user-info{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--background);border-radius:var(--radius);margin-bottom:1.5rem}.user-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-hover));color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:600;flex-shrink:0}.user-details{flex:1;display:flex;flex-direction:column;min-width:0}.user-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.user-email{font-size:.95rem;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.divider{height:1px;background:var(--border);margin:1.5rem 0}.form-section{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.form-select{width:100%;padding:.75rem 1rem;font-size:.95rem;color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:var(--transition);cursor:pointer;font-family:inherit}.form-select:hover:not(:disabled){border-color:var(--secondary)}.form-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4285f41a}.form-select:disabled{opacity:.6;cursor:not-allowed}.file-input-wrapper{position:relative;transition:var(--transition)}.file-input-wrapper.dragging .file-label{border-color:var(--primary);background:#4285f40d;transform:scale(1.02)}.file-input{position:absolute;width:.1px;height:.1px;opacity:0;overflow:hidden;z-index:-1}.file-label{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;font-size:.95rem;color:var(--text-primary);background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;transition:var(--transition);text-align:center}.file-label:hover{border-color:var(--primary);background:var(--background)}.file-input:focus+.file-label{outline:2px solid var(--primary);outline-offset:2px}.file-info{font-size:.875rem;color:var(--success);padding:.5rem;background:#34a8531a;border-radius:4px;margin-top:.5rem;overflow-wrap:anywhere;word-break:break-word}.filename-preview{overflow-wrap:anywhere;word-break:break-word}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;font-size:.95rem;font-weight:500;font-family:inherit;border:none;border-radius:var(--radius);cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;transition:all .25s ease}.btn-primary:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--background);border-color:var(--secondary)}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.btn-block{width:100%}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:600px){.app-card{padding:1.5rem}.header h1{font-size:1.5rem}.user-info{flex-wrap:wrap}}.info-box,.suggestion-box,.success-box{margin-top:12px;padding:14px;border-radius:10px;transition:all .25s ease}.info-box{background:#f6f7fb;color:#111827;border:1px solid #e5e7eb;overflow-wrap:anywhere;word-break:break-word}.suggestion-box{background:#eef4ff;color:#1e3a8a;border:1px solid #d6e4ff}.success-box{background:#ecfdf5;color:#065f46;border:1px solid #bbf7d0}@media(prefers-color-scheme:dark){.info-box{background:#1f2937;color:#e5e7eb;border:1px solid #374151}.suggestion-box{background:#1e3a8a59;color:#dbeafe;border:1px solid #3b82f6}.success-box{background:#064e3b59;color:#6ee7b7;border:1px solid #10b981}}.suggestion-title{font-size:18px;font-weight:600}.suggestion-label{font-size:20px;font-weight:700;margin-top:6px}.suggestion-actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.suggestion-actions button{flex:1}.btn-primary:disabled{background:#64748b;border-color:#64748b;cursor:not-allowed;opacity:.6}.btn-primary:not(:disabled){background:#2563eb;border-color:#2563eb}.btn-primary:not(:disabled):hover{background:#1d4ed8}.page-shell{min-height:100vh;padding:32px 24px 48px}.page-content{width:100%;margin:0 auto}.page-content-narrow{max-width:720px}.page-content-wide{max-width:1400px}.page-header{margin-bottom:24px}.page-title{margin:0;font-size:2rem;font-weight:800}.page-subtitle{margin:8px 0 0;opacity:.8;font-size:1rem}.panel-card{background:#ffffff09;border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:20px}.panel-section-title{font-size:.95rem;font-weight:700;margin-bottom:16px}.tracking-login-card{max-width:640px}.tracking-topbar{margin-bottom:24px}.tracking-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:24px;align-items:start}.tracking-sidebar{position:sticky;top:24px}.tracking-main{min-width:0}.tracking-empty-state{min-height:240px;display:flex;flex-direction:column;justify-content:center}.tracking-empty-title{margin:0 0 10px;font-size:1.25rem;font-weight:700}.tracking-empty-text{margin:0;opacity:.82;line-height:1.5}.tracking-summary-card{margin-bottom:20px}.tracking-summary-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.tracking-summary-label{font-size:.85rem;opacity:.7;margin-bottom:6px}.tracking-summary-value{font-size:1.15rem;font-weight:700}.tracking-year-chip{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;font-size:.9rem;font-weight:700;background:#3b82f61f;border:1px solid rgba(59,130,246,.28)}@media(max-width:1024px){.tracking-layout{grid-template-columns:1fr}.tracking-sidebar{position:static}}@media(max-width:640px){.page-shell{padding:20px 14px 32px}.page-title{font-size:1.6rem}.panel-card{padding:16px;border-radius:14px}}.page-header-with-user{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}.page-user-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}.page-user-chip{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:14px;background:#ffffff09;border:1px solid rgba(255,255,255,.08)}.page-user-avatar{width:42px;height:42px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-weight:700;background:#60a5fa47}.page-user-meta{display:flex;flex-direction:column}.page-user-label{font-size:.75rem;opacity:.7;text-transform:uppercase}.page-user-email{font-size:.95rem;font-weight:600}.tracking-loading-chip{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;font-size:.9rem;font-weight:600;background:#f59e0b1f;border:1px solid rgba(245,158,11,.28);color:#fcd34d}.tracking-status-badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:13px;font-weight:700;line-height:1;white-space:nowrap}.tracking-status-badge--success{background:#22c55e1f;border:1px solid rgba(34,197,94,.35);color:#86efac}.tracking-status-badge--info{background:#3b82f61f;border:1px solid rgba(59,130,246,.35);color:#93c5fd}.tracking-status-badge--warning{background:#f59e0b1f;border:1px solid rgba(245,158,11,.35);color:#fcd34d}.tracking-status-badge--danger{background:#ef44441f;border:1px solid rgba(239,68,68,.35);color:#fca5a5}.tracking-status-badge--neutral{background:#94a3b81a;border:1px solid rgba(148,163,184,.25);color:#cbd5e1}.tracking-month-row{display:grid;grid-template-columns:minmax(140px,180px) minmax(160px,220px) 1fr auto;gap:16px;align-items:center;padding:14px 16px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#ffffff05}.tracking-month-row__month-name{font-weight:700;font-size:16px}.tracking-month-row__month-subtitle{font-size:12px;opacity:.75;margin-top:4px}.tracking-month-row__details{font-size:14px;opacity:.9}.tracking-month-row__actions{display:flex;justify-content:flex-end}@media(max-width:900px){.tracking-month-row{grid-template-columns:1fr;align-items:start}.tracking-month-row__actions{justify-content:flex-start}.tracking-month-row__details,.tracking-month-row__status{width:100%}}@media(max-width:640px){.tracking-month-row{padding:12px;gap:10px}.tracking-month-row__actions .btn{width:100%}}.tracking-year-section{margin-top:16px}.tracking-year-section__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.tracking-year-section__title{font-size:18px;font-weight:700}.tracking-year-section__subtitle{font-size:13px;opacity:.8;margin-top:4px}.tracking-year-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.tracking-year-summary__card{padding:14px 16px;border-radius:14px;background:#ffffff08;border:1px solid rgba(255,255,255,.08)}.tracking-year-summary__card--danger{border-color:#ef444440;background:#ef44440d}.tracking-year-summary__label{font-size:12px;opacity:.72;margin-bottom:8px;text-transform:uppercase;letter-spacing:.03em}.tracking-year-summary__value{font-size:24px;font-weight:800;line-height:1}.tracking-year-section__months{display:flex;flex-direction:column;gap:12px}@media(max-width:1100px){.tracking-year-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.tracking-year-summary{grid-template-columns:1fr}.tracking-year-summary__value{font-size:20px}}.tracking-source-list{display:flex;flex-wrap:wrap;gap:8px}.tracking-source{padding:6px 10px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid transparent;overflow-wrap:anywhere;word-break:break-word}.tracking-source--ok{background:#22c55e1f;border-color:#22c55e59;color:#86efac}.tracking-source--processing{background:#3b82f61f;border-color:#3b82f659;color:#93c5fd}.tracking-source--missing{background:#94a3b81a;border-color:#94a3b840;color:#cbd5e1}.tracking-source-empty{font-size:13px;opacity:.7}.tracking-source--warning{background:#f59e0b1f;border-color:#f59e0b59;color:#fcd34d}.tracking-source--error{background:#ef444429;border-color:#ef444473;color:#fca5a5}.app-card--wide{max-width:1400px}.statements-app-shell{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr);background:#0f1117;color:#f8fafc}.statements-app-shell.sidebar-collapsed{grid-template-columns:88px minmax(0,1fr)}.statements-sidebar{min-width:0;height:100vh;position:sticky;top:0;border-right:1px solid rgba(255,255,255,.08);background:#ffffff05;padding:20px 14px;display:flex;flex-direction:column;gap:20px;overflow-y:auto}.statements-sidebar-backdrop,.statements-sidebar__mobile-topbar{display:none}.statements-sidebar__close-btn{border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:#e2e8f0;border-radius:10px;padding:10px 12px;min-height:44px;min-width:44px;cursor:pointer}.statements-sidebar__brand{display:flex;align-items:center;gap:12px;min-height:52px}.statements-sidebar__brand-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#3b82f624;border:1px solid rgba(59,130,246,.3);font-size:20px;flex-shrink:0}.statements-sidebar__brand-title{font-size:15px;font-weight:800;line-height:1.2}.statements-sidebar__brand-subtitle{font-size:12px;color:#94a3b8;margin-top:2px}.statements-sidebar__nav{display:flex;flex-direction:column;gap:8px}.statements-sidebar__link{display:flex;align-items:center;gap:12px;min-height:46px;padding:10px 12px;border-radius:12px;color:#cbd5e1;text-decoration:none;font-weight:700;border:1px solid transparent;transition:all .18s ease;min-width:0}.statements-sidebar__link:hover{background:#ffffff0a}.statements-sidebar__link.is-active{background:#3b82f624;border-color:#3b82f647;color:#fff}.statements-sidebar__link-icon{width:20px;text-align:center;flex-shrink:0}.statements-app-shell.sidebar-collapsed .statements-sidebar__brand-title,.statements-app-shell.sidebar-collapsed .statements-sidebar__brand-subtitle,.statements-app-shell.sidebar-collapsed .statements-sidebar__link-text{display:none}.statements-main-header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;border-bottom:1px solid rgba(255,255,255,.08);background:#0f1117eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.statements-main-header__left,.statements-main-header__right{display:flex;align-items:center;gap:12px;min-width:0}.statements-main-header__menu-btn{border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:#e2e8f0;border-radius:10px;padding:8px 10px;cursor:pointer;flex-shrink:0;min-height:44px;min-width:44px}.statements-user-chip{display:flex;align-items:center;gap:10px;min-width:0}.statements-user-chip__avatar{width:38px;height:38px;border-radius:999px;display:grid;place-items:center;font-weight:800;background:#60a5fa2e;border:1px solid rgba(96,165,250,.28);color:#dbeafe;flex-shrink:0}.statements-user-chip__meta{min-width:0}.statements-user-chip__label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8}.statements-user-chip__email{font-size:14px;font-weight:700;color:#f8fafc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.statements-main-shell{min-width:0;width:100%;display:flex;flex-direction:column;min-height:100vh}.statements-main-content{width:100%;min-width:0;padding:28px;overflow-x:hidden}.statements-page{width:100%;max-width:none;min-width:0;display:flex;flex-direction:column;gap:18px}.statements-page__title{font-size:clamp(1.8rem,2vw,2.25rem);font-weight:800;margin:0}.statements-page__subtitle{margin-top:6px;color:#94a3b8;font-size:1rem;line-height:1.5}@media(max-width:1200px){.statements-main-content{padding:22px}.preprocess-grid{grid-template-columns:1fr}}@media(max-width:900px){.statements-app-shell,.statements-app-shell.sidebar-collapsed,.statements-app-shell.sidebar-open{grid-template-columns:1fr}.statements-sidebar{position:fixed;inset:0 auto 0 0;width:min(280px,82vw);z-index:60;transform:translate(-100%);transition:transform .22s ease;box-shadow:0 10px 30px #00000059;background:#11141c}.statements-sidebar__mobile-topbar{display:flex;justify-content:flex-end}.statements-sidebar-backdrop{display:block;position:fixed;inset:0;z-index:50;border:0;background:#00000073;padding:0;margin:0}.statements-app-shell.sidebar-open .statements-sidebar{transform:translate(0)}.statements-app-shell.sidebar-collapsed .statements-sidebar{transform:translate(-100%)}.statements-main-header{padding:14px 16px;gap:10px}.statements-main-content{padding:16px}.statements-user-chip__meta{display:none}.statements-page{gap:14px}.tracking-gestion-filter{max-width:none}}@media(max-width:640px){.statements-main-header__right{gap:8px;min-width:0}.statements-user-chip{gap:8px}.statements-user-chip__avatar{width:34px;height:34px}.statements-main-content{padding:14px}.btn{min-height:44px}.file-label{min-height:52px;padding:.9rem .85rem}.panel-card{padding:16px;border-radius:14px}.suggestion-actions{flex-direction:column}.suggestion-actions button{width:100%}}.preprocess-summary{display:flex;flex-direction:column;gap:14px}.preprocess-summary__header{margin-bottom:14px}.preprocess-summary__title{margin:0;font-size:1.05rem;font-weight:800}.preprocess-summary__subtitle{margin-top:6px;color:#94a3b8;font-size:.95rem;line-height:1.45}.preprocess-status{display:flex;flex-direction:column;gap:6px}.preprocess-status__title{font-size:1rem;font-weight:800}.preprocess-status__text{color:#cbd5e1;line-height:1.5}.preprocess-status--loading{border-color:#3b82f63d;background:#3b82f614}.preprocess-status--error{border-color:#ef444447;background:#ef444414}.preprocess-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.preprocess-card{padding:16px;border-radius:14px;background:#ffffff08;border:1px solid rgba(255,255,255,.08)}.preprocess-card__label{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;margin-bottom:8px}.preprocess-card__value{font-size:1.05rem;font-weight:700;line-height:1.35;word-break:break-word}.preprocess-filename-box{border-color:#3b82f633;background:#3b82f614}.preprocess-filename-box__label{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#93c5fd;margin-bottom:8px;font-weight:700}.preprocess-filename-box__value{font-size:1.02rem;font-weight:800;line-height:1.45;word-break:break-word;color:#f8fafc}@media(max-width:900px){.preprocess-grid{grid-template-columns:1fr}}.statements-page .form-section{width:100%;max-width:none}.statements-page .form-section{display:flex;flex-direction:column;gap:16px}.tracking-gestion-filter{max-width:360px;margin-top:16px}
