@charset "UTF-8";


	
	
#controller
	{
		min-width:0;
		max-width:1024px;
	}

#mode_transition
	{
		--mode-transition-primary-light-opacity:0.9;
		--mode-transition-primary-dark-opacity:0.9;
		--mode-transition-duplicate-light-opacity:0.5;
		--mode-transition-duplicate-dark-opacity:0.8;
		--mode-transition-panel-duration:2000ms;
		--mode-transition-pulse-rise-duration:250ms;
		--mode-transition-pulse-fall-duration:250ms;
		position:absolute;
		inset:0;
		z-index:100;
		overflow:hidden;
		visibility:hidden;
		pointer-events:none;
	}

#mode_transition[data-outgoing-appearance="light"]
	{
		--mode-transition-primary-opacity:
			var(--mode-transition-primary-light-opacity);
		--mode-transition-duplicate-opacity:
			var(--mode-transition-duplicate-light-opacity);
	}

#mode_transition[data-outgoing-appearance="dark"]
	{
		--mode-transition-primary-opacity:
			var(--mode-transition-primary-dark-opacity);
		--mode-transition-duplicate-opacity:
			var(--mode-transition-duplicate-dark-opacity);
	}

#mode_transition.active
	{
		visibility:visible;
		pointer-events:auto;
	}

.mode_transition_panel
	{
		position:absolute;
		top:0;
		bottom:0;
		width:50%;
		overflow:hidden;
		background:var(--mode-transition-color, var(--color-surface-solid));
		opacity:0.8;
		transition:transform var(--mode-transition-panel-duration) ease-in-out;
		will-change:transform, opacity;
	}

.mode_transition_wheel,
.mode_transition_wheel_index_layer
	{
		position:absolute;
		top:50%;
		width:400px;
		height:400px;
		transform:translate(-50%, -50%);
		overflow:visible;
		color:var(--mode-transition-wheel-color, #35552d);
		filter:drop-shadow(0 3px 3px rgba(0, 0, 0, 0.28));
	}

.mode_transition_left .mode_transition_wheel,
.mode_transition_left .mode_transition_wheel_index_layer
	{
		left:100%;
	}

.mode_transition_right .mode_transition_wheel,
.mode_transition_right .mode_transition_wheel_index_layer
	{
		left:0;
	}

#mode_transition[data-outgoing-appearance="light"]
	{
		--mode-transition-wheel-color:#35552d;
		--mode-transition-wheel-accent:#9a5b2c;
		--mode-transition-index-start-angle:-30deg;
		--mode-transition-index-end-angle:30deg;
	}

#mode_transition[data-outgoing-appearance="dark"]
	{
		--mode-transition-wheel-color:#d5e8ed;
		--mode-transition-wheel-accent:#75c6dc;
		--mode-transition-index-start-angle:30deg;
		--mode-transition-index-end-angle:-30deg;
	}

.mode_transition_wheel_rotor
	{
		transform-box:view-box;
		transform-origin:center;
		fill:none;
		stroke:currentColor;
		stroke-linecap:round;
		stroke-linejoin:round;
	}

.mode_transition_wheel_outer
	{
		stroke-width:10;
	}

.mode_transition_wheel_inner
	{
		stroke-width:5;
	}

.mode_transition_wheel_spokes
	{
		stroke-width:12;
	}

.mode_transition_wheel_hub
	{
		fill:var(--mode-transition-color, var(--color-surface-solid));
		stroke-width:9;
	}

.mode_transition_wheel_index
	{
		stroke:var(--mode-transition-wheel-accent);
		stroke-width:6;
	}

.mode_transition_wheel_index_rotor
	{
		transform-box:view-box;
		transform-origin:center;
		transform:rotate(var(--mode-transition-index-start-angle, -30deg));
	}

.mode_control_wheel
	{
		position:relative;
		display:block;
		grid-column:2;
		grid-row:1;
		justify-self:center;
		width:32px;
		height:32px;
		--mode-transition-wheel-color:var(--color-wheel);
		--mode-transition-wheel-accent:var(--color-wheel-index);
		--mode-transition-color:var(--color-mode-control);
	}

#mode_toggle .mode_control_wheel_art,
#mode_toggle .mode_control_wheel_index_layer
	{
		position:absolute;
		inset:0;
		width:32px;
		height:32px;
		transform:none;
		filter:drop-shadow(0 1px 1px rgba(0, 0, 0, 0.24));
	}

#mode_toggle[data-selected-mode="real"]
	.mode_control_wheel_index_layer .mode_transition_wheel_index_rotor
	{
		transform:rotate(-30deg);
	}

#mode_toggle[data-selected-mode="simulation"]
	.mode_control_wheel_index_layer .mode_transition_wheel_index_rotor
	{
		transform:rotate(30deg);
	}

#mode_toggle[data-transition-direction="real-to-simulation"]
	.mode_control_wheel_index_layer .mode_transition_wheel_index_rotor
	{
		animation:mode-control-index-real-to-simulation
			var(--mode-control-transition-duration, 2500ms) linear both;
	}

#mode_toggle[data-transition-direction="simulation-to-real"]
	.mode_control_wheel_index_layer .mode_transition_wheel_index_rotor
	{
		animation:mode-control-index-simulation-to-real
			var(--mode-control-transition-duration, 2500ms) linear both;
	}

#mode_toggle[data-transition-direction] .mode_control_wheel_art
	.mode_transition_wheel_rotor
	{
		animation:mode-transition-wheel-spin
			var(--mode-control-wheel-spin-duration, 600ms) linear infinite;
	}

#mode_toggle[data-transition-direction="simulation-to-real"]
	.mode_control_wheel_art .mode_transition_wheel_rotor
	{
		animation-direction:reverse;
	}

@keyframes mode-control-index-real-to-simulation
	{
		from { transform:rotate(-30deg); }
		to { transform:rotate(30deg); }
	}

@keyframes mode-control-index-simulation-to-real
	{
		from { transform:rotate(30deg); }
		to { transform:rotate(-30deg); }
	}

#mode_transition[data-wheel="spinning"] .mode_transition_wheel_index_rotor
	{
		transform:rotate(var(--mode-transition-index-end-angle, 30deg));
		transition:transform var(--mode-transition-wheel-rotation-duration, 1500ms) linear;
	}

#mode_transition[data-wheel="stopped"] .mode_transition_wheel_index_rotor
	{
		transform:rotate(var(--mode-transition-index-end-angle, 30deg));
	}

#mode_transition[data-wheel="spinning"] .mode_transition_wheel_rotor
	{
		animation:mode-transition-wheel-spin 1000ms linear infinite;
	}

#mode_transition[data-outgoing-appearance="dark"][data-wheel="spinning"]
	.mode_transition_wheel_rotor
	{
		animation-direction:reverse;
	}

@keyframes mode-transition-wheel-spin
	{
		to
			{
				transform:rotate(360deg);
			}
	}

#mode_transition[data-pulse="rising"] .mode_transition_primary
	{
		opacity:var(--mode-transition-primary-opacity, 0.9);
		transition:
			transform var(--mode-transition-panel-duration) ease-in-out,
			opacity var(--mode-transition-pulse-rise-duration) ease-in-out;
	}

#mode_transition[data-pulse="falling"] .mode_transition_primary
	{
		opacity:0.8;
		transition:
			transform var(--mode-transition-panel-duration) ease-in-out,
			opacity var(--mode-transition-pulse-fall-duration) ease-in-out;
	}

.mode_transition_duplicate
	{
		visibility:hidden;
	}

#mode_transition[data-pulse="falling"] .mode_transition_duplicate,
#mode_transition[data-pulse="complete"] .mode_transition_duplicate,
#mode_transition[data-phase="opening"] .mode_transition_duplicate
	{
		visibility:visible;
		opacity:var(--mode-transition-duplicate-opacity, 0.5);
	}

.mode_transition_left
	{
		left:0;
		transform:translateX(calc(-100% - 1px));
	}

.mode_transition_right
	{
		right:0;
		transform:translateX(calc(100% + 1px));
	}

#mode_transition.closing .mode_transition_panel
	{
		transform:translateX(0);
	}

body.mode-transitioning #user_menu
	{
		pointer-events:none;
	}

@media (prefers-reduced-motion: reduce)
	{
		.mode_transition_panel
			{
				transition:none;
			}

		.mode_transition_wheel_rotor
			{
				animation:none !important;
			}

		.mode_transition_wheel_index_rotor
			{
				transition:none !important;
			}

		#mode_toggle .mode_transition_wheel_rotor,
		#mode_toggle .mode_transition_wheel_index_rotor
			{
				animation:none !important;
			}

		#timeline_hold_progress.active,
		#timeline_hold_progress.active .timeline_hold_progress_fill
			{
				animation:none !important;
			}
	}
	
	

#controller_center
	{
		overflow:hidden;
		margin: 0px auto;
		height: 570px;
	}







	
	
	
	
.button
	{
		position:relative;
		height:175px;
		width:175px;
		border:1px black solid;
		margin:0px auto;
		background-size:cover;
	}
	
.small_button
	{
		position:relative;
		height:75px;
		width:75px;
		border:1px black solid;
		margin:0px auto;
		background-size:cover;
	}	
	
	
#sow
	{
		top:10px;
		background-image:url('../images/generated/button-plant.png');
	}
	
.cover
	{
		background-color:rgba(128,128,128,0.8);
		
	}
	
#water
	{
		top:20px;
		background-image:url('../images/generated/button-water.png');
	}
	
#harvest
	{
		top:30px;
		background-image:url('../images/generated/button-harvest.png');
	}
	
#reset
	{
		top:40px;
		background-image:url('../images/generated/button-reset.png');
	}
	
	
#profile
	{
		top:15px;
		background-image:url('../images/generated/button-profile.png');
	}
	
#garden_panel
	{
		height:208px;
		position:relative;
		/*background-color:green;*/
		/*
background-image: linear-gradient(right top, rgb(159,224,150) 38%, rgb(255,255,255) 69%, rgb(159,224,150) 100%);
background-image: -o-linear-gradient(right top, rgb(159,224,150) 38%, rgb(255,255,255) 69%, rgb(159,224,150) 100%);
background-image: -moz-linear-gradient(right top, rgb(159,224,150) 38%, rgb(255,255,255) 69%, rgb(159,224,150) 100%);
background-image: -webkit-linear-gradient(right top, rgb(159,224,150) 38%, rgb(255,255,255) 69%, rgb(159,224,150) 100%);
background-image: -ms-linear-gradient(right top, rgb(159,224,150) 38%, rgb(255,255,255) 69%, rgb(159,224,150) 100%);

background-image: -webkit-gradient(
	linear,
	right top,
	left bottom,
	color-stop(0.38, rgb(159,224,150)),
	color-stop(0.69, rgb(255,255,255)),
	color-stop(1, rgb(159,224,150))
);
*/
	}
	
		
#timeline_panel
	{
		display:none;
		position:relative;
		box-sizing:border-box;
		height:294px;
		padding:8px 12px;
		background:var(--color-surface);
		color:var(--color-text);
		font:13px/1.2 Arial, sans-serif;
	}

#timeline_status
	{
		height:30px;
		position:relative;
		display:flex;
		align-items:center;
		gap:8px;
		white-space:nowrap;
	}

body.mode-real #controller,
body.mode-real :is(#marketplace_browser,#plant_chooser),
body.mode-real #timeline_panel,
body.mode-real #marketplace_buy_panel
	{
		font-family:Arial, Helvetica, sans-serif;
	}

body.mode-real #timeline_panel,
body.mode-real #marketplace_buy_panel,
body.mode-real button,
body.mode-real input
	{
		border-radius:10px;
	}

body.mode-simulation #controller,
body.mode-simulation :is(#marketplace_browser,#plant_chooser),
body.mode-simulation #timeline_panel,
body.mode-simulation #marketplace_buy_panel,
body.mode-simulation button,
body.mode-simulation input
	{
		font-family:"Courier New", Courier, ui-monospace, monospace;
		border-radius:0;
	}

body.mode-simulation #timeline_panel
	{
		font-size:12px;
		letter-spacing:-0.35px;
	}

body.mode-simulation #timeline_status > strong
	{
		font-size:17px;
	}

body.mode-simulation #timeline_status
	{
		gap:6px;
	}

body.mode-simulation #marketplace_buy_panel,
body.mode-simulation #timeline_controls button
	{
		font-size:10px;
		letter-spacing:-0.45px;
	}

.build_panel
	{
		display:block;
		box-sizing:border-box;
		height:19px;
		padding:1px 5px;
		overflow:hidden;
		border:1px solid var(--color-border-strong);
		background:var(--color-surface-elevated);
		color:var(--color-text-muted);
		font:10px/11px Consolas, monospace;
		text-align:right;
		text-overflow:ellipsis;
		white-space:nowrap;
	}

body.mode-real .build_panel
	{
		border-radius:7px;
		box-shadow:inset 0 1px 0 rgba(255,255,255,.68);
	}

body.mode-simulation .build_panel,
body.logged-out .build_panel
	{
		border-radius:0;
		box-shadow:none;
	}

#garden_positions
	{
		position:absolute;
		left:8px;
		right:8px;
		top:12px;
		z-index:4;
		display:none;
		gap:12px;
	}

#garden_positions .crop_panel
	{
		position:relative;
		box-sizing:border-box;
		border:2px solid var(--color-border-strong);
		background-color:var(--color-surface-subtle);
	}

#garden_positions .plot_select
	{
		position:relative;
		flex:1 1 0;
		min-width:0;
		height:174px;
		padding:0;
		border:0;
		border-radius:inherit;
		background-color:#e6efd9;
		background-position:center;
		background-repeat:no-repeat;
		background-size:cover;
		color:#315b27;
		cursor:default;
	}

.visually_hidden
	{
		position:absolute;
		width:1px;
		height:1px;
		padding:0;
		margin:-1px;
		overflow:hidden;
		clip:rect(0,0,0,0);
		white-space:nowrap;
		border:0;
	}

#marketplace_browser,
.timeline_disclosure_panel
	{
		position:relative;
		z-index:12;
		font-size:11px;
	}

#marketplace_browser
	{
		margin-left:auto;
	}

#timeline_resources_browser
	{
		display:contents;
	}

.marketplace_disclosure_toggle,
.timeline_disclosure_toggle
	{
		padding:2px 5px;
		border:1px solid #71866a;
		border-radius:3px;
		background:#eef3e9;
		color:#315b27;
		font-weight:bold;
		cursor:pointer;
		list-style:none;
	}

.marketplace_disclosure_toggle .disclosure_indicator,
.timeline_disclosure_toggle .disclosure_indicator
	{
		display:inline-block;
		width:5px;
		height:5px;
		margin:0 1px 2px 3px;
		border-right:1px solid currentColor;
		border-bottom:1px solid currentColor;
		transform:rotate(45deg);
	}

.marketplace_disclosure_toggle[aria-expanded="true"] .disclosure_indicator,
.timeline_disclosure_toggle[aria-expanded="true"] .disclosure_indicator
	{
		margin-bottom:-1px;
		transform:rotate(225deg);
	}

#timeline_history_count
	{
		display:inline-block;
		min-width:13px;
		padding:0 3px;
		border-radius:8px;
		background:#dbe7d4;
		text-align:center;
	}

.timeline_popover
	{
		position:absolute;
		top:25px;
		right:0;
		width:170px;
		box-sizing:border-box;
		padding:8px;
		border:1px solid #71866a;
		border-radius:4px;
		background:#fffdf8;
		box-shadow:0 3px 9px rgba(27,50,25,0.24);
		white-space:normal;
	}

.timeline_popover > strong,
.timeline_popover label,
.timeline_popover .series_legend
	{
		display:block;
		margin-bottom:5px;
	}

.marketplace_popover
	{
		width:205px;
	}

.marketplace_popover p
	{
		display:flex;
		margin:6px 0;
		justify-content:space-between;
		gap:12px;
	}

.marketplace_popover p span,
.marketplace_popover small
	{
		color:var(--color-text-muted);
	}

.series_legend
	{
		padding-top:5px;
		border-top:1px solid #d9dfd2;
		color:#53604f;
	}

.series_legend i
	{
		display:inline-block;
		width:22px;
		height:0;
		margin:0 3px 3px 0;
		border-top:2px solid #477a35;
	}

.series_legend .available_sample
	{
		margin-left:7px;
		border-top-style:dashed;
	}

.history_popover
	{
		width:320px;
		max-height:220px;
		overflow:auto;
	}

#timeline_history_empty
	{
		margin:0;
		color:#687164;
	}

.history_item
	{
		display:flex;
		align-items:center;
		gap:5px;
		padding:4px 0;
		border-bottom:1px solid #e1e5dd;
	}

.history_item button
	{
		flex:1;
		padding:5px;
		border:0;
		background:transparent;
		color:#315b27;
		text-align:left;
		cursor:pointer;
	}

.history_item button.selected
	{
		background:#e4eedf;
		font-weight:bold;
	}

#timeline_history_record
	{
		margin-top:7px;
		padding-top:7px;
		border-top:2px solid #d9dfd2;
		white-space:normal;
	}

#timeline_history_record h4,
#timeline_history_record p
	{
		margin:0 0 5px;
	}

#timeline_history_record ul
	{
		margin:4px 0 0;
		padding-left:18px;
	}

.economy_panel
	{
		position:relative;
		z-index:20;
		overflow:visible;
		box-sizing:border-box;
		height:30px;
		padding:3px 6px;
		display:none;
		align-items:center;
		gap:6px;
		border:1px solid #617d58;
		border-bottom:0;
		background:rgba(245,250,237,0.96);
		color:#30452c;
		font:11px/1 Arial, sans-serif;
		white-space:nowrap;
	}

.economy_panel button
	{
		height:22px;
		padding:2px 6px;
		border:1px solid #315b27;
		border-radius:3px;
		background:#4f7f3f;
		color:white;
		font-size:11px;
		cursor:pointer;
	}

.economy_panel button:disabled
	{
		border-color:#929b8e;
		background:#c3c8c0;
		color:#667060;
		cursor:default;
	}

#timeline_status > strong
	{
		position:absolute;
		z-index:3;
		left:0;
		top:5px;
		font-size:20px;
		line-height:1;
		color:#183d55;
	}

#timeline_status > span
	{
		color:#53604f;
	}

body.mode-real #timeline_resource_tracks,
body.mode-real #timeline_resource_labels.timeline_overlay_surface--resource
	{
		display:none;
	}

#timeline_range_controls
	{
		display:flex;
		flex:0 0 auto;
		align-items:flex-end;
		gap:3px;
	}

#timeline_range_controls button
	{
		box-sizing:border-box;
		height:20px;
		padding:1px 6px;
		border:1px solid #71866a;
		border-radius:3px;
		background:#eef3e9;
		color:#315b27;
		font-size:11px;
		font-weight:bold;
		cursor:pointer;
		white-space:nowrap;
	}

#timeline_range_controls button:disabled
	{
		color:#899185;
		background:#e2e5df;
		cursor:default;
	}

#action_feedback
	{
		position:absolute;
		left:0;
		top:82px;
		z-index:90;
		box-sizing:border-box;
		width:80%;
		height:28px;
		padding:3px 8px;
		background:transparent;
		color:#34434a;
		font:12px/20px Arial, sans-serif;
		opacity:1;
		visibility:hidden;
		will-change:opacity;
	}

#action_feedback.has-message
	{
		visibility:visible;
	}

#action_feedback_details
	{
		box-sizing:border-box;
		height:22px;
		margin:0;
		border:1px solid #7f8a8f;
		border-left:4px solid #567685;
		border-radius:3px;
		background:rgba(244,246,246,0.97);
		box-shadow:0 1px 2px rgba(42,54,59,0.14);
	}

#action_feedback_details summary
	{
		display:flex;
		align-items:center;
		height:20px;
		padding:0 50px 0 7px;
		cursor:pointer;
		list-style:none;
	}

#action_feedback_details summary::before
	{
		content:"\2713";
		flex:0 0 auto;
		margin-right:6px;
		color:#456f67;
		font-weight:bold;
	}

#action_feedback.feedback-error #action_feedback_details
	{
		border-color:#ad7771;
		border-left-color:#a84940;
		background:rgba(252,241,239,0.98);
		color:#74352f;
	}

#action_feedback.feedback-error #action_feedback_details summary::before
	{
		content:"!";
		color:#a13d34;
	}

#action_feedback_details summary::-webkit-details-marker
	{
		display:none;
	}

#completion_summary
	{
		flex:1 1 auto;
		min-width:0;
		overflow:hidden;
		text-overflow:ellipsis;
		white-space:nowrap;
		font-weight:bold;
	}

.feedback_expand_hint
	{
		flex:0 0 auto;
		margin-left:8px;
		color:#59686e;
		font-size:10px;
		text-decoration:underline;
	}

#action_feedback_details[open] .feedback_expand_hint
	{
		color:#2f4852;
	}

#action_feedback.feedback-error .feedback_expand_hint,
#action_feedback.feedback-error #action_feedback_details[open] .feedback_expand_hint
	{
		color:#81443e;
	}

#action_feedback_explanation
	{
		position:absolute;
		left:8px;
		right:8px;
		top:29px;
		z-index:2;
		box-sizing:border-box;
		margin:0;
		padding:8px 34px 8px 10px;
		border:1px solid #7f8a8f;
		border-left:4px solid #567685;
		border-radius:4px;
		background:rgba(248,249,249,0.99);
		box-shadow:0 -3px 8px rgba(42,54,59,0.16);
		color:#34434a;
		font:12px/1.35 Arial, sans-serif;
	}

#action_feedback.feedback-error #action_feedback_explanation
	{
		border-color:#ad7771;
		border-left-color:#a84940;
		background:rgba(253,245,243,0.99);
		color:#74352f;
	}

#action_feedback_dismiss
	{
		position:absolute;
		top:4px;
		right:11px;
		z-index:3;
		width:22px;
		height:21px;
		padding:0;
		border:1px solid transparent;
		border-radius:3px;
		background:transparent;
		color:#59686e;
		font:bold 17px/18px Arial, sans-serif;
		cursor:pointer;
	}

#action_feedback_dismiss:hover,
#action_feedback_dismiss:focus-visible
	{
		border-color:#7f8a8f;
		background:#e7ebec;
		color:#27363c;
	}

#timeline_controls
	{
		height:30px;
		display:grid;
		grid-template-columns:minmax(34px,.42fr) minmax(68px,.8fr) minmax(150px,1.8fr) auto minmax(150px,1.8fr) minmax(68px,.8fr) minmax(34px,.42fr);
		align-items:end;
		gap:2px;
	}

#timeline_controls[data-configured="true"]
	{
		grid-template-columns:repeat(auto-fit,minmax(0,1fr));
	}

#timeline_controls[data-configured="true"][data-default-navigation="true"]
	{
		grid-template-columns:
			minmax(34px,.42fr) minmax(68px,.8fr) minmax(110px,1.3fr)
			minmax(62px,.8fr) minmax(148px,1.8fr) minmax(68px,.8fr)
			minmax(34px,.42fr);
	}

#timeline_controls .timeline_navigation_symbol
	{
		width:14px;
		height:14px;
		margin-right:3px;
		vertical-align:middle;
		fill:none;
		stroke:currentColor;
		stroke-width:2.4;
		stroke-linecap:round;
		stroke-linejoin:round;
	}

#timeline_controls[data-label-presentation="icons-only"]
	.timeline_navigation_control
	{
		font-size:0;
		line-height:0;
	}

#timeline_controls[data-label-presentation="icons-only"]
	.timeline_navigation_symbol
	{
		margin-right:0;
	}

#timeline_controls[data-label-presentation="icons-only"]
	#timeline_advance_controls button[data-timeline-advance-control="true"]
	{
		font-size:0;
	}

#timeline_controls button[data-timeline-action]
	{
		font-size:9px;
		line-height:10px;
		white-space:normal;
		overflow-wrap:anywhere;
	}

#timeline_controls .timeline_navigation_label
	{ white-space:normal; overflow-wrap:normal; }

#timeline_controls .timeline_navigation_disclosure
	{
		position:relative;
		display:block;
		min-width:0;
	}

#timeline_controls .timeline_navigation_disclosure > .timeline_disclosure_toggle
	{
		width:100%;
	}

.timeline_navigation_disclosure,
.timeline_water_next_compact
	{
		display:none;
	}

#timeline_panel[data-compact-navigation="true"] #timeline_controls
	{
		--timeline-compact-left-fr:1fr;
		--timeline-compact-today-fr:1fr;
		--timeline-compact-advance-fr:1fr;
		--timeline-compact-right-fr:1fr;
		grid-template-columns:
			minmax(0,var(--timeline-compact-left-fr))
			minmax(0,var(--timeline-compact-today-fr))
			minmax(0,var(--timeline-compact-advance-fr))
			minmax(0,var(--timeline-compact-right-fr));
	}

#timeline_panel[data-compact-navigation="true"]
	#timeline_controls > .timeline_navigation_disclosure
	{
		position:relative;
		display:block;
		min-width:0;
	}

#timeline_panel[data-compact-navigation="true"]
	#timeline_controls > .timeline_navigation_disclosure >
	.timeline_disclosure_toggle
	{
		width:100%;
	}

#timeline_panel[data-compact-navigation="true"]
	#timeline_controls > #timeline_scroll_left,
#timeline_panel[data-compact-navigation="true"]
	#timeline_controls > #timeline_range_previous,
#timeline_panel[data-compact-navigation="true"]
	#timeline_controls > #timeline_previous,
#timeline_panel[data-compact-navigation="true"]
	#timeline_controls > #timeline_range_next,
#timeline_panel[data-compact-navigation="true"]
	#timeline_controls > #timeline_scroll_right
	{
		display:none;
	}

#timeline_panel[data-compact-navigation="true"] #timeline_advance_controls:not(.single)
	#timeline_next,
#timeline_panel[data-compact-navigation="true"] #timeline_advance_controls.single
	#timeline_water_next
	{
		display:none;
	}

#timeline_panel[data-compact-navigation="true"] #timeline_advance_controls
	{
		display:block;
	}

#timeline_panel[data-compact-navigation="true"] #timeline_water_next
	{
		width:100%;
		border-radius:4px;
	}

#timeline_panel[data-compact-navigation="true"] .timeline_water_next_desktop
	{
		display:none;
	}

#timeline_panel[data-compact-navigation="true"] .timeline_water_next_compact
	{
		display:inline;
	}

.timeline_navigation_popover
	{
		position:absolute;
		bottom:31px;
		z-index:12;
		display:grid;
		width:max-content;
		min-width:120px;
		padding:4px;
		gap:3px;
		border:1px solid var(--color-border-strong);
		border-radius:4px;
		background:var(--color-surface);
		box-shadow:0 2px 5px rgba(0,0,0,.28);
	}

.timeline_navigation_popover[hidden]
	{
		display:none;
	}

#timeline_previous_actions_surface
	{
		left:0;
	}

#timeline_next_actions_surface
	{
		right:0;
	}

#timeline_advance_controls
	{
		display:flex;
		width:100%;
		min-width:0;
		gap:2px;
	}

#timeline_advance_controls:not(.single) #timeline_next
	{ flex:1 1 0; }

#timeline_advance_controls:not(.single) #timeline_water_next
	{ flex:2 1 0; }

#timeline_advance_controls button[data-timeline-advance-control="true"]
	{
		display:flex;
		min-width:0;
		align-items:center;
		justify-content:center;
		gap:4px;
		overflow:hidden;
		font-size:9px;
		line-height:1;
	}

#timeline_next > span:first-child,
#timeline_water_next .timeline_water_next_desktop
	{
		display:flex;
		width:100%;
		min-width:0;
		align-items:center;
		justify-content:center;
		gap:4px;
	}

#timeline_advance_controls .timeline_navigation_symbol
	{
		width:14px;
		height:14px;
		margin:0;
		flex:0 0 14px;
		fill:none;
		stroke:currentColor;
		stroke-width:2.4;
		stroke-linecap:round;
		stroke-linejoin:round;
	}

#timeline_controls .timeline_navigation_symbol--filled,
#timeline_controls .timeline_navigation_symbol--filled path,
#timeline_controls .timeline_navigation_symbol--advance-filled
	[data-navigation-part="advance"]
	{
		fill:currentColor;
		stroke:none;
	}

#timeline_controls .timeline_navigation_control
	{
		box-sizing:border-box;
		touch-action:manipulation;
		min-width:0;
		height:26px;
		padding:3px 5px;
		border:1px solid #245d7b;
		border-radius:4px;
		background:#397fa8;
		color:white;
		font-weight:bold;
		white-space:nowrap;
		cursor:pointer;
	}

#timeline_controls .timeline_icon_control
	{
		padding-inline:2px;
		font-size:12px;
	}

#timeline_water_next
	{
		flex:1 1 0;
		border-radius:4px;
		white-space:normal;
	}

#timeline_next
	{
		flex:1 1 0;
		border-radius:4px;
	}

#timeline_advance_controls.single #timeline_next
	{
		width:100%;
		flex:1 1 auto;
		display:flex;
		align-items:stretch;
		justify-content:stretch;
		gap:0;
		padding:0;
		border-radius:4px;
	}

#timeline_advance_controls.single #timeline_next > span:first-child
	{
		flex:1 1 33.333%;
		align-items:center;
		justify-content:center;
		padding:0;
	}

#timeline_next_water_status
	{
		display:none;
		width:auto;
		min-width:0;
		flex:2 1 66.667%;
		padding:0 4px;
		box-sizing:border-box;
		align-items:center;
		justify-content:center;
		gap:3px;
		border-left:1px solid rgba(255,255,255,0.5);
		background:transparent;
		white-space:nowrap;
		line-height:1;
	}

#timeline_next_water_status .timeline_navigation_symbol
	{
		width:12px;
		height:12px;
		flex:0 0 12px;
	}

#timeline_previous:disabled,
#timeline_advance_controls button:disabled
	{
		border-color:#aab4a5;
		background:#d9dfd2;
		color:#687164;
		cursor:default;
	}

#timeline_chart
	{
		position:relative;
		height:216px;
		/* Own native gestures before PointerEvents arbitrate Timeline zoom. */
		touch-action:none;
	}

#timeline_zoom_anchor_marker
	{
		position:absolute;
		z-index:10;
		width:12px;
		height:12px;
		transform:translate(-50%, -50%);
		pointer-events:none;
		color:var(--color-wheel);
		filter:drop-shadow(0 1px 2px rgba(0, 0, 0, 0.7));
	}

#timeline_zoom_anchor_marker[hidden]
	{ display:none; }

#timeline_zoom_morph
	{
		position:absolute;
		z-index:8;
		inset:0;
		overflow:hidden;
		pointer-events:none;
		color:var(--color-text);
	}

#timeline_zoom_morph[hidden]
	{ display:none; }

.timeline_zoom_morph_date
	{
		position:absolute;
		box-sizing:border-box;
		transform-origin:top left;
		border:1px solid var(--color-border);
		background:transparent;
		font:700 9px/13px system-ui, sans-serif;
		white-space:nowrap;
		text-align:center;
		overflow:hidden;
	}

.timeline_zoom_morph_token
	{
		position:absolute;
		margin:-2px;
		width:4px;
		height:4px;
		border-radius:50%;
		background:var(--color-chart-health);
	}

.timeline_zoom_morph_token[data-identity="position-2"]
	{ background:var(--color-chart-yield); }

.timeline_zoom_morph_token[data-identity="position-3"]
	{ background:var(--color-chart-credit); }

.timeline_zoom_morph_token.is-resource
	{ margin:-5px; width:10px; height:10px; background:transparent; }

.timeline_zoom_morph_token.is-resource .resource_entity_icon
	{ width:10px; height:10px; }

#timeline_chart[data-zoom-morph] #timeline_graph,
#timeline_chart[data-zoom-morph] #timeline_weekly_surface,
#timeline_chart[data-zoom-morph] #timeline_plot_labels,
#timeline_chart[data-zoom-morph] #timeline_axis_labels,
#timeline_chart[data-zoom-morph] #timeline_stage_labels,
#timeline_chart[data-zoom-morph] #timeline_resource_labels,
#timeline_chart[data-zoom-morph] #timeline_day_labels
	{ animation:timeline-zoom-morph-source-fade 200ms linear both; }

@keyframes timeline-zoom-morph-source-fade
	{
		from { opacity:1; }
		to { opacity:.35; }
	}

#timeline_zoom_anchor_marker svg
	{ display:block; width:100%; height:100%; }

#timeline_zoom_anchor_marker .mode_transition_wheel_outer
	{ stroke-width:18; }

#timeline_zoom_anchor_marker .mode_transition_wheel_inner
	{ stroke-width:10; }

#timeline_zoom_anchor_marker .mode_transition_wheel_spokes
	{ stroke-width:16; }

#timeline_zoom_anchor_marker .mode_transition_wheel_hub
	{ stroke-width:14; }

#timeline_weekly_surface
	{
		position:absolute;
		z-index:1;
		inset:0 0 24px;
		box-sizing:border-box;
		display:grid;
		grid-template-columns:20px minmax(0, 1fr);
		grid-template-rows:20px minmax(0, 1fr);
		background:var(--color-surface);
		color:var(--color-text);
		pointer-events:none;
		overflow:hidden;
	}

#timeline_weekly_surface[hidden]
	{ display:none; }

.timeline_weekly_weekdays,
.timeline_weekly_grid
	{
		display:grid;
		grid-template-columns:repeat(7, minmax(0, 1fr));
	}

.timeline_weekly_weekdays
	{
		grid-column:2;
		grid-row:1;
		height:20px;
		background:var(--color-surface);
		font:700 10px/20px system-ui, sans-serif;
		text-align:center;
	}

.timeline_weekly_plot_labels_viewport,
.timeline_weekly_grid_viewport
	{
		grid-row:2;
		min-width:0;
		min-height:0;
		overflow:hidden;
	}

.timeline_weekly_plot_labels_viewport
	{ grid-column:1; }

.timeline_weekly_grid_viewport
	{ grid-column:2; }

.timeline_weekly_grid
	{
		height:var(--timeline-buffer-height, 100%);
		grid-template-rows:repeat(var(--timeline-week-count), minmax(0, 1fr));
		transform:translateY(calc(var(--timeline-buffer-origin, 0%) +
			var(--timeline-weekly-pan-offset, 0px)));
		will-change:transform;
	}

.timeline_weekly_plot_labels
	{
		display:grid;
		grid-template-rows:repeat(var(--timeline-week-count), minmax(0, 1fr));
		min-height:0;
		height:var(--timeline-buffer-height, 100%);
		transform:translateY(calc(var(--timeline-buffer-origin, 0%) +
			var(--timeline-weekly-pan-offset, 0px)));
		will-change:transform;
		border-left:1px solid var(--color-border);
		background:var(--color-surface-subtle);
	}

#timeline_chart[data-pan-settling="true"] .timeline_weekly_grid,
#timeline_chart[data-pan-settling="true"] .timeline_weekly_plot_labels
	{ transition:transform 180ms ease-out; }

@media (prefers-reduced-motion: reduce)
	{
		#timeline_chart[data-pan-settling="true"] .timeline_weekly_grid,
		#timeline_chart[data-pan-settling="true"] .timeline_weekly_plot_labels
			{ transition:none; }
	}

.timeline_weekly_plot_label_group
	{
		display:grid;
		grid-template-rows:13px repeat(3, minmax(0, 1fr));
		min-height:0;
		border-top:1px solid var(--color-border);
		border-right:1px solid var(--color-border);
	}

.timeline_weekly_plot_label_group.is-resource-face,
.timeline_weekly_day.is-resource-face
	{
		grid-template-rows:13px repeat(4, minmax(0, 1fr));
	}

.timeline_weekly_plot_label_group.is-resource-face .timeline_weekly_plot_label
	{
		overflow:hidden;
	}

.timeline_weekly_plot_label_group.is-resource-face .resource_entity_icon
	{
		width:12px;
		height:12px;
	}

.timeline_weekly_day.is-resource-face
	{
		position:relative;
		container:timeline-weekly-resource-day / inline-size;
	}

.timeline_weekly_resource
	{
		position:relative;
		min-height:0;
		border-top:1px solid color-mix(in srgb, var(--color-border) 70%, transparent);
	}

.timeline_weekly_resource--tomatoes,
.timeline_weekly_resource_event[data-resource="tomatoes"]
	{ --weekly-resource-color:var(--color-chart-tomato); }

.timeline_weekly_resource--credits,
.timeline_weekly_resource_event[data-resource="credits"]
	{ --weekly-resource-color:var(--color-chart-credit); }

.timeline_weekly_resource--seeds,
.timeline_weekly_resource_event[data-resource="seeds"]
	{ --weekly-resource-color:var(--color-chart-seed); }

.timeline_weekly_resource--tech,
.timeline_weekly_resource_event[data-resource="tech"]
	{ --weekly-resource-color:var(--color-chart-tech-owned); }

.timeline_weekly_resource_graph
	{
		display:block;
		width:100%;
		height:100%;
		overflow:visible;
		opacity:.48;
	}

.timeline_weekly_day.has-resource-events .timeline_weekly_resource_graph
	{ opacity:.24; }

.timeline_weekly_resource_balance,
.timeline_weekly_resource_available
	{
		fill:none;
		stroke-width:1.4;
		vector-effect:non-scaling-stroke;
	}

.timeline_weekly_resource_balance
	{ stroke:var(--weekly-resource-color); }

.timeline_weekly_resource_available
	{
		stroke:var(--weekly-resource-color);
		stroke-dasharray:2 2;
	}

.timeline_weekly_resource_events
	{
		position:absolute;
		z-index:1;
		inset:13px 9% 0;
		display:grid;
		grid-template-columns:repeat(2, minmax(0, 1fr));
		grid-template-rows:repeat(2, minmax(0, 1fr));
		row-gap:1px;
		pointer-events:none;
	}

.timeline_weekly_resource_event
	{
		position:relative;
		display:flex;
		align-items:center;
		justify-content:center;
		min-width:0;
		min-height:0;
	}

	.timeline_weekly_resource_event[data-activity]
	{
		color:var(--weekly-resource-color);
		background:color-mix(in srgb, var(--color-surface) 82%, transparent);
		border:1px solid currentColor;
		border-radius:2px;
	}

.timeline_weekly_resource_event .resource_entity_icon
	{
		width:18px;
		height:18px;
		max-width:calc(100% - 2px);
		max-height:calc(100% - 2px);
		flex:none;
	}

.timeline_weekly_resource_event_detail
	{
		position:absolute;
		right:2px;
		font:800 8px/1 system-ui,sans-serif;
		background:var(--color-surface);
	}

.timeline_weekly_resource_event_detail
	{ bottom:2px; }

@container timeline-weekly-resource-day (max-width:70px)
	{
		.timeline_weekly_resource_event_detail
			{ display:none; }
	}

.timeline_weekly_plot_label_group::before
	{ content:""; }

.timeline_weekly_plot_label
	{
		display:flex;
		align-items:center;
		justify-content:center;
		min-height:0;
		border-top:1px solid color-mix(in srgb, var(--color-border) 70%, transparent);
		font:800 8px/1 system-ui, sans-serif;
	}

.timeline_weekly_day
	{
		display:grid;
		grid-template-rows:13px repeat(3, minmax(0, 1fr));
		min-width:0;
		min-height:0;
		overflow:hidden;
		border:1px solid var(--color-border);
		background:color-mix(in srgb, var(--color-surface-elevated) 88%, transparent);
	}

.timeline_weekly_day.is-selected
	{
		border:2px solid var(--color-chart-health);
		background:color-mix(in srgb, var(--color-chart-health) 12%, var(--color-surface));
	}

.timeline_weekly_day.is-today .timeline_weekly_date::after
	{ content:" · Today"; }

.timeline_weekly_date
	{
		display:block;
		padding:1px 3px;
		font:700 9px/12px system-ui, sans-serif;
		white-space:nowrap;
	}

@media (max-width:360px)
	{
		.timeline_weekly_date
			{
				padding-inline:1px;
				font-size:8px;
				letter-spacing:-0.4px;
			}
	}

:root,
.action_icon_mode--real
	{
		--timeline-history-basket-fill-ratio:78%;
		--timeline-history-basket-fill-base:#3b2812;
	}

body.mode-simulation,
.action_icon_mode--simulation
	{
		--timeline-history-basket-fill-ratio:72%;
		--timeline-history-basket-fill-base:#f4d99a;
	}

.timeline_plot_icon_palette, .plot-summary-icon-palette
	{
		--timeline-history-basket-tone:color-mix(in srgb,var(--color-chart-credit) 72%,#6b4c20);
		--action-icon-basket:var(--timeline-history-basket-tone);
		--action-icon-basket-fill:color-mix(in srgb,var(--timeline-history-basket-tone) var(--timeline-history-basket-fill-ratio),var(--timeline-history-basket-fill-base));
		--action-icon-tech:color-mix(in srgb,var(--color-chart-yield) 56%,var(--color-text));
	}

.timeline_plot_icon_palette [data-plot-icon-state="unavailable"] [data-water-drop-part="body"]
	{ fill:none !important; stroke-width:.32; }
.timeline_plot_icon_palette [data-plot-icon-state="unavailable"] [data-water-drop-part="highlight"]
	{ display:none; }
[data-icon-slash] { fill:none; stroke-linecap:butt; vector-effect:non-scaling-stroke; }
[data-icon-slash="edge"] { stroke:var(--color-surface); stroke-width:2.5px; stroke-linecap:square; }
[data-icon-slash="red"] { stroke:#b13b2f; stroke-width:1.5px; }

.timeline_weekly_plot
	{
		display:grid;
		grid-template-columns:minmax(0, 1fr) auto;
		align-items:center;
		min-width:0;
		min-height:0;
		padding:0 1px;
		border-top:1px solid color-mix(in srgb, var(--color-border) 70%, transparent);
		font:700 8px/1 system-ui, sans-serif;
		container:timeline-weekly-plot / inline-size;
		--plot-summary-icon-size:11px;
		--plot-summary-gap:2px;
	}

.timeline_weekly_slot_position
	{
		display:flex;
		align-items:center;
		min-width:0;
		overflow:hidden;
		gap:1px;
	}

.timeline_weekly_slot_position--current { justify-content:flex-start; }
.timeline_weekly_slot_position--history { justify-content:flex-end; gap:3px; }

.timeline_weekly_slot
	{
		position:relative;
		display:flex;
		align-items:center;
		justify-content:center;
		width:11px;
		height:11px;
		min-width:0;
	}

.timeline_weekly_slot .action_icon,
.timeline_weekly_slot .resource_entity_icon
	{ width:11px; height:11px; }

.timeline_weekly_slot .action_icon [data-tone]
	{ vector-effect:none; }

.timeline_weekly_slot--empty { width:auto; white-space:nowrap; }

.timeline_weekly_slot--basket.is-outline [data-tone="basket-fill"]
	{ fill:transparent; color:transparent; }

@container timeline-weekly-plot (max-width:48px)
	{
		.timeline-plot-summary { --plot-summary-icon-size:8px; --plot-summary-gap:1px; }
		.timeline_weekly_slot,
		.timeline_weekly_slot .action_icon,
		.timeline_weekly_slot .resource_entity_icon
			{ width:8px; height:8px; }
		.timeline_weekly_slot--empty { width:auto; height:auto; }
	}

@container timeline-weekly-plot (min-width:72px)
	{
		.timeline_weekly_slot_position--history { gap:5px; }
	}

#controller.logged-in #timeline_chart[data-zoom-level="weekly"] #timeline_graph
	{ height:calc(100% - 1px); opacity:0; }

.timeline_weekly_day.timeline-interaction-hover
	{ box-shadow:inset 0 0 0 2px var(--color-focus); }

.timeline_weekly_day.timeline-interaction-armed
	{ box-shadow:inset 0 0 0 1px var(--color-accent); }

.timeline_weekly_day.timeline-interaction-inspection
	{ box-shadow:inset 0 0 0 3px var(--color-accent-strong); }

#timeline_chart[data-zoom-level="weekly"] #timeline_graph > *
	{ pointer-events:none; }

#timeline_panel[data-zoom-level="weekly"] #timeline_controls,
#timeline_panel[data-zoom-level="weekly"] #timeline_selection_affordance_track
	{ display:none; }

#controller.logged-in #timeline_panel[data-zoom-level="weekly"] #timeline_chart
	{
		height:calc(100% - 30px);
	}

#controller.logged-in #timeline_panel[data-zoom-level="weekly"]
	{
		padding-bottom:1px;
		overflow:hidden;
	}

#timeline_panel[data-zoom-level="weekly"] #timeline_weekly_surface
	{
		/* Consume the Daily navigation reservation and leave only the panel's
		 * two-pixel visual bottom inset. */
		bottom:1px;
	}

#timeline_chart[data-zoom-level="weekly"]
	#timeline_plot_labels,
#timeline_chart[data-zoom-level="weekly"]
	#timeline_axis_labels,
#timeline_chart[data-zoom-level="weekly"]
	#timeline_stage_labels,
#timeline_chart[data-zoom-level="weekly"]
	#timeline_resource_labels,
#timeline_chart[data-zoom-level="weekly"]
	#timeline_day_labels,
#timeline_chart[data-zoom-level="weekly"]
	#timeline_today_top_label
	{ display:none; }

#timeline_zoom_controls
	{
		position:absolute;
		z-index:12;
		top:1px;
		right:5px;
		display:flex;
		flex-direction:column;
		width:24px;
		pointer-events:auto;
	}

#timeline_zoom_controls > button,
#timeline_zoom_out
	{
		box-sizing:border-box;
		width:24px;
		height:24px;
		padding:0;
		font:700 17px/1 system-ui, sans-serif;
	}

#timeline_panel[data-zoom-controls-presentation="hidden"] #timeline_zoom_controls
	{ display:none; }

#timeline_day_guides
	{
		pointer-events:none;
	}

#timeline_day_columns,
#timeline_day_inspection_columns
	{
		pointer-events:none;
	}

#timeline_day_columns .timeline-day-column
	{
		fill:transparent;
		stroke:transparent;
		shape-rendering:geometricPrecision;
	}

#timeline_day_inspection_columns .timeline-day-inspection-column
	{
		fill:transparent;
		stroke:transparent;
		shape-rendering:geometricPrecision;
	}

#timeline_day_inspection_columns
	.timeline-day-inspection-column.timeline-interaction-armed
	{
		fill:color-mix(in srgb, var(--color-accent) 11%, transparent);
		stroke:color-mix(in srgb, var(--color-accent) 48%, transparent);
		stroke-width:1;
	}

#timeline_day_columns .timeline-day-column.timeline-interaction-hover
	{
		fill:color-mix(in srgb, var(--color-focus) 13%, transparent);
		stroke:var(--color-focus);
		stroke-width:2;
	}

#timeline_day_inspection_columns
	.timeline-day-inspection-column.timeline-interaction-inspection
	{
		fill:color-mix(in srgb, var(--color-accent-strong) 18%, transparent);
		stroke:var(--color-accent-strong);
		stroke-width:3;
		filter:drop-shadow(0 0 1.5px var(--color-accent-strong));
	}

.timeline-range-motion-outgoing
	{
		pointer-events:none;
	}

#timeline_selection_affordance_track
	{
		position:relative;
		z-index:4;
		height:1px;
		pointer-events:none;
	}

#timeline_show_selected,
#timeline_today_direction
	{
		position:absolute;
		z-index:10;
		left:var(--timeline-date-edge-position, 0);
		top:-12px;
		box-sizing:border-box;
		height:13px;
		padding:0 4px;
		border:1px solid var(--color-border-strong);
		border-radius:4px;
		font:700 9px/1 Arial, sans-serif;
		white-space:nowrap;
		pointer-events:auto;
		display:flex;
		align-items:center;
		gap:4px;
		transform:none;
	}

#timeline_show_selected[data-selection-edge="right"],
#timeline_today_direction[data-direction="right"]
	{
		transform:translateX(-100%);
	}

#timeline_show_selected[hidden],
#timeline_today_direction[hidden]
	{
		display:none;
	}

.timeline_date_edge_icon::before
	{
		content:"\25C0";
	}

.timeline_date_edge_control[data-direction="right"] .timeline_date_edge_icon::before,
#timeline_show_selected[data-selection-edge="right"] .timeline_date_edge_icon::before
	{
		content:"\25B6";
	}

.timeline_date_edge_label
	{
		display:inline-block;
		padding:1px 0;
		background:transparent;
		color:inherit;
		line-height:9px;
	}

#timeline_show_selected[data-selection-centered="true"]:hover,
#timeline_show_selected[data-selection-centered="true"]:active
	{
		box-shadow:none;
		transform:none;
	}

#timeline_temporal_regions .timeline-history-region
	{
		fill:var(--color-chart-health);
		fill-opacity:0.06;
	}

#timeline_temporal_regions .timeline-future-region
	{
		fill:var(--color-chart-produce);
		fill-opacity:0.10;
	}

#timeline_day_guides .timeline-day-guide
	{
		stroke-width:1;
	}

#timeline_graph
	{
		position:relative;
		z-index:2;
		display:block;
		width:100%;
		height:203px;
		overflow:hidden;
		cursor:grab;
	}

#timeline_graph[data-pan-active="true"],
#timeline_graph[data-pan-active="true"] *
	{
		cursor:grabbing !important;
	}

#timeline_graph[data-pan-active="true"] > :not(defs):not(#timeline_lane_chrome):not(#timeline_lane_boundaries)
	{
		transform:translateX(var(--timeline-pan-offset, 0));
		transition:none;
	}

#timeline_graph[data-timeline-cursor="pending"],
#timeline_graph[data-timeline-cursor="pending"] *
	{
		cursor:none !important;
	}

#timeline_graph[data-timeline-cursor="inspecting"],
#timeline_graph[data-timeline-cursor="inspecting"] *
	{
		cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Ccircle cx='13' cy='13' r='9' fill='%23f7f8f1' stroke='%23245678' stroke-width='3'/%3E%3Cpath d='M19.5 19.5L29 29' stroke='%23245678' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M13 10v1M13 14v5' stroke='%23397fa8' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E") 13 13, zoom-in !important;
	}

#timeline_hold_progress
	{
		position:fixed;
		z-index:300;
		width:30px;
		height:30px;
		--timeline-hold-offset-x:0px;
		--timeline-hold-offset-y:0px;
		transform:translate(
			calc(-50% + var(--timeline-hold-offset-x)),
			calc(-50% + var(--timeline-hold-offset-y))
		) scale(calc(0.5 * var(--viewport-fit-scale, 1)));
		pointer-events:none;
		color:var(--color-wheel);
		filter:drop-shadow(0 1px 2px rgba(0, 0, 0, 0.42));
	}

#timeline_hold_progress[data-placement-profile="offset"]
{
	--timeline-hold-offset-x:-44px;
	--timeline-hold-offset-y:-44px;
}

#timeline_hold_progress:not(.active)
	{
		display:none;
	}

.timeline_hold_progress_wheel
	{
		display:block;
		width:100%;
		height:100%;
		overflow:visible;
	}

.timeline_hold_progress_fill
	{
		fill:none;
		stroke:#fff;
		stroke-width:78;
		stroke-dasharray:245.05;
		stroke-dashoffset:245.05;
		transform:rotate(-90deg);
		transform-origin:120px 120px;
	}

#timeline_hold_progress.active
	{
		animation:timeline-hold-grow
			var(--timeline-hold-duration, 750ms) linear 1 both;
	}

#timeline_hold_progress.active .timeline_hold_progress_fill
	{
		animation:timeline-hold-radial-fill
			var(--timeline-hold-duration, 750ms) linear 1 both;
	}

#timeline_hold_progress.active .mode_transition_wheel_rotor
	{
		animation:mode-transition-wheel-spin
			var(--timeline-hold-duration, 750ms) linear 1 both;
	}

@keyframes timeline-hold-grow
	{
		from
			{
				transform:translate(
					calc(-50% + var(--timeline-hold-offset-x)),
					calc(-50% + var(--timeline-hold-offset-y))
				) scale(calc(0.5 * var(--viewport-fit-scale, 1)));
			}
		to
			{
				transform:translate(
					calc(-50% + var(--timeline-hold-offset-x)),
					calc(-50% + var(--timeline-hold-offset-y))
				) scale(calc(2 * var(--viewport-fit-scale, 1)));
			}
	}

@keyframes timeline-hold-radial-fill
	{
		from { stroke-dashoffset:245.05; }
		to { stroke-dashoffset:0; }
	}

#timeline_graph line,
#timeline_graph polyline,
#timeline_graph ellipse,
#timeline_graph path,
#timeline_graph rect
	{
		vector-effect:non-scaling-stroke;
	}

#timeline_graph:focus
	{
		outline:2px solid rgba(57,127,168,0.72);
		outline-offset:1px;
	}

#timeline_cursor
	{
		stroke:#477a35;
		stroke-width:5;
		stroke-dasharray:4 4;
		filter:drop-shadow(0 0 2px color-mix(in srgb, var(--color-chart-health) 55%, transparent));
		pointer-events:none;
	}

#timeline_graph line,
#timeline_graph path,
#timeline_graph polyline,
#timeline_graph ellipse,
#timeline_graph rect
	{
		vector-effect:non-scaling-stroke;
	}

#timeline_health_line,
#timeline_additional_health_lines .timeline-active-health-line
	{
		fill:none;
		stroke:#477a35;
		stroke-width:4;
		stroke-linejoin:round;
		stroke-linecap:round;
	}

#timeline_day_guides .timeline-today
	{
		stroke-width:4;
	}

body.mode-real #timeline_day_guides .timeline-future
	{
		stroke-dasharray:3 3;
	}

#timeline_tech_intervals .timeline-tech-resource-segment
	{
		fill:none;
		stroke:var(--color-chart-tech-owned);
		opacity:0.72;
	}

#timeline_tech_intervals .timeline-tech-resource-segment.uninstalled
	{
		stroke-width:1.25;
	}

#timeline_tech_intervals .timeline-tech-resource-segment.installed
	{
		stroke-width:3;
	}

#timeline_tech_intervals .timeline-tech-resource-point
	{
		fill:var(--color-chart-tech-owned);
		stroke:var(--color-chart-tech-point-border);
		stroke-width:0.75;
		opacity:0.9;
	}

#timeline_tech_intervals .timeline-tech-resource-point.uninstalled
	{
		fill:var(--color-surface-solid);
	}

#timeline_tech_intervals .timeline-tech-installation
	{
		fill:var(--color-chart-tech-installed);
		stroke:var(--color-surface-solid);
		stroke-width:0.75;
	}

#timeline_tech_intervals .timeline-tech-point
	{
		fill:var(--color-chart-tech-installed);
		stroke:var(--color-chart-tech-point-border);
		stroke-width:1;
	}

#timeline_tech_intervals .timeline-tech-point.selected
	{
		stroke:var(--color-chart-tech-selected);
		stroke-width:1.5;
		filter:drop-shadow(0 0 0.5px var(--color-chart-tech-selected));
	}

#timeline_tech_intervals .timeline-tech-point.timeline-interaction-hover,
#timeline_health_points ellipse.timeline-interaction-hover,
#timeline_historic_plants ellipse.timeline-interaction-hover
	{
		stroke:var(--color-focus);
		stroke-width:2.5;
		filter:drop-shadow(0 0 2px var(--color-focus));
	}

#timeline_tech_intervals .timeline-tech-point.timeline-interaction-inspection,
#timeline_health_points ellipse.timeline-interaction-inspection,
#timeline_historic_plants ellipse.timeline-interaction-inspection
	{
		stroke:var(--color-accent-strong);
		stroke-width:3.5;
		filter:drop-shadow(0 0 3px var(--color-accent-strong));
	}

#timeline_tech_intervals .timeline-tech-track
	{
		fill:none;
		stroke:color-mix(in srgb, var(--color-chart-tech-selected) 62%, white 38%);
		stroke-width:.65;
		vector-effect:non-scaling-stroke;
		opacity:.82;
		filter:drop-shadow(0 0 .45px var(--color-chart-tech-selected));
		shape-rendering:geometricPrecision;
	}

body.mode-real #timeline_tech_intervals .timeline-tech-track
	{
		stroke:var(--color-chart-tech-point-border);
	}

#timeline_historic_plants
	{
		opacity:0.72;
	}

#timeline_historic_plants polyline
	{
		fill:none;
		stroke:currentColor;
		stroke-width:2;
		stroke-dasharray:5 4;
		stroke-linejoin:round;
		stroke-linecap:round;
	}

#timeline_historic_plants ellipse
	{
		fill:#fffdf8;
		stroke:currentColor;
		stroke-width:2;
	}

#timeline_historic_plants ellipse.completion
	{
		fill:currentColor;
	}

#timeline_historic_plants ellipse.selected
	{
		stroke-width:3;
	}

#timeline_historic_plants .record-selected
	{
		opacity:1;
		filter:drop-shadow(0 0 2px rgba(36,93,123,0.7));
	}

#timeline_historic_plants .record-selected polyline
	{
		stroke-width:3;
		stroke-dasharray:2 2;
	}

#timeline_yield_area,
#timeline_yield_series .timeline-yield-area
	{
		fill:url(#timeline_yield_gradient);
		stroke:none;
	}

#timeline_yield_line,
#timeline_yield_series .timeline-yield-line
	{
		fill:none;
		stroke:#397fa8;
		stroke-width:1.5;
		stroke-linejoin:round;
		opacity:0.65;
	}

#timeline_axis_labels
	{
		position:absolute;
		z-index:1;
		top:0;
		left:0;
		width:100%;
		height:195px;
		color:#477a35;
		font-size:8px;
		pointer-events:none;
	}

#timeline_axis_labels span
	{
		position:absolute;
		padding:0 2px;
		background:rgba(255,253,248,0.72);
	}

#timeline_axis_labels .health-axis-title
	{
		top:1px;
		left:22px;
		font-weight:bold;
	}

#timeline_axis_labels .health-axis-top,
#timeline_axis_labels .health-axis-middle,
#timeline_axis_labels .health-axis-bottom
	{
		left:0;
	}

#timeline_axis_labels .yield-axis-top,
#timeline_axis_labels .yield-axis-middle,
#timeline_axis_labels .yield-axis-bottom
	{
		right:0;
		color:#397fa8;
	}

#timeline_axis_labels .health-axis-top,
#timeline_axis_labels .yield-axis-top
	{
		top:6.25%;
		transform:translateY(-50%);
	}

#timeline_axis_labels .health-axis-middle,
#timeline_axis_labels .yield-axis-middle
	{
		top:33.1%;
		transform:translateY(-50%);
	}

#timeline_axis_labels .health-axis-bottom,
#timeline_axis_labels .yield-axis-bottom
	{
		top:60%;
		transform:translateY(-50%);
	}

.stage-band
	{
		opacity:0.22;
	}

.stage-band.ripe
	{
		fill:#e6c84c;
	}

.stage-band.overripe
	{
		fill:#dc8a39;
	}

.stage-band.rotten
	{
		fill:#745e55;
	}

#timeline_health_points ellipse
	{
		fill:#fffdf8;
		stroke:#477a35;
		stroke-width:3;
	}

#timeline_health_points ellipse.selected
	{
		fill:#fffdf8;
		stroke:#2f6427;
		stroke-width:4;
	}

#timeline_health_points ellipse.watered
	{
		fill:#397fa8;
		stroke:#477a35;
	}

#timeline_health_points ellipse.automated-water
	{
		stroke:#183d55;
	}

#timeline_health_points ellipse.automated-water.selected
	{
		stroke:#102f47;
		stroke-width:4;
	}

#timeline_health_points ellipse.dead
	{
		fill:#fffdf8;
		stroke:#7e2f20;
	}

#timeline_health_points ellipse.dead.watered
	{
		fill:#397fa8;
		stroke:#9b3e2b;
	}

#timeline_health_points ellipse.editable-water
	{
		cursor:pointer;
		transition:fill 120ms ease, stroke 120ms ease, stroke-width 120ms ease;
	}

#timeline_health_points ellipse.editable-water:hover,
#timeline_health_points ellipse.editable-water:focus
	{
		fill:#dcecf4;
		stroke:#245c87;
		stroke-width:5;
		outline:none;
	}

#timeline_health_points ellipse.editable-water.watered:hover,
#timeline_health_points ellipse.editable-water.watered:focus
	{
		fill:#62a3c8;
	}

body.mode-real #timeline_health_points ellipse.timeline-projection
	{
		stroke-dasharray:3 2;
	}

body.mode-real #timeline_health_points ellipse.timeline-present
	{
		stroke-width:5;
	}

#timeline_day
	{
		display:none;
	}

#timeline_day_labels
	{
		position:relative;
		height:13px;
		margin-top:0;
		color:#5f6f59;
		font-size:9px;
		overflow:hidden;
	}

#timeline_day_labels span
	{
		position:absolute;
		top:0;
		transform:translateX(-50%);
		text-align:center;
		white-space:nowrap;
	}

#timeline_chart[data-pan-active="true"]
	#timeline_day_labels span
	{
		transform:translateX(calc(-50% + var(--timeline-pan-label-offset)));
		transition:none;
	}

#timeline_stage_labels
	{
		position:absolute;
		z-index:3;
		top:0;
		bottom:24px;
		left:0;
		width:100%;
		overflow:hidden;
		pointer-events:none;
	}

#timeline_chart[data-pan-active="true"]
	#timeline_stage_labels .timeline_stage_label_region
	{
		transform:translateX(var(--timeline-pan-label-offset));
		transition:none;
	}

#timeline_day_labels .timeline-today
	{
		font-weight:bold;
		text-decoration:underline;
		text-underline-offset:2px;
	}

#timeline_today_top_label
	{
		position:absolute;
		z-index:5;
		left:var(--timeline-today-position, 50%);
		top:1px;
		max-width:70px;
		padding:1px 3px;
		background:var(--color-surface-elevated);
		color:var(--color-text);
		font-size:8px;
		font-weight:bold;
		line-height:10px;
		white-space:nowrap;
		transform:translateX(-50%);
		pointer-events:none;
	}

body.mode-real #timeline_day_labels .timeline-future
	{
		font-style:italic;
	}

#timeline_resource_tracks .resource-baseline
	{
		stroke:#d5dbd0;
		stroke-width:1;
	}

#timeline_resource_tracks .resource-reference
	{
		stroke:currentColor;
		stroke-width:0.5;
		opacity:0.2;
		pointer-events:none;
	}

#timeline_resource_tracks .resource-midpoint
	{
		stroke-dasharray:2 3;
	}

#timeline_resource_tracks .resource-axis-label
	{
		pointer-events:none;
	}

#timeline_resource_tracks .resource-axis-label-surface
	{
		fill:var(--color-surface-elevated);
		fill-opacity:0.88;
		stroke:none;
	}

#timeline_resource_tracks .resource-axis-label-text
	{
		fill:currentColor;
		font-size:8px;
		font-weight:600;
	}

#timeline_resource_tracks .resource-balance,
#timeline_resource_tracks .resource-available
	{
		fill:none;
		stroke:currentColor;
		stroke-linejoin:round;
		stroke-linecap:butt;
	}

#timeline_resource_tracks .resource-balance
	{
		stroke-width:2;
	}

#timeline_resource_tracks .resource-available
	{
		stroke-width:1.5;
		stroke-dasharray:3 3;
		opacity:0.72;
	}

#timeline_resource_tracks .same-values .resource-available
	{
		stroke-width:2.5;
		stroke-dasharray:1 4;
		opacity:0.95;
	}

#timeline_resource_tracks .resource-balance.resource-zero-segments,
#timeline_resource_tracks .resource-available.resource-zero-segments,
#timeline_resource_tracks .same-values .resource-available.resource-zero-segments
	{
		stroke-width:0.75;
	}

#timeline_resource_tracks .resource-transaction
	{
		fill:#fffdf8;
		stroke:currentColor;
		stroke-width:2;
		cursor:inherit;
	}

#timeline_resource_tracks .resource-transaction.positive
	{
		fill:#e5f2df;
	}

#timeline_resource_tracks .resource-transaction.negative
	{
		fill:#f5ded8;
	}

#timeline_resource_tracks .resource-transaction-delta
	{
		fill:currentColor;
		font-size:7px;
		font-weight:bold;
		pointer-events:none;
	}

#timeline_resource_tracks .resource-tomatoes
	{
		color:#a34f3f;
	}

#timeline_resource_tracks .resource-credits
	{
		color:#a87716;
	}

#timeline_resource_tracks .resource-seeds
	{
		color:#397fa8;
		font-weight:bold;
	}

#timeline_resource_labels.timeline_overlay_surface--resource
	{
		position:absolute;
		z-index:3;
		top:0;
		left:0;
		width:100%;
		height:203px;
		pointer-events:none;
		color:#42503e;
	}

.timeline_overlay_surface--resource .resource-badge
	{
		position:absolute;
		box-sizing:border-box;
		height:14px;
		padding:1px 4px;
		border:1px solid currentColor;
		border-radius:3px;
		background:rgba(255,253,248,0.86);
		font-size:9px;
		font-weight:bold;
		line-height:10px;
		text-align:center;
		white-space:nowrap;
		transform:translateY(-100%);
	}

.timeline_overlay_surface--resource .resource-tomatoes
	{
		color:#8c4034;
	}

.timeline_overlay_surface--resource .resource-credits
	{
		color:#8b6418;
	}

.timeline_overlay_surface--resource .resource-seeds
	{
		color:inherit;
	}

#timeline_stage_labels .timeline_stage_label_region
	{
		position:absolute;
		display:flex;
		align-items:center;
		justify-content:flex-start;
		box-sizing:border-box;
		padding-left:clamp(1px, 4cqw, 10px);
		overflow:hidden;
		container-type:size;
		opacity:0.28;
	}

#timeline_stage_labels .timeline_stage_label_text
	{
		flex:none;
		font-family:Arial, sans-serif;
		font-size:clamp(12px, min(42cqh, var(--timeline-stage-label-size)), 36px);
		font-weight:900;
		line-height:1;
		letter-spacing:0.08em;
		text-transform:uppercase;
		white-space:nowrap;
	}

#timeline_stage_labels .ripe
	{
		--timeline-stage-label-size:26cqw;
		color:rgb(137,107,0);
	}

body.mode-real #timeline_stage_labels .ripe
	{
		opacity:0.56;
	}

#timeline_stage_labels .overripe
	{
		--timeline-stage-label-size:13cqw;
		color:rgb(151,73,16);
	}

#timeline_stage_labels .rotten
	{
		--timeline-stage-label-size:17cqw;
		color:rgb(72,51,44);
	}

#timeline_tooltip
	{
		display:none;
		position:fixed;
		z-index:395;
		top:8px;
		min-width:300px;
		box-sizing:border-box;
		padding:7px 9px;
		border:1px solid #245d7b;
		border-radius:4px;
		background:rgba(255,255,255,0.96);
		box-shadow:0 2px 7px rgba(20,42,52,0.22);
		color:#20301d;
		font-size:11px;
		line-height:1.4;
		pointer-events:none;
		white-space:nowrap;
		max-width:calc(100% - 16px);
		overflow:auto;
		transform:scale(var(--viewport-fit-scale, 1));
		transform-origin:top left;
	}

#timeline_tooltip strong
	{
		display:block;
		color:#245d7b;
		font-size:12px;
	}

#timeline_tooltip .plant-summary
	{
		margin-top:3px;
		padding-top:3px;
		border-top:1px solid rgba(113,134,106,0.35);
	}

#timeline_tooltip .plant-summary b
	{
		color:#315b27;
	}

#timeline_tooltip .resource-summary
	{
		margin-top:1px;
	}

/* The inspected-date snapshot deliberately reuses the persistent Resource
 * Ribbon's primitives before the existing textual tooltip detail. */
#timeline_tooltip .resource_ribbon_snapshot
	{
		display:grid;
		grid-template-columns:20px minmax(0,1fr);
		align-items:stretch;
		margin:-2px -4px 5px;
		padding:0 4px 4px;
		border-bottom:1px solid color-mix(in srgb,var(--color-border-strong) 62%,transparent);
	}

#timeline_tooltip .resource_ribbon_snapshot_date
	{
		display:flex;
		flex-direction:column;
		align-items:center;
		justify-content:center;
		box-sizing:border-box;
		border-right:1px solid color-mix(in srgb,var(--color-border-strong) 40%,transparent);
		color:color-mix(in srgb,var(--color-text) 90%,var(--color-chart-yield));
		font-weight:900;
		line-height:1;
	}

#timeline_tooltip .resource_ribbon_snapshot_month
	{ font-size:11px; transform:translateX(-5px); }

#timeline_tooltip .resource_ribbon_snapshot_day
	{ margin-top:2px; font-size:13px; transform:translateX(-5px); }

#timeline_tooltip .resource_ribbon_snapshot .resource_ribbon
	{
		height:35px;
		--resource-ribbon-icon-size:15px;
		--resource-ribbon-value-size:11px;
	}

#timeline_tooltip .resource_ribbon_snapshot .resource_ribbon_cell
	{
		display:grid;
		grid-template-columns:auto auto;
		grid-template-rows:25px 10px;
		gap:0 var(--resource-ribbon-gap,2px);
		border-left:0;
	}

#timeline_tooltip .resource_ribbon_snapshot .resource_ribbon_cell::before
	{
		content:"";
		position:absolute;
		left:0;
		top:0;
		bottom:2px;
		border-left:1px solid color-mix(in srgb,var(--color-border-strong) 40%,transparent);
	}

#timeline_tooltip .resource_ribbon_snapshot .resource_ribbon_cell:first-child::before
	{ display:none; }

#timeline_tooltip .resource_ribbon_snapshot_delta
	{
		grid-column:1 / -1;
		grid-row:2;
		align-self:start;
		justify-self:center;
		font:bold 10px/10px Arial,sans-serif;
		font-variant-numeric:tabular-nums;
		text-align:center;
		white-space:nowrap;
	}

#timeline_tooltip .timeline-tooltip-events
	{
		margin:0 0 7px;
		padding-bottom:0;
		border-bottom:0;
	}

#timeline_tooltip .timeline-tooltip-events ul
	{
		margin:0;
		padding:0;
		list-style:none;
	}

#timeline_tooltip .timeline-tooltip-events li
	{
		color:var(--color-text);
		font-weight:700;
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-row
	{
		display:grid;
		grid-template-columns:minmax(0,1fr) auto;
		align-items:center;
		box-sizing:border-box;
		width:calc(100% - 10px);
		min-width:0;
		margin-left:10px;
		margin-top:-1px;
		padding:0 4px;
		border:1px solid color-mix(in srgb,var(--color-border-strong) 46%,transparent);
		line-height:18px;
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-row-content
	{
		min-width:0;
		white-space:nowrap;
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-plot-row
	{
		position:relative;
		width:calc(100% - 18px);
		margin-left:18px;
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-plot-number
	{
		position:absolute;
		right:calc(100% + 4px);
		width:10px;
		color:color-mix(in srgb,var(--color-text) 88%,var(--color-chart-yield));
		font-weight:800;
		text-align:right;
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-row-chips
	{
		display:inline-flex;
		align-items:center;
		justify-content:flex-end;
		gap:2px;
		min-width:0;
		margin-left:4px;
		visibility:visible;
		opacity:.35;
		pointer-events:none;
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-row--inspected .timeline-tooltip-row-chips
	{
		visibility:visible;
		opacity:1;
		pointer-events:auto;
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-row-chips--plot-targets
	{ gap:5px; }

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-chip
	{
		display:inline-flex;
		align-items:center;
		box-sizing:border-box;
		height:15px;
		padding:0 7px;
		border:1px solid color-mix(in srgb,var(--color-accent-strong) 72%,var(--color-border));
		border-radius:7px;
		background:color-mix(in srgb,var(--color-surface-solid) 82%,var(--color-accent-strong));
		color:var(--color-text);
		font-size:9px;
		font-weight:800;
		line-height:13px;
		white-space:nowrap;
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-chip:hover,
:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-chip[data-chip-state="active"]
	{
		font-weight:900;
	}

body.mode-simulation :is(#timeline_tooltip, .action_icon_tooltip_specimen)
	.timeline-tooltip-chip[data-chip-state="active"]
	{
		border-color:#fff3a8;
		background:#ffe45c;
		color:#1b2430;
		box-shadow:0 0 4px #ffd21f,
			inset 0 0 0 1px color-mix(in srgb,#fff 52%,transparent);
	}

body.mode-real :is(#timeline_tooltip, .action_icon_tooltip_specimen)
	.timeline-tooltip-chip[data-chip-state="active"]
	{
		border-color:#f0b400;
		background:#fff8d6;
		color:#3b2a00;
		box-shadow:0 0 4px color-mix(in srgb,#f0b400 76%,transparent),
			inset 0 0 0 1px #fffef3;
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-row--inspected
	.timeline-tooltip-chip:hover:not([data-chip-state="active"])
	{
		border-color:var(--color-focus);
		background:color-mix(in srgb,var(--color-accent-strong) 32%,var(--color-surface-solid));
		box-shadow:0 0 2px var(--color-focus);
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-chip--historic
	{
		height:17px;
		border-radius:8px;
		color:color-mix(in srgb,var(--color-chart-credit) 72%,#6b4c20);
		font-size:10px;
		line-height:15px;
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-chip--historic.is-outline [data-tone="basket-fill"]
	{ fill:transparent; color:transparent; }

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-chip--historic > svg:first-child
	{ width:12px; height:12px; flex:none; }

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-chip--historic [data-scale-identifier="yield"]
	{
		width:12px;
		height:12px;
		margin-left:2px;
		transform:translateY(0);
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-chip--historic
	[data-stroke-policy="proportional"] [data-tone]
	{ vector-effect:none; }

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-inline-spacing
	{
		white-space:pre;
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-chip-yield-value
	{
		display:inline-block;
		margin-left:3px;
		line-height:1;
		transform:translateY(0);
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-event-row:first-child,
:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-plot-row:first-of-type
	{ margin-top:0; }

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-row--inspected
	{
		position:relative;
		z-index:1;
		border-color:var(--color-accent-strong);
		background:color-mix(in srgb,var(--color-accent-strong) 18%,transparent);
		box-shadow:inset 3px 0 0 var(--color-accent-strong),
			0 0 3px color-mix(in srgb,var(--color-accent-strong) 52%,transparent);
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-section-label
	{
		margin:0 0 2px;
		padding:0;
		color:color-mix(in srgb,var(--color-text) 88%,var(--color-chart-yield));
		font-size:12px;
		font-weight:800;
		line-height:14px;
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-plots
	{
		margin:0;
		padding-bottom:0;
		border-bottom:0;
		color:var(--color-text);
		font-weight:700;
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-plot-status-icon
	{
		display:inline-block;
		width:15px;
		height:15px;
		vertical-align:-3px;
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-plot-metric
	{
		display:inline-flex;
		align-items:center;
		gap:2px;
		margin-left:4px;
		font-variant-numeric:tabular-nums;
		font-weight:800;
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-plot-metric .timeline_scale_identifier
	{
		width:13px;
		height:13px;
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-plot-metric--health
	{
		color:color-mix(in srgb, var(--color-chart-health) 76%, var(--color-text));
		--action-icon-accent:currentColor;
		--action-icon-highlight:color-mix(in srgb, white 78%, currentColor);
		transform:translateY(2px);
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-plot-metric--yield
	{
		color:color-mix(in srgb, #397fa8 82%, var(--color-text));
		--action-icon-basket:currentColor;
		--action-icon-basket-fill:color-mix(in srgb, currentColor 58%, transparent);
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-plot-metric--harvestable
	{
		color:var(--timeline-history-basket-tone);
		justify-self:end;
		gap:3px;
		padding-right:7px;
	}
:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-plot-metric--harvestable .timeline_scale_identifier
	{ width:15px; height:15px; }
:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-plot-metric--harvestable [data-tone]
	{ vector-effect:none; }

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-plot-metric--historic-yield
	{
		color:color-mix(in srgb, var(--color-chart-credit) 72%, #6b4c20);
		--action-icon-basket:currentColor;
		--action-icon-basket-fill:color-mix(in srgb, currentColor 78%, #3b2812);
	}

body.mode-simulation :is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-plot-metric--historic-yield
	{
		--action-icon-basket-fill:color-mix(in srgb, currentColor 72%, #f4d99a);
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-plot-metric--historic-yield .timeline_scale_identifier
	{
		width:15px;
		height:15px;
		transform:translateY(4px);
	}

:is(#timeline_tooltip, .action_icon_tooltip_specimen) .timeline-tooltip-plot-metric--historic-yield .timeline-tooltip-plot-metric-value
	{
		transform:translate(1px,4px);
	}

/* Shared active-Plant readout; fit hides whole parts in a single ordered policy. */
.timeline-plot-summary
	{
		--action-icon-produce:var(--color-chart-tomato);
		--action-icon-leaf:var(--color-chart-health);
		display:flex;
		align-items:center;
		gap:var(--plot-summary-gap, 4px);
		width:100%;
		min-width:0;
		white-space:nowrap;
	}
.timeline-plot-summary > [data-summary-part]
	{ flex:none; display:inline-flex; align-items:center; }
.timeline-plot-summary > [hidden] { display:none !important; }
:is(.timeline_weekly_plot, #timeline_tooltip, .action_icon_tooltip_specimen) .timeline-plot-summary [data-summary-part] svg
	{
		width:var(--plot-summary-icon-size, 15px);
		height:var(--plot-summary-icon-size, 15px);
		flex:none;
		transform:none;
	}
.timeline-plot-summary svg [data-tone] { vector-effect:none; }
:is(.timeline_weekly_plot, #timeline_tooltip, .action_icon_tooltip_specimen) .timeline-plot-summary .timeline-tooltip-plot-metric
	{ gap:2px; margin:0; transform:none; font-weight:800; font-variant-numeric:tabular-nums; }
:is(.timeline_weekly_plot, #timeline_tooltip, .action_icon_tooltip_specimen) .timeline-plot-summary .timeline-tooltip-plot-metric-value
	{ transform:none; }
.timeline-plot-summary [data-summary-part="health"]
	{
		color:color-mix(in srgb, var(--color-chart-health) 76%, var(--color-text));
		--action-icon-accent:currentColor;
		--action-icon-highlight:color-mix(in srgb, white 78%, currentColor);
	}
.timeline-plot-summary [data-summary-part="yield"]
	{
		color:color-mix(in srgb, #397fa8 82%, var(--color-text));
		--action-icon-basket:currentColor;
		--action-icon-basket-fill:color-mix(in srgb, currentColor 58%, transparent);
	}

#timeline_tooltip .resource-summary b
	{
		color:#245d7b;
	}

#timeline_tooltip .resource-delta
	{
		font-weight:800;
	}

#timeline_tooltip .resource-delta--positive
	{
		color:#2f7329;
	}

#timeline_tooltip .resource-delta--negative
	{
		color:#a12d25;
	}

#timeline_tooltip .resource-delta--mixed
	{
		color:inherit;
	}

#timeline_tooltip .resource-delta__gain,
#timeline_tooltip .resource-delta__net--positive
	{
		color:#2f7329;
	}

#timeline_tooltip .resource-delta__loss,
#timeline_tooltip .resource-delta__net--negative
	{
		color:#a12d25;
	}

#timeline_tooltip .resource-delta--zero,
#timeline_tooltip .resource-delta--zero .resource-delta__gain,
#timeline_tooltip .resource-delta--zero .resource-delta__loss
	{
		color:#b56512;
	}

#timeline_tooltip .tech-summary
	{
		margin-top:1px;
		font-weight:700;
	}

#timeline_tooltip .transaction-inspection-summary
	{
		margin-top:4px;
		padding-top:4px;
		border-top:2px solid var(--color-border-strong);
		white-space:normal;
	}

#timeline_panel[data-resource-lane-presentation="hidden"] #timeline_resource_tracks,
#timeline_panel[data-resource-lane-presentation="hidden"] #timeline_resource_labels
	{
		display:none;
	}

#log
	{
		flex:1 1 auto;
		min-height:0;
		/*background-color:yellow;*/
		/*background-image:url('../images/Log.png');*/
	}

#simulation_tech_positions button
	{
		padding:3px 6px;
		border:1px solid #315b27;
		border-radius:3px;
		background:#4f7f3f;
		color:white;
		font-size:10px;
		cursor:pointer;
	}

#simulation_tech_positions section
	{
		display:grid;
		grid-template-columns:42px 1fr;
		gap:4px;
		align-items:center;
		padding:6px 0;
		border-top:1px solid #d9dfd2;
	}

#simulation_tech_positions .tech_plot_status
	{
		text-align:right;
	}

#simulation_tech_positions label
	{
		grid-column:1 / -1;
		color:#53604f;
	}

#simulation_tech_positions .tech_uninstall_date
	{
		float:right;
		width:105px;
		font-size:10px;
	}


.put
	{
		border:1px black solid;
	}
	
	
.output
	{
		height: 520px;
	}
	

#log_output
	{
		position:relative;
		height:calc(100% - 50px);
		overflow:hidden;
		display:none;
	}


#loc
	{
		position:absolute;
		bottom:0px;
		width:200px;
	}
	
.LogEvent
	{
		padding:20px;
		font-size:small;
		text-align:left;
		border:1px black solid;
	}
	

	
.input
	{
		height: 50px;
	}

/*
 * Mode geometry belongs at the rendered control boundary so the Timeline's
 * more-specific component rules cannot override it.
 */
body.mode-real #marketplace_buy_panel button,
body.mode-real #marketplace_sell_panel button,
body.mode-real .timeline_disclosure_toggle,
body.mode-real #timeline_controls button,
body.mode-real #timeline_controls #timeline_next,
body.mode-real #timeline_controls #timeline_water_next
	{
		border-radius:8px;
	}

body.mode-simulation #marketplace_buy_panel button,
body.mode-simulation #marketplace_sell_panel button,
body.mode-simulation .timeline_disclosure_toggle,
body.mode-simulation #timeline_controls button,
body.mode-simulation #timeline_controls #timeline_next,
body.mode-simulation #timeline_controls #timeline_water_next
	{
		border-radius:0;
	}

body.mode-real #garden_panel
	{
		--garden-corner-radius:10px;
		--garden-inner-corner-radius:8px;
	}

body.mode-real #garden_positions .crop_panel
	{
		border-radius:var(--garden-corner-radius);
	}

body.mode-real #garden_positions .plot_select,
body.mode-real #controller.logged-in #simulation_tech_positions section
	{
		border-radius:var(--garden-inner-corner-radius);
	}

body.mode-simulation #garden_positions .crop_panel
	{
		border-radius:0;
	}

/* Synchronized gameplay workspace. */
.main_panel
	{
		box-sizing:border-box;
		border:var(--main-panel-border-width, 1px) solid var(--color-border-strong);
		background:var(--color-surface);
		color:var(--color-text);
	}

body.mode-real .main_panel
	{
		--main-panel-border-width:2px;
		border-radius:10px;
		border-color:color-mix(in srgb, var(--color-border-strong) 66%, white);
		box-shadow:
			inset 0 0 0 1px rgba(255,255,255,.72),
			inset 0 0 12px color-mix(in srgb, var(--color-surface-elevated) 72%, transparent),
			0 0 8px color-mix(in srgb, var(--color-focus) 48%, transparent),
			0 0 18px color-mix(in srgb, var(--color-surface-elevated) 72%, transparent),
			0 5px 12px rgba(44,69,34,.24);
	}

body.logged-in.mode-real .main_panel
	{
		--main-panel-border-width:4px;
	}

body.mode-simulation .main_panel
	{
		--main-panel-border-width:4px;
		border-radius:0;
		border-color:
			color-mix(in srgb, var(--color-border-strong) 30%, white)
			color-mix(in srgb, var(--color-border-strong) 64%, black)
			color-mix(in srgb, var(--color-border-strong) 82%, black)
			color-mix(in srgb, var(--color-border-strong) 38%, white);
		box-shadow:none;
	}

body.logged-out #header_panel
	{
		border-radius:0;
	}

body.mode-real #controller.logged-in
	{
		margin-top:3px;
	}

body.mode-simulation #controller.logged-in
	{
		margin-top:3px;
	}

#controller.logged-in
	{
		min-height:570px;
		background-size:cover;
	}

#controller.logged-in #profile
	{
		display:none;
	}

#controller.logged-in #controller_center
	{
		--main-panel-gap:3px;
		--garden-panel-border-allowance:2px;
		/* 470px rendered graph / 400 SVG units: Plot lanes start at 100,
		 * then repeat 94-unit lanes separated by 6-unit gaps. */
		--plot-console-start:153.5px;
		--plot-console-height:110.45px;
		--plot-console-gap:7.05px;
		--economy-panel-height:calc(
			(var(--plot-console-start) - var(--main-panel-gap) * 3) / 3
		);
		--garden-lanes-height:345.45px;
		--garden-panel-height:calc(
			var(--garden-lanes-height) +
			var(--garden-panel-border-allowance) +
			var(--garden-panel-border-allowance)
		);
		display:grid;
		/* Keep the established Timeline/right-column seam while letting the
		 * compact right column meet the application's outer edge. */
		grid-template-columns:
			minmax(0, var(--viewport-laboratory-timeline-width, calc(80% - 7px)))
			minmax(0, var(--viewport-laboratory-secondary-width, 1fr));
		grid-template-rows:
			var(--viewport-laboratory-economy-height, var(--economy-panel-height))
			var(--viewport-laboratory-economy-height, var(--economy-panel-height))
			var(--viewport-laboratory-economy-height, var(--economy-panel-height))
			var(--viewport-laboratory-garden-height, var(--garden-panel-height))
			minmax(0, var(--viewport-laboratory-mode-height, 1fr));
		gap:var(--main-panel-gap);
		width:100%;
		height:570px;
		min-height:570px;
		margin:0;
		overflow:visible;
	}

#controller.logged-in #marketplace_buy_panel
	{
		grid-column:2;
		grid-row:1;
		z-index:21;
		display:grid;
		height:100%;
		padding:3px;
	}

.marketplace_buy_actions
	{
		display:grid;
		height:100%;
		width:100%;
		grid-template-columns:repeat(2, minmax(0, 1fr));
		grid-auto-rows:minmax(0, 1fr);
		gap:3px;
	}

#controller.logged-in .marketplace_buy_actions > button,
#controller.logged-in #marketplace_browser
	{
		min-width:0;
		margin-left:0;
		width:100%;
	}

#controller.logged-in #marketplace_buy_panel button
	{
		box-sizing:border-box;
		height:100%;
		width:100%;
		max-width:100%;
		overflow:hidden;
		padding-block:1px;
		padding-inline:1px;
		font-size:clamp(6px, .75vw, 9px);
		text-align:center;
		text-overflow:ellipsis;
		white-space:nowrap;
	}

#controller.logged-in #marketplace_browser .marketplace_disclosure_toggle
	{
		width:100%;
		height:100%;
	}

#controller.logged-in #marketplace_sell_panel
	{
		grid-column:2;
		grid-row:2;
		display:flex;
		height:100%;
		padding:3px;
	}

#controller.logged-in .marketplace_sell_actions
	{
		display:grid;
		width:100%;
		height:100%;
		grid-template-columns:repeat(2, minmax(0, 1fr));
		gap:3px;
	}

#controller.logged-in #marketplace_sell_panel button
	{
		min-width:0;
		padding-inline:1px;
		width:100%;
		height:100%;
		font-size:clamp(6px, .75vw, 9px);
	}

#controller.logged-in #marketplace_sell_panel button
	{
		padding-block:1px;
	}

body.logged-in #action_feedback
	{
		left:20px;
		top:90px;
		width:calc(40% + 100px);
		height:72px;
		margin:0;
	}

body.logged-in #action_feedback_details
	{
		height:66px;
	}

body.logged-in #action_feedback_details summary
	{
		height:64px;
	}

body.logged-in #action_feedback_explanation
	{
		top:73px;
	}

body.logged-in #action_feedback_dismiss
	{
		top:25px;
	}

body.logged-in #action_feedback:not(.has-message)
	{
		height:0;
	}

body.logged-out #action_feedback
	{
		left:50%;
		top:92px;
		width:min(360px, calc(100% - 16px));
		transform:translateX(-50%);
	}

#controller.logged-in #timeline_panel
	{
		grid-column:1;
		grid-row:1 / 6;
		height:auto;
		padding:5px;
	}

#controller.logged-in #garden_panel
	{
		grid-column:2;
		grid-row:4;
		box-sizing:border-box;
		height:auto;
		padding:0;
		background:var(--color-surface);
	}

#inventory_panel
	{
		display:none;
		box-sizing:border-box;
		height:94px;
		padding:2px 6px;
		flex-direction:column;
		justify-content:center;
		gap:3px;
		background:var(--color-surface-subtle);
		color:var(--color-text);
	}

#controller.logged-in #inventory_panel
	{
		display:flex;
		grid-column:2;
		grid-row:3;
		height:100%;
		padding:3px;
	}

#controller.logged-in #inventory_panel .inventory_bulk_actions
	{
		width:100%;
		height:100%;
	}

#timeline_resource_summary
	{
		position:absolute;
		z-index:2;
		left:50%;
		top:-3px;
		box-sizing:border-box;
		width:340px;
		height:31px;
		padding:2px 8px;
		border:1px solid var(--color-border);
		background:var(--color-surface-subtle);
		color:var(--color-text);
		transform:translateX(-50%);
	}

body.mode-real #timeline_resource_summary
	{
		width:370px;
		border-radius:9px;
	}

body.mode-simulation #timeline_resource_summary
	{
		border-radius:0;
	}

#timeline_resource_summary #real_inventory_date
	{
		position:absolute;
		width:1px;
		height:1px;
		padding:0;
		margin:-1px;
		overflow:hidden;
		clip:rect(0, 0, 0, 0);
		white-space:nowrap;
		border:0;
	}

#timeline_panel[data-compact-header="true"] #timeline_status
	{
		gap:5px;
	}

#timeline_panel[data-compact-header="true"] #timeline_status > strong
	{
		position:static;
		order:1;
		flex:0 0 auto;
		font-size:16px;
	}

#timeline_panel[data-compact-header="true"] #timeline_date_label
	{
		display:none;
	}

#timeline_panel[data-compact-header="true"] #timeline_resources_browser
	{
		position:static;
		order:2;
		display:block;
		min-width:0;
		flex:1 1 auto;
	}

/* Persistent Timeline Resource Ribbon. */
#timeline_resources_browser
	{
		position:absolute;
		z-index:2;
		left:215px;
		right:0;
		top:-3px;
		display:block;
		min-width:0;
		height:31px;
	}

#timeline_panel[data-zoom-controls-presentation="visible"] #timeline_resources_browser
	{ right:28px; }

#timeline_resource_summary,
body.mode-real #timeline_resource_summary,
body.mode-simulation #timeline_resource_summary
	{
		position:relative;
		inset:auto;
		box-sizing:border-box;
		width:100%;
		height:31px;
		padding:1px 2px;
		transform:none;
		container:resource-ribbon / inline-size;
		overflow:visible;
	}

body.mode-real #timeline_resource_summary { border-radius:9px; }
body.mode-simulation #timeline_resource_summary { border-radius:0; }

/* Hidden-resource views promote the otherwise inert Ribbon to a transient
 * lane disclosure without changing its resting presentation. */
#timeline_resource_summary[data-resource-lane-control="available"]
	{
		cursor:pointer;
	}

#timeline_resource_summary[data-resource-lane-control="available"]:hover,
#timeline_resource_summary[data-resource-lane-control="available"]:focus-visible,
#timeline_resource_summary[data-resource-lane-control="available"][data-resource-lane-control-hold-hover="true"]
	{
		background:color-mix(in srgb,var(--color-surface-subtle) 82%,var(--color-chart-yield));
		box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--color-chart-yield) 72%,transparent);
		outline:none;
	}

#timeline_resource_summary[data-resource-lane-control-state="selected"]
	{
		background:color-mix(in srgb,var(--color-surface-subtle) 74%,var(--color-chart-health));
		box-shadow:inset 0 0 0 2px var(--color-chart-health);
	}

/* Resource identity stays stable while the surrounding control conveys state/mode. */
.resource_ribbon,
.semantic_action_control
	{
		--action-icon-coin:#e0ac2f;
		--action-icon-seed:#9a682b;
	}

.resource_ribbon_view,
body.mode-real #real_inventory_view,
body.mode-simulation #simulation_inventory_view
	{
		width:100%;
		height:100%;
	}

.resource_ribbon,
.resource_category_breakdown
	{
		--action-icon-accent:var(--color-chart-health);
		--action-icon-produce:var(--color-chart-tomato);
		--action-icon-leaf:var(--color-chart-health);
		--action-icon-tech:color-mix(in srgb,var(--color-chart-yield) 56%,var(--color-text));
		--action-icon-highlight:var(--color-surface-solid);
	}

.resource_ribbon
	{
		display:grid;
		grid-template-columns:repeat(4,minmax(0,1fr));
		width:100%;
		height:100%;
	}

.resource_ribbon_cell
	{
		position:relative;
		display:flex;
		align-items:center;
		justify-content:center;
		min-width:0;
		height:100%;
		gap:var(--resource-ribbon-gap,2px);
		border-left:1px solid color-mix(in srgb, var(--color-border) 48%, transparent);
		color:var(--color-text);
		transition:background-color 180ms ease, box-shadow 180ms ease;
	}

.resource_ribbon_cell:first-child { border-left:0; }

[data-resource-ribbon-density="layered"] .resource_ribbon_cell
	{
		flex-direction:row;
		gap:0;
	}

[data-resource-ribbon-density="layered"] .resource_ribbon_icon
	{
		position:relative;
		z-index:1;
	}

[data-resource-ribbon-density="layered"] .resource_ribbon_values
	{
		z-index:2;
		margin-left:calc(var(--resource-ribbon-overlap,1px) * -1);
		text-shadow:
			0 0 2px var(--color-surface-solid),
			0 0 2px var(--color-surface-solid);
	}

.resource_ribbon_icon
	{
		display:block;
		flex:0 0 var(--resource-ribbon-icon-size,14px);
		width:var(--resource-ribbon-icon-size,14px);
		height:var(--resource-ribbon-icon-size,14px);
	}

.resource_entity_icon
	{
		display:block;
		width:100%;
		height:100%;
		fill:none;
		stroke:var(--color-text);
		stroke-width:2.4;
		stroke-linecap:round;
		stroke-linejoin:round;
		overflow:visible;
	}

.resource_entity_icon [data-tone="accent"] { stroke:var(--action-icon-accent); }
.resource_entity_icon [data-tone="produce"] { color:var(--action-icon-produce); stroke:var(--action-icon-produce); }
.resource_entity_icon [data-tone="leaf"] { color:var(--action-icon-leaf); stroke:var(--action-icon-leaf); }
.resource_entity_icon [data-tone="leaf-fill"] { color:var(--action-icon-leaf); fill:currentColor; stroke:none; }
.resource_entity_icon [data-tone="tech-fill"] { color:var(--action-icon-tech); fill:currentColor; stroke:none; }
.resource_entity_icon [data-tone="tech-surface"]
	{ color:color-mix(in srgb, var(--action-icon-tech) 72%, var(--color-surface-solid)); fill:currentColor; stroke:none; }
.resource_entity_icon [data-tone="ground"] { stroke:var(--action-icon-seed); }
.resource_entity_icon [data-tone="seed"] { color:var(--action-icon-seed); stroke:var(--action-icon-seed); }
.resource_entity_icon [data-tone="tech"] { color:var(--action-icon-tech); stroke:var(--action-icon-tech); }
.resource_entity_icon [data-tone="tool-handle"] { stroke:var(--action-icon-accent); stroke-width:6; }
.resource_entity_icon [data-tone="tool-accent"] { stroke:var(--action-icon-accent); }

.resource_ribbon_values
	{
		position:relative;
		display:flex;
		align-items:baseline;
		justify-content:center;
		min-width:0;
		font:bold var(--resource-ribbon-value-size,11px)/1 Arial,sans-serif;
		font-variant-numeric:tabular-nums;
		letter-spacing:-.04em;
		white-space:nowrap;
	}

.resource_ribbon_values b:first-of-type
	{
		font-size:1.08em;
		font-weight:900;
	}

.resource_ribbon_values b:last-of-type
	{
		font-size:.78em;
		font-weight:700;
		opacity:.82;
	}

.resource_ribbon_separator
	{
		padding:0 .08em;
		font-size:.74em;
		opacity:.66;
	}

.resource_ribbon_available_label,
.resource_ribbon_on_hand_label
	{
		position:absolute;
		width:1px;
		height:1px;
		overflow:hidden;
		clip:rect(0,0,0,0);
	}

.resource_ribbon_delta
	{
		position:absolute;
		z-index:2;
		left:calc(100% + 1px);
		top:50%;
		translate:0 -50%;
		min-width:13px;
		padding:1px 2px;
		border:1px solid currentColor;
		background:var(--color-surface-elevated);
		font:bold 9px/10px Arial,sans-serif;
		text-align:center;
		pointer-events:none;
		opacity:0;
	}

.resource_ribbon_delta:empty { display:none; }

.resource_ribbon_cell[data-change="gain"]
	{
		background:color-mix(in srgb,var(--color-chart-health) 24%,var(--color-surface-subtle));
		box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--color-chart-health) 72%,transparent);
	}

.resource_ribbon_cell[data-change="loss"]
	{
		background:color-mix(in srgb,var(--color-chart-produce) 18%,var(--color-surface-subtle));
		box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--color-chart-produce) 64%,transparent);
	}

.resource_ribbon_cell[data-change] .resource_ribbon_icon
	{ filter:drop-shadow(0 0 3px currentColor); }

.resource_ribbon_cell[data-change] .resource_ribbon_delta
	{
		opacity:1;
		animation:resource-ribbon-delta 2200ms ease-out both;
	}

@keyframes resource-ribbon-delta
	{
		0% { opacity:0; transform:translateY(5px) scale(.85); }
		15%,72% { opacity:1; transform:translateY(0) scale(1); }
		100% { opacity:0; transform:translateY(-5px) scale(1); }
	}

#timeline_panel[data-compact-header="true"] #timeline_resources_browser
	{
		position:static;
		order:2;
		flex:1 1 auto;
		min-width:0;
		height:26px;
	}

#timeline_panel[data-compact-header="true"][data-zoom-controls-presentation="visible"]
	#timeline_resources_browser
	{ margin-right:28px; }

#timeline_panel[data-compact-header="true"] #timeline_resource_summary,
body.mode-real #timeline_panel[data-compact-header="true"] #timeline_resource_summary,
body.mode-simulation #timeline_panel[data-compact-header="true"] #timeline_resource_summary
	{
		inset:auto;
		width:100%;
		height:26px;
		padding:0 1px;
		transform:none;
	}

@media (prefers-reduced-motion:reduce)
	{
		.resource_ribbon_cell,
		.resource_ribbon_cell[data-change] .resource_ribbon_delta
			{ transition:none; animation:none; }
	}

#controller.logged-in #mode_panel
	{
		grid-column:2;
		grid-row:5;
		display:flex;
		box-sizing:border-box;
		min-height:0;
		padding:0;
		align-items:stretch;
		justify-content:center;
		overflow:hidden;
		background:var(--color-surface);
	}

#real_inventory_view,
#simulation_inventory_view
	{
		display:none;
		min-width:0;
	}

body.mode-real #real_inventory_view,
body.mode-simulation #simulation_inventory_view
	{
		display:block;
	}

#real_inventory_date
	{
		display:block;
		height:9px;
		font-size:7px;
		font-weight:bold;
		line-height:9px;
	}

.inventory_grid
	{
		display:grid;
		min-width:0;
		grid-template-columns:repeat(5, minmax(0, 1fr));
		text-align:center;
	}

.inventory_grid > *
	{
		min-width:0;
		overflow:hidden;
		text-overflow:ellipsis;
	}

.real_inventory_grid
	{
		grid-template-rows:12px 9px;
		font-size:7px;
		line-height:9px;
	}

.real_inventory_grid > span
	{
		white-space:normal;
		line-height:6px;
	}

.simulation_inventory_grid
	{
		grid-template-rows:repeat(3, 9px);
		font-size:6px;
		line-height:9px;
	}

.simulation_inventory_grid > strong
	{
		text-align:left;
	}

.simulation_inventory_grid #simulation_tech_inventory
	{
		margin:0;
		color:inherit;
	}

.inventory_bulk_actions
	{
		display:grid;
		height:100%;
		grid-template-columns:repeat(2, minmax(0, 1fr));
		gap:3px;
	}

#controller.logged-in #marketplace_buy_panel[data-visible-control-count="1"]
	.marketplace_buy_actions,
#controller.logged-in #marketplace_sell_panel[data-visible-control-count="1"]
	.marketplace_sell_actions,
#controller.logged-in #inventory_panel[data-visible-control-count="1"]
	.inventory_bulk_actions
	{
		grid-template-columns:minmax(0, 1fr);
	}

.inventory_bulk_actions button
	{
		box-sizing:border-box;
		height:100%;
		width:100%;
		padding:1px 5px;
		border:1px solid var(--color-border-strong);
		background:var(--color-control);
		color:var(--color-control-text);
		font:inherit;
		font-size:7px;
		line-height:1;
		cursor:pointer;
	}

.semantic_action_control
	{
		position:relative;
		container-type:size;
		display:flex;
		align-items:center;
		justify-content:center;
		--action-icon-ink:currentColor;
		--action-icon-accent:var(--color-chart-health);
		--action-icon-produce:var(--color-chart-tomato);
		--action-icon-leaf:var(--color-chart-health);
		--action-icon-basket:color-mix(in srgb, var(--color-chart-credit) 72%, #6b4c20);
		--action-icon-basket-fill:color-mix(in srgb, var(--action-icon-basket) 78%, #3b2812);
		--action-icon-garden-frame:#86642d;
	--action-icon-garden-frame-fill:#d4944a;
		--action-icon-garden-soil:#5d3c21;
	--action-icon-garden-rim:#f2c46d;
		--action-icon-tech:currentColor;
		--action-icon-highlight:var(--color-control-text);
	}

body.mode-simulation .semantic_action_control
	{
		--action-icon-basket-fill:color-mix(in srgb, var(--action-icon-basket) 72%, #f4d99a);
		--action-icon-garden-frame:#d2a765;
		--action-icon-garden-frame-fill:#8c6130;
		--action-icon-garden-soil:#5b3c25;
		--action-icon-garden-rim:#f0cf8f;
	}

.semantic_action_control[hidden] { display:none !important; }

/* Green enabled Real controls need high-contrast Seed/stem/arrow marks. */
body.mode-real .semantic_action_control:not(:disabled)
	{
		--action-icon-accent:color-mix(in srgb, var(--color-control-text) 82%, var(--color-chart-health));
		--action-icon-leaf:color-mix(in srgb, var(--color-control-text) 82%, var(--color-chart-health));
	}

.semantic_action_control .action_control_icon
	{
		display:flex;
		width:100%;
		height:100%;
		align-items:center;
		justify-content:center;
		min-width:0;
		min-height:0;
	}

.semantic_action_control .action_icon--wide-composition { display:none; width:100%; }

#controller.logged-in .semantic_action_control
	.action_control_icon:has(.action_icon--wide-composition)
	.action_icon:not(.action_icon--wide-composition)
	{ display:none; }

#controller.logged-in .semantic_action_control .action_icon--wide-composition
	{
		display:block;
		width:100%;
		height:100%;
		max-width:120px;
		max-height:72px;
	}

#controller.logged-in .semantic_action_control .action_icon[data-launcher-presentation="resource"],
#controller.logged-in .semantic_action_control .action_icon[data-launcher-presentation="resource-coin"]
	{ max-width:none; max-height:none; }

/* Grey resource launchers retain Ribbon foliage even while browsable. */
.semantic_action_control .action_icon[data-launcher-presentation="resource"],
.semantic_action_control .action_icon[data-launcher-presentation="resource-coin"]
	{ --action-icon-leaf:var(--color-chart-health); }

/* Consumer-specific stroke weights; canonical geometry and other surfaces stay shared. */
.action_icon:is([data-launcher-presentation="resource"],[data-launcher-presentation="resource-coin"])
	[data-primitive-id="tomato"] [data-tone="leaf"]
	{ vector-effect:none; stroke-width:var(--launcher-tomato-stem-width,.5); }

.action_icon:is([data-launcher-presentation="resource"],[data-launcher-presentation="resource-coin"])
	path[data-tone="basket"]
	{ vector-effect:none; stroke-width:1; }

.action_icon:is([data-launcher-presentation="resource"],[data-launcher-presentation="resource-coin"])
	line[data-tone="basket"]
	{ vector-effect:none; stroke-width:1.3; }

.action_icon:is([data-launcher-presentation="resource"],[data-launcher-presentation="resource-coin"])
	:is([data-tech-part="wireless"] [data-tone="tech"],[data-tech-part="sprinkler"] [data-tone="tech"],[data-tone="ground"])
	{ vector-effect:none; stroke-width:1; }

.action_icon:is([data-launcher-presentation="resource"],[data-launcher-presentation="resource-coin"])
	:is([data-tech-part="wireless"] [data-tone="tech"],[data-tech-part="sprinkler"] [data-tone="tech"])
	{ stroke-width:1.3; }

.action_icon:is([data-launcher-presentation="resource"],[data-launcher-presentation="resource-coin"])
	[data-tone="seed-shadow"]
	{ vector-effect:none; stroke-width:.55; }

/* Match foliage contrast to green availability/hover chrome, not clickability. */
:is(body.mode-real #controller,.action_icon_mode--real) .semantic_action_control:not(:disabled):is(:not(.market_standard_unavailable),:hover)
	:is(.action_icon[data-launcher-presentation="resource"],.action_icon[data-launcher-presentation="resource-coin"])
	{ --action-icon-leaf:color-mix(in srgb, var(--color-control-text) 35%, var(--color-chart-health)); }

.semantic_action_control .action_control_badges
	{
		position:absolute;
		inset:0;
		z-index:2;
		pointer-events:none;
	}

.semantic_action_control .action_control_badge
	{
		position:absolute;
		bottom:3px;
		padding:0 3px;
		border:1px solid var(--color-border-strong);
		border-radius:3px;
		background:var(--color-surface-solid);
		color:var(--color-text);
		font:bold 14px/1 monospace;
		white-space:nowrap;
		box-shadow:0 1px 0 color-mix(in srgb, var(--color-border-strong) 45%, transparent);
	}

.semantic_action_control .action_control_badge--left { left:3px; }
.semantic_action_control .action_control_badge--right { right:3px; }
.semantic_action_control .action_control_badge--unit-rate
	{
		border-style:dashed;
		box-shadow:none;
	}
.semantic_action_control .action_control_badge--single
	{
		left:50%;
		right:auto;
		transform:translateX(-50%);
	}

.semantic_action_control:disabled .action_control_badge
	{ background:var(--color-control-disabled); color:var(--color-control-disabled-text); }

@container (min-aspect-ratio:2/1)
	{
		.semantic_action_control .action_control_icon:has(.action_icon--wide-composition)
			.action_icon:not(.action_icon--wide-composition) { display:none; }
		.semantic_action_control .action_icon--wide-composition { display:block; }
	}

.inventory_bulk_actions button:disabled
	{
		border-color:var(--color-border);
		background:var(--color-control-disabled);
		color:var(--color-control-disabled-text);
		cursor:default;
	}

body.mode-real .inventory_bulk_actions button
	{
		border-radius:8px;
	}

body.mode-simulation .inventory_bulk_actions button
	{
		border-radius:0;
	}

#controller.logged-in #marketplace_buy_panel[data-inline-layout="stacked"]
	.marketplace_buy_actions,
#controller.logged-in [data-inline-layout="stacked"] .marketplace_sell_actions,
#controller.logged-in [data-inline-layout="stacked"] .inventory_bulk_actions
	{
		grid-template-columns:minmax(0, 1fr);
		grid-auto-rows:minmax(0, 1fr);
	}

#controller.logged-in #garden_positions
	{
		position:static;
		display:block;
		box-sizing:border-box;
		height:100%;
		padding:3px;
	}

#controller.logged-in #garden_positions .crop_panel
	{
		--plot-action-inline-size:88px;
		--plot-visible-actions-inline-size:88px;
		position:relative;
		container-type:size;
		height:auto;
		min-height:0;
	}

#controller.logged-in #garden_positions .crop_panel[hidden]
	{
		display:none !important;
	}

#controller.logged-in #garden_positions .plot_number
	{
		position:absolute;
		z-index:4;
		top:6px;
		left:max(
			calc(50% - 21px),
			calc(11px + var(--plot-visible-actions-inline-size))
		);
		box-sizing:border-box;
		width:max-content;
		min-width:42px;
		padding:2px 4px;
		border:1px solid var(--color-border-strong);
		background:color-mix(in srgb, var(--color-surface-elevated) 92%, transparent);
		color:var(--color-text);
		font-size:10px;
		font-weight:bold;
		line-height:1;
		letter-spacing:0.4px;
		text-align:center;
		white-space:nowrap;
		pointer-events:none;
	}

#controller.logged-in #garden_positions .plot_select
	{
		position:absolute;
		inset:0;
		box-sizing:border-box;
		width:100%;
		height:100%;
		min-height:0;
		border:0;
		background-position:center 58%;
	}

#controller.logged-in #garden_positions .garden_equipment_overlay
	{
		--action-icon-tech:#59685f;
		position:absolute;
		top:calc(50% - 39px);
		right:6px;
		bottom:auto;
		left:auto;
		z-index:2;
		display:block;
		width:88px;
		height:88px;
		overflow:visible;
		pointer-events:none;
		fill:none;
		stroke-width:2.4;
		stroke-linecap:round;
		stroke-linejoin:round;
		filter:drop-shadow(0 1px 1px rgba(20,35,30,.48));
	}

#controller.logged-in #garden_positions .garden_equipment_overlay[hidden]
	{
		display:none;
	}

#controller.logged-in #garden_positions .garden_equipment_plaque
	{
		fill:color-mix(in srgb, var(--color-surface-solid) 94%, transparent);
		stroke:var(--color-border-strong);
		stroke-width:1.5px;
	}

#controller.logged-in #garden_positions .garden_equipment_overlay [data-tone="tech"]
	{ color:var(--action-icon-tech); stroke:currentColor; }

#controller.logged-in #garden_positions .garden_equipment_overlay [data-tone="tech-fill"]
	{ color:var(--action-icon-tech); fill:currentColor; stroke:none; }

#controller.logged-in #garden_positions .garden_equipment_overlay [data-tone="tech-surface"]
	{ color:color-mix(in srgb, var(--action-icon-tech) 72%, var(--color-surface-solid)); fill:currentColor; stroke:none; }

body.mode-simulation #controller.logged-in #garden_positions .garden_equipment_overlay
	{
		--action-icon-tech:#b9d3e5;
		filter:none;
	}

body.mode-simulation #controller.logged-in #garden_positions .garden_equipment_plaque
	{
		rx:0;
		fill:color-mix(in srgb, var(--color-surface-elevated) 97%, transparent);
		stroke:var(--color-border-strong);
	}

#controller.logged-in
	#garden_positions[data-plot-orientation="vertical"]
	.garden_equipment_overlay
	{
		/* The Plot's 2px frame makes these 18px CSS offsets 20px
		   from the visible outer border. Across layouts retain the
		   responsive base placement above. */
		top:18px;
		right:18px;
	}

@container (max-height:134px)
	{
		#controller.logged-in
			#garden_positions[data-plot-orientation="vertical"]
			.garden_equipment_overlay
			{
				/* Three stacked Plots in a sub-412px Garden use a compact
				   fixed mark: frame-adjusted 10px top / 15px right. */
				top:8px;
				right:13px;
				width:44px;
				height:44px;
		}
	}

@container (max-height:100.99px)
	{
		#controller.logged-in
			#garden_positions[data-plot-orientation="vertical"]
			.garden_equipment_overlay
			{
				/* At the shortest stacked Plot tier, preserve the compact
				   mark and horizontal anchor while clearing the summary below. */
				top:1px;
			}
	}

#controller.logged-in #garden_positions .plot_summary
	{
		position:absolute;
		right:5px;
		bottom:5px;
		z-index:4;
		display:flex;
		max-width:calc(100% - 10px);
		flex-direction:column;
		align-items:flex-end;
		pointer-events:none;
	}

#controller.logged-in #garden_positions .crop_panel:has(.plot_tech_surface:not([hidden])) .plot_summary
{
	bottom:calc(var(--plot-tech-surface-height) + 3px);
}

#controller.logged-in #garden_positions .plot_summary > span
	{
		position:static;
		display:block;
		box-sizing:border-box;
		max-width:100%;
		height:auto;
		margin:0;
		padding:1px 3px;
		overflow:hidden;
		background:color-mix(in srgb, var(--color-surface) 88%, transparent);
		color:var(--color-text);
		font-weight:bold;
		font-size:10px;
		line-height:1;
		text-align:right;
		text-overflow:ellipsis;
		white-space:nowrap;
	}

/* Reserve the action row (short Plots) or complete action stack (tall
   Plots), then fit the authored summary above the optional 33px Tech footer. */
#controller.logged-in #garden_positions .plot_summary {
    --summary-expanded:none;
    --summary-compact:block;
}
#controller.logged-in #garden_positions .plot_summary > :not(.plot_summary_compact) { display:var(--summary-expanded); }
#controller.logged-in #garden_positions .plot_summary > .plot_summary_compact { display:var(--summary-compact); }
#controller.logged-in #garden_positions .plot_planted_date,
#controller.logged-in #garden_positions .plot_summary_detail { font-size:8px; }
@container (min-width:180px) and (((min-height:96px) and (max-height:149.99px)) or (min-height:184px)) {
    #controller.logged-in #garden_positions .crop_panel:not(:has(.plot_tech_surface:not([hidden]))) .plot_summary[data-kind="active"] { --summary-expanded:block; --summary-compact:none; }
}
@container (min-width:180px) and (((min-height:129px) and (max-height:149.99px)) or (min-height:217px)) {
    #controller.logged-in #garden_positions .plot_summary[data-kind="active"] { --summary-expanded:block; --summary-compact:none; }
}
@container (min-width:180px) and (((min-height:86px) and (max-height:149.99px)) or (min-height:174px)) {
    #controller.logged-in #garden_positions .crop_panel:not(:has(.plot_tech_surface:not([hidden]))) .plot_summary[data-kind="historic"] { --summary-expanded:block; --summary-compact:none; }
}
@container (min-width:180px) and (((min-height:119px) and (max-height:149.99px)) or (min-height:207px)) {
    #controller.logged-in #garden_positions .plot_summary[data-kind="historic"] { --summary-expanded:block; --summary-compact:none; }
}
#controller.logged-in #garden_positions .plot_summary > span:empty { display:none !important; }

#controller.logged-in #garden_positions .plot_planted_date { align-self:stretch; }
.garden-summary-metrics { display:flex; justify-content:flex-end; align-items:center; gap:4px; height:12px; }
.garden-summary-metric { display:inline-flex; align-items:center; gap:2px; }
.garden-summary-metric svg { width:8px; height:8px; flex:none; }
.garden-summary-metric:not([data-metric="health"]) svg { width:12px; height:12px; }
.garden-summary-metric [data-tone] { vector-effect:none; }
.garden-summary-metric[data-metric="health"] {
    color:color-mix(in srgb, var(--color-chart-health) 76%, var(--color-text));
    --action-icon-accent:currentColor;
    --action-icon-highlight:color-mix(in srgb, white 78%, currentColor);
}
.garden-summary-metric[data-metric="expected"] {
    color:color-mix(in srgb, #397fa8 82%, var(--color-text));
    --action-icon-basket:currentColor;
    --action-icon-basket-fill:color-mix(in srgb, currentColor 58%, transparent);
}
.garden-summary-metric:is([data-metric="historic"], [data-metric="harvestable"]) { color:var(--timeline-history-basket-tone); }
.garden-summary-metric [data-plot-icon-state="outline"] [data-tone="basket-fill"] { fill:none; }

#controller.logged-in #garden_positions .plot_actions
	{
		position:absolute;
		inset:0;
		z-index:5;
		display:block;
		width:auto;
		height:auto;
		pointer-events:none;
	}

@media (prefers-reduced-motion: reduce)
	{
		#timeline_resource_tracks .resource-transaction
			{
				transition:none;
			}
	}

#controller.logged-in #garden_positions .plot_action
	{
		position:absolute;
		top:6px;
		display:flex;
		box-sizing:border-box;
		width:var(--plot-action-inline-size);
		height:44px;
		padding:0;
		align-items:center;
		justify-content:center;
		border:1px solid var(--color-border-strong);
		background:var(--color-control);
		color:var(--color-control-text);
		font:bold 11px/1 Arial, sans-serif;
		cursor:pointer;
		list-style:none;
		pointer-events:auto;
	}

#controller.logged-in #garden_positions .plot_plant
	{ right:auto; left:6px; }

#controller.logged-in #garden_positions .plot_water
	{ right:auto; left:calc(10px + var(--plot-action-inline-size)); }

#controller.logged-in #garden_positions .plot_harvest
	{
		right:auto;
		left:calc(14px + (2 * var(--plot-action-inline-size)));
		line-height:1;
	}

	@container (max-height:149.99px)
	{
		#controller.logged-in #garden_positions .plot_actions
			{
				inset:6px 6px auto;
				display:flex;
				width:auto;
				height:44px;
				gap:4px;
			}
		#controller.logged-in #garden_positions .plot_action:disabled
			{ display:none; }
		#controller.logged-in #garden_positions .plot_action:not(:disabled)
			{
				position:relative;
				inset:auto;
				width:var(--plot-action-inline-size);
				flex:0 0 var(--plot-action-inline-size);
			}
		#controller.logged-in #garden_positions
			.crop_panel:has(.plot_water:not(:disabled)):has(.plot_harvest:not(:disabled))
			.plot_actions,
		#controller.logged-in #garden_positions
			.crop_panel:has(.plot_water:not(:disabled)):has(.plot_harvest:not(:disabled))
			.plot_number
			{
				--plot-action-inline-size:44px;
				--plot-visible-actions-inline-size:92px;
			}
	}

	@container (min-height:150px)
	{
		#controller.logged-in #garden_positions .crop_panel
			{
				--plot-action-inline-size:88px;
				--plot-visible-actions-inline-size:88px;
			}
		#controller.logged-in #garden_positions .plot_plant
			{ top:6px; left:6px; right:auto; }
		#controller.logged-in #garden_positions .plot_water
			{ top:54px; left:6px; right:auto; }
		#controller.logged-in #garden_positions .plot_harvest
			{ top:102px; left:6px; right:auto; }
	}

#controller.logged-in #garden_positions .plot_harvest[data-action-state="potential"]:disabled
	{
		border-style:dashed;
		border-color:var(--color-chart-yield);
		opacity:.8;
	}

#controller.logged-in #garden_positions .plot_action:disabled
	{
		border-color:var(--color-border);
		background:var(--color-control-disabled);
		color:var(--color-control-disabled-text);
		cursor:default;
	}

#controller.logged-in
	{
		--plot-tech-surface-height:33px;
	}

body.mode-real #controller.logged-in #garden_positions .plot_action
	{
		border-radius:8px;
	}

body.mode-real #controller.logged-in #garden_positions .plot_summary > span
	{
		border-radius:6px;
	}

body.mode-simulation #controller.logged-in #garden_positions .plot_action
	{
		border-radius:0;
		font-family:"Courier New", Courier, ui-monospace, monospace;
	}

#controller.logged-in #simulation_tech_positions
	{
		position:static;
		display:grid;
		box-sizing:border-box;
		width:100%;
		height:100%;
		grid-template-columns:minmax(0, 1fr);
		grid-template-rows:repeat(3, minmax(0, 1fr));
		gap:3px;
	}

#controller.logged-in #garden_positions[data-visible-plot-count="2"]
	#simulation_tech_positions
	{
		grid-template-rows:repeat(2, minmax(0, 1fr));
	}

#controller.logged-in #garden_positions[data-visible-plot-count="1"]
	#simulation_tech_positions
	{
		grid-template-rows:minmax(0, 1fr);
	}

#controller.logged-in #garden_positions[data-plot-orientation="horizontal"]
	#simulation_tech_positions
	{
		grid-template-columns:repeat(3, minmax(0, 1fr));
		grid-template-rows:minmax(0, 1fr);
	}

#controller.logged-in #garden_positions[data-plot-orientation="horizontal"][data-visible-plot-count="2"]
	#simulation_tech_positions
	{
		grid-template-columns:repeat(2, minmax(0, 1fr));
	}

#controller.logged-in #simulation_tech_positions section
	{
		position:absolute;
		left:9px;
		right:9px;
		z-index:6;
		display:flex;
		box-sizing:border-box;
		height:28px;
		padding:3px 58px 3px 5px;
		align-items:center;
		gap:5px;
		overflow:hidden;
		border:1px solid var(--color-border);
		background:color-mix(in srgb, var(--color-surface) 90%, transparent);
		color:var(--color-text);
		pointer-events:auto;
		transform:translateZ(0);
		transform-origin:bottom right;
		box-shadow:
			inset 0 1px 0 color-mix(in srgb, var(--color-surface-elevated) 85%, transparent),
			0 2px 4px color-mix(in srgb, var(--color-page) 28%, transparent);
		transition:
			height 480ms cubic-bezier(.16,1,.3,1),
			top 480ms cubic-bezier(.16,1,.3,1),
			background-color 380ms ease,
			box-shadow 480ms cubic-bezier(.16,1,.3,1);
	}

#controller.logged-in #simulation_tech_positions section::after
	{
		position:absolute;
		inset:0;
		z-index:1;
		background:linear-gradient(
			105deg,
			transparent 24%,
			color-mix(in srgb, var(--color-surface-elevated) 42%, transparent) 48%,
			transparent 72%
		);
		content:"";
		opacity:0;
		pointer-events:none;
		transform:translateX(-130%);
	}

#controller.logged-in #simulation_tech_positions section:nth-child(1)
	{
		top:67px;
	}

#controller.logged-in #simulation_tech_positions section:nth-child(2)
	{
		top:165px;
	}

#controller.logged-in #simulation_tech_positions section:nth-child(3)
	{
		top:263px;
	}

#controller.logged-in #simulation_tech_positions section.tech-expanded
	{
		z-index:8;
		height:91px;
		padding:6px 58px 6px 6px;
		flex-wrap:wrap;
		align-content:center;
		background:color-mix(in srgb, var(--color-surface) 97%, transparent);
		box-shadow:
			0 0 0 1px color-mix(in srgb, var(--color-border-strong) 58%, transparent),
			0 4px 8px color-mix(in srgb, var(--color-page) 38%, transparent),
			0 15px 30px color-mix(in srgb, var(--color-page) 62%, transparent),
			inset 0 2px 0 color-mix(in srgb, var(--color-surface-elevated) 92%, transparent),
			inset 0 -2px 5px color-mix(in srgb, var(--color-page) 20%, transparent);
		transform:translateZ(0);
	}

#controller.logged-in #simulation_tech_positions section.tech-expanded::after
	{
		animation:tech-surface-sweep 720ms cubic-bezier(.16,1,.3,1) 80ms both;
	}

#controller.logged-in #simulation_tech_positions section:nth-child(1).tech-expanded
	{
		top:4px;
	}

#controller.logged-in #simulation_tech_positions section:nth-child(2).tech-expanded
	{
		top:102px;
	}

#controller.logged-in #simulation_tech_positions section:nth-child(3).tech-expanded
	{
		top:200px;
	}

body.mode-simulation #controller.logged-in #simulation_tech_positions section
	{
		border-radius:0;
	}

body.mode-simulation #controller.logged-in #simulation_tech_positions button
	{
		border-radius:0;
	}

#controller.logged-in #simulation_tech_positions section > strong
	{
		display:none;
	}

#controller.logged-in #simulation_tech_positions .tech_plot_status
	{
		display:none;
	}

:where(#controller.logged-in #simulation_tech_positions button)
	{
		padding:2px 4px;
		border-color:var(--color-border-strong);
		background:linear-gradient(
			180deg,
			color-mix(in srgb, var(--color-control) 72%, var(--color-surface-elevated)) 0%,
			var(--color-control) 58%,
			color-mix(in srgb, var(--color-control) 82%, var(--color-page)) 100%
		);
		box-shadow:
			inset 0 1px 0 color-mix(in srgb, var(--color-control-text) 32%, transparent),
			0 2px 2px color-mix(in srgb, var(--color-page) 48%, transparent);
		color:var(--color-control-text);
		font-size:8px;
		white-space:nowrap;
		transition:
			background 180ms ease,
			box-shadow 180ms ease,
			transform 120ms cubic-bezier(.2,.8,.2,1);
	}

:where(#controller.logged-in #simulation_tech_positions .tech_control)
	{
		min-height:24px;
		--press-control-surface:var(--color-tech-control);
		--press-control-hover:var(--color-tech-control-hover);
		--press-control-text:var(--color-tech-control-text);
		--press-control-border:var(--color-tech-control-border);
		--press-control-focus:var(--color-tech-control-focus);
		border-color:var(--press-control-border);
		background:linear-gradient(
			180deg,
			color-mix(in srgb, var(--press-control-surface) 78%, white) 0%,
			var(--press-control-surface) 58%,
			color-mix(in srgb, var(--press-control-surface) 84%, var(--color-page)) 100%
		);
		box-shadow:
			inset 0 1px 0 color-mix(in srgb, var(--press-control-text) 35%, transparent),
			0 2px 2px color-mix(in srgb, var(--color-page) 48%, transparent);
		color:var(--press-control-text);
		font-weight:600;
		letter-spacing:.015em;
	}

#controller.logged-in #simulation_tech_positions button:disabled
	{
		border-color:var(--color-border);
		background:var(--color-control-disabled);
		box-shadow:none;
		color:var(--color-control-disabled-text);
		transform:none;
	}

#controller.logged-in #simulation_tech_positions .tech_toggle
	{
		position:relative;
		z-index:2;
		min-width:0;
		margin:0;
		padding-right:3px;
		padding-left:4px;
		transition:
			background 180ms ease,
			color 160ms ease,
			box-shadow 180ms ease,
			transform 120ms cubic-bezier(.2,.8,.2,1);
	}

#controller.logged-in #simulation_tech_positions .tech_toggle .disclosure_indicator
	{
		display:inline-block;
		width:5px;
		height:5px;
		margin-left:3px;
		border-right:1px solid currentColor;
		border-bottom:1px solid currentColor;
		transform:translateY(-1px) rotate(45deg);
		transition:transform 160ms ease;
	}

#controller.logged-in #simulation_tech_positions section.tech-expanded .tech_toggle .disclosure_indicator
	{
		transform:translateY(2px) rotate(225deg);
	}

#controller.logged-in #simulation_tech_positions .tech_panel_close
	{
		display:none;
		position:absolute;
		top:5px;
		right:5px;
		z-index:3;
		width:20px;
		height:20px;
		padding:0;
		font-size:15px;
		line-height:18px;
	}

#controller.logged-in #simulation_tech_positions section.tech-expanded .tech_panel_close
	{
		display:block;
	}

#controller.logged-in #simulation_tech_positions .tech_primary_actions
	{
		position:absolute;
		left:4px;
		right:4px;
		bottom:4px;
		z-index:2;
		display:flex;
		align-items:stretch;
		gap:2px;
	}

#controller.logged-in #simulation_tech_positions .tech_control:disabled
	{
		border-color:var(--color-border);
		background:var(--color-tech-control-disabled);
		color:var(--color-tech-control-disabled-text);
	}

body.mode-real #controller.logged-in #simulation_tech_positions .tech_control
	{
		border-radius:5px;
	}

#controller.logged-in #simulation_tech_positions .simulation_tech_install
	{
		margin-right:auto;
	}

#controller.logged-in #simulation_tech_positions .tech_action_icon
	{
		display:inline-block;
		width:13px;
		height:13px;
		margin-right:3px;
		color:currentColor;
		vertical-align:-3px;
	}

#controller.logged-in #simulation_tech_positions .tech_icon_real
	{
		fill:none;
		stroke:currentColor;
		stroke-width:2.4;
		stroke-linecap:round;
		stroke-linejoin:round;
	}

#controller.logged-in #simulation_tech_positions .tech_icon_simulation
	{
		fill:currentColor;
	}

body.mode-real #controller.logged-in .tech_icon_simulation,
body.mode-simulation #controller.logged-in .tech_icon_real
	{
		display:none;
	}

#controller.logged-in #simulation_tech_positions section.tech-expanded .tech_toggle
	{
		background:var(--color-tech-control-active);
		color:var(--color-tech-control-text);
	}

#controller.logged-in #simulation_tech_positions section .tech_toggle.has-scheduled-uninstall
	{
		border-color:var(--color-tech-attention-strong);
		background:linear-gradient(
			180deg,
			color-mix(in srgb, var(--color-tech-attention) 48%, white),
			var(--color-tech-attention)
		);
		box-shadow:
			inset 0 1px 0 rgba(255,255,255,.78),
			inset 0 -2px 3px color-mix(in srgb, var(--color-tech-attention-strong) 45%, transparent),
			0 0 7px color-mix(in srgb, var(--color-tech-attention) 82%, transparent),
			0 0 13px color-mix(in srgb, var(--color-tech-attention) 48%, transparent);
		color:var(--color-tech-attention-text);
	}

#controller.logged-in #simulation_tech_positions section .tech_toggle.has-scheduled-uninstall:hover:not(:disabled)
	{
		background:linear-gradient(
			180deg,
			color-mix(in srgb, var(--color-tech-attention) 35%, white),
			color-mix(in srgb, var(--color-tech-attention) 92%, var(--color-tech-attention-strong))
		);
		box-shadow:
			inset 0 1px 0 white,
			inset 0 -2px 3px color-mix(in srgb, var(--color-tech-attention-strong) 48%, transparent),
			0 0 9px color-mix(in srgb, var(--color-tech-attention) 92%, transparent),
			0 0 16px color-mix(in srgb, var(--color-tech-attention) 58%, transparent);
	}

#controller.logged-in #simulation_tech_positions .tech_schedule_controls
	{
		display:none;
		position:absolute;
		top:34px;
		right:8px;
		z-index:2;
		flex-direction:column;
		align-items:flex-end;
		gap:5px;
	}

#controller.logged-in #simulation_tech_positions section.tech-expanded .tech_schedule_controls
	{
		display:flex;
	}

#controller.logged-in #simulation_tech_positions .tech_schedule_controls label,
#controller.logged-in #simulation_tech_positions .tech_schedule_controls button
	{
		box-sizing:border-box;
		width:126px;
		margin:0;
		text-align:right;
	}

#controller.logged-in #simulation_tech_positions .tech_schedule_controls label
	{
		font-size:9px;
	}

#controller.logged-in #simulation_tech_positions .tech_schedule_controls button
	{
		text-align:center;
	}

body.mode-real #controller.logged-in #simulation_tech_positions .tech_schedule_controls
	{
		display:none !important;
	}

#controller.logged-in #simulation_tech_positions section.tech-expanded .tech_schedule_controls > *,
#controller.logged-in #simulation_tech_positions section.tech-expanded .tech_panel_close
	{
		animation:tech-controls-present 420ms cubic-bezier(.16,1,.3,1) 110ms both;
	}

@keyframes tech-surface-sweep
	{
		0%
			{
				opacity:0;
				transform:translateX(-130%);
			}
		35%
			{
				opacity:.7;
			}
		100%
			{
				opacity:0;
				transform:translateX(130%);
			}
	}

@keyframes tech-controls-present
	{
		0%
			{
				opacity:0;
				transform:translateY(7px);
			}
		100%
			{
				opacity:1;
				transform:translateY(0);
			}
	}

#controller.logged-in #simulation_tech_positions .tech_uninstall_date
	{
		box-sizing:border-box;
		width:126px;
		text-align:right;
	}

/* #70: Tech is locally positioned by its owning Plot console. */
#controller.logged-in #simulation_tech_positions
	{
		display:grid;
		box-sizing:border-box;
		width:100%;
		height:100%;
		grid-template-rows:repeat(3, minmax(0, 1fr));
		gap:3px;
	}

#controller.logged-in #simulation_tech_positions .tech_settings_icon
	{
		display:inline-block;
		font-size:13px;
		line-height:10px;
		vertical-align:-1px;
	}

#controller.logged-in #simulation_tech_positions .plot_tech_surface
	{
		top:auto !important;
		right:1px;
		bottom:1px;
		left:1px;
		height:var(--plot-tech-surface-height);
		transition:
			height 480ms cubic-bezier(.16,1,.3,1),
			background-color 380ms ease,
			box-shadow 480ms cubic-bezier(.16,1,.3,1);
	}

#controller.logged-in #simulation_tech_positions .plot_tech_surface.tech-expanded
	{
		top:auto !important;
		bottom:1px;
		height:calc(100% - 2px);
	}

#controller.logged-in #simulation_tech_positions .plot_tech_surface[hidden]
	{
		display:none !important;
	}

@media (prefers-reduced-motion: reduce)
	{
		#controller.logged-in #simulation_tech_positions section
			{
				transition:none;
			}

		#controller.logged-in #simulation_tech_positions .plot_tech_surface
			{
				transition:none;
			}

		#controller.logged-in #simulation_tech_positions section.tech-expanded::after,
		#controller.logged-in #simulation_tech_positions section.tech-expanded .tech_schedule_controls > *,
		#controller.logged-in #simulation_tech_positions section.tech-expanded .tech_panel_close
			{
				animation:none;
			}

		#controller.logged-in #simulation_tech_positions .tech_toggle
			{
				transition:none;
			}

		#controller.logged-in #simulation_tech_positions .tech_toggle .disclosure_indicator
			{
				transition:none;
			}
	}

#controller.logged-in #timeline_status
	{
		height:30px;
		overflow:visible;
	}

#controller.logged-in #timeline_chart
	{
		height:485px;
	}

#controller.logged-in #timeline_graph
	{
		height:461px;
	}

#controller.panel-laboratory-active[data-panel-laboratory-subject="timeline"]
	#timeline_panel,
#controller.logged-in.viewport-laboratory-active #timeline_panel,
#controller.logged-in.viewport-canvas-sized #timeline_panel
	{
		min-height:0;
		padding-bottom:0;
		overflow:hidden;
	}

#controller.panel-laboratory-active[data-panel-laboratory-subject="timeline"]
	#timeline_controls,
#controller.logged-in.viewport-laboratory-active #timeline_controls,
#controller.logged-in.viewport-canvas-sized #timeline_controls
	{
		top:-4px;
		margin-bottom:-1px;
	}

#controller.panel-laboratory-active[data-panel-laboratory-subject="timeline"]
	#timeline_panel #timeline_chart,
#controller.logged-in.viewport-laboratory-active #timeline_chart,
#controller.logged-in.viewport-canvas-sized #timeline_chart
	{
		height:calc(100% - 60px);
		min-height:0;
	}

#controller.panel-laboratory-active[data-panel-laboratory-subject="timeline"]
	#timeline_panel #timeline_graph,
#controller.logged-in.viewport-laboratory-active #timeline_graph,
#controller.logged-in.viewport-canvas-sized #timeline_graph
	{
		height:calc(100% - 24px);
		min-height:0;
	}

#controller.logged-in #timeline_controls
	{
		position:relative;
		bottom:0;
		height:34px;
		box-sizing:border-box;
		padding-bottom:3px;
	}

#timeline_lane_chrome .timeline-lane-background
	{
		fill:var(--color-surface-subtle);
		stroke:none;
	}

#timeline_lane_boundaries .timeline-lane-boundary
	{
		fill:none;
		stroke:color-mix(in srgb, var(--color-text) 72%, var(--color-border));
		stroke-width:1;
		pointer-events:none;
	}

#timeline_lane_chrome .plot-lane
	{
		fill:var(--color-surface);
	}

#timeline_lane_chrome .resource-lane
	{
		fill:color-mix(in srgb, currentColor 3%, var(--color-surface-subtle));
	}

#timeline_lane_chrome .resource-lane.resource-credits,
#timeline_lane_chrome .resource-lane.resource-tech
	{
		fill:color-mix(in srgb, currentColor 6%, var(--color-surface-subtle));
	}

#timeline_lane_chrome .timeline-plot-alignment-spacer
	{
		fill:var(--color-surface);
		stroke:none;
	}

#timeline_plot_labels.timeline_overlay_surface--plot
	{
		position:absolute;
		z-index:4;
		top:0;
		right:0;
		bottom:24px;
		left:0;
		pointer-events:none;
	}

.timeline_overlay_surface--plot .timeline_plot_guide
	{
		position:absolute;
		left:0;
		width:68px;
		min-height:0;
		box-sizing:border-box;
		color:var(--color-text-muted);
		font-size:7px;
		font-weight:800;
		line-height:1;
		letter-spacing:0;
		white-space:nowrap;
	}

.timeline_overlay_surface--plot .timeline_plot_guide::before
	{
		content:"";
		position:absolute;
		z-index:0;
		inset:1px auto 3px 1px;
		width:62px;
		box-sizing:border-box;
		border:0;
		background:color-mix(in srgb, var(--color-surface-solid) 88%, transparent);
	}

body.mode-real .timeline_overlay_surface--plot .timeline_plot_guide::before
	{
		background:color-mix(in srgb, var(--color-surface-solid) 70%, transparent);
	}

.timeline_overlay_surface--plot .timeline_plot_guide_key
	{
		position:absolute;
		z-index:1;
		display:block;
		padding:1px;
		background:color-mix(in srgb, var(--color-surface-solid) 76%, transparent);
		transform:translateY(-50%);
	}

.timeline_overlay_surface--plot .timeline_plot_guide_key--plot-identity
	{
		left:3px;
		top:auto;
		bottom:2px;
		max-width:44px;
		overflow:hidden;
		padding:0;
		background:none;
		color:var(--color-text);
		font-size:8px;
		font-weight:bold;
		letter-spacing:.5px;
		text-overflow:clip;
		transform:none;
	}

#timeline_chart.timeline-plot-guides-compact-hover .timeline_plot_guide,
#timeline_chart.timeline-plot-guides-compact-inspection .timeline_plot_guide,
#timeline_chart.timeline-plot-guides-compact-selected .timeline_plot_guide
	{
		width:30px;
	}

#timeline_chart.timeline-plot-guides-compact-hover .timeline_plot_guide::before,
#timeline_chart.timeline-plot-guides-compact-inspection .timeline_plot_guide::before,
#timeline_chart.timeline-plot-guides-compact-selected .timeline_plot_guide::before
	{
		width:28px;
	}

#timeline_chart.timeline-plot-guides-compact-hover
	.timeline_overlay_surface--plot .timeline_plot_guide_key--health-axis,
#timeline_chart.timeline-plot-guides-compact-inspection
	.timeline_overlay_surface--plot .timeline_plot_guide_key--health-axis,
#timeline_chart.timeline-plot-guides-compact-selected
	.timeline_overlay_surface--plot .timeline_plot_guide_key--health-axis
	{
		left:0;
	}

#timeline_chart.timeline-plot-guides-compact-hover
	.timeline_overlay_surface--plot .timeline_plot_guide_key--yield-axis,
#timeline_chart.timeline-plot-guides-compact-inspection
	.timeline_overlay_surface--plot .timeline_plot_guide_key--yield-axis,
#timeline_chart.timeline-plot-guides-compact-selected
	.timeline_overlay_surface--plot .timeline_plot_guide_key--yield-axis
	{
		left:15px;
	}

#timeline_chart.timeline-plot-guides-compact-hover
	.timeline_plot_guide_axis b,
#timeline_chart.timeline-plot-guides-compact-hover
	.timeline_scale_identifier,
#timeline_chart.timeline-plot-guides-compact-inspection
	.timeline_plot_guide_axis b,
#timeline_chart.timeline-plot-guides-compact-inspection
	.timeline_scale_identifier,
#timeline_chart.timeline-plot-guides-compact-selected
	.timeline_plot_guide_axis b,
#timeline_chart.timeline-plot-guides-compact-selected
	.timeline_scale_identifier
	{
		display:none;
	}

#timeline_chart.timeline-plot-guides-compact-hover
	.timeline_plot_guide_key--plot-identity,
#timeline_chart.timeline-plot-guides-compact-inspection
	.timeline_plot_guide_key--plot-identity,
#timeline_chart.timeline-plot-guides-compact-selected
	.timeline_plot_guide_key--plot-identity
	{
		max-width:none;
		overflow:visible;
	}

.timeline_overlay_surface--plot .timeline_plot_guide_axis
	{
		width:13px;
		padding:0;
		border-left:2px solid currentColor;
		background:none;
		transform:none;
	}

.timeline_overlay_surface--plot .timeline_plot_guide_key--health-axis
	{
		left:15px;
		border-left:0;
		border-right:2px solid currentColor;
		color:color-mix(in srgb, var(--color-chart-health) 76%, var(--color-text));
	}

.timeline_overlay_surface--plot .timeline_plot_guide_key--yield-axis
	{
		left:30px;
		color:color-mix(in srgb, #397fa8 82%, var(--color-text));
	}

.timeline_overlay_surface--plot .timeline_plot_guide_axis::before,
.timeline_overlay_surface--plot .timeline_plot_guide_axis::after
	{
		content:"";
		position:absolute;
		left:-2px;
		width:8px;
		border-top:1px solid currentColor;
	}

.timeline_overlay_surface--plot .timeline_plot_guide_axis::before
	{
		top:0;
	}

.timeline_overlay_surface--plot .timeline_plot_guide_axis::after
	{
		bottom:0;
	}

.timeline_overlay_surface--plot .timeline_plot_guide_key--health-axis::before,
.timeline_overlay_surface--plot .timeline_plot_guide_key--health-axis::after
	{
		left:auto;
		right:-2px;
	}

.timeline_overlay_surface--plot .timeline_plot_guide_axis b
	{
		position:absolute;
		left:9px;
		font-size:9px;
		line-height:1;
	}

.timeline_overlay_surface--plot .timeline_plot_guide_axis_maximum
	{
		top:0;
		transform:translateY(-45%);
	}

.timeline_overlay_surface--plot .timeline_plot_guide_key--health-axis .timeline_plot_guide_axis_maximum
	{
		transform:translateY(calc(-45% + 2px));
	}

.timeline_overlay_surface--plot .timeline_plot_guide_key--yield-axis .timeline_plot_guide_axis_maximum
	{
		transform:translateY(calc(-45% - 2px));
	}

.timeline_overlay_surface--plot .timeline_plot_guide_axis_minimum
	{
		bottom:0;
		transform:translateY(45%);
	}

.timeline_overlay_surface--plot .timeline_plot_guide_key--health-axis b
	{
		left:auto;
		right:9px;
		text-align:right;
	}

.timeline_overlay_surface--plot .timeline_scale_identifier
	{
		position:absolute;
		top:50%;
		width:14px;
		height:14px;
		margin:0;
		overflow:visible;
		transform:translateY(-50%);
		pointer-events:none;
	}

.timeline_overlay_surface--plot .timeline_scale_identifier--health
	{
		right:5px;
		color:color-mix(in srgb, var(--color-chart-health) 76%, var(--color-text));
		--action-icon-accent:currentColor;
		--action-icon-highlight:color-mix(in srgb, white 78%, currentColor);
	}

.timeline_overlay_surface--plot .timeline_scale_identifier--yield
	{
		left:5px;
		color:color-mix(in srgb, #397fa8 82%, var(--color-text));
		--action-icon-basket:currentColor;
		--action-icon-basket-fill:color-mix(in srgb, currentColor 58%, transparent);
	}

.timeline_overlay_surface--plot .timeline_plot_guide_key--tech-identifier
	{
		left:48px;
		padding:0;
		background:none;
		color:var(--color-chart-tech-owned);
	}

.timeline_overlay_surface--plot .timeline_scale_identifier--tech
	{
		position:static;
		display:block;
		transform:none;
		--action-icon-tech:currentColor;
		--action-icon-accent:currentColor;
		--action-icon-highlight:currentColor;
		--action-icon-leaf:currentColor;
		--action-icon-seed:currentColor;
	}

.timeline_overlay_surface--plot .timeline_scale_identifier--tech [data-tone]
	{
		vector-effect:none;
	}

#timeline_lane_chrome text
	{
		fill:var(--color-text-muted);
		font-size:9px;
		font-weight:bold;
		letter-spacing:1px;
	}

body.mode-real #timeline_resource_tracks
	{
		display:inline;
	}

#controller.logged-in #timeline_axis_labels
	{
		display:none;
	}

#controller.logged-in #timeline_resource_labels.timeline_overlay_surface--resource
	{
		display:block;
		left:0;
		width:100%;
		height:auto;
		bottom:24px;
	}

.timeline_overlay_surface--resource .timeline_resource_guide
	{
		position:absolute;
		left:1px;
		z-index:1;
		width:24px;
		box-sizing:border-box;
		background:color-mix(in srgb, var(--color-surface-solid) 82%, transparent);
		color:currentColor;
	}

body.mode-real .timeline_overlay_surface--resource .timeline_resource_guide
	{
		background:color-mix(in srgb, var(--color-surface-solid) 68%, transparent);
	}

.timeline_overlay_surface--resource .timeline_resource_guide.resource-tomatoes
	{ color:var(--color-chart-tomato); }

.timeline_overlay_surface--resource .timeline_resource_guide.resource-credits
	{ color:var(--color-chart-credit); }

.timeline_overlay_surface--resource .timeline_resource_guide.resource-seeds
	{ color:var(--color-chart-seed); }

.timeline_overlay_surface--resource .timeline_resource_guide.resource-tech
	{ color:var(--color-chart-tech-owned); }

.timeline_overlay_surface--resource .timeline_resource_guide_axis
	{
		position:absolute;
		top:3px;
		bottom:3px;
		left:2px;
		width:18px;
		border-right:1px solid currentColor;
	}

.timeline_overlay_surface--resource .timeline_resource_guide_axis::before,
.timeline_overlay_surface--resource .timeline_resource_guide_axis::after
	{
		content:"";
		position:absolute;
		right:-1px;
		width:6px;
		border-top:1px solid currentColor;
	}

.timeline_overlay_surface--resource .timeline_resource_guide_axis::before
	{ top:0; }

.timeline_overlay_surface--resource .timeline_resource_guide_axis::after
	{ bottom:0; }

.timeline_overlay_surface--resource .timeline_resource_guide_axis b
	{
		position:absolute;
		right:7px;
		font-size:7px;
		line-height:1;
		text-align:right;
	}

.timeline_overlay_surface--resource .timeline_resource_guide_maximum
	{ top:0; transform:translateY(-30%); }

.timeline_overlay_surface--resource .timeline_resource_guide_minimum
	{ bottom:0; transform:translateY(30%); }

.timeline_overlay_surface--resource .timeline_resource_guide .resource_entity_icon
	{
		position:absolute;
		top:50%;
		left:2px;
		width:16px;
		height:16px;
		transform:translateY(-50%);
		--action-icon-accent:currentColor;
		--action-icon-highlight:currentColor;
		--action-icon-leaf:currentColor;
		--action-icon-seed:currentColor;
		--action-icon-coin:currentColor;
		--action-icon-coin-inner:currentColor;
		--action-icon-tech:currentColor;
	}

.timeline_overlay_surface--resource .timeline_resource_guide .resource_entity_icon--tomatoes
	[data-tone="produce"]
	{
		color:currentColor;
		stroke:currentColor;
	}

#controller.logged-in #timeline_day_labels
	{
		height:18px;
		margin-top:0;
	}

/* Marketplace is a shared disclosure, independent of the legacy economy panel slots. */
#inventory_panel[data-retired-panel] { display: none !important; }
#marketplace_browser.marketplace_catalog,
#plant_chooser.marketplace_catalog {
 position: fixed; inset: 50% auto auto 50%; transform: translate(-50%, -50%);
 width: min(440px, calc(100vw - 24px)); height: auto; max-height: calc(100dvh - 24px);
 box-sizing: border-box; overflow: auto; z-index: 1200; padding: 16px;
 border: 1px solid var(--color-text-muted, #687164); border-radius: 12px;
 background: var(--color-surface-solid, #fff); color: var(--color-text, #253521);
 box-shadow: 0 8px 40px #0005; font-size: 14px; line-height: 1.4;
}
/* Marketplace and Planter share gesture policy, including dynamic descendants
   and nested scroll containers: no double-tap zoom; keep scrolling and pinch. */
.marketplace_catalog, .marketplace_catalog * { touch-action:manipulation; }
.marketplace_catalog[hidden] { display: none !important; }
.marketplace_catalog header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.marketplace_catalog .catalog_header { position:relative; }
.catalog_header > h2 { opacity:0; }
.catalog_header_content { position:absolute; left:0; top:0; display:flex; align-items:center; gap:8px; pointer-events:none; }
.catalog_header_title { flex:none; white-space:nowrap; }
.catalog_header_resources { display:flex; flex:none; align-items:center; gap:5px; line-height:1; white-space:nowrap; }
.catalog_header_resources time { font-weight:bold; }
.catalog_header_resources .resource_ribbon { width:auto; height:1.4em; display:flex; border:1px solid var(--color-border); border-radius:var(--catalog-radius,0); background:var(--color-surface); }
.catalog_header_resources .resource_ribbon_cell { padding:0 2px; gap:1px; }
.catalog_header_resources .resource_ribbon_values { font-size:1em; }
.catalog_header_resources .resource_ribbon_icon { width:1.2em; height:1.2em; flex-basis:1.2em; }
.catalog_header_content[data-layout="stacked"] { flex-direction:column; align-items:flex-start; justify-content:center; gap:2px; }
.marketplace_catalog h2 { margin: 0; font-size: 20px; }
.marketplace_catalog label { display:flex; flex-direction:column; gap:4px; margin:8px 0; min-width:0; }
.marketplace_catalog select, .marketplace_catalog input, .marketplace_catalog button {
 box-sizing:border-box; min-height:44px; max-width:100%; font:inherit; padding:7px 10px; border-radius:6px;
}
.marketplace_catalog select, .marketplace_catalog input { width:100%; background:var(--color-surface-solid); color:var(--color-text); border:1px solid var(--color-border); }
#marketplace_confirm, #plant_chooser_confirm { width:100%; }
#marketplace_feedback, #plant_chooser_feedback { min-height:1.4em; font-weight:600; }
#marketplace_context, #marketplace_instances { color:var(--color-text-muted, #53604f); }

#plant_chooser_feedback:empty, #marketplace_feedback:empty { display:none; }
#plant_chooser.plant_chooser_dismissing :disabled { pointer-events:none; }
#plant_chooser_feedback, #marketplace_feedback { padding:10px; border:1px solid var(--color-border); border-radius:6px; background:var(--color-surface-solid); }
@keyframes plant-chooser-content-fade { from { opacity:1; } to { opacity:0; } }
@keyframes marketplace-content-fade { from { opacity:1; } to { opacity:.1; } }
@keyframes plant-chooser-surface-fade { to { background-color:transparent; border-color:transparent; box-shadow:0 8px 40px #0000; } }
#plant_chooser.plant_chooser_dismissing { animation:plant-chooser-surface-fade 500ms linear forwards; }
#plant_chooser.plant_chooser_dismissing > :not(#plant_chooser_feedback) { animation:plant-chooser-content-fade 500ms linear forwards; }
#marketplace_browser.marketplace_dismissing > :not(header):not(#marketplace_feedback):not(#marketplace_result_actions) { animation:marketplace-content-fade 500ms linear forwards; }
#plant_chooser.plant_chooser_dismissing > #plant_chooser_feedback, #marketplace_browser.marketplace_dismissing > #marketplace_feedback { opacity:1; }
@media (prefers-reduced-motion:reduce) {
 #plant_chooser.plant_chooser_dismissing, #plant_chooser.plant_chooser_dismissing > :not(#plant_chooser_feedback), #plant_chooser.plant_chooser_dismissing > #plant_chooser_feedback,
 #marketplace_browser.marketplace_dismissing, #marketplace_browser.marketplace_dismissing > :not(header):not(#marketplace_feedback):not(#marketplace_result_actions), #marketplace_browser.marketplace_dismissing > #marketplace_feedback { animation:none; }
}

/* Multi-item categories retain the existing four summary surfaces. */
.resource_category_total { flex-shrink:0; margin-left:0.3em; font-size:0.7em; font-weight:normal; }
.resource_ribbon_values > b, .resource_ribbon_separator { flex-shrink:0; }
#timeline_tooltip .resource_category_breakdown { grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; gap:2px 10px; font-size:11px; }
#timeline_tooltip .resource_category_breakdown > b { min-width:42px; }
#timeline_tooltip .resource_category_item { display:inline-flex; align-items:center; gap:3px; white-space:nowrap; font-variant-numeric:tabular-nums; }
#timeline_tooltip .resource_category_item svg { width:15px; height:15px; flex:none; }

.marketplace_connection { position:fixed; z-index:1199; pointer-events:none; margin:0; padding:0; border:0; background:var(--color-control); }

/* Exact item changes share the existing Weekly box; quantities fit as one set. */
.timeline_weekly_resource_event.has-item-changes { gap:2px; }
.timeline_weekly_item_change { display:inline-flex; align-items:center; gap:1px; min-width:0; }
.timeline_weekly_item_change svg { width:12px; height:12px; flex:0 0 12px; }
.timeline_weekly_item_delta { font:800 8px/1 system-ui,sans-serif; white-space:nowrap; }
.has-item-changes[data-show-values="false"] .timeline_weekly_item_delta { display:none; }
.timeline_weekly_resource_event.has-item-changes[data-resource="seeds"] { overflow:hidden; gap:0; padding-left:var(--weekly-seed-space, 0px); }
.timeline_weekly_resource_event.has-item-changes > .resource_entity_icon { position:absolute; left:-8px; top:-3px; width:30px; height:calc(100% + 6px); max-width:none; max-height:none; flex:none; }

.has-item-changes[data-show-values="false"] .timeline_weekly_item_change svg { flex-shrink:1; min-width:0; }

/* A lone signed Seed change takes priority over decorative marker spacing. */
.has-item-changes[data-value-overlay="true"] .timeline_weekly_item_delta { position:absolute; right:1px; bottom:1px; z-index:1; background:var(--color-surface); }

/* Catalog shape is a mode contract, shared by panes, details and toggle thumb. */
.marketplace_catalog { --catalog-radius:6px; --catalog-radius-small:4px; --catalog-toggle-radius:999px; }
body.mode-simulation .marketplace_catalog { --catalog-radius:0px; --catalog-radius-small:0px; --catalog-toggle-radius:0px; }
/* Shared catalog workbench with domain-specific previews. */
:is(#marketplace_browser,#plant_chooser).marketplace_catalog { --catalog-surface-inset:12px; padding:var(--catalog-surface-inset); overflow:hidden; font-size:18px; container:catalog-surface / inline-size; }
:is(#marketplace_browser,#plant_chooser) h2 { font-size:25px; }
#marketplace_context { margin:2px 0 8px; font-size:14px; }
.catalog_workbench { display:grid; grid-template-columns:minmax(0,.95fr) minmax(min-content,1.05fr); gap:6px; }
:is(#marketplace_browser,#plant_chooser)[data-narrow="true"] .catalog_workbench { grid-template-columns:minmax(0,1fr); gap:6px; }
.catalog_choices,.catalog_preview { position:relative; min-width:0; box-sizing:border-box; padding:var(--catalog-pane-padding,6px); border-radius:var(--catalog-radius-small); background:color-mix(in srgb,var(--color-surface-elevated) 55%,var(--color-surface-solid)); }
.catalog_choices::after,.catalog_preview::after { content:""; position:absolute; pointer-events:none; z-index:2; inset:calc(2px - var(--catalog-pane-outline,2px)); border:2px solid var(--color-border-strong); border-radius:var(--catalog-radius-small); }
.catalog_choices::after { right:calc(-1 * var(--catalog-pane-half-gap,3px)); }
.catalog_preview::after { left:calc(-1 * var(--catalog-pane-half-gap,3px)); }
:is(#marketplace_browser,#plant_chooser)[data-narrow="true"] .catalog_choices::after { right:calc(2px - var(--catalog-pane-outline,2px)); bottom:calc(-1 * var(--catalog-pane-half-gap,3px)); }
:is(#marketplace_browser,#plant_chooser)[data-narrow="true"] .catalog_preview::after { left:calc(2px - var(--catalog-pane-outline,2px)); top:calc(-1 * var(--catalog-pane-half-gap,3px)); }
.catalog_tiles { display:grid; gap:6px; }
.marketplace_catalog .catalog_tile { width:100%; display:grid; grid-template-columns:36px max-content minmax(0,1fr); align-items:center; gap:8px; text-align:left; padding:8px; min-height:54px; }
.catalog_tile[hidden] { display:none; }
.catalog_tile > svg { width:36px; height:36px; flex:none; }
.catalog_tile_name { flex:1; min-width:0; font-weight:bold; }
.catalog_holding { font-size:36px; line-height:1; font-variant-numeric:tabular-nums; }
.catalog_tile small,.catalog_directions small { display:block; font-size:14px; }
.catalog_metrics { display:flex; justify-content:flex-end; gap:8px; font-size:14px; white-space:nowrap; }
.catalog_metrics > span { display:flex; flex:0 0 var(--catalog-metric-width,48px); min-width:0; justify-content:flex-end; align-items:center; gap:4px; }
.catalog_metrics svg { width:24px; height:24px; }
.catalog_preview h3 { display:none; }
.catalog_preview h3 svg { width:30px; height:30px; }
.catalog_lifecycle { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:5px 0 8px; font-size:15px; }
.catalog_lifecycle > span { flex:1; border-top:3px solid var(--color-border); padding-top:3px; }
.catalog_lifecycle small { display:flex; align-items:center; justify-content:center; gap:4px; padding-inline:4px; font-size:13px; white-space:nowrap; }
.catalog_stage_name,.catalog_retention { flex-shrink:0; }
.catalog_stage_name[hidden] { display:none; }
.catalog_retention { display:inline-flex; align-items:center; gap:1px; }
.catalog_retention svg { width:13px; height:13px; }
.catalog_milestone_date { display:block; white-space:nowrap; }
.catalog_lifecycle_card { border:1px solid var(--color-border); border-radius:var(--catalog-radius); padding:11px 6px 2px; margin-bottom:8px; background:var(--color-surface-solid); }
.catalog_directions { position:relative; isolation:isolate; display:flex; gap:0; padding:3px; border:1px solid var(--color-border); border-radius:var(--catalog-toggle-radius); background:var(--color-surface-elevated); box-shadow:inset 0 1px 3px #0003; }
#marketplace_direction button { position:relative; z-index:1; flex:0 0 35%; min-width:0; border:0; border-radius:var(--catalog-toggle-radius); box-shadow:none; transform:none; padding:4px 2px; overflow-wrap:anywhere; }
#marketplace_direction button.is-primary { flex-basis:65%; }
#marketplace_direction { --buy-width:65%; --thumb-left:0%; --thumb-width:var(--buy-width); }
#marketplace_direction[data-default="sell"] { --buy-width:35%; }
#marketplace_direction[data-selection="sell"] { --thumb-left:var(--buy-width); --thumb-width:calc(100% - var(--buy-width)); }
#marketplace_direction::before { content:""; position:absolute; z-index:0; top:3px; bottom:3px; left:calc(var(--thumb-left) + 3px); width:calc(var(--thumb-width) - 6px); border-radius:var(--catalog-toggle-radius); background:var(--color-control); box-shadow:0 1px 3px #0005, inset 0 1px 0 #ffffff50; transition:left 180ms ease,width 180ms ease,opacity 120ms ease; pointer-events:none; }
#marketplace_direction[data-selection="none"]::before { opacity:0; }
@media (prefers-reduced-motion:reduce) { #marketplace_direction::before { transition:none; } }
#marketplace_direction button:focus-visible { outline:2px solid var(--color-control); outline-offset:2px; }
.catalog_directions b { font-weight:600; }
.catalog_quantity { display:grid; grid-template-columns:36px minmax(0,1fr) 36px; align-items:center; column-gap:4px; margin-top:4px; }
.marketplace_catalog .catalog_quantity button { padding:0; }
.marketplace_catalog .catalog_quantity input { padding:0; border:0; background:none; accent-color:var(--color-control); }
:is(#marketplace_browser,#plant_chooser)[data-actionable="false"] .catalog_quantity,
:is(#marketplace_browser,#plant_chooser)[data-actionable="false"] .catalog_transaction,
:is(#marketplace_browser,#plant_chooser)[data-actionable="false"] #marketplace_facts,
:is(#marketplace_browser,#plant_chooser)[data-actionable="false"] #marketplace_preview { visibility:hidden; }
:is(#marketplace_browser,#plant_chooser)[data-single-quantity="true"] .catalog_quantity { visibility:hidden; }
.catalog_balance strong { font-size:27px; overflow-wrap:anywhere; }
.catalog_balance strong:last-child { text-align:right; }
.catalog_balance_change { display:flex; align-items:center; justify-content:center; gap:4px; }
.catalog_delta { font-size:15px; font-weight:bold; white-space:nowrap; }
.catalog_delta.resource-delta--positive { color:var(--color-chart-health); }
.catalog_delta.resource-delta--negative { color:var(--color-danger); }
.catalog_delta.resource-delta--zero { color:var(--color-warning); }
.catalog_reason { font-size:14px; margin:4px 0; }
.catalog_confirm { margin-top:8px; font-weight:bold; }
#marketplace_facts .catalog_delta { font-size:24px; }
#marketplace_preview .catalog_delta { font-size:15px; }
#plant_chooser[data-actionable="false"] #plant_chooser_inventory { visibility:hidden; }
.catalog_pages { display:flex; justify-content:center; align-items:center; gap:8px; margin-top:6px; }
.catalog_pages[hidden],.catalog_lifecycle[hidden] { display:none; }
.catalog_sr_only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
:is(#marketplace_browser,#plant_chooser)[data-narrow="true"] .catalog_workbench { grid-template-columns:1fr; gap:6px; }
:is(#marketplace_browser,#plant_chooser)[data-compact="true"] { --catalog-surface-inset:8px; padding:var(--catalog-surface-inset); font-size:15px; line-height:1.15; }
:is(#marketplace_browser,#plant_chooser)[data-compact="true"] button, :is(#marketplace_browser,#plant_chooser)[data-compact="true"] input { min-height:36px; padding:3px 6px; }
:is(#marketplace_browser,#plant_chooser)[data-compact="true"] h2 { font-size:20px; }
:is(#marketplace_browser,#plant_chooser)[data-compact="true"] .catalog_balance strong { font-size:23px; }
:is(#marketplace_browser,#plant_chooser)[data-compact="true"] .catalog_confirm { margin-top:3px; }
:is(#marketplace_browser,#plant_chooser)[data-compact="true"] .catalog_lifecycle { margin:3px 0; }
:is(#marketplace_browser,#plant_chooser)[data-compact="true"] .catalog_preview h3 { margin:0 0 2px; }
:is(#marketplace_browser,#plant_chooser)[data-compact="true"] .catalog_lifecycle small { font-size:12px; }
:is(#marketplace_browser,#plant_chooser)[data-compact="true"] .catalog_quantity { margin-top:0; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] h2 { font-size:17px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] #marketplace_context { margin:0 0 3px; font-size:12px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_preview h3 svg { width:20px; height:20px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_tile { grid-template-columns:26px max-content minmax(0,1fr); padding:3px; gap:3px; min-height:34px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_tile > svg { width:26px; height:26px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_metrics { gap:8px; font-size:12px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_metrics > span { flex-basis:var(--catalog-metric-width,44px); }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_metrics svg { width:19px; height:19px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_tile small { font-size:12px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_tile_name { overflow-wrap:anywhere; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_directions button { min-height:32px; padding:1px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_directions small { font-size:10px; letter-spacing:-.5px; line-height:10px; min-height:10px; overflow-wrap:normal; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_quantity { grid-template-columns:24px minmax(0,1fr) 24px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_quantity input, :is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_quantity button { min-height:26px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_balance strong { font-size:19px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_delta { font-size:12px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_confirm { min-height:29px; padding:2px; margin-top:1px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_pages { gap:3px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_pages button { min-height:30px; padding:2px 8px; }

/* Shared feedback typography; Marketplace success overlays fading content to fit short views. */
#plant_chooser_context { margin:2px 0 8px; font-size:14px; color:var(--color-text-muted); }
.catalog_plant_date { font-size:14px; }
.catalog_lifecycle_heading { position:relative; display:flex; align-items:flex-start; justify-content:space-between; gap:8px; font-size:14px; min-height:1.3em; }
.catalog_lifecycle_heading .catalog_plant_date { flex:none; white-space:nowrap; }
/* Reserve only the disclosure width; the optional label must not widen the preview column. */
.catalog_max_yield { margin-left:auto; flex:none; width:20px; min-height:1em; line-height:1; white-space:nowrap; }
.catalog_max_yield_label { position:absolute; right:0; }
.catalog_max_yield_label[hidden], :is(#marketplace_browser,#plant_chooser) .catalog_max_yield .catalog_value_trigger[hidden] { display:none; }
:is(#marketplace_browser,#plant_chooser) .catalog_max_yield .catalog_value_trigger { width:20px; height:20px; min-height:0; padding:0; border:0; vertical-align:top; }
.catalog_max_yield .catalog_value_hint { position:static; display:inline-block; }
.catalog_lifecycle_heading .catalog_max_yield { position:static; }
.catalog_max_yield .catalog_value_detail { left:auto; right:0; bottom:auto; top:100%; white-space:normal; min-width:100px; }
#plant_chooser_feedback, #marketplace_feedback { margin:6px 0 0; line-height:1.3; }
#marketplace_browser.marketplace_dismissing #marketplace_feedback { position:absolute; left:var(--catalog-surface-inset); right:var(--catalog-surface-inset); bottom:var(--catalog-surface-inset); width:auto; box-sizing:border-box; z-index:2; }
:is(#plant_chooser,#marketplace_browser)[data-compact="true"] > :is(#plant_chooser_feedback,#marketplace_feedback) { padding:6px; }

.catalog_choice_row[hidden] { display:none !important; }
.catalog_tile { container:catalog-tile / inline-size; }
.catalog_choices { container:catalog-choices / inline-size; }
.catalog_choice_row.has-action { display:grid; grid-template-columns:minmax(64px,.4fr) minmax(0,1fr); align-items:stretch; gap:4px; }
.catalog_item_action { font-size:13px; }


:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_holding { font-size:26px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] #marketplace_facts .catalog_delta { font-size:18px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] #marketplace_preview .catalog_delta { font-size:12px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_lifecycle_card { padding:6px 1px 2px; margin-bottom:6px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_lifecycle { margin:0; font-size:12px; gap:4px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_lifecycle > span { border-top-width:2px; padding-top:0; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_choice_row.has-action { grid-template-columns:minmax(44px,.3fr) minmax(0,1fr); gap:2px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_item_action { padding:2px; font-size:12px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] :is(.catalog_plant_date,.catalog_lifecycle_heading) { font-size:12px; }

:is(#marketplace_browser,#plant_chooser)[data-tight="true"] header button { min-height:24px; padding:1px 5px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_preview h3 { font-size:14px; margin:0; display:none; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_lifecycle small { font-size:11px; gap:4px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_retention svg { width:10px; height:10px; }
#plant_chooser_facts:empty { display:none; }

:is(#marketplace_browser,#plant_chooser)[data-tight="true"] { --catalog-surface-inset:2px; padding:var(--catalog-surface-inset); font-size:13px; line-height:1.1; }
#plant_chooser_inventory { min-height:68px; }
#plant_chooser[data-compact="true"] #plant_chooser_inventory { min-height:58px; }
#plant_chooser[data-tight="true"] #plant_chooser_inventory { min-height:44px; }


/* Shared comparison columns retain their order in stacked and side-by-side layouts. */
.catalog_metrics { grid-column:1 / -1; }

/* Preserve readable names and comparison metrics inside constrained columns. */
@container catalog-choices (max-width:170px) {
 :is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_metrics { gap:2px; }
 :is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_metrics > span { gap:1px; }
 :is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_metrics svg { width:14px; height:14px; }
}
@container catalog-tile (max-width:155px) {
 :is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_tile_name { grid-column:1 / -1; overflow-wrap:normal; }
 .catalog_holding { grid-column:2 / -1; }
}
@container catalog-tile (max-width:110px) {
 :is(#marketplace_browser,#plant_chooser)[data-tight="true"] .catalog_holding { font-size:22px; }
}

/* Shared vertical density is measured independently of horizontal fit. */
.catalog_sale_value { border-top:1px solid var(--color-border); margin-top:2px; padding-top:2px; font-size:12px; }
.catalog_sale_rate { display:flex; align-items:center; gap:4px; white-space:nowrap; }
.catalog_sale_rate svg { width:18px; height:18px; flex:none; }
.catalog_sale_value > small { display:block; color:var(--color-text-muted); margin-top:2px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] { --catalog-pane-padding:8px; --catalog-surface-inset:8px; padding:var(--catalog-surface-inset); line-height:1.3; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] header { padding-bottom:12px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] .catalog_workbench { gap:12px; --catalog-pane-outline:5px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] .catalog_tiles { gap:8px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] .catalog_tile { padding-block:8px; row-gap:8px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] .catalog_lifecycle_card { padding:8px 4px 2px; margin-bottom:12px; background:var(--color-surface-elevated); }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] .catalog_lifecycle_heading { margin-bottom:8px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] .catalog_lifecycle > span { padding-top:6px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] .catalog_milestone_date { margin-bottom:4px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] .catalog_confirm,
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] header button,
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] .catalog_directions button,
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] .catalog_quantity button,
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] .catalog_quantity input { min-height:44px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] .catalog_quantity { grid-template-columns:40px minmax(0,1fr) 40px; margin:0 0 8px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] .catalog_confirm { margin-top:12px; padding:6px 4px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] .catalog_reason { margin-block:8px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"] .catalog_directions small { line-height:1.3; }

/* Height pressure reduces vertical space, without changing the shared text/icon scale. */
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"][data-spacing="snug"] { --catalog-pane-padding:4px 6px; --catalog-surface-inset:4px; padding:var(--catalog-surface-inset); }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"][data-spacing="snug"] header { padding-bottom:4px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"][data-spacing="snug"] .catalog_workbench,
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"][data-spacing="snug"] .catalog_tiles { gap:6px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"][data-spacing="snug"] .catalog_tile { padding-block:3px; row-gap:4px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"][data-spacing="snug"] .catalog_lifecycle_card { padding-block:0 2px; margin-bottom:4px; }
:is(#marketplace_browser,#plant_chooser)[data-spacing="snug"] .catalog_lifecycle_heading { margin-bottom:0; min-height:0; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"][data-spacing="snug"] .catalog_lifecycle > span { padding-top:0; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"][data-spacing="snug"] .catalog_milestone_date { margin-bottom:0; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"][data-spacing="snug"] .catalog_sale_value { margin-top:2px; padding-top:2px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"][data-spacing="snug"] .catalog_quantity { margin-bottom:2px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"][data-spacing="snug"] .catalog_confirm { margin-top:4px; }
:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"][data-spacing="snug"] :is(.catalog_confirm,header button,.catalog_directions button,.catalog_quantity button,.catalog_quantity input) { min-height:40px; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"] { --catalog-pane-padding:4px; padding-block:2px; line-height:1.1; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"] .catalog_lifecycle_card { padding-block:0 2px; margin-bottom:0; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"] .catalog_lifecycle_heading { font-size:12px; line-height:1; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"] .catalog_lifecycle { margin-block:0; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"] .catalog_lifecycle > span { padding-top:0; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"] .catalog_confirm { min-height:29px; padding-block:2px; margin-top:1px; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"] .catalog_directions button { min-height:32px; padding-block:1px; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"] .catalog_quantity input,
:is(#marketplace_browser,#plant_chooser)[data-density="compact"] .catalog_quantity button { min-height:26px; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"] header button { min-height:24px; padding-block:1px; }

:is(#marketplace_browser,#plant_chooser)[data-density="comfortable"][data-tight="true"] .catalog_directions small { min-height:16px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="false"] .catalog_sale_value { display:flex; align-items:center; justify-content:space-between; gap:8px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="false"] .catalog_sale_value > small { margin-top:0; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"] .catalog_quantity { margin-top:0; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"] .catalog_sale_value { margin-top:2px; }
#marketplace_lifecycle:not(.catalog_lifecycle_card):not([hidden]) { padding:8px 4px; margin-bottom:12px; border:1px solid var(--color-border); border-radius:var(--catalog-radius); background:var(--color-surface-elevated); }
#marketplace_browser[data-density="compact"] #marketplace_lifecycle:not(.catalog_lifecycle_card):not([hidden]) { padding-block:4px; margin-bottom:6px; }

/* Restore common section geometry independently when measured height permits. */
:is(#marketplace_browser,#plant_chooser)[data-density][data-spacing="snug"][data-room-header="true"] { --catalog-surface-inset:8px; padding:var(--catalog-surface-inset); }
:is(#marketplace_browser,#plant_chooser)[data-density][data-spacing="snug"][data-room-header="true"] header { padding-bottom:12px; }
:is(#marketplace_browser,#plant_chooser)[data-density][data-spacing="snug"][data-room-header="true"] header button { min-height:44px; }
:is(#marketplace_browser,#plant_chooser)[data-density][data-spacing="snug"][data-room-lifecycle="true"] .catalog_lifecycle_card { padding-block:8px 2px; margin-bottom:12px; }
:is(#marketplace_browser,#plant_chooser)[data-density][data-spacing="snug"][data-room-lifecycle="true"] .catalog_lifecycle > span { padding-top:6px; }
:is(#marketplace_browser,#plant_chooser)[data-density][data-spacing="snug"][data-room-lifecycle="true"] .catalog_milestone_date { margin-bottom:4px; }
:is(#marketplace_browser,#plant_chooser)[data-density][data-spacing="snug"][data-room-lifecycle="true"] .catalog_sale_value { margin-top:2px; padding-top:2px; }
:is(#marketplace_browser,#plant_chooser)[data-density][data-spacing="snug"][data-room-tiles="true"] .catalog_workbench { gap:12px; }
:is(#marketplace_browser,#plant_chooser)[data-density][data-spacing="snug"][data-room-tiles="true"] .catalog_tiles { gap:8px; }
:is(#marketplace_browser,#plant_chooser)[data-density][data-spacing="snug"][data-room-tiles="true"] .catalog_tile { padding-block:8px; row-gap:8px; }
:is(#marketplace_browser,#plant_chooser)[data-density][data-spacing="snug"][data-room-transaction="true"] :is(.catalog_confirm,.catalog_directions button,.catalog_quantity button,.catalog_quantity input) { min-height:44px; }
:is(#marketplace_browser,#plant_chooser)[data-density][data-spacing="snug"][data-room-transaction="true"] .catalog_quantity { margin-bottom:8px; }
:is(#marketplace_browser,#plant_chooser)[data-density][data-spacing="snug"][data-room-transaction="true"] .catalog_confirm { margin-top:12px; }

/* Shared canonical icon and resource-impact grammar. */
:is(#marketplace_browser,#plant_chooser) { --catalog-icon-size:36px; --catalog-credit-size:24px; }
:is(#marketplace_browser,#plant_chooser)[data-tight="true"] { --catalog-icon-size:26px; --catalog-credit-size:19px; }
:is(#marketplace_browser,#plant_chooser) .catalog_sale_value { display:block; }
:is(#marketplace_browser,#plant_chooser) .catalog_sale_rate { display:flex; flex-wrap:nowrap; white-space:nowrap; gap:3px; font-size:12px; }
:is(#marketplace_browser,#plant_chooser) .catalog_tile > svg,
:is(#marketplace_browser,#plant_chooser) .catalog_balance_icon svg { width:var(--catalog-icon-size); height:var(--catalog-icon-size); flex:none; }
.catalog_impact,#plant_chooser_inventory { width:clamp(80%,var(--catalog-impact-width,80%),100%); margin-inline:auto; padding:0; box-sizing:border-box; }
:is(#marketplace_browser,#plant_chooser) .catalog_balance { position:relative; display:grid; grid-template-columns:calc(var(--catalog-icon-size) + 12px) minmax(0,1fr); gap:6px; padding:3px 6px; min-height:32px; box-sizing:border-box; border:1px solid var(--color-border); border-radius:var(--catalog-radius); }
#marketplace_facts .catalog_balance { border-bottom:0; border-radius:var(--catalog-radius) var(--catalog-radius) 0 0; }
#marketplace_preview .catalog_balance { border-radius:0 0 var(--catalog-radius) var(--catalog-radius); }
:is(#marketplace_browser,#plant_chooser) .catalog_balance_values { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:16px; min-width:0; }
:is(#marketplace_browser,#plant_chooser) .catalog_balance_symbol { padding:0; line-height:1.2; }
.catalog_balance_icon { display:flex; align-items:center; justify-content:center; }
.catalog_balance_icon[data-primitive="seed"] svg { transform:scale(1.45); }
.catalog_value strong,.catalog_holding { white-space:nowrap; }
.catalog_value { min-width:0; }
.catalog_value:last-child { text-align:right; }
:is(#marketplace_browser,#plant_chooser) .catalog_balance_caption { display:flex; justify-content:space-between; font-size:12px; margin:0 0 3px; padding-left:calc(var(--catalog-icon-size) + 25px); padding-right:7px; }
:is(#marketplace_browser,#plant_chooser) .catalog_value_trigger { position:relative; display:inline-block; max-width:100%; box-sizing:border-box; min-height:0; padding:2px; border:1px dotted var(--color-border); border-radius:var(--catalog-radius-small); background:transparent; color:var(--color-text); font:inherit; }

.catalog_value_hint { position:absolute; right:-4px; top:-6px; font-size:9px; border:1px solid currentColor; border-radius:50%; width:10px; height:10px; line-height:10px; background:var(--color-surface-solid); text-align:center; }
@container catalog-surface (max-width:400px) {
 :is(#marketplace_browser,#plant_chooser)[data-narrow="false"] .catalog_sale_rate { font-size:10px; gap:1px; }
 :is(#marketplace_browser,#plant_chooser)[data-narrow="false"] :is(.catalog_choices,.catalog_preview) { padding:4px 2px; }
}
.catalog_value_detail { position:absolute; z-index:5; left:0; right:0; bottom:100%; padding:8px; border:1px solid var(--color-border); border-radius:var(--catalog-radius); background:var(--color-surface-solid); color:var(--color-text); box-shadow:0 2px 8px #0005; font-size:13px; text-align:left; }
.catalog_value_detail[hidden] { display:none; }
:is(#marketplace_browser,#plant_chooser) .catalog_value_close { display:block; margin-top:6px; min-height:30px; }
#marketplace_browser[data-single-quantity="true"] .catalog_transaction { display:grid; }
#marketplace_browser[data-single-quantity="true"] .catalog_quantity { grid-area:1 / 1; align-self:start; }
#marketplace_browser[data-single-quantity="true"] .catalog_impact { grid-area:1 / 1; align-self:center; }
#marketplace_browser[data-single-quantity="true"] .catalog_transaction { min-height:var(--catalog-single-impact-height); }

.catalog_transaction { padding:0; border:0; margin-top:4px; }

:is(#marketplace_browser,#plant_chooser) .catalog_metrics > span:first-child svg { width:var(--catalog-credit-size); height:var(--catalog-credit-size); }
:is(#marketplace_browser,#plant_chooser)[data-impact-headings="false"] .catalog_balance_caption { display:none; }
/* Only after headings and the comfortable spacing tiers fail to fit. */
:is(#marketplace_browser,#plant_chooser)[data-density="compact"] { --catalog-icon-size:26px; --catalog-credit-size:19px; }
:is(#marketplace_browser,#plant_chooser)[data-spacing="snug"] .catalog_balance { min-height:26px; padding-block:0; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"] .catalog_balance strong { font-size:19px; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"] .catalog_sale_value { margin-top:2px; padding-top:2px; }

:is(#marketplace_browser,#plant_chooser)[data-narrow="true"] .catalog_workbench { --catalog-pane-outline:2px; }

/* Stacked catalogs have room for readable labels without changing canonical icons. */
:is(#marketplace_browser,#plant_chooser)[data-narrow="true"][data-density="comfortable"] .catalog_tile_name { font-size:15px; }
:is(#marketplace_browser,#plant_chooser)[data-narrow="true"][data-density="comfortable"] :is(.catalog_confirm,.catalog_directions button) { font-size:14px; }
#marketplace_browser[data-density][data-spacing="snug"][data-room-lifecycle="true"] #marketplace_lifecycle:not(.catalog_lifecycle_card):not([hidden]) { padding-block:8px; margin-bottom:12px; }
/* Compact layouts reclaim smaller section increments before trying roomy sections. */
:is(#marketplace_browser,#plant_chooser)[data-density="compact"][data-room-header="snug"] { --catalog-surface-inset:4px; padding:var(--catalog-surface-inset); }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"][data-room-header="snug"] header { padding-bottom:4px; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"][data-room-header="snug"] header button { min-height:40px; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"][data-room-lifecycle="snug"] .catalog_lifecycle_card { margin-bottom:4px; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"][data-room-lifecycle="snug"] .catalog_lifecycle > span { padding-top:3px; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"][data-room-lifecycle="snug"] .catalog_milestone_date { margin-bottom:2px; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"][data-room-transaction="snug"] :is(.catalog_confirm,.catalog_directions button,.catalog_quantity button,.catalog_quantity input) { min-height:40px; }
:is(#marketplace_browser,#plant_chooser)[data-density="compact"][data-room-transaction="snug"] .catalog_confirm { margin-top:4px; }
#marketplace_browser[data-density="compact"][data-room-lifecycle="snug"] #marketplace_lifecycle:not(.catalog_lifecycle_card):not([hidden]) { padding-block:6px; margin-bottom:8px; }

/* Post-commit catalog phases do not participate in pre-commit layout. */
#marketplace_result_actions[hidden] { display:none; }
#marketplace_result_actions { position:absolute; inset:0; pointer-events:none; }
#marketplace_result_actions > * { position:absolute; box-sizing:border-box; margin:0; }
#marketplace_result_actions button { pointer-events:auto; }
#marketplace_result_question { font-size:.95em; line-height:1.3; font-weight:normal; text-align:center; }
#marketplace_browser.marketplace_dismissing:not(.marketplace_result_ready) #marketplace_result_actions { visibility:hidden; }
#marketplace_browser.marketplace_result_ready > :not(header):not(#marketplace_feedback):not(#marketplace_result_actions) { opacity:.1; }
#marketplace_browser.marketplace_dismissing #marketplace_feedback { bottom:auto; right:auto; margin:0; }
#plant_chooser.plant_chooser_result { container-type:normal; animation:none; background:transparent; border:0; box-shadow:none; padding:0; min-height:0; overflow:visible; }
#plant_chooser.plant_chooser_result > :not(#plant_chooser_feedback) { display:none; }
#plant_chooser.plant_chooser_result #plant_chooser_feedback { padding:4px; margin:0; min-height:0; box-sizing:border-box; cursor:pointer; }

/* Locked categories retain their launcher slot without exposing catalog actions. */
#controller [data-market-category][data-catalog-access="locked"] > :not(.market_locked_label) { display:none !important; }
#controller [data-market-category] .market_locked_label {
 display:flex;align-items:center;justify-content:center;gap:4px;
 width:100%;height:100%;font-size:clamp(10px, 1.4vw, 14px);line-height:1.1;
 color:var(--color-text);white-space:nowrap;
}
#controller [data-market-category] .market_locked_label[hidden] { display:none; }

@container (max-width:54px) {
 #controller [data-market-category] .market_locked_label { writing-mode:vertical-rl; }
}
