/* Base Variables & Reset */ :root { --primary-color: #4f46e5; --primary-hover: #4338ca; --success-color: #10b981; --success-hover: #059669; --text-main: #1f2937; --text-muted: #6b7280; --bg-color: #f3f4f6; --glass-bg: rgba(255, 255, 255, 0.7); --glass-border: rgba(255, 255, 255, 0.5); --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); --border-radius: 12px; --transition-fast: 0.2s ease; } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: 'Inter', sans-serif; background-color: var(--bg-color); color: var(--text-main); line-height: 1.6; overflow-x: hidden; position: relative; min-height: 100vh; } /* Background Animated Shapes for Glassmorphism */ .bg-shape { position: fixed; border-radius: 50%; filter: blur(80px); z-index: -1; opacity: 0.6; animation: float 15s infinite ease-in-out alternate; } .shape-1 { width: 600px; height: 600px; background: linear-gradient(135deg, #a78bfa, #c084fc); top: -200px; left: -200px; } .shape-2 { width: 500px; height: 500px; background: linear-gradient(135deg, #60a5fa, #3b82f6); bottom: -100px; right: -150px; animation-delay: -5s; } .shape-3 { width: 400px; height: 400px; background: linear-gradient(135deg, #34d399, #10b981); top: 40%; left: 40%; animation-delay: -10s; opacity: 0.4; } @keyframes float { 0% { transform: translate(0, 0) scale(1); } 100% { transform: translate(50px, 50px) scale(1.1); } } /* Glassmorphism Panel */ .glass-panel { background: var(--glass-bg); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid var(--glass-border); border-radius: var(--border-radius); box-shadow: var(--shadow-lg); } /* Screens */ .screen { display: none; height: 100vh; width: 100%; flex-direction: column; overflow: hidden; } .screen.active { display: flex; } #login-screen { justify-content: center; align-items: center; background: transparent; } .hidden { display: none !important; } /* Login Box */ .login-box { padding: 3rem; text-align: center; max-width: 450px; width: 90%; } .logo { display: flex; flex-direction: column; align-items: center; margin-bottom: 1.5rem; } .logo-icon { font-size: 3rem; color: var(--primary-color); margin-bottom: 1rem; } .logo h2 { font-weight: 700; font-size: 1.8rem; letter-spacing: -0.5px; } .subtitle { color: var(--text-muted); margin-bottom: 2.5rem; } .auth-hint { margin-top: 1.5rem; font-size: 0.85rem; color: var(--text-muted); } /* Buttons */ .btn { display: inline-flex; align-items: center; justify-content: center; padding: 0.75rem 1.5rem; border: none; border-radius: 8px; font-weight: 600; font-size: 1rem; cursor: pointer; transition: var(--transition-fast); gap: 0.5rem; } .btn:disabled { opacity: 0.5; cursor: not-allowed; } .btn-google { background-color: white; color: #3f3f3f; box-shadow: var(--shadow-sm); width: 100%; } .btn-google img { width: 20px; height: 20px; } .btn-google:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); } .btn-primary { background-color: var(--primary-color); color: white; } .btn-primary:hover:not(:disabled) { background-color: var(--primary-hover); transform: translateY(-2px); } .btn-success { background-color: var(--success-color); color: white; } .btn-success:hover:not(:disabled) { background-color: var(--success-hover); transform: translateY(-2px); } .btn-danger { background-color: #ef4444; color: white; } .btn-danger:hover:not(:disabled) { background-color: #dc2626; transform: translateY(-2px); } .btn-secondary { background-color: #e5e7eb; color: var(--text-main); } .btn-secondary:hover:not(:disabled) { background-color: #d1d5db; transform: translateY(-2px); } .btn-warning { background-color: #f59e0b; color: #ffffff; } .btn-warning:hover:not(:disabled) { background-color: #d97706; transform: translateY(-2px); } .icon-btn { background: transparent; border: none; font-size: 1.2rem; color: var(--text-muted); cursor: pointer; padding: 0.5rem; border-radius: 50%; transition: var(--transition-fast); } .icon-btn:hover { color: var(--primary-color); background-color: rgba(79, 70, 229, 0.1); } /* Unified Header (Top Bar) */ .unified-header { display: flex; align-items: center; justify-content: space-between; padding: 4px 0.75rem; gap: 0.45rem; background: var(--primary-color); backdrop-filter: none; border-bottom: 1px solid var(--border-color); box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); margin-bottom: 0px; border-top-left-radius: 12px; border-top-right-radius: 12px; border-bottom-left-radius: 0; border-bottom-right-radius: 0; z-index: 10; } /* 1. Logo */ .nav-brand { display: flex; justify-content: center; align-items: center; color: #ffffff; flex: 0 0 48px; width: 48px; height: 48px; } .brand-logo-img { width: 48px; height: 48px; object-fit: contain; display: block; background: transparent; } /* 2. Search & Action Area */ .nav-center-area { display: flex; align-items: center; gap: 0.45rem; flex: 1; min-width: 0; flex-wrap: nowrap; } .nav-center-area>button, .nav-center-area>.upload-section-mini { display: flex; flex-direction: row; justify-content: center; } .upload-section-mini .btn-upload-tall { height: 34px; } .nav-cent.search-actions { display: flex; gap: 1rem; align-items: stretch; min-width: max-content; } .search-grid-2x2 { display: flex; align-items: center; flex-wrap: nowrap; gap: 0.45rem; flex: 1 1 auto; max-width: none; min-width: 0; } .input-group-original { display: flex; flex-direction: row; align-items: center; gap: 0.35rem; min-width: 0; flex: 0 0 auto; } .input-group-original label { font-size: 1.05rem; font-weight: 700; color: #ffffff; white-space: nowrap; min-width: auto; text-align: right; margin: 0; } .input-group-original.compact-field .input-wrapper { flex: 0 0 140px; width: 140px; } .input-group-original.address-field .input-wrapper { flex: 0 0 166px; width: 166px; } .date-range-filter { flex: 0 0 auto; } .date-range-inputs, .modal-date-range { display: flex; align-items: center; gap: 0.35rem; } .date-range-inputs .input-wrapper { flex: 0 0 160px; width: 160px; min-width: 160px; } .date-range-separator, .modal-date-range span { color: #ffffff; font-weight: 700; } /* Table Header and Resizer styles */ #results-table th { background-color: var(--table-header-bg); color: var(--primary-color); font-weight: 600; text-transform: uppercase; font-size: 0.85rem; letter-spacing: 0.5px; position: sticky; top: 0; z-index: 10; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); white-space: nowrap; position: relative; /* For resizer */ } /* Resizer styles */ .resizer { position: absolute; top: 0; right: 0; width: 5px; cursor: col-resize; user-select: none; height: 100%; } .resizer:hover, .resizing { background-color: var(--primary-color); opacity: 0.5; } .col-address { white-space: nowrap; } .col-order-no { white-space: nowrap; } .col-ext { white-space: nowrap; } /* --- THE ORIGINAL INPUT DESIGN/* Input Icon styles */ .input-wrapper { position: relative; display: flex; align-items: center; } .input-icon { position: absolute; left: 0.8rem; color: #94a3b8; pointer-events: none; font-size: 0.85rem; } /* Inputs styling */ .form-control, .input-wrapper input { width: 100%; padding: 0.3rem 0.55rem; padding-left: 1.75rem; border: 1px solid var(--border-color); border-radius: 8px; font-size: 0.9rem; transition: all 0.2s ease; background-color: #ffffff; /* Explicit white background requested */ height: 30px; } .input-wrapper i { position: absolute; left: 0.65rem; color: var(--text-main); /* Darker icon color like image */ pointer-events: none; font-size: 0.85rem; z-index: 2; } .input-wrapper input:focus { outline: none; border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1); } /* Buttons */ .btn-search-tall { display: flex; align-items: center; justify-content: center; font-size: 1rem; font-weight: 600; padding: 0 1rem; /* Wider padding like image */ border-radius: 6px; white-space: nowrap; flex-direction: row; gap: 0.35rem; flex-wrap: nowrap; line-height: 1; width: 96px !important; height: 48px !important; box-sizing: border-box !important; background-color: #111827; color: white; box-shadow: 0 2px 4px rgba(79, 70, 229, 0.2); border: none; transition: all 0.2s ease; } .btn-search-tall i { position: static; color: inherit; pointer-events: auto; font-size: 1rem; } .btn-search-tall:hover:not(:disabled) { background-color: #0f172a; } .btn-reset-search { display: inline-flex; align-items: center; justify-content: center; flex-direction: row; flex-wrap: nowrap; gap: 0.35rem; width: 90px; height: 48px; border-radius: 6px; border: none; background-color: #ef4444; color: #ffffff; font-size: 1.08rem; font-weight: 800; line-height: 1; white-space: nowrap; } .btn-reset-search:hover:not(:disabled) { background-color: #dc2626; } .btn-upload-tall { display: flex; align-items: center; justify-content: center; gap: 0.32rem; font-size: 0.88rem; font-weight: 800; padding: 0 0.28rem; border-radius: 6px; white-space: normal; width: 110px !important; height: 48px !important; box-sizing: border-box !important; transition: all 0.2s ease; /* Removed flex: 1 so it doesn't stretch and change proportions */ } .btn-upload-tall-narrow { display: flex; align-items: center; justify-content: center; font-size: 1.1rem; font-weight: 600; padding: 0 1rem; border-radius: 6px; white-space: nowrap; width: 130px !important; /* Narrower width requested */ height: 75px !important; /* Exact height requested */ box-sizing: border-box !important; transition: all 0.2s ease; } /* Upload Custom Styles */ input[type="file"] { display: none; } .custom-file-upload { display: inline-flex; align-items: center; cursor: pointer; background-color: white; border: 1px solid #d1d5db; border-radius: 8px; font-weight: 600; transition: var(--transition-fast); color: var(--text-main); } .custom-file-upload:hover { border-color: var(--primary-color); color: var(--primary-color); } .custom-file-upload.btn-excel { background-color: #107c41; /* Excel green */ color: white; border: none; /* Removed border to look cleaner like image */ box-shadow: 0 2px 4px rgba(16, 124, 65, 0.2); } .custom-file-upload.btn-excel:hover { background-color: #0c5e31; border-color: #0c5e31; color: white; transform: translateY(-1px); } .upload-section-mini { display: flex; flex-direction: row; align-items: center; justify-content: center; position: relative; } .custom-file-upload.btn-upload-tall { height: 48px !important; width: 110px !important; padding: 0 0.28rem; font-size: 0.88rem; line-height: 1.05; } .custom-file-upload.btn-upload-tall i { font-size: 1.25rem; flex: 0 0 auto; } .upload-label-text { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 0.08rem; line-height: 1.05; white-space: nowrap; } /* 3. Profile */ .nav-profile-area { display: flex; align-items: center; gap: 0.35rem; flex: 0 0 auto; } .user-profile.mini-profile { display: flex; align-items: center; gap: 0.5rem; font-weight: 500; font-size: 1rem; color: #ffffff; } .avatar.mini-avatar { width: 32px; height: 32px; border-radius: 50%; background-color: var(--primary-color); color: white; display: flex; align-items: center; justify-content: center; } .icon-btn.mini-icon-btn { padding: 0.4rem; font-size: 1.1rem; color: var(--text-muted); } .nav-profile-area>.icon-btn.mini-icon-btn:not(.nav-tool-btn) { color: #ffffff; } .icon-btn.mini-icon-btn.nav-tool-btn { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; font-size: 1.45rem; color: #ffffff; border-radius: 50%; line-height: 1; } .icon-btn.mini-icon-btn.nav-tool-btn:hover { color: #ffffff; background-color: rgba(255, 255, 255, 0.16); } .icon-btn.mini-icon-btn.nav-tool-btn i { line-height: 1; } .icon-btn.mini-icon-btn:hover { color: var(--primary-color); } .nav-profile-area>.icon-btn.mini-icon-btn:not(.nav-tool-btn):hover { color: #ffffff; background-color: rgba(255, 255, 255, 0.16); } /* Main Content Wrapper */ .main-content { padding: 0; display: flex; flex-direction: column; flex: 1; min-height: 0; } .search-panel { background: var(--surface-color); padding: 1rem 1.5rem; /* Reverted padding */ border-top-left-radius: 12px; border-top-right-radius: 12px; border-bottom-left-radius: 0; border-bottom-right-radius: 0; box-shadow: 0 0 6px rgba(0, 0, 0, 0.05); /* reduced shadow underneath */ margin-bottom: 0 !important; display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; border-bottom: 1px solid var(--border-color); /* Separator line between panels */ } .search-group { display: flex; flex-direction: column; gap: 0.5rem; /* Reverted gap */ flex: 1; min-width: 200px; } /* Results Panel & Table */ .results-panel { padding: 1rem 1.5rem; flex: 1; display: flex; flex-direction: column; min-height: 0; margin-top: 0 !important; border-top-left-radius: 0; border-top-right-radius: 0; border-bottom-left-radius: 12px; border-bottom-right-radius: 12px; } .results-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem; } .results-header h3 { font-size: 1.1rem; font-weight: 600; } .btn-search-download { min-height: 30px; padding: 0.35rem 0.7rem; border-radius: 6px; font-size: 0.8rem; white-space: nowrap; } .badge { background-color: var(--primary-color); color: white; padding: 0.2rem 0.6rem; border-radius: 9999px; font-size: 0.8rem; margin-left: 0.5rem; } .pagination { display: flex; justify-content: center; align-items: center; padding: 1rem 0; gap: 0.5rem; flex-wrap: wrap; } .btn-page { width: 20px; /* Reduced to ~60% of 32px */ height: 20px; border-radius: 50%; border: none; background-color: var(--primary-color); color: white; font-weight: 600; font-size: 0.6rem; /* Scaled down */ cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } .btn-page-nav { width: auto; min-width: 78px; padding: 0 0.55rem; border-radius: 999px; font-size: 0.68rem; } #btn-search, #btn-show-upload { display: flex; align-items: center; justify-content: center; gap: 0.5rem; font-weight: 600; } .btn-page:hover { transform: scale(1.1); background-color: #4338ca; } .btn-page.active { background-color: #ef4444; /* Red color as requested */ color: white; box-shadow: 0 4px 6px rgba(239, 68, 68, 0.4); } .table-container { overflow-x: auto; overflow-y: auto; flex: 1; min-height: 0; max-height: none; background: white; border-radius: 8px; border: 1px solid #e5e7eb; } table { width: 100%; border-collapse: collapse; font-size: 0.8rem; white-space: nowrap; } th { background-color: #fca5a5; /* Example distinct styling based on image header (greenish/yellow/etc.) Actually, let's use a green header like image */ background-color: #a7f3d0 !important; position: sticky; top: 0; z-index: 10; padding: 0.4rem; text-align: center; /* Center align header text as requested */ font-weight: 700; color: var(--text-main); border-bottom: 1px solid #e5e7eb; } /* Address column auto-sizes */ td { padding: 0.2rem 0.4rem; border-bottom: 1px solid #e5e7eb; color: #374151; text-overflow: ellipsis; overflow: hidden; } /* Address TD specific setting to allow full address to be seen */ td.cell-address, td.cell-phone { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } td.cell-address { min-width: 350px; max-width: 600px; } .address-cell-inner, .phone-cell-inner { display: flex; align-items: center; justify-content: space-between; gap: 0.25rem; width: 100%; min-width: 0; } .address-text, .phone-text { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; } .count-badge { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; min-width: 1.05rem; height: 0.95rem; padding: 0 0.25rem; border-radius: 3px; color: #ffffff; font-size: 0.62rem; font-weight: 800; line-height: 1; } .count-badge-neutral { background: #9ca3af; } .count-badge-warning { background: #f97316; } .count-badge-danger { background: #dc2626; } .customer-name-cell { display: inline-flex; align-items: center; gap: 0.35rem; min-width: 0; } .customer-note-icon { flex: 0 0 auto; color: #d97706; font-size: 0.9rem; } .order-no-cell { display: inline-flex; align-items: center; gap: 0.32rem; min-width: 0; } .order-note-icon { flex: 0 0 auto; color: #2563eb; font-size: 0.9rem; } .vendor-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 3.5rem; padding: 0.15rem 0.45rem; border-radius: 4px; font-size: 0.72rem; font-weight: 800; white-space: nowrap; } .vendor-badge-own { background: #dbeafe; color: #1d4ed8; } .vendor-badge-smartstore { background: #dcfce7; color: #15803d; } tr { transition: background-color var(--transition-fast); } tbody tr.date-group-alt { background-color: rgba(15, 23, 42, 0.15); } tbody tr:hover { background-color: #e5e7eb; } tr.selected { background-color: rgba(79, 70, 229, 0.05); } input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--primary-color); cursor: pointer; } .empty-state { text-align: center; padding: 3rem !important; color: var(--text-muted); font-style: italic; } /* Modal */ .modal { display: none; position: fixed; z-index: 100; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.4); backdrop-filter: blur(4px); justify-content: center; align-items: center; } .modal.show { display: flex; } #order-edit-modal, #return-request-modal { backdrop-filter: none; -webkit-backdrop-filter: none; } .modal-content { background-color: white; padding: 2.5rem; width: 100%; max-width: 500px; position: relative; border-radius: 16px; animation: modalSlideIn 0.3s ease; } .data-management-modal { width: calc(100vw - 32px); max-width: 1040px; max-height: calc(100vh - 28px); overflow: hidden; padding: 1.45rem; border-radius: 12px; } .modal .data-management-modal h2 { margin-bottom: 1rem; font-size: 1.4rem; } .data-management-title { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; } .data-management-title .title-main { display: inline-flex; align-items: center; gap: 0.45rem; } .db-size-badge { display: inline-flex; align-items: center; min-height: 1.45rem; padding: 0.12rem 0.55rem; border: 1px solid #d8dee8; border-radius: 6px; background: #f3f6fa; color: #475569; font-size: 0.76rem; font-weight: 700; line-height: 1; } .management-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.6rem; } .management-grid-compact { margin-top: 0.35rem; } .management-card, .data-management-modal > .form-group { display: flex; flex-direction: column; min-height: 150px; background: #ffffff; border: 1px solid var(--border-color); border-radius: 8px; padding: 0.75rem; box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06); } .management-card h3 { display: flex; align-items: center; gap: 0.5rem; margin: 0 0 0.55rem; font-size: 0.84rem; color: var(--text-main); } .management-card small, .data-management-modal small { display: block; margin-top: 0.45rem; color: var(--text-muted); font-size: 0.76rem; line-height: 1.35; } .management-card small { margin-top: auto; } .inline-check { display: flex; align-items: center; gap: 0.4rem; margin: 0 0 0.55rem; font-weight: 600; cursor: pointer; } .inline-check input { accent-color: var(--primary-color); } .full-width-btn { width: 100%; justify-content: center; border-radius: 8px; min-height: 36px; padding: 0.45rem 0.6rem; font-weight: 700; font-size: 0.82rem; } .action-stack { display: grid; gap: 0.42rem; } .modal-date-range { margin-bottom: 0.55rem; } .modal-date-range span { color: var(--text-muted); } .modal-date-range input { flex: 1; min-width: 0; padding: 0.42rem; border: 1px solid var(--border-color); border-radius: 6px; font-size: 0.82rem; } .repeat-purchase-row { display: flex; align-items: center; gap: 0.45rem; margin-bottom: 0.55rem; color: var(--text-muted); font-size: 0.82rem; font-weight: 700; } .repeat-purchase-row input { width: 72px; padding: 0.42rem; border: 1px solid var(--border-color); border-radius: 6px; font-size: 0.82rem; } .danger-zone { background: #fff7f7; border-color: rgba(239, 68, 68, 0.35); } .danger-zone h3 { color: #991b1b; } .export-progress-container, .optimize-progress-container, .delete-progress-container { display: none; margin-top: 0.65rem; } .progress-label-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.35rem; font-size: 0.78rem; color: var(--text-secondary); } .progress-label-row span:last-child { font-weight: 700; color: var(--text-main); } .progress-bar-wrapper { height: 7px; background: #e5e7eb; border-radius: 999px; overflow: hidden; width: 100%; } #optimize-progress-fill, #export-progress-fill, #delete-date-progress-fill, #delete-cleanup-progress-fill { width: 0%; height: 100%; background: var(--primary-color); transition: width 0.3s ease; } #delete-date-progress-fill { background: #dc2626; } #delete-cleanup-progress-fill { background: #2563eb; } #delete-date-progress-count { margin-top: 0.3rem; } #export-progress-fill { background: var(--success-color); } #export-progress-count { margin-top: 0.3rem; } .delete-cleanup-row { margin-top: 0.55rem; } @media (max-height: 760px) and (min-width: 900px) { .data-management-modal { padding: 1rem; max-height: calc(100vh - 16px); } .data-management-modal h2 { margin-bottom: 0.8rem; font-size: 1.35rem; } .management-grid { gap: 0.55rem; } .management-card, .data-management-modal > .form-group { min-height: 142px; padding: 0.72rem; } .management-card h3 { margin-bottom: 0.5rem; font-size: 0.84rem; } .full-width-btn { min-height: 36px; padding: 0.45rem 0.6rem; font-size: 0.84rem; } .modal-date-range { margin-bottom: 0.55rem; } .management-card small, .data-management-modal small { font-size: 0.72rem; line-height: 1.25; } } @media (max-width: 820px) { .data-management-modal { max-width: calc(100vw - 24px); } .management-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 760px) { .management-grid { grid-template-columns: 1fr; } .date-range-filter { grid-column: span 1; } } @keyframes modalSlideIn { from { opacity: 0; transform: translateY(-20px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } } .close-btn { position: absolute; top: 1rem; right: 1.5rem; font-size: 1.8rem; font-weight: 500; color: var(--text-muted); cursor: pointer; } .close-btn:hover { color: var(--text-main); } .modal h2 { margin-bottom: 1.5rem; font-size: 1.5rem; } .order-edit-modal-content, .return-request-modal-content { width: min(calc(100vw - 32px), 520px); max-width: 520px; padding: 0; overflow: hidden; border-radius: 10px; background: #ffffff; backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: 0 12px 28px rgba(15, 23, 42, 0.2); animation-duration: 0.14s; } .order-edit-modal-content .close-btn, .return-request-modal-content .close-btn { top: 0.55rem; right: 0.7rem; width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; color: rgba(255, 255, 255, 0.82); font-size: 1.55rem; line-height: 1; border-radius: 6px; } .order-edit-modal-content .close-btn:hover, .return-request-modal-content .close-btn:hover { color: #ffffff; background: rgba(255, 255, 255, 0.13); } .modal .order-edit-modal-content h2, .modal .return-request-modal-content h2 { display: flex; align-items: center; gap: 0.5rem; margin: 0; padding: 0.78rem 3rem 0.78rem 1rem; background: var(--primary-color); color: #ffffff; font-size: 1.03rem; line-height: 1.25; border-bottom: 1px solid rgba(255, 255, 255, 0.16); } .modal .return-request-modal-content h2 { background: #f59e0b; } .order-edit-modal-content h2 i, .return-request-modal-content h2 i { font-size: 0.98rem; } .order-edit-modal-content .form-group, .return-request-modal-content .form-group { display: grid; grid-template-columns: 92px minmax(0, 1fr); align-items: start; gap: 0.55rem; margin: 0; padding: 0.62rem 1rem; border-bottom: 1px solid #eef2f7; } .order-edit-modal-content .form-group label, .return-request-modal-content .form-group label { margin: 0; padding-top: 0.44rem; color: #374151; font-size: 0.86rem; font-weight: 700; line-height: 1.25; } .order-edit-modal-content .form-group input, .order-edit-modal-content .form-group textarea, .return-request-modal-content .form-group input, .return-request-modal-content .form-group select, .return-request-modal-content .form-group textarea { width: 100%; min-height: 34px; padding: 0.47rem 0.62rem; border: 1px solid #d9e0ea; border-radius: 6px; border-color: #d9e0ea; background: #ffffff; font: inherit; color: var(--text-main); font-size: 0.9rem; line-height: 1.35; } .return-request-modal-content .form-group select { appearance: auto; } .order-edit-modal-content .form-group textarea, .return-request-modal-content .form-group textarea { min-height: 56px; max-height: 112px; resize: vertical; } .order-edit-modal-content #edit-address { min-height: 66px; } .order-edit-modal-content #edit-customer-note { min-height: 58px; } .order-edit-modal-content #edit-order-note { min-height: 58px; } .return-request-modal-content #return-request-remarks { min-height: 78px; } .return-request-modal-content label[for="return-request-remarks"] { white-space: nowrap; font-size: 0.82rem; } .order-edit-modal-content .form-group input:focus, .order-edit-modal-content .form-group textarea:focus, .return-request-modal-content .form-group input:focus, .return-request-modal-content .form-group select:focus, .return-request-modal-content .form-group textarea:focus { border-color: var(--primary-color); box-shadow: 0 0 0 2px rgba(79, 70, 229, 0.14); } .form-group { margin-bottom: 1.5rem; } .form-group label { display: block; margin-bottom: 0.5rem; font-weight: 600; } .form-group small { display: block; margin-top: 0.5rem; color: var(--text-muted); } .form-group input, .form-group textarea { width: 100%; border: 1px solid var(--border-color); border-radius: 8px; padding: 0.75rem 0.9rem; font: inherit; color: var(--text-main); background: #ffffff; } .form-group textarea { resize: vertical; min-height: 88px; } .form-group input:focus, .form-group textarea:focus { outline: none; border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.12); } .modal-actions { display: flex; justify-content: flex-end; gap: 0.6rem; } .order-edit-actions, .return-request-actions { justify-content: space-between; align-items: center; padding: 0.72rem 1rem; background: #f8fafc; border-top: 1px solid #e5eaf2; } .return-request-actions { justify-content: flex-end; } .order-edit-action-group { display: flex; gap: 0.45rem; } .order-edit-actions .btn, .return-request-actions .btn { min-height: 34px; padding: 0.45rem 0.8rem; border-radius: 6px; font-size: 0.86rem; line-height: 1.1; } @media (max-width: 560px) { .order-edit-modal-content, .return-request-modal-content { width: calc(100vw - 20px); } .order-edit-modal-content .form-group, .return-request-modal-content .form-group { grid-template-columns: 1fr; gap: 0.35rem; padding: 0.58rem 0.85rem; } .order-edit-modal-content .form-group label, .return-request-modal-content .form-group label { padding-top: 0; } .order-edit-actions { align-items: stretch; gap: 0.5rem; } .order-edit-action-group { flex: 1; } .order-edit-action-group .btn { flex: 1; } } .upload-progress-modal-content { max-width: 560px; } .upload-progress-message { min-height: 1.5rem; margin-bottom: 1.5rem; color: var(--text-muted); font-size: 0.95rem; } .upload-progress-message.success { color: var(--success-color); font-weight: 700; } .upload-progress-message.error { color: #ef4444; font-weight: 700; } .upload-progress-block { padding: 1rem; margin-bottom: 1rem; border: 1px solid var(--border-color); border-radius: 8px; background: rgba(255, 255, 255, 0.65); } .upload-progress-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 0.7rem; font-size: 0.95rem; font-weight: 700; } .upload-progress-header span { display: inline-flex; align-items: center; gap: 0.45rem; } .upload-progress-track { width: 100%; height: 12px; overflow: hidden; border-radius: 999px; background: #e5e7eb; } .upload-progress-fill { width: 0%; height: 100%; border-radius: inherit; transition: width 0.25s ease; } .upload-data-fill { background: var(--success-color); } .upload-index-fill { background: var(--primary-color); } .upload-progress-count { margin-top: 0.55rem; color: var(--text-muted); font-size: 0.85rem; text-align: right; } .upload-progress-actions { margin-top: 1.5rem; } /* Layout base */ .container { height: 100vh; display: flex; flex-direction: column; padding: 0; gap: 0; max-width: 100%; margin: 0 auto; } /* Toast */ #toast-container { position: fixed; bottom: 20px; right: 20px; z-index: 1000; display: flex; flex-direction: column; gap: 10px; } .toast { padding: 1rem 1.5rem; background-color: white; border-left: 4px solid var(--primary-color); border-radius: 4px; box-shadow: var(--shadow-md); display: flex; align-items: center; gap: 10px; animation: slideInRight 0.3s ease forwards; } .toast.success { border-left-color: var(--success-color); } .toast.error { border-left-color: #ef4444; } @keyframes slideInRight { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } /* Animations */ .fade-in { opacity: 0; animation: fadeIn 0.6s ease forwards; } .delay-1 { animation-delay: 0.1s; } .delay-2 { animation-delay: 0.2s; } .delay-3 { animation-delay: 0.3s; } @keyframes fadeIn { to { opacity: 1; transform: translateY(0); } } /* ── 우측 상단 프로필 영역 (메인 페이지 스타일) ───────────── */ .nav-profile-area .profile-info { display: flex; align-items: center; gap: 10px; } .nav-profile-area .profile-email { font-size: 13px; font-weight: 600; color: #ffffff; white-space: nowrap; letter-spacing: 0.1px; } .nav-profile-area .profile-avatar { width: 36px; height: 36px; border-radius: 50%; overflow: hidden; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.08); flex-shrink: 0; } .nav-profile-area .profile-avatar-img { width: 100%; height: 100%; object-fit: cover; display: block; } .nav-profile-area .profile-avatar-icon { color: rgba(80, 80, 90, 0.7); font-size: 16px; } .nav-profile-area .btn-logout-text { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; background: rgba(255, 255, 255, 0.12); border: 1px solid rgba(255, 255, 255, 0.25); border-radius: 8px; color: #ffffff; font-size: 12px; font-weight: 600; cursor: pointer; transition: background 0.15s, border-color 0.15s; line-height: 1; } .nav-profile-area .btn-logout-text:hover { background: rgba(255, 255, 255, 0.22); border-color: rgba(255, 255, 255, 0.45); } /* 모바일에서 이메일은 숨겨 공간 절약 */ @media (max-width: 720px) { .nav-profile-area .profile-email { display: none; } .nav-profile-area .btn-logout-text span { display: none; } } /* ========================================================================== Upload Date Picker Custom Calendar Styles ========================================================================== */ .upload-date-modal-content { max-width: 400px; background: rgba(255, 255, 255, 0.95) !important; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.4) !important; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15) !important; } .upload-date-modal-content h2 { font-size: 1.2rem; margin-bottom: 0.75rem; } .modal-instruction-text { font-size: 0.88rem; color: #64748b; margin-bottom: 1.25rem; line-height: 1.4; } .custom-calendar-picker { border: 1px solid #e2e8f0; border-radius: 12px; padding: 1rem; background: #ffffff; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.02); margin-bottom: 1.25rem; } .calendar-nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; } .calendar-nav .icon-btn { width: 28px; height: 28px; border-radius: 50%; border: none; background: #f1f5f9; color: #475569; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: background 0.2s; } .calendar-nav .icon-btn:hover { background: #e2e8f0; color: #0f172a; } .calendar-title { font-size: 0.98rem; font-weight: 700; color: #1e293b; } .calendar-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; font-weight: 700; font-size: 0.78rem; color: #64748b; margin-bottom: 0.5rem; border-bottom: 1px solid #f1f5f9; padding-bottom: 0.5rem; } .calendar-weekdays .weekday.holiday { color: #dc2626; /* Sunday red */ } .calendar-weekdays .weekday.sat { color: #2563eb; /* Saturday blue */ } .calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); row-gap: 0.35rem; text-align: center; } .calendar-day { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; margin: 0 auto; font-size: 0.85rem; font-weight: 500; color: #334155; border-radius: 50%; cursor: pointer; transition: all 0.15s ease; user-select: none; } .calendar-day:hover:not(.other-month):not(.selected) { background-color: #f1f5f9; } .calendar-day.other-month { color: #cbd5e1; cursor: default; } .calendar-day.sat:not(.other-month):not(.selected) { color: #2563eb; /* Saturday blue */ } .calendar-day.holiday:not(.other-month):not(.selected) { color: #dc2626; /* Sunday / Korean holiday red */ } .calendar-day.selected { background-color: var(--primary-color) !important; color: #ffffff !important; font-weight: 700; transform: scale(1.1); box-shadow: 0 4px 10px rgba(79, 70, 229, 0.3); } .selected-date-preview { background: #f8fafc; border: 1px dashed #cbd5e1; border-radius: 8px; padding: 0.75rem; margin-bottom: 1.5rem; display: flex; justify-content: space-between; align-items: center; font-size: 0.88rem; } .selected-date-preview span { color: #64748b; } .selected-date-preview strong { color: var(--primary-color); font-weight: 700; font-size: 0.95rem; }