Files
Stock-Game/Stock game/static/style.css

534 lines
7.9 KiB
CSS

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: Arial, sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
}
.container {
background: white;
border-radius: 15px;
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
max-width: 1400px;
width: 100%;
padding: 40px;
}
h1 {
text-align: center;
color: #333;
margin-bottom: 30px;
font-size: 2.5em;
}
h2 {
color: #667eea;
margin-bottom: 20px;
text-align: center;
}
h3 {
color: #555;
margin-bottom: 15px;
font-size: 1.1em;
}
.section h3 {
text-align: center;
}
.screen {
display: block;
}
.screen.hidden {
display: none;
}
/* Start Screen */
#startScreen .form-group {
text-align: center;
margin-bottom: 20px;
}
#startScreen label {
display: block;
margin-bottom: 10px;
font-size: 1.1em;
color: #333;
}
#startScreen input {
padding: 10px 15px;
font-size: 1em;
border: 2px solid #667eea;
border-radius: 5px;
margin-right: 10px;
width: 100px;
}
/* Game Header */
.game-header {
margin-bottom: 30px;
padding: 20px;
background: #f8f9fa;
border-radius: 10px;
}
.info-box {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 15px;
margin-bottom: 15px;
}
.info-box h3 {
background: #667eea;
color: white;
padding: 15px;
border-radius: 8px;
margin-bottom: 0;
font-size: 1em;
}
.section .info-box {
margin-bottom: 20px;
}
.message {
padding: 15px;
background: #e8f5e9;
border-left: 4px solid #4caf50;
border-radius: 5px;
color: #2e7d32;
display: none;
}
.message.show {
display: block;
}
.message.error {
background: #ffebee;
border-left-color: #f44336;
color: #c62828;
}
/* Game Content */
.game-content {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 20px;
}
.section {
background: #f8f9fa;
padding: 20px;
border-radius: 10px;
border: 1px solid #e0e0e0;
}
.stocks-list,
.holdings-list,
.companies-list {
display: flex;
flex-direction: column;
gap: 10px;
}
.stock-item,
.holding-item,
.company-item {
background: white;
padding: 12px;
border-radius: 6px;
border-left: 4px solid #667eea;
display: flex;
justify-content: space-between;
align-items: center;
}
.holding-item {
border-left-color: #764ba2;
}
.company-item {
border-left-color: #2196F3;
padding: 15px;
gap: 20px;
}
.company-info {
flex: 1;
}
.company-name {
font-weight: bold;
color: #333;
font-size: 1.05em;
margin-bottom: 5px;
}
.company-details {
display: flex;
gap: 20px;
font-size: 0.9em;
color: #666;
}
.company-details span {
font-weight: 500;
}
.company-value {
font-weight: bold;
color: #2196F3;
font-size: 1.1em;
min-width: 100px;
text-align: right;
}
.stock-item span,
.holding-item span {
font-weight: bold;
color: #667eea;
}
/* Form Groups */
.form-group {
margin-bottom: 15px;
}
.form-group label {
display: block;
margin-bottom: 8px;
color: #333;
font-weight: bold;
}
.form-group input,
.form-group select {
width: 100%;
padding: 10px;
border: 2px solid #e0e0e0;
border-radius: 5px;
font-size: 1em;
transition: border-color 0.3s;
}
.form-group input:focus,
.form-group select:focus {
outline: none;
border-color: #667eea;
}
/* Buttons */
button {
padding: 12px 20px;
border: none;
border-radius: 6px;
font-size: 1em;
cursor: pointer;
transition: all 0.3s;
font-weight: bold;
}
button:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}
#startScreen button {
background: #667eea;
color: white;
}
#startScreen button:hover {
background: #764ba2;
}
.button-group {
display: flex;
gap: 10px;
}
.btn-buy {
background: #4caf50;
color: white;
flex: 1;
}
.btn-buy:hover {
background: #45a049;
}
.btn-sell {
background: #ff9800;
color: white;
flex: 1;
}
.btn-sell:hover {
background: #e68900;
}
.btn-buy-all {
background: #2196F3;
color: white;
flex: 1;
}
.btn-buy-all:hover {
background: #0b7dda;
}
.btn-sell-all {
background: #f57c00;
color: white;
flex: 1;
}
.btn-sell-all:hover {
background: #e65100;
}
.btn-next-day {
background: #667eea;
color: white;
width: 100%;
padding: 15px;
font-size: 1.1em;
}
.btn-next-day:hover {
background: #764ba2;
}
/* Charts Container */
.charts-container {
display: grid;
grid-template-columns: 1fr;
gap: 20px;
margin-top: 30px;
}
.chart-item {
background: #f8f9fa;
padding: 20px;
border-radius: 10px;
border: 1px solid #e0e0e0;
min-height: 400px;
position: relative;
}
.chart-item canvas {
max-height: 400px;
}
/* End Screen */
.end-stats {
text-align: center;
padding: 20px;
background: #f8f9fa;
border-radius: 10px;
}
.end-stats p {
font-size: 1.1em;
margin: 10px 0;
color: #333;
}
.end-stats .profit {
font-size: 1.3em;
font-weight: bold;
color: #4caf50;
margin-top: 20px;
}
#finalHoldings {
text-align: left;
margin: 20px 0;
padding: 15px;
background: white;
border-radius: 6px;
}
.holding-final {
display: flex;
justify-content: space-between;
padding: 8px 0;
border-bottom: 1px solid #e0e0e0;
}
.holding-final:last-child {
border-bottom: none;
}
#endScreen button {
background: #667eea;
color: white;
margin-top: 20px;
padding: 12px 30px;
}
#endScreen button:hover {
background: #764ba2;
}
.btn-leaderboard {
background: #9c27b0;
color: white;
width: 100%;
margin-top: 10px;
}
.btn-leaderboard:hover {
background: #7b1fa2;
}
.btn-save-score {
background: #667eea;
color: white;
width: 100%;
}
.btn-save-score:hover {
background: #764ba2;
}
.btn-back {
background: #667eea;
color: white;
width: 100%;
margin-top: 20px;
padding: 12px;
}
.btn-back:hover {
background: #764ba2;
}
/* Leaderboard Screen */
.leaderboard-container {
background: #f8f9fa;
border-radius: 10px;
padding: 20px;
margin-bottom: 20px;
min-height: 300px;
}
.leaderboard-list {
display: flex;
flex-direction: column;
gap: 10px;
}
.leaderboard-entry {
background: white;
padding: 15px;
border-radius: 8px;
border-left: 4px solid #667eea;
display: flex;
justify-content: space-between;
align-items: center;
}
.leaderboard-entry.rank-1 {
border-left-color: #ffd700;
background: #fffbf0;
}
.leaderboard-entry.rank-2 {
border-left-color: #c0c0c0;
background: #f5f5f5;
}
.leaderboard-entry.rank-3 {
border-left-color: #cd7f32;
background: #f9f5f0;
}
.leaderboard-rank {
font-size: 1.5em;
font-weight: bold;
color: #667eea;
min-width: 40px;
text-align: center;
}
.leaderboard-info {
flex: 1;
margin: 0 15px;
}
.leaderboard-name {
font-weight: bold;
color: #333;
font-size: 1.1em;
}
.leaderboard-stats {
font-size: 0.9em;
color: #666;
margin-top: 5px;
}
.leaderboard-profit {
font-size: 1.2em;
font-weight: bold;
min-width: 120px;
text-align: right;
}
.leaderboard-profit.positive {
color: #4caf50;
}
.leaderboard-profit.negative {
color: #f44336;
}
.empty-message {
text-align: center;
padding: 40px 20px;
color: #999;
font-size: 1.1em;
}
/* Responsive */
@media (max-width: 768px) {
.container {
padding: 20px;
}
.game-content {
grid-template-columns: 1fr;
}
.info-box {
grid-template-columns: 1fr;
}
.charts-container {
grid-template-columns: 1fr;
}
.chart-item {
min-height: 250px;
}
h1 {
font-size: 1.8em;
}
}