:root{--bg:#f4f5f7;--surface:#fff;--border:#e2e4e9;--text:#1a1d23;--text-muted:#6b7280;--primary:#1f5f4f;--primary-hover:#17493c;--danger:#b3261e;--warning:#a15c00;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}a{color:inherit}.layout{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-shrink:0;width:220px;padding:16px 12px}.sidebar h1{margin:4px 8px 20px;font-size:16px}.sidebar nav a{color:var(--text);border-radius:8px;margin-bottom:2px;padding:10px 12px;font-size:14px;text-decoration:none;display:block}.sidebar nav a.active,.sidebar nav a:hover{background:var(--bg)}.sidebar .logout{margin-top:24px}.content{flex:1;max-width:1200px;padding:24px 32px}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:16px;padding:16px 20px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}th{color:var(--text-muted);text-transform:uppercase;font-size:12px;font-weight:500}tr:hover td{background:var(--bg)}.btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:9px 16px;font-size:14px}.btn:hover{background:var(--primary-hover)}.btn.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}input,select,textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:6px;padding:8px 10px;font-size:14px}label{color:var(--text-muted);margin-bottom:4px;font-size:13px;display:block}.field{margin-bottom:12px}.form-row{gap:12px;display:flex}.form-row .field{flex:1}.badge{background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:3px 10px;font-size:12px;display:inline-block}.badge.warning{color:var(--warning);background:#fdf3e0;border-color:#f0d8a8}.badge.danger{color:var(--danger);background:#fbe9e7;border-color:#f0c1bc}.kanban{gap:12px;padding-bottom:8px;display:flex;overflow-x:auto}.kanban-col{flex-shrink:0;min-width:220px}.kanban-col h3{color:var(--text-muted);margin-bottom:8px;font-size:13px}.kanban-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:8px;margin-bottom:8px;padding:10px 12px;font-size:13px}.kanban-card:hover{border-color:var(--primary)}.kanban-card .ref{color:var(--text-muted);font-size:12px;font-weight:600}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px}.stat-tile .value{font-size:28px;font-weight:600}.stat-tile .label{color:var(--text-muted);margin-top:4px;font-size:13px}.error-msg{color:var(--danger);margin-top:8px;font-size:13px}.page-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.page-header h2{margin:0}.login-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-box{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:340px;padding:32px}.terrain-shell{flex-direction:column;min-height:100vh;display:flex}.terrain-topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;padding:12px 16px;font-weight:600;display:flex;position:sticky;top:0}.terrain-content{flex:1;padding:12px 12px 76px}.terrain-tabbar{background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.terrain-tabbar a{text-align:center;color:var(--text-muted);flex:1;padding:14px 4px;font-size:13px;text-decoration:none}.terrain-tabbar a.active{color:var(--primary);font-weight:600}.affectation-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:10px;padding:14px}.affectation-card .ref{color:var(--text-muted);font-size:12px}.affectation-card .titre{margin:2px 0 6px;font-weight:600}.affectation-card .meta{color:var(--text-muted);font-size:13px}.affectation-card .expand{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.scan-box{border-radius:10px;width:100%;max-width:400px;margin:0 auto;overflow:hidden}.scan-result{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:10px;margin-top:16px;padding:16px}
