list.css 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893
  1. .list {
  2. box-sizing: border-box;
  3. display: flex;
  4. flex-direction: column;
  5. position: relative;
  6. background: #dedede;
  7. border-left: 1px solid #ccc;
  8. padding: 0;
  9. float: left;
  10. }
  11. /* List resize handle */
  12. .list-resize-handle {
  13. position: absolute;
  14. top: 0;
  15. right: -3px;
  16. width: 6px;
  17. height: 100%;
  18. cursor: col-resize;
  19. z-index: 10;
  20. background: transparent;
  21. transition: background-color 0.2s ease;
  22. border-radius: 2px;
  23. }
  24. .list-resize-handle:hover {
  25. background: rgba(0, 123, 255, 0.4);
  26. box-shadow: 0 0 4px rgba(0, 123, 255, 0.3);
  27. }
  28. .list-resize-handle:active {
  29. background: rgba(0, 123, 255, 0.6);
  30. box-shadow: 0 0 6px rgba(0, 123, 255, 0.4);
  31. }
  32. /* Show resize handle only on hover */
  33. .list:hover .list-resize-handle {
  34. background: rgba(0, 0, 0, 0.1);
  35. }
  36. .list:hover .list-resize-handle:hover {
  37. background: rgba(0, 123, 255, 0.4);
  38. box-shadow: 0 0 4px rgba(0, 123, 255, 0.3);
  39. }
  40. /* Add a subtle indicator line */
  41. .list-resize-handle::before {
  42. content: '';
  43. position: absolute;
  44. top: 50%;
  45. left: 50%;
  46. transform: translate(-50%, -50%);
  47. width: 2px;
  48. height: 20px;
  49. background: rgba(0, 0, 0, 0.2);
  50. border-radius: 1px;
  51. opacity: 0;
  52. transition: opacity 0.2s ease;
  53. }
  54. .list-resize-handle:hover::before {
  55. opacity: 1;
  56. }
  57. /* Disable resize handle for collapsed lists and mobile view */
  58. .list.list-collapsed .list-resize-handle,
  59. .list.mobile-view .list-resize-handle {
  60. display: none;
  61. }
  62. /* Disable resize handle for auto-width lists */
  63. .list.list-auto-width .list-resize-handle {
  64. display: none;
  65. }
  66. /* Visual feedback during resize */
  67. .list.list-resizing {
  68. transition: none !important;
  69. box-shadow: 0 0 10px rgba(0, 123, 255, 0.3);
  70. /* Ensure the list maintains its new width during resize */
  71. flex: none !important;
  72. flex-basis: auto !important;
  73. flex-grow: 0 !important;
  74. flex-shrink: 0 !important;
  75. /* Override any conflicting layout properties */
  76. float: left !important;
  77. display: block !important;
  78. position: relative !important;
  79. /* Force width to be respected */
  80. width: var(--list-width, auto) !important;
  81. min-width: var(--list-width, auto) !important;
  82. max-width: var(--list-width, auto) !important;
  83. }
  84. body.list-resizing-active {
  85. cursor: col-resize !important;
  86. }
  87. body.list-resizing-active * {
  88. cursor: col-resize !important;
  89. }
  90. /* Ensure swimlane container doesn't interfere with list resizing */
  91. .swimlane .list.list-resizing {
  92. /* Override any swimlane flex properties */
  93. flex: none !important;
  94. flex-basis: auto !important;
  95. flex-grow: 0 !important;
  96. flex-shrink: 0 !important;
  97. /* Ensure width is respected */
  98. width: var(--list-width, auto) !important;
  99. min-width: var(--list-width, auto) !important;
  100. max-width: var(--list-width, auto) !important;
  101. }
  102. /* More aggressive override for any container that might interfere */
  103. .js-swimlane .list.list-resizing,
  104. .dragscroll .list.list-resizing,
  105. [id^="swimlane-"] .list.list-resizing {
  106. /* Force the width to be applied */
  107. width: var(--list-width, auto) !important;
  108. min-width: var(--list-width, auto) !important;
  109. max-width: var(--list-width, auto) !important;
  110. flex: none !important;
  111. flex-basis: auto !important;
  112. flex-grow: 0 !important;
  113. flex-shrink: 0 !important;
  114. float: left !important;
  115. display: block !important;
  116. }
  117. /* Ensure the width persists after resize is complete */
  118. .js-swimlane .list[style*="--list-width"],
  119. .dragscroll .list[style*="--list-width"],
  120. [id^="swimlane-"] .list[style*="--list-width"] {
  121. /* Maintain the width after resize */
  122. width: var(--list-width, auto) !important;
  123. min-width: var(--list-width, auto) !important;
  124. max-width: var(--list-width, auto) !important;
  125. flex: none !important;
  126. flex-basis: auto !important;
  127. flex-grow: 0 !important;
  128. flex-shrink: 0 !important;
  129. float: left !important;
  130. display: block !important;
  131. }
  132. /* Ensure consistent header height for all lists */
  133. .list-header {
  134. /* Maintain consistent height and padding for all lists */
  135. min-height: 2.5vh !important;
  136. height: auto !important;
  137. padding: 2.5vh 1.5vw 0.5vh !important;
  138. /* Make sure the background covers the full height */
  139. background-color: #e4e4e4 !important;
  140. border-bottom: 0.8vh solid #e4e4e4 !important;
  141. /* Use original display for consistent button positioning */
  142. display: block !important;
  143. position: relative !important;
  144. /* Prevent vertical expansion but allow normal height */
  145. overflow: hidden !important;
  146. }
  147. /* Ensure title text doesn't cause height changes for all lists */
  148. .list-header .list-header-name {
  149. /* Prevent text wrapping to maintain consistent height */
  150. white-space: nowrap !important;
  151. /* Truncate text with ellipsis if too long */
  152. text-overflow: ellipsis !important;
  153. /* Ensure proper line height */
  154. line-height: 1.2 !important;
  155. /* Ensure it doesn't overflow */
  156. overflow: hidden !important;
  157. /* Add margin to prevent overlap with buttons */
  158. margin-right: 120px !important;
  159. }
  160. /* Position drag handle at top-right corner for ALL lists */
  161. .list-header .list-header-handle {
  162. /* Position at top-right corner, aligned with title text top */
  163. position: absolute !important;
  164. top: 2.5vh !important;
  165. right: 1.5vw !important;
  166. /* Ensure it's above other elements */
  167. z-index: 15 !important;
  168. /* Remove margin since it's absolutely positioned */
  169. margin-right: 0 !important;
  170. /* Ensure proper display */
  171. display: inline-block !important;
  172. }
  173. /* Ensure buttons maintain original positioning */
  174. .js-swimlane .list[style*="--list-width"] .list-header .list-header-plus-top,
  175. .js-swimlane .list[style*="--list-width"] .list-header .js-collapse,
  176. .js-swimlane .list[style*="--list-width"] .list-header .js-open-list-menu,
  177. .dragscroll .list[style*="--list-width"] .list-header .list-header-plus-top,
  178. .dragscroll .list[style*="--list-width"] .list-header .js-collapse,
  179. .dragscroll .list[style*="--list-width"] .list-header .js-open-list-menu,
  180. [id^="swimlane-"] .list[style*="--list-width"] .list-header .list-header-plus-top,
  181. [id^="swimlane-"] .list[style*="--list-width"] .list-header .js-collapse,
  182. [id^="swimlane-"] .list[style*="--list-width"] .list-header .js-open-list-menu {
  183. /* Use original positioning to maintain layout */
  184. position: relative !important;
  185. /* Maintain original spacing */
  186. margin-right: 15px !important;
  187. /* Ensure proper display */
  188. display: inline-block !important;
  189. }
  190. /* Ensure watch icon and card count maintain original positioning */
  191. .js-swimlane .list[style*="--list-width"] .list-header .list-header-watch-icon,
  192. .dragscroll .list[style*="--list-width"] .list-header .list-header-watch-icon,
  193. [id^="swimlane-"] .list[style*="--list-width"] .list-header .list-header-watch-icon,
  194. .js-swimlane .list[style*="--list-width"] .list-header .cardCount,
  195. .dragscroll .list[style*="--list-width"] .list-header .cardCount,
  196. [id^="swimlane-"] .list[style*="--list-width"] .list-header .cardCount {
  197. /* Use original positioning to maintain layout */
  198. position: relative !important;
  199. /* Maintain original spacing */
  200. margin-right: 15px !important;
  201. /* Ensure proper display */
  202. display: inline-block !important;
  203. }
  204. [id^="swimlane-"] .list:first-child {
  205. min-width: 2.5vw;
  206. }
  207. .list.list-auto-width {
  208. flex: 1;
  209. }
  210. .list:first-child {
  211. border-left: none;
  212. flex: none;
  213. }
  214. .card-details + .list {
  215. border-left: none;
  216. }
  217. .list.ui-sortable-helper {
  218. box-shadow: -2px 2px 8px rgba(0,0,0,0.3), 0 0 1px rgba(0,0,0,0.5);
  219. transform: rotate(4deg);
  220. cursor: grabbing;
  221. }
  222. .list.ui-sortable-helper .list-header.ui-sortable-handle {
  223. cursor: grabbing;
  224. }
  225. .list.placeholder {
  226. background-color: rgba(0,0,0,0.2);
  227. border-color: transparent;
  228. box-shadow: none;
  229. height: 15vh;
  230. }
  231. .list.list-collapsed {
  232. flex: none;
  233. }
  234. .list.list-composer .open-list-composer,
  235. .list .list-composer .open-list-composer {
  236. color: #8c8c8c;
  237. }
  238. .list.list-composer .list-name-input,
  239. .list .list-composer .list-name-input {
  240. background: #fff;
  241. margin: -0.4vh 0 1vh;
  242. }
  243. .list-header-add {
  244. flex: 0 0 auto;
  245. padding: 1.5vh 1.5vw;
  246. position: relative;
  247. min-height: 2.5vh;
  248. }
  249. .list-header {
  250. flex: 0 0 auto;
  251. padding: 2.5vh 1.5vw 0.5vh;
  252. position: relative;
  253. min-height: 2.5vh;
  254. background-color: #e4e4e4;
  255. border-bottom: 0.8vh solid #e4e4e4;
  256. }
  257. .list-header.list-header-card-count {
  258. min-height: 4.5vh;
  259. height: auto;
  260. }
  261. .list-header.ui-sortable-handle {
  262. cursor: grab;
  263. }
  264. .list-header .list-header-left-icon {
  265. display: none;
  266. }
  267. .list-header .list-header-name {
  268. display: inline;
  269. font-size: clamp(14px, 3vw, 18px);
  270. line-height: 1.2;
  271. margin: 0;
  272. font-weight: bold;
  273. min-height: 1.2vh;
  274. min-width: 4vw;
  275. overflow: hidden;
  276. text-overflow: ellipsis;
  277. word-wrap: break-word;
  278. }
  279. .list-rotated {
  280. width: 1.3vw;
  281. height: 35vh;
  282. margin-top: -12vh;
  283. margin-left: -14vw;
  284. margin-right: 0;
  285. transform: rotate(90deg);
  286. position: relative;
  287. text-overflow: ellipsis;
  288. white-space: nowrap;
  289. }
  290. .list-header .list-rotated {
  291. }
  292. .list-header .list-header-watch-icon {
  293. padding-left: 10px;
  294. color: #a6a6a6;
  295. }
  296. .list-header .list-header-menu {
  297. float: right;
  298. }
  299. @media print {
  300. .list-header .list-header-menu,
  301. .list-header .list-header-menu-icon {
  302. display: none;
  303. }
  304. }
  305. .list-header .list-header-plus-top {
  306. color: #a6a6a6;
  307. margin-right: 15px;
  308. }
  309. .list-header .list-header-collapse-right {
  310. color: #a6a6a6;
  311. }
  312. .list-header .list-header-collapse-left {
  313. color: #a6a6a6;
  314. margin-right: 15px;
  315. }
  316. .list-header .list-header-uncollapse-left {
  317. color: #a6a6a6;
  318. }
  319. .list-header .list-header-uncollapse-right {
  320. color: #a6a6a6;
  321. }
  322. .list-header .list-header-collapse {
  323. color: #a6a6a6;
  324. margin-right: 15px;
  325. }
  326. .list-header .highlight {
  327. color: #ce1414;
  328. }
  329. .list-header .cardCount {
  330. color: #8c8c8c;
  331. font-size: 12px;
  332. font-weight: bold;
  333. }
  334. .list-header .list-header-plus-top,
  335. .js-open-list-menu,
  336. .list-header-menu a {
  337. color: #4d4d4d;
  338. padding-left: 4px;
  339. }
  340. .js-open-list-menu {
  341. font-size: 18px;
  342. }
  343. .list-body {
  344. flex: 1 1 auto;
  345. flex-direction: column;
  346. display: flex;
  347. overflow-y: auto;
  348. padding: 5px 11px;
  349. }
  350. .list-body .minicards {
  351. flex-grow: 1;
  352. flex-shrink: 0;
  353. /** get card drag/drop working for empty swimlanes */
  354. min-height: 32px;
  355. }
  356. .list-body .minicards form {
  357. margin-bottom: 9px;
  358. }
  359. .list-body .minicards .add-controls button {
  360. min-height: 50px;
  361. }
  362. .list-body .open-minicard-composer {
  363. border-radius: 2px;
  364. color: #8c8c8c;
  365. display: block;
  366. padding: 7px 10px;
  367. position: relative;
  368. text-decoration: none;
  369. animation: fadeIn 0.3s;
  370. }
  371. @media print {
  372. .list-body .open-minicard-composer {
  373. display: none;
  374. }
  375. }
  376. .list-body .open-minicard-composer i.fa {
  377. margin-right: 7px;
  378. }
  379. .list-body .open-minicard-composer:hover {
  380. background: #fafafa;
  381. color: #222;
  382. box-shadow: 0 1px 2px rgba(0,0,0,0.2);
  383. }
  384. #js-wip-limit-edit {
  385. padding-top: 2%;
  386. }
  387. #js-wip-limit-edit p {
  388. margin-bottom: 0;
  389. }
  390. #js-wip-limit-edit input {
  391. display: inline-block;
  392. }
  393. #js-wip-limit-edit .wip-limit-value {
  394. width: 20%;
  395. margin-right: 5%;
  396. }
  397. #js-wip-limit-edit .wip-limit-error {
  398. display: none;
  399. }
  400. #js-wip-limit-edit .soft-wip-limit {
  401. margin-right: 8px;
  402. }
  403. #js-wip-limit-edit div {
  404. float: left;
  405. }
  406. #js-list-width-edit .list-width-error {
  407. display: none;
  408. }
  409. /* Mobile view styles - applied when isMiniScreen is true (iPhone, etc.) */
  410. .mini-list.mobile-view {
  411. flex: 0 0 60px;
  412. height: auto;
  413. width: 100%;
  414. min-width: 100%;
  415. border-left: 0px;
  416. border-bottom: 1px solid #ccc;
  417. }
  418. .list.mobile-view {
  419. display: contents;
  420. flex-basis: auto;
  421. width: 100%;
  422. min-width: 100%;
  423. border-left: 0px;
  424. }
  425. .list.mobile-view:first-child {
  426. margin-left: 0px;
  427. }
  428. .list.mobile-view.ui-sortable-helper {
  429. flex: 0 0 60px;
  430. height: 60px;
  431. width: 100%;
  432. border-left: 0px;
  433. border-bottom: 1px solid #ccc;
  434. }
  435. .list.mobile-view.ui-sortable-helper .list-header.ui-sortable-handle {
  436. cursor: grabbing;
  437. }
  438. .list.mobile-view.placeholder {
  439. flex: 0 0 60px;
  440. height: 60px;
  441. width: 100%;
  442. border-left: 0px;
  443. border-bottom: 1px solid #ccc;
  444. }
  445. .list.mobile-view .list-body {
  446. padding: 15px 19px;
  447. width: 100%;
  448. min-width: 100%;
  449. }
  450. .list.mobile-view .list-header {
  451. /*Updated padding values for mobile devices, this should fix text grouping issue*/
  452. padding: 20px 0px 20px 0px;
  453. border-bottom: 0px solid #e4e4e4;
  454. min-height: 30px;
  455. margin-top: 10px;
  456. align-items: center;
  457. width: 100%;
  458. min-width: 100%;
  459. /* Force grid layout for iPhone */
  460. display: grid !important;
  461. grid-template-columns: 30px 1fr auto auto !important;
  462. gap: 10px !important;
  463. }
  464. .list.mobile-view .list-header .list-header-left-icon {
  465. padding: 7px;
  466. padding-right: 27px;
  467. margin-top: 1px;
  468. top: -7px;
  469. left: -7px;
  470. }
  471. .list.mobile-view .list-header .list-header-menu-icon {
  472. padding: 14px;
  473. font-size: 40px !important;
  474. text-align: center;
  475. /* Force positioning for iPhone */
  476. position: absolute !important;
  477. right: 60px !important;
  478. top: 50% !important;
  479. transform: translateY(-50%) !important;
  480. z-index: 10;
  481. }
  482. .list.mobile-view .list-header .list-header-handle {
  483. padding: 14px;
  484. font-size: 48px !important;
  485. text-align: center;
  486. /* Force positioning for iPhone */
  487. position: absolute !important;
  488. right: 10px !important;
  489. top: 50% !important;
  490. transform: translateY(-50%) !important;
  491. z-index: 10;
  492. }
  493. .list.mobile-view .list-header .list-header-left-icon {
  494. display: grid;
  495. grid-row: 1/3;
  496. grid-column: 1;
  497. }
  498. .list.mobile-view .list-header .list-header-name {
  499. grid-row: 1;
  500. grid-column: 2;
  501. align-self: end;
  502. font-size: 20px !important;
  503. font-weight: bold;
  504. line-height: 1.2;
  505. padding-bottom: 2px;
  506. }
  507. .list.mobile-view .list-header .cardCount {
  508. grid-row: 2;
  509. grid-column: 2;
  510. align-self: start;
  511. font-size: 16px !important;
  512. line-height: 1.2;
  513. }
  514. .list.mobile-view .list-header .list-header-menu {
  515. grid-row: 1/3;
  516. grid-column: 3;
  517. }
  518. .list.mobile-view .list-header .list-header-menu-icon {
  519. grid-row: 1/3;
  520. grid-column: 3;
  521. }
  522. .list.mobile-view .list-header .list-header-handle {
  523. grid-row: 1/3;
  524. grid-column: 4;
  525. }
  526. .list.mobile-view .list-header .inlined-form {
  527. grid-row: 1/3;
  528. grid-column: 1/4;
  529. }
  530. .list.mobile-view .list-header .edit-controls {
  531. align-items: initial;
  532. }
  533. @media screen and (max-width: 800px) {
  534. .mini-list {
  535. flex: 0 0 60px;
  536. height: auto;
  537. width: 100%;
  538. min-width: 100%;
  539. border-left: 0px;
  540. border-bottom: 1px solid #ccc;
  541. }
  542. .list {
  543. display: contents;
  544. flex-basis: auto;
  545. width: 100%;
  546. min-width: 100%;
  547. border-left: 0px;
  548. }
  549. .list:first-child {
  550. margin-left: 0px;
  551. }
  552. .list.ui-sortable-helper {
  553. flex: 0 0 60px;
  554. height: 60px;
  555. width: 100%;
  556. border-left: 0px;
  557. border-bottom: 1px solid #ccc;
  558. }
  559. .list.ui-sortable-helper .list-header.ui-sortable-handle {
  560. cursor: grabbing;
  561. }
  562. .list.placeholder {
  563. flex: 0 0 60px;
  564. height: 60px;
  565. width: 100%;
  566. border-left: 0px;
  567. border-bottom: 1px solid #ccc;
  568. }
  569. .list-body {
  570. padding: 15px 19px;
  571. width: 100%;
  572. min-width: 100%;
  573. }
  574. .list-header {
  575. /*Updated padding values for mobile devices, this should fix text grouping issue*/
  576. padding: 20px 0px 20px 0px;
  577. border-bottom: 0px solid #e4e4e4;
  578. min-height: 30px;
  579. margin-top: 10px;
  580. align-items: center;
  581. width: 100%;
  582. min-width: 100%;
  583. }
  584. .list-header .list-header-left-icon {
  585. padding: 7px;
  586. padding-right: 27px;
  587. margin-top: 1px;
  588. top: -7px;
  589. left: -7px;
  590. }
  591. .list-header .list-header-menu-icon {
  592. padding: 14px;
  593. font-size: 40px;
  594. text-align: center;
  595. /* iOS Safari fallback positioning */
  596. position: absolute;
  597. right: 60px;
  598. top: 50%;
  599. transform: translateY(-50%);
  600. }
  601. .list-header .list-header-handle {
  602. padding: 14px;
  603. font-size: 48px;
  604. text-align: center;
  605. /* iOS Safari fallback positioning */
  606. position: absolute;
  607. right: 10px;
  608. top: 50%;
  609. transform: translateY(-50%);
  610. }
  611. .list-header {
  612. display: grid;
  613. grid-template-columns: 30px 1fr auto auto;
  614. gap: 10px;
  615. }
  616. .list-header .list-header-left-icon {
  617. display: grid;
  618. grid-row: 1/3;
  619. grid-column: 1;
  620. }
  621. .list-header .list-header-name {
  622. grid-row: 1;
  623. grid-column: 2;
  624. align-self: end;
  625. font-size: 20px;
  626. font-weight: bold;
  627. line-height: 1.2;
  628. padding-bottom: 2px;
  629. }
  630. .list-header .cardCount {
  631. grid-row: 2;
  632. grid-column: 2;
  633. align-self: start;
  634. font-size: 16px;
  635. line-height: 1.2;
  636. }
  637. .list-header .list-header-menu {
  638. grid-row: 1/3;
  639. grid-column: 3;
  640. }
  641. .list-header .list-header-menu-icon {
  642. grid-row: 1/3;
  643. grid-column: 3;
  644. }
  645. .list-header .list-header-handle {
  646. grid-row: 1/3;
  647. grid-column: 4;
  648. }
  649. .list-header .inlined-form {
  650. grid-row: 1/3;
  651. grid-column: 1/4;
  652. }
  653. .list-header .edit-controls {
  654. align-items: initial;
  655. }
  656. }
  657. /* iPhone 12 Mini specific - fix icon positioning in stacked lists view */
  658. @media screen and (device-width: 375px) and (device-height: 812px), /* iPhone 12 Mini exact */
  659. screen and (max-width: 375px) and (max-height: 812px), /* iPhone 12 Mini viewport */
  660. screen and (-webkit-min-device-pixel-ratio: 3) and (max-width: 375px) /* iPhone 12 Mini Retina */ {
  661. .list.mobile-view .list-header {
  662. /* Force grid layout for iPhone 12 Mini */
  663. display: grid !important;
  664. grid-template-columns: 30px 1fr auto auto !important;
  665. gap: 10px !important;
  666. align-items: center !important;
  667. }
  668. .list.mobile-view .list-header .list-header-menu-icon {
  669. /* Remove absolute positioning for iPhone 12 Mini */
  670. position: static !important;
  671. right: auto !important;
  672. top: auto !important;
  673. transform: none !important;
  674. /* Use grid positioning */
  675. grid-row: 1/3 !important;
  676. grid-column: 3 !important;
  677. padding: 14px !important;
  678. font-size: 40px !important;
  679. text-align: center !important;
  680. }
  681. .list.mobile-view .list-header .list-header-handle {
  682. /* Remove absolute positioning for iPhone 12 Mini */
  683. position: static !important;
  684. right: auto !important;
  685. top: auto !important;
  686. transform: none !important;
  687. /* Use grid positioning */
  688. grid-row: 1/3 !important;
  689. grid-column: 4 !important;
  690. padding: 14px !important;
  691. font-size: 48px !important;
  692. text-align: center !important;
  693. }
  694. .list.mobile-view .list-header .list-header-name {
  695. grid-row: 1 !important;
  696. grid-column: 2 !important;
  697. align-self: end !important;
  698. font-size: 20px !important;
  699. font-weight: bold !important;
  700. line-height: 1.2 !important;
  701. padding-bottom: 2px !important;
  702. }
  703. .list.mobile-view .list-header .cardCount {
  704. grid-row: 2 !important;
  705. grid-column: 2 !important;
  706. align-self: start !important;
  707. font-size: 16px !important;
  708. line-height: 1.2 !important;
  709. }
  710. .list.mobile-view .list-header .list-header-left-icon {
  711. display: grid !important;
  712. grid-row: 1/3 !important;
  713. grid-column: 1 !important;
  714. }
  715. }
  716. /* iPhone device JavaScript detection fallback - fix icon positioning */
  717. .iphone-device .list.mobile-view .list-header {
  718. /* Force grid layout for iPhone devices */
  719. display: grid !important;
  720. grid-template-columns: 30px 1fr auto auto !important;
  721. gap: 10px !important;
  722. align-items: center !important;
  723. }
  724. .iphone-device .list.mobile-view .list-header .list-header-menu-icon {
  725. /* Remove absolute positioning for iPhone devices */
  726. position: static !important;
  727. right: auto !important;
  728. top: auto !important;
  729. transform: none !important;
  730. /* Use grid positioning */
  731. grid-row: 1/3 !important;
  732. grid-column: 3 !important;
  733. padding: 14px !important;
  734. font-size: 40px !important;
  735. text-align: center !important;
  736. }
  737. .iphone-device .list.mobile-view .list-header .list-header-handle {
  738. /* Remove absolute positioning for iPhone devices */
  739. position: static !important;
  740. right: auto !important;
  741. top: auto !important;
  742. transform: none !important;
  743. /* Use grid positioning */
  744. grid-row: 1/3 !important;
  745. grid-column: 4 !important;
  746. padding: 14px !important;
  747. font-size: 48px !important;
  748. text-align: center !important;
  749. }
  750. .iphone-device .list.mobile-view .list-header .list-header-name {
  751. grid-row: 1 !important;
  752. grid-column: 2 !important;
  753. align-self: end !important;
  754. font-size: 20px !important;
  755. font-weight: bold !important;
  756. line-height: 1.2 !important;
  757. padding-bottom: 2px !important;
  758. }
  759. .iphone-device .list.mobile-view .list-header .cardCount {
  760. grid-row: 2 !important;
  761. grid-column: 2 !important;
  762. align-self: start !important;
  763. font-size: 16px !important;
  764. line-height: 1.2 !important;
  765. }
  766. .iphone-device .list.mobile-view .list-header .list-header-left-icon {
  767. display: grid !important;
  768. grid-row: 1/3 !important;
  769. grid-column: 1 !important;
  770. }
  771. .link-board-wrapper {
  772. display: flex;
  773. align-items: baseline;
  774. }
  775. .link-board-wrapper .js-link-board {
  776. margin-left: 15px;
  777. }
  778. .search-card-results {
  779. max-height: 250px;
  780. overflow: hidden;
  781. }
  782. .sk-spinner-list {
  783. margin-top: unset !important;
  784. }
  785. .list-header-white {
  786. border-bottom: 6px solid #fff;
  787. }
  788. .list-header-green {
  789. border-bottom: 6px solid #3cb500;
  790. }
  791. .list-header-yellow {
  792. border-bottom: 6px solid #fad900;
  793. }
  794. .list-header-orange {
  795. border-bottom: 6px solid #ff9f19;
  796. }
  797. .list-header-red {
  798. border-bottom: 6px solid #eb4646;
  799. }
  800. .list-header-purple {
  801. border-bottom: 6px solid #a632db;
  802. }
  803. .list-header-blue {
  804. border-bottom: 6px solid #0079bf;
  805. }
  806. .list-header-pink {
  807. border-bottom: 6px solid #ff78cb;
  808. }
  809. .list-header-sky {
  810. border-bottom: 6px solid #00c2e0;
  811. }
  812. .list-header-black {
  813. border-bottom: 6px solid #4d4d4d;
  814. }
  815. .list-header-lime {
  816. border-bottom: 6px solid #51e898;
  817. }
  818. .list-header-silver {
  819. border-bottom: 6px solid #e4e4e4;
  820. }
  821. .list-header-peachpuff {
  822. border-bottom: 6px solid #ffdab9;
  823. }
  824. .list-header-crimson {
  825. border-bottom: 6px solid #dc143c;
  826. }
  827. .list-header-plum {
  828. border-bottom: 6px solid #dda0dd;
  829. }
  830. .list-header-darkgreen {
  831. border-bottom: 6px solid #006400;
  832. }
  833. .list-header-slateblue {
  834. border-bottom: 6px solid #6a5acd;
  835. }
  836. .list-header-magenta {
  837. border-bottom: 6px solid #f0f;
  838. }
  839. .list-header-gold {
  840. border-bottom: 6px solid #ffd700;
  841. }
  842. .list-header-navy {
  843. border-bottom: 6px solid #000080;
  844. }
  845. .list-header-gray {
  846. border-bottom: 6px solid #808080;
  847. }
  848. .list-header-saddlebrown {
  849. border-bottom: 6px solid #8b4513;
  850. }
  851. .list-header-paleturquoise {
  852. border-bottom: 6px solid #afeeee;
  853. }
  854. .list-header-mistyrose {
  855. border-bottom: 6px solid #ffe4e1;
  856. }
  857. .list-header-indigo {
  858. border-bottom: 6px solid #4b0082;
  859. }