        .floor-plan-wrapper { display: flex; flex-direction: column; align-items: center; gap: 60px; }
        .floor { width: 100%; max-width: 800px; }
        .floor-title { font-size: 18px; font-weight: 600; margin-bottom: 15px; display: flex; align-items: center; gap: 10px; color: var(--text-main); }
        .floor-title::before { content: ''; display: inline-block; width: 20px; height: 3px; background: var(--primary); }

        .building-grid { background: #1A202C; padding: 6px; border-radius: 4px; display: grid; gap: 6px; position: relative; }
        
        /* Grid para Indaiatuba */
        .grid-indaiatuba { 
            grid-template-columns: 2fr 2fr 0.8fr 1.2fr; 
            grid-template-rows: 60px 100px 105px 75px 150px 130px; 
        }

        .room-bp { background: #F7FAFC; position: relative; padding: 12px; display: flex; flex-direction: column; overflow: hidden; border-radius: 4px; border: 1px solid rgba(0,0,0,0.05); }

        .has-photo { cursor: pointer; transition: transform 0.2s, box-shadow 0.2s, background 0.2s; }
        .has-photo:hover { transform: translateY(-2px) scale(1.01); box-shadow: 0 10px 20px rgba(0,0,0,0.15); background: #FFFFFF; z-index: 10; }
        .camera-icon {
            position: absolute; top: 5px; right: 5px; font-size: 14px; opacity: 0.5; z-index: 5;
            background: rgba(255,255,255,0.9); border-radius: 50%; width: 26px; height: 26px;
            display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 5px rgba(0,0,0,0.1); transition: all 0.2s;
        }
        .has-photo:hover .camera-icon { opacity: 1; background: var(--primary); color: white; transform: scale(1.1); }

        .door { position: absolute; background: #E2E8F0; z-index: 10; display: flex; align-items: center; justify-content: center; font-size: 9px; font-weight: bold; color: #718096; }
        .door-h { width: 44px; height: 6px; }
        .door-v { width: 6px; height: 44px; }
        
        .door-h::after { content: '🚪'; position: absolute; top: -14px; font-size: 10px; }
        .door-v::after { content: '🚪'; position: absolute; left: -14px; font-size: 10px; }

        .corridor { background: #E2E8F0; display: flex; align-items: center; justify-content: center; border-radius: 4px; flex-direction: column;}
        .corridor-text { color: #A0AEC0; font-weight: 600; letter-spacing: 2px; text-align: center; font-size: 12px; writing-mode: vertical-rl; transform: rotate(180deg); }

        .i-fachada { grid-column: 1 / 5; grid-row: 1; border-top: 6px solid #48BB78; background: #E2E8F0; display: flex; flex-direction: column; align-items: center; justify-content: center; font-weight: bold; color: #4A5568;}
        
        .i-coord { grid-column: 2 / 5; grid-row: 2; background: #FFF3CD; }
        .i-recepcao { grid-column: 1 / 2; grid-row: 2; background: #FFF3CD; }
        
        .i-banheiro-pcd { grid-column: 4 / 5; grid-row: 3; background: #D0E2FF; }
        .i-banheiro-comum { grid-column: 4 / 5; grid-row: 4; background: #D0E2FF; }
        
        .i-sala1 { grid-column: 1 / 3; grid-row: 3 / 5; background: #FFF3CD; }
        
        .i-desc { grid-column: 4 / 5; grid-row: 5; background: #E2E8F0; }
        .i-sala2 { grid-column: 1 / 3; grid-row: 5; background: #D1E7DD; }
        
        .i-lab-info { grid-column: 3 / 5; grid-row: 6; background: #FFE5D0; }
        .i-lab1 { grid-column: 1 / 3; grid-row: 6; background: #FFE5D0; }

        .i-corr { grid-column: 3 / 4; grid-row: 3 / 6; background: #E2E8F0; }

        /* Portas posições */
        .d-fachada { bottom: -6px; left: 50%; transform: translateX(-50%); }
        .d-recep { bottom: -6px; left: 20px; }
        .d-coord { bottom: -6px; right: 50px; }
        .d-sala1 { top: 50px; right: -6px; }
        .d-banh-pcd { top: 20px; left: -6px; }
        .d-banh-comum { top: 20px; left: -6px; }
        .d-desc { top: 20px; left: -6px; }
        .d-sala2 { top: 50px; right: -6px; }
        .d-lab-info { top: -6px; left: 20px; }
        .d-lab1 { top: -6px; right: 50px; }

        .r-name { font-weight: 800; font-size: 13px; color: var(--text-main); z-index: 2; text-align: center; }

        /* Moveis Layouts */
        .layout-area { flex: 1; position: relative; z-index: 2; pointer-events: none; }
        .desks-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(40px, 1fr)); gap: 15px; justify-items: center; align-content: center; height: 100%; }
        .student-desk { width: 32px; display: flex; flex-direction: column; align-items: center; }
        .student-desk .table { width: 100%; height: 14px; background: #D6BC97; border-radius: 2px; border: 1px solid rgba(0,0,0,0.15); box-shadow: 0 2px 4px rgba(0,0,0,0.05); }
        .student-desk .chair { width: 14px; height: 12px; background: #4A5568; border-radius: 4px; margin-top: -3px; }
        
        .reception-layout { display: flex; flex-direction: column; justify-content: space-around; align-items: center; height: 100%; padding: 10px; }
        .nice-reception { width: 100px; height: 25px; background: #D6BC97; border-radius: 8px; border: 2px solid #A0AEC0; position: relative; display: flex; justify-content: center; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
        .nice-reception::after { content: ''; position: absolute; top: 30px; left: 50%; transform: translateX(-50%); width: 18px; height: 18px; background: #4A5568; border-radius: 50%; }
        
        .coord-layout { display: flex; align-items: center; justify-content: center; height: 100%; }
        .executive-desk { position: relative; width: 70px; height: 35px; background: #D6BC97; border-radius: 4px; border: 1px solid rgba(0,0,0,0.2); box-shadow: 0 4px 6px rgba(0,0,0,0.05); }
        .executive-desk::before { content: ''; position: absolute; top: -14px; left: 50%; transform: translateX(-50%); width: 25px; height: 14px; background: #1A202C; border-radius: 4px; }
        .executive-desk::after { content: ''; position: absolute; bottom: -12px; left: 10px; width: 16px; height: 16px; background: #4A5568; border-radius: 50%; box-shadow: 35px 0 0 #4A5568; }
        
        .bath-layout { display: flex; align-items: stretch; justify-content: space-between; height: 100%; width: 100%; border: 1px solid #CBD5E0; border-radius: 4px; overflow: hidden; }
        .bath-room { width: 30%; background: #fff; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: bold; color: #4A5568; }
        .bath-sink-area { flex: 1; background: #E2E8F0; border-left: 1px solid #CBD5E0; border-right: 1px solid #CBD5E0; display: flex; align-items: center; justify-content: center; }
        .toilet { width: 16px; height: 20px; background: #fff; border: 1px solid #A0AEC0; border-radius: 4px 4px 8px 8px; }
        .sink { width: 25px; height: 12px; background: #fff; border-radius: 6px; border: 1px solid #A0AEC0; }

        .pc-desk { width: 24px; height: 24px; background: #EDF2F7; border: 1px solid #CBD5E0; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; border-radius: 2px; }
        .pc-monitor { width: 14px; height: 4px; background: #2D3748; border-radius: 2px; margin-bottom: 2px; }
        .pc-chair { position: absolute; bottom: -6px; width: 10px; height: 10px; background: var(--primary); border-radius: 50%; }
        .pc-grid { display: flex; flex-wrap: wrap; gap: 15px; justify-content: center; align-content: center; height: 100%; }

        /* Modal Styles */
        .modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.85); backdrop-filter: blur(5px); display: flex; align-items: center; justify-content: center; z-index: 1000; opacity: 0; pointer-events: none; transition: opacity 0.3s ease; }
        .modal-overlay.active { opacity: 1; pointer-events: all; }
        .modal-content { max-width: 90%; max-height: 90vh; position: relative; display: flex; align-items: center; }
        .modal-content img { max-width: 100%; max-height: 85vh; border-radius: 8px; box-shadow: 0 10px 30px rgba(0,0,0,0.5); object-fit: contain; }
        .modal-close { position: absolute; top: -40px; right: 0; color: white; font-size: 30px; cursor: pointer; background: none; border: none; z-index: 1010; }
        .photo-error { background: white; padding: 40px; border-radius: 8px; text-align: center; display: none; color: #E53E3E; font-weight: bold; }
        .modal-nav { background: rgba(255, 255, 255, 0.2); color: white; border: none; border-radius: 50%; width: 50px; height: 50px; font-size: 24px; cursor: pointer; position: absolute; top: 50%; transform: translateY(-50%); display: none; z-index: 1010; transition: background 0.3s; }
        .modal-nav:hover { background: rgba(255, 255, 255, 0.5); }
        #prevBtn { left: -60px; }
        #nextBtn { right: -60px; }
        .modal-counter { position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); color: white; font-size: 14px; background: rgba(0,0,0,0.5); padding: 4px 12px; border-radius: 12px; display: none; }

        /* Blueprint Layout Opção 2 - Fiel 1:1 ao Desenho Técnico Original */
        .bp-wrapper {
            width: 100%;
            max-width: 500px;
            margin: 0 auto;
            background: #FFFFFF;
            border: 3px solid #2D3748;
            border-radius: 12px;
            overflow: hidden;
            box-shadow: 0 10px 30px rgba(0,0,0,0.12);
            font-family: 'Inter', sans-serif;
            color: #1A202C;
            box-sizing: border-box;
        }

        .bp-room {
            background: #FFFFFF;
            border: 2px solid #2D3748;
            position: relative;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            font-weight: 800;
            font-size: 12px;
            letter-spacing: 0.5px;
            color: #1A202C;
            box-sizing: border-box;
            transition: background 0.2s, transform 0.1s;
        }

        .bp-room.has-photo {
            cursor: pointer;
        }
        .bp-room.has-photo:hover {
            background: #FEFCBF;
            z-index: 10;
        }

        .bp-banheiro {
            background: #93C5FD !important;
            border-color: #1E40AF;
            color: #1E3A8A;
        }
        .bp-banheiro.has-photo:hover {
            background: #60A5FA !important;
        }

        .bp-row-top {
            display: grid;
            grid-template-columns: 140px 1fr;
            height: 65px;
            border-bottom: 2px solid #2D3748;
        }

        .bp-area-aberta-section {
            background: #E2E8F0;
            border-bottom: 2px solid #2D3748;
            position: relative;
            min-height: 180px;
            display: flex;
        }
        .bp-left-subrooms {
            width: 120px;
            display: flex;
            flex-direction: column;
            gap: 12px;
            padding: 10px;
            z-index: 2;
        }
        .bp-left-subrooms .bp-room {
            height: 65px;
        }
        .bp-area-title {
            flex: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 800;
            font-size: 14px;
            letter-spacing: 1px;
            color: #4A5568;
        }

        .bp-middle-section {
            display: flex;
            border-bottom: 2px solid #2D3748;
        }

        .bp-corridor-side {
            background: #CBD5E0;
            width: 50px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-right: 2px solid #2D3748;
        }
        .bp-corridor-side.bp-corr-right {
            border-right: none;
            border-left: 2px solid #2D3748;
        }
        .bp-corridor-side span {
            writing-mode: vertical-rl;
            transform: rotate(180deg);
            font-weight: 800;
            font-size: 11px;
            letter-spacing: 2px;
            color: #4A5568;
        }

        .bp-core {
            flex: 1;
            display: flex;
            flex-direction: column;
        }

        .bp-core-row {
            display: grid;
            grid-template-columns: 1fr 1fr;
            height: 115px;
        }

        .bp-hall-row {
            display: grid;
            grid-template-columns: 1.2fr 40px 1fr;
            height: 42px;
        }
        .bp-hall {
            background: #FFFFFF;
            border: 2px solid #2D3748;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 800;
            font-size: 11px;
            color: #4A5568;
        }

        .bp-core-main {
            display: grid;
            grid-template-columns: 1.2fr 40px 1fr;
            min-height: 250px;
        }

        .bp-corr-vert-top, .bp-corr-vert {
            background: #E2E8F0;
            border-left: 2px solid #2D3748;
            border-right: 2px solid #2D3748;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        .bp-corr-vert span {
            writing-mode: vertical-rl;
            transform: rotate(180deg);
            font-weight: 800;
            font-size: 11px;
            letter-spacing: 2px;
            color: #4A5568;
        }

        .bp-right-column {
            display: flex;
            flex-direction: column;
        }
        .bp-right-column .bp-room {
            flex: 1;
        }
        .bp-right-column .bp-banheiro {
            height: 42px;
            flex: none;
        }

        .bp-corr-horiz {
            height: 38px;
            background: #E2E8F0;
            border-top: 2px solid #2D3748;
            border-bottom: 2px solid #2D3748;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 800;
            font-size: 11px;
            letter-spacing: 1px;
            color: #4A5568;
        }

        .bp-row-bottom {
            display: grid;
            grid-template-columns: 110px 1fr 120px;
            height: 110px;
            border-bottom: 2px solid #2D3748;
        }

        .bp-calcada {
            background: #E2E8F0;
            padding: 14px;
            text-align: center;
            font-weight: 800;
            font-size: 13px;
            letter-spacing: 2px;
            color: #4A5568;
        }

        .photo-card-wrapper {
            display: flex;
            flex-direction: column;
            background: #fff;
            border-radius: 8px;
            overflow: hidden;
            box-shadow: 0 4px 12px rgba(0,0,0,0.08);
            border: 1px solid #E2E8F0;
            transition: transform 0.2s, box-shadow 0.2s;
        }
        .photo-card-wrapper:hover {
            transform: translateY(-3px);
            box-shadow: 0 8px 20px rgba(0,0,0,0.15);
        }
        .photo-card-wrapper img {
            width: 100%;
            height: 140px;
            object-fit: cover;
            cursor: pointer;
        }
        .photo-card-caption {
            padding: 8px 10px;
            font-size: 12px;
            font-weight: 600;
            color: #2D3748;
            text-align: center;
            background: #F7FAFC;
            border-top: 1px solid #EDF2F7;
        }


