Trafic_Paris / static /styles.css
tyriaa
4rd commitekk
c8efd80
:root {
--france-bleu: #004C93;
--france-bleu-light: #0066CC;
--france-red: #E30613;
--france-gray: #F5F5F5;
}
body {
font-family: 'Open Sans', Arial, sans-serif;
margin: 0;
padding: 0;
background-color: var(--france-gray);
}
.container {
max-width: 1400px;
margin: 0 auto;
padding: 20px;
}
header {
background-color: var(--france-bleu);
color: white;
padding: 20px;
text-align: center;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
header h1 {
margin: 0;
font-size: 2.5em;
font-weight: bold;
}
.generated-time {
color: #ffffff;
opacity: 0.9;
font-size: 1.1em;
margin-top: 10px;
}
/* Section Trafic + Map */
.traffic-map-container {
display: flex;
gap: 20px;
margin: 20px 0;
height: calc(100vh - 250px);
}
/* Section Trafic */
.traffic-info {
flex: 1;
min-width: 300px;
max-width: 400px;
background: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
overflow-y: auto;
}
.traffic-info h2 {
color: var(--france-bleu);
margin-top: 0;
padding-bottom: 10px;
border-bottom: 2px solid var(--france-bleu);
}
.traffic-items {
display: flex;
flex-direction: column;
gap: 15px;
}
.icon-item {
background: var(--france-gray);
padding: 15px;
border-radius: 6px;
}
.transport-icon {
display: flex;
align-items: center;
gap: 10px;
color: var(--france-bleu);
font-weight: bold;
}
.icon-img {
width: 24px;
height: 24px;
}
.impacted-lines {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 10px;
}
.impacted-line {
background-color: var(--france-red);
color: white;
padding: 4px 12px;
border-radius: 15px;
font-weight: bold;
cursor: pointer;
transition: transform 0.2s;
}
.impacted-line:hover {
transform: scale(1.05);
}
/* Section Carte */
.map-section {
flex: 2;
background: #d8d8d8; /* Couleur de fond grise de Sytadin */
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
overflow: hidden;
min-width: 0;
position: relative;
padding: 0;
display: flex;
align-items: center;
justify-content: center;
}
#sytadin-frame {
width: 100%;
height: 100%;
border: none;
transform: scale(1.2);
margin-top: 150px;
transform-origin: center center;
}
/* Filtres */
.filter {
background: white;
padding: 20px;
border-radius: 8px;
margin: 20px 0;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.filter h3 {
color: var(--france-bleu);
margin-top: 0;
}
.filter ul {
display: flex;
flex-wrap: wrap;
gap: 10px;
list-style: none;
padding: 0;
margin: 0;
}
.filter li {
cursor: pointer;
padding: 8px 16px;
border-radius: 20px;
background-color: var(--france-gray);
transition: all 0.2s;
}
.filter li:hover {
background-color: var(--france-bleu-light);
color: white;
}
.filter li.active {
background-color: var(--france-bleu);
color: white;
}
/* Tableau des incidents */
.incident-table {
background: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
overflow-x: auto;
}
table {
width: 100%;
border-collapse: collapse;
}
th {
background-color: var(--france-bleu);
color: white;
padding: 12px;
text-align: left;
}
td {
padding: 12px;
border-bottom: 1px solid #eee;
}
tr:hover {
background-color: var(--france-gray);
}
tr.highlighted {
background-color: #FFF3F3;
animation: pulse 2s infinite;
}
@keyframes pulse {
0% {
background-color: #FFF3F3;
}
50% {
background-color: #FFE6E6;
}
100% {
background-color: #FFF3F3;
}
}
/* Styles pour les popups d'incidents */
.incident-popup {
padding: 10px;
max-width: 300px;
}
.incident-description {
font-weight: bold;
margin-bottom: 8px;
color: #E30613;
}
.lanes-info {
margin: 5px 0;
padding: 5px;
background-color: #f8f8f8;
border-radius: 4px;
}
.incident-time {
font-size: 0.9em;
color: #666;
margin-top: 8px;
border-top: 1px solid #eee;
padding-top: 5px;
}
/* Responsive Design */
@media (max-width: 1024px) {
.traffic-map-container {
flex-direction: column;
height: auto;
}
.traffic-info {
max-width: none;
width: 100%;
}
.map-section {
width: 100%;
height: 600px;
}
}
@media (max-width: 768px) {
.container {
padding: 10px;
}
header h1 {
font-size: 1.8em;
}
.filter ul {
flex-direction: column;
}
.filter li {
width: 100%;
text-align: center;
}
}