:root {
    --primary: #1a2236;
    --accent: #3498db;
    --bg: #f4f7f6;
    --white: #ffffff;
}

body, html { margin: 0; padding: 0; height: 100%; overflow: hidden; background: var(--bg); }

/* Menu View */
.container { 
    max-width: 1000px; width: 90%; margin: 40px auto; 
    overflow-y: auto; height: 90vh;
}
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; }
.card { background: var(--white); padding: 15px; border-radius: 12px; border-top: 5px solid #ccc; display: flex; flex-direction: column; }
.btn { cursor: pointer; border: none; background: var(--accent); color: white; padding: 10px; border-radius: 6px; font-weight: bold; margin-top: auto; }

/* Iframe Shell */
#app-shell {
    position: absolute; top: 0; left: 0;
    width: 100%; height: 100%;
    border: none; z-index: 1;
}

/* MODAL STYLES */
.modal-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.85);
    display: flex; align-items: center; justify-content: center;
    z-index: 10000;
}
.modal-content {
    background: white; padding: 30px; border-radius: 15px;
    text-align: center; max-width: 300px; width: 90%;
    box-shadow: 0 10px 25px rgba(0,0,0,0.5);
}
.modal-content h2 { margin-top: 0; color: #1a2236; }
.modal-content input {
    width: 100%; padding: 12px; font-size: 1.5rem;
    text-align: center; border: 2px solid #ddd;
    border-radius: 8px; margin: 15px 0;
}
.modal-btns { display: grid; gap: 10px; }
.btn-confirm { background: #27ae60; color: white; border: none; padding: 12px; border-radius: 6px; font-weight: bold; cursor: pointer; }
.btn-help { background: #3498db; color: white; border: none; padding: 10px; border-radius: 6px; cursor: pointer; }
.btn-cancel { background: #e74c3c; color: white; border: none; padding: 10px; border-radius: 6px; cursor: pointer; }

/* Floating Controls */
.fab-container {
    position: fixed; bottom: 20px; left: 20px;
    display: flex; flex-direction: column; gap: 10px;
    z-index: 9999;
}
.fab {
    width: 45px; height: 45px; border-radius: 50%;
    border: none; color: white; cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.3);
    font-weight: bold; display: flex; align-items: center; justify-content: center;
}
.home-btn { background: #27ae60; font-size: 1.5rem; }
.reset-btn { background: var(--primary); font-size: 0.7rem; }

/* Visual Category Colors */
.mapping { border-color: #27ae60; }
.congregation { border-color: #9b59b6; }
.ministry { border-color: #e67e22; }