popup.css 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996
  1. * {
  2. margin: 0;
  3. padding: 0;
  4. box-sizing: border-box;
  5. }
  6. body {
  7. font-family: Arial, sans-serif;
  8. background-color: #f5f5f5;
  9. color: #333;
  10. width: 400px;
  11. max-height: 600px;
  12. overflow-y: auto;
  13. }
  14. #app {
  15. padding: 16px;
  16. }
  17. header {
  18. margin-bottom: 16px;
  19. text-align: center;
  20. display: flex;
  21. align-items: center;
  22. justify-content: center;
  23. position: relative;
  24. }
  25. h1 {
  26. font-size: 20px;
  27. color: #333;
  28. }
  29. h2 {
  30. font-size: 16px;
  31. margin-bottom: 8px;
  32. padding-bottom: 4px;
  33. border-bottom: 1px solid #ddd;
  34. }
  35. .playlist-name-clickable {
  36. cursor: pointer;
  37. color: #4285f4;
  38. transition: color 0.2s ease;
  39. }
  40. .playlist-name-clickable:hover {
  41. color: #3367d6;
  42. text-decoration: underline;
  43. }
  44. .playlist {
  45. background: #fff;
  46. border-radius: 8px;
  47. padding: 12px;
  48. margin-bottom: 16px;
  49. box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  50. }
  51. .video-item {
  52. display: flex;
  53. justify-content: space-between;
  54. align-items: center;
  55. padding: 8px 0;
  56. border-bottom: 1px solid #eee;
  57. }
  58. .video-item:last-child {
  59. border-bottom: none;
  60. }
  61. .video-title {
  62. flex: 1;
  63. overflow: hidden;
  64. text-overflow: ellipsis;
  65. white-space: nowrap;
  66. }
  67. a.video-title {
  68. text-decoration: none;
  69. color: #333;
  70. }
  71. .video-actions {
  72. display: flex;
  73. gap: 8px;
  74. }
  75. button {
  76. padding: 4px 8px;
  77. border: none;
  78. border-radius: 4px;
  79. cursor: pointer;
  80. font-size: 12px;
  81. }
  82. button:hover {
  83. opacity: 0.9;
  84. }
  85. .empty-playlist {
  86. padding: 8px 0;
  87. color: #888;
  88. font-style: italic;
  89. font-size: 14px;
  90. }
  91. .current-video {
  92. background-color: #e3f2fd;
  93. border-left: 3px solid #4285f4;
  94. padding-left: 8px;
  95. font-weight: bold;
  96. }
  97. .done-video {
  98. color: #999;
  99. opacity: 0.6;
  100. }
  101. .done-video .video-title {
  102. text-decoration: line-through;
  103. }
  104. .non-contiguous-done-video {
  105. opacity: 0.7;
  106. background-color: rgba(128, 128, 128, 0.05);
  107. }
  108. .non-contiguous-done-video .video-title {
  109. color: #666;
  110. }
  111. /* Truncated videos indicator */
  112. .truncated-videos {
  113. padding: 8px 0 12px 8px;
  114. margin-bottom: 12px;
  115. border-bottom: 1px solid #eee;
  116. cursor: pointer;
  117. color: #888;
  118. font-style: italic;
  119. font-size: 14px;
  120. transition: color 0.2s ease, background-color 0.2s ease;
  121. }
  122. .truncated-videos:hover {
  123. color: #4285f4;
  124. background-color: #f8f9fa;
  125. }
  126. /* More menu styles */
  127. .more-menu-container {
  128. position: relative;
  129. }
  130. .more-btn {
  131. background-color: #666;
  132. color: white;
  133. font-size: 14px;
  134. padding: 4px 8px;
  135. border-radius: 4px;
  136. font-weight: bold;
  137. }
  138. .more-menu {
  139. position: absolute;
  140. right: 0;
  141. top: 100%;
  142. background: white;
  143. border: 1px solid #ddd;
  144. border-radius: 4px;
  145. box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  146. z-index: 1000;
  147. min-width: 100px;
  148. margin-top: 4px;
  149. }
  150. .menu-item {
  151. display: block;
  152. width: 100%;
  153. padding: 8px 12px;
  154. border: none;
  155. background: none;
  156. text-align: left;
  157. cursor: pointer;
  158. font-size: 12px;
  159. border-radius: 0;
  160. }
  161. .menu-item:hover {
  162. background-color: #f5f5f5;
  163. }
  164. .remove-item {
  165. color: #f44336;
  166. }
  167. .remove-item:hover {
  168. background-color: #ffeaea;
  169. }
  170. /* Back button styles */
  171. .back-btn {
  172. background-color: #4285f4;
  173. color: white;
  174. padding: 8px 12px;
  175. border-radius: 4px;
  176. font-size: 14px;
  177. margin-bottom: 8px;
  178. }
  179. .back-btn:hover {
  180. background-color: #3367d6;
  181. }
  182. /* Arrow back button styles */
  183. .back-btn-arrow {
  184. position: absolute;
  185. left: 0;
  186. background: none;
  187. border: none;
  188. font-size: 20px;
  189. color: #4285f4;
  190. cursor: pointer;
  191. padding: 8px 12px;
  192. border-radius: 50%;
  193. transition: background-color 0.2s ease, color 0.2s ease;
  194. display: flex;
  195. align-items: center;
  196. justify-content: center;
  197. width: 36px;
  198. height: 36px;
  199. }
  200. .back-btn-arrow:hover {
  201. background-color: #e8f0fe;
  202. color: #3367d6;
  203. }
  204. /* Floating playlist jump-scroll buttons */
  205. .playlist-jump-buttons {
  206. position: fixed;
  207. right: 16px;
  208. bottom: 16px;
  209. display: flex;
  210. flex-direction: column;
  211. gap: 8px;
  212. z-index: 100;
  213. }
  214. .jump-btn {
  215. width: 36px;
  216. height: 36px;
  217. border-radius: 50%;
  218. background-color: #4285f4;
  219. color: white;
  220. font-size: 16px;
  221. display: flex;
  222. align-items: center;
  223. justify-content: center;
  224. box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
  225. transition: background-color 0.2s ease;
  226. }
  227. .jump-btn:hover:not(:disabled) {
  228. background-color: #3367d6;
  229. }
  230. .jump-btn:disabled {
  231. background-color: #ccc;
  232. color: #888;
  233. cursor: default;
  234. box-shadow: none;
  235. }
  236. /* Reserve room below the last playlist so its videos can scroll clear
  237. of the fixed jump buttons (2 x 36px stacked + 8px gap + 16px bottom offset). */
  238. .playlists-scroll-spacer {
  239. height: 110px;
  240. }
  241. /* History view styles */
  242. .history-container {
  243. background: #fff;
  244. border-radius: 8px;
  245. padding: 12px;
  246. margin-bottom: 16px;
  247. box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  248. min-height: 200px;
  249. }
  250. .history-list {
  251. display: flex;
  252. flex-direction: column;
  253. gap: 16px;
  254. }
  255. .history-item {
  256. border-bottom: 1px solid #eee;
  257. padding-bottom: 12px;
  258. }
  259. .history-item:last-child {
  260. border-bottom: none;
  261. padding-bottom: 0;
  262. }
  263. .history-video-info {
  264. margin-bottom: 8px;
  265. }
  266. .history-video-title {
  267. display: block;
  268. font-weight: bold;
  269. color: #333;
  270. text-decoration: none;
  271. margin-bottom: 4px;
  272. overflow: hidden;
  273. text-overflow: ellipsis;
  274. white-space: nowrap;
  275. }
  276. .history-video-title:hover {
  277. color: #4285f4;
  278. }
  279. .history-video-id {
  280. font-size: 12px;
  281. color: #4285f4;
  282. font-family: monospace;
  283. text-decoration: none;
  284. cursor: pointer;
  285. transition: color 0.2s ease;
  286. }
  287. .history-video-id:hover {
  288. color: #3367d6;
  289. text-decoration: underline;
  290. }
  291. .history-tags {
  292. margin-top: 6px;
  293. display: flex;
  294. gap: 6px;
  295. flex-wrap: wrap;
  296. }
  297. .tag-chip {
  298. font-size: 10px;
  299. padding: 2px 8px;
  300. border: 1px solid #ddd;
  301. border-radius: 12px;
  302. background-color: #f8f9fa;
  303. color: #666;
  304. cursor: pointer;
  305. transition: all 0.2s ease;
  306. }
  307. .tag-chip:hover {
  308. background-color: #e8f0fe;
  309. border-color: #4285f4;
  310. color: #4285f4;
  311. }
  312. .tag-chip.active {
  313. background-color: #4285f4;
  314. border-color: #4285f4;
  315. color: white;
  316. }
  317. .tag-chip.active:hover {
  318. background-color: #3367d6;
  319. border-color: #3367d6;
  320. }
  321. .history-events {
  322. display: flex;
  323. flex-direction: column;
  324. gap: 4px;
  325. margin-left: 12px;
  326. }
  327. .history-event {
  328. display: flex;
  329. align-items: center;
  330. gap: 8px;
  331. font-size: 12px;
  332. color: #555;
  333. }
  334. .event-action {
  335. font-weight: bold;
  336. min-width: 60px;
  337. }
  338. .event-position {
  339. color: #666;
  340. font-family: monospace;
  341. min-width: 70px;
  342. }
  343. .event-timestamp {
  344. color: #888;
  345. font-size: 11px;
  346. margin-left: auto;
  347. }
  348. .empty-history {
  349. text-align: center;
  350. padding: 40px 0;
  351. color: #888;
  352. font-style: italic;
  353. }
  354. /* History button styles */
  355. .history-btn {
  356. background-color: #34a853;
  357. color: white;
  358. padding: 8px 12px;
  359. border-radius: 4px;
  360. font-size: 14px;
  361. }
  362. .history-btn:hover {
  363. background-color: #2d7d3a;
  364. }
  365. /* Playlist view styles */
  366. .playlist-view-container {
  367. background: #fff;
  368. border-radius: 8px;
  369. padding: 12px;
  370. margin-bottom: 16px;
  371. box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  372. min-height: 200px;
  373. }
  374. .playlist-full-view {
  375. display: flex;
  376. flex-direction: column;
  377. gap: 0;
  378. }
  379. .playlist-full-view .video-item {
  380. display: flex;
  381. justify-content: space-between;
  382. align-items: center;
  383. padding: 8px 0;
  384. border-bottom: 1px solid #eee;
  385. }
  386. .playlist-full-view .video-item:last-child {
  387. border-bottom: none;
  388. }
  389. /* Add current page button styles */
  390. .add-current-page-container {
  391. display: flex;
  392. flex-wrap: wrap;
  393. row-gap: 6px;
  394. column-gap: 4px;
  395. margin-bottom: 12px;
  396. }
  397. .add-current-page-btn {
  398. width: fit-content;
  399. background-color: #4285f4;
  400. color: white;
  401. padding: 8px 12px;
  402. border-radius: 4px;
  403. font-size: 14px;
  404. font-weight: 500;
  405. }
  406. .add-current-page-btn:hover:not(:disabled) {
  407. background-color: #3367d6;
  408. }
  409. .add-current-page-btn:disabled,
  410. .add-current-page-btn.disabled {
  411. background-color: #ccc;
  412. color: #888;
  413. cursor: not-allowed;
  414. }
  415. .add-current-page-btn:disabled:hover,
  416. .add-current-page-btn.disabled:hover {
  417. background-color: #ccc;
  418. }
  419. .scatter-control {
  420. display: inline-flex;
  421. align-items: stretch;
  422. border: 1px solid #aaa;
  423. border-radius: 4px;
  424. overflow: hidden;
  425. }
  426. .scatter-count-input {
  427. width: 36px;
  428. padding: 8px 2px;
  429. border: none;
  430. border-right: 1px solid #aaa;
  431. font-size: 14px;
  432. text-align: center;
  433. outline: none;
  434. box-sizing: border-box;
  435. }
  436. .scatter-btn {
  437. background-color: #388e3c;
  438. color: white;
  439. padding: 8px 12px;
  440. border: none;
  441. font-size: 14px;
  442. font-weight: 500;
  443. }
  444. .scatter-btn:hover:not(:disabled) {
  445. background-color: #2e7d32;
  446. cursor: pointer;
  447. }
  448. .scatter-btn:disabled {
  449. background-color: #ccc;
  450. color: #888;
  451. cursor: not-allowed;
  452. }
  453. /* Save Channel view styles */
  454. .save-channel-container {
  455. background: #fff;
  456. border-radius: 8px;
  457. padding: 16px;
  458. margin-bottom: 16px;
  459. box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  460. min-height: 300px;
  461. }
  462. .save-channel-content {
  463. display: flex;
  464. flex-direction: column;
  465. gap: 20px;
  466. }
  467. .curl-command-section {
  468. display: flex;
  469. flex-direction: column;
  470. gap: 12px;
  471. }
  472. .curl-field-container {
  473. display: flex;
  474. flex-direction: column;
  475. gap: 8px;
  476. }
  477. .curl-command-field {
  478. width: 100%;
  479. min-height: 120px;
  480. padding: 12px;
  481. border: 1px solid #ddd;
  482. border-radius: 6px;
  483. font-family: monospace;
  484. font-size: 12px;
  485. background-color: #f8f9fa;
  486. resize: vertical;
  487. line-height: 1.4;
  488. }
  489. .copy-curl-btn {
  490. align-self: flex-start;
  491. background-color: #4285f4;
  492. color: white;
  493. padding: 8px 16px;
  494. border-radius: 4px;
  495. font-size: 14px;
  496. font-weight: 500;
  497. transition: all 0.2s ease;
  498. }
  499. .copy-curl-btn:hover {
  500. background-color: #3367d6;
  501. transform: translateY(-1px);
  502. box-shadow: 0 2px 6px rgba(66, 133, 244, 0.3);
  503. }
  504. .copy-curl-btn:active {
  505. background-color: #2d5aa0;
  506. transform: translateY(0);
  507. box-shadow: 0 1px 3px rgba(66, 133, 244, 0.4);
  508. transition: all 0.1s ease;
  509. }
  510. .copy-curl-btn:disabled {
  511. background-color: #ccc;
  512. color: #888;
  513. cursor: not-allowed;
  514. transform: none;
  515. box-shadow: none;
  516. }
  517. .copy-curl-btn:disabled:hover {
  518. background-color: #ccc;
  519. transform: none;
  520. box-shadow: none;
  521. }
  522. .interval-section {
  523. display: flex;
  524. flex-direction: column;
  525. gap: 8px;
  526. }
  527. .interval-label {
  528. font-size: 14px;
  529. font-weight: 500;
  530. color: #333;
  531. }
  532. .interval-input {
  533. width: 100px;
  534. padding: 8px 12px;
  535. border: 1px solid #ddd;
  536. border-radius: 6px;
  537. font-size: 14px;
  538. font-family: inherit;
  539. background-color: #fff;
  540. transition: border-color 0.2s ease, box-shadow 0.2s ease;
  541. }
  542. .interval-input:focus {
  543. outline: none;
  544. border-color: #4285f4;
  545. box-shadow: 0 0 0 2px rgba(66, 133, 244, 0.2);
  546. }
  547. .interval-input:invalid {
  548. border-color: #f44336;
  549. }
  550. .category-section h3 {
  551. margin-bottom: 12px;
  552. color: #333;
  553. font-size: 16px;
  554. font-weight: 500;
  555. }
  556. .category-buttons {
  557. display: flex;
  558. gap: 8px;
  559. flex-wrap: wrap;
  560. }
  561. .category-btn {
  562. padding: 8px 16px;
  563. border: 2px solid #ddd;
  564. border-radius: 6px;
  565. background-color: #f8f9fa;
  566. color: #666;
  567. font-size: 14px;
  568. font-weight: 500;
  569. cursor: pointer;
  570. transition: all 0.2s ease;
  571. }
  572. .category-btn:hover {
  573. border-color: #4285f4;
  574. background-color: #e8f0fe;
  575. color: #4285f4;
  576. }
  577. .category-btn.active {
  578. border-color: #4285f4;
  579. background-color: #4285f4;
  580. color: white;
  581. }
  582. .category-btn.active:hover {
  583. border-color: #3367d6;
  584. background-color: #3367d6;
  585. }
  586. .save-channel-notice {
  587. background-color: #fff3cd;
  588. border: 1px solid #ffeaa7;
  589. border-radius: 6px;
  590. padding: 12px;
  591. color: #856404;
  592. font-size: 14px;
  593. }
  594. .save-channel-notice p {
  595. margin: 0;
  596. }
  597. /* Save Channel button styles */
  598. .save-channel-btn {
  599. background-color: #ff6d01;
  600. color: white;
  601. padding: 8px 12px;
  602. border-radius: 4px;
  603. font-size: 14px;
  604. font-weight: 500;
  605. }
  606. .save-channel-btn:hover {
  607. background-color: #e55a00;
  608. }
  609. /* Wiki/Insp view styles */
  610. .wiki-insp-container {
  611. background: #fff;
  612. border-radius: 8px;
  613. padding: 16px;
  614. margin-bottom: 16px;
  615. box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  616. min-height: 300px;
  617. }
  618. .wiki-insp-content {
  619. display: flex;
  620. flex-direction: column;
  621. gap: 20px;
  622. }
  623. .wikitext-command-section {
  624. display: flex;
  625. flex-direction: column;
  626. gap: 12px;
  627. }
  628. .wikitext-command-field {
  629. width: 100%;
  630. min-height: 120px;
  631. padding: 12px;
  632. border: 1px solid #ddd;
  633. border-radius: 6px;
  634. font-family: monospace;
  635. font-size: 12px;
  636. background-color: #f8f9fa;
  637. resize: vertical;
  638. line-height: 1.4;
  639. }
  640. .timestamp-controls {
  641. display: flex;
  642. align-items: center;
  643. justify-content: space-between;
  644. gap: 12px;
  645. padding: 8px 0;
  646. }
  647. .timestamp-checkbox-container {
  648. display: flex;
  649. align-items: center;
  650. }
  651. .timestamp-checkbox-label {
  652. display: flex;
  653. align-items: center;
  654. gap: 8px;
  655. font-size: 14px;
  656. color: #333;
  657. cursor: pointer;
  658. user-select: none;
  659. }
  660. .timestamp-checkbox {
  661. width: 16px;
  662. height: 16px;
  663. cursor: pointer;
  664. accent-color: #4285f4;
  665. }
  666. .refresh-timestamp-btn {
  667. background-color: #34a853;
  668. color: white;
  669. padding: 6px 12px;
  670. border-radius: 4px;
  671. font-size: 12px;
  672. font-weight: 500;
  673. transition: all 0.2s ease;
  674. white-space: nowrap;
  675. }
  676. .refresh-timestamp-btn:hover:not(:disabled) {
  677. background-color: #2d7d3a;
  678. transform: translateY(-1px);
  679. box-shadow: 0 2px 6px rgba(52, 168, 83, 0.3);
  680. }
  681. .refresh-timestamp-btn:active {
  682. background-color: #1e5f2a;
  683. transform: translateY(0);
  684. box-shadow: 0 1px 3px rgba(52, 168, 83, 0.4);
  685. transition: all 0.1s ease;
  686. }
  687. .refresh-timestamp-btn:disabled {
  688. background-color: #ccc;
  689. color: #888;
  690. cursor: not-allowed;
  691. transform: none;
  692. box-shadow: none;
  693. }
  694. .refresh-timestamp-btn:disabled:hover {
  695. background-color: #ccc;
  696. transform: none;
  697. box-shadow: none;
  698. }
  699. .copy-wikitext-btn {
  700. width: 100%;
  701. background-color: #4285f4;
  702. color: white;
  703. padding: 10px 16px;
  704. border-radius: 6px;
  705. font-size: 14px;
  706. font-weight: 500;
  707. transition: all 0.2s ease;
  708. }
  709. .copy-wikitext-btn:hover:not(:disabled) {
  710. background-color: #3367d6;
  711. transform: translateY(-1px);
  712. box-shadow: 0 2px 8px rgba(66, 133, 244, 0.3);
  713. }
  714. .copy-wikitext-btn:active {
  715. background-color: #2d5aa0;
  716. transform: translateY(0);
  717. box-shadow: 0 1px 3px rgba(66, 133, 244, 0.4);
  718. transition: all 0.1s ease;
  719. }
  720. .copy-wikitext-btn:disabled {
  721. background-color: #ccc;
  722. color: #888;
  723. cursor: not-allowed;
  724. transform: none;
  725. box-shadow: none;
  726. }
  727. .copy-wikitext-btn:disabled:hover {
  728. background-color: #ccc;
  729. transform: none;
  730. box-shadow: none;
  731. }
  732. .wiki-insp-notice {
  733. background-color: #fff3cd;
  734. border: 1px solid #ffeaa7;
  735. border-radius: 6px;
  736. padding: 12px;
  737. color: #856404;
  738. font-size: 14px;
  739. }
  740. .wiki-insp-notice p {
  741. margin: 0;
  742. }
  743. /* Wiki/Insp button styles */
  744. .wiki-insp-btn {
  745. background-color: #9c27b0;
  746. color: white;
  747. padding: 8px 12px;
  748. border-radius: 4px;
  749. font-size: 14px;
  750. font-weight: 500;
  751. }
  752. .wiki-insp-btn:hover {
  753. background-color: #7b1fa2;
  754. }
  755. /* Import view styles */
  756. .import-container {
  757. background: #fff;
  758. border-radius: 8px;
  759. padding: 16px;
  760. margin-bottom: 16px;
  761. box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  762. min-height: 300px;
  763. }
  764. .import-content {
  765. display: flex;
  766. flex-direction: column;
  767. gap: 20px;
  768. }
  769. .import-section {
  770. display: flex;
  771. flex-direction: column;
  772. gap: 12px;
  773. }
  774. .import-textarea {
  775. width: 100%;
  776. min-height: 450px;
  777. max-height: 500px;
  778. padding: 12px;
  779. border: 1px solid #ddd;
  780. border-radius: 6px;
  781. font-family: monospace;
  782. font-size: 12px;
  783. background-color: #f8f9fa;
  784. resize: vertical;
  785. line-height: 1.4;
  786. }
  787. .import-textarea:focus {
  788. outline: none;
  789. border-color: #4285f4;
  790. box-shadow: 0 0 0 2px rgba(66, 133, 244, 0.2);
  791. }
  792. .import-submit-btn {
  793. width: 100%;
  794. background-color: #34a853;
  795. color: white;
  796. padding: 10px 16px;
  797. border-radius: 6px;
  798. font-size: 14px;
  799. font-weight: 500;
  800. transition: all 0.2s ease;
  801. }
  802. .import-submit-btn:hover {
  803. background-color: #2d7d3a;
  804. transform: translateY(-1px);
  805. box-shadow: 0 2px 8px rgba(52, 168, 83, 0.3);
  806. }
  807. .import-submit-btn:active {
  808. background-color: #1e5f2a;
  809. transform: translateY(0);
  810. box-shadow: 0 1px 3px rgba(52, 168, 83, 0.4);
  811. transition: all 0.1s ease;
  812. }
  813. /* Import button styles */
  814. .import-btn {
  815. background-color: #34a853;
  816. color: white;
  817. padding: 8px 12px;
  818. border-radius: 4px;
  819. font-size: 14px;
  820. font-weight: 500;
  821. }
  822. .import-btn:hover {
  823. background-color: #2d7d3a;
  824. }
  825. /* Export button styles */
  826. .export-btn {
  827. background-color: #4285f4;
  828. color: white;
  829. padding: 8px 12px;
  830. border-radius: 4px;
  831. font-size: 14px;
  832. font-weight: 500;
  833. }
  834. .export-btn:hover {
  835. background-color: #3367d6;
  836. }
  837. .export-container {
  838. display: flex;
  839. flex-wrap: wrap;
  840. row-gap: 6px;
  841. column-gap: 4px;
  842. margin-bottom: 12px;
  843. }
  844. .move-to-playlist-item {
  845. color: #555;
  846. }
  847. .move-to-submenu {
  848. border-top: 1px solid #eee;
  849. }
  850. .move-to-playlist-option {
  851. padding-left: 20px;
  852. color: #4285f4;
  853. }
  854. .move-to-playlist-option:hover {
  855. background-color: #e8f0fe;
  856. }