.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:linear-gradient(160deg,#e8f5e9,#f1f8e9 40%,#fff8e1)}.login-card{width:100%;max-width:380px;padding:2.5rem 2rem;background:#fff;border-radius:12px;box-shadow:0 4px 24px #00000014;border:1px solid rgba(0,0,0,.06)}.login-title{margin:0 0 .5rem;font-size:1.75rem;font-weight:700;color:#1b5e20;text-align:center;letter-spacing:-.02em}.login-success{margin:0 0 1rem;padding:.5rem .75rem;font-size:.9rem;color:#2e7d32;background:#e8f5e9;border-radius:6px;text-align:center}.login-form{display:flex;flex-direction:column;gap:1.25rem}.login-label{display:flex;flex-direction:column;gap:.4rem;font-size:.9rem;font-weight:500;color:#37474f}.login-label input{padding:.75rem 1rem;border:1px solid #cfd8dc;border-radius:8px;transition:border-color .2s}.login-label input:focus{outline:none;border-color:#689f38;box-shadow:0 0 0 3px #689f3826}.login-label input::placeholder{color:#90a4ae}.login-label input:disabled{background:#f5f5f5;cursor:not-allowed}.login-error{margin:0;padding:.6rem .8rem;font-size:.85rem;color:#c62828;background:#ffebee;border-radius:6px}.login-btn{margin-top:.5rem;padding:.85rem 1rem;font-weight:600;color:#fff;background:#2e7d32;border:none;border-radius:8px;transition:background .2s}.login-btn:hover:not(:disabled){background:#1b5e20}.login-btn:disabled{background:#81c784;cursor:not-allowed}.login-signup-link{display:block;margin-top:1rem;text-align:center;font-size:.95rem;color:#2e7d32;text-decoration:none;font-weight:500}.login-signup-link:hover{text-decoration:underline}.signup-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(160deg,#e8f5e9,#f1f8e9 40%,#fff8e1)}.signup-card{width:100%;max-width:420px;padding:2rem 1.75rem;background:#fff;border-radius:12px;box-shadow:0 4px 24px #00000014;border:1px solid rgba(0,0,0,.06)}.signup-title{margin:0 0 1.5rem;font-size:1.5rem;font-weight:700;color:#1b5e20;text-align:center}.signup-form{display:flex;flex-direction:column;gap:1.1rem}.signup-label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:500;color:#37474f}.signup-label input[type=text],.signup-label input[type=email],.signup-label input[type=tel],.signup-label input[type=password]{padding:.65rem .9rem;border:1px solid #cfd8dc;border-radius:8px;width:100%}.signup-label input:focus{outline:none;border-color:#689f38;box-shadow:0 0 0 2px #689f3826}.signup-input-row{display:flex;gap:.5rem;align-items:center}.signup-input-row input{flex:1;min-width:0}.signup-check-btn{flex-shrink:0;padding:.65rem .9rem;font-size:.85rem;font-weight:600;color:#2e7d32;background:#e8f5e9;border:1px solid #a5d6a7;border-radius:8px;white-space:nowrap}.signup-check-btn:hover:not(:disabled){background:#c8e6c9}.signup-check-btn:disabled{opacity:.7;cursor:not-allowed}.signup-ok{font-size:.8rem;color:#2e7d32}.signup-dup{font-size:.8rem;color:#c62828}.signup-email-verify{margin-top:.5rem;padding-top:.5rem;border-top:1px solid #eee}.signup-verify-send{padding:.5rem .75rem;font-size:.85rem;font-weight:600;color:#1565c0;background:#e3f2fd;border:1px solid #90caf9;border-radius:8px;cursor:pointer}.signup-verify-send:hover:not(:disabled){background:#bbdefb}.signup-verify-send:disabled{opacity:.7;cursor:not-allowed}.signup-verify-row{display:flex;gap:.5rem;align-items:center;margin-top:.5rem}.signup-verify-row input{flex:1;min-width:0;padding:.65rem .9rem;border:1px solid #cfd8dc;border-radius:8px;font-size:1rem}.signup-verify-error{margin:.35rem 0 0;padding:.4rem .5rem;font-size:.85rem;color:#c62828;background:#ffebee;border-radius:6px}.signup-dev-code{margin:.35rem 0 0;font-size:.85rem;color:#1565c0;background:#e3f2fd;padding:.4rem .5rem;border-radius:6px}.signup-dev-code strong{font-size:1rem;letter-spacing:.05em}.signup-verify-timer{margin:.35rem 0 0;font-size:.8rem;color:#666}.signup-terms{margin:.5rem 0 0;padding-top:.75rem;border-top:1px solid #eee}.signup-terms-show{display:block;margin-bottom:.5rem;padding:.4rem 0;font-size:.9rem;color:#2e7d32;background:none;border:none;cursor:pointer;text-decoration:underline}.signup-terms-show:hover{color:#1b5e20}.signup-terms-text{max-height:200px;overflow-y:auto;margin-bottom:.75rem;padding:.75rem;font-size:.8rem;line-height:1.5;color:#455a64;background:#f5f5f5;border-radius:8px;white-space:pre-wrap}.signup-terms-check{display:flex;align-items:center;gap:.5rem;font-size:.9rem;cursor:pointer}.signup-terms-check input{width:auto}.signup-error{margin:0;padding:.5rem .75rem;font-size:.85rem;color:#c62828;background:#ffebee;border-radius:6px}.signup-btn{margin-top:.5rem;padding:.85rem 1rem;font-weight:600;color:#fff;background:#2e7d32;border:none;border-radius:8px;cursor:pointer}.signup-btn:hover:not(:disabled){background:#1b5e20}.signup-btn:disabled{background:#81c784;cursor:not-allowed;opacity:.8}.signup-login-link{display:block;margin-top:1rem;text-align:center;font-size:.95rem;color:#2e7d32;text-decoration:none;font-weight:500}.signup-login-link:hover{text-decoration:underline}.main-page{min-height:100vh;background:linear-gradient(180deg,#f8fafc,#f1f5f9);display:flex;flex-direction:column}.main-header{display:flex;align-items:center;gap:1rem;padding:.875rem 1.5rem;background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 1px 2px #0f172a0a}.main-logo{margin:0;font-size:1.25rem;font-weight:700;color:#334155;letter-spacing:-.02em}.main-user{margin-left:auto;font-size:.9rem;color:#64748b}.main-logout{padding:.45rem .95rem;font-size:.875rem;font-weight:500;color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:background .15s,color .15s}.main-logout:hover{background:#e2e8f0;color:#334155}.main-tabs{display:flex;gap:0;padding:0 1.5rem;background:#fff;border-bottom:1px solid #e2e8f0}.main-tab{padding:.9rem 1.25rem;font-size:.9rem;font-weight:500;color:#64748b;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;transition:color .15s,border-color .15s}.main-tab:hover{color:#475569}.main-tab.active{color:#4f46e5;border-bottom-color:#4f46e5}.main-content{flex:1;padding:1.5rem;overflow:auto}.main-filters{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.25rem}.main-filters label{display:flex;align-items:center;gap:.4rem;font-size:.9rem;color:#475569}.main-filters input[type=date],.main-filters input[type=text],.main-filters select{padding:.5rem .65rem;border:1px solid #cbd5e1;border-radius:8px;font-size:.9rem;background:#fff;color:#334155;transition:border-color .15s,box-shadow .15s}.main-filters input:focus,.main-filters select:focus{outline:none;border-color:#818cf8;box-shadow:0 0 0 3px #6366f11f}.main-filters button{padding:.5rem 1rem;font-size:.9rem;font-weight:500;color:#fff;background:#4f46e5;border:none;border-radius:8px;cursor:pointer;transition:background .15s,transform .05s}.main-filters button:hover{background:#4338ca}.main-filters button:active{transform:scale(.98)}.main-table-wrap{overflow-x:auto;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0f172a0f,0 4px 12px #0f172a0a;border:1px solid #e2e8f0;overflow:hidden}.main-table{width:100%;border-collapse:collapse;font-size:.9rem;line-height:1.5}.main-table th{padding:.9rem 1.25rem;text-align:left;font-weight:600;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:#64748b;background:#f8fafc;border-bottom:2px solid #e2e8f0;white-space:nowrap}.main-table th:first-child{padding-left:1.5rem}.main-table th:last-child{padding-right:1.5rem}.main-table td{padding:.9rem 1.25rem;text-align:left;border-bottom:1px solid #f1f5f9;color:#334155;vertical-align:middle}.main-table td:first-child{padding-left:1.5rem}.main-table td:last-child{padding-right:1.5rem}.main-table tbody tr{transition:background .12s ease}.main-table tbody tr:nth-child(2n){background:#fafbfc}.main-table tbody tr:hover{background:#f1f5f9}.main-table tbody tr:nth-child(2n):hover{background:#e2e8f0}.main-table tbody tr:last-child td{border-bottom:none}.main-table td.num{text-align:right;font-variant-numeric:tabular-nums;color:#475569;font-weight:500}.main-loading,.main-empty{margin:1.5rem 0;font-size:.95rem;color:#64748b}.main-error{margin:1.5rem 0;font-size:.95rem;color:#b91c1c}.main-content button[type=submit],.main-content .main-filters+div button[type=button]:first-of-type{padding:.5rem 1rem;font-weight:500;color:#fff;background:#4f46e5;border:none;border-radius:8px;cursor:pointer;transition:background .15s}.main-content button[type=submit]:hover:not(:disabled),.main-content .main-filters+div button[type=button]:first-of-type:hover{background:#4338ca}.main-content button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.main-content button[type=button]{padding:.45rem .9rem;font-size:.9rem;color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:background .15s}.main-content button[type=button]:hover{background:#e2e8f0}.main-content button[type=button]+button[type=submit]{margin-left:.5rem}.main-content input[type=text]{padding:.4rem .5rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.9rem;background:#fff}.main-content input[type=text]:focus{outline:none;border-color:#818cf8}.main-btn{padding:.5rem 1rem;font-weight:500;color:#fff;background:#4f46e5;border:none;border-radius:8px;cursor:pointer;transition:background .15s}.main-btn:hover{background:#4338ca}.product-master-form{border:1px solid #e2e8f0;padding:1.25rem;margin-bottom:1.25rem;border-radius:10px;background:#fff;box-shadow:0 1px 2px #0f172a0a}.product-master-form-tabs{margin-bottom:1rem;display:flex;gap:.5rem}.main-tab-toggle{padding:.45rem .9rem;font-size:.9rem;color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:background .15s,color .15s}.main-tab-toggle:hover{background:#e2e8f0}.main-tab-toggle.active{background:#4f46e5;color:#fff;border-color:#4f46e5}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f1f5f9;color:#334155}#root{min-height:100vh}input,button{font-family:inherit;font-size:1rem}button{cursor:pointer}
