diff --git a/map/app/public/css/admin.css b/map/app/public/css/admin.css
index 3c5e053..2b4131a 100644
--- a/map/app/public/css/admin.css
+++ b/map/app/public/css/admin.css
@@ -231,9 +231,10 @@
/* Walk Sheet Styles */
.walk-sheet-container {
display: grid;
- grid-template-columns: 1fr 1fr;
+ grid-template-columns: 2fr 3fr;
gap: 30px;
margin-top: 20px;
+ align-items: flex-start;
}
.walk-sheet-config {
@@ -276,10 +277,20 @@
}
/* Walk Sheet Preview */
+
.walk-sheet-preview {
background-color: #f5f5f5;
padding: 20px;
border-radius: var(--border-radius);
+ box-shadow: 0 4px 24px rgba(0,0,0,0.10);
+ min-width: 350px;
+ max-width: 600px;
+ margin: 0 auto;
+ height: 700px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ overflow-x: auto;
}
.walk-sheet-preview h3 {
@@ -350,14 +361,11 @@
/* Adjust preview scaling */
.walk-sheet-preview .walk-sheet-page {
- transform: scale(0.5);
- transform-origin: top left;
- margin-bottom: -50%; /* Compensate for scale */
-}
-
-.walk-sheet-preview {
- overflow: hidden;
- height: 550px; /* Fixed height for preview container */
+ transform: scale(0.75);
+ transform-origin: top center;
+ margin-bottom: -25%;
+ box-shadow: 0 2px 10px rgba(0,0,0,0.12);
+ border-radius: 8px;
}
/* Walk Sheet Content Styles */
@@ -406,6 +414,15 @@
image-rendering: -moz-crisp-edges;
}
+.ws-qr-code canvas {
+ display: block;
+ margin: 0 auto;
+ image-rendering: crisp-edges;
+ image-rendering: -webkit-crisp-edges;
+ image-rendering: pixelated;
+ image-rendering: -moz-crisp-edges;
+}
+
.ws-qr-label {
font-size: 10px;
font-weight: bold;
@@ -508,9 +525,13 @@
.walk-sheet-container {
grid-template-columns: 1fr;
}
-
.walk-sheet-preview {
order: -1;
+ max-width: 100vw;
+ height: 500px;
+ }
+ .walk-sheet-preview .walk-sheet-page {
+ transform: scale(0.65);
}
}
@@ -518,36 +539,51 @@
.admin-container {
flex-direction: column;
}
-
.admin-sidebar {
width: 100%;
border-right: none;
border-bottom: 1px solid #e0e0e0;
}
-
+ .header .header-actions {
+ display: flex !important;
+ gap: 10px;
+ }
+ .header .header-actions .btn {
+ padding: 6px 10px;
+ font-size: 13px;
+ }
+ .admin-info {
+ font-size: 12px;
+ }
.admin-map-container {
grid-template-columns: 1fr;
}
-
.admin-map {
- height: 300px;
+ height: 220px;
}
-
.admin-content {
- padding: 15px;
+ padding: 8px;
}
-
.admin-section {
- padding: 20px;
+ padding: 10px;
}
-
.form-row {
grid-template-columns: 1fr;
}
-
+ .walk-sheet-preview {
+ min-width: 0;
+ max-width: 100vw;
+ height: 350px;
+ padding: 8px;
+ }
+ .walk-sheet-preview .walk-sheet-page {
+ transform: scale(0.48);
+ min-width: 320px;
+ margin-bottom: 0;
+ }
.walk-sheet-page {
font-size: 8px;
- padding: 15px;
+ padding: 8px;
}
}
diff --git a/map/app/public/css/style.css b/map/app/public/css/style.css
index 4ce8269..6f6559b 100644
--- a/map/app/public/css/style.css
+++ b/map/app/public/css/style.css
@@ -46,6 +46,7 @@ body {
padding: 0 20px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
z-index: 1000;
+ position: relative;
}
.header h1 {
@@ -637,39 +638,140 @@ body {
margin: 0;
}
-/* Responsive design */
+/* Mobile dropdown menu */
+.mobile-dropdown {
+ position: relative;
+ display: none;
+}
+
+.mobile-dropdown-toggle {
+ background: none;
+ border: none;
+ color: white;
+ font-size: 18px;
+ cursor: pointer;
+ padding: 8px;
+ border-radius: var(--border-radius);
+ transition: var(--transition);
+ display: flex;
+ align-items: center;
+ gap: 5px;
+}
+
+.mobile-dropdown-toggle:hover {
+ background-color: rgba(255,255,255,0.1);
+}
+
+.mobile-dropdown-content {
+ position: absolute;
+ top: 100%;
+ right: 0;
+ background-color: white;
+ color: var(--dark-color);
+ min-width: 250px;
+ box-shadow: 0 4px 12px rgba(0,0,0,0.15);
+ border-radius: var(--border-radius);
+ overflow: hidden;
+ transform: translateY(-10px);
+ opacity: 0;
+ visibility: hidden;
+ transition: var(--transition);
+ z-index: 1001;
+}
+
+.mobile-dropdown.active .mobile-dropdown-content {
+ transform: translateY(0);
+ opacity: 1;
+ visibility: visible;
+}
+
+.mobile-dropdown-item {
+ padding: 12px 15px;
+ border-bottom: 1px solid #eee;
+ font-size: 14px;
+}
+
+.mobile-dropdown-item:last-child {
+ border-bottom: none;
+}
+
+.mobile-dropdown-item.location-info {
+ background-color: var(--primary-color);
+ color: white;
+ font-weight: 500;
+}
+
+.mobile-dropdown-item.user-info {
+ background-color: var(--light-color);
+ color: var(--dark-color);
+}
+
+/* Floating sidebar for mobile */
+.mobile-sidebar {
+ position: fixed;
+ top: 50%;
+ right: 10px;
+ transform: translateY(-50%);
+ background-color: white;
+ border-radius: var(--border-radius);
+ box-shadow: 0 4px 12px rgba(0,0,0,0.15);
+ z-index: 1000;
+ display: none;
+ flex-direction: column;
+ gap: 5px;
+ padding: 8px;
+}
+
+.mobile-sidebar .btn {
+ margin: 0;
+ min-width: 44px;
+ min-height: 44px;
+ padding: 12px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 16px;
+}
+
+/* Active state for mobile buttons */
+.mobile-sidebar .btn.active {
+ background-color: var(--dark-color);
+ color: white;
+}
+
+.mobile-sidebar .btn:active {
+ transform: scale(0.95);
+}
+
+/* Hide desktop elements on mobile */
@media (max-width: 768px) {
.header h1 {
- font-size: 20px;
+ font-size: 18px;
+ }
+
+ .header-actions {
+ display: none;
+ }
+
+ .mobile-dropdown {
+ display: block;
+ }
+
+ .mobile-sidebar {
+ display: flex;
}
.map-controls {
- top: 10px;
- right: 10px;
- }
-
- .btn {
- padding: 8px 12px;
- font-size: 13px;
- }
-
- /* Hide button text on mobile, show only icons */
- .btn span.btn-text {
display: none;
}
- /* Hide user info on mobile to save space */
- .user-info {
+ /* Hide user info and location count on desktop header for mobile */
+ .user-info,
+ .location-count {
display: none;
}
- .btn {
- padding: 10px;
- min-width: 40px;
- min-height: 40px;
- justify-content: center;
- }
-
+ /* Adjust modal for mobile */
.modal-content {
width: 95%;
margin: 10px;
@@ -678,10 +780,40 @@ body {
.form-row {
grid-template-columns: 1fr;
}
+
+ /* Adjust edit footer for mobile */
+ .edit-footer-content {
+ padding: 15px;
+ }
+
+ .edit-footer-header h2 {
+ font-size: 18px;
+ }
}
-/* Add text spans for desktop that can be hidden on mobile */
+/* Desktop styles - show normal layout */
@media (min-width: 769px) {
+ .mobile-dropdown {
+ display: none;
+ }
+
+ .mobile-sidebar {
+ display: none;
+ }
+
+ .header-actions {
+ display: flex;
+ }
+
+ .user-info,
+ .location-count {
+ display: flex;
+ }
+
+ .map-controls {
+ display: flex;
+ }
+
.btn span.btn-icon {
margin-right: 5px;
}
diff --git a/map/app/public/index.html b/map/app/public/index.html
index cfc7abc..7f4dc11 100644
--- a/map/app/public/index.html
+++ b/map/app/public/index.html
@@ -18,40 +18,83 @@
-
+
-
+
-
-
+
+
+
+
-
Click "Add Location Here" to save this point
+
Click to add location
@@ -297,6 +340,6 @@
crossorigin="">
-
+