:root{--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--text-primary: #1a1a1a;--text-secondary: #4a4a4a;--text-tertiary: #6b7280;--border-light: #e5e5e5;--border-medium: #d1d5db;--accent: #2563eb;--accent-hover: #1d4ed8;--success: #22c55e;--warning: #f59e0b;--error: #ef4444;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;padding:1rem}.container{max-width:1200px;margin:0 auto;padding:1rem}h1{font-size:2rem;font-weight:700;margin-bottom:1rem}h2{font-size:1.5rem;font-weight:600;margin-bottom:.75rem}h3{font-size:1.25rem;font-weight:600;margin-bottom:.5rem}p,.form-group{margin-bottom:1rem}.form-label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-primary)}.form-input{width:100%;padding:.5rem;border:1px solid var(--border-light);border-radius:6px;font-size:.95rem;transition:border-color .2s ease}.form-input:focus{outline:none;border-color:var(--accent)}.button{display:inline-block;padding:.5rem 1rem;border-radius:6px;font-weight:500;text-decoration:none;cursor:pointer;transition:all .2s ease;border:none;font-size:.95rem}.button-primary{background-color:var(--accent);color:#fff}.button-primary:hover{background-color:var(--accent-hover)}.button-secondary{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid #6c757d}.button-secondary:hover{background-color:var(--bg-tertiary)}.button:disabled{opacity:.4;transform:none}.button:disabled:hover{transform:none;box-shadow:none}.alert{padding:1rem;border-radius:6px;margin-bottom:1rem}.alert-error{background-color:#fee2e2;color:#991b1b}.template-card{background-color:#fff;border:1px solid var(--gray-200);border-radius:8px;padding:1rem;margin-bottom:.5rem;transition:all .2s ease;cursor:pointer}.template-card:hover{border-color:var(--gray-300)}.template-card.expanded{box-shadow:0 2px 4px #0000000d}.template-line-1{font-weight:400;display:flex;justify-content:space-between;align-items:center}.template-line-2{font-weight:300;color:var(--gray-700);opacity:0;transform:translateY(-10px);transition:all .2s ease;display:none}.template-line-3{font-style:italic;color:var(--gray-600);opacity:0;transform:translateY(-10px);transition:all .2s ease;display:none}.template-line-4{color:var(--accent);text-decoration:none;opacity:0;transform:translateY(-10px);transition:all .2s ease;display:none}.template-line-4:hover{text-decoration:underline}.template-price{text-align:right;font-weight:500;color:var(--gray-800)}.template-card.expanded .template-line-2,.template-card.expanded .template-line-3,.template-card.expanded .template-line-4{opacity:1;transform:translateY(0);display:flex}.template-heading{font-size:1.08rem;font-weight:400;color:var(--gray-800);margin:.7rem 0 .2rem;padding:0;background:none;border-radius:0;border:none;letter-spacing:.01em;text-align:left}.template-subheading{font-size:1.1rem;font-weight:500;color:var(--gray-700);margin:1rem 0 .5rem;padding:.5rem;background-color:var(--gray-50);border-radius:4px}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}h1{font-size:3.2em;line-height:1.1}#app{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.vanilla:hover{filter:drop-shadow(0 0 2em #f7df1eaa)}.card{padding:2em}.read-the-docs{color:#888}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:border-color .25s}button:hover{border-color:#6c757d}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.dashboard-container button:focus,.dashboard-container button:focus-visible{outline:none;border-color:transparent!important}@keyframes glow{0%{box-shadow:0 0 0 transparent}50%{box-shadow:0 0 8px #ffbf6866}to{box-shadow:0 0 0 transparent}}.highlighted{animation:glow 2.5s ease-in-out;transition:box-shadow .3s ease}.import-container{max-width:800px;margin:0 auto;padding:2rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-weight:500}.import-input{width:100%;padding:.6em 1.2em;font-size:1em;font-family:inherit;border:1px solid var(--border-light);border-radius:8px;background-color:var(--bg-secondary);color:var(--text-primary)}.import-textarea{width:100%;min-height:200px;padding:1rem;font-family:inherit;border:1px solid var(--border-light);border-radius:8px;background-color:var(--bg-secondary);color:var(--text-primary);resize:vertical}.import-button{background-color:var(--accent);color:#fff;border:none;padding:.6em 1.2em;font-size:1em;font-weight:500;border-radius:8px;cursor:pointer;transition:background-color .2s ease}.import-button:hover{background-color:var(--accent-hover)}.error-message{color:var(--error);font-size:.9em;margin-top:.5rem}.mapping-grid{display:grid;gap:1rem;margin:1rem 0}.mapping-row{display:grid;grid-template-columns:1fr 2fr;gap:1rem;align-items:start;padding:1rem;background-color:var(--bg-secondary);border:1px solid var(--border-light);border-radius:6px}.mapping-row label{margin:0;color:var(--text-secondary)}.mapping-controls{display:grid;gap:.5rem}.mapping-controls select,.mapping-controls input{width:100%}.data-table-container{overflow-x:auto;margin:1rem 0;border:1px solid var(--border-light);border-radius:6px}.data-table{width:100%;border-collapse:collapse;background-color:var(--bg-primary)}.data-table th{padding:.5rem;background-color:var(--bg-secondary);border-bottom:2px solid var(--border-light);position:sticky;top:0}.data-table td{padding:.5rem;border-bottom:1px solid var(--border-light)}.data-table tr:last-child td{border-bottom:none}.column-mapping{display:grid;gap:.5rem}.column-mapping select,.column-mapping input{width:100%;min-width:150px}.dashboard-container{max-width:1200px;margin:0 auto;padding:2rem}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.dashboard-title{font-size:1.5rem;font-weight:600;margin:0;color:var(--text-primary)}.datasets-table{width:100%;background:var(--bg-primary);border-radius:8px;border:1px solid var(--border-light);overflow:hidden}.datasets-table table{width:100%;border-collapse:collapse}.datasets-table th{text-align:left;padding:1rem;background:var(--bg-secondary);font-weight:600;color:var(--text-secondary);font-size:.875rem}.datasets-table td{padding:1rem;border-top:1px solid var(--border-light)}.datasets-table tr:hover{background:var(--bg-secondary);cursor:pointer}.empty-state{text-align:center;padding:3rem;color:var(--text-secondary);background:var(--bg-primary);border-radius:8px;border:1px solid var(--border-light)}@keyframes pulse{0%{box-shadow:0 0 #6c757d66}70%{box-shadow:0 0 0 8px #6c757d00}to{box-shadow:0 0 #6c757d00}}.pulse-highlight{animation:pulse 1.2s infinite}.generation-title{font-size:1.1rem;font-weight:300;color:var(--text-primary);margin:.5rem 0 1rem;letter-spacing:.01em}.generation-description{color:var(--text-secondary);font-weight:400;margin:0 0 1.5rem;line-height:1.5}.shortlist-groups{margin-top:2rem}.selection-panel{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:8px;padding:1.5rem;margin-top:1rem}.selection-item-info{flex:1;display:flex;justify-content:space-between;align-items:center}.selection-item-name{font-weight:500;color:var(--text-primary)}.selection-item-price{color:var(--text-secondary);font-size:.9rem}.quantity-button{background:var(--accent);color:#fff;border:none;border-radius:4px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-weight:700}.quantity-button:hover{background:var(--accent-dark)}.selection-total{margin-top:1rem;padding-top:1rem;border-top:2px solid var(--border-light);text-align:right;font-weight:700;font-size:1.1rem;color:var(--text-primary)}.quantity-controls-line{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-light);border-top:none;border-radius:0 0 8px 8px;margin-top:-1px}.quantity-controls-left{flex:1}.quantity-label{font-weight:400;color:var(--text-primary);font-size:.9rem}.quantity-controls-center{display:flex;align-items:center;gap:0;flex:1;justify-content:flex-start}.quantity-controls-center .quantity-button-plus10{margin-left:.75rem}.quantity-button-small{background:var(--accent);color:#fff;border:none;border-radius:4px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-weight:700;font-size:.8rem}.quantity-button-small:hover{background:var(--accent-hover)}.quantity-button-plus10{background:var(--accent-light, #60a5fa)!important;font-size:.8rem;width:36px}.quantity-button-plus10:hover{background:var(--accent, #3b82f6)!important}.quantity-display{font-weight:400;color:var(--text-primary);font-size:.9rem;min-width:60px;text-align:center}.quantity-controls-right{flex:1;text-align:right}.quantity-total{font-weight:400;color:var(--text-primary);font-size:1rem}.groups-list{display:flex;flex-direction:column;gap:.25rem}.group-item{padding:.5rem 0;border-bottom:1px solid var(--border-light)}.group-item:last-child{border-bottom:none}.group-item .template-heading{font-size:1rem;font-weight:400;color:var(--text-primary);transition:color .2s ease}.order-page-title{font-size:1.5rem;font-weight:400}.order-page-subtitle{color:var(--text-secondary);margin-top:.25rem;font-size:.9rem}.order-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.order-total-line,.order-qr-section{display:flex;justify-content:space-between;align-items:center}.selection-id-subtle{text-align:right;font-size:.85rem;color:var(--text-primary, #1e293b);font-weight:400;margin-top:.5rem;font-family:monospace}.order-details-section{margin-top:2rem}.order-detail-line{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border-light, #e5e7eb);color:var(--text-primary, #1e293b);font-weight:400}.detail-label,.detail-value{color:var(--text-primary, #1e293b);font-weight:400}.selection-simple-container{max-width:800px;margin:0 auto;padding:2rem;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6;color:#1e293b}.selection-simple-header{text-align:center;margin-bottom:3rem;border-bottom:1px solid #e5e7eb;padding-bottom:2rem}.selection-simple-header h1{font-size:2rem;font-weight:400;margin:0 0 .5rem;color:#1e293b}.selection-simple-header .subtitle{font-size:1rem;color:#64748b;margin:0 0 1rem}.selection-simple-header .selection-id{font-size:.85rem;color:#64748b;font-family:monospace;font-weight:400}.selection-simple-items{margin-bottom:2rem}.selection-simple-item{padding:.75rem 0;border-bottom:1px solid #f1f5f9}.selection-simple-item:last-child{border-bottom:none}.item-details{font-size:.95rem;color:#1e293b;font-weight:400;margin-bottom:.5rem;text-align:left}.item-quantity-line{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;align-items:center}.item-quantity,.item-price{text-align:center;font-size:.9rem;color:#64748b;font-weight:400}.item-total{text-align:right;font-size:.95rem;color:#1e293b;font-weight:500}.selection-simple-total{margin:2rem 0;padding:1rem 0;border-top:2px solid #1e293b;border-bottom:2px solid #1e293b}.total-line{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;align-items:center}.total-label{font-size:1.1rem;color:#1e293b;font-weight:500;text-align:left}.total-quantity{text-align:center;font-size:1rem;color:#1e293b;font-weight:500}.total-amount{text-align:right;font-size:1.2rem;color:#1e293b;font-weight:600}.selection-simple-info{margin-top:3rem;padding-top:2rem;border-top:1px solid #e5e7eb}.info-line{display:flex;justify-content:space-between;align-items:center;padding:.25rem 0;font-size:.9rem}.info-label{color:#64748b;font-weight:400}.info-value{color:#1e293b;font-weight:400;font-family:monospace}.qr-section{text-align:center;margin-top:1.5rem;padding:1rem;background:#f8fafc;border-radius:8px}@media print{.selection-simple-container{padding:0;max-width:none}.selection-simple-header{margin-bottom:2rem}.selection-simple-item{break-inside:avoid}.qr-section{background:#fff;border:1px solid #e5e7eb}}.order-item-total-line{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;margin-bottom:1rem;font-size:.85rem;color:var(--text-secondary)}.order-item-total-line .total-amount{font-weight:500;color:var(--text-primary)}.order-total-line{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;margin:1.5rem 0;font-size:1rem;color:var(--text-primary);border-top:1px solid var(--border-light);border-bottom:1px solid var(--border-light)}.order-total-line .total-amount{font-weight:400;font-size:1.2rem}.selection-layout{display:grid;grid-template-columns:1fr 400px;gap:2rem;min-height:70vh}.selection-panel{border:1px solid var(--border-light);border-radius:8px;padding:1rem;background-color:var(--bg-secondary);min-height:300px;position:sticky;top:1rem;display:block}.selection-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--border-light)}.selection-item:last-child{border-bottom:none}.selection-item-info{flex:1;margin-right:1rem}.selection-item-name{font-weight:500;color:var(--text-primary);margin-bottom:.25rem}.selection-item-price{font-size:.9rem;color:var(--text-secondary)}.selection-quantity-controls{display:flex;align-items:center;gap:.5rem}.quantity-button{width:32px;height:32px;border:1px solid var(--border-light);background:var(--bg-primary);border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;font-weight:500}.quantity-button:hover{background:var(--bg-secondary)}.quantity-input{width:50px;text-align:center;border:1px solid var(--border-light);border-radius:4px;padding:.25rem;font-size:.9rem}.selection-total{margin-top:1rem;padding-top:1rem;border-top:2px solid var(--border-light);font-weight:600;font-size:1.1rem;color:var(--text-primary)}.selection-button{width:100%;margin-top:1rem;padding:.75rem;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer}.selection-button:hover{background:var(--accent-hover)}.selection-button:disabled{background:var(--text-tertiary);cursor:not-allowed}.selection-tabs{display:flex;margin-bottom:1rem;border-bottom:1px solid var(--border-light)}.selection-tab{flex:1;padding:.75rem 1rem;border:none;background:transparent;color:var(--text-secondary);font-size:1rem;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s ease}.selection-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.selection-tab:hover{color:var(--text-primary)}.selection-overview-panel,.selection-list-panel{display:none}.selection-overview-panel.active,.selection-list-panel.active{display:block}.overview-groups{display:flex;flex-direction:column;gap:.5rem}.overview-group-item{padding:1rem;border:1px solid var(--border-light);border-radius:6px;background:var(--bg-primary);cursor:pointer;transition:all .2s ease}.overview-group-item:hover{border-color:var(--accent);background:var(--bg-secondary)}.overview-group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.overview-group-name{font-weight:500;color:var(--text-primary);font-size:1rem}.overview-group-count{font-size:.9rem;color:var(--text-secondary)}.overview-group-selected{font-size:.85rem;color:var(--accent);font-weight:500}.back-to-top-button{position:fixed;bottom:2rem;right:2rem;width:50px;height:50px;border-radius:50%;background:var(--accent);color:#fff;border:none;font-size:1.5rem;font-weight:700;cursor:pointer;box-shadow:0 4px 12px #00000026;transition:all .3s ease;z-index:1000;display:flex;align-items:center;justify-content:center}.back-to-top-button:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 6px 16px #0003}.back-to-top-button:active{transform:translateY(0)}@media (max-width: 768px){.order-page-title{font-size:1.25rem}.order-page-subtitle{font-size:.8rem}.order-details-grid{grid-template-columns:1fr;gap:.75rem}.order-qr-section{flex-direction:column;align-items:flex-start;gap:.75rem}.order-qr-code{align-self:center}.order-item-total-line,.order-total-line{flex-direction:row!important;align-items:center!important;gap:.5rem!important}.selection-layout{grid-template-columns:1fr;gap:1rem}.selection-panel{position:static;order:2;display:block}.quantity-controls-line{justify-content:space-between}.quantity-controls-left{flex:0 0 auto}.quantity-controls-center{flex:1;justify-content:flex-start}.quantity-controls-right{flex:0 0 auto;text-align:right}.selection-layout>div:first-child{order:1}.quantity-button{width:36px;height:36px}.quantity-input{width:60px;padding:.5rem}.back-to-top-button{bottom:1rem;right:1rem;width:45px;height:45px;font-size:1.3rem}}@media (max-width: 600px){.container{padding:.25rem}.header .actions{flex-direction:column;gap:8px;align-items:stretch}.button,.button-primary,.button-secondary{width:100%;font-size:1rem;padding:.75rem 1rem}.template-card{padding:.75rem;font-size:.98rem}.generation-title{font-size:1.1rem;font-weight:300;color:var(--text-primary);margin:.5rem 0 1rem;letter-spacing:.01em}.generation-description{font-size:1rem}.order-total-line{flex-direction:column;align-items:flex-start;gap:.25rem}.order-qr-section{flex-direction:column;align-items:flex-start;gap:.75rem}.order-qr-code{align-self:center}}@media print{@page{margin:2.5cm 1.5cm 1.5cm}.actions,.button,.button-primary,.button-secondary,.pulse-highlight,.footer,.generation-footer-preview{display:none!important}body,.container,.template-card{background:none!important;box-shadow:none!important}body,.container,.template-card,.template-heading,.generation-title,.generation-description{color:#000!important}body,.container,.template-card,.template-heading,.generation-description{font-size:10pt!important}.generation-title{font-size:14pt!important;font-weight:400;color:#000!important}.template-heading{break-after:avoid;page-break-after:avoid;border-bottom:.5px solid #000!important;padding-bottom:.2em;margin-bottom:.5em}.template-card{break-inside:avoid;page-break-inside:avoid;break-before:avoid;page-break-before:avoid;border-width:.5px!important;border-color:#000!important}.group-block{break-inside:avoid;page-break-inside:avoid}}
