:root{--bg-page:#faf6ee;--bg-card:#fff;--text-primary:#0e3b5c;--text-secondary:#5a7a96;--accent:#c15a34;--accent-light:#e8835a;--accent-hover:#a84a28;--color-cai:#0e3b5c;--color-rad:#c15a34;--color-autre:#d4a574;--color-green:#2e7d32;--color-green-bg:#e8f5e9;--color-yellow:#f57f17;--color-yellow-bg:#fff8e1;--color-red:#d32f2f;--color-red-bg:#ffebee;--radius:12px;--radius-sm:8px;--shadow:0 1px 3px #0e3b5c14, 0 1px 2px #0e3b5c0f;--shadow-lg:0 4px 12px #0e3b5c1a;--font:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font);background:var(--bg-page);color:var(--text-primary);min-height:100vh;line-height:1.5}.app-container{max-width:960px;margin:0 auto;padding:16px}@media (width>=768px){.app-container{padding:32px 24px}}.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:20px}.card-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:12px;font-size:.85rem;font-weight:600}.section-sep{color:var(--text-secondary);align-items:center;gap:12px;margin:24px 0;font-size:.75rem;display:flex}.section-sep:before,.section-sep:after{content:"";background:#e5ddd0;flex:1;height:1px}.progress-bar-track{background:#f0eae0;border-radius:100px;width:100%;height:24px;position:relative;overflow:hidden}.progress-bar-fill{border-radius:100px;height:100%;transition:width .6s}.bar-cai{background:var(--color-cai)}.bar-rad{background:var(--color-rad)}.bar-autre{background:var(--color-autre)}.bar-red{background:var(--color-red)}.bar-yellow{background:var(--color-yellow)}.bar-green{background:var(--color-green)}.alerte-banner{border-radius:var(--radius-sm);margin-bottom:8px;padding:12px 16px;font-size:.95rem;font-weight:600}.alerte-banner.over{background:var(--color-red-bg);color:var(--color-red)}.alerte-banner.mid{background:var(--color-yellow-bg);color:var(--color-yellow)}.alerte-banner.under{background:var(--color-green-bg);color:var(--color-green)}.alerte-msg{color:var(--text-secondary);margin-top:4px;font-size:.85rem;font-weight:400}.stats-row{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}@media (width>=768px){.stats-row{grid-template-columns:repeat(4,1fr)}}.stat-card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;padding:16px}.stat-value{color:var(--text-primary);font-size:1.5rem;font-weight:700;line-height:1.2}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-top:4px;font-size:.75rem}.stat-value.positive{color:var(--color-green)}.stat-value.negative{color:var(--color-red)}.stat-value.accent{color:var(--accent)}table{border-collapse:collapse;width:100%;font-size:.85rem}th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid #f0eae0;padding:10px 8px;font-size:.75rem;font-weight:600}td{border-bottom:1px solid #f5f0e8;padding:10px 8px}tr:last-child td{border-bottom:none}.text-right{text-align:right}.text-center{text-align:center}.font-mono{font-family:DM Mono,SF Mono,monospace}.tag{border-radius:100px;align-items:center;gap:4px;padding:2px 10px;font-size:.75rem;font-weight:500;display:inline-flex}.tag.cai{color:var(--color-cai);background:#e8edf2}.tag.rad{color:var(--color-rad);background:#f5e6e0}.tag.attente{color:#e65100;background:#fff3e0}.app-title{color:var(--accent);font-size:1.5rem;font-weight:700}.app-subtitle{color:var(--text-secondary);font-size:.85rem}h2{color:var(--text-primary);margin-bottom:12px;font-size:1.1rem;font-weight:600}h3{color:var(--text-primary);margin-bottom:8px;font-size:.95rem;font-weight:600}.btn{border-radius:var(--radius-sm);font-family:var(--font);cursor:pointer;border:none;align-items:center;gap:6px;padding:10px 20px;font-size:.85rem;font-weight:500;transition:all .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{color:var(--text-primary);background:#f0eae0}.btn-secondary:hover{background:#e5ddd0}.btn-icon{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;padding:8px;font-size:1.1rem}.btn-icon:hover{background:#f0eae0}.modal-overlay{z-index:1000;background:#0e3b5c66;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;max-width:400px;padding:24px}.modal h3{margin-bottom:16px}.form-group{margin-bottom:14px}.form-group label{color:var(--text-secondary);margin-bottom:4px;font-size:.8rem;font-weight:500;display:block}.form-group input,.form-group select{border-radius:var(--radius-sm);width:100%;font-family:var(--font);color:var(--text-primary);background:#faf6ee;border:1px solid #e5ddd0;outline:none;padding:10px 12px;font-size:.9rem;transition:border-color .15s}.form-group input:focus,.form-group select:focus{border-color:var(--accent)}.form-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (width<=480px){.app-title,.stat-value{font-size:1.2rem}.card{padding:14px}.stats-row{grid-template-columns:1fr 1fr}.btn{padding:8px 14px;font-size:.8rem}}.print-report{display:none}@media print{@page{margin:15mm}body{font-size:11pt;background:#fff!important}.app-container>:not(.print-report){display:none!important}.app-container{max-width:100%;margin:0;padding:0}.print-report{display:block!important}.pr-header{text-align:center;margin-bottom:20px}.pr-header h1{color:#0e3b5c;margin:0;font-size:18pt}.pr-header p{color:#5a7a96;margin:4px 0;font-size:10pt}.pr-section{page-break-inside:avoid;margin-bottom:16px}.pr-section h2{color:#0e3b5c;border-bottom:1px solid #ddd;margin:0 0 8px;padding-bottom:4px;font-size:13pt}.pr-section p{margin:4px 0;font-size:10pt;line-height:1.5}.pr-table{border-collapse:collapse;width:100%;font-size:9pt}.pr-table th,.pr-table td{text-align:left;border:1px solid #ccc;padding:4px 8px}.pr-table th{background:#f5f5f5;font-weight:600}.pr-footer{text-align:center;color:#999;margin-top:30px;font-size:8pt}}
