rater/assets/styles/app.css

158 lines
3.6 KiB
CSS

@import "tailwindcss";
@plugin "../daisyui.mjs" {
themes: aqua --default;
}
html, body { height: 100%; margin: 0; }
.map-container { height: calc(100vh - 4rem); width: 100%; }
/* Leaflet popup chrome — match aqua theme */
.leaflet-popup-content-wrapper {
background: oklch(37% 0.146 265.522) !important;
color: oklch(90% 0.058 230.902) !important;
border-radius: 0.75rem !important;
box-shadow: 0 4px 24px oklch(0% 0 0 / 0.4) !important;
padding: 0 !important;
border: none !important;
}
.leaflet-popup-content {
margin: 0 !important;
width: auto !important;
}
.leaflet-popup-tip {
background: oklch(37% 0.146 265.522) !important;
}
.leaflet-popup-close-button {
color: oklch(90% 0.058 230.902) !important;
top: 0.5rem !important;
right: 0.5rem !important;
font-size: 1.1rem !important;
}
.leaflet-popup-close-button:hover {
color: oklch(85.661% 0.144 198.645) !important;
background: transparent !important;
}
/* Add-place popup layout */
.add-place-popup {
padding: 0.25rem 1rem 1rem;
width: 300px;
}
.add-place-heading {
font-size: 1rem;
font-weight: 700;
margin-bottom: 0.75rem;
color: oklch(85.661% 0.144 198.645);
}
.add-place-popup .fieldset-legend {
padding-left: 2px !important;
}
.add-place-actions {
display: flex;
justify-content: flex-end;
gap: 0.5rem;
margin-top: 1rem;
}
/* Rating panel — bottom sheet on mobile, side panel on desktop */
.rating-panel {
display: none;
position: fixed;
bottom: 0; left: 0; right: 0;
height: 55vh;
z-index: 1000;
background: var(--color-base-100);
color: var(--color-base-content);
border-radius: 1rem 1rem 0 0;
overflow-y: auto;
padding: 1.25rem;
box-shadow: 0 -4px 24px oklch(0% 0 0 / 0.4);
}
.rating-panel.open { display: block; }
@media (min-width: 768px) {
.rating-panel {
top: 4rem;
right: 0; bottom: 0; left: auto;
width: 320px; height: auto;
border-radius: 0;
box-shadow: -4px 0 24px oklch(0% 0 0 / 0.3);
}
}
.rating-panel-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 1rem;
}
.rating-panel-title {
font-size: 1.1rem;
font-weight: 700;
color: var(--color-primary);
}
.rating-section {
margin-bottom: 1.25rem;
}
.rating-section-label {
font-size: 0.7rem;
text-transform: uppercase;
letter-spacing: 0.08em;
opacity: 0.5;
margin-bottom: 0.4rem;
}
.rating-meta {
font-size: 0.8rem;
opacity: 0.5;
margin-top: 0.2rem;
}
.visit-row {
display: flex;
align-items: baseline;
gap: 0.5rem;
margin-bottom: 0.4rem;
font-size: 0.9rem;
}
.visit-note {
flex: 1;
opacity: 0.8;
font-style: italic;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.visit-date {
font-size: 0.75rem;
opacity: 0.5;
white-space: nowrap;
}
/* Stars */
.rating-stars { display: inline-flex; gap: 1px; }
.star-filled { color: var(--color-primary); }
.star-half { color: var(--color-primary); opacity: 0.45; }
.star-empty { opacity: 0.2; }
/* Star picker */
.star-picker { display: flex; gap: 2px; margin-bottom: 0.25rem; }
.star-picker button {
font-size: 1.6rem;
background: none; border: none;
cursor: pointer; padding: 0 1px;
color: var(--color-base-content);
opacity: 0.2;
transition: opacity 0.1s;
line-height: 1;
}
.star-picker button.active {
opacity: 1;
color: var(--color-primary);
}
.log-visit-actions {
display: flex;
justify-content: flex-end;
gap: 0.5rem;
margin-top: 0.75rem;
}