.material-symbols-outlined { font-size: 1.25rem; } .card { background: var(--surface-white); border: 1px solid var(--outline-dim); border-radius: var(--radius-md); display: flex; flex-direction: column; } .card > header { padding: var(--space-sm) var(--space-md); border-bottom: 1px solid var(--outline-dim); display: flex; align-items: center; justify-content: space-between; background: var(--surface-low); gap: var(--space-sm); } .card > header h2 .material-symbols-outlined { color: var(--on-surface-dim); } .card > div, .card > form { padding: var(--space-md); flex: 1; } .card > footer { padding: var(--space-sm) var(--space-md); border-top: 1px solid var(--outline-dim); display: flex; justify-content: flex-end; align-items: center; gap: var(--space-sm); flex-shrink: 0; } .card > table { border-collapse: separate; border-spacing: 0; } .card > table th:first-child { padding-left: var(--space-md); } .card > table td:first-child { padding-left: var(--space-md); } .card > table th:last-child { padding-right: var(--space-md); } .card > table td:last-child { padding-right: var(--space-md); } .card-sm { max-width: 30rem; } .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-sm); padding: 0 var(--space-md); height: 2.5rem; border: none; border-radius: var(--radius-sm); font-size: 0.875rem; font-weight: 600; cursor: pointer; text-decoration: none; white-space: nowrap; } .btn-primary { background: var(--primary); color: var(--on-primary); } .btn-outline { background: transparent; border: 1px solid var(--outline-dim); color: var(--on-surface); } .btn-sm { height: 2rem; padding: 0 var(--space-sm); font-size: 0.75rem; } .btn-icon { color: var(--on-surface-dim); cursor: pointer; background: none; border: none; padding: var(--space-xs); border-radius: var(--radius-sm); display: inline-flex; align-items: center; justify-content: center; } .btn-icon .material-symbols-outlined { font-size: 1.25rem; } .remove { color: var(--error); cursor: pointer; background: none; border: none; display: inline-flex; align-items: center; justify-content: center; padding: var(--space-xs); border-radius: var(--radius-sm); } .remove .material-symbols-outlined { font-size: 1rem; } .tag-chip { display: inline-flex; align-items: center; padding: var(--space-xs) var(--space-sm); border-radius: var(--radius-full); font-size: 0.75rem; font-weight: 600; color: var(--on-surface-dim); background: var(--surface-highest); border: 1px solid var(--outline-dim); cursor: pointer; user-select: none; white-space: nowrap; } .tag-chip.sm { font-size: 0.625rem; padding: 0.125rem 0.375rem; } .tag-chip.active { color: var(--primary); border-color: var(--primary); background: var(--primary-container); } .tag-chip input[type="checkbox"] { display: none; } .tag-grid { display: flex; flex-wrap: wrap; gap: var(--space-xs); } .tag-row { padding: var(--space-sm) var(--space-md) 0; display: flex; flex-wrap: wrap; gap: var(--space-xs); } .toggle-group { display: flex; height: 2rem; border-radius: var(--radius-sm); border: 1px solid var(--outline-dim); overflow: hidden; } .toggle-btn { flex: 1; border: none; background: var(--surface-white); color: var(--on-surface-dim); font-size: 0.875rem; font-weight: 600; cursor: pointer; padding: 0 var(--space-sm); } .toggle-btn:not(:last-child) { border-right: 1px solid var(--outline-dim); } .toggle-btn.active { background: var(--primary); color: var(--on-primary); } .data-table .order-id { font-weight: 700; color: var(--primary); text-decoration: none; } .search { position: relative; } .search .material-symbols-outlined { position: absolute; left: var(--space-sm); top: 50%; transform: translateY(-50%); font-size: 1rem; color: var(--on-surface-dim); pointer-events: none; } .search input { padding-left: 1.75rem; font-size: 0.875rem; } .metric { background: var(--surface-white); border: 1px solid var(--outline-dim); border-radius: var(--radius-md); padding: var(--space-md); display: flex; flex-direction: column; gap: var(--space-xs); } .metric .label { font-size: 0.75rem; font-weight: 500; color: var(--on-surface-dim); letter-spacing: 0.02em; display: flex; align-items: center; gap: var(--space-xs); } .metric .label .material-symbols-outlined { font-size: 1rem; } .metric .value { font-size: 1.75rem; font-weight: 700; line-height: 1.2; } .metric .change { font-size: 0.75rem; font-weight: 600; } .split-pane { display: flex; flex-direction: column; gap: var(--space-md); flex: 1; min-height: 0; } .order-left { flex: 1; display: flex; flex-direction: column; gap: var(--space-md); min-width: 0; } .order-aside { width: 100%; flex-shrink: 0; display: flex; flex-direction: column; } .order-aside .card { flex: 1; display: flex; flex-direction: column; } #basket-items { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: var(--space-sm); min-height: 0; } #basket-items:empty { display: none; } #basket-items > li { display: flex; align-items: flex-start; gap: var(--space-sm); padding: 0 var(--space-md) var(--space-sm); border-bottom: 1px solid var(--outline-dim); } #basket-items > li:first-child { padding-top: var(--space-md); } #basket-items > li:last-child { border-bottom: none; padding-bottom: var(--space-md); } .basket-item-body { flex: 1; min-width: 0; } .basket-item-body .name { font-size: 0.875rem; font-weight: 600; } .basket-item-body .detail { font-size: 0.75rem; color: var(--on-surface-dim); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .basket-item-tags { margin-top: var(--space-xs); display: flex; flex-wrap: wrap; gap: 0.125rem; } #basket-items .price { font-size: 0.875rem; font-weight: 600; white-space: nowrap; flex-shrink: 0; } .basket-item-actions { display: flex; flex-direction: column; gap: 0.125rem; flex-shrink: 0; } .basket-item-actions .btn-icon .material-symbols-outlined, .basket-item-actions .remove .material-symbols-outlined { font-size: 1rem; } .summary-totals { padding: var(--space-md); border-top: 1px solid var(--outline-dim); background: var(--surface); flex-shrink: 0; } .total-row { display: flex; justify-content: space-between; align-items: center; font-size: 0.875rem; color: var(--on-surface-dim); } .total-row + .total-row { margin-top: var(--space-sm); } .total-row.grand { font-size: 1rem; font-weight: 700; color: var(--on-surface); padding-top: var(--space-sm); border-top: 1px solid var(--outline-dim); margin-top: var(--space-sm); } .btn-finalize { width: 100%; height: 2.5rem; margin-top: var(--space-sm); background: var(--primary); color: var(--on-primary); border: none; border-radius: var(--radius-sm); font-size: 0.875rem; font-weight: 600; display: flex; align-items: center; justify-content: center; gap: var(--space-sm); cursor: pointer; } @media (min-width: 64em) { .split-pane { flex-direction: row; } .order-aside { width: 20rem; } } .catalogue-scroll { overflow-y: auto; padding: var(--space-md); } #catalogue-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(8.75rem, 1fr)); gap: var(--space-sm); } #catalogue-grid > li { border: 1px solid var(--outline-dim); border-radius: var(--radius-sm); padding: var(--space-sm); display: flex; flex-direction: column; justify-content: space-between; background: var(--surface); } #catalogue-grid > li > div:first-child { display: flex; align-items: flex-start; gap: var(--space-sm); } #catalogue-grid .icon { width: 2rem; height: 2rem; border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1rem; } #catalogue-grid .icon.cake { background: var(--primary-container); color: var(--primary); } #catalogue-grid .name { font-size: 0.75rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } #catalogue-grid .price { font-size: 0.75rem; color: var(--on-surface-dim); } #catalogue-grid .actions { display: flex; align-items: center; justify-content: space-between; margin-top: var(--space-sm); padding-top: var(--space-sm); border-top: 1px solid var(--outline-dim); } #catalogue-grid .qty { width: 1.5rem; height: 1.5rem; display: flex; align-items: center; justify-content: center; border: none; border-radius: var(--radius-sm); cursor: pointer; font-size: 1rem; } #catalogue-grid .qty .material-symbols-outlined { font-size: 1rem; } #catalogue-grid .qty.minus { background: var(--surface-low); color: var(--on-surface-dim); } #catalogue-grid .qty.plus { background: var(--surface-highest); color: var(--on-surface); } #catalogue-grid .value { font-size: 0.75rem; font-weight: 500; width: 1.5rem; text-align: center; } .overlay { position: fixed; inset: 0; z-index: 1000; display: none; } .overlay.open { display: flex; justify-content: flex-end; } .overlay-backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.3); } .overlay-panel { position: relative; width: 22rem; max-width: 100vw; height: 100%; background: var(--surface); display: flex; flex-direction: column; box-shadow: -0.25rem 0 1.5rem rgba(0, 0, 0, 0.15); } .overlay-panel > header { display: flex; align-items: center; justify-content: space-between; padding: var(--space-md) var(--space-lg); border-bottom: 1px solid var(--outline-dim); } .overlay-panel > header h2 { font-size: 1rem; font-weight: 600; display: flex; align-items: center; gap: var(--space-sm); } .overlay-panel > header .close-btn { background: none; border: none; cursor: pointer; color: var(--on-surface-dim); padding: var(--space-xs); border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; } .overlay-body { flex: 1; overflow-y: auto; padding: var(--space-lg); } .overlay-body { display: flex; flex-direction: column; gap: var(--space-sm); } .overlay-body label { font-size: 0.75rem; font-weight: 600; color: var(--on-surface-dim); letter-spacing: 0.02em; } .overlay-panel > footer { display: flex; gap: var(--space-sm); justify-content: flex-end; padding: var(--space-md) var(--space-lg); border-top: 1px solid var(--outline-dim); } .button-center { padding: var(--space-md); text-align: center; } .card-catalogue { flex: 1; min-height: 12.5rem; } .form-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-sm); } @media (max-width: 64em) { .form-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 48em) { .form-grid { grid-template-columns: 1fr; } } label { font-size: 0.75rem; font-weight: 600; color: var(--on-surface-dim); letter-spacing: 0.02em; } label + input, label + select, label + textarea, label + div:not(.tag-grid) { margin-top: var(--space-xs); } input + label, select + label, textarea + label { margin-top: var(--space-sm); } .form-grid label { display: block; font-size: 0.75rem; font-weight: 600; color: var(--on-surface-dim); letter-spacing: 0.02em; margin-bottom: var(--space-xs); } .form-grid > div { display: flex; flex-direction: column; } .horizontal-group { display: flex; gap: var(--space-sm); align-items: center; flex-wrap: wrap; } .form-actions { display: flex; justify-content: flex-end; gap: var(--space-sm); padding-top: var(--space-sm); } .preset-group { display: flex; } .preset-btn { padding: 0.375rem 0.625rem; font-size: 0.875rem; font-weight: 600; color: var(--on-surface-dim); text-decoration: none; display: inline-flex; align-items: center; } .preset-btn.active { color: var(--primary); } .filter-bar { padding: var(--space-sm) var(--space-md); border-bottom: 1px solid var(--outline-dim); display: flex; flex-wrap: wrap; gap: var(--space-xs); align-items: center; } .filter-bar .filter-label { font-size: 0.75rem; font-weight: 600; color: var(--on-surface-dim); } .header-actions { display: flex; align-items: center; gap: var(--space-sm); } .confirmation { display: flex; flex-direction: column; align-items: center; justify-content: center; flex: 1; gap: var(--space-sm); text-align: center; } .confirmation .success-icon { font-size: 3rem; color: var(--success-text); } .icon { width: 2rem; height: 2rem; border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .icon.cake { background: var(--primary-container); color: var(--primary); } .text-right { text-align: right; } .text-center { text-align: center; } .text-muted { color: var(--on-surface-dim); font-weight: 400; } .font-bold { font-weight: 700; } .font-medium { font-weight: 500; } .empty-state { text-align: center; padding: var(--space-md) 0; color: var(--on-surface-dim); } .hide { display: none; }