:root{--bg: #eef1fb;--panel: #ffffff;--panel2: #f6f7fc;--border: #e2e5f3;--text: #1b1d2a;--text2: #5b5f78;--text3: #9497ac;--accent: #4f46e5;--accent2: #06b6d4;--accent-hover: #4338ca;--gold: #d97706;--pass: #16a34a;--fail: #dc2626;--info: #2563eb;--shadow-sm: 0 1px 2px rgba(30, 27, 75, .05), 0 1px 8px rgba(30, 27, 75, .05);--shadow-md: 0 8px 24px rgba(45, 39, 130, .1);--radius: 14px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(900px 500px at 8% -10%,rgba(79,70,229,.1),transparent 60%),radial-gradient(800px 460px at 100% 0%,rgba(6,182,212,.1),transparent 55%),var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;letter-spacing:-.01em}.app{display:flex;min-height:100vh}.auth-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--text2);font-size:14px}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(700px 420px at 15% 10%,rgba(79,70,229,.2),transparent 60%),radial-gradient(700px 420px at 85% 90%,rgba(6,182,212,.2),transparent 60%),linear-gradient(160deg,#eef1fb,#e7ecfb 60%,#eaf6f8)}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-md);padding:44px 40px;width:340px;text-align:center;position:relative;overflow:hidden}.login-card:before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--accent),var(--accent2))}.login-brand{font-size:26px;font-weight:700;letter-spacing:-.02em;background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent}.login-sub{font-size:13px;color:var(--text2);margin-top:6px;margin-bottom:28px}.login-form{display:flex;flex-direction:column;gap:12px}.login-form input{padding:11px 14px;font-size:14px}.sidebar{width:240px;background:#ffffffc7;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-right:1px solid var(--border);padding:24px 16px;flex-shrink:0;display:flex;flex-direction:column}.sidebar h2{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin:0 8px 14px}.fund-item{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text);padding:10px 12px;border-radius:10px;cursor:pointer;font-size:14.5px;font-weight:500;margin-bottom:2px;transition:background .15s ease}.fund-item:hover{background:var(--panel2)}.fund-item.active{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;box-shadow:0 4px 14px #4f46e547}.new-fund-btn{margin-top:14px;width:100%;padding:10px;border-radius:10px;border:1px dashed var(--border);background:none;color:var(--text2);cursor:pointer;font-size:13.5px;font-weight:500;transition:border-color .15s ease,color .15s ease}.new-fund-btn:hover{border-color:var(--accent);color:var(--accent)}.sidebar-spacer{flex:1}.main{flex:1;padding:40px 48px;max-width:1240px}.topbar{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-bottom:20px}.topbar-user{font-size:13.5px;color:var(--text2)}.topbar-user strong{color:var(--text);font-weight:600}.hero{background:linear-gradient(135deg,#4338ca,#4f46e5 45%,#06b6d4);border:none;border-radius:20px;padding:36px 40px;margin-bottom:28px;box-shadow:0 12px 30px #4338ca47;color:#fff}.hero-name{font-size:32px;font-weight:700;letter-spacing:-.02em;color:#fff}.hero-sub{color:#ffffffd1;font-size:14px;margin-top:6px}.hero-kpis{display:flex;gap:40px;margin-top:26px;flex-wrap:wrap}.kpi-val{font-size:17px;font-weight:600;color:#fff}.kpi-lbl{font-size:11px;color:#ffffffb3;text-transform:uppercase;letter-spacing:.06em;margin-top:3px}.tabs{display:flex;gap:4px;margin-bottom:28px;border-bottom:1px solid var(--border);flex-wrap:wrap}.tab{padding:12px 18px;background:none;border:none;color:var(--text2);cursor:pointer;font-size:14.5px;font-weight:500;border-bottom:2px solid transparent;transition:color .15s ease}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom:2px solid;border-image:linear-gradient(90deg,var(--accent),var(--accent2)) 1}.section-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin:28px 0 14px}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.info-box{background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--accent2);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm);transition:box-shadow .15s ease,transform .15s ease}.info-box:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.ib-label{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.ib-val{font-size:14.5px;font-weight:600;margin-top:6px;color:var(--text);line-height:1.35}.ib-sub{font-size:12px;color:var(--text2);margin-top:4px}.score-row{display:flex;gap:14px;margin-bottom:20px;flex-wrap:wrap}.score-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px 26px;cursor:pointer;min-width:130px;text-align:center;box-shadow:var(--shadow-sm);transition:box-shadow .15s ease,transform .15s ease}.score-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.score-val{font-size:26px;font-weight:700;letter-spacing:-.02em}.score-lbl{font-size:11.5px;color:var(--text3);margin-top:6px;font-weight:500}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--text2);text-transform:uppercase;font-size:10.5px;font-weight:700;letter-spacing:.05em;padding:10px;border-bottom:2px solid var(--accent2);background:var(--panel2)}th:first-child{border-top-left-radius:10px}th:last-child{border-top-right-radius:10px}td{padding:10px;border-bottom:1px solid var(--border);vertical-align:top;color:var(--text)}tr:hover td{background:var(--panel2)}.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:600;letter-spacing:.01em}.badge-ok{background:#dcfce7;color:var(--pass)}.badge-ko{background:#fee2e2;color:var(--fail)}.badge-na{background:#eceef7;color:var(--text2)}.badge-info{background:#dbeafe;color:var(--info)}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px}.dot-bleu{background:#2563eb}.dot-orange{background:#f59e0b}.dot-vclair{background:#22c55e}.dot-vfonce{background:#15803d}.dot-rouge{background:#ef4444}.legend{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:18px;font-size:13px;color:var(--text2)}.legend-item{display:flex;align-items:center}.notice{border-radius:var(--radius);padding:14px 18px;margin-bottom:18px;font-size:13.5px;line-height:1.5}.notice-warn{background:#fef3e2;border:1px solid #fbd38d;color:#92400e}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1b183c6b;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:28px;max-width:760px;max-height:82vh;overflow:auto;width:90%;box-shadow:0 20px 60px #1e1b4b38}.modal-close{float:right;background:var(--panel2);border:none;color:var(--text2);font-size:15px;width:30px;height:30px;border-radius:50%;cursor:pointer}.modal-close:hover{background:var(--border)}.btn{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;border:none;padding:10px 20px;border-radius:980px;font-weight:600;font-size:13.5px;cursor:pointer;display:inline-block;text-decoration:none;box-shadow:0 4px 12px #4f46e540;transition:filter .15s ease,transform .1s ease}.btn:hover{filter:brightness(1.06)}.btn:active{transform:scale(.98)}.btn:disabled{background:var(--text3);box-shadow:none;cursor:not-allowed}.btn.secondary{background:var(--panel2);color:var(--text);border:1px solid var(--border);box-shadow:none}.upload-row{display:flex;gap:10px;align-items:center;margin-bottom:20px;flex-wrap:wrap}select,input[type=text],input[type=password],input[type=file]{background:var(--panel);border:1px solid var(--border);color:var(--text);padding:8px 12px;border-radius:10px;font-size:13.5px;font-family:inherit}select:focus,input[type=text]:focus,input[type=password]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #4f46e526}.adv-tag{background:#fef3e2;color:var(--gold);padding:2px 9px;border-radius:12px;font-size:11px;font-weight:600}.small{font-size:12px;color:var(--text3)}
