@import "tailwindcss"; @custom-variant dark (&:where(.dark, .dark *)); :root { font-family: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", sans-serif; color: #0f172a; background: #f8fafc; } *, *::before, *::after { box-sizing: border-box; } html, body, #root { width: 100%; min-height: 100%; overflow-x: hidden; -webkit-text-size-adjust: 100%; } body { margin: 0; min-width: 320px; overflow-x: hidden; } img, video, canvas, svg { max-width: 100%; } button, input, textarea, select { font: inherit; min-width: 0; } @media (max-width: 767px) { input, textarea, select { font-size: 16px !important; } } @layer components { label > span:first-child, .crm-field-label { font-size: 0.875rem; line-height: 1.4; font-weight: 500; color: #334155; } .dark label > span:first-child, .dark .crm-field-label { color: #cbd5e1; } .crm-field-note { font-size: 0.75rem; line-height: 1.6; color: #64748b; } .dark .crm-field-note { color: #94a3b8; } .crm-empty-state { text-align: center; font-size: 0.875rem; line-height: 1.6; color: #94a3b8; } .dark .crm-empty-state { color: #64748b; } .crm-input-text { font-size: 0.875rem; line-height: 1.55; border-radius: 1rem; min-height: 3rem; } .crm-input-box { border-radius: 1rem; min-height: 3rem; padding: 0.75rem 1rem; } .crm-input-box-readonly { border-radius: 1rem; min-height: 3rem; padding: 0.75rem 1rem; } .crm-btn { min-height: 3rem; border-radius: 1rem; padding: 0.75rem 1rem; font-size: 0.875rem; line-height: 1.4; font-weight: 600; } .crm-btn-sm { min-height: 2.75rem; border-radius: 1rem; padding: 0.625rem 1rem; font-size: 0.875rem; line-height: 1.4; font-weight: 500; } .crm-card { border-radius: 1rem; border: 1px solid #e2e8f0; background: rgba(255, 255, 255, 0.96); box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06); backdrop-filter: blur(12px); } .crm-card-subtle { border-radius: 1rem; border: 1px solid #eef2f7; background: rgba(248, 250, 252, 0.72); } .dark .crm-card { border-color: rgba(51, 65, 85, 0.9); background: rgba(15, 23, 42, 0.72); box-shadow: 0 12px 32px rgba(2, 6, 23, 0.28); } .dark .crm-card-subtle { border-color: rgba(51, 65, 85, 0.8); background: rgba(30, 41, 59, 0.38); } .crm-pill { display: inline-flex; align-items: center; border-radius: 9999px; padding: 0.3rem 0.65rem; font-size: 0.75rem; line-height: 1.2; font-weight: 600; } .crm-pill-neutral { background: #f1f5f9; color: #475569; } .crm-pill-violet { background: #f5f3ff; color: #7c3aed; } .crm-pill-emerald { background: #ecfdf5; color: #059669; } .crm-pill-amber { background: #fffbeb; color: #d97706; } .crm-pill-rose { background: #fff1f2; color: #e11d48; } .dark .crm-pill-neutral { background: rgba(51, 65, 85, 0.85); color: #cbd5e1; } .dark .crm-pill-violet { background: rgba(139, 92, 246, 0.14); color: #c4b5fd; } .dark .crm-pill-emerald { background: rgba(16, 185, 129, 0.14); color: #6ee7b7; } .dark .crm-pill-amber { background: rgba(245, 158, 11, 0.14); color: #fcd34d; } .dark .crm-pill-rose { background: rgba(244, 63, 94, 0.14); color: #fda4af; } .crm-page-stack { display: flex; flex-direction: column; gap: 1.25rem; } .crm-section-stack { display: flex; flex-direction: column; gap: 1rem; } .crm-list-stack { display: flex; flex-direction: column; gap: 0.875rem; } .crm-card-pad { padding: 1rem; } .crm-card-pad-lg { padding: 1.25rem; } .crm-modal-stack { display: flex; flex-direction: column; gap: 1.25rem; } .crm-form-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; } .crm-form-section { display: flex; flex-direction: column; gap: 0.875rem; border-radius: 1rem; border: 1px solid #e2e8f0; background: rgba(248, 250, 252, 0.72); padding: 1rem; } .crm-form-section-header { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; } .crm-detail-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; border-radius: 1rem; border: 1px solid #e2e8f0; background: rgba(248, 250, 252, 0.72); padding: 1rem; } .crm-detail-item { display: flex; min-width: 0; flex-direction: column; gap: 0.35rem; } .crm-detail-label { display: flex; align-items: center; gap: 0.25rem; font-size: 0.75rem; line-height: 1.4; color: #64748b; } .crm-detail-value { font-size: 0.9375rem; line-height: 1.6; font-weight: 500; color: #0f172a; overflow-wrap: anywhere; word-break: break-word; } .dark .crm-form-section, .dark .crm-detail-grid { border-color: rgba(51, 65, 85, 0.8); background: rgba(30, 41, 59, 0.38); } .dark .crm-detail-label { color: #94a3b8; } .dark .crm-detail-value { color: #f8fafc; } @media (min-width: 640px) { .crm-page-stack { gap: 1.5rem; } .crm-section-stack { gap: 1.25rem; } .crm-list-stack { gap: 1rem; } .crm-card-pad { padding: 1.25rem; } .crm-card-pad-lg { padding: 1.5rem; } .crm-modal-stack { gap: 1.5rem; } .crm-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; } .crm-form-section, .crm-detail-grid { padding: 1.25rem; } } .crm-input-text::placeholder, input::placeholder, textarea::placeholder { color: #94a3b8; opacity: 1; } .dark .crm-input-text::placeholder, .dark input::placeholder, .dark textarea::placeholder { color: #64748b; } } @layer utilities { .break-anywhere { overflow-wrap: anywhere; word-break: break-word; } .scrollbar-hide { /* IE and Edge */ -ms-overflow-style: none; /* Firefox */ scrollbar-width: none; } .scrollbar-hide::-webkit-scrollbar { display: none; } }