:root{--bg:#f5f7f2;--surface:#fff;--surface-2:#eef2e8;--border:#d8e4cc;--border-focus:#4e9a0e;--accent:#5aad1e;--accent-dark:#111;--accent-light:#ebf5dc;--accent-hover:#4a9018;--teal:#6bbf2a;--teal-light:#ebf5dc;--text:#111;--text-sub:#3a4a2a;--text-muted:#7a8a6a;--success:#3d9a2a;--success-light:#e8f5e0;--danger:#d63b3b;--danger-light:#fdeaea;--warning:#e07b2a;--warning-light:#fef3e7;--tag-upa:#ebf5dc;--tag-upa-text:#3a7a10;--tag-pharma:#e8f5e0;--tag-pharma-text:#2e7a1a;--tag-retro:#fef3e7;--tag-retro-text:#e07b2a;--shadow-sm:0 1px 3px rgba(17,17,17,.07);--shadow:0 4px 14px rgba(17,17,17,.1);--shadow-lg:0 14px 36px rgba(17,17,17,.14);--radius:10px;--radius-sm:7px;--radius-lg:18px;--sidebar-w:244px;--transition:180ms cubic-bezier(0.4,0,0.2,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:14px}body{background:var(--bg);color:var(--text);font-family:DM Sans,sans-serif;min-height:100vh;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:"DM Serif Display",serif;font-weight:400}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}input,select,textarea{font-family:DM Sans,sans-serif;font-size:14px}.hidden{display:none!important}.auth-screen{align-items:center;background:var(--bg);display:flex;flex-direction:column;justify-content:center;min-height:100vh;overflow:hidden;padding:24px;position:relative}.auth-bg-shape{border-radius:50%;pointer-events:none;position:fixed;z-index:0}.shape-1{background:radial-gradient(circle,rgba(26,63,216,.08) 0,transparent 70%);height:560px;right:-180px;top:-180px;width:560px}.shape-2{background:radial-gradient(circle,rgba(0,201,167,.07) 0,transparent 70%);bottom:-120px;height:400px;left:-120px;width:400px}.auth-brand{align-items:center;display:flex;gap:12px;margin-bottom:36px;position:relative;z-index:1}.auth-logo-mark{filter:drop-shadow(0 4px 12px rgba(26,63,216,.25));flex-shrink:0}.auth-brand-text,.sidebar-brand-text{line-height:1}.brand-upa{color:var(--accent);letter-spacing:-.5px}.brand-dot,.brand-upa{font-family:"DM Serif Display",serif;font-size:26px}.brand-dot{color:var(--teal);margin:0 1px}.brand-bzh{color:var(--text-sub);font-family:"DM Serif Display",serif;font-size:26px;letter-spacing:-.3px}.auth-panel{animation:fadeUp .3s ease;max-width:400px;position:relative;width:100%;z-index:1}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:36px}.auth-header{margin-bottom:26px}.auth-header h1{font-size:28px;margin-bottom:6px}.auth-header p{color:var(--text-sub);font-size:14px}.auth-links{align-items:center;display:flex;gap:10px;justify-content:center;margin-top:18px}.auth-sep{color:var(--border)}.link-small{color:var(--text-muted);font-size:13px}.link-small:hover{color:var(--accent)}.password-hint{background:var(--surface-2);border-left:3px solid var(--accent-light);border-radius:var(--radius-sm);color:var(--text-muted);font-size:11px;margin-top:5px;padding:6px 10px}.auth-footer{align-items:center;bottom:20px;display:flex;gap:10px;position:fixed;z-index:1}.auth-footer,.auth-footer a{color:var(--text-muted);font-size:12px}.auth-footer a:hover{color:var(--accent)}.form-group{margin-bottom:16px}.form-group label{color:var(--text-sub);display:block;font-size:13px;font-weight:500;margin-bottom:7px}.required{color:var(--danger)}.form-group input,.form-group select,.form-group textarea{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text);outline:none;padding:10px 13px;resize:vertical;transition:border-color var(--transition),box-shadow var(--transition);width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px rgba(26,63,216,.1)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted)}.form-row.two-col{display:grid;gap:16px;grid-template-columns:1fr 1fr}.form-error{background:var(--danger-light);border:1px solid #f5c6c6;border-radius:var(--radius-sm);color:var(--danger)}.form-error,.form-success{font-size:13px;margin-bottom:16px;padding:10px 13px}.form-success{background:var(--success-light);border:1px solid #a8dfc7;border-radius:var(--radius-sm);color:var(--success)}.form-section-title{border-bottom:1px solid var(--border);color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.6px;margin:22px 0 14px;padding-bottom:8px;text-transform:uppercase}.btn-primary{align-items:center;border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;display:inline-flex;font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:11px 20px;transition:background var(--transition),transform var(--transition),box-shadow var(--transition);width:100%}.btn-primary:hover{box-shadow:0 4px 14px rgba(26,63,216,.35);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text-sub);cursor:pointer;display:inline-flex;font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;gap:8px;padding:10px 18px;transition:background var(--transition)}.btn-secondary:hover{background:var(--surface-2)}.btn-danger{align-items:center;background:var(--danger-light);border:1px solid #f5c6c6;border-radius:var(--radius-sm);color:var(--danger);cursor:pointer;display:inline-flex;font-family:DM Sans,sans-serif;font-size:13px;padding:7px 13px}.btn-danger:hover{background:#facbcb}.btn-icon{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text-sub);cursor:pointer;display:inline-flex;height:32px;justify-content:center;transition:background var(--transition);width:32px}.btn-icon:hover{background:var(--surface-2);color:var(--text)}.btn-logout{align-items:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:inline-flex;height:32px;justify-content:center;transition:background var(--transition),color var(--transition);width:32px}.btn-logout:hover{background:rgba(214,59,59,.1)}.btn-upload{background:transparent;border:1.5px dashed var(--border);border-radius:var(--radius-sm);color:var(--accent);cursor:pointer;display:inline-block;font-family:DM Sans,sans-serif;font-size:12px;padding:6px 12px;transition:border-color var(--transition),background var(--transition)}.btn-upload:hover{background:var(--accent-light);border-color:var(--accent)}.app-shell{display:flex;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);bottom:0;display:flex;flex-direction:column;left:0;position:fixed;top:0;width:var(--sidebar-w);z-index:10}.sidebar-brand{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:10px;padding:20px 18px 16px}.sidebar-brand-text .brand-bzh,.sidebar-brand-text .brand-dot,.sidebar-brand-text .brand-upa{font-size:20px}.sidebar-nav{display:flex;flex:1;flex-direction:column;gap:2px;padding:12px 10px}.nav-item{align-items:center;color:var(--text-sub);display:flex;font-size:14px;gap:10px;padding:9px 12px;text-decoration:none;transition:background var(--transition),color var(--transition)}.nav-item:hover{color:var(--text);text-decoration:none}.nav-item.active{font-weight:500}.sidebar-footer{border-top:1px solid var(--border);gap:8px;padding:14px 12px}.sidebar-footer,.sidebar-user{align-items:center;display:flex}.sidebar-user{flex:1;gap:10px;min-width:0}.user-avatar{align-items:center;border-radius:50%;display:flex;flex-shrink:0;font-size:12px;font-weight:600;height:34px;justify-content:center;width:34px}.user-info{min-width:0}.user-name{font-size:13px;font-weight:500}.user-name,.user-role{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{color:var(--text-muted);font-size:11px}.main-content{flex:1;margin-left:var(--sidebar-w);min-height:100vh;padding:32px}.view{animation:fadeUp .25s ease}.view-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:28px}.view-title{font-size:26px}.view-subtitle{color:var(--text-muted);font-size:13px;margin-top:3px}.view-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.view-header .btn-primary{width:auto}.search-box{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);display:flex;gap:8px;padding:8px 12px;transition:border-color var(--transition)}.search-box:focus-within{border-color:var(--border-focus);box-shadow:0 0 0 3px rgba(26,63,216,.1)}.search-box svg{color:var(--text-muted);flex-shrink:0}.search-box input{background:transparent;border:none;font-size:14px;min-width:160px;outline:none}.filter-group{display:flex;gap:8px}.filter-group select{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text-sub);cursor:pointer;font-size:13px;outline:none;padding:8px 12px}.filter-group select:focus{border-color:var(--border-focus)}.catalogue-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.labo-card{animation:fadeUp .25s ease;background:var(--surface);border:1px solid var(--border);cursor:pointer;display:flex;flex-direction:column;gap:11px;padding:18px 20px;position:relative;transition:box-shadow .22s cubic-bezier(.4,0,.2,1),border-color .22s ease,transform .22s cubic-bezier(.34,1.4,.64,1)}.labo-card,.labo-card:after{border-radius:var(--radius-lg)}.labo-card:after{background:linear-gradient(135deg,rgba(90,173,30,.04),transparent 60%);content:"";inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity .22s ease}.labo-card:hover{border-color:rgba(90,173,30,.35);box-shadow:0 8px 28px rgba(0,0,0,.1),0 2px 8px rgba(90,173,30,.08);transform:translateY(-3px)}.labo-card:hover:after{opacity:1}.labo-card-top{align-items:flex-start;display:flex;gap:12px}.labo-card-top-right{flex:1;min-width:0}.labo-initial{align-items:center;background:var(--accent-light);border-radius:var(--radius-sm);color:var(--accent);display:flex;flex-shrink:0;font-size:16px;height:40px;justify-content:center;width:40px}.labo-initial,.labo-name{font-family:"DM Serif Display",serif}.labo-name{color:var(--text);font-size:17px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.labo-name-row{gap:7px;min-width:0}.card-referent,.labo-name-row{align-items:center;display:flex}.card-referent{color:var(--text-muted);font-size:11px;gap:4px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-referent svg{flex-shrink:0}.labo-tags{display:flex;flex-wrap:wrap;gap:5px}.tag{align-items:center;border-radius:20px;display:inline-flex;font-size:11px;font-weight:500;letter-spacing:.1px;padding:3px 8px}.tag-upa{background:var(--tag-upa);color:var(--tag-upa-text)}.tag-pharma{background:var(--tag-pharma);color:var(--tag-pharma-text)}.tag-retro{background:var(--tag-retro);color:var(--tag-retro-text)}.tag-indiv{background:var(--surface-2);color:var(--text-sub)}.tag-all{background:var(--teal-light);color:#00967c}.card-gammes{display:flex;flex-wrap:wrap;gap:5px;position:relative}.card-gammes-label{align-items:center;color:var(--text-muted);display:flex;font-size:9.5px;font-weight:600;gap:6px;letter-spacing:.8px;margin-bottom:1px;text-transform:uppercase;width:100%}.card-gammes-label:after{background:linear-gradient(to right,var(--border),transparent);content:"";flex:1;height:1px}.card-gamme-pill{animation:pillIn .35s cubic-bezier(.34,1.4,.64,1) both;animation-delay:calc(var(--i, 0)*45ms + 80ms);background:var(--surface);border:1px solid var(--border);border-radius:20px;color:var(--text-sub);cursor:default;font-size:11px;font-weight:500;gap:5px;overflow:hidden;padding:3px 10px 3px 5px;position:relative;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s ease,border-color .18s ease,background .18s ease;white-space:nowrap}.card-gamme-letter,.card-gamme-pill{align-items:center;display:inline-flex}.card-gamme-letter{border-radius:50%;flex-shrink:0;font-size:9px;font-weight:700;height:17px;justify-content:center;line-height:1;text-transform:uppercase;width:17px}.card-gamme-pill:nth-child(2):not(.card-gamme-more) .card-gamme-letter,.cgp-c0 .card-gamme-letter{background:rgba(90,173,30,.15);color:#3d8a0f}.card-gamme-pill:nth-child(3):not(.card-gamme-more) .card-gamme-letter,.cgp-c1 .card-gamme-letter{background:rgba(26,111,181,.13);color:#1a6fb5}.card-gamme-pill:nth-child(4):not(.card-gamme-more) .card-gamme-letter,.cgp-c2 .card-gamme-letter{background:rgba(124,58,237,.12);color:#6d28d9}.card-gamme-pill:nth-child(5):not(.card-gamme-more) .card-gamme-letter,.cgp-c3 .card-gamme-letter{background:rgba(220,80,50,.12);color:#c03020}.card-gamme-pill:nth-child(6):not(.card-gamme-more) .card-gamme-letter,.cgp-c4 .card-gamme-letter{background:rgba(0,150,124,.13);color:#00967c}.labo-card:hover .card-gamme-pill:hover{border-color:transparent;box-shadow:0 3px 10px rgba(0,0,0,.09);transform:translateY(-2px) scale(1.03);z-index:1}.labo-card:hover .card-gamme-pill{background:var(--surface-2)}.card-gamme-pill mark{background:linear-gradient(120deg,#fff176,#ffe57f);border-radius:3px;color:var(--text);font-style:normal;font-weight:600;padding:0 2px}.card-gamme-more{align-items:center;animation:pillIn .35s cubic-bezier(.34,1.4,.64,1) both;animation-delay:.36s;background:transparent;border:1px dashed color-mix(in srgb,var(--accent) 40%,transparent);border-radius:20px;color:var(--accent);display:inline-flex;font-size:11px;font-weight:600;gap:3px;letter-spacing:.2px;padding:3px 9px;transition:background .18s ease,border-color .18s ease}.labo-card:hover .card-gamme-more{background:var(--accent-light);border-color:color-mix(in srgb,var(--accent) 30%,transparent);border-style:solid}@keyframes pillIn{0%{opacity:0;transform:translateY(5px) scale(.88)}to{opacity:1;transform:translateY(0) scale(1)}}.labo-card-footer{align-items:center;border-top:1px solid var(--border);margin-top:auto;padding-top:11px}.card-docs-row,.labo-card-footer{display:flex;flex-wrap:wrap;gap:5px}.card-docs-row{flex:1}.doc-pill{align-items:center;background:var(--accent-light);border-radius:20px;color:var(--accent);display:inline-flex;font-size:11px;font-weight:500;gap:5px;padding:3px 9px}.doc-pill:before{background:var(--accent);border-radius:50%;content:"";display:inline-block;height:5px;opacity:.45;width:5px}.card-prod-badge{background:var(--teal-light);color:#00967c;gap:4px;margin-left:auto;white-space:nowrap}.card-prod-badge,.doc-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:11px;font-weight:500;padding:3px 9px}.doc-badge{background:var(--surface-2);color:var(--text-sub);gap:5px}.empty-state{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;font-size:14px;gap:10px;grid-column:1/-1;padding:80px 20px}.admin-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.admin-list-header{background:var(--surface-2);color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.5px;padding:12px 20px;text-transform:uppercase}.admin-list-header,.admin-row{border-bottom:1px solid var(--border);display:grid;gap:12px;grid-template-columns:2fr 1fr 1fr 1fr auto}.admin-row{align-items:center;animation:fadeUp .2s ease;padding:14px 20px;transition:background var(--transition)}.admin-row:last-child{border-bottom:none}.admin-row:hover{background:var(--surface-2)}.admin-row-name{font-weight:500}.admin-row-actions{align-items:center;display:flex;gap:6px;justify-content:flex-end}.modal-backdrop{align-items:center;animation:fadeIn .2s ease;backdrop-filter:blur(4px);background:rgba(13,21,38,.48);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:100}.modal{animation:slideUp .25s cubic-bezier(.34,1.56,.64,1);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:90vh;max-width:580px;overflow-y:auto;width:100%}.modal-wide{max-width:680px}.modal-header{align-items:center;background:var(--surface);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:22px 24px 18px;position:sticky;top:0;z-index:1}.modal-header h3{font-size:20px}.modal-close{background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;padding:4px;transition:background var(--transition)}.modal-close:hover{background:var(--surface-2);color:var(--text)}.modal-body{padding:22px 24px}.modal-footer{background:var(--surface);border-top:1px solid var(--border);bottom:0;display:flex;gap:10px;justify-content:flex-end;padding:16px 24px;position:sticky}.modal-footer .btn-primary{width:auto}.toggle-group{background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-sm);display:inline-flex;gap:2px;padding:3px}.toggle-btn{background:transparent;border:none;border-radius:5px;color:var(--text-sub);cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;padding:7px 14px;transition:background var(--transition),color var(--transition),box-shadow var(--transition);white-space:nowrap}.toggle-btn.active{background:var(--surface);box-shadow:var(--shadow-sm);color:var(--text);font-weight:500}.pharmacies-list{border:1.5px solid var(--border);flex-direction:column;gap:4px;margin-top:8px;max-height:160px;overflow-y:auto;padding:8px}.pharmacies-list,.pharmacy-check-item{border-radius:var(--radius-sm);display:flex}.pharmacy-check-item{align-items:center;cursor:pointer;font-size:13px;gap:8px;padding:6px 8px;transition:background var(--transition)}.pharmacy-check-item:hover{background:var(--surface-2)}.pharmacy-check-item input[type=checkbox]{accent-color:var(--accent);cursor:pointer;height:14px;width:14px}.docs-upload-grid{display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}.doc-upload-card{align-items:center;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:7px;padding:16px;text-align:center;transition:border-color var(--transition)}.doc-upload-card.has-file{background:var(--success-light);border-color:var(--success)}.doc-icon{color:var(--text-muted)}.doc-upload-card.has-file .doc-icon{color:var(--success)}.doc-label{color:var(--text-sub);font-size:12px;font-weight:600}.doc-formats{color:var(--text-muted);font-size:10px}.doc-status{color:var(--text-muted);font-size:11px}.doc-upload-card.has-file .doc-status{color:var(--success)}.doc-link a{color:var(--accent);font-size:11px}.progress-bar{background:var(--border);border-radius:2px;height:4px;overflow:hidden}.progress-fill{background:var(--accent);height:100%;transition:width .4s ease;width:0}.tarifs-ai-zone{border:1.5px solid var(--border);border-radius:var(--radius);margin-top:16px;overflow:hidden}.tarifs-ai-zone .form-section-title{border-bottom:1px solid var(--border);border-radius:0;margin:0;padding:11px 16px}.ai-count-badge{background:var(--accent-light);border-radius:20px;color:var(--accent);display:inline-block;font-size:11px;font-weight:500;padding:2px 8px}.ai-loading{align-items:center;color:var(--text-muted);display:flex;font-size:13px;gap:10px;padding:16px}.ai-spinner{animation:spin .7s linear infinite;border:2px solid var(--border);border-radius:50%;border-top-color:var(--accent);flex-shrink:0;height:16px;width:16px}.tarifs-table{border-collapse:collapse;font-size:13px;width:100%}.tarifs-table th{background:var(--surface-2);border-bottom:1.5px solid var(--border);color:var(--text-sub);font-size:11px;font-weight:600;letter-spacing:.4px;padding:9px 14px;position:sticky;text-align:left;text-transform:uppercase;top:0}.tarifs-table td{border-bottom:1px solid var(--border);padding:9px 14px}.tarifs-table tr:last-child td{border-bottom:none}.tarifs-table tr:hover td{background:var(--surface-2)}.code-cell{background:var(--accent-light);border-radius:4px;color:var(--accent);display:inline-block;font-family:monospace;font-size:11px;padding:2px 7px}.tarifs-scroll{max-height:300px;overflow-y:auto}.detail-meta{display:flex;flex-wrap:wrap;gap:8px}.detail-meta,.detail-section{margin-bottom:22px}.detail-label{align-items:center;color:var(--text-muted);display:flex;font-size:11px;font-weight:600;gap:8px;letter-spacing:.6px;margin-bottom:10px;text-transform:uppercase}.detail-conditions{background:var(--surface-2);border-radius:var(--radius-sm);color:var(--text-sub);font-size:14px;line-height:1.6;padding:14px;white-space:pre-wrap}.detail-docs{display:flex;flex-wrap:wrap;gap:10px}.doc-download-btn{align-items:center;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text-sub);display:inline-flex;font-size:13px;font-weight:500;gap:7px;padding:9px 16px;text-decoration:none;transition:background var(--transition),border-color var(--transition),color var(--transition)}.doc-download-btn:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent);text-decoration:none}.labo-nom-wrap{position:relative}.labo-nom-hint{color:var(--text-muted);font-size:11px;margin-top:5px}.labo-suggestions{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);left:0;max-height:240px;overflow-y:auto;position:absolute;right:0;top:calc(100% + 4px);z-index:50}.labo-suggestion-item{align-items:center;border-bottom:1px solid var(--border);color:var(--text);cursor:pointer;display:flex;font-size:13px;gap:10px;padding:9px 13px;transition:background var(--transition)}.labo-suggestion-item:last-child{border-bottom:none}.labo-suggestion-item.active,.labo-suggestion-item:hover{background:var(--accent-light);color:var(--accent)}.labo-suggestion-item .labo-sug-icon{align-items:center;background:var(--surface-2);border-radius:6px;color:var(--accent);display:flex;flex-shrink:0;font-family:"DM Serif Display",serif;font-size:11px;font-weight:700;height:28px;justify-content:center;width:28px}.labo-suggestion-item.active .labo-sug-icon,.labo-suggestion-item:hover .labo-sug-icon{background:#fff}.labo-suggestion-item .labo-sug-sub{color:var(--text-muted);font-size:11px;margin-top:1px}.labo-sug-add{color:var(--accent);font-style:italic}.labo-sug-divider{background:var(--surface-2);border-bottom:1px solid var(--border);color:var(--text-muted);font-size:10px;font-weight:600;letter-spacing:.5px;padding:5px 13px;text-transform:uppercase}.dynamic-docs-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.doc-row{align-items:center;animation:fadeUp .2s ease;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-sm);display:grid;gap:8px;grid-template-columns:170px 1fr auto auto;padding:10px 12px;transition:border-color var(--transition)}.doc-row.has-file{background:var(--success-light);border-color:var(--success)}.doc-row select{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;outline:none;padding:7px 10px;transition:border-color var(--transition)}.doc-row.has-file select{background:#fff;border-color:#a8dfc7}.doc-row select:focus{border-color:var(--border-focus)}.doc-row-filename{color:var(--text-muted);font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-row.has-file .doc-row-filename{color:var(--success);font-weight:500}.btn-choose-file,.doc-row-filename a{color:var(--accent);font-size:12px}.btn-choose-file{align-items:center;background:var(--accent-light);border:1.5px solid var(--accent);border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;flex-shrink:0;font-family:DM Sans,sans-serif;font-weight:500;gap:5px;padding:7px 13px;transition:background var(--transition),border-color var(--transition),color var(--transition);white-space:nowrap}.btn-choose-file:hover{background:var(--accent);color:#fff}.doc-row.has-file .btn-choose-file{background:var(--success-light);border-color:var(--success);color:var(--success)}.doc-row.has-file .btn-choose-file:hover{background:var(--success);border-color:var(--success);color:#fff}.doc-file-ok{color:var(--success);font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-existing-link{color:var(--accent);font-size:12px}.doc-no-file{color:var(--text-muted);font-size:12px;font-style:italic}.btn-remove-doc{align-items:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;height:28px;justify-content:center;transition:background var(--transition),color var(--transition);width:28px}.btn-remove-doc:hover{background:var(--danger-light);color:var(--danger)}.btn-add-doc{align-items:center;background:transparent;border:1.5px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:none;font-family:DM Sans,sans-serif;font-size:13px;gap:7px;justify-content:center;margin-top:4px;padding:8px 14px;transition:border-color var(--transition),color var(--transition),background var(--transition);width:100%}.btn-add-doc:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.rfa-checkboxes{display:flex;flex-wrap:wrap;gap:16px;margin-top:4px}.rfa-check-item{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text-sub);cursor:pointer;display:flex;font-size:13px;gap:8px;padding:7px 14px 7px 10px;transition:border-color var(--transition),background var(--transition),color var(--transition);user-select:none}.rfa-check-item:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.rfa-check-item input[type=checkbox]{display:none}.rfa-check-box{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:4px;display:flex;flex-shrink:0;height:16px;justify-content:center;position:relative;transition:background var(--transition),border-color var(--transition);width:16px}.rfa-check-item input:checked~.rfa-check-box{background:var(--accent);border-color:var(--accent)}.rfa-check-item input:checked~.rfa-check-box:after{border:2px solid #fff;border-left:none;border-top:none;content:"";display:block;height:7px;transform:rotate(45deg) translate(-1px,-1px);width:4px}.rfa-check-item:has(input:checked){background:var(--accent-light);border-color:var(--accent);color:var(--accent);font-weight:500}.tag-rfa{background:#f0e8fc;color:#7c3aed}.gammes-list{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px;min-height:0}.gamme-tag{animation:fadeUp .2s ease;background:var(--accent-light);border:1px solid #c5d3f8;border-radius:20px;display:inline-flex;font-size:12px;font-weight:500;gap:6px;padding:5px 10px 5px 12px}.gamme-tag,.gamme-tag button{align-items:center;color:var(--accent)}.gamme-tag button{background:none;border:none;border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;height:14px;justify-content:center;opacity:.5;padding:0;transition:opacity var(--transition),background var(--transition);width:14px}.gamme-tag button:hover{background:rgba(26,63,216,.15);opacity:1}.gammes-add-row{align-items:center;display:flex;gap:8px}.gammes-add-row input{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text);flex:1;font-family:DM Sans,sans-serif;font-size:13px;outline:none;padding:9px 12px;transition:border-color var(--transition),box-shadow var(--transition)}.gammes-add-row input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px rgba(26,63,216,.1)}.btn-add-gamme{align-items:center;background:var(--accent);border:1.5px solid var(--accent);border-radius:var(--radius-sm);color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:36px;justify-content:center;transition:background var(--transition),transform var(--transition);width:36px}.btn-add-gamme:hover{background:var(--accent-hover);transform:scale(1.05)}.btn-add-gamme:disabled{cursor:not-allowed;opacity:.4;transform:none}.gammes-count-badge{color:var(--text-muted);font-size:11px;font-weight:400;margin-left:6px}.gammes-limit{background:var(--warning-light,#fef3e7);border-radius:var(--radius-sm);color:var(--warning,#e07b2a);font-size:11px;margin-top:6px;padding:5px 10px}.year-tabs,.year-tabs-detail{align-items:center;display:flex;flex-wrap:wrap;gap:4px}.year-tab{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:20px;color:var(--text-muted);cursor:pointer;display:flex;font-family:DM Sans,sans-serif;font-size:12px;font-weight:500;gap:5px;padding:3px 10px;transition:all var(--transition)}.year-tab:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.year-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.year-tab .tab-del{align-items:center;background:hsla(0,0%,100%,.25);border:none;border-radius:50%;color:#fff;cursor:pointer;display:none;font-size:10px;height:14px;justify-content:center;line-height:1;padding:0;transition:background var(--transition);width:14px}.year-tab.active .tab-del{display:flex}.year-tab .tab-del:hover{background:hsla(0,0%,100%,.45)}.year-tab-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.conditions-year-label{color:var(--accent);font-size:12px;font-weight:600}.btn-add-year{align-items:center;background:transparent;border:1.5px dashed var(--border);border-radius:20px;color:var(--text-muted);cursor:pointer;display:inline-flex;font-family:DM Sans,sans-serif;font-size:11px;gap:5px;padding:4px 10px;transition:border-color var(--transition),color var(--transition),background var(--transition)}.btn-add-year:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.detail-info-row{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px}.detail-info-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);flex:1;min-width:180px;padding:14px 16px}.detail-info-card .detail-label{margin-bottom:8px}.referent-name{align-items:center;color:var(--text);display:flex;font-size:14px;font-weight:500;gap:7px}.referent-name svg{color:var(--accent);flex-shrink:0}.gammes-display{display:flex;flex-wrap:wrap;gap:6px}.gamme-badge{background:var(--accent-light);border:1px solid #c5d3f8;border-radius:20px;color:var(--accent);display:inline-block;font-size:11px;font-weight:500;padding:3px 10px}.legal-body{color:var(--text-sub);font-size:14px;line-height:1.7}.legal-section{margin-bottom:28px}.legal-section h4{border-bottom:1px solid var(--border);color:var(--text);font-family:"DM Serif Display",serif;font-size:16px;margin-bottom:12px;padding-bottom:8px}.legal-section p{margin-bottom:10px}.legal-section p:last-child{margin-bottom:0}.legal-host-grid{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.legal-host-card{align-items:flex-start;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);display:flex;gap:14px;padding:14px 16px}.legal-host-icon{align-items:center;background:var(--accent-light);border-radius:var(--radius-sm);color:var(--accent);display:flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.legal-host-name{color:var(--text);font-size:13px;font-weight:500}.legal-host-provider{color:var(--accent);font-size:13px}.legal-host-detail{margin-top:2px}.legal-host-detail,.legal-rgpd{color:var(--text-muted);font-size:12px}.legal-rgpd{background:var(--teal-light);border:1px solid #b3eee4;border-radius:var(--radius-sm);padding:10px 14px}.toast{animation:toastIn .3s cubic-bezier(.34,1.56,.64,1);background:var(--text);border-radius:var(--radius);bottom:28px;box-shadow:var(--shadow-lg);color:#fff;font-size:13px;max-width:320px;padding:12px 18px;position:fixed;right:28px;z-index:200}.toast.success{background:var(--success)}.toast.error{background:var(--danger)}.toast.warning{background:var(--warning)}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastIn{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes spin{to{transform:rotate(1turn)}}.modal-validation{max-height:88vh;max-width:780px}.validation-toolbar{align-items:center;background:var(--surface-2);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:11px 16px}.val-select-all{align-items:center;color:var(--text-sub);cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:8px}.val-select-all input[type=checkbox]{accent-color:var(--accent);cursor:pointer;height:14px;width:14px}.validation-scroll{max-height:460px;overflow-y:auto}.validation-table td{padding:6px 10px;vertical-align:middle}.validation-table td input[type=checkbox]{accent-color:var(--accent);cursor:pointer;height:15px;width:15px}.val-input{background:transparent;border:1.5px solid transparent;border-radius:5px;color:var(--text);font-family:DM Sans,sans-serif;font-size:13px;padding:5px 8px;transition:border-color var(--transition),background var(--transition);width:100%}.val-input:hover{background:var(--surface);border-color:var(--border)}.val-input:focus{background:var(--surface);border-color:var(--border-focus);box-shadow:0 0 0 3px rgba(26,63,216,.08);outline:none}.val-nom{font-weight:500}.val-price{color:var(--accent);font-weight:600;text-align:right}.row-deselected td{opacity:.35}.row-deselected .val-input{color:var(--text-muted)}@media (max-width:768px){.sidebar{display:none}.main-content{margin-left:0;padding:20px 16px}.admin-list-header,.admin-row{grid-template-columns:1fr auto}.admin-list-header span:not(:first-child):not(:last-child),.admin-row>:not(:first-child):not(:last-child){display:none}.docs-upload-grid,.form-row.two-col{grid-template-columns:1fr}.auth-card{padding:24px}.legal-host-card{flex-direction:column}.modal-validation{max-width:100%}.validation-table td:nth-child(5),.validation-table th:nth-child(5){display:none}}.ref-labo-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.ref-card{align-items:center;animation:fadeUp .2s ease;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;gap:14px;padding:18px;transition:box-shadow var(--transition),border-color var(--transition)}.ref-card:hover{border-color:#c5ccdf;box-shadow:var(--shadow-sm)}.ref-card-logo{align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--accent);display:flex;flex-shrink:0;font-family:"DM Serif Display",serif;font-size:16px;height:48px;justify-content:center;overflow:hidden;width:48px}.ref-card-logo img{height:100%;object-fit:contain;padding:4px;width:100%}.ref-card-info{flex:1;min-width:0}.ref-card-nom{color:var(--text);font-size:13px;font-weight:600}.ref-card-nom,.ref-card-produits{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ref-card-produits{color:var(--text-muted);font-size:11px;margin-top:2px}.ref-card-actions{display:flex;flex-shrink:0;gap:4px}.ref-logo-section{align-items:center;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius);display:flex;gap:16px;margin-bottom:18px;padding:14px}.ref-logo-preview{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);display:flex;flex-shrink:0;height:64px;justify-content:center;overflow:hidden;width:64px}.ref-logo-preview img{height:100%;object-fit:contain;padding:4px;width:100%}.ref-logo-label{color:var(--text);font-size:13px;font-weight:500}.ref-logo-hint{color:var(--text-muted);font-size:11px;margin-top:2px}.ref-card-site{color:var(--accent);display:inline-block;font-size:11px;margin-top:3px;text-decoration:none}.ref-card-site:hover{text-decoration:underline}.labo-logo-img{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;flex-shrink:0;height:40px;justify-content:center;overflow:hidden;width:40px}.labo-logo-img img{height:100%;object-fit:contain;padding:3px;width:100%}.card-icons-row{align-items:center;display:flex;flex-wrap:wrap;gap:6px;width:100%}.card-icon-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:11px;font-weight:500;gap:4px;padding:3px 9px;white-space:nowrap}.vis-all{background:var(--teal-light);color:#00967c}.vis-restricted{background:var(--warning-light,#fef3e7);color:var(--warning,#e07b2a)}.vis-docs{background:var(--accent-light);color:var(--accent)}.vis-produits{background:#f0e8fc;color:#7c3aed}.logs-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.log-row{align-items:center;animation:fadeUp .15s ease;border-bottom:1px solid var(--border);display:grid;font-size:13px;gap:12px;grid-template-columns:110px 1fr 1fr 1fr 130px;padding:12px 20px;transition:background var(--transition)}.log-row:last-child{border-bottom:none}.log-row:hover{background:var(--surface-2)}.log-action-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:11px;font-weight:600;justify-content:center;padding:3px 10px;white-space:nowrap}.log-cible{color:var(--text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-user{display:flex;flex-direction:column;gap:2px}.log-user-name{color:var(--text-sub);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-user-role{border-radius:10px;display:inline-block;font-size:10px;font-weight:600;letter-spacing:.4px;padding:1px 6px;text-transform:uppercase;width:fit-content}.role-user{background:var(--surface-2);color:var(--text-muted)}.role-admin{background:var(--accent-light);color:var(--accent)}.role-superAdmin{background:#f0e8fc;color:#7c3aed}.log-details{font-size:12px;overflow:hidden;text-overflow:ellipsis}.log-date,.log-details{color:var(--text-muted);white-space:nowrap}.log-date{font-size:11px;text-align:right}.user-role-badge{border-radius:8px;display:inline-block;font-size:10px;font-weight:600;letter-spacing:.3px;margin-top:2px;padding:1px 6px;text-transform:uppercase}.badge-user{background:var(--surface-2);color:var(--text-muted)}.badge-admin{background:var(--accent-light);color:var(--accent)}.badge-superAdmin{background:#f0e8fc;color:#7c3aed}.upa-logo-img{filter:drop-shadow(0 2px 8px rgba(90,173,30,.3));height:44px;width:44px}.upa-logo-img,.upa-logo-img-sm{border-radius:50%;display:block;object-fit:cover}.upa-logo-img-sm{height:32px;width:32px}.auth-logo-img{border-radius:50%;display:block;filter:drop-shadow(0 3px 12px rgba(90,173,30,.35));height:56px;object-fit:cover;width:56px}.sidebar-brand{background:var(--accent-dark)}.sidebar-brand .brand-upa{color:var(--teal)}.sidebar-brand .brand-dot{color:#fff}.sidebar-brand .brand-bzh{color:#ccc}.nav-item:hover{background:var(--surface-2);color:var(--accent)}.btn-primary{background:var(--accent)}.btn-primary:hover{background:var(--accent-hover);box-shadow:0 4px 14px rgba(90,173,30,.35)}.cookie-banner{align-items:center;animation:slideUpBanner .4s ease;background:var(--accent-dark);bottom:0;box-shadow:0 -4px 20px rgba(0,0,0,.3);color:#eee;display:flex;flex-wrap:wrap;gap:16px;left:0;padding:16px 24px;position:fixed;right:0;z-index:999}@keyframes slideUpBanner{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.cookie-banner-icon{flex-shrink:0;font-size:24px}.cookie-banner-text{color:#ddd;flex:1;font-size:13px;line-height:1.5;min-width:200px}.cookie-banner-text strong{color:#fff}.cookie-banner-text a{color:var(--teal);text-decoration:underline}.cookie-banner-actions{display:flex;flex-shrink:0;flex-wrap:wrap;gap:10px}.btn-cookie-accept{background:var(--accent);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;padding:9px 20px;transition:background var(--transition)}.btn-cookie-accept:hover{background:var(--accent-hover)}.btn-cookie-details{background:transparent;border:1px solid #444;border-radius:var(--radius-sm);color:#aaa;cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;padding:9px 16px;transition:color var(--transition),border-color var(--transition)}.btn-cookie-details:hover{border-color:#777;color:#fff}.legal-tabs{border-bottom:2px solid var(--border);display:flex;gap:0;margin-bottom:24px;overflow-x:auto}.legal-tab-btn{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;margin-bottom:-2px;padding:10px 18px;transition:color var(--transition),border-color var(--transition);white-space:nowrap}.legal-tab-btn.active{border-bottom-color:var(--accent);color:var(--accent);font-weight:600}.legal-tab-btn:hover{color:var(--text)}.legal-tab-content{display:none}.legal-tab-content.active{display:block}.legal-article{border-bottom:1px solid var(--border);margin-bottom:28px;padding-bottom:24px}.legal-article:last-child{border-bottom:none}.legal-article h4{align-items:center;color:var(--text);display:flex;font-family:"DM Serif Display",serif;font-size:16px;gap:8px;margin-bottom:12px}.legal-article h5{font-weight:600;margin:12px 0 6px}.legal-article h5,.legal-article p{color:var(--text-sub);font-size:13px}.legal-article p{line-height:1.7;margin-bottom:8px}.legal-article ul{padding-left:18px}.legal-article ul li{color:var(--text-sub);font-size:13px;line-height:1.7;margin-bottom:4px}.legal-article a{color:var(--accent)}.legal-table{border-collapse:collapse;border-radius:var(--radius-sm);font-size:12px;margin-top:10px;overflow:hidden;width:100%}.legal-table th{background:var(--surface-2);font-weight:600;text-align:left}.legal-table td,.legal-table th{border:1px solid var(--border);color:var(--text-sub);padding:8px 12px}.legal-table td{vertical-align:top}.legal-contact-box{background:var(--accent-light);border:1px solid var(--border-focus);border-radius:var(--radius-sm);color:var(--text-sub);font-size:13px;margin-top:10px;padding:14px 16px}.legal-contact-box strong{color:var(--text)}.legal-cookie-item{background:var(--surface-2);border-radius:var(--radius-sm);display:flex;font-size:13px;gap:12px;margin-bottom:8px;padding:12px}.legal-cookie-icon{flex-shrink:0;font-size:20px}.legal-cookie-info{flex:1}.legal-cookie-name{color:var(--text);font-weight:600;margin-bottom:3px}.legal-cookie-desc{color:var(--text-sub);line-height:1.5}.legal-cookie-duration{margin-top:4px}.legal-cookie-duration,.legal-footer{color:var(--text-muted);font-size:11px}.legal-footer{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:20px}.legal-footer a{color:var(--text-muted);font-size:11px}.legal-footer a:hover{color:var(--accent)}.legal-footer span{opacity:.4}.sidebar{background:#111;border-right:none}.sidebar-brand{border-bottom:1px solid hsla(0,0%,100%,.1);padding:18px 16px 14px}.sidebar-nav{padding:10px 8px}.nav-item{border-radius:var(--radius-sm);color:hsla(0,0%,100%,.65)}.nav-item:hover{background:hsla(0,0%,100%,.08);color:#fff}.nav-item.active{background:var(--accent-light);color:var(--accent)}.sidebar-footer{border-top:1px solid hsla(0,0%,100%,.1)}.user-avatar{background:var(--accent-light);color:var(--accent)}.user-name{color:hsla(0,0%,100%,.9)}.btn-logout{color:hsla(0,0%,100%,.4)}.btn-logout:hover{background:rgba(214,59,59,.2);color:var(--danger)}.auth-brand-text .brand-upa{color:var(--accent);font-size:28px}.auth-brand-text .brand-dot{color:#222;font-size:28px}.auth-brand-text .brand-bzh{color:var(--text-sub);font-size:28px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(90,173,30,.12)}.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(90,173,30,.1)}.sidebar-legal{border-top:1px solid hsla(0,0%,100%,.06);display:flex;gap:14px;justify-content:center;padding:8px 16px 12px}.sidebar-legal a{font-size:14px;opacity:.35;text-decoration:none;transition:opacity var(--transition)}.sidebar-legal a:hover{opacity:.8}.tag-new{align-items:center;animation:pulseNew 2.4s ease-in-out infinite;background:linear-gradient(135deg,rgba(255,90,40,.92),rgba(220,30,80,.92));border:1px solid hsla(0,0%,100%,.25);border-radius:20px;box-shadow:0 1px 8px rgba(220,50,60,.45),inset 0 1px 0 hsla(0,0%,100%,.2);color:#fff;cursor:pointer;display:inline-flex;font-size:9.5px;font-weight:700;gap:4px;letter-spacing:.6px;overflow:hidden;padding:3px 9px 3px 6px;position:relative;text-transform:uppercase;transition:opacity var(--transition),transform var(--transition),box-shadow var(--transition);user-select:none;vertical-align:middle}.tag-new:before{animation:shimmerNew 3s ease-in-out infinite;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.18),transparent);content:"";height:100%;left:-60%;position:absolute;top:0;width:40%}.tag-new:hover{box-shadow:0 4px 14px rgba(220,50,60,.55),inset 0 1px 0 hsla(0,0%,100%,.2);opacity:.9;transform:translateY(-1px) scale(1.02)}.tag-new-sm{font-size:8.5px;padding:2px 7px 2px 5px}.tag-new-dot{animation:blinkDot 1.6s ease-in-out infinite;background:hsla(0,0%,100%,.9);border-radius:50%;flex-shrink:0;height:5px;width:5px}.tag-new-close{font-size:11px;font-weight:300;line-height:1;margin-left:2px;opacity:0;transition:opacity .15s}.tag-new:hover .tag-new-close{opacity:.85}@keyframes pulseNew{0%,to{box-shadow:0 1px 8px rgba(220,50,60,.45),inset 0 1px 0 hsla(0,0%,100%,.2)}50%{box-shadow:0 2px 16px rgba(220,50,60,.7),inset 0 1px 0 hsla(0,0%,100%,.2)}}@keyframes shimmerNew{0%{left:-60%}60%,to{left:120%}}@keyframes blinkDot{0%,to{opacity:1}50%{opacity:.3}}.ref-auto-badge{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;color:var(--text-muted);display:inline-block;font-size:9px;font-weight:600;letter-spacing:.4px;margin-left:4px;padding:1px 6px;text-transform:uppercase;vertical-align:middle}.import-tabs{border-bottom:2px solid var(--border);display:flex;gap:0;margin-bottom:20px}.import-tab-btn{align-items:center;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);cursor:pointer;display:inline-flex;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;gap:6px;margin-bottom:-2px;padding:10px 16px;transition:color var(--transition),border-color var(--transition);white-space:nowrap}.import-tab-btn.active{border-bottom-color:var(--accent);color:var(--accent);font-weight:600}.import-tab-btn:hover{color:var(--text)}.import-tab-content{display:none}.import-tab-content.active{display:block}.import-search-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}.btn-link{background:none;border:none;border-radius:4px;color:var(--accent);cursor:pointer;font-family:DM Sans,sans-serif;font-size:12px;padding:4px 6px;transition:background var(--transition);white-space:nowrap}.btn-link:hover{background:var(--accent-light)}.import-hint{color:var(--text-muted);font-size:11px;margin-bottom:14px}.import-labo-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin-bottom:12px;max-height:320px;overflow-y:auto;padding:2px}.import-labo-item{align-items:center;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;display:flex;gap:9px;padding:9px 12px;position:relative;transition:border-color var(--transition),background var(--transition);user-select:none}.import-labo-item.selected,.import-labo-item:hover:not(.already-in-ref){background:var(--accent-light);border-color:var(--accent)}.import-labo-item.already-in-ref{background:var(--surface-2);cursor:not-allowed;opacity:.45}.import-labo-check{align-items:center;border:1.5px solid var(--border);border-radius:4px;display:flex;flex-shrink:0;height:16px;justify-content:center;transition:background var(--transition),border-color var(--transition);width:16px}.import-labo-item.selected .import-labo-check{background:var(--accent);border-color:var(--accent)}.import-labo-item.selected .import-labo-check:after{border:2px solid #fff;border-left:none;border-top:none;content:"";display:block;height:7px;transform:rotate(45deg) translate(-1px,-1px);width:4px}.import-labo-already{color:var(--text-muted);font-size:9px;font-weight:600;position:absolute;right:5px;top:4px}.import-labo-name{color:var(--text);font-size:12px;font-weight:500;line-height:1.3}.import-labo-sub{color:var(--text-muted);font-size:10px;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-selection-count{border-top:1px solid var(--border);color:var(--accent);font-size:12px;font-weight:600;padding:8px 0 0}.import-drop-zone{border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;margin-bottom:16px;padding:36px 24px;text-align:center;transition:border-color var(--transition),background var(--transition)}.import-drop-zone.dragover{background:var(--accent-light);border-color:var(--accent)}.import-drop-zone:hover{border-color:var(--accent)}.import-drop-icon{color:var(--text-muted);margin-bottom:12px}.import-drop-title{color:var(--text);font-weight:600;margin-bottom:4px}.import-drop-sub{color:var(--text-muted);font-size:13px}.import-csv-format{background:var(--surface-2);border-radius:var(--radius-sm);color:var(--text-sub);font-size:12px;line-height:1.6;padding:12px 14px}.import-csv-format code{background:var(--surface);border:1px solid var(--border);border-radius:3px;color:var(--accent);font-family:monospace;font-size:11px;padding:1px 5px}#import-textarea{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:DM Sans,sans-serif;font-size:13px;line-height:1.6;outline:none;padding:10px 12px;resize:vertical;transition:border-color var(--transition);width:100%}#import-textarea:focus{border-color:var(--accent)}.import-preview{border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:14px;max-height:200px;overflow-y:auto}.import-preview-row{align-items:center;border-bottom:1px solid var(--border);display:grid;font-size:12px;gap:10px;grid-template-columns:1fr 1fr auto;padding:8px 14px}.import-preview-row:last-child{border-bottom:none}.import-preview-row.header-row{background:var(--surface-2);color:var(--text-sub);font-weight:600;position:sticky;top:0}.import-preview-row.skip{opacity:.45}.import-preview-nom{color:var(--text);font-weight:500}.import-preview-prods{color:var(--text-muted)}.import-badge-new{background:var(--accent-light);color:var(--accent);font-weight:600}.import-badge-new,.import-badge-skip{border-radius:10px;font-size:10px;padding:1px 7px;white-space:nowrap}.import-badge-skip{background:var(--surface-2);color:var(--text-muted)}.import-result-zone{background:var(--success-light);border:1px solid #a8dfc7;border-radius:var(--radius-sm);margin-top:16px;padding:14px}.import-result-header{align-items:center;color:var(--success);display:flex;font-size:13px;font-weight:600;gap:7px;margin-bottom:8px}.import-result-list{display:flex;flex-wrap:wrap;gap:5px}.import-result-tag{background:#fff;border:1px solid #a8dfc7;border-radius:20px;color:var(--success);font-size:11px;font-weight:500;padding:2px 9px}.grecaptcha-badge{opacity:0!important;visibility:hidden!important}