@font-face { font-family: 'Freising Sans'; src: url('../fonts/FreisingSans-Regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; } @font-face { font-family: 'Freising Sans'; src: url('../fonts/FreisingSans-Semibold.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; } :root { --brand-primary: #111111; --brand-primary-soft: #403d31; --brand-danger: #b42318; --brand-danger-dark: #8f1d14; --brand-accent: #ffd71c; --brand-accent-dark: #be9c00; --brand-accent-soft: #fff4b7; --brand-success: #196b3b; --brand-success-soft: #edf8f0; --brand-info: #1e3a5f; --brand-info-soft: #edf3fb; --brand-text: #111111; --brand-muted: #5e5a4d; --brand-surface: #ffffff; --brand-surface-alt: #f8f4e7; --brand-bg: #f4efe1; --brand-bg-alt: #fffdf6; --brand-border: #d7ceb5; --brand-border-strong: #c2b48e; --brand-shadow: rgba(16, 16, 16, 0.08); } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Freising Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; line-height: 1.6; color: var(--brand-text); background: #ffffff; } a { color: var(--brand-primary); text-underline-offset: 0.18em; } a:hover { color: var(--brand-primary-soft); } .container { max-width: 1180px; margin: 0 auto; padding: 0 20px; } .site-header { background: rgba(255, 255, 255, 0.96); color: var(--brand-text); border-top: 12px solid var(--brand-accent); border-bottom: 1px solid var(--brand-border); backdrop-filter: blur(12px); box-shadow: 0 18px 40px var(--brand-shadow); } .header-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 1rem 0; } .brand { display: flex; align-items: center; gap: 1rem; color: var(--brand-text); text-decoration: none; } .brand-logo { height: 70px; width: auto; display: block; filter: drop-shadow(0 10px 18px rgba(16, 16, 16, 0.12)); } .brand-text { display: flex; flex-direction: column; line-height: 1.1; } .brand-title { font-size: 1.45rem; font-weight: 600; } .brand-subtitle { font-size: 0.95rem; color: var(--brand-muted); } .site-nav { display: flex; align-items: center; gap: 1.5rem; } .site-nav a { color: var(--brand-primary); text-decoration: none; font-weight: 600; padding-bottom: 0.25rem; border-bottom: 2px solid transparent; } .site-nav a:hover { color: var(--brand-primary); border-color: var(--brand-accent); } main { min-height: calc(100vh - 200px); padding: 2.5rem 0 3rem; } h1, h2, h3, h4 { color: var(--brand-primary); line-height: 1.3; } h1 { font-size: 1.9rem; font-weight: 400; margin-bottom: 0.9rem; } h2 { font-size: 1.65rem; font-weight: 600; margin-bottom: 0.9rem; } h3 { font-size: 1.15rem; font-weight: 600; margin-bottom: 0.75rem; } code { display: inline-block; padding: 0.08rem 0.35rem; border-radius: 8px; background: var(--brand-surface-alt); border: 1px solid var(--brand-border); } .btn { display: inline-block; padding: 0.72rem 1.5rem; background-color: var(--brand-accent); color: var(--brand-primary); text-decoration: none; border: 2px solid var(--brand-accent); border-radius: 14px; cursor: pointer; font-size: 0.96rem; font-weight: 600; transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background-color 0.2s ease; box-shadow: 0 12px 24px rgba(16, 16, 16, 0.08); } .btn:hover { background-color: var(--brand-accent); border-color: var(--brand-accent-dark); color: var(--brand-primary); transform: translateY(-1px); } .btn-secondary { background-color: #ece7d3; border-color: #cfc7af; color: #5a5648; } .btn-secondary:hover { background-color: #ded6bc; border-color: #9b9b9b; color: #4c4c4c; } .btn-small { padding: 0.48rem 1rem; font-size: 0.88rem; } .btn-block { display: block; width: 100%; text-align: center; } .products-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 2rem; margin-top: 2rem; } .product-card { background: var(--brand-surface); border-radius: 28px; overflow: hidden; border: 1px solid var(--brand-border); box-shadow: 0 20px 40px var(--brand-shadow); transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease; } .product-card:hover { transform: translateY(-6px); box-shadow: 0 26px 50px rgba(16, 16, 16, 0.12); border-color: var(--brand-border-strong); } .product-card img { width: 100%; height: 220px; object-fit: cover; background-color: #ece7d8; } .product-card-content { padding: 1.5rem; } .product-card h3 { margin-bottom: 0.35rem; } .product-card-title-link { color: inherit; text-decoration: none; } .product-card .price { font-size: 1.5rem; font-weight: 600; color: var(--brand-text); margin: 0.5rem 0; } .product-card .stock { font-size: 0.9rem; color: var(--brand-muted); margin-bottom: 1rem; } .product-card .stock.in-stock { color: var(--brand-accent); } .product-card .stock.out-of-stock { color: var(--brand-danger); } .product-summary { font-size: 0.95rem; color: var(--brand-muted); } .form-group { margin-bottom: 1.5rem; } .form-group label { display: block; margin-bottom: 0.5rem; font-weight: 500; } .form-group input, .form-group textarea, .form-group select { width: 100%; padding: 0.8rem 0.95rem; border: 1px solid var(--brand-border); border-radius: 18px; font-size: 1rem; font-family: inherit; background: var(--brand-bg-alt); color: var(--brand-text); } .form-group input[type="checkbox"] { width: auto; padding: 0; border: 0; border-radius: 0; background: transparent; margin: 0.15rem 0 0; flex-shrink: 0; } .form-group label.checkbox-label { display: flex; align-items: flex-start; gap: 0.55rem; margin-bottom: 0; } ::placeholder { color: var(--brand-muted); } .form-group input:focus, .form-group textarea:focus, .form-group select:focus { outline: none; border-color: var(--brand-accent); box-shadow: 0 0 0 3px rgba(255, 215, 28, 0.25); } .form-group small { display: block; margin-top: 0.45rem; color: var(--brand-muted); } .cart-item { background: var(--brand-surface); padding: 1.5rem; margin-bottom: 1rem; border-radius: 24px; border: 1px solid var(--brand-border); box-shadow: 0 18px 36px var(--brand-shadow); display: flex; justify-content: space-between; align-items: center; } .cart-item-info { flex: 1; } .cart-item-actions { display: flex; align-items: center; gap: 1rem; } .quantity-input { width: 60px; padding: 0.5rem; text-align: center; } table { width: 100%; background: var(--brand-surface); border-collapse: collapse; border: 1px solid var(--brand-border); box-shadow: 0 18px 36px var(--brand-shadow); border-radius: 24px; overflow: hidden; } table th { background-color: var(--brand-primary); color: white; padding: 1rem; text-align: left; font-weight: 600; } table td { padding: 1rem; border-top: 1px solid var(--brand-border); } table tr:hover { background-color: var(--brand-surface-alt); } .table-responsive { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; margin-bottom: 1.5rem; } .table-responsive table { width: 100%; } .table-responsive th, .table-responsive td { word-break: break-word; overflow-wrap: break-word; white-space: normal; } /* Admin: use more horizontal space so tables fit */ body.admin-page .container { max-width: none; padding-left: 1rem; padding-right: 1rem; } .alert { padding: 1rem; border-radius: 20px; margin-bottom: 1.5rem; background: var(--brand-bg-alt); color: var(--brand-text); border: 1px solid var(--brand-border); } .alert-success { background: var(--brand-success-soft); border-color: var(--brand-success); } .alert-error { border-color: var(--brand-danger); background: #fff3f1; } .alert-info { background: var(--brand-info-soft); border-color: rgba(30, 58, 95, 0.2); } .alert-warning { border-color: var(--brand-accent); background: #fff9da; } .disclaimer-box { margin: 1rem 0 1.5rem; padding: 1.2rem 1.3rem; border: 1px solid var(--brand-border); border-left: 6px solid var(--brand-accent); background: linear-gradient(135deg, rgba(255, 215, 28, 0.16), rgba(255, 255, 255, 0.92)); border-radius: 22px; } .disclaimer-box p + p { margin-top: 0.4rem; } .category-filter-bar { display: flex; gap: 0.75rem; margin: 1.5rem 0; overflow-x: auto; flex-wrap: nowrap; white-space: nowrap; padding-bottom: 0.25rem; -webkit-overflow-scrolling: touch; } .category-filter-bar .btn { flex: 0 0 auto; white-space: nowrap; } .site-footer { background: var(--brand-surface); border-top: 6px solid var(--brand-accent); padding: 2rem 0; margin-top: 3rem; } .site-footer-inner { display: flex; justify-content: space-between; gap: 2rem; align-items: flex-start; } .site-footer-title { font-weight: 600; margin-bottom: 0.2rem; } .site-footer-meta, .site-footer-address { color: var(--brand-muted); margin-bottom: 0.15rem; } .footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.5rem 1rem; } .footer-links a { color: var(--brand-primary); text-decoration: none; font-weight: 600; } .footer-links a:hover { color: var(--brand-primary); text-decoration: underline; } .order-number { background: var(--brand-surface-alt); border: 2px solid var(--brand-accent); padding: 2rem; border-radius: 24px; text-align: center; margin: 2rem 0; } .order-number h2 { font-size: 2rem; color: var(--brand-primary); letter-spacing: 0.2rem; font-family: 'Courier New', monospace; } .admin-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; } .admin-dashboard-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem; } .admin-actions-dropdown { position: relative; } .admin-actions-dropdown summary { list-style: none; } .admin-actions-dropdown summary::-webkit-details-marker { display: none; } .admin-actions-dropdown .btn { display: inline-block; } .admin-actions-dropdown[open] > .btn { background-color: var(--brand-surface-alt); } .admin-actions-menu { position: absolute; right: 0; top: calc(100% + 0.35rem); min-width: 220px; background: var(--brand-surface); border: 1px solid var(--brand-border); border-radius: 20px; box-shadow: 0 18px 36px var(--brand-shadow); z-index: 30; padding: 0.35rem; } .admin-actions-menu a { display: block; text-decoration: none; color: var(--brand-text); padding: 0.55rem 0.7rem; border-radius: 4px; } .admin-actions-menu a:hover { background: var(--brand-surface-alt); color: var(--brand-accent); } .faq-content h1, .faq-content h2, .faq-content h3 { margin: 1rem 0 0.6rem; } .faq-content h1:first-child, .faq-content h2:first-child, .faq-content h3:first-child { margin-top: 0; } .faq-content p + p { margin-top: 0.8rem; } .faq-content ul, .faq-content ol { margin: 0.7rem 0 0.9rem 1.5rem; } .faq-content li + li { margin-top: 0.35rem; } .admin-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.5rem; margin-bottom: 2rem; } .stat-card { background: var(--brand-surface); padding: 1.5rem; border-radius: 24px; border: 1px solid var(--brand-border); box-shadow: 0 18px 36px var(--brand-shadow); } .stat-card h3 { font-size: 0.9rem; color: var(--brand-muted); margin-bottom: 0.5rem; } .stat-card .stat-value { font-size: 2rem; font-weight: 600; color: var(--brand-primary); } .panel { background: var(--brand-surface); border: 1px solid var(--brand-border); padding: 1.5rem; border-radius: 24px; box-shadow: 0 18px 36px var(--brand-shadow); margin-bottom: 2rem; } .panel-lg { padding: 2rem; } .panel-compact { padding: 1rem; margin-bottom: 1rem; } .status { display: inline-block; padding: 0.3rem 0.8rem; border-radius: 999px; font-size: 0.85rem; font-weight: 600; letter-spacing: 0.02em; border: 1px solid transparent; background: rgba(255, 255, 255, 0.7); } .status-open { color: var(--brand-primary); background: #fff4b7; border-color: #e0c038; } .status-notified { color: var(--brand-info); background: var(--brand-info-soft); border-color: rgba(30, 58, 95, 0.2); } .status-picked, .status-processed { color: var(--brand-success); background: var(--brand-success-soft); border-color: rgba(25, 107, 59, 0.2); } .status-expired { color: var(--brand-danger); background: #fff3f1; border-color: rgba(180, 35, 24, 0.2); } .status-hidden { color: #9ca3af; border-color: #6b7280; background: #f1f3f5; } .status-unconfirmed { color: var(--brand-primary); background: #fff0a3; border-color: #e0c038; } .status-partial { color: #7c6517; background: #f9efcb; border-color: #e2ce7f; } .status-cancelled { color: var(--brand-danger); background: #fff3f1; border-color: rgba(180, 35, 24, 0.2); } .status-self { margin-left: 0.5rem; } .order-highlight { font-size: 1.5rem; color: var(--brand-primary); letter-spacing: 0.2rem; font-family: 'Courier New', monospace; } .modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); z-index: 1000; align-items: center; justify-content: center; } .modal-content { background: var(--brand-surface); color: var(--brand-text); padding: 2rem; border-radius: 24px; max-width: 1000px; max-height: 95vh; overflow-y: auto; position: relative; border: 1px solid var(--brand-border); } .modal-close { position: absolute; top: 1rem; right: 1rem; } .product-placeholder { width: 100%; height: 400px; background-color: var(--brand-surface-alt); border-radius: 28px; display: flex; align-items: center; justify-content: center; color: var(--brand-muted); } .table-compact th, .table-compact td { padding: 0.6rem; font-size: 0.9rem; } .product-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-top: 2rem; } .checkout-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-top: 2rem; } .product-image { width: 100%; border-radius: 28px; box-shadow: 0 20px 40px var(--brand-shadow); } .product-description-block { margin: 1.5rem 0 2rem; } .product-description { margin-top: 0.5rem; line-height: 1.8; } .product-form { margin-top: 2rem; } .cart-actions { text-align: right; margin: 2rem 0; } .cart-actions .cart-total { font-size: 1.5rem; font-weight: bold; margin-bottom: 1rem; } .cart-actions .cart-buttons { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; } .cart-actions .cart-buttons .btn { margin-left: 0; } .container-narrow { max-width: 400px; } .page-top-gap { margin-top: 4rem; } .inline-form { display: inline; } .admin-filter-form { display: flex; gap: 1rem; align-items: end; flex-wrap: wrap; } .admin-filter-field { min-width: 220px; } .admin-filter-field-wide { flex: 1; } .admin-filter-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; } .section-title { margin-bottom: 1rem; } .list-indent { margin-left: 1.5rem; } .is-hidden { display: none; } @media (max-width: 768px) { .header-inner { flex-direction: column; align-items: flex-start; } .site-nav { flex-wrap: wrap; gap: 1rem; } .footer-links { flex-direction: column; align-items: flex-start; } .brand-logo { height: 62px; } .products-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; } .product-detail-grid { grid-template-columns: 1fr; gap: 1.5rem; } .cart-item { flex-direction: column; align-items: flex-start; } .cart-item-actions { width: 100%; justify-content: space-between; margin-top: 1rem; } .cart-actions { text-align: left; } .cart-actions .cart-buttons { flex-direction: column; align-items: stretch; } .cart-actions .cart-buttons .btn { margin-left: 0; } .checkout-grid { grid-template-columns: 1fr; gap: 1.5rem; } .modal-content { margin: 1rem; max-height: calc(100vh - 2rem); } .admin-header { flex-direction: column; align-items: stretch; gap: 1rem; } .admin-header > div { display: flex; flex-wrap: wrap; gap: 0.5rem; } .admin-header .btn { flex: 1 1 auto; min-width: 140px; } .admin-dashboard-actions { flex-direction: column; align-items: stretch; } .admin-dashboard-actions > .btn, .admin-dashboard-actions > .admin-actions-dropdown { width: 100%; } .admin-actions-dropdown .btn { width: 100%; text-align: center; } .admin-actions-menu { position: static; min-width: 0; margin-top: 0.45rem; } table { font-size: 0.9rem; } table th, table td { padding: 0.5rem; } .admin-stats { grid-template-columns: 1fr; } .site-footer-inner { flex-direction: column; } body.admin-page .table-responsive { margin-left: -1rem; margin-right: -1rem; padding-left: 1rem; padding-right: 1rem; } .table-responsive .btn { white-space: normal; } .category-filter-bar { margin-left: -1rem; margin-right: -1rem; padding-left: 1rem; padding-right: 1rem; } body.admin-page table.responsive-table { border: 0; box-shadow: none; background: transparent; } body.admin-page table.responsive-table thead { display: none; } body.admin-page table.responsive-table tbody { display: block; } body.admin-page table.responsive-table tr { display: block; background: var(--brand-surface); border: 1px solid var(--brand-border); border-radius: 20px; margin-bottom: 0.8rem; box-shadow: 0 18px 36px var(--brand-shadow); } body.admin-page table.responsive-table td { display: flex; justify-content: space-between; gap: 1rem; width: 100%; border-top: 1px solid var(--brand-border); border-bottom: 0; padding: 0.65rem 0.85rem; text-align: right; } body.admin-page table.responsive-table td:first-child { border-top: 0; } body.admin-page table.responsive-table td::before { content: attr(data-label); font-weight: 600; color: var(--brand-muted); text-align: left; } body.admin-page table.responsive-table td[data-label="Aktionen"] { display: block; text-align: left; } body.admin-page table.responsive-table td[data-label="Aktionen"]::before { display: block; margin-bottom: 0.4rem; } } @media (max-width: 480px) { .container { padding: 0 12px; } main { padding: 1rem 0; } .brand-title { font-size: 1.1rem; } .brand-subtitle { font-size: 0.8rem; } .products-grid { grid-template-columns: 1fr; gap: 1rem; } .table-responsive table:not(.responsive-table) { min-width: 520px; } } .text-center { text-align: center; } .mt-1 { margin-top: 0.5rem; } .mt-2 { margin-top: 1rem; } .mt-3 { margin-top: 1.5rem; } .mt-4 { margin-top: 2rem; } .mb-1 { margin-bottom: 0.5rem; } .mb-2 { margin-bottom: 1rem; } .mb-3 { margin-bottom: 1.5rem; }