add all files

This commit is contained in:
Rucus
2026-02-17 09:29:34 -06:00
parent b8c8d67c67
commit 782d203799
21925 changed files with 2433086 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="300" viewBox="0 0 300 300" fill="none">
<rect width="300" height="300" fill="url(#grad)" opacity="0.6" />
<g stroke="#f0c341" stroke-width="2" opacity="0.25">
<path d="M40 0 C60 60 60 140 40 200 C20 260 20 320 40 380" />
<path d="M120 -40 C140 20 140 100 120 160 C100 220 100 300 120 360" />
<path d="M200 -20 C220 40 220 120 200 180 C180 240 180 320 200 380" />
<path d="M280 -60 C300 0 300 80 280 140 C260 200 260 280 280 340" />
</g>
<defs>
<linearGradient id="grad" x1="0" y1="0" x2="300" y2="300" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#205939" />
<stop offset="1" stop-color="#0b1d11" />
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 755 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

129
lasuca/new/css/farmdata.css Normal file
View File

@@ -0,0 +1,129 @@
:root {
--farmdata-card-bg: rgba(255, 255, 255, 0.94);
--farmdata-card-border: rgba(24, 71, 42, 0.12);
--farmdata-card-shadow: 0 18px 32px rgba(0, 0, 0, 0.16);
}
.farmdata-hero .badge {
letter-spacing: 0.14em;
text-transform: uppercase;
background: rgba(240, 195, 65, 0.24);
color: var(--lasuca-sun-light);
border: 1px solid rgba(240, 195, 65, 0.35);
padding: 8px 16px;
border-radius: 999px;
}
.farmdata-search-card {
background: var(--farmdata-card-bg);
border: 1px solid var(--farmdata-card-border);
border-radius: 24px;
box-shadow: var(--farmdata-card-shadow);
padding: 28px;
margin-bottom: 32px;
}
.farmdata-search-card label {
font-size: 0.78rem;
letter-spacing: 0.12em;
text-transform: uppercase;
font-weight: 600;
color: var(--lasuca-muted);
}
.farmdata-search-card .form-control,
.farmdata-search-card .form-select {
border-radius: 999px;
padding: 10px 16px;
border: 1px solid rgba(24, 71, 42, 0.2);
box-shadow: inset 0 0 0 1px rgba(24, 71, 42, 0.08);
}
.farmdata-search-card .form-check-label {
text-transform: none;
letter-spacing: normal;
font-size: 0.9rem;
color: var(--lasuca-text);
}
.farmdata-metrics {
display: grid;
gap: 18px;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
margin-bottom: 32px;
}
.farmdata-metric {
background: rgba(24, 71, 42, 0.12);
border-radius: 20px;
padding: 20px;
color: var(--lasuca-text);
}
.farmdata-metric h4 {
margin-bottom: 4px;
font-size: 1.1rem;
font-weight: 700;
color: var(--lasuca-cane);
}
.farmdata-metric p {
margin: 0;
color: var(--lasuca-muted);
font-size: 0.9rem;
}
.lasuca-theme.theme-dark .farmdata-metric {
background: rgba(15, 35, 23, 0.55);
color: #fff;
}
.lasuca-theme.theme-dark .farmdata-metric h4 {
color: var(--lasuca-sun-light);
}
.lasuca-theme.theme-dark .farmdata-metric p {
color: rgba(255, 255, 255, 0.7);
}
.farmdata-results-card {
background: var(--farmdata-card-bg);
border: 1px solid var(--farmdata-card-border);
border-radius: 24px;
box-shadow: var(--farmdata-card-shadow);
padding: 24px;
}
.farmdata-results-card .table thead th {
text-transform: uppercase;
letter-spacing: 0.12em;
font-size: 0.72rem;
color: var(--lasuca-muted);
border-bottom-width: 2px;
}
.farmdata-results-card .table tbody td {
vertical-align: middle;
font-weight: 500;
}
.farmdata-results-summary {
display: flex;
flex-wrap: wrap;
gap: 18px;
margin-bottom: 20px;
font-weight: 600;
letter-spacing: 0.05em;
text-transform: uppercase;
color: var(--lasuca-muted);
}
@media (max-width: 767px) {
.farmdata-search-card {
padding: 20px;
}
.farmdata-results-card {
padding: 20px;
}
}

View File

@@ -0,0 +1,113 @@
/* Grower authentication screen styles */
.hero.hero-auth {
padding: 100px 0 40px;
background: radial-gradient(circle at 20% 15%, rgba(240, 195, 65, 0.18) 0%, rgba(15, 35, 23, 0.92) 45%, rgba(11, 25, 17, 0.98) 100%);
}
.hero.hero-auth .badge {
background: rgba(255, 255, 255, 0.16);
border: 1px solid rgba(255, 255, 255, 0.35);
letter-spacing: 0.18em;
text-transform: uppercase;
}
.hero.hero-auth h1 {
max-width: 720px;
}
.auth-section {
position: relative;
margin-top: -60px;
}
.auth-card,
.info-card {
background: rgba(15, 35, 23, 0.9);
border-radius: 24px;
padding: 36px 32px;
border: 1px solid rgba(255, 255, 255, 0.06);
box-shadow: 0 24px 48px rgba(0, 0, 0, 0.28);
color: rgba(255, 255, 255, 0.9);
}
.auth-card .form-label {
font-weight: 600;
letter-spacing: 0.04em;
text-transform: uppercase;
font-size: 0.75rem;
color: rgba(255, 255, 255, 0.65);
}
.auth-card .form-control {
background: rgba(12, 28, 18, 0.85);
border: 1px solid rgba(255, 255, 255, 0.12);
color: #fff;
padding: 14px 16px;
}
.auth-card .form-control:focus {
border-color: var(--lasuca-sun-light);
box-shadow: 0 0 0 0.25rem rgba(240, 195, 65, 0.25);
}
.auth-card .btn-primary {
background: linear-gradient(135deg, var(--lasuca-sun) 0%, var(--lasuca-sun-light) 100%);
border: 0;
color: var(--lasuca-text);
font-weight: 700;
letter-spacing: 0.04em;
}
.auth-title {
font-size: 1.75rem;
font-weight: 700;
margin-bottom: 12px;
}
.auth-subtitle {
color: rgba(255, 255, 255, 0.55);
margin-bottom: 24px;
}
.auth-footnote {
margin-top: 32px;
padding-top: 20px;
border-top: 1px solid rgba(255, 255, 255, 0.12);
color: rgba(255, 255, 255, 0.6);
font-size: 0.95rem;
}
.info-card h3 {
font-weight: 700;
color: var(--lasuca-sun-light);
margin-bottom: 20px;
}
.support-callout {
background: rgba(255, 255, 255, 0.08);
border-radius: 18px;
padding: 20px 22px;
}
.support-callout h4 {
font-size: 1.1rem;
font-weight: 700;
color: #fff;
margin-bottom: 12px;
}
.support-callout a {
color: var(--lasuca-sun-light);
}
@media (max-width: 767px) {
.auth-section {
margin-top: -40px;
}
.auth-card,
.info-card {
padding: 28px 24px;
}
}

View File

@@ -0,0 +1,67 @@
/* Grower dashboard tweaks layered on top of lasuca-theme */
body.lasuca-theme {
background: radial-gradient(circle at top right, rgba(26, 78, 55, 0.85) 0%, rgba(10, 28, 18, 0.96) 100%);
}
.navbar .navbar-brand span {
font-size: 0.85rem;
}
.hero .badge {
background: rgba(255, 255, 255, 0.12);
border: 1px solid rgba(255, 255, 255, 0.3);
color: rgba(255, 255, 255, 0.92);
}
.hero h1 {
letter-spacing: 0.02em;
}
.hero p {
max-width: 720px;
}
.metric-grid .metric-value {
font-size: clamp(1.6rem, 2vw, 2.1rem);
}
.feature-card h3 {
display: flex;
align-items: center;
gap: 12px;
}
.feature-card a.btn-outline-success {
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.feature-card.load-table {
background: var(--lasuca-cream);
}
.feature-card.load-table table thead th {
border-color: rgba(24, 71, 42, 0.24);
}
.feature-card.load-table table tbody td {
border-color: rgba(24, 71, 42, 0.12);
}
.load-time {
display: inline-block;
margin-left: 6px;
color: var(--lasuca-muted);
}
@media (max-width: 767px) {
.metric-grid {
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}
.feature-card.load-table .btn {
width: 100%;
}
}

View File

@@ -0,0 +1,235 @@
:root {
--grower-card-bg: rgba(255, 255, 255, 0.92);
--grower-card-border: rgba(24, 71, 42, 0.18);
--grower-card-shadow: 0 18px 34px rgba(0, 0, 0, 0.18);
}
body.lasuca-theme.grower-portal main {
padding-bottom: 80px;
}
.grower-quick-links {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 16px;
background: var(--grower-card-bg);
border-radius: 20px;
padding: 18px 24px;
border: 1px solid var(--grower-card-border);
box-shadow: var(--grower-card-shadow);
margin-bottom: 28px;
}
.grower-quick-links .quick-links-info {
display: flex;
flex-direction: column;
gap: 4px;
color: var(--lasuca-text);
}
.grower-quick-links .quick-links-info strong {
font-size: 0.95rem;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.grower-quick-links .quick-links-user {
font-size: 0.9rem;
color: var(--lasuca-muted);
}
.grower-quick-links .quick-links-actions {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.grower-quick-links .quick-links-button {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 8px 18px;
border-radius: 999px;
font-weight: 600;
letter-spacing: 0.04em;
text-transform: uppercase;
font-size: 0.78rem;
border: 1px solid rgba(31, 92, 60, 0.4);
color: var(--lasuca-cane);
background: rgba(31, 92, 60, 0.08);
text-decoration: none;
transition: all 0.2s ease;
}
.grower-quick-links .quick-links-button:hover {
color: #fff;
background: var(--lasuca-cane);
border-color: var(--lasuca-cane);
}
.grower-quick-links .quick-links-button.logout {
border-color: rgba(201, 78, 59, 0.4);
color: #b33b26;
background: rgba(201, 78, 59, 0.12);
}
.grower-quick-links .quick-links-button.logout:hover {
background: #b33b26;
color: #fff;
}
.grower-files-card,
.grower-account-card {
background: var(--grower-card-bg);
border-radius: 24px;
padding: 28px;
border: 1px solid var(--grower-card-border);
box-shadow: var(--grower-card-shadow);
}
.grower-files-card .file-browser-header {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
gap: 16px;
margin-bottom: 20px;
}
.grower-files-card .file-browser-summary {
font-size: 0.95rem;
color: var(--lasuca-muted);
margin-bottom: 0.25rem;
}
.grower-files-card .file-browser-actions {
display: flex;
gap: 10px;
flex-wrap: wrap;
}
.grower-files-card .file-browser-actions .btn {
text-transform: uppercase;
letter-spacing: 0.08em;
font-size: 0.75rem;
}
.grower-files-card .breadcrumb {
background: rgba(24, 71, 42, 0.06);
border-radius: 999px;
padding: 10px 18px;
margin-bottom: 18px;
}
.grower-files-card .breadcrumb-item + .breadcrumb-item::before {
color: rgba(24, 71, 42, 0.35);
}
.grower-files-card .breadcrumb-item a {
color: var(--lasuca-cane);
text-decoration: none;
}
.grower-files-card .breadcrumb-item.active {
color: var(--lasuca-muted);
}
.grower-files-card .table thead th {
text-transform: uppercase;
letter-spacing: 0.12em;
font-size: 0.72rem;
color: var(--lasuca-muted);
border-bottom-width: 2px;
}
.grower-files-card .table tbody td {
vertical-align: middle;
}
.grower-files-card .badge {
font-weight: 600;
letter-spacing: 0.08em;
}
.grower-files-card .file-empty {
text-align: center;
padding: 60px 20px;
color: var(--lasuca-muted);
font-style: italic;
}
.grower-account-card h3 {
font-size: 1.1rem;
font-weight: 700;
color: var(--lasuca-cane);
}
.grower-account-summary dl {
margin: 0;
}
.grower-account-summary dt {
font-size: 0.82rem;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--lasuca-muted);
}
.grower-account-summary dd {
margin-bottom: 18px;
font-weight: 600;
color: var(--lasuca-text);
}
.recent-file-list {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 10px;
}
.recent-file-list li {
display: flex;
flex-direction: column;
gap: 4px;
padding: 12px 14px;
border-radius: 14px;
background: rgba(24, 71, 42, 0.06);
}
.recent-file-list a {
font-weight: 600;
color: var(--lasuca-cane);
text-decoration: none;
}
.recent-file-list a:hover {
text-decoration: underline;
}
.recent-file-list .activity-date {
font-size: 0.82rem;
color: var(--lasuca-muted);
}
@media (max-width: 767px) {
.grower-files-card,
.grower-account-card {
padding: 22px;
}
.grower-quick-links {
padding: 16px 18px;
}
.grower-files-card .file-browser-header {
flex-direction: column;
align-items: stretch;
}
.grower-files-card .file-browser-actions {
justify-content: flex-start;
}
}

157
lasuca/new/css/home.css Normal file
View File

@@ -0,0 +1,157 @@
.hero-home {
position: relative;
padding: 160px 0 140px;
background: linear-gradient(
135deg,
rgba(11, 25, 17, 0.85) 0%,
rgba(31, 92, 60, 0.72) 55%,
rgba(24, 71, 42, 0.85) 100%
),
url('/images/handling3-2-large.jpg') center/cover no-repeat;
overflow: hidden;
}
.hero-home::after {
content: "";
position: absolute;
inset: 0;
background: radial-gradient(
circle at 12% 18%,
rgba(240, 195, 65, 0.25) 0%,
rgba(11, 25, 17, 0) 55%
);
pointer-events: none;
}
.hero-home .container {
position: relative;
z-index: 0;
}
.hero-card {
background: rgba(249, 244, 232, 0.92);
border-radius: 24px;
padding: 32px 28px;
box-shadow: 0 24px 40px rgba(0, 0, 0, 0.22);
border: 1px solid rgba(24, 71, 42, 0.16);
}
.hero-card h3 {
color: var(--lasuca-cane);
font-weight: 700;
margin-bottom: 20px;
}
.hero-footnote {
margin-top: 20px;
font-size: 0.75rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--lasuca-muted);
}
.section-cream {
background: var(--lasuca-cream);
color: var(--lasuca-text);
}
.section-cream .feature-card {
box-shadow: 0 18px 28px rgba(24, 71, 42, 0.12);
}
.section-dark {
position: relative;
background: linear-gradient(135deg, rgba(24, 55, 35, 0.98), rgba(11, 25, 17, 0.95));
color: #fff;
}
.section-dark::after {
content: "";
position: absolute;
inset: 0;
background: radial-gradient(
circle at 80% 30%,
rgba(240, 195, 65, 0.18) 0%,
rgba(11, 25, 17, 0) 55%
);
pointer-events: none;
}
.section-dark .container {
position: relative;
z-index: 2;
}
.section-dark h2 {
color: var(--lasuca-sun-light);
font-weight: 700;
}
.section-dark p {
color: rgba(255, 255, 255, 0.78);
}
.mini-metric {
background: rgba(255, 255, 255, 0.12);
border-radius: 20px;
padding: 20px 24px;
border: 1px solid rgba(255, 255, 255, 0.16);
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}
.mini-metric h4 {
color: var(--lasuca-sun-light);
font-weight: 700;
font-size: 1.9rem;
margin-bottom: 8px;
}
.mini-metric p {
margin-bottom: 0;
}
.cta-list li {
display: flex;
align-items: flex-start;
gap: 14px;
padding: 14px 0;
border-bottom: 1px solid rgba(24, 71, 42, 0.14);
}
.cta-list li:last-child {
border-bottom: none;
padding-bottom: 0;
}
.cta-icon {
width: 44px;
height: 44px;
border-radius: 50%;
background: rgba(31, 92, 60, 0.12);
display: flex;
align-items: center;
justify-content: center;
font-size: 1.2rem;
}
@media (max-width: 991.98px) {
.hero-home {
padding: 120px 0 100px;
}
.hero-card {
margin-top: 24px;
}
}
@media (max-width: 575.98px) {
.hero-actions .btn {
width: 100%;
}
.cta-icon {
width: 40px;
height: 40px;
font-size: 1rem;
}
}

View File

@@ -0,0 +1,642 @@
:root {
--lasuca-forest: #18472a;
--lasuca-bayou: #0f2f1c;
--lasuca-cane: #1f5c39;
--lasuca-sun: #f0c341;
--lasuca-sun-light: #ffe082;
--lasuca-cream: #f9f4e8;
--lasuca-cloud: #eef3ee;
--lasuca-text: #1f3326;
--lasuca-muted: #5e7266;
}
body.lasuca-theme {
font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
color: var(--lasuca-text);
background: linear-gradient(180deg, rgba(14, 32, 22, 0.95) 0%, rgba(24, 55, 35, 0.9) 55%, rgba(15, 35, 23, 0.98) 100%);
min-height: 100vh;
transition: background 0.3s ease, color 0.3s ease;
}
body.lasuca-theme .navbar {
background-image: linear-gradient(90deg, rgba(15, 35, 23, 0.60) 0%, rgba(31, 92, 60, 0.40) 55%, rgba(53, 128, 80, 0.40) 100%), url('/images/header.png');
background-size: cover;
background-position: center;
background-repeat: repeat-x;
box-shadow: 0 16px 32px rgba(0, 0, 0, 0.28);
}
body.lasuca-theme .navbar .nav-link {
font-weight: 600;
letter-spacing: 0.04em;
text-transform: uppercase;
color: rgba(255, 255, 255, 0.82) !important;
}
body.lasuca-theme .navbar .nav-link:hover,
body.lasuca-theme .navbar .nav-link:focus,
body.lasuca-theme .navbar .nav-link.active {
color: var(--lasuca-sun-light) !important;
}
body.lasuca-theme .navbar .navbar-brand {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 1.25px;
font-weight: 700;
font-style: italic;
letter-spacing: 0.07em;
text-transform: none;
color: #fff;
filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.45));
}
body.lasuca-theme .navbar .navbar-brand img {
max-height: 56px;
width: auto;
filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.45));
}
body.lasuca-theme .navbar .navbar-brand .brand-text {
display: block;
font-size: 0.75rem;
letter-spacing: 0.02em;
}
body.lasuca-theme main {
padding: 0 0 60px 0;
}
.hero {
position: relative;
padding: 100px 0 40px;
color: #fff;
background: radial-gradient(circle at 18% 12%, rgba(240, 195, 65, 0.18) 0%, rgba(15, 35, 23, 0.92) 45%, rgba(11, 25, 17, 0.98) 100%);
overflow: hidden;
}
.hero-content {
position: relative;
z-index: 2;
max-width: 720px;
}
.hero-content .badge {
background: rgba(240, 195, 65, 0.2);
color: var(--lasuca-sun-light);
border: 1px solid rgba(240, 195, 65, 0.4);
text-transform: uppercase;
letter-spacing: 0.12em;
font-weight: 600;
padding: 8px 14px;
border-radius: 999px;
}
.hero-content h1 {
font-size: clamp(2.5rem, 4vw, 4rem);
font-weight: 700;
margin: 24px 0 16px;
}
.hero-content p {
font-size: 1.15rem;
line-height: 1.7;
color: rgba(255, 255, 255, 0.78);
margin-bottom: 28px;
}
.hero-actions .btn {
padding: 14px 28px;
border-radius: 999px;
font-weight: 600;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.hero-actions .btn-primary {
background: linear-gradient(135deg, var(--lasuca-sun) 0%, var(--lasuca-sun-light) 100%);
border: 0;
color: var(--lasuca-text);
box-shadow: 0 16px 28px rgba(240, 195, 65, 0.35);
}
.hero-actions .btn-primary:hover {
filter: brightness(1.05);
}
.hero-actions .btn-outline-light {
border-width: 2px;
color: #fff;
}
.hero-actions .btn-outline-light:hover {
background: rgba(255, 255, 255, 0.15);
}
body.lasuca-theme .btn-outline-success {
color: var(--lasuca-cane);
border-color: var(--lasuca-cane);
}
body.lasuca-theme .btn-outline-success:hover {
color: #fff;
background: var(--lasuca-cane);
border-color: var(--lasuca-cane);
}
.section-heading {
text-transform: uppercase;
letter-spacing: 0.24em;
font-size: 0.9rem;
font-weight: 700;
color: var(--lasuca-sun);
}
.feature-card {
background: var(--lasuca-cream);
border-radius: 20px;
padding: 32px 28px;
box-shadow: 0 20px 38px rgba(0, 0, 0, 0.16);
border: 1px solid rgba(24, 71, 42, 0.12);
height: 100%;
}
.feature-card h3 {
font-size: 1.25rem;
font-weight: 700;
color: var(--lasuca-cane);
margin-bottom: 12px;
}
.feature-card p {
color: var(--lasuca-muted);
}
.data-glance {
margin-top: -5px;
}
.data-panel {
background: linear-gradient(135deg, rgba(24, 71, 42, 0.95), rgba(12, 36, 23, 0.95));
border-radius: 24px;
padding: 28px;
color: #fff;
box-shadow: 0 18px 32px rgba(0, 0, 0, 0.18);
}
.data-panel h3 {
color: var(--lasuca-sun-light);
}
.data-panel .stat {
font-size: 2.2rem;
font-weight: 700;
letter-spacing: 0.04em;
}
.data-panel small {
text-transform: uppercase;
letter-spacing: 0.18em;
color: rgba(255, 255, 255, 0.6);
}
.metric-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
gap: 20px;
margin-top: 28px;
}
.metric-card {
background: rgba(15, 35, 23, 0.45);
border-radius: 16px;
padding: 18px 20px;
border: 1px solid rgba(255, 255, 255, 0.08);
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
display: flex;
flex-direction: column;
gap: 8px;
}
.metric-card .metric-label {
font-size: 0.7rem;
letter-spacing: 0.18em;
text-transform: uppercase;
color: rgba(255, 255, 255, 0.62);
}
.metric-card .metric-value {
font-size: 1.85rem;
font-weight: 700;
letter-spacing: 0.04em;
color: #fff;
}
.metric-footnote {
margin-top: 20px;
font-size: 0.8rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: rgba(255, 255, 255, 0.6);
}
.stat-list {
list-style: none;
padding: 0;
margin: 20px 0 0;
display: flex;
flex-direction: column;
gap: 14px;
}
.stat-list li {
display: flex;
justify-content: space-between;
align-items: baseline;
border-bottom: 1px solid rgba(24, 71, 42, 0.12);
padding-bottom: 12px;
}
.stat-list li:last-child {
border-bottom: none;
padding-bottom: 0;
}
.stat-label {
font-size: 0.8rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--lasuca-muted);
}
.stat-value {
font-size: 1.1rem;
font-weight: 700;
color: var(--lasuca-cane);
}
.recent-files-list {
list-style: none;
padding: 0;
margin: 16px 0 0;
display: flex;
flex-direction: column;
gap: 16px;
}
.recent-files-list li {
border-bottom: 1px solid rgba(24, 71, 42, 0.12);
padding-bottom: 12px;
}
.recent-files-list li:last-child {
border-bottom: 0;
padding-bottom: 0;
}
.recent-files-list a {
font-weight: 600;
color: var(--lasuca-cane);
text-decoration: none;
}
.recent-files-list a:hover {
text-decoration: underline;
}
.file-meta {
font-size: 0.75rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--lasuca-muted);
display: block;
margin-top: 4px;
}
.load-table table {
width: 100%;
border-collapse: collapse;
}
.load-table thead th {
font-size: 0.72rem;
text-transform: uppercase;
letter-spacing: 0.16em;
color: var(--lasuca-muted);
border-bottom: 1px solid rgba(24, 71, 42, 0.18);
padding: 0 12px 12px;
font-weight: 700;
}
.load-table tbody tr {
border-bottom: 1px solid rgba(24, 71, 42, 0.12);
}
.load-table tbody tr:last-child {
border-bottom: none;
}
.load-table td {
padding: 14px 12px;
font-weight: 600;
color: var(--lasuca-text);
}
.load-table .load-time {
display: block;
font-size: 0.75rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--lasuca-muted);
margin-top: 3px;
}
.account-details {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
gap: 12px 24px;
margin-top: 12px;
}
.account-details dt {
font-size: 0.7rem;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--lasuca-muted);
}
.account-details dd {
font-weight: 600;
margin: 4px 0 12px;
color: var(--lasuca-text);
}
.timeline {
border-left: 3px solid rgba(240, 195, 65, 0.3);
padding-left: 24px;
}
.timeline-item {
margin-bottom: 24px;
position: relative;
}
.timeline-item:before {
content: "";
position: absolute;
left: -34px;
top: 6px;
width: 16px;
height: 16px;
background: var(--lasuca-sun);
border-radius: 50%;
box-shadow: 0 0 0 6px rgba(240, 195, 65, 0.25);
}
.timeline-item h4 {
font-weight: 700;
color: var(--lasuca-cream);
}
.timeline-item p {
color: rgba(255, 255, 255, 0.76);
margin-bottom: 0;
}
.callout {
background: var(--lasuca-cream);
border-radius: 20px;
padding: 36px;
box-shadow: 0 18px 28px rgba(0, 0, 0, 0.12);
border: 1px solid rgba(24, 71, 42, 0.14);
}
.callout h3 {
color: var(--lasuca-cane);
font-weight: 700;
}
.callout p {
color: var(--lasuca-muted);
}
footer.lasuca-footer {
background: rgba(8, 21, 14, 0.96);
color: rgba(255, 255, 255, 0.72);
padding: 40px 0;
border-top: 1px solid rgba(240, 195, 65, 0.22);
}
footer.lasuca-footer a {
color: var(--lasuca-sun-light);
text-decoration: none;
}
footer.lasuca-footer a:hover {
text-decoration: underline;
}
.lasuca-footer .footer-logo {
max-height: 60px;
width: auto;
filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.35));
}
.lasuca-footer .footer-brand {
flex-wrap: nowrap;
}
.theme-toggle-item {
display: flex;
align-items: center;
margin-left: 0.75rem;
}
.theme-toggle {
display: inline-flex;
align-items: center;
gap: 0.4rem;
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
border-radius: 999px;
padding: 0.4rem 0.9rem;
transition: all 0.2s ease;
}
.theme-toggle-icon {
font-size: 1rem;
line-height: 1;
}
.navbar .theme-toggle {
border: 1px solid rgba(255, 255, 255, 0.42);
color: rgba(255, 255, 255, 0.85);
background: rgba(255, 255, 255, 0.08);
}
.navbar .theme-toggle:hover,
.navbar .theme-toggle:focus {
background: rgba(255, 255, 255, 0.2);
color: #fff;
}
body.lasuca-theme.theme-light {
background: linear-gradient(180deg, #fdfaf3 0%, #f5f5ef 45%, #eef6ef 100%);
color: var(--lasuca-text);
}
body.lasuca-theme.theme-light .navbar {
background-image: linear-gradient(90deg, rgba(255, 255, 255, 0.75) 0%, rgba(241, 247, 241, 0.45) 55%, rgba(236, 245, 238, 0.45) 100%), url('/images/header.png');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
box-shadow: 0 18px 32px rgba(0, 0, 0, 0.12);
}
body.lasuca-theme.theme-light .navbar .navbar-brand {
color: var(--lasuca-cane);
}
body.lasuca-theme.theme-light .navbar .nav-link {
color: var(--lasuca-cane) !important;
}
body.lasuca-theme.theme-light .navbar .nav-link:hover,
body.lasuca-theme.theme-light .navbar .nav-link:focus,
body.lasuca-theme.theme-light .navbar .nav-link.active {
color: var(--lasuca-sun) !important;
}
body.lasuca-theme.theme-light .navbar .theme-toggle {
border-color: rgba(31, 92, 60, 0.35);
color: var(--lasuca-cane);
background: rgba(31, 92, 60, 0.1);
}
body.lasuca-theme.theme-light .navbar .theme-toggle:hover,
body.lasuca-theme.theme-light .navbar .theme-toggle:focus {
background: rgba(31, 92, 60, 0.18);
color: var(--lasuca-cane);
}
body.lasuca-theme.theme-light .hero {
color: var(--lasuca-text);
background: radial-gradient(circle at 18% 12%, rgba(31, 92, 60, 0.12) 0%, rgba(245, 239, 226, 0.95) 45%, rgba(243, 249, 243, 0.98) 100%);
}
body.lasuca-theme.theme-light .hero-content h1 {
color: var(--lasuca-cane);
}
body.lasuca-theme.theme-light .hero-content p {
color: rgba(31, 51, 38, 0.72);
}
body.lasuca-theme.theme-light .hero-content .badge {
background: rgba(31, 92, 60, 0.14);
border: 1px solid rgba(31, 92, 60, 0.24);
color: var(--lasuca-cane);
}
body.lasuca-theme.theme-light .hero-actions .btn-outline-light {
border-color: var(--lasuca-cane);
color: var(--lasuca-cane);
}
body.lasuca-theme.theme-light .hero-actions .btn-outline-light:hover {
background: var(--lasuca-cane);
color: #fff;
}
body.lasuca-theme.theme-light .data-panel {
background: rgba(255, 255, 255, 0.95);
color: var(--lasuca-text);
border: 1px solid rgba(24, 71, 42, 0.12);
box-shadow: 0 18px 28px rgba(0, 0, 0, 0.1);
}
body.lasuca-theme.theme-light .data-panel h3 {
color: var(--lasuca-cane);
}
body.lasuca-theme.theme-light .metric-card {
background: rgba(31, 92, 60, 0.08);
border: 1px solid rgba(31, 92, 60, 0.18);
box-shadow: none;
}
body.lasuca-theme.theme-light .metric-card .metric-label {
color: rgba(31, 51, 38, 0.64);
}
body.lasuca-theme.theme-light .metric-card .metric-value {
color: var(--lasuca-cane);
}
body.lasuca-theme.theme-light .metric-footnote {
color: var(--lasuca-muted);
}
body.lasuca-theme.theme-light .stat-list li {
border-bottom: 1px solid rgba(31, 92, 60, 0.16);
}
body.lasuca-theme.theme-light .stat-label {
color: var(--lasuca-muted);
}
body.lasuca-theme.theme-light .stat-value {
color: var(--lasuca-cane);
}
body.lasuca-theme.theme-light .recent-files-list li {
border-bottom: 1px solid rgba(31, 92, 60, 0.1);
}
body.lasuca-theme.theme-light .load-table thead th {
color: var(--lasuca-muted);
border-bottom: 1px solid rgba(31, 92, 60, 0.2);
}
body.lasuca-theme.theme-light .load-table tbody tr {
border-bottom: 1px solid rgba(31, 92, 60, 0.12);
}
body.lasuca-theme.theme-light .load-table td {
color: var(--lasuca-text);
}
body.lasuca-theme.theme-light .load-table .load-time {
color: var(--lasuca-muted);
}
body.lasuca-theme.theme-light footer.lasuca-footer {
background: rgba(249, 244, 232, 0.96);
color: var(--lasuca-text);
border-top: 1px solid rgba(31, 92, 60, 0.18);
}
body.lasuca-theme.theme-light footer.lasuca-footer a {
color: var(--lasuca-cane);
}
@media (max-width: 992px) {
.hero {
padding: 120px 0 80px;
}
.data-glance {
margin-top: -30px;
}
}
@media (max-width: 576px) {
.hero {
padding: 100px 0 60px;
}
.hero-actions .btn {
width: 100%;
justify-content: center;
}
}

289
lasuca/new/css/pages.css Normal file
View File

@@ -0,0 +1,289 @@
.hero-sub {
position: relative;
padding: 120px 0 100px;
color: #fff;
background: linear-gradient(
135deg,
rgba(11, 25, 17, 0.92) 0%,
rgba(31, 92, 60, 0.78) 45%,
rgba(24, 71, 42, 0.9) 100%
);
overflow: hidden;
}
.hero-sub::after {
content: "";
position: absolute;
inset: 0;
background: radial-gradient(
circle at 20% 15%,
rgba(240, 195, 65, 0.22) 0%,
rgba(11, 25, 17, 0) 55%
);
pointer-events: none;
}
.hero-sub .container {
position: relative;
z-index: 0;
}
.hero-sub .badge {
background: rgba(240, 195, 65, 0.24);
color: var(--lasuca-sun-light);
border: 1px solid rgba(240, 195, 65, 0.4);
letter-spacing: 0.14em;
text-transform: uppercase;
padding: 8px 16px;
border-radius: 999px;
font-weight: 600;
}
.hero-sub h1 {
margin-top: 24px;
font-size: clamp(2.4rem, 4vw, 3.4rem);
font-weight: 700;
}
.hero-sub p {
max-width: 720px;
font-size: 1.1rem;
color: rgba(255, 255, 255, 0.78);
}
.page-section {
background: var(--lasuca-cream);
color: var(--lasuca-text);
}
.page-section-dark {
background: linear-gradient(135deg, rgba(24, 55, 35, 0.96), rgba(11, 25, 17, 0.94));
color: #fff;
}
.page-section .section-heading,
.page-section-dark .section-heading {
letter-spacing: 0.22em;
text-transform: uppercase;
font-weight: 700;
font-size: 0.84rem;
color: var(--lasuca-sun);
}
.page-section-dark .section-heading {
color: var(--lasuca-sun-light);
}
.page-section .section-intro,
.page-section-dark .section-intro {
max-width: 720px;
margin: 0 auto 32px;
color: var(--lasuca-muted);
}
.page-section-dark .section-intro {
color: rgba(255, 255, 255, 0.72);
}
.content-grid {
display: grid;
gap: 28px;
}
.content-grid.two-column {
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.content-card {
background: #fff;
border-radius: 20px;
padding: 28px;
box-shadow: 0 18px 32px rgba(0, 0, 0, 0.14);
border: 1px solid rgba(24, 71, 42, 0.14);
}
.page-section-dark .content-card {
background: rgba(255, 255, 255, 0.08);
border-color: rgba(255, 255, 255, 0.14);
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.content-card h2,
.content-card h3,
.content-card h4 {
color: var(--lasuca-cane);
}
.page-section-dark .content-card h2,
.page-section-dark .content-card h3 {
color: var(--lasuca-sun-light);
}
.content-card p {
margin-bottom: 1rem;
color: var(--lasuca-muted);
}
.content-card ul {
color: var(--lasuca-muted);
padding-left: 1.2rem;
}
.content-card li + li {
margin-top: 0.5rem;
}
.page-section-dark .content-card p {
color: rgba(255, 255, 255, 0.75);
}
.feature-list {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 12px;
}
.feature-list li {
display: flex;
align-items: flex-start;
gap: 12px;
}
.feature-list .icon {
width: 32px;
height: 32px;
border-radius: 50%;
background: rgba(31, 92, 60, 0.12);
display: flex;
align-items: center;
justify-content: center;
font-size: 1.1rem;
}
.contact-card {
background: var(--lasuca-cream);
border-radius: 20px;
padding: 24px;
border: 1px solid rgba(24, 71, 42, 0.14);
box-shadow: 0 18px 30px rgba(0, 0, 0, 0.12);
}
.contact-card h3 {
color: var(--lasuca-cane);
}
.contact-card a {
color: var(--lasuca-cane);
text-decoration: none;
}
.contact-card a:hover {
text-decoration: underline;
}
.content-image {
border-radius: 18px;
box-shadow: 0 18px 32px rgba(0, 0, 0, 0.18);
}
.metric-badge {
display: inline-block;
padding: 8px 14px;
border-radius: 999px;
background: rgba(31, 92, 60, 0.12);
color: var(--lasuca-cane);
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
font-size: 0.75rem;
}
body.lasuca-theme.theme-light .hero-sub {
color: var(--lasuca-text);
background: linear-gradient(
135deg,
rgba(245, 239, 226, 0.95) 0%,
rgba(243, 249, 243, 0.92) 45%,
rgba(236, 245, 238, 0.95) 100%
);
}
body.lasuca-theme.theme-light .hero-sub::after {
background: radial-gradient(
circle at 20% 15%,
rgba(31, 92, 60, 0.16) 0%,
rgba(11, 25, 17, 0) 55%
);
}
body.lasuca-theme.theme-light .hero-sub .badge {
background: rgba(31, 92, 60, 0.14);
border: 1px solid rgba(31, 92, 60, 0.24);
color: var(--lasuca-cane);
}
body.lasuca-theme.theme-light .hero-sub p {
color: rgba(31, 51, 38, 0.7);
}
.production-card {
background: #fff;
border-radius: 22px;
padding: 28px;
box-shadow: 0 20px 36px rgba(0, 0, 0, 0.14);
border: 1px solid rgba(24, 71, 42, 0.14);
display: flex;
flex-direction: column;
gap: 20px;
}
.production-card-header p {
color: var(--lasuca-muted);
}
.production-stats {
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 14px;
}
.production-stats .stat-row {
display: flex;
justify-content: space-between;
align-items: baseline;
border-bottom: 1px solid rgba(24, 71, 42, 0.12);
padding-bottom: 10px;
}
.production-stats .stat-row:last-child {
border-bottom: none;
padding-bottom: 0;
}
.production-stats dt {
margin: 0;
font-size: 0.82rem;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--lasuca-muted);
}
.production-stats dd {
margin: 0;
font-weight: 700;
color: var(--lasuca-cane);
}
@media (max-width: 767.98px) {
.hero-sub {
padding: 100px 0 80px;
}
.content-card {
padding: 22px;
}
}

10826
lasuca/new/css/styles.css Normal file

File diff suppressed because it is too large Load Diff

180
lasuca/new/index.html Normal file
View File

@@ -0,0 +1,180 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<meta name="description" content="" />
<meta name="author" content="" />
<title>LASUCA Grower Portal</title>
<!-- Favicon-->
<link rel="icon" type="image/x-icon" href="assets/favicon.ico" />
<!-- Core theme CSS (includes Bootstrap)-->
<link href="css/styles.css" rel="stylesheet" />
<link href="css/lasuca-theme.css" rel="stylesheet" />
</head>
<body class="lasuca-theme theme-dark">
<!-- Responsive navbar-->
<nav class="navbar navbar-expand-lg navbar-dark">
<div class="container">
<a class="navbar-brand" href="#">
<img src="../images/header.png" alt="LASUCA logo" />
<span>Louisiana Sugar Cane Cooperative</span>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item"><a class="nav-link active" aria-current="page" href="#grower-tools">Grower Tools</a></li>
<li class="nav-item"><a class="nav-link" href="#factory-insights">Factory Insights</a></li>
<li class="nav-item"><a class="nav-link" href="#updates">Daily Updates</a></li>
<li class="nav-item"><a class="nav-link" href="#contact">Contact</a></li>
</ul>
</div>
</div>
</nav>
<main>
<header class="hero">
<div class="container">
<div class="hero-content">
<span class="badge">Grower Portal</span>
<h1>Turning your cane into opportunity.</h1>
<p>
LASUCA connects Louisiana growers with the factory data they rely on every single day.
Review loads, monitor factory performance, and keep your team informed with real-time updates
from the mill floor to the field.
</p>
<div class="hero-actions d-flex flex-column flex-sm-row gap-3">
<a class="btn btn-primary" href="../grower-login.php">Grower Login</a>
<a class="btn btn-outline-light" href="../grower-files.php">Daily Ticket Reports</a>
</div>
<p class="mt-3 mb-0 text-white-50 small">Latest update posted: October 8, 2025 · Scale window closes at 7:00 p.m.</p>
</div>
</div>
</header>
<section class="data-glance" id="grower-tools">
<div class="container">
<div class="row g-4">
<div class="col-lg-4">
<div class="data-panel h-100">
<h3>Today's Scale Snapshot</h3>
<div class="stat">142 loads</div>
<small class="d-block mb-3">As of 3:15 p.m.</small>
<p class="mb-0">We'll replace these placeholders with live numbers fed from the scale database.</p>
</div>
</div>
<div class="col-lg-8">
<div class="row g-4">
<div class="col-md-6">
<article class="feature-card">
<h3>Daily Ticket Archive</h3>
<p>
One-click access to PDF load tickets organized by day, week, and grower ID. Filter your
files faster with the reworked browser layout.
</p>
<a class="btn btn-sm btn-outline-success mt-3" href="../grower-files.php">Open File Browser</a>
</article>
</div>
<div class="col-md-6">
<article class="feature-card">
<h3>Account &amp; Notifications</h3>
<p>
Update contact preferences, manage passwords, and subscribe your crew to harvest alerts and
downtime notices directly from the coop.
</p>
<a class="btn btn-sm btn-outline-success mt-3" href="../grower-account.php">Manage Account</a>
</article>
</div>
<div class="col-12">
<article class="feature-card">
<h3>Season Planning Toolkit</h3>
<p class="mb-0">
Generate planting targets, view historic recovery, and coordinate hauling schedules with
interactive dashboards designed for your farm.
</p>
</article>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="py-5" id="factory-insights">
<div class="container">
<div class="row g-4 align-items-center">
<div class="col-lg-6">
<span class="section-heading">Factory Insights</span>
<h2 class="mt-3 mb-4">From crush to crystal, we're sharing the story.</h2>
<p>
Explore interactive dashboards that summarize mill throughput, extraction efficiency, and downtime events.
Our operations team keeps these metrics fresh so you can plan your harvest and hauling with confidence.
</p>
<ul class="list-unstyled text-white-50">
<li class="mb-2">• Hourly crush rate and pol tracking</li>
<li class="mb-2">• Boiler performance, evaporation, and strike updates</li>
<li class="mb-2">• Automated alerts when throughput drops below plan</li>
</ul>
</div>
<div class="col-lg-6">
<div class="data-panel">
<h3 class="mb-4">Factory timeline</h3>
<div class="timeline" id="updates">
<div class="timeline-item">
<h4>3:05 p.m. — Recovery trending upward</h4>
<p>Strike 212 pulled at 88.4 purity. Mud press clearing backlog, expect full capacity in 30 minutes.</p>
</div>
<div class="timeline-item">
<h4>1:40 p.m. — Rail load</h4>
<p>Loaders staging 12 outbound sugar railcars. Packaging ops on schedule.</p>
</div>
<div class="timeline-item">
<h4>12:10 p.m. — Downtime resolved</h4>
<p>Clarifier rake repaired; extraction resuming normal pace. Growers back to green status.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="py-5">
<div class="container">
<div class="callout" id="contact">
<div class="row g-4 align-items-center">
<div class="col-md-8">
<h3>Need a hand with your portal access?</h3>
<p class="mb-2">
Call the LASUCA IT desk at <strong>(337) 555-0199</strong> or email <a href="mailto:support@lasuca.com">support@lasuca.com</a>.
We're available 5:00 a.m. 9:00 p.m. during harvest.
</p>
<p class="mb-0">On-site? Stop by the administrative office for one-on-one help and training.</p>
</div>
<div class="col-md-4 text-md-end">
<a class="btn btn-primary" href="../contact-us.php">Factory Directory</a>
</div>
</div>
</div>
</div>
</section>
</main>
<footer class="lasuca-footer">
<div class="container text-center text-sm-start">
<div class="row g-4 align-items-center">
<div class="col-md-6">
<strong>Louisiana Sugar Cane Cooperative</strong><br />
341 Sugar Mill Road · St. Martinville, LA 70582
</div>
<div class="col-md-6 text-md-end">
<small>&copy; <script>document.write(new Date().getFullYear());</script> LASUCA. All rights reserved.</small>
</div>
</div>
</div>
</footer>
<!-- Bootstrap core JS-->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
<!-- Core theme JS-->
<script src="js/scripts.js"></script>
</body>
</html>

80
lasuca/new/js/scripts.js Normal file
View File

@@ -0,0 +1,80 @@
/*!
* Start Bootstrap - Bare v5.0.9 (https://startbootstrap.com/template/bare)
* Copyright 2013-2023 Start Bootstrap
* Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-bare/blob/master/LICENSE)
*/
// Theme toggle logic for light/dark mode
(function () {
function onReady(callback) {
if (document.readyState !== 'loading') {
callback();
} else {
document.addEventListener('DOMContentLoaded', callback);
}
}
onReady(function () {
var storageKey = 'lasuca-theme';
var body = document.body;
if (!body || !body.classList) {
return;
}
var toggles = document.querySelectorAll('[data-theme-toggle]');
if (!toggles.length) {
return;
}
var storedTheme = null;
try {
storedTheme = window.localStorage.getItem(storageKey);
} catch (error) {
storedTheme = null;
}
var initialTheme = (storedTheme === 'light' || storedTheme === 'dark')
? storedTheme
: (body.classList.contains('theme-light') ? 'light' : 'dark');
applyTheme(initialTheme);
for (var i = 0; i < toggles.length; i += 1) {
toggles[i].addEventListener('click', function () {
var nextTheme = body.classList.contains('theme-dark') ? 'light' : 'dark';
applyTheme(nextTheme);
try {
window.localStorage.setItem(storageKey, nextTheme);
} catch (e) {
// Ignore storage errors (private browsing, etc.)
}
});
}
function applyTheme(theme) {
var activeTheme = theme === 'light' ? 'light' : 'dark';
body.classList.remove('theme-dark', 'theme-light');
body.classList.add('theme-' + activeTheme);
for (var j = 0; j < toggles.length; j += 1) {
var button = toggles[j];
var labelText = activeTheme === 'light' ? 'Dark Mode' : 'Light Mode';
var iconText = activeTheme === 'light' ? '🌙' : '🌞';
button.setAttribute('aria-label', 'Switch to ' + labelText.toLowerCase());
button.setAttribute('title', 'Switch to ' + labelText.toLowerCase());
button.setAttribute('data-theme-current', activeTheme);
var labelNode = button.querySelector('[data-theme-toggle-label]');
if (labelNode) {
labelNode.textContent = labelText;
}
var iconNode = button.querySelector('[data-theme-toggle-icon]');
if (iconNode) {
iconNode.textContent = iconText;
}
}
}
});
})();