You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

192 lines
3.6 KiB

  1. @use '../atoms/variables' as *;
  2. @use '../atoms/mixins' as *;
  3. // ─── Entry Form Card ─────────────────────────────────────────────────────────
  4. .entry-form {
  5. @include card($color-card);
  6. padding: $space-6 $space-8;
  7. @include tablet { padding: $space-5 $space-4; }
  8. }
  9. .entry-form__grid {
  10. display: grid;
  11. grid-template-columns: 120px 1fr;
  12. gap: $space-4 $space-6;
  13. align-items: center;
  14. @include tablet {
  15. grid-template-columns: 1fr;
  16. gap: $space-3;
  17. }
  18. }
  19. .entry-form__label {
  20. font-size: $font-size-base;
  21. font-weight: $font-weight-regular;
  22. color: $color-text-base;
  23. text-align: right;
  24. padding-right: $space-2;
  25. white-space: nowrap;
  26. @include tablet {
  27. text-align: left;
  28. padding-right: 0;
  29. }
  30. }
  31. .entry-form__field {
  32. display: flex;
  33. align-items: center;
  34. gap: $space-2;
  35. }
  36. .entry-form__field--rate {
  37. gap: $space-2;
  38. }
  39. .entry-form__unit {
  40. color: $color-text-muted;
  41. font-size: $font-size-sm;
  42. }
  43. .input--rate {
  44. width: 100px;
  45. }
  46. .entry-form__field--selects {
  47. display: flex;
  48. gap: $space-3;
  49. flex-wrap: wrap;
  50. .select {
  51. flex: 1;
  52. min-width: 180px;
  53. }
  54. @include tablet {
  55. flex-direction: column;
  56. .select {
  57. min-width: 0;
  58. width: 100%;
  59. }
  60. }
  61. }
  62. .entry-form__actions {
  63. grid-column: 2;
  64. display: flex;
  65. align-items: center;
  66. gap: $space-4;
  67. padding-top: $space-2;
  68. @include tablet {
  69. grid-column: 1;
  70. .btn { width: 100%; }
  71. }
  72. }
  73. // ─── Label Field ────────────────────────────────────────────────────────────
  74. .entry-form__field--label {
  75. flex-direction: column;
  76. align-items: stretch;
  77. gap: $space-2;
  78. }
  79. .label-input-wrap {
  80. position: relative;
  81. }
  82. .entry-form__field--label .label-input-wrap {
  83. flex: 1;
  84. }
  85. .label-chips {
  86. display: flex;
  87. flex-wrap: wrap;
  88. gap: $space-1;
  89. &:empty { display: none; }
  90. }
  91. .label-chip {
  92. font-size: $font-size-xs;
  93. color: var(--color-primary);
  94. background: rgba(var(--color-primary-rgb), 0.08);
  95. border: 1px solid rgba(var(--color-primary-rgb), 0.2);
  96. border-radius: $radius-sm;
  97. padding: 1px $space-2;
  98. cursor: pointer;
  99. transition: background $transition-fast;
  100. &:hover {
  101. background: rgba(var(--color-primary-rgb), 0.16);
  102. }
  103. }
  104. .label-autocomplete {
  105. position: absolute;
  106. top: 100%;
  107. left: 0;
  108. right: 0;
  109. z-index: 10;
  110. background: $color-card;
  111. border: 1px solid $color-border;
  112. border-radius: $radius-sm;
  113. box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  114. max-height: 180px;
  115. overflow-y: auto;
  116. }
  117. .label-autocomplete__item {
  118. display: block;
  119. width: 100%;
  120. text-align: left;
  121. padding: $space-2 $space-3;
  122. font-size: $font-size-sm;
  123. color: $color-text-base;
  124. cursor: pointer;
  125. transition: background $transition-fast;
  126. &:hover {
  127. background: rgba(var(--color-primary-rgb), 0.08);
  128. color: var(--color-primary);
  129. }
  130. }
  131. // ─── Rate Mode (Radio: Default / Custom) ────────────────────────────────────
  132. .rate-mode {
  133. display: flex;
  134. flex-direction: column;
  135. gap: $space-2;
  136. }
  137. .rate-mode__option {
  138. display: flex;
  139. align-items: center;
  140. gap: $space-2;
  141. cursor: pointer;
  142. input[type='radio'] {
  143. accent-color: var(--color-primary);
  144. width: 15px;
  145. height: 15px;
  146. flex-shrink: 0;
  147. cursor: pointer;
  148. }
  149. span {
  150. font-size: $font-size-sm;
  151. color: $color-text-dark;
  152. }
  153. }
  154. .rate-mode__input {
  155. display: flex;
  156. align-items: center;
  157. gap: $space-2;
  158. padding-left: 23px;
  159. }