:root{--color-bg: #ffffff;--color-surface: #f9fafb;--color-border: #e5e7eb;--color-text-primary: #111827;--color-text-secondary: #6b7280;--color-text-muted: #9ca3af;--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-primary-text: #ffffff;--color-secondary: #6b7280;--color-secondary-hover: #4b5563;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-info: #3b82f6;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--color-bg);color:var(--color-text-primary)}#root{min-height:100vh;display:flex;flex-direction:column}a{font-weight:500;color:var(--color-primary);text-decoration:none}a:hover,a:focus{color:var(--color-primary-hover);text-decoration:underline}a:focus{outline:2px solid var(--color-primary);outline-offset:2px}h1,h2,h3,h4,h5,h6{margin:0;color:var(--color-text-primary);line-height:1.2}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s ease}button:focus,button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background-color:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border)}input,select,textarea{font-family:inherit;font-size:1rem;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:6px;background-color:var(--color-bg);color:var(--color-text-primary);transition:border-color .2s ease,box-shadow .2s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f633}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}label{font-weight:500;color:var(--color-text-primary);display:block;margin-bottom:.25rem}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:1rem;box-shadow:var(--shadow-sm);transition:background-color .2s ease,border-color .2s ease}.card:hover{box-shadow:var(--shadow-md)}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:600;border-radius:9999px}.badge-pending{background-color:#f59e0b1a;color:var(--color-warning)}.badge-confirmed{background-color:#3b82f61a;color:var(--color-info)}.badge-shipped{background-color:#8b5cf61a;color:#8b5cf6}.badge-completed{background-color:#10b9811a;color:var(--color-success)}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.text-error{color:var(--color-error)}.text-success{color:var(--color-success)}._container_14wi9_1{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px;background-color:#f8f9fa}._card_14wi9_10{text-align:center;max-width:480px;background-color:#fff;border-radius:8px;padding:40px 30px;box-shadow:0 2px 8px #0000001a}._title_14wi9_19{font-size:24px;color:#2c3e50;margin:0 0 16px}._message_14wi9_25{font-size:16px;color:#7f8c8d;margin:0;line-height:1.6}._adminLink_14wi9_32{display:inline-block;margin-top:24px;padding:10px 24px;background-color:#3498db;color:#fff;text-decoration:none;border-radius:6px;font-size:14px;font-weight:500;transition:background-color .2s}._adminLink_14wi9_32:hover{background-color:#2980b9}.update-banner{position:fixed;top:0;left:0;right:0;z-index:9998;display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 16px;background-color:var(--color-info);color:#fff;font-size:14px;font-weight:500;box-shadow:var(--shadow-md)}.update-banner button{padding:4px 12px;background-color:#fff;color:var(--color-info);border:none;border-radius:4px;font-size:13px;font-weight:600;cursor:pointer}.update-banner button:hover{background-color:#e8f0fe}.error-message{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background-color:#ef44441a;border:1px solid var(--color-error);border-radius:8px;color:var(--color-error)}.error-message-icon{font-size:1.25rem;line-height:1}.error-message-text{flex:1;line-height:1.5}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem;min-height:200px}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.loading-text{color:var(--color-text-secondary);font-size:.875rem}@keyframes spin{to{transform:rotate(360deg)}}.friend-registration-screen{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:2rem;background-color:var(--color-bg)}.friend-registration-content{max-width:400px;text-align:center}.friend-registration-content h2{font-size:1.25rem;font-weight:700;color:var(--color-text-primary);margin:0 0 1rem;line-height:1.4}.friend-registration-content p{font-size:.9375rem;color:var(--color-text-secondary);margin:0 0 2rem;line-height:1.6}.friend-add-link{display:block;padding:.875rem 1.5rem;background-color:#06c755;color:#fff;font-size:1rem;font-weight:600;text-decoration:none;border-radius:8px;margin-bottom:1rem;transition:background-color .2s}.friend-add-link:hover{background-color:#05b34c}.friend-retry-button{display:block;width:100%;padding:.875rem 1.5rem;background-color:transparent;color:var(--color-primary);font-size:.9375rem;font-weight:500;border:1px solid var(--color-border);border-radius:8px;cursor:pointer;transition:background-color .2s}.friend-retry-button:hover{background-color:var(--color-surface)}.dev-ribbon{position:fixed;top:0;right:0;z-index:9999;overflow:hidden;width:120px;height:120px;pointer-events:none}.dev-ribbon span{display:block;width:200px;padding:4px 0;background:#e74c3c;color:#fff;font-size:11px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:1px;position:absolute;top:30px;right:-50px;transform:rotate(45deg);box-shadow:0 2px 4px #0000004d}.header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background-color:var(--color-surface);border-bottom:1px solid var(--color-border);transition:background-color .2s ease,border-color .2s ease}.header-title{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text-primary)}.header-title-link{color:inherit;text-decoration:none}.header-admin-link{padding:.25rem .75rem;font-size:.875rem;line-height:1;font-weight:500;color:var(--color-primary);background-color:transparent;border:1px solid var(--color-primary);border-radius:.375rem;text-decoration:none;transition:background-color .2s ease,color .2s ease}.header-admin-link:hover{background-color:var(--color-primary);color:#fff}.layout{min-height:100vh;display:flex;flex-direction:column;background-color:var(--color-bg)}.layout-main{flex:1;padding:1rem;max-width:800px;margin:0 auto;width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.btn:focus{outline:2px solid var(--color-primary);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--color-primary-text)}.btn-primary:hover:not(:disabled),.btn-primary:focus:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled),.btn-secondary:focus:not(:disabled){background-color:var(--color-border)}.btn-danger{background-color:var(--color-error);color:#fff}.btn-danger:hover:not(:disabled),.btn-danger:focus:not(:disabled){background-color:#dc2626}.product-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;overflow:hidden;margin-bottom:1rem;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}.product-card:hover{box-shadow:var(--shadow-md)}.product-card-image{width:100%;height:auto;display:block;aspect-ratio:4 / 3;object-fit:contain;background-color:var(--color-border)}.product-card-content{padding:1rem}.product-card-title{margin:0 0 .5rem;font-size:1.25rem;font-weight:600;color:var(--color-text-primary)}.product-card-description{margin:0 0 .75rem;color:var(--color-text-secondary);font-size:.875rem;line-height:1.5}.product-card-period{margin:0 0 .75rem;color:var(--color-text-secondary);font-size:.8rem;line-height:1.4}.product-card-badge-past{display:inline-block;margin:0 0 .5rem;padding:.2rem .6rem;background-color:var(--color-muted-bg, #f3f4f6);color:var(--color-text-secondary, #6b7280);font-size:.75rem;font-weight:600;border-radius:4px}.product-card-full{margin:0 0 .5rem;color:var(--color-error, #dc3545);font-size:.875rem;font-weight:600}.product-card-ordered{margin:0 0 .5rem;color:var(--color-primary, #2563eb);font-size:.875rem;font-weight:600}.product-card-price{margin:0 0 1rem;font-size:1.5rem;font-weight:700;color:var(--color-primary)}.top-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.top-page-profile{display:flex;align-items:center}.top-page-greeting{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text-primary)}.top-page-instruction{margin-bottom:1rem;color:var(--color-text-secondary)}.top-page-empty{text-align:center;color:var(--color-text-secondary);padding:3rem 1rem}.top-page-section-title{margin:2rem 0 1rem;font-size:1.1rem;font-weight:600;color:var(--color-text-secondary)}.top-page-products{display:flex;flex-direction:column;gap:1rem}
