base.css 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. * {
  2. box-sizing: border-box;
  3. }
  4. body {
  5. margin: 0;
  6. padding: var(--space-2);
  7. background: linear-gradient(140deg, #f9fbfc 0%, #edf2f6 100%);
  8. color: var(--text);
  9. font-family: var(--font-body);
  10. }
  11. .container {
  12. max-width: 900px;
  13. margin: 0 auto;
  14. }
  15. h1,
  16. h2,
  17. h3 {
  18. margin-top: 0;
  19. }
  20. .card {
  21. background: var(--surface);
  22. border: 1px solid var(--border);
  23. border-radius: var(--radius);
  24. padding: var(--space-4);
  25. margin-bottom: var(--space-4);
  26. }
  27. .field {
  28. margin-bottom: var(--space-3);
  29. }
  30. label {
  31. display: block;
  32. margin-bottom: var(--space-1);
  33. font-weight: 600;
  34. }
  35. input,
  36. select,
  37. textarea,
  38. button {
  39. width: 100%;
  40. padding: var(--space-2);
  41. border: 1px solid var(--border);
  42. border-radius: 8px;
  43. font-size: 1rem;
  44. }
  45. input[type='checkbox'] {
  46. width: auto;
  47. }
  48. textarea {
  49. min-height: 110px;
  50. resize: vertical;
  51. }
  52. button {
  53. background: #f5f8fb;
  54. cursor: pointer;
  55. }
  56. button:hover {
  57. background: #e9f0f7;
  58. }
  59. .wizard-actions {
  60. display: grid;
  61. grid-template-columns: 1fr;
  62. gap: var(--space-2);
  63. }
  64. .inline-actions {
  65. display: grid;
  66. grid-template-columns: 1fr;
  67. gap: var(--space-2);
  68. }
  69. .progress {
  70. margin-bottom: var(--space-3);
  71. color: var(--muted);
  72. }
  73. .error {
  74. color: var(--danger);
  75. min-height: 1.2rem;
  76. margin-top: 0.2rem;
  77. font-size: 0.9rem;
  78. }
  79. .hint,
  80. small {
  81. display: block;
  82. color: var(--muted);
  83. margin-top: 0.25rem;
  84. font-size: 0.85rem;
  85. }
  86. .hidden,
  87. .hp-field {
  88. display: none;
  89. }
  90. .upload-item {
  91. font-size: 0.9rem;
  92. color: var(--muted);
  93. margin-top: 0.25rem;
  94. }
  95. .upload-control {
  96. border: 1px dashed var(--border);
  97. border-radius: 10px;
  98. padding: var(--space-2);
  99. background: #fbfdff;
  100. }
  101. .upload-actions {
  102. display: grid;
  103. grid-template-columns: 1fr;
  104. gap: var(--space-2);
  105. }
  106. .upload-action-btn {
  107. display: block;
  108. width: 100%;
  109. text-align: center;
  110. border: 1px solid var(--border);
  111. border-radius: 8px;
  112. padding: var(--space-2);
  113. background: #f3f8fd;
  114. font-weight: 600;
  115. cursor: pointer;
  116. }
  117. .upload-action-btn-camera {
  118. background: #eef7ef;
  119. }
  120. .upload-action-btn:hover {
  121. filter: brightness(0.98);
  122. }
  123. .upload-native-input {
  124. display: none;
  125. }
  126. .upload-selected {
  127. margin: var(--space-2) 0 0;
  128. color: var(--muted);
  129. font-size: 0.9rem;
  130. }
  131. .status-text {
  132. margin-top: var(--space-2);
  133. color: var(--muted);
  134. min-height: 1.2rem;
  135. }
  136. table {
  137. width: 100%;
  138. border-collapse: collapse;
  139. }
  140. th,
  141. td {
  142. border: 1px solid var(--border);
  143. padding: var(--space-2);
  144. vertical-align: top;
  145. text-align: left;
  146. }
  147. @media (min-width: 720px) {
  148. body {
  149. padding: var(--space-4);
  150. }
  151. .wizard-actions {
  152. grid-template-columns: repeat(3, 1fr);
  153. }
  154. .inline-actions {
  155. grid-template-columns: repeat(2, 1fr);
  156. }
  157. .upload-actions {
  158. grid-template-columns: repeat(2, 1fr);
  159. }
  160. }