| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- :root {
- --bg: #09111f;
- --bg-soft: rgba(12, 23, 44, 0.72);
- --panel: rgba(20, 33, 58, 0.88);
- --line: rgba(255, 255, 255, 0.1);
- --text: #eff6ff;
- --muted: #9fb3c8;
- --accent: #61d7b6;
- --accent-2: #f6b15f;
- --danger: #ff7b7b;
- --shadow: 0 24px 70px rgba(0, 0, 0, 0.35);
- }
- * {
- box-sizing: border-box;
- }
- body {
- margin: 0;
- min-height: 100vh;
- font-family: "Segoe UI", "PingFang SC", sans-serif;
- color: var(--text);
- background:
- radial-gradient(circle at top left, rgba(97, 215, 182, 0.22), transparent 30%),
- radial-gradient(circle at top right, rgba(246, 177, 95, 0.18), transparent 28%),
- linear-gradient(135deg, #08101d 0%, #0d1d35 54%, #10284c 100%);
- }
- .page-shell {
- display: grid;
- grid-template-columns: 340px 1fr;
- gap: 24px;
- padding: 24px;
- }
- .glass {
- backdrop-filter: blur(18px);
- background: var(--bg-soft);
- border: 1px solid var(--line);
- border-radius: 24px;
- box-shadow: var(--shadow);
- }
- .sidebar,
- .content {
- display: flex;
- flex-direction: column;
- gap: 20px;
- }
- .sidebar {
- padding: 24px;
- }
- .brand h1,
- .hero h2 {
- margin: 0;
- font-size: 2rem;
- }
- .eyebrow {
- margin: 0 0 10px;
- text-transform: uppercase;
- letter-spacing: 0.18em;
- font-size: 0.72rem;
- color: var(--accent);
- }
- .subtext {
- color: var(--muted);
- line-height: 1.6;
- }
- .panel,
- .hero,
- .library-panel,
- .queue-panel {
- padding: 20px;
- }
- .panel-head {
- display: flex;
- justify-content: space-between;
- align-items: center;
- gap: 16px;
- margin-bottom: 14px;
- }
- .panel-head h2 {
- margin: 0;
- font-size: 1.05rem;
- }
- .field {
- display: flex;
- flex-direction: column;
- gap: 8px;
- margin-bottom: 12px;
- color: var(--muted);
- font-size: 0.92rem;
- }
- input {
- width: 100%;
- border: 1px solid var(--line);
- background: rgba(255, 255, 255, 0.04);
- color: var(--text);
- border-radius: 14px;
- padding: 12px 14px;
- }
- button {
- border: 0;
- border-radius: 999px;
- padding: 11px 16px;
- cursor: pointer;
- transition: transform 0.18s ease, opacity 0.18s ease, background 0.18s ease;
- }
- button:hover {
- transform: translateY(-1px);
- }
- .primary-btn {
- background: linear-gradient(135deg, var(--accent), #2eb6f0);
- color: #072035;
- font-weight: 700;
- }
- .secondary-btn,
- .ghost-btn {
- background: rgba(255, 255, 255, 0.07);
- color: var(--text);
- }
- .secondary-btn.active,
- .ghost-btn.active {
- background: rgba(97, 215, 182, 0.18);
- color: var(--accent);
- }
- .content {
- min-width: 0;
- }
- .hero {
- display: flex;
- flex-direction: column;
- gap: 18px;
- }
- .hero-actions {
- display: flex;
- flex-wrap: wrap;
- gap: 12px;
- }
- audio {
- width: 100%;
- }
- .library-grid {
- display: grid;
- grid-template-columns: 1.1fr 1fr;
- gap: 24px;
- }
- .folder-tree,
- .queue-list,
- .playlist-list {
- display: flex;
- flex-direction: column;
- gap: 12px;
- max-height: 62vh;
- overflow: auto;
- padding-right: 4px;
- }
- .folder-node {
- border: 1px solid var(--line);
- border-radius: 18px;
- padding: 14px;
- background: rgba(255, 255, 255, 0.03);
- }
- .folder-node h3,
- .folder-node h4 {
- margin: 0 0 8px;
- }
- .folder-actions,
- .track-actions {
- display: flex;
- flex-wrap: wrap;
- gap: 8px;
- }
- .track-item,
- .playlist-item {
- display: flex;
- justify-content: space-between;
- gap: 12px;
- align-items: center;
- border: 1px solid var(--line);
- border-radius: 18px;
- padding: 14px;
- background: rgba(255, 255, 255, 0.03);
- }
- .track-name {
- display: block;
- margin-bottom: 5px;
- }
- .track-path {
- margin: 0;
- color: var(--muted);
- font-size: 0.88rem;
- word-break: break-all;
- }
- .playlist-item p {
- margin: 4px 0 0;
- color: var(--muted);
- }
- @media (max-width: 1080px) {
- .page-shell,
- .library-grid {
- grid-template-columns: 1fr;
- }
- .sidebar {
- order: 2;
- }
- }
|