Files

206 lines
6.5 KiB
CSS
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
.root, :root { --card-title-size: 32px; --card-list-size: 24px; --card-padding: 24px }
.html, body { height: 100%; overflow: hidden }
.wall { display: grid; gap: 12px; padding: 8px; min-height: calc(100vh - 60px); height: 100vh; box-sizing: border-box }
.cards { display: grid; grid-template-columns: 1fr; grid-auto-rows: 1fr; height: 100%; gap: 0; align-content: stretch; overflow: hidden }
.cards-inner { display: flex; height: 100%; gap: 12px; will-change: transform; transition: transform 300ms ease }
.cards-inner .card { flex: 0 0 calc(50% - 6px) }
.cards { position: relative }
.card { border: 2px solid #111; border-radius: 16px; padding: var(--card-padding); background: rgba(255,255,255,0.96) }
.card { height: 100%; display: flex; flex-direction: column; position: relative; z-index: 1; overflow: hidden }
.card::before { content: ""; position: absolute; inset: 0; border-radius: 16px; background-image: var(--card-bg-image, none); background-repeat: var(--card-bg-repeat, repeat); background-size: var(--card-bg-size, 120px 120px); background-position: center; opacity: var(--card-bg-opacity, 0.08); z-index: 0 }
.card > * { position: relative; z-index: 1 }
.card .list { flex: 1; font-size: var(--card-list-size) }
.card .lines { flex: 1; font-size: var(--card-list-size); line-height: 1.5 }
.card .lines div { margin: 6px 0 }
.card .title { font-size: var(--card-title-size) }
.card .title { font-size: 32px; font-weight: 700; margin-bottom: 12px }
.card .list { font-size: 24px; line-height: 1.5 }
.card .list li { margin: 6px 0 }
.card .meta { margin-top: 8px; font-size: 16px; color: #666 }
.status { margin: 8px 0; padding: 8px; border: 1px solid #ffd666; background: #fffbe6; color: #a87000; border-radius: 8px }
.controls { display: flex; gap: 8px; align-items: center }
.preview { display: grid; grid-template-columns: repeat(auto-fill, minmax(105px, 1fr)); gap: 6px; max-height: 100%; overflow-y: auto }
.thumb { border: 1px solid #bbb; border-radius: 10px; padding: 6px; background: #fff; cursor: pointer }
.thumb .title { font-size: 12px; font-weight: 600; margin-bottom: 4px }
.preview .title { display: block; max-width: 6em; word-break: break-all; overflow-wrap: anywhere; white-space: normal }
.thumb .list { display: none }
.thumb.active { border-color: #1677ff }
.debug { margin: 12px 0; padding: 8px; border: 1px dashed #aaa; }
.debug-actions { display: flex; gap: 8px; margin-bottom: 8px }
.debug-output { height: 240px; overflow: auto; background: #fafafa; padding: 8px; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 12px; white-space: pre-wrap }
/* Landscape preference */
@media (orientation: landscape) {
.wall {
grid-template-columns: 1fr auto;
grid-template-rows: 1fr auto;
grid-template-areas:
"cards preview"
"controls controls";
align-items: start;
}
.preview { display: grid; grid-template-columns: 1fr; grid-auto-rows: min-content; gap: 6px; overflow: auto; width: 8em; box-sizing: border-box }
.thumb { min-width: unset; width: 100% }
.preview .title { max-width: 8em }
.weather { grid-column: 1 / -1 !important }
.controls { grid-column: 1 / -1 !important; width: 100% }
}
/* Portrait phones (iPhone 14/Pro/Max widths ~393–430px) */
@media (max-width: 480px) {
.wall { gap: 8px; padding: 6px; min-height: 100vh }
.cards { gap: 8px }
.card { padding: var(--card-padding) }
.card .title { font-size: var(--card-title-size) }
.card .list { font-size: var(--card-list-size) }
.preview { display: flex; gap: 6px; overflow: hidden; flex-wrap: nowrap }
.thumb { min-width: 90px; padding: 4px }
.thumb .title { font-size: 11px }
.thumb .list { font-size: 9px; line-height: 1.25 }
.controls { gap: 6px }
}
/* Portrait mobile: allow vertical scroll */
@media (max-width: 480px) and (orientation: portrait) {
html, body { overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch }
.wall { min-height: auto }
}
/* Mobile iPad/iPhone friendly */
@media (max-width: 800px) {
.card .title { font-size: 28px }
.card .list { font-size: 20px }
.debug-output { height: 160px }
.controls { flex-wrap: wrap }
}
/* Portrait strict sizing for preview and weather */
@media (orientation: portrait) {
.preview { height: 4em; display: flex; gap: 6px; overflow-x: auto; overflow-y: hidden; align-items: center }
.thumb { height: 3.6em; padding: 4px 6px; display: flex; align-items: center }
.preview .title { line-height: 1em; max-width: 8em; max-height: 4em; word-break: break-all; overflow: hidden; white-space: normal }
}
.wall-settings-modal {
max-width: 640px;
width: 90vw;
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
border-radius: 14px;
padding: 20px;
gap: 12px;
}
.wall-settings-modal h3 {
margin: 0 0 8px 0;
font-size: 18px;
}
.wall-settings-modal label {
display: block;
margin-bottom: 4px;
font-size: 13px;
color: #555;
}
.wall-settings-modal input,
.wall-settings-modal select {
width: 100%;
}
.wall-cards-modal {
width: 80vw;
max-width: 80vw;
max-height: 80vh;
height: 80vh;
padding: 20px;
border-radius: 14px;
box-shadow: 0 16px 40px rgba(0, 0, 0, 0.22);
display: grid;
grid-template-rows: auto auto 1fr auto;
gap: 12px;
}
.wall-cards-modal h3 {
margin: 0;
font-size: 18px;
}
.cards-modal-toolbar {
display: flex;
justify-content: flex-start;
align-items: center;
}
.cards-modal-main {
display: grid;
grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr);
gap: 12px;
min-height: 0;
}
.cards-modal-list {
border: 1px solid #e5e5e5;
border-radius: 8px;
padding: 8px;
background: #fafafa;
overflow: auto;
}
.cards-modal-editor {
display: grid;
grid-template-rows: auto 1fr auto;
gap: 8px;
min-height: 0;
}
.cards-modal-textarea {
display: grid;
grid-template-rows: auto 1fr;
min-height: 0;
}
.cards-modal-textarea textarea {
width: 100%;
height: 100%;
resize: none;
}
.cards-table {
width: 100%;
border-collapse: collapse;
font-size: 13px;
}
.cards-table th,
.cards-table td {
padding: 4px 6px;
border-bottom: 1px solid #e5e5e5;
}
.cards-table tr:hover {
background: #f5f5f5;
}
.wall-cards-modal label {
display: block;
margin-bottom: 4px;
font-size: 13px;
color: #555;
}
.wall-cards-modal input,
.wall-cards-modal textarea {
width: 100%;
}
@media (max-width: 800px) {
.wall-cards-modal {
width: 96vw;
max-width: 96vw;
grid-template-rows: auto auto 1fr auto;
}
.cards-modal-main {
grid-template-columns: 1fr;
grid-template-rows: minmax(0, 0.9fr) minmax(0, 1.1fr);
}
}