You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

798 lines
15 KiB

@import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Inter:wght@400;500;600&display=swap');
body {
background: linear-gradient(180deg, #cfefff 0%, #f7ffe5 100%);
min-height: 100vh;
font-family: 'Inter', sans-serif;
padding: 0;
margin: 0;
}
.game_header {
display: flex;
margin: 0 auto;
width: 500px;
align-items: center;
}
.dashboard {
max-width: 1200px;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 10px;
}
.game_header_title {
font-family: 'Fredoka', cursive;
font-size: 54px;
color: #FDB813;
text-shadow: 3px 3px 0px #3f7a33;
letter-spacing: 1px;
}
.game_header_icon {
height: 64px;
}
.game_section {
background-color: #FFF9E6;
box-sizing: border-box;
padding: 12px;
border: 4px solid #8fd16a;
border-radius: 20px;
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
color: #7A6146;
display: flex;
flex-direction: column;
}
.game_section button {
margin-top: auto;
}
/* Weather Section */
.weather_section {
text-align: center;
}
.weather_icon {
width: 80px;
height: 80px;
object-fit: contain;
margin: 8px auto;
display: block;
}
.weather_label {
font-family: 'Fredoka', sans-serif;
font-size: 18px;
font-weight: 500;
color: #5C4632;
text-transform: capitalize;
margin: 0;
}
.game_list {
list-style: none;
margin: 8px 0;
padding: 0;
}
.game_list li {
display: flex;
justify-content: space-between;
align-items: center;
font-family: 'Inter', sans-serif;
font-size: 14px;
color: #7A6146;
padding: 8px 12px;
margin-bottom: 4px;
background: rgba(255, 255, 255, 0.5);
border-radius: 8px;
}
.game_list li:last-child {
margin-bottom: 0;
}
.game_list li span {
font-family: 'Fredoka', sans-serif;
font-size: 16px;
font-weight: 600;
color: #5C4632;
}
.game_section>p {
font-family: 'Fredoka', sans-serif;
font-size: 28px;
font-weight: 600;
color: #5C4632;
margin: 12px 0;
text-align: center;
}
.game_section .section_hint {
font-size: 11px;
margin: 2px 0 8px;
}
.section_title {
font-family: 'Fredoka', sans-serif;
margin: 0;
padding: 0;
color: #5C4632;
letter-spacing: 1px;
}
.section_hint {
font-family: 'Inter', sans-serif;
font-size: 12px;
color: #9a8a7a;
margin: 4px 0 12px;
}
/* Recipe Section */
.recipe_grid {
display: flex;
gap: 12px;
}
.recipe_item {
flex: 1;
text-align: center;
}
.recipe_label {
display: block;
font-family: 'Fredoka', sans-serif;
font-size: 14px;
color: #7A6146;
margin-bottom: 6px;
}
.recipe_input {
font-family: 'Fredoka', sans-serif;
font-size: 20px;
font-weight: 600;
color: #5C4632;
background: linear-gradient(180deg, #fff 0%, #f9f9f5 100%);
border: 2px solid #c5e8a8;
border-radius: 10px;
padding: 10px;
width: 100%;
box-sizing: border-box;
text-align: center;
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.06);
transition: all 0.15s ease;
-moz-appearance: textfield;
}
.recipe_input::-webkit-outer-spin-button,
.recipe_input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
.recipe_input:hover {
border-color: #8fd16a;
}
.recipe_input:focus {
outline: none;
border-color: #3f7a33;
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.06), 0 0 0 3px rgba(143, 209, 106, 0.25);
}
canvas {
width: 1200px;
height: 500px;
margin: 0 auto;
display: block;
pointer-events: none;
}
.go_shopping_btn {
font-family: 'Fredoka', sans-serif;
font-size: 16px;
font-weight: 600;
background: linear-gradient(180deg, #FDB813 0%, #f5a800 100%);
color: #5C4632;
border: 3px solid #3f7a33;
border-radius: 12px;
padding: 10px 20px;
cursor: pointer;
box-shadow: 0 4px 0 #3f7a33;
transition: all 0.1s ease;
margin: 12px auto 0;
display: block;
}
.go_shopping_btn:hover {
background: linear-gradient(180deg, #ffe066 0%, #FDB813 100%);
transform: translateY(-2px);
box-shadow: 0 6px 0 #3f7a33;
}
.go_shopping_btn:active {
transform: translateY(2px);
box-shadow: 0 2px 0 #3f7a33;
}
/* Shopping Modal */
.shopping_modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
z-index: 100;
align-items: center;
justify-content: center;
}
.shopping_modal.open {
display: flex;
}
.shopping_modal_content {
background-color: #FFF9E6;
border: 4px solid #8fd16a;
border-radius: 20px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
width: 580px;
max-width: 90%;
}
.shopping_modal_header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 16px 20px;
border-bottom: 2px solid #8fd16a;
}
.shopping_modal_title {
font-family: 'Fredoka', sans-serif;
font-size: 24px;
color: #5C4632;
margin: 0;
}
.shopping_modal_close {
font-size: 28px;
font-weight: bold;
color: #7A6146;
background: none;
border: none;
cursor: pointer;
line-height: 1;
padding: 0;
}
.shopping_modal_close:hover {
color: #5C4632;
}
.shopping_modal_body {
padding: 16px 20px;
}
.shop_item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 12px 0;
border-bottom: 1px solid #e0d4c0;
}
.shop_item:last-child {
border-bottom: none;
}
.shop_item_info {
flex: 1;
min-width: 0;
}
.shop_item_name {
font-family: 'Fredoka', sans-serif;
font-size: 18px;
color: #5C4632;
display: block;
margin-bottom: 4px;
}
.shop_tiers {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.shop_tier {
font-family: 'Inter', sans-serif;
font-size: 11px;
color: #7A6146;
background: #f5f0e6;
padding: 2px 6px;
border-radius: 4px;
}
.shop_tier.best {
background: #d4f0c4;
color: #3f7a33;
font-weight: 500;
}
.shop_qty_input {
font-family: 'Fredoka', sans-serif;
font-size: 18px;
font-weight: 500;
color: #5C4632;
background: linear-gradient(180deg, #fff 0%, #f9f9f5 100%);
border: 2px solid #c5e8a8;
border-radius: 10px;
padding: 8px 12px;
width: 80px;
text-align: center;
margin-right: 12px;
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
transition: all 0.15s ease;
-moz-appearance: textfield;
}
.shop_qty_input::-webkit-outer-spin-button,
.shop_qty_input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
.shop_qty_input:hover {
border-color: #8fd16a;
background: linear-gradient(180deg, #fff 0%, #f5f5f0 100%);
}
.shop_qty_input:focus {
outline: none;
border-color: #3f7a33;
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.06), 0 0 0 3px rgba(143, 209, 106, 0.25);
}
.shop_item_price {
font-family: 'Fredoka', sans-serif;
font-size: 16px;
font-weight: 600;
color: #5C4632;
min-width: 60px;
text-align: right;
margin-right: 16px;
}
.shop_item_btn {
font-family: 'Fredoka', sans-serif;
font-size: 14px;
font-weight: 600;
background: linear-gradient(180deg, #8fd16a 0%, #7bc256 100%);
color: #fff;
border: 2px solid #3f7a33;
border-radius: 8px;
padding: 6px 16px;
cursor: pointer;
box-shadow: 0 3px 0 #3f7a33;
transition: all 0.1s ease;
}
.shop_item_btn:hover {
background: linear-gradient(180deg, #a5e07a 0%, #8fd16a 100%);
transform: translateY(-1px);
box-shadow: 0 4px 0 #3f7a33;
}
.shop_item_btn:active {
transform: translateY(2px);
box-shadow: 0 1px 0 #3f7a33;
}
/* Change Price Button */
.change_price_button {
font-family: 'Fredoka', sans-serif;
font-size: 16px;
font-weight: 600;
background: linear-gradient(180deg, #FDB813 0%, #f5a800 100%);
color: #5C4632;
border: 3px solid #3f7a33;
border-radius: 12px;
padding: 10px 20px;
cursor: pointer;
box-shadow: 0 4px 0 #3f7a33;
transition: all 0.1s ease;
margin: 12px auto 0;
display: block;
}
.change_price_button:hover {
background: linear-gradient(180deg, #ffe066 0%, #FDB813 100%);
transform: translateY(-2px);
box-shadow: 0 6px 0 #3f7a33;
}
.change_price_button:active {
transform: translateY(2px);
box-shadow: 0 2px 0 #3f7a33;
}
/* Price Change Modal */
.price_change_modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
z-index: 100;
align-items: center;
justify-content: center;
}
.price_change_modal.open {
display: flex;
}
.price_change_modal_content {
background-color: #FFF9E6;
border: 4px solid #8fd16a;
border-radius: 20px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
width: 320px;
max-width: 90%;
}
.price_change_modal_header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 16px 20px;
border-bottom: 2px solid #8fd16a;
}
.price_change_modal_title {
font-family: 'Fredoka', sans-serif;
font-size: 24px;
color: #5C4632;
margin: 0;
}
.price_change_modal_close {
font-size: 28px;
font-weight: bold;
color: #7A6146;
background: none;
border: none;
cursor: pointer;
line-height: 1;
padding: 0;
}
.price_change_modal_close:hover {
color: #5C4632;
}
.price_change_modal_body {
padding: 20px;
text-align: center;
}
.price_change_hint {
font-family: 'Inter', sans-serif;
font-size: 14px;
color: #7A6146;
margin: 0 0 16px;
}
.price_input_group {
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 16px;
}
.price_currency {
font-family: 'Fredoka', sans-serif;
font-size: 32px;
color: #5C4632;
margin-right: 4px;
}
.price_input {
font-family: 'Fredoka', sans-serif;
font-size: 32px;
font-weight: 600;
color: #5C4632;
background: #fff;
border: 3px solid #8fd16a;
border-radius: 12px;
padding: 8px 12px;
width: 120px;
text-align: center;
outline: none;
}
.price_input:focus {
border-color: #3f7a33;
box-shadow: 0 0 0 3px rgba(143, 209, 106, 0.3);
}
.price_presets {
display: flex;
gap: 8px;
justify-content: center;
margin-bottom: 20px;
}
.price_preset_btn {
font-family: 'Fredoka', sans-serif;
font-size: 14px;
font-weight: 500;
background: #fff;
color: #5C4632;
border: 2px solid #e0d4c0;
border-radius: 8px;
padding: 6px 12px;
cursor: pointer;
transition: all 0.1s ease;
}
.price_preset_btn:hover {
border-color: #8fd16a;
background: #f0ffe0;
}
.price_preset_btn:active {
transform: scale(0.95);
}
.price_change_save_btn {
font-family: 'Fredoka', sans-serif;
font-size: 16px;
font-weight: 600;
background: linear-gradient(180deg, #8fd16a 0%, #7bc256 100%);
color: #fff;
border: 3px solid #3f7a33;
border-radius: 12px;
padding: 10px 32px;
cursor: pointer;
box-shadow: 0 4px 0 #3f7a33;
transition: all 0.1s ease;
}
.price_change_save_btn:hover {
background: linear-gradient(180deg, #a5e07a 0%, #8fd16a 100%);
transform: translateY(-2px);
box-shadow: 0 6px 0 #3f7a33;
}
.price_change_save_btn:active {
transform: translateY(2px);
box-shadow: 0 2px 0 #3f7a33;
}
/* Change Recipe Button */
.change_recipe_btn {
font-family: 'Fredoka', sans-serif;
font-size: 16px;
font-weight: 600;
background: linear-gradient(180deg, #FDB813 0%, #f5a800 100%);
color: #5C4632;
border: 3px solid #3f7a33;
border-radius: 12px;
padding: 10px 20px;
cursor: pointer;
box-shadow: 0 4px 0 #3f7a33;
transition: all 0.1s ease;
margin: 12px auto 0;
display: block;
}
.change_recipe_btn:hover {
background: linear-gradient(180deg, #ffe066 0%, #FDB813 100%);
transform: translateY(-2px);
box-shadow: 0 6px 0 #3f7a33;
}
.change_recipe_btn:active {
transform: translateY(2px);
box-shadow: 0 2px 0 #3f7a33;
}
/* Day Section */
.day_section {
text-align: center;
}
.day_section .section_title {
font-size: 28px;
}
.start_day_btn {
font-family: 'Fredoka', sans-serif;
font-size: 18px;
font-weight: 600;
background: linear-gradient(180deg, #8fd16a 0%, #6bb848 100%);
color: #fff;
border: 3px solid #3f7a33;
border-radius: 12px;
padding: 14px 32px;
cursor: pointer;
box-shadow: 0 4px 0 #2d5a24;
transition: all 0.1s ease;
margin: 12px auto 0;
display: block;
}
.start_day_btn:hover {
background: linear-gradient(180deg, #a5e07a 0%, #8fd16a 100%);
transform: translateY(-2px);
box-shadow: 0 6px 0 #2d5a24;
}
.start_day_btn:active {
transform: translateY(2px);
box-shadow: 0 2px 0 #2d5a24;
}
.start_day_btn:disabled {
background: linear-gradient(180deg, #ccc 0%, #aaa 100%);
border-color: #888;
box-shadow: 0 4px 0 #666;
cursor: not-allowed;
opacity: 0.7;
}
/* Recipe Modal */
.recipe_modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
z-index: 100;
align-items: center;
justify-content: center;
}
.recipe_modal.open {
display: flex;
}
.recipe_modal_content {
background-color: #FFF9E6;
border: 4px solid #8fd16a;
border-radius: 20px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
width: 360px;
max-width: 90%;
}
.recipe_modal_header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 16px 20px;
border-bottom: 2px solid #8fd16a;
}
.recipe_modal_title {
font-family: 'Fredoka', sans-serif;
font-size: 24px;
color: #5C4632;
margin: 0;
}
.recipe_modal_close {
font-size: 28px;
font-weight: bold;
color: #7A6146;
background: none;
border: none;
cursor: pointer;
line-height: 1;
padding: 0;
}
.recipe_modal_close:hover {
color: #5C4632;
}
.recipe_modal_body {
padding: 20px;
}
.recipe_modal_hint {
font-family: 'Inter', sans-serif;
font-size: 14px;
color: #7A6146;
margin: 0 0 16px;
text-align: center;
}
.recipe_cost_breakdown {
background: rgba(255, 255, 255, 0.6);
padding: 12px 16px;
border-radius: 10px;
margin: 16px 0;
}
.cost_breakdown {
font-family: 'Fredoka', sans-serif;
font-size: 14px;
font-weight: 600;
color: #7A6146;
margin: 0 0 10px;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.recipe_cost_row {
display: flex;
justify-content: space-between;
align-items: center;
font-family: 'Inter', sans-serif;
font-size: 13px;
color: #7A6146;
padding: 4px 0;
}
.recipe_cost_row.total {
border-top: 1px solid #d4c9b8;
margin-top: 8px;
padding-top: 10px;
font-family: 'Fredoka', sans-serif;
font-size: 15px;
font-weight: 600;
color: #5C4632;
}
.recipe_cost_item {
font-family: 'Inter', sans-serif;
font-weight: 500;
}
.recipe_cost_value {
font-family: 'Fredoka', sans-serif;
font-size: 18px;
font-weight: 600;
color: #3f7a33;
}
.recipe_save_btn {
font-family: 'Fredoka', sans-serif;
font-size: 16px;
font-weight: 600;
background: linear-gradient(180deg, #8fd16a 0%, #7bc256 100%);
color: #fff;
border: 3px solid #3f7a33;
border-radius: 12px;
padding: 10px 32px;
cursor: pointer;
box-shadow: 0 4px 0 #3f7a33;
transition: all 0.1s ease;
margin-top: 16px;
display: block;
width: 100%;
}
.recipe_save_btn:hover {
background: linear-gradient(180deg, #a5e07a 0%, #8fd16a 100%);
transform: translateY(-2px);
box-shadow: 0 6px 0 #3f7a33;
}
.recipe_save_btn:active {
transform: translateY(2px);
box-shadow: 0 2px 0 #3f7a33;
}