diff --git a/CloudServer/public/index.html b/CloudServer/public/index.html index ef4914b..010377d 100644 --- a/CloudServer/public/index.html +++ b/CloudServer/public/index.html @@ -55,6 +55,10 @@ overflow: hidden; } + .mobile-only { + display: none; + } + /* --- Splitter / Resizer --- */ .resizer-horizontal { height: 4px; @@ -286,7 +290,9 @@ .actions { display: flex; + flex-wrap: wrap; gap: 12px; + justify-content: flex-end; } .btn { @@ -710,6 +716,209 @@ ::-webkit-scrollbar-thumb:hover { background: #52525b; } + + @media (max-width: 900px) { + body { + height: auto; + min-height: 100vh; + overflow: auto; + grid-template-rows: auto auto; + } + + .main-area { + grid-template-columns: 1fr; + min-height: auto; + } + + .sidebar { + min-width: 0 !important; + max-height: none; + border-bottom: 1px solid var(--bg-border); + } + + .content-area { + min-width: 0 !important; + } + + .resizer-vertical, + .resizer-horizontal { + display: none; + } + + .section-header, + .status-main, + .fm-toolbar, + .file-header, + .file-row, + .console-header, + .console-logs, + .modal-header, + .modal-body, + .modal-footer { + padding-left: 14px; + padding-right: 14px; + } + + .status-main { + align-items: flex-start; + gap: 12px; + } + + .item-info { + min-width: 0; + flex: 1; + } + + .item-title, + .item-sub, + .file-name, + .log-msg, + .toast-msg { + word-break: break-word; + } + + .fm-toolbar { + flex-direction: column; + align-items: stretch; + gap: 12px; + position: sticky; + top: 0; + z-index: 20; + } + + .breadcrumb { + overflow-x: auto; + white-space: nowrap; + padding-bottom: 4px; + } + + .actions { + justify-content: stretch; + gap: 8px; + } + + .actions .btn, + .actions a.btn, + .console-header .btn { + flex: 1 1 calc(50% - 4px); + min-height: 40px; + justify-content: center; + text-align: center; + white-space: normal; + } + + .file-header { + display: none; + } + + .file-row { + grid-template-columns: 28px 1fr auto; + gap: 10px; + padding-top: 14px; + padding-bottom: 14px; + } + + .file-row > :nth-child(3) { + grid-column: 2 / 3; + font-size: 0.75rem; + } + + .file-row > :nth-child(4) { + grid-column: 3 / 4; + grid-row: 1 / span 2; + align-self: center; + } + + .file-row .file-name { + margin-left: 0; + } + + .console-area { + min-height: 42vh !important; + } + + .console-header { + flex-direction: column; + align-items: stretch; + gap: 10px; + } + + .log-entry { + flex-direction: column; + gap: 2px; + } + + .log-time { + font-size: 0.72rem; + } + + .modal { + width: calc(100% - 20px); + max-width: none; + max-height: 92vh; + } + + textarea.editor { + height: 52vh; + font-size: 0.85rem; + } + + .audio-player { + flex-wrap: wrap; + padding: 14px; + } + + .progress-container { + order: 3; + width: 100%; + } + + .time-display { + min-width: 0; + } + + .toast-container { + left: 10px; + right: 10px; + bottom: 10px; + } + + .toast { + min-width: 0; + width: 100%; + } + } + + @media (max-width: 560px) { + .section-header { + font-size: 0.78rem; + } + + .status-main { + padding-top: 10px; + padding-bottom: 10px; + } + + .item-title { + font-size: 0.88rem; + } + + .item-sub, + .file-meta, + .btn, + .toast-title { + font-size: 0.76rem; + } + + .actions .btn, + .actions a.btn { + flex-basis: 100%; + } + + .btn-icon { + padding: 6px; + } + }