@charset "UTF-8";:root{--vert-fonce: #1B3A8C;--or: #F5C200;--or-clair: #FFF3B0;--gris-clair: #F4F6FA;--gris-bord: #E0E4ED;--texte: #1A2340;--texte-doux: #5A6070;--danger: #D32F2F;--success: #2E7D32;--warning: #F57F17;--info: #0277BD;--blanc: #FFFFFF;--ombre: 0 2px 8px rgba(27, 58, 140, .12)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:var(--gris-clair);color:var(--texte);font-size:14px;line-height:1.5}.page-container{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--vert-fonce);color:var(--blanc);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}.main-content{flex:1;margin-left:240px;padding:24px;min-width:0;overflow-x:hidden}.card{background:var(--blanc);border-radius:8px;box-shadow:var(--ombre);padding:20px;margin-bottom:16px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:6px;border:none;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s}.btn-primary{background:var(--vert-fonce);color:var(--blanc)}.btn-secondary{background:var(--or);color:var(--vert-fonce)}.btn-danger{background:var(--danger);color:var(--blanc)}.btn-outline{background:transparent;border:2px solid var(--vert-fonce);color:var(--vert-fonce)}.btn:hover{opacity:.88;transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}table{width:100%;border-collapse:collapse}th{background:var(--vert-fonce);color:var(--blanc);padding:10px 12px;text-align:left;font-size:12px}td{padding:10px 12px;border-bottom:1px solid var(--gris-bord)}tr:hover td{background:var(--gris-clair)}.badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700;letter-spacing:.3px}.badge-success{background:#e8f5e9;color:var(--success)}.badge-warning{background:#fff8e1;color:var(--warning)}.badge-danger{background:#ffebee;color:var(--danger)}.badge-info{background:#e3f2fd;color:var(--info)}.badge-default{background:var(--gris-clair);color:var(--texte-doux)}.badge-primary{background:#e8eaf6;color:var(--vert-fonce)}.form-group{margin-bottom:16px}.form-label{display:block;font-weight:600;margin-bottom:6px;color:var(--texte);font-size:13px}.form-control{width:100%;padding:9px 12px;border:1.5px solid var(--gris-bord);border-radius:6px;font-size:14px;transition:border .2s}.form-control:focus{outline:none;border-color:var(--vert-fonce)}.form-control.ng-invalid.ng-touched{border-color:var(--danger)}h1{font-size:22px;font-weight:700;color:var(--vert-fonce);margin:0 0 20px}h2{font-size:17px;font-weight:700;color:var(--vert-fonce);margin:0 0 14px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin-bottom:20px}.kpi-card{background:var(--blanc);border-radius:8px;box-shadow:var(--ombre);padding:16px;text-align:center}.kpi-card .kpi-val{font-size:32px;font-weight:800;color:var(--vert-fonce)}.kpi-card .kpi-label{font-size:11px;color:var(--texte-doux);margin-top:4px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--vert-fonce) 0%,#2a52b8 100%)}.login-card{background:var(--blanc);border-radius:12px;padding:40px;width:min(380px,100vw - 32px);box-shadow:0 8px 32px #0000004d}.login-logo{text-align:center;margin-bottom:24px}.login-logo .logo-badge{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--vert-fonce);border-radius:16px;font-size:28px;margin-bottom:12px}.menu-toggle{display:none;position:fixed;top:12px;left:12px;z-index:300;background:var(--vert-fonce);color:#fff;border:none;border-radius:8px;width:44px;height:44px;font-size:20px;cursor:pointer;align-items:center;justify-content:center;box-shadow:0 2px 10px #00000059;transition:background .2s,transform .2s}.menu-toggle:hover{background:#2a4db5}.menu-toggle.is-open{background:#162d7a}.sidebar-overlay{display:none;position:fixed;inset:0;background:#00000073;z-index:199}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:8px}.modal-inner{width:min(540px,100vw - 32px);margin:0 auto;padding:24px}.modal-inner-sm{width:min(420px,100vw - 32px);margin:0 auto;padding:28px}.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px}.detail-grid>*{min-width:0}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:13px}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dash-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.card{overflow:hidden;word-break:break-word;overflow-wrap:break-word}.card-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:16px}.card-header h2,.card-header h1{margin:0;min-width:0}.page-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:20px}.page-header h1{margin:0;min-width:0}.page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.filters-bar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px}.filters-bar>div{display:flex;flex-direction:column;gap:4px;min-width:0}.filters-bar>select,.filters-bar>input{min-width:160px;flex:1 1 160px}.doc-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--gris-bord);border-radius:8px;background:#fff;flex-wrap:wrap}.doc-row-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap}@media (max-width: 768px){.hide-mobile{display:none!important}}@media (max-width: 900px){.detail-grid,.dash-grid-2{grid-template-columns:1fr}}@media (max-width: 600px){.info-grid,.form-grid-2{grid-template-columns:1fr}.doc-row{flex-direction:column;align-items:flex-start}.doc-row-actions{width:100%;justify-content:flex-start}}@media (max-width: 768px){.sidebar{transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:200;will-change:transform}.sidebar.sidebar-open{transform:translate(0);box-shadow:6px 0 32px #0006}.sidebar-overlay{display:block}.main-content{margin-left:0;padding:60px 12px 24px;min-width:0;overflow-x:hidden}.menu-toggle{display:flex}.login-card{width:calc(100vw - 32px);max-width:400px;padding:28px 18px}.table-responsive{border-radius:0}th,td{font-size:12px;padding:8px 10px;white-space:nowrap}td .btn{font-size:11px;padding:6px 10px;min-height:36px;min-width:44px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:1fr}h1{font-size:18px}h2{font-size:15px}.btn{padding:10px 14px;min-height:44px}.actions-card .btn{width:100%;justify-content:center}.filters-bar{flex-direction:column;align-items:stretch}.filters-bar>div{width:100%}.filters-bar .form-control,.filters-bar select,.filters-bar input{width:100%!important}.page-actions{justify-content:flex-start;width:100%}.card-header{flex-direction:column;align-items:flex-start}.dash-grid-2,.info-grid,.form-grid-2{grid-template-columns:1fr}}@media (max-width: 480px){.main-content{padding:56px 10px 20px}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:10px}.modal-inner,.modal-inner-sm{width:calc(100vw - 20px);padding:16px 14px}.modal-inner h2,.modal-inner-sm h2{font-size:16px}.kpi-card .kpi-val{font-size:24px}.doc-row{flex-direction:column;align-items:flex-start}.doc-row-actions{width:100%}}@media (max-width: 360px){.kpi-grid{grid-template-columns:1fr}h1{font-size:16px}h2{font-size:14px}.btn{font-size:12px;padding:8px 10px}}.timeline{display:flex;gap:0;overflow-x:auto;padding:12px 0 16px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--gris-bord) transparent}.timeline::-webkit-scrollbar{height:4px}.timeline::-webkit-scrollbar-thumb{background:var(--gris-bord);border-radius:4px}.timeline-step{display:flex;flex-direction:column;align-items:center;flex:0 0 auto;min-width:80px;max-width:100px;position:relative;padding:0 4px}.timeline-step:before{content:"";position:absolute;top:16px;right:-50%;width:100%;height:3px;background:var(--gris-bord);z-index:0}.timeline-step:last-child:before{display:none}.step-circle{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;background:var(--gris-bord);color:var(--texte-doux);z-index:1;border:3px solid var(--blanc);flex-shrink:0}.timeline-step.done .step-circle{background:var(--success);color:var(--blanc)}.timeline-step.active .step-circle{background:var(--or);color:var(--vert-fonce)}.step-label{font-size:10px;margin-top:6px;text-align:center;color:var(--texte-doux);max-width:80px;white-space:normal;word-break:break-word;line-height:1.3}
