/* Sorti de pro-app.php le 19/09/2026.
 *
 * Les feuilles etaient ecrites dans les pages, ce qui obligeait la
 * politique de securite a autoriser 'unsafe-inline' sur style-src : toute
 * injection de HTML devenait alors une injection de style. En fichier, le
 * navigateur peut les mettre en cache, et la politique peut se fermer.
 *
 * Deplace sans une modification : ce qui suit est le bloc d'origine. */

html,body{height:100%;overflow:hidden;}
.app{height:100vh;overflow:hidden;}
.main{height:100vh;min-height:0;overflow:hidden;display:flex;flex-direction:column;}
.pf-shell{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;}
.pf-page-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-8) 0;flex-shrink:0;gap:var(--space-3);}
.pf-page-kicker{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--psg-gold-dark,#b8860b);margin-bottom:2px;}
.pf-page-title{font-size:1.5rem;font-weight:900;color:var(--psg-navy);margin:0;line-height:1.1;}
.pf-page-sub{font-size:.8rem;color:var(--grey-400);font-weight:600;margin-top:3px;}
.pf-content{flex:1;min-height:0;overflow-y:auto;padding:var(--space-5) var(--space-8);background:var(--grey-100);}
.pf-toolbar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-5);border-bottom:1px solid var(--grey-100);}
.pf-table{width:100%;border-collapse:collapse;font-size:.875rem;}
.pf-table th{padding:10px 14px;font-weight:800;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--grey-500);border-bottom:2px solid var(--grey-100);text-align:left;white-space:nowrap;}
.pf-table td{padding:10px 14px;border-bottom:1px solid var(--grey-50);vertical-align:middle;color:var(--grey-700);font-weight:600;}
.pf-table tbody tr:hover{background:var(--grey-50);}
.pf-empty{padding:60px;text-align:center;color:var(--grey-400);font-weight:700;}
.badge-on{display:inline-flex;align-items:center;background:#dcfce7;color:#166534;border-radius:999px;padding:2px 9px;font-size:.68rem;font-weight:800;}
.badge-off{display:inline-flex;align-items:center;background:var(--grey-100);color:var(--grey-500);border-radius:999px;padding:2px 9px;font-size:.68rem;font-weight:800;}
.badge-blocked{display:inline-flex;align-items:center;background:#fee2e2;color:#991b1b;border-radius:999px;padding:2px 9px;font-size:.68rem;font-weight:800;margin-left:4px;}
.switch{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer;}
.switch input{opacity:0;width:0;height:0;}
.switch .slider{position:absolute;inset:0;background:var(--grey-300);border-radius:999px;transition:.2s;}
.switch .slider:before{content:"";position:absolute;height:16px;width:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;}
.switch input:checked + .slider{background:#16a34a;}
.switch input:checked + .slider:before{transform:translateX(18px);}
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:900;align-items:center;justify-content:center;}
.modal-overlay.open{display:flex;}
.modal-box{background:#fff;border-radius:14px;max-width:480px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.2);}
.modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);background:#f1f5f999;padding:9px 15px;margin:20px 20px 0 20px;}
.modal-title{font-size:.88rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--psg-navy);margin:0;}
.modal-close{background:none;border:none;cursor:pointer;color:var(--grey-400);display:flex;padding:4px;border-radius:6px;}
.modal-body{padding:var(--space-5);}
.modal-footer{display:flex;gap:10px;justify-content:flex-end;padding:8px;}
.form-label{display:block;font-size:.75rem;font-weight:700;color:var(--grey-600);margin-bottom:4px;margin-top:12px;}
