/* ========================================== INDSTILLINGER (SETTINGS) STYLES ========================================== */ /* ========================================== PAGE LAYOUT ========================================== */ swp-page-container { display: block; max-width: 900px; margin: 0 auto; padding: 24px; } swp-page-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 32px; } swp-page-title { display: flex; flex-direction: column; gap: 4px; } swp-page-title h1 { font-size: 22px; font-weight: 600; color: var(--color-text); margin: 0; } swp-page-title p { font-size: 13px; color: var(--color-text-secondary); margin: 0; } /* ========================================== SETTINGS SECTIONS ========================================== */ swp-settings-section { display: block; background: var(--color-surface); border-radius: 8px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); margin-bottom: 24px; } swp-section-header { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; border-bottom: 1px solid var(--color-border); } swp-section-title { display: flex; align-items: center; gap: 12px; } swp-section-title i { font-size: 22px; color: var(--color-teal); } swp-section-title h2 { font-size: 16px; font-weight: 600; color: var(--color-text); margin: 0; } swp-section-content { display: block; padding: 24px; } swp-section-footer { display: flex; justify-content: flex-end; padding: 16px 24px; border-top: 1px solid var(--color-border); background: var(--color-background-alt); border-radius: 0 0 8px 8px; } /* ========================================== FORM ELEMENTS ========================================== */ swp-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; } swp-form-grid.single-column { grid-template-columns: 1fr; } swp-form-row { display: flex; flex-direction: column; gap: 6px; } swp-form-row.full-width { grid-column: 1 / -1; } swp-form-label { display: block; font-size: 13px; font-weight: 500; color: var(--color-text); } swp-form-label span.optional { font-weight: 400; color: var(--color-text-secondary); margin-left: 4px; } swp-form-input { display: block; width: 100%; padding: 10px 14px; font-size: 14px; font-family: var(--font-family); color: var(--color-text); background: var(--color-background); border: 1px solid var(--color-border); border-radius: 6px; transition: all 150ms ease; } swp-form-input:focus { outline: none; border-color: var(--color-teal); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-teal) 15%, transparent); } swp-form-input::placeholder { color: var(--color-text-secondary); } swp-form-input[type="time"] { padding: 8px 14px; } swp-form-textarea { display: block; width: 100%; padding: 10px 14px; font-size: 14px; font-family: var(--font-family); color: var(--color-text); background: var(--color-background); border: 1px solid var(--color-border); border-radius: 6px; resize: vertical; min-height: 80px; transition: all 150ms ease; } swp-form-textarea:focus { outline: none; border-color: var(--color-teal); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-teal) 15%, transparent); } swp-form-select { display: block; width: 100%; padding: 10px 14px; font-size: 14px; font-family: var(--font-family); color: var(--color-text); background: var(--color-background); border: 1px solid var(--color-border); border-radius: 6px; cursor: pointer; transition: all 150ms ease; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 256 256'%3E%3Cpath fill='%23666' d='M213.66 101.66l-80 80a8 8 0 0 1-11.32 0l-80-80A8 8 0 0 1 48 88h160a8 8 0 0 1 5.66 13.66z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 40px; } swp-form-select:focus { outline: none; border-color: var(--color-teal); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-teal) 15%, transparent); } swp-form-hint { display: block; font-size: 12px; color: var(--color-text-secondary); margin-top: 4px; } /* ========================================== TOGGLE SWITCH ========================================== */ swp-toggle-row { display: flex; align-items: center; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--color-border); } swp-toggle-row:last-child { border-bottom: none; } swp-toggle-info { display: flex; flex-direction: column; gap: 2px; } swp-toggle-label { font-size: 14px; font-weight: 500; color: var(--color-text); } swp-toggle-desc { font-size: 12px; color: var(--color-text-secondary); } swp-toggle { position: relative; width: 44px; height: 24px; background: var(--color-border); border-radius: 12px; cursor: pointer; transition: background 200ms ease; flex-shrink: 0; } swp-toggle.active { background: var(--color-teal); } swp-toggle-knob { position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; background: white; border-radius: 50%; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); transition: transform 200ms ease; } swp-toggle.active swp-toggle-knob { transform: translateX(20px); } /* ========================================== OPENING HOURS TABLE ========================================== */ swp-hours-table { display: flex; flex-direction: column; gap: 0; } swp-hours-row { display: grid; grid-template-columns: 100px 80px 1fr 1fr auto; gap: 16px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--color-border); } swp-hours-row:last-child { border-bottom: none; } swp-hours-day { font-size: 14px; font-weight: 500; color: var(--color-text); } swp-hours-status { display: flex; align-items: center; gap: 8px; } swp-hours-badge { display: inline-flex; align-items: center; padding: 4px 10px; font-size: 12px; font-weight: 500; border-radius: 4px; background: color-mix(in srgb, var(--color-green) 15%, transparent); color: var(--color-green); } swp-hours-badge.closed { background: var(--color-background); color: var(--color-text-secondary); } swp-hours-time { display: flex; align-items: center; gap: 8px; } swp-hours-time span { font-size: 13px; color: var(--color-text-secondary); } swp-hours-time swp-form-input { width: 100px; padding: 8px 12px; font-size: 13px; text-align: center; } swp-hours-actions { display: flex; align-items: center; gap: 8px; } /* ========================================== LOGO UPLOAD ========================================== */ swp-logo-upload { display: flex; align-items: center; gap: 20px; } swp-logo-preview { width: 80px; height: 80px; background: var(--color-background); border: 2px dashed var(--color-border); border-radius: 8px; display: flex; align-items: center; justify-content: center; overflow: hidden; } swp-logo-preview.has-logo { border-style: solid; } swp-logo-preview img { max-width: 100%; max-height: 100%; object-fit: contain; } swp-logo-preview i { font-size: 32px; color: var(--color-text-secondary); opacity: 0.5; } swp-logo-actions { display: flex; flex-direction: column; gap: 8px; } swp-logo-actions swp-btn { justify-content: center; } /* ========================================== URL FIELD WITH COPY ========================================== */ swp-url-field { display: flex; align-items: stretch; border: 1px solid var(--color-border); border-radius: 6px; overflow: hidden; background: var(--color-background); } swp-url-field swp-form-input { border: none; border-radius: 0; background: transparent; } swp-url-field swp-form-input:focus { box-shadow: none; } swp-url-copy { display: flex; align-items: center; justify-content: center; padding: 0 14px; background: var(--color-surface); border-left: 1px solid var(--color-border); cursor: pointer; transition: all 150ms ease; color: var(--color-text-secondary); } swp-url-copy:hover { background: var(--color-background-hover); color: var(--color-teal); } swp-url-copy i { font-size: 18px; } /* ========================================== BUTTONS ========================================== */ swp-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; font-size: 13px; font-weight: 500; font-family: var(--font-family); border-radius: 6px; cursor: pointer; transition: all 150ms ease; border: none; } swp-btn i { font-size: 18px; } swp-btn.primary { background: var(--color-teal); color: white; } swp-btn.primary:hover { background: #00796b; } swp-btn.secondary { background: var(--color-surface); border: 1px solid var(--color-border); color: var(--color-text); } swp-btn.secondary:hover { background: var(--color-background-hover); } swp-btn.small { padding: 6px 12px; font-size: 12px; } swp-btn.small i { font-size: 16px; } swp-btn.danger { background: transparent; border: 1px solid var(--color-border); color: var(--color-text-secondary); } swp-btn.danger:hover { background: color-mix(in srgb, var(--color-red) 10%, transparent); border-color: var(--color-red); color: var(--color-red); } /* ========================================== ICON BUTTON ========================================== */ swp-icon-btn { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border: none; background: transparent; border-radius: 6px; cursor: pointer; color: var(--color-text-secondary); transition: all 150ms ease; } swp-icon-btn:hover { background: var(--color-background-hover); color: var(--color-text); } swp-icon-btn i { font-size: 18px; } /* ========================================== INFO BOX ========================================== */ swp-info-box { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; background: color-mix(in srgb, var(--color-blue) 8%, transparent); border: 1px solid color-mix(in srgb, var(--color-blue) 20%, transparent); border-radius: 6px; margin-bottom: 20px; } swp-info-box i { font-size: 20px; color: var(--color-blue); flex-shrink: 0; margin-top: 1px; } swp-info-box p { font-size: 13px; color: var(--color-text); margin: 0; line-height: 1.5; } /* ========================================== RESPONSIVE ========================================== */ @media (max-width: 768px) { swp-page-container { padding: 16px; } swp-form-grid { grid-template-columns: 1fr; } swp-hours-row { grid-template-columns: 1fr; gap: 12px; } swp-hours-time { flex-wrap: wrap; } swp-section-header { flex-direction: column; align-items: flex-start; gap: 12px; } }