/* ================================================================================================================= */
/* CSS Variables & Theme */
/* ================================================================================================================ */

body {
	--widget-bg-color: #FFFFFF;
	--widget-sec-bg-color: #F9F9F9;
	--widget-list-border: #EEEEEE;
	--widget-overlay-bg-color: rgba(206,214,222, 0.6);
	--byte-ui-modal-full-overlay-bg: white;
}

body.theme_dark {
	--byte-ui-modal-full-overlay-bg: darkslategray;
	--widget-bg-color: #000000;
	--widget-sec-bg-color: #212121;
	--widget-list-border: #333333;
	--widget-label-color: #2F2F2F;
	--widget-overlay-bg-color: rgba(0,0,0, 0.6);
}

/* ================================================================================================================= */
/* Base Styles */
/* ================================================================================================================ */

body {
	margin: 0;
	padding: 0;
	font-family: 'Albert Sans', sans-serif;
}

#app {
	height: 100vh;
	display: flex;
}

/* ================================================================================================================= */
/* App Navigation - Agencies/Clients Column */
/* ================================================================================================================ */

.app-navigation {
	width: 80px;
	background-color: #F5F5F5;
	border-right: 1px solid #E0E0E0;
	display: flex;
	overflow-y: auto;
	height: 100vh;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 1000;
	transition: all 0.3s ease;
}

.app-navigation.nav-expanded {
	width: 160px;
}

.app-navigation:not(.nav-expanded) {
	width: 80px;
}

/* Agencies Column */
.agencies-column {
	width: 50%;
	background: #FFFFFF;
	border-right: 1px solid #E0E0E0;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.agencies-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 10px;
	border-bottom: 1px solid #E0E0E0;
	background: #FAFAFA;
}

.agencies-title {
	font: 600 8px/8px 'Albert Sans', sans-serif;
	letter-spacing: 0.5px;
	color: #666666;
}

.collapse-btn {
	color: #666666;
}

.agencies-list {
	flex: 1;
	overflow-y: auto;
	padding: 8px 0;
}

.agency-group {
	margin-bottom: 16px;
}

.agency-name {
	font: 600 8px/8px 'Albert Sans', sans-serif;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	/* text-align: center; */
	color: #333333;
	padding: 8px 10px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 6px;
	position: relative;
}

.agency-edit-icon {
	opacity: 0;
	transition: opacity 0.2s ease;
	cursor: pointer;
	color: #666666;
}

.agency-name:hover .agency-edit-icon {
	opacity: 1;
}

.agency-edit-icon:hover {
	color: #1976D2;
}

.client-item {
	padding: 10px;
	font: 500 6px/8px 'Albert Sans', sans-serif;
	letter-spacing: 0.4px;
	text-transform: uppercase;
	/* text-align: center; */
	color: #555555;
	cursor: pointer;
	transition: all 0.2s ease;
	display: flex;
	align-items: center;
	justify-content: space-between;
	/* gap: 6px; */
	position: relative;
}

.client-item.client-add {
	padding: 10px 9px;
}

.client-edit-icon {
	opacity: 0;
	transition: opacity 0.2s ease;
	cursor: pointer;
	color: #666666;
}

.client-item:hover .client-edit-icon {
	opacity: 1;
}

.client-edit-icon:hover {
	color: #1976D2;
}

.client-item:hover {
	background: #F5F5F5;
	border-left-color: #1976D2;
}

.client-item.client-active {
	background: #E3F2FD;
	font-weight: 500;
}

/* Phases Column */
.phases-column {
	flex: 1;
	display: flex;
	flex-direction: column;
	overflow-y: auto;
}

.context-button {
	padding: 10px;
	border-bottom: 1px solid #E0E0E0;
	background: #FAFAFA;
}

.context-toggle-btn {
	font: 600 8px/8px 'Albert Sans', sans-serif;
	letter-spacing: 0.5px;
	color: #666666;
	width: 100%;
	justify-content: flex-start;
}

.context-text {
	width: 100%;
	overflow-wrap: break-word;
}

.nav-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 16px 8px;
	text-decoration: none;
	color: #666666;
	cursor: pointer;
	transition: all 0.2s ease;
	border-left: 3px solid transparent;
	border-bottom: 1px solid #E0E0E0;
	position: relative;
}

.nav-item:hover {
	background: #e8e8e8;
	border-left-color: #1976d2;
}

.nav-item.active {
	background: #1976d2;
	border-left-color: #1976d2;
	color: white;
	font-weight: 500;
}

.nav-text {
	font: 600 8px/8px 'Albert Sans', sans-serif;
	letter-spacing: 0.5px;
	text-align: center;
	margin-top: 4px;
}

.nav-phase {
	margin-bottom: 4px;
	border-bottom: 1px solid #e0e0e0;
}

.nav-phase .phase-header {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 16px 8px;
	text-decoration: none;
	color: #666;
	cursor: pointer;
	transition: all 0.2s ease;
	border-left: 3px solid transparent;
	position: relative;
}

.phase-header:hover {
	background: #e8e8e8;
	border-left-color: #1976d2;
}

.phase-header.phase-active {
	background: #1976d2;
	border-left-color: #1976d2;
	color: white;
	font-weight: 500;
}

.phase-header .expand-icon {
	margin-left: auto;
	position: absolute;
	bottom: 4px;
	right: 4px;
}

.phase-steps {
	background: #fafafa;
	padding: 0;
}

.nav-step {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 12px 4px;
	text-decoration: none;
	color: #666666;
	font-size: 9px;
	transition: all 0.2s ease;
	border-left: 3px solid transparent;
	border-top: 1px solid #e8e8e8;
	position: relative;
}

.nav-step:hover {
	background: #e8e8e8;
	border-left-color: #1976d2;
}

.nav-step.active {
	background: #1976d2;
	border-left-color: #1976d2;
	color: white;
	font-weight: 500;
}

.step-text {
	font: 500 6px/8px 'Albert Sans', sans-serif;
	letter-spacing: 0.4px;
	text-align: center;
	margin-top: 4px;
}

.nav-step .help-icon {
	opacity: 0.5;
	transition: opacity 0.2s ease;
	position: absolute;
	top: 4px;
	right: 4px;
	opacity: 0.6;
}

.nav-step:hover .help-icon {
	opacity: 1;
}

.expand-enter-active,
.expand-leave-active {
	transition: all 0.3s ease;
	max-height: 500px;
	overflow: hidden;
}

.expand-enter-from,
.expand-leave-to {
	max-height: 0;
	opacity: 0;
}

.expand-enter-to,
.expand-leave-from {
	max-height: 500px;
	opacity: 1;
}

/* ================================================================================================================= */
/* Informative Panel */
/* ================================================================================================================ */

.informative-panel {
	width: 320px;
	background-color: white;
	border-right: 1px solid #e0e0e0;
	height: 100vh;
	position: fixed;
	left: 80px;
	top: 0;
	z-index: 999;
	box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);
	overflow-y: auto;
}

.panel-content {
	padding: 24px;
	position: relative;
}

.panel-close-btn {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 10;
}

/* Panel Step Content */
.panel-step-content {
	display: flex;
	flex-direction: column;
	/* gap: 24px; */
}

.panel-header {
	margin-bottom: 8px;
}

.panel-phase-title {
	font-size: 14px;
	font-weight: 400;
	color: #666;
	margin-bottom: 4px;
}

.panel-phase-subtitle {
	font-size: 18px;
	font-weight: 600;
	color: #212121;
	line-height: 1.3;
}

.panel-step-title {
	display: flex;
	align-items: center;
	gap: 12px;
	font-weight: 600;
	color: #212121;
	padding-top: 12px;
	border-top: 2px solid #f0f0f0;
}

.panel-description {
	font: 300 14px/18px 'Albert Sans', sans-serif;
	color: #424242;
	margin: 0;
}

.panel-actions {
	margin: 10px 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.panel-section {
	/* background: #fafafa;
	border-radius: 8px;
	padding: 16px; */
}

.panel-section-title {
	margin-bottom: 15px;
	font: 500 13px/15px 'Albert Sans', sans-serif;
	color: #212121;
}

.panel-best-practice {
	background: #F4F4F4;
	padding: 15px;
	margin-bottom: 20px;
	transition: all 0.2s ease;
}

.panel-best-practice:last-child {
	margin-bottom: 0;
}

.panel-best-practice.has-issue {}

.practice-header {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 12px;
}

.practice-title {
	font: 500 12px/13px 'Albert Sans';
	letter-spacing: 0.5px;
	color: #212121;
}

.practice-content {
	/* margin-left: 28px; */
}

.practice-description {
	margin: 0 0 8px 0;
	font: 300 10px/12px 'Albert Sans';
	color: #000000;
	opacity: .7;
}

.practice-description:last-child {
	margin-bottom: 0;
}

.practice-issue {
	background: #fff8e1;
	border-left: 3px solid #f9a825;
	padding: 10px;
	margin-top: 10px;
}

.practice-issue p {
	font-size: 13px;
	color: #424242;
	margin: 0 0 8px 0;
	font-weight: 500;
}

.practice-issue .q-btn {
	font-size: 12px;
	font-weight: 600;
}

/* ================================================================================================================= */
/* Main Content & Toolbar */
/* ================================================================================================================ */

.main-content {
	min-height: 100vh;
	max-width: calc(100vw - 80px);
	background-color: #ffffff;
	display: flex;
	flex-direction: column;
}

.app-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 24px;
	background-color: #f5f5f5;
	border-bottom: 1px solid #e0e0e0;
}

.toolbar-title {
	font-size: 20px;
	font-weight: 500;
	color: #333;
}

.toolbar-actions {
	display: flex;
	align-items: center;
	gap: 8px;
}

.page-content {
	flex: 1;
}

/* ================================================================================================================= */
/* Transitions */
/* ================================================================================================================ */

.slide-enter-active,
.slide-leave-active {
	transition: transform 0.3s ease;
}

.slide-enter-from,
.slide-leave-to {
	transform: translateX(-100%);
}

.slide-enter-to,
.slide-leave-from {
	transform: translateX(0);
}

/* ================================================================================================================= */
/* Phase 1 - Drag and Drop Styles */
/* ================================================================================================================ */

.audience-container {
	max-width: 1200px;
}

/* Overview Section Styles */
.overview-card {
	border: 1px solid #e0e0e0;
	box-shadow: unset;
}

.overview-container {
	display: flex;
	flex-wrap: wrap;
	gap: 50px;
}

.overview-container .overview-item {
	position: relative;
	flex: 1 1 400px; /* Allow wrapping, minimum 400px */
	min-width: 0; /* Prevent overflow */
}

.overview-container .overview-item:before {
	content: '';
	position: absolute;
	width: 100%;
	height: 25px;
	left: 0;
	bottom: 0;
	background: #FFFFFF;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
}

.audience-select .q-field__control, .usecase-select .q-field__control {
	min-height: 32px;
	padding: 4px 8px;
}

.common-use-cases-list {
	max-height: 350px;
	overflow-y: auto;
	background-color: #F9F9F9;
	border: .5px solid #A9A9A9;
	padding: 12px 10px;
}

.use-case-row {
	background: #FFFFFF;
	border-radius: 4px;
	border: .5px solid #A9A9A9;
	padding: 4px 4px 3px 4px;
}

.use-case-row:last-of-type {
	/* margin-bottom: 25px; */
}

.percent-badge {
	font-weight: 500;
	width: 45px;
	text-align: right;
	font-size: 12px;
}

.use-case-name {
	font-size: 13px;
	font-weight: 600;
}

.draggable-list {
	min-height: 20px;
}
.draggable-list .q-card {
    border-radius: unset;
}

.draggable-list .draggable-list .draggable-list {
    margin-left: 75px;
}

.group-card .row {
	align-items: stretch;
    font: 600 13px/15px 'Albert Sans', sans-serif;
    text-transform: uppercase;
    letter-spacing: .6px;
}

.group-card .q-btn {
	border-radius: 0;
}

.group-card .q-btn.add-button {
	padding: 0px 5px;
}

.group-card .q-btn .q-btn__content {
	display: flex;
	align-items: center;
    font: 500 8px/10px 'Albert Sans', sans-serif;
    color: #000000;
}
.draggable-list .draggable-list .q-btn {
    background-color: #EAEAEA;
	border-top: .5px solid #A9A9A9;
    border-bottom: .5px solid #A9A9A9;
}
.draggable-list .draggable-list .q-btn.close-button {
    border-right: .5px solid #A9A9A9;
    border-radius: 0 4px 4px 0;
	padding: 0 5px;
}
.draggable-list .draggable-list .draggable-list .q-btn {
    background-color: #F9F9F9;
}

.audience-group {
	transition: all 0.3s ease;
}

.audience-group .add-group-button {
	padding: 0;
}

.audience-group .add-group-button .q-btn {
	border-radius: 4px;
}
.audience-group .add-group-button .q-btn .q-btn__content {
	font: 600 13px/15px 'Albert Sans', sans-serif;
	border-radius: 4px;
	justify-content: flex-start;
	padding: 3px 10px 2px 5px;
}

.audience-card .row {
	align-items: stretch;
    font: 500 14px/17px 'Albert Sans', sans-serif;
    text-transform: unset;
}
.audience-card .row input {
    padding: 5.25px 11px;
    font: 500 14px/17px 'Albert Sans', sans-serif;
}
.audience-card .row .percent-field input {
    padding: 0;
}
.audience-header .navigable-input:not(.percent-field) {
    background-color: #EAEAEA;
    border-radius: 4px 0 0 4px;
	/* padding: 8px 10px 6px 10px; */
}
.audience-header .navigable-input.view-mode .input-display {
	padding: 8px 10px 6px 10px;
}
.audience-header .navigable-input.view-mode:not(.percent-field) {
    border: .5px solid #A9A9A9;
    border-right: unset;
}
.audience-header .navigable-input.active-mode .input-display {
	padding: 8px 10px 6px 10px;
}
.audience-header .navigable-input.focused-mode input {
	padding: 0px 10px;
	height: 35px;
}

.audience-card .q-btn {
	background-color: rgb(234, 234, 234);
	border-radius: 0;
}

.audience-card .q-btn .q-btn__content {
	display: flex;
	align-items: center;
}

.cursor-move {
	cursor: move;
}

.ghost {
	opacity: 0.5;
	background: #f5f5f5;
}

.chosen {
	opacity: 0.8;
	background: #e3f2fd;
}

.drag {
	opacity: 0.9;
}

.percent-input input {
	text-align: right;
}

.drag-handle-group:hover, .drag-handle-audience:hover, .drag-handle-usecase:hover {
	color: #1976d2;
}

/* Smooth transitions */
.audience-item, .use-case-item {
	transition: all 0.2s ease;
}
.use-case-item .row {
    font: 400 14px/17px 'Albert Sans', sans-serif;
    letter-spacing: .7px;
}

/* Hover effects */
.audience-card:hover {
	box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.use-case-item .navigable-input:not(.percent-field) {
    background-color: #F9F9F9;
    border: .5px solid #A9A9A9;
    border-right: unset;
    border-radius: 4px 0 0 4px;
}
.use-case-item .common-tag {
	display: none;
    font: 400 9px/11px 'Albert Sans', sans-serif;
    letter-spacing: .45px;
    border-radius: 0;
    background-color: #F9F9F9;
    border-top: .5px solid #A9A9A9;
    border-bottom: .5px solid #A9A9A9;
}
.use-case-item .common-tag span {
    border-radius: 10px;
    background-color: #E6E6E6;
    border: .5px solid #D9D9D9;
    color: #4E4E4E;
    padding: 2px 5px;
}

/* Use Case Autocomplete Dropdown */
.use-case-autocomplete {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background-color: white;
	border: 1px solid #ccc;
	border-radius: 4px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
	max-height: 200px;
	overflow-y: auto;
	z-index: 1000;
	margin-top: 2px;
}

.autocomplete-item {
	padding: 8px 12px;
	cursor: pointer;
	font-size: 14px;
	font-family: 'Albert Sans', sans-serif;
	color: #333;
	transition: background-color 0.15s ease;
}

.autocomplete-item:hover,
.autocomplete-item.selected {
	background-color: #e3f2fd;
	color: #1976d2;
}

.autocomplete-item:not(:last-child) {
	border-bottom: 1px solid #f0f0f0;
}

/* ================================================================================================================= */
/* Phase 1 - Keyboard Navigation States */
/* ================================================================================================================= */

/* group edits */
.group-header {
    background-color: #DBDBDB;
    border-radius: 4px !important;
}
/* Navigable Input - View Mode (default) */
.navigable-input {
	position: relative;
	transition: all 0.2s ease;
}
.navigable-input:not(.percent-field) {
    flex: 1;
}
.navigable-input.percent-field {
    width: 65px;
    margin-right: 10px;
    text-align: right;
}
.navigable-input.percent-field.view-mode {
    border-bottom: .5px solid #000000;
}

.navigable-input.view-mode .input-display {
	display: block;
	padding: 9px 10px 7px 10px;
	cursor: pointer;
	border: 2px solid transparent;
	height: 100%;
}

.navigable-input.view-mode .input-display:empty::before {
	content: attr(data-placeholder);
	color: #999;
	font-style: italic;
}

.navigable-input.view-mode .q-input {
	display: none;
}

/* Navigable Input - Active Mode (keyboard navigated) */
.navigable-input.active-mode .input-display {
	display: block;
	padding: 9px 10px 7px 10px;
	cursor: pointer;
	border: 2px solid #1976d2;
	background-color: #e3f2fd;
    border-radius: 4px;
	height: 100%;
}

.navigable-input.focused-mode input {
	padding: 2px 10px 1px 10px;
	height: 35px;
}

.navigable-input.active-mode .q-input {
	display: none;
}

/* Navigable Input - Focused Mode (editing) */
.navigable-input.focused-mode .input-display {
	display: none;
}

.navigable-input.focused-mode .q-input {
	display: block;
}

.navigable-input.focused-mode .q-field__control {
	border: 2px solid #4caf50;
	border-radius: 4px;
    height: unset;
}

/* Row highlighting when any child is active */
.row-active {
	/* background-color: rgba(25, 118, 210, 0.03); */
	border-left: 3px solid #1976d2;
	padding-left: 5px;
}

/* ================================================================================================================= */
/* Phase 2 - Table Styles */
/* ================================================================================================================ */

.phase2-content-table {
	border: 1px solid #e0e0e0;
}

.phase2-content-table .q-table__top {
	border-bottom: 2px solid #e0e0e0;
}

.phase2-content-table thead tr {
	background-color: #f5f5f5;
}

.phase2-content-table th {
	font-weight: 600;
	font-size: 11px;
	letter-spacing: 0.5px;
	padding: 12px 16px;
}

.phase2-content-table td {
	padding: 12px 16px;
	vertical-align: middle;
}

.phase2-content-table tbody tr:hover {
	background-color: #f9f9f9;
}

.phase2-content-table .q-linear-progress {
	border-radius: 10px;
	overflow: hidden;
}

/* ================================================================================================================= */
/* Phase 3 - Hierarchical Sitemap Editor Styles */
/* ================================================================================================================ */

.phase3-container {
	height: 100%;
	overflow: hidden;
}

.phase3-content {
	display: flex;
	height: 100%;
	overflow: hidden;
}

/* Left Panel: Sample Pages */
.sample-pages-panel {
	width: 200px;
	flex-shrink: 0;
	background: #f8f8f8;
	border-right: 1px solid #ddd;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.sample-pages-panel .panel-header {
	padding: 16px;
	background: #fff;
	border-bottom: 1px solid #ddd;
}

.sample-pages-list {
	flex: 1;
	overflow-y: auto;
	padding: 8px;
}

.sample-page-item {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px;
	margin-bottom: 6px;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 4px;
	cursor: move;
	font-size: 12px;
	transition: all 0.2s ease;
}

.sample-page-item:hover {
	background: #f0f0f0;
	border-color: #999;
}

.sample-page-item .page-type-icon {
	width: 20px;
	text-align: center;
	font-weight: bold;
	color: #666;
}

.sample-page-item .sample-page-name {
	flex: 1;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Right Panel: Sitemap Editor */
.sitemap-editor-panel {
	flex: 1;
	display: flex;
	flex-direction: column;
	overflow: scroll;
}

.sitemap-editor-panel .panel-header {
	padding: 16px;
	background: #fff;
}

.sitemap-content {
	flex: 1;
	overflow-x: auto;
	overflow-y: auto;
	padding: 16px;
	display: flex;
	flex-direction: column;
	width: fit-content;
}

/* Navigation Section */
.navigation-section {
	margin-bottom: 25px;
	min-width: fit-content;
}

.navigation-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0;
	margin-bottom: 8px;
	width: 100%;
}

.navigation-name-input {
	flex: 1;
	border: none;
	background: transparent;
	font-size: 18px;
	font-weight: 600;
	padding: 0;
	outline: none;
}

.navigation-name-input:focus {
	background: #fff;
	border-radius: 4px;
}

.navigation-actions {
	display: flex;
	gap: 4px;
}

/* Primary Pages Container - Horizontal Layout */
.primary-pages-container {
	display: flex;
	gap: 16px;
	overflow: visible;
	align-items: flex-start;
	width: fit-content;
}

/* Page Wrapper - Controls layout direction */
.page-wrapper {
	flex-shrink: 0;
}

/* Level 1: Horizontal layout */
.page-wrapper.level-1 {
	display: inline-block;
	vertical-align: top;
	width: 170px;
}

/* Level 2+: Vertical with indentation */
.page-wrapper.level-2,
.page-wrapper.level-3,
.page-wrapper.level-4 {
	display: block;
}

/* Page Item */
.page-item {
	width: 170px;
	background: linear-gradient(to bottom, #C8C8C8, #B8B8B8);
	border: 1px solid #999999;
	border-radius: 6px;
	cursor: pointer;
	position: relative;
	transition: all 0.2s ease;
	font-size: 12px;
}

.page-wrapper > div:first-child {
	width: 100%;
}

.page-item:hover {
	border-color: #888;
	box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}

/* Stacked Effect */
.page-wrapper:has( .stacked) {
	z-index: 1;
}

.page-item.stacked {
	position: relative;
}

.page-item.stacked::before, .page-item.stacked::after {
	content: '';
	position: absolute;
	width: calc(100% + 2px);
	height: calc(100% + 2px);
	left: 3px;
	bottom: -5px;
	border: 1px solid #BBBBBB;
	background-color: #D8D8D8;
	border-radius: 6px;
	z-index: -1;
}

.page-item.stacked::after {
	left: 1px;
	bottom: -3px;
}

.page-item.stacked:hover::before, .page-item.stacked:hover::after {
	border-color: #888;
}

/* Hidden State */
.page-item.hidden {
	opacity: 0.5;
	display: block !important;
}

/* Dragging State */
.page-item.dragging {
	opacity: 0.4;
	transform: scale(0.95);
}

body.dragging-page .page-item {
	transition: all 0.2s ease;
}

/* Drag Zones */
.page-item.drag-over-left {
	border-left: 4px solid #4caf50;
	box-shadow: -4px 0 12px rgba(76, 175, 80, 0.4);
}

.page-item.drag-over-right {
	border-right: 4px solid #2196f3;
	box-shadow: 4px 0 12px rgba(33, 150, 243, 0.4);
}

/* Drop Zone Labels */
.drop-zone-label {
	position: absolute;
	top: -24px;
	background: rgba(0, 0, 0, 0.8);
	color: white;
	padding: 4px 8px;
	border-radius: 4px;
	font-size: 11px;
	font-weight: 600;
	white-space: nowrap;
	z-index: 100;
	pointer-events: none;
}

.drop-zone-label.left {
	left: 0;
}

.drop-zone-label.right {
	right: 0;
}

/* Page Header */
.page-header {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 4px 4px 2px 0;
	padding: 0 0 0 5px;
	line-height: 1.4;
}

.page-type-icon {
	text-align: center;
	font-weight: bold;
	color: #555;
	flex-shrink: 0;
}

.page-title {
	flex: 1;
	font-weight: 600;
	line-height: 17px;
	height: 23px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.page-title[contenteditable="true"] {
	background: #fff;
	padding: 2px 4px;
	border-radius: 3px;
	border: 1px solid #2196f3;
	white-space: normal;
	overflow: visible;
	text-overflow: unset;
}

/* Page Compact Info */
.page-note {
	font-style: italic;
	color: #333333;
	overflow-wrap: break-word;
	font-size: 11px;
	margin-top: 5px;
	padding: 0 5px;
	line-height: 1.3;
}

.page-sections-summary {
	padding: 5px;
}

.section-bullet {
	font-size: 11px;
	color: #333333;
	line-height: 1.4;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Page Menu */
.page-menu {
	position: relative;
	width: 100%;
	background: #f5f5f5;
	border-radius: 0 0 4px 4px;
	padding: 5px;
	z-index: 50;
	box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

.menu-row {
	margin-bottom: 8px;
}

.menu-row:last-child {
	margin-bottom: 0;
}

.menu-row label {
	display: block;
	font-size: 11px;
	font-weight: 600;
	margin-bottom: 4px;
	color: #555;
}

.menu-row input[type="text"],
.menu-row input:not([type="checkbox"]),
.menu-row select {
	width: 100%;
	padding: 6px 8px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 12px;
	font-family: inherit;
}

.menu-row input[type="checkbox"] {
	margin-right: 6px;
}

.menu-row select {
	cursor: pointer;
}

/* Sections List in Menu */
.sections-list {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.section-input-row {
	display: flex;
	align-items: center;
	gap: 4px;
}

.section-input-row input {
	flex: 1;
}

.add-section-btn {
	width: 100%;
	padding: 5px;
	background: #e0e0e0;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-weight: 500;
}

/* Menu Actions */
.menu-actions {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 12px;
	padding-top: 8px;
	border-top: 1px solid #ddd;
}

/* Children Container - Vertical with Indentation */
.children-container {
	position: relative;
	margin: 0 0 0 10px;
}

.level-2 .children-container {
	margin: 0 0 0 10px;
}

.children-container .page-wrapper {
	margin-top: 8px;
}
.children-container .page-item {
	background: linear-gradient(to bottom, #E8E8E8, #D8D8D8);
	border-color: #BBBBBB;
}

/* Add Page Box */
.add-page-box {
	width: 170px;
	background: #f0f0f0;
	border: 2px dashed #999;
	border-radius: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	opacity: 0.3;
	transition: all 0.2s ease;
	flex-shrink: 0;
}

.add-page-box:hover {
	opacity: 1;
	background: #e8e8e8;
	border-color: #666666;
}

.add-page-box .add-page-text {
	font-size: 12px;
	color: #666666;
}

/* Drag Over States for Sample Pages */
body.dragging-sample .add-page-box {
	opacity: 1;
}

body.dragging-sample .page-item {
	transition: all 0.2s ease;
}

/* Responsive: Horizontal Scrolling */
@media (max-width: 1200px) {
	.primary-pages-container {
		flex-wrap: nowrap;
	}
}

/* ================================================================================================================= */
/* Byte UI Modal Styles (Auth) */
/* ================================================================================================================ */

#byte-ui-modal-exclusivity {
	z-index: 90001;
	position: fixed;
	top: 0px;
	left: 0%;
	width: 100vw;
	height: 100vh;
	background-color: var(--byte-ui-modal-full-overlay-bg);
	opacity: .5;
	pointer-events: unset;
}

#byte-ui-modal {
	z-index: 4999;
	z-index: 90001;
	position: fixed;
	top: 3px;
	left: 50%;
	width: 50%;
	margin-left: -25%;
	perspective: 1000px;
}

#byte-ui-modal .notification_area.new-class {
	transform: rotateX(0deg);
}

#byte-ui-modal .notification_area {
	display: flex;
	position: relative;
	padding: 5px 13px;
	gap: 10px;
	align-items: center;
	text-shadow: white 0 1px 0;
	text-shadow: var(--widget-bg-color) 0 1px 0;
	text-decoration: none;
	width: 100%;
	overflow: hidden;
	margin: 0 auto 4px auto;
	border-radius: 50px;
	background: linear-gradient(top, var(--widget-bg-color) 0%, var(--widget-sec-bg-color) 100%);
	background: -webkit-linear-gradient(top, var(--widget-bg-color) 0%, var(--widget-sec-bg-color) 100%);
	box-shadow: 0 -1px 0 var(--widget-bg-color) inset, 0px 10px 20px rgba(0,0,0,0.2);
	transform-origin: 0 -10px;
	transform: rotateX(-90deg);
	transition: transform 70ms linear;
	text-align: center;
}

#byte-ui-modal .notification_area .choices_area {
	padding-top: 2px;
	text-align: center;
	padding-bottom: 8px;
}

#byte-ui-modal .notification_area .choices_area button {
	margin-right: 5px;
}

#byte-ui-modal .notification_area .input_area {
	display: flex;
	align-items: center;
	justify-content: center;
}

#byte-ui-modal .notification_area .input_area input {
	max-height: 24px;
	margin: 0;
	padding: 0 0.5rem;
	font-size: 0.8rem;
	font-weight: normal;
}

#byte-ui-modal .notification_area .input_area label {
	width: 30%;
	width: 25%;
	margin-right: 15px;
	text-align: end;
}

#byte-ui-modal .notification_area .text_area {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	font-size: 12px;
}

#byte-ui-modal .notification_area .text_area strong {
	font-size: 14px;
}

#byte-ui-modal .notification_area .content_area {
	flex: 1 1 100%;
	text-align: center;
}

#byte-ui-modal .notification_area .icon_area {
	display: none;
	height: 100%;
	align-items: center;
	position: relative;
	font-size: 20px;
	color: #38597A;
}

#byte-ui-modal .notification_area .icon_area.notice {
	display: flex;
}

#byte-ui-modal .notification_area .icon_area.success {
	display: flex;
	color: #00cc00;
}

#byte-ui-modal .notification_area .icon_area.warning {
	display: flex;
	color: #d8c306;
}


#byte-ui-modal .notification_area .icon_area.error {
	display: flex;
	color: #a00;
	color: var(--button-warning-color);
}

/* ================================================================================================================= */
/* Dashboard Styles */
/* ================================================================================================================ */

/* Dashboard Chart Container */
.breakdown-graph-container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-around;
}
.breakdown-graph-container > .row {
    width: 100%;
}
.breakdown-graph-container .breakdown-graph-key {
    max-height: 284px;
    overflow: auto;
    position: relative;
}
.breakdown-graph-container .breakdown-graph-key:before {
    content: '';
    position: absolute;
}

.dashboard-chart-container {
	position: relative;
	height: 300px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.chart-center-text {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	text-align: center;
	pointer-events: none;
}

/* Legend */
.legend-color {
	width: 12px;
	height: 12px;
	border-radius: 2px;
	margin-right: 8px;
}

/* Project Timeline */
.project-overview-card {
	border: none;
}

.project-overview-section {
	padding: 0;
	border: none;
	border-radius: 0;
}

.project-timeline {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.phase-group {
	flex: 1;
	min-width: 250px;
	border: 1px solid #e0e0e0;
	border-radius: 4px;
	overflow: hidden;
}

.phase-header {
	color: white;
	padding: 12px;
	font-weight: 600;
	display: flex;
	align-items: center;
	font-size: 14px;
}

.phase-items {
	padding: 12px;
	background: white;
}

.phase-item {
	margin-bottom: 8px;
}

.phase-item:last-child {
	margin-bottom: 0;
}

.phase-item .item-header label {
	font-weight: 600;
	color: #424242;
}

/* recent history */
.recent-history .q-card__section {
	padding-bottom: 11px;
}
.recent-history .text-h6 {
	margin: 0;
}
.recent-history .q-list .q-item {
	padding: 5px;
	min-height: unset;
}
.recent-history .q-list .q-item__section {
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;
	gap: 5px;
}
.recent-history .q-list .q-item .text-caption {
	margin: 0;
}

/* phases and steps */
.project-step-card {
	border: .5px solid #979797;
	background-color: #F4F5F7;
	border-radius: 6px;
	padding: 10px;
}

.project-step-card .text-subtitle1 {
	font: 600 18px/23px 'Plus Jakarta Sans', sans-serif;
}

.project-step-card .text-body2 {
	font: 400 14px/16px 'Albert Sans', sans-serif;
}

.number-start {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font: 400 8px/10px 'Plus Jakarta Sans', sans-serif;
	color: #000000;
}

.number-start button {
	font: 500 8px/10px 'Albert Sans', sans-serif;
	letter-spacing: .25px;
	color: #000000;
	background-color: #FFFFFF;
	border: .5px solid #979797;
	padding: 4px 7px;
	border-radius: 0;
}

/* Responsive adjustments */
@media (max-width: 1024px) {
	.project-timeline {
		flex-direction: column;
	}
	
	.phase-group {
		min-width: 100%;
	}
}

/* ================================================================================================================= */
/* Settings Page Styles */
/* ================================================================================================================ */

.settings-page {
	padding: 24px;
	max-width: 100%;
	height: 100%;
	overflow-y: auto;
}

.settings-container {
	max-width: 800px;
	margin: 0 auto;
}

.settings-page h1 {
	margin-top: 0;
	margin-bottom: 32px;
	color: #1976d2;
}

.settings-page .q-card {
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.settings-page .text-h6 {
	color: #424242;
	font-weight: 600;
}

.settings-page .q-field {
	margin-bottom: 0px;
	padding-bottom: 0px;
}

.settings-page .q-btn {
	min-width: 120px;
}

/* Import/Export Menu Item Hover States */
.import-export-item {
	transition: background-color 0.2s ease;
}

.import-export-item:hover {
	background-color: rgba(25, 118, 210, 0.08) !important;
}

.import-export-item:hover .q-icon {
	transform: scale(1.1);
	transition: transform 0.2s ease;
}

/* ================================================================================================================= */
/* Client Dashboard Page */
/* ================================================================================================================ */

.agency-card {
	transition: box-shadow 0.2s ease;
}

.agency-card:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* users list */

.agency-card .user-item {
	padding: 5px 16px 5px 10px;
}
.agency-card .user-item .q-item__section--avatar {
	min-width: unset;
}

.agency-card .user-item .q-item__section:not(.q-item__section--avatar) {
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;
	gap: 5px;
}
.agency-card .user-item .q-item__section .text-caption {
	margin: 0;
}

/* clients list */

.agency-card .client-item {
	padding: 12px 16px;
	cursor: pointer;
	transition: background-color 0.2s ease;
	border-radius: 4px;
}

.agency-card .client-item:hover {
	background-color: #F5F5F5;
}

.agency-card .client-item.bg-blue-1 {
	background-color: #E3F2FD;
	border-left: 3px solid #2196F3;
}


/* ================================================================================================================= */
/* History Panel Styles */
/* ================================================================================================================ */

.history-panel {
	border: 1px solid #E0E0E0;
	box-shadow: unset;
}
.history-panel .q-card__section {
	padding: 10px;
}

.history-panel .history-content {
	max-height: 400px;
	overflow-y: auto;
	padding: 15px;
}

.history-panel .snapshots-list {}

.snapshots-list .snapshot-item {
	border-top: 1px solid #CCCCCC;
	padding: 2px 0;
}
.snapshots-list .snapshot-item:first-child {
	border-top: none;
	padding-top: 0;
}

.snapshot-item .snapshot-description {
	display: inline;
	margin-right: 5px;
}

.snapshot-item .snapshot-meta {
	display: inline;
}

.history-panel .snapshot-flex {}

.history-panel .snapshot-description {
	font-size: 14px;
	line-height: 1.4;
	color: #333333;
}

.history-panel .snapshot-meta {
	font-size: 12px;
	line-height: 1.3;
}

.history-panel .action-badge {
	background-color: #E3F2FD;
	padding: 2px 6px;
	border-radius: 3px;
	font-size: 11px;
	font-weight: 500;
	color: #1976D2;
}

/* Snapshot restore button styles */
.snapshot-item {
	position: relative;
}

.snapshot-item .snapshot-actions {
	opacity: 0;
	transition: opacity 0.2s ease;
	margin-left: 8px;
}

.snapshot-item:hover .snapshot-actions {
	opacity: 1;
}

.snapshot-actions .q-btn {
	margin: 0;
	padding: 0;
}

/* Dropdown mode adjustments */
.history-dropdown-content .snapshot-item {
	border-top: 1px solid #E0E0E0;
	padding: 8px 0;
}

.history-dropdown-content .snapshot-item:first-child {
	border-top: none;
	padding-top: 0;
}

