:root{ --yellow:#F5C518;--yellow-bg:#FFFBEA;--yellow-bd:rgba(245,197,24,0.35); --black:#1A1916;--beige:#F7F5F0;--white:#FFFFFF; --gray1:#6B6860;--gray2:#9E9C96; --border:rgba(0,0,0,0.08);--border-md:rgba(0,0,0,0.14); --radius:10px;--radius-sm:7px; --shadow:0 1px 3px rgba(0,0,0,0.05),0 4px 12px rgba(0,0,0,0.04); --nav-h:54px;--sidebar-w:220px; --serif:'DM Serif Display',Georgia,serif; --sans:'DM Sans',system-ui,sans-serif; } *,*::before,*::after{box-sizing:border-box;margin:0;padding:0;} html{font-size:15px;} body{font-family:var(--sans);background:var(--beige);color:var(--black);-webkit-font-smoothing:antialiased;} a{color:inherit;text-decoration:none;} button,input,select,textarea{font-family:var(--sans);} /* TOP NAV */ .admin-nav{position:fixed;top:0;left:0;right:0;z-index:200;height:var(--nav-h);background:var(--black);display:flex;align-items:center;padding:0 1.25rem;gap:1rem;} .admin-nav-logo{font-family:var(--serif);font-size:1.15rem;color:var(--white);margin-right:auto;} .admin-nav-logo span{color:var(--yellow);} .admin-nav-badge{font-size:11px;color:rgba(255,255,255,0.4);background:rgba(255,255,255,0.07);padding:3px 10px;border-radius:20px;} .admin-nav-user{font-size:13px;color:rgba(255,255,255,0.6);} .admin-nav-logout{font-size:12px;color:rgba(255,255,255,0.4);background:rgba(255,255,255,0.06);border:none;padding:6px 12px;border-radius:6px;cursor:pointer;transition:background 0.15s;} .admin-nav-logout:hover{background:rgba(255,255,255,0.12);color:var(--white);} /* LAYOUT */ .admin-wrap{display:flex;min-height:100vh;padding-top:var(--nav-h);} /* SIDEBAR */ .admin-sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--white);border-right:1px solid var(--border);position:fixed;top:var(--nav-h);bottom:0;left:0;overflow-y:auto;padding:1.25rem 0;} .sidebar-section{margin-bottom:1.5rem;} .sidebar-label{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:0.08em;color:var(--gray2);padding:0 1.25rem;margin-bottom:0.4rem;} .sidebar-link{display:flex;align-items:center;gap:10px;padding:8px 1.25rem;font-size:13px;color:var(--gray1);transition:all 0.15s;border-left:2px solid transparent;position:relative;} .sidebar-link svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;flex-shrink:0;} .sidebar-link:hover{color:var(--black);background:var(--beige);} .sidebar-link.active{color:var(--black);font-weight:500;border-left-color:var(--yellow);background:var(--yellow-bg);} .sidebar-badge{margin-left:auto;background:var(--yellow);color:var(--black);font-size:10px;font-weight:500;padding:1px 7px;border-radius:20px;} .sidebar-ext{margin-top:auto;border-top:1px solid var(--border);padding:1rem 1.25rem 0;} .sidebar-ext a{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--gray2);padding:6px 0;transition:color 0.15s;} .sidebar-ext a:hover{color:var(--black);} .sidebar-ext svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.8;} /* MAIN */ .admin-main{margin-left:var(--sidebar-w);flex:1;padding:2rem 2rem 4rem;min-width:0;} /* PAGE HEADER */ .page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.75rem;flex-wrap:wrap;} .page-header h1{font-family:var(--serif);font-size:1.6rem;letter-spacing:-0.01em;} .page-sub{font-size:13px;color:var(--gray2);margin-top:3px;} /* STATS GRID */ .stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:1.75rem;} .stat-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem;box-shadow:var(--shadow);display:flex;align-items:flex-start;gap:12px;transition:box-shadow 0.15s,transform 0.15s;} .stat-card:hover{box-shadow:0 4px 20px rgba(0,0,0,0.08);transform:translateY(-1px);} .stat-card.has-badge{border-color:var(--yellow);} .stat-icon{width:36px;height:36px;background:var(--yellow-bg);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;} .stat-icon svg{width:17px;height:17px;color:var(--black);} .stat-label{font-size:11px;color:var(--gray2);margin-bottom:4px;font-weight:500;} .stat-val{font-family:var(--serif);font-size:1.6rem;line-height:1;color:var(--black);} .stat-badge{display:inline-block;margin-top:5px;background:var(--yellow);color:var(--black);font-size:10px;font-weight:500;padding:2px 8px;border-radius:20px;} /* SECTION BLOCK */ .section-block{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1.5rem;overflow:hidden;} .section-block-header{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.5rem;border-bottom:1px solid var(--border);} .section-block-header h2{font-size:14px;font-weight:500;} .link-more{font-size:13px;color:var(--gray1);transition:color 0.15s;} .link-more:hover{color:var(--black);} .empty-state{padding:2.5rem;text-align:center;color:var(--gray2);font-size:13px;} /* TABLE */ .table-wrap{overflow-x:auto;} table{width:100%;border-collapse:collapse;} thead th{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:0.05em;color:var(--gray2);padding:10px 16px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;} tbody td{padding:11px 16px;font-size:13px;color:var(--gray1);border-bottom:1px solid var(--border);} tbody td strong{color:var(--black);font-weight:500;} tbody tr:last-child td{border-bottom:none;} tbody tr:hover td{background:var(--beige);} /* STATUS PILLS */ .status-pill{font-size:11px;font-weight:500;padding:3px 9px;border-radius:20px;display:inline-block;} .status-pill.nouveau{background:var(--yellow-bg);color:#8B6500;border:1px solid var(--yellow-bd);} .status-pill.lu,.status-pill.en-cours{background:#E6F1FB;color:#185FA5;border:1px solid rgba(24,95,165,0.2);} .status-pill.traite,.status-pill.gagne{background:#EAF3DE;color:#3B6D11;border:1px solid rgba(59,109,17,0.2);} .status-pill.archive,.status-pill.perdu{background:#F1EFE8;color:#5F5E5A;border:1px solid rgba(95,94,90,0.2);} /* BUTTONS */ .btn-primary{display:inline-flex;align-items:center;gap:6px;background:var(--black);color:var(--white);border:none;padding:9px 18px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:opacity 0.15s;} .btn-primary:hover{opacity:0.85;} .btn-secondary{display:inline-flex;align-items:center;gap:6px;background:var(--white);color:var(--black);border:1px solid var(--border-md);padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:background 0.15s;} .btn-secondary:hover{background:var(--beige);} .btn-yellow{display:inline-flex;align-items:center;gap:6px;background:var(--yellow);color:var(--black);border:none;padding:9px 18px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:opacity 0.15s;} .btn-yellow:hover{opacity:0.9;} .btn-danger{display:inline-flex;align-items:center;gap:6px;background:#FAECE7;color:#993C1D;border:1px solid rgba(153,60,29,0.2);padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:background 0.15s;} .btn-danger:hover{background:#F5C4B3;} .btn-group{display:flex;gap:8px;flex-wrap:wrap;} /* FORM ELEMENTS */ .fg{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;} .fg label{font-size:12px;font-weight:500;color:var(--gray1);} .fg input,.fg select,.fg textarea{font-size:13px;padding:9px 12px;border:1px solid var(--border-md);border-radius:var(--radius-sm);background:var(--white);color:var(--black);outline:none;transition:border-color 0.15s;width:100%;} .fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--yellow);} .fg textarea{min-height:100px;resize:vertical;line-height:1.55;} .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;} .form-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);margin-bottom:1.25rem;} .form-card h3{font-size:13px;font-weight:500;margin-bottom:1rem;padding-bottom:0.75rem;border-bottom:1px solid var(--border);} /* DETAIL VIEW */ .detail-grid{display:grid;grid-template-columns:1fr 300px;gap:1.5rem;align-items:start;} .detail-main{} .detail-sidebar{} .info-block{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1rem;box-shadow:var(--shadow);} .info-block h3{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:0.05em;color:var(--gray2);margin-bottom:0.9rem;} .info-row{display:flex;flex-direction:column;gap:2px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--border);} .info-row:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none;} .info-key{font-size:11px;color:var(--gray2);} .info-val{font-size:13px;color:var(--black);font-weight:500;word-break:break-word;} .message-body{font-size:14px;color:var(--gray1);line-height:1.7;white-space:pre-wrap;background:var(--beige);border-radius:var(--radius-sm);padding:1rem;} /* NOTICE */ .notice{background:var(--yellow-bg);border:1px solid var(--yellow-bd);border-radius:var(--radius-sm);padding:10px 14px;font-size:13px;color:var(--black);margin-bottom:1rem;} .notice-error{background:#FAECE7;border:1px solid rgba(153,60,29,0.2);border-radius:var(--radius-sm);padding:10px 14px;font-size:13px;color:#993C1D;margin-bottom:1rem;} .notice-success{background:#EAF3DE;border:1px solid rgba(59,109,17,0.2);border-radius:var(--radius-sm);padding:10px 14px;font-size:13px;color:#3B6D11;margin-bottom:1rem;} /* TAGS INPUT */ .tag-preview{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px;} .tag-preview span{font-size:11px;color:var(--gray1);background:var(--beige);border:1px solid var(--border);padding:2px 8px;border-radius:20px;} /* TOGGLE */ .toggle-wrap{display:flex;align-items:center;gap:10px;} .toggle{position:relative;width:40px;height:22px;} .toggle input{opacity:0;width:0;height:0;} .toggle-slider{position:absolute;inset:0;background:var(--border-md);border-radius:22px;cursor:pointer;transition:background 0.2s;} .toggle-slider::before{content:'';position:absolute;width:16px;height:16px;left:3px;top:3px;background:var(--white);border-radius:50%;transition:transform 0.2s;} .toggle input:checked + .toggle-slider{background:var(--yellow);} .toggle input:checked + .toggle-slider::before{transform:translateX(18px);} .toggle-label{font-size:13px;color:var(--gray1);} /* RESPONSIVE basique */ @media(max-width:900px){ .admin-sidebar{display:none;} .admin-main{margin-left:0;} .stats-grid{grid-template-columns:1fr 1fr;} .detail-grid{grid-template-columns:1fr;} }