/* Vlastní styly portálu SVJ (bez build kroku – Filament má předkompilované CSS). */
.svj-footer { font-size: .75rem; color: var(--gray-500); text-align: center; padding: 1.5rem 0; }
.svj-footer a { text-decoration: underline; }
.svj-stack > * + * { margin-top: 1rem; }
.svj-stack-sm > * + * { margin-top: .35rem; }
.svj-muted { color: var(--gray-500); }
.svj-small { font-size: .875rem; line-height: 1.45; }
.svj-xs { font-size: .75rem; }
.svj-hello { font-size: 1.125rem; font-weight: 600; }
.svj-strong { font-weight: 600; }
.svj-row { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.svj-list { list-style: none; margin: .25rem 0 0; padding: 0; }
.svj-list li { padding: .1rem 0; }
.svj-alert { border-radius: .75rem; padding: .75rem 1rem; background: var(--danger-50); color: var(--gray-900); }
.svj-alert-title { font-weight: 600; color: var(--danger-700); margin-bottom: .25rem; }
.dark .svj-alert { background: color-mix(in oklab, var(--danger-500) 12%, transparent); color: var(--gray-100); }
.dark .svj-alert-title { color: var(--danger-400); }
.svj-pre { white-space: pre-line; }

.svj-posts > a { display: block; padding: .8rem 0; border-top: 1px solid var(--gray-100); }
.svj-posts > a:first-child { border-top: 0; padding-top: 0; }
.svj-posts > a:last-child { padding-bottom: 0; }
.svj-posts > a:hover .svj-post-title { color: var(--primary-600); }
.dark .svj-posts > a { border-color: rgb(255 255 255 / .06); }
.svj-post-title { font-weight: 600; }
.svj-pin { width: 1rem; height: 1rem; color: var(--primary-600); }

.svj-comments > * + * { margin-top: .75rem; }
.svj-comment { border: 1px solid var(--gray-200); border-radius: .75rem; padding: .75rem .9rem; font-size: .875rem; }
.svj-comment.is-internal { border-color: var(--warning-300); background: var(--warning-50); }
.svj-comment.is-manager { border-color: var(--info-200, #bae6fd); background: var(--info-50, #f0f9ff); }
.dark .svj-comment { border-color: rgb(255 255 255 / .1); }
.dark .svj-comment.is-internal { background: color-mix(in oklab, var(--warning-500) 10%, transparent); border-color: color-mix(in oklab, var(--warning-500) 40%, transparent); }
.dark .svj-comment.is-manager { background: color-mix(in oklab, var(--info-500) 10%, transparent); }
.svj-comment-meta { display: flex; flex-wrap: wrap; gap: .5rem; font-size: .75rem; color: var(--gray-500); margin-bottom: .25rem; }
.svj-comment-author { font-weight: 600; color: var(--gray-800); }
.dark .svj-comment-author { color: var(--gray-200); }
.svj-comment-flag { color: var(--warning-700); font-weight: 500; }

.svj-files { display: flex; flex-wrap: wrap; gap: .5rem; padding-top: .5rem; }
.svj-file { display: inline-flex; align-items: center; gap: .4rem; border: 1px solid var(--gray-200); border-radius: .5rem; padding: .4rem .6rem; font-size: .875rem; }
.svj-file:hover { background: var(--gray-50); }
.dark .svj-file { border-color: rgb(255 255 255 / .1); }
.svj-thumb { width: 4.5rem; height: 4.5rem; object-fit: cover; border-radius: .4rem; display: block; }

.svj-table { width: 100%; font-size: .875rem; border-collapse: collapse; }
.svj-table th { text-align: left; color: var(--gray-500); font-weight: 500; padding: .3rem .8rem .3rem 0; }
.svj-table td { border-top: 1px solid var(--gray-100); padding: .35rem .8rem .35rem 0; vertical-align: top; }
.dark .svj-table td { border-color: rgb(255 255 255 / .06); }
.svj-nowrap { white-space: nowrap; }
.svj-warn { color: var(--warning-700); }
.svj-ol { list-style: decimal; padding-left: 1.25rem; }
.svj-ol li + li { margin-top: .25rem; }
.svj-link { color: var(--primary-600); text-decoration: underline; }
.svj-errors { list-style: disc; padding-left: 1.25rem; color: var(--danger-600); font-size: .875rem; }
.svj-form > * + * { margin-top: 1rem; }
.svj-comment.is-mine { border-color: color-mix(in oklab, var(--primary-500) 40%, transparent); background: color-mix(in oklab, var(--primary-500) 6%, transparent); margin-left: 2rem; }
/* Plán domu */
.svj-floor-nav { display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: flex-end; }
.svj-floor-group > .svj-xs { margin-bottom: .25rem; }
.svj-plan { width: 100%; height: auto; display: block; background: #fff; border-radius: .5rem; user-select: none; }
.svj-plan.is-drawing { cursor: crosshair; }
.svj-band rect { fill: rgba(13,148,136,.0); stroke: rgba(13,148,136,.0); cursor: pointer; transition: fill .15s; }
.svj-band:hover rect { fill: rgba(13,148,136,.28); stroke: #0d9488; stroke-width: 2; }
.svj-band text { font: 600 14px system-ui, sans-serif; fill: #0f766e; opacity: 0; pointer-events: none; }
.svj-band:hover text { opacity: 1; }
.svj-shape polygon { cursor: pointer; stroke-width: 3; transition: fill .12s; }
.svj-shape.is-assigned polygon { fill: rgba(13,148,136,.16); stroke: rgba(13,148,136,.75); }
.svj-shape.is-unassigned polygon { fill: rgba(245,158,11,.10); stroke: rgba(180,83,9,.55); stroke-dasharray: 10 6; }
.svj-shape.is-common polygon { fill: rgba(59,130,246,.08); stroke: rgba(59,130,246,.5); }
.svj-shape.is-parking polygon { fill: rgba(217,119,6,.22); stroke: rgba(217,119,6,.9); }
.svj-shape.is-parking.is-assigned polygon { fill: rgba(13,148,136,.3); stroke: rgba(13,148,136,.9); }
.svj-shape.is-mine polygon { fill: rgba(37,99,235,.28); stroke: #2563eb; }
.svj-shape:hover polygon { fill-opacity: 1; filter: brightness(.95); stroke-width: 5; }
.svj-shape.is-selected polygon { stroke: #dc2626; stroke-width: 6; stroke-dasharray: none; }
.svj-shape-label { font: 700 22px system-ui, sans-serif; fill: #1c1917; text-anchor: middle; pointer-events: none; }
.svj-shape-label.is-small { font-size: 22px; }
.svj-draft { fill: rgba(220,38,38,.12); stroke: #dc2626; stroke-width: 3; pointer-events: none; }
.svj-legend { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: .5rem; color: var(--gray-500); }
.svj-legend i { display: inline-block; width: .8rem; height: .8rem; border-radius: 3px; margin-right: .3rem; vertical-align: -1px; border: 1.5px solid; }
.svj-legend i.is-mine { background: #9cc0f5; border-color: #2563eb; }
.svj-legend i.is-assigned { background: #a7dcd3; border-color: #0d9488; }
.svj-legend i.is-unassigned { background: #f6dcae; border-color: #b45309; }
.svj-legend i.is-parking { background: #f6c27a; border-color: #d97706; }
.svj-house-grid { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 1024px) { .svj-house-grid { grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); align-items: start; } }
.svj-input { border: 1px solid var(--gray-300); border-radius: .4rem; padding: .25rem .5rem; font-size: .8rem; background: transparent; }
/* Pohled na dům */
.svj-facade { background: linear-gradient(#eef6f5, #fff 70%); }
.svj-facade .f-title { font: 600 17px system-ui, sans-serif; fill: #44403c; text-anchor: middle; }
.svj-facade .f-wall { fill: #fafaf9; stroke: #57534e; stroke-width: 1.5; }
.svj-facade .f-top { fill: #c9805a; stroke: #57534e; stroke-width: 1.5; }
.svj-facade .f-accent { fill: #efcb6b; stroke: #a8862e; stroke-width: 1; }
.svj-facade .f-base { fill: #e7e5e4; stroke: #57534e; stroke-width: 1.5; }
.svj-facade .f-joint { stroke: #a8a29e; stroke-width: 1.2; }
.svj-facade .f-win { fill: #6b6560; stroke: #3f3a36; stroke-width: 1.5; }
.svj-facade .f-door { fill: #57534e; }
.svj-facade .f-ground { stroke: #57534e; stroke-width: 2; }
.svj-facade .f-garage { fill: #f5f5f4; stroke: #a8a29e; stroke-width: 1.2; stroke-dasharray: 6 4; }
.svj-facade .f-fence { fill: none; stroke: #a8a29e; stroke-width: 1; }
.dark .svj-facade { background: #1c1917; }
.svj-facade .svj-band text { fill: #0f766e; font-size: 15px; }
/* Schematický půdorys */
.svj-plan.is-schema { background: linear-gradient(#f3f8f7, #fafaf9); }
.dark .svj-plan.is-schema { background: #1c1917; }
.is-schema .s-garage { fill: #ece9e6; stroke: #78716c; stroke-width: 4; }
.is-schema .s-common { fill: #e7e5e4; stroke: #a8a29e; stroke-width: 3; }
.is-schema .s-corridor { fill: #e7e5e4; stroke: none; }
.is-schema .s-core { fill: #d6d3d1; stroke: #78716c; stroke-width: 3; pointer-events: none; }
.is-schema .s-label { font: 600 24px system-ui, sans-serif; fill: #57534e; text-anchor: middle; pointer-events: none; }
.is-schema .s-label.is-muted { fill: #78716c; font-weight: 500; }
.is-schema .svj-shape polygon { stroke: #fff; stroke-width: 8; stroke-dasharray: none; stroke-linejoin: round; }
.is-schema .svj-shape.is-assigned polygon { fill: #a7dcd3; }
.is-schema .svj-shape.is-unassigned polygon { fill: #f6dcae; }
.is-schema .svj-shape.is-mine polygon { fill: #9cc0f5; }
.is-schema .svj-shape.is-common polygon { fill: #dbe7f6; }
.is-schema .svj-shape.is-parking polygon { fill: #f6c27a; stroke: #fff; stroke-width: 4; }
.is-schema .svj-shape.is-parking.is-assigned polygon { fill: #7cc9bb; }
.is-schema .svj-shape.is-parking.is-mine polygon { fill: #9cc0f5; }
.is-schema .svj-shape:hover polygon { filter: brightness(.93); }
.is-schema .svj-shape.is-selected polygon { stroke: #dc2626; stroke-width: 8; }
.svj-shape-label.is-big { font-size: 34px; font-weight: 700; fill: #1c1917; }
.svj-shape-sub { font: 500 22px system-ui, sans-serif; fill: #44403c; text-anchor: middle; pointer-events: none; }
.dark .is-schema .s-garage, .dark .is-schema .s-common, .dark .is-schema .s-corridor { fill: #292524; }
.is-schema .s-terrace { fill: #efe6d6; stroke: #c8b79a; stroke-width: 3; stroke-dasharray: 12 8; }
@media (min-width: 1024px) { .svj-house-grid.is-wide { grid-template-columns: 1fr; } }
.svj-shape-label.is-small { font-size: 30px; }
