/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

/* Label/tag denoting the user that shared a connection */
.jdbc-share-tag {

    background: #0095ff;
    padding: 0.25em;

    -moz-border-radius:    0.25em;
    -webkit-border-radius: 0.25em;
    -khtml-border-radius:  0.25em;
    border-radius:         0.25em;

    color: white;
    font-size: 0.75em;
    font-weight: bold;

}
.totp-enroll p,.totp-details{font-size:.8em}.totp-qr-code{text-align:center}.totp-qr-code img{margin:1em;border:1px solid rgba(0,0,0,0.25);box-shadow:1px 1px 2px rgba(0,0,0,0.25);cursor:pointer}h3.totp-details-header{font-size:.8em}h3.totp-details-header::before{content:'▸ '}.totp-details-visible h3.totp-details-header::before{content:'▾ '}.totp-details,.totp-hide-details{display:none}.totp-details-visible .totp-details{display:table}.totp-details-visible .totp-hide-details{display:inline}.totp-details-visible .totp-show-details{display:none}.totp-hide-details,.totp-show-details{color:blue;text-decoration:underline;cursor:pointer;margin:0 .25em;font-weight:normal}.totp-details{margin:0 auto}.totp-details th{padding-right:.25em;text-align:left}.totp-details td{font-family:monospace}.totp-detail{display:inline-block;margin:0 .25em}/* pepitenet Homelab — Guacamole branding extension */

html, body {
    background: #0d1117 url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTIwIDEwODAiIHdpZHRoPSIxOTIwIiBoZWlnaHQ9IjEwODAiPgo8ZGVmcz4KICA8ZmlsdGVyIGlkPSJnbG93IiB4PSItNjAlIiB5PSItNjAlIiB3aWR0aD0iMjIwJSIgaGVpZ2h0PSIyMjAlIj4KICAgIDxmZUdhdXNzaWFuQmx1ciBpbj0iU291cmNlR3JhcGhpYyIgc3RkRGV2aWF0aW9uPSI4Ii8+CiAgPC9maWx0ZXI+CiAgPGZpbHRlciBpZD0iZ2xvdy1zdHJvbmciIHg9Ii04MCUiIHk9Ii04MCUiIHdpZHRoPSIyNjAlIiBoZWlnaHQ9IjI2MCUiPgogICAgPGZlR2F1c3NpYW5CbHVyIGluPSJTb3VyY2VHcmFwaGljIiBzdGREZXZpYXRpb249IjE0Ii8+CiAgPC9maWx0ZXI+CiAgPHBhdHRlcm4gaWQ9InN0YXJzIiB4PSIwIiB5PSIwIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjIwMCIgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICA8Y2lyY2xlIGN4PSI0NyIgIGN5PSI3MyIgIHI9IjEiICAgZmlsbD0icmdiYSgyNTUsMjU1LDI1NSwuMzApIi8+CiAgICA8Y2lyY2xlIGN4PSIxNDIiIGN5PSIxOSIgIHI9Ii44IiAgZmlsbD0icmdiYSgyNTUsMjU1LDI1NSwuMjIpIi8+CiAgICA8Y2lyY2xlIGN4PSI4OCIgIGN5PSIxNTYiIHI9IjEuMSIgZmlsbD0icmdiYSgyNTUsMjU1LDI1NSwuMzUpIi8+CiAgICA8Y2lyY2xlIGN4PSIyMTMiIGN5PSI5NCIgIHI9Ii45IiAgZmlsbD0icmdiYSgyNTUsMjU1LDI1NSwuMjApIi8+CiAgICA8Y2lyY2xlIGN4PSIyNjciIGN5PSIzOCIgIHI9Ii44IiAgZmlsbD0icmdiYSgyNTUsMjU1LDI1NSwuMjgpIi8+CiAgICA8Y2lyY2xlIGN4PSIxNzUiIGN5PSIxODEiIHI9IjEiICAgZmlsbD0icmdiYSgyNTUsMjU1LDI1NSwuMjIpIi8+CiAgICA8Y2lyY2xlIGN4PSIzMSIgIGN5PSIxMjkiIHI9Ii43IiAgZmlsbD0icmdiYSgyNTUsMjU1LDI1NSwuMTgpIi8+CiAgICA8Y2lyY2xlIGN4PSIyNTMiIGN5PSIxNTIiIHI9Ii45IiAgZmlsbD0icmdiYSgyNTUsMjU1LDI1NSwuMjApIi8+CiAgICA8Y2lyY2xlIGN4PSIxMTgiIGN5PSI2MSIgIHI9Ii43IiAgZmlsbD0icmdiYSgyNTUsMjU1LDI1NSwuMTUpIi8+CiAgICA8Y2lyY2xlIGN4PSIxOTYiIGN5PSIxNDMiIHI9Ii44IiAgZmlsbD0icmdiYSgyNTUsMjU1LDI1NSwuMjUpIi8+CiAgPC9wYXR0ZXJuPgo8L2RlZnM+Cgo8IS0tIEZvbmQgc29tYnJlIHBlcGl0ZW5ldCAtLT4KPHJlY3Qgd2lkdGg9IjE5MjAiIGhlaWdodD0iMTA4MCIgZmlsbD0iIzBkMTExNyIvPgo8IS0tIENoYW1wIGQnw6l0b2lsZXMgLS0+CjxyZWN0IHdpZHRoPSIxOTIwIiBoZWlnaHQ9IjEwODAiIGZpbGw9InVybCgjc3RhcnMpIi8+Cgo8IS0tCiAgUG9zaXRpb25zIGRlcyBuxZN1ZHMgKDE5MjDDlzEwODApCiAgdHVyaW5nLTEoMzQ2LDMyNCkgIHR1cmluZy0yKDUzOCw3MDIpICB0dXJpbmctMyg3MzAsMjcwKSAgdHVyaW5nLTQoOTIyLDY0OCkKICBjYWNlcnQoMTE1MiwyMTYpICAgcGVwaXRlLWRldigxMzgyLDQzMikgIG1vbml0b3JpbmcoMTU3NCw3NTYpCiAgcGVwaXRlLWFpKDEwNTYsODY0KSAgZmFubGVzcygyODgsODEwKSAgY2xhdWRlLWNvZGUoMTcyOCwzMjQpICBob21lYXNzaXN0YW50KDEyNDgsNTk0KQotLT4KCjwhLS0g4pSA4pSA4pSAIENPTk5FWElPTlMg4pSA4pSA4pSAIC0tPgo8ZyBzdHJva2U9IiMxMGI5ODEiIGZpbGw9Im5vbmUiPgogIDwhLS0gdHVyaW5nLTEgY2x1c3RlciAtLT4KICA8bGluZSB4MT0iMzQ2IiB5MT0iMzI0IiB4Mj0iNTM4IiB5Mj0iNzAyIiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLW9wYWNpdHk9Ii4yMiIvPgogIDxsaW5lIHgxPSIzNDYiIHkxPSIzMjQiIHgyPSI3MzAiIHkyPSIyNzAiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2Utb3BhY2l0eT0iLjIyIi8+CiAgPGxpbmUgeDE9IjM0NiIgeTE9IjMyNCIgeDI9IjkyMiIgeTI9IjY0OCIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1vcGFjaXR5PSIuMTgiLz4KICA8bGluZSB4MT0iMzQ2IiB5MT0iMzI0IiB4Mj0iMjg4IiB5Mj0iODEwIiBzdHJva2Utd2lkdGg9IjEiICAgc3Ryb2tlLW9wYWNpdHk9Ii4xNSIvPgogIDwhLS0gdHVyaW5nIHdvcmtlcnMgaW50ZXIgLS0+CiAgPGxpbmUgeDE9IjUzOCIgeTE9IjcwMiIgeDI9IjkyMiIgeTI9IjY0OCIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1vcGFjaXR5PSIuMjIiLz4KICA8bGluZSB4MT0iNTM4IiB5MT0iNzAyIiB4Mj0iNzMwIiB5Mj0iMjcwIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLW9wYWNpdHk9Ii4xOCIvPgogIDxsaW5lIHgxPSI3MzAiIHkxPSIyNzAiIHgyPSI5MjIiIHkyPSI2NDgiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2Utb3BhY2l0eT0iLjIyIi8+CiAgPCEtLSB2ZXJzIGFtZDY0IC0tPgogIDxsaW5lIHgxPSI5MjIiIHkxPSI2NDgiIHgyPSIxMTUyIiB5Mj0iMjE2IiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLW9wYWNpdHk9Ii4yMCIvPgogIDxsaW5lIHgxPSI5MjIiIHkxPSI2NDgiIHgyPSIxMzgyIiB5Mj0iNDMyIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLW9wYWNpdHk9Ii4yMCIvPgogIDxsaW5lIHgxPSIxMTUyIiB5MT0iMjE2IiB4Mj0iMTM4MiIgeTI9IjQzMiIgc3Ryb2tlLXdpZHRoPSIxIiAgc3Ryb2tlLW9wYWNpdHk9Ii4xNyIvPgogIDxsaW5lIHgxPSIxMzgyIiB5MT0iNDMyIiB4Mj0iMTU3NCIgeTI9Ijc1NiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1vcGFjaXR5PSIuMjAiLz4KICA8bGluZSB4MT0iMTM4MiIgeTE9IjQzMiIgeDI9IjE3MjgiIHkyPSIzMjQiIHN0cm9rZS13aWR0aD0iMSIgIHN0cm9rZS1vcGFjaXR5PSIuMTciLz4KICA8IS0tIHBlcGl0ZS1haSAtLT4KICA8bGluZSB4MT0iNTM4IiB5MT0iNzAyIiB4Mj0iMTA1NiIgeTI9Ijg2NCIgc3Ryb2tlLXdpZHRoPSIxIiAgIHN0cm9rZS1vcGFjaXR5PSIuMTgiLz4KICA8bGluZSB4MT0iOTIyIiB5MT0iNjQ4IiB4Mj0iMTA1NiIgeTI9Ijg2NCIgc3Ryb2tlLXdpZHRoPSIxIiAgIHN0cm9rZS1vcGFjaXR5PSIuMTgiLz4KICA8bGluZSB4MT0iMTU3NCIgeTE9Ijc1NiIgeDI9IjEwNTYiIHkyPSI4NjQiIHN0cm9rZS13aWR0aD0iMSIgIHN0cm9rZS1vcGFjaXR5PSIuMTYiLz4KICA8IS0tIGhvbWVhc3Npc3RhbnQgLS0+CiAgPGxpbmUgeDE9IjExNTIiIHkxPSIyMTYiIHgyPSIxMjQ4IiB5Mj0iNTk0IiBzdHJva2Utd2lkdGg9IjEiICBzdHJva2Utb3BhY2l0eT0iLjE2Ii8+CiAgPGxpbmUgeDE9IjEyNDgiIHkxPSI1OTQiIHgyPSIxMzgyIiB5Mj0iNDMyIiBzdHJva2Utd2lkdGg9IjEiICBzdHJva2Utb3BhY2l0eT0iLjE2Ii8+CiAgPCEtLSBmYW5sZXNzICYgY2xhdWRlLWNvZGUgLS0+CiAgPGxpbmUgeDE9IjI4OCIgIHkxPSI4MTAiIHgyPSI1MzgiICB5Mj0iNzAyIiBzdHJva2Utd2lkdGg9IjEiICBzdHJva2Utb3BhY2l0eT0iLjE1Ii8+CiAgPGxpbmUgeDE9IjE3MjgiIHkxPSIzMjQiIHgyPSIxNTc0IiB5Mj0iNzU2IiBzdHJva2Utd2lkdGg9IjEiICBzdHJva2Utb3BhY2l0eT0iLjE3Ii8+CjwvZz4KCjwhLS0g4pSA4pSA4pSAIEhBTE9TIChsdWV1ciBkZXJyacOocmUgY2hhcXVlIG7Fk3VkKSDilIDilIDilIAgLS0+CjwhLS0gY29udHJvbC1wbGFuZTogb3IgLS0+CjxjaXJjbGUgY3g9IjM0NiIgY3k9IjMyNCIgcj0iMjgiIGZpbGw9IiNjOWEyMjciIG9wYWNpdHk9Ii4yMCIgZmlsdGVyPSJ1cmwoI2dsb3ctc3Ryb25nKSIvPgo8IS0tIHR1cmluZyB3b3JrZXJzOiB2ZXJ0IC0tPgo8Y2lyY2xlIGN4PSI1MzgiIGN5PSI3MDIiIHI9IjIyIiBmaWxsPSIjMTBiOTgxIiBvcGFjaXR5PSIuMjIiIGZpbHRlcj0idXJsKCNnbG93KSIvPgo8Y2lyY2xlIGN4PSI3MzAiIGN5PSIyNzAiIHI9IjIyIiBmaWxsPSIjMTBiOTgxIiBvcGFjaXR5PSIuMjIiIGZpbHRlcj0idXJsKCNnbG93KSIvPgo8Y2lyY2xlIGN4PSI5MjIiIGN5PSI2NDgiIHI9IjIyIiBmaWxsPSIjMTBiOTgxIiBvcGFjaXR5PSIuMjIiIGZpbHRlcj0idXJsKCNnbG93KSIvPgo8IS0tIGNhY2VydDogYmxldSBhY2llciAtLT4KPGNpcmNsZSBjeD0iMTE1MiIgY3k9IjIxNiIgcj0iMjAiIGZpbGw9IiM1YmE0ZTUiIG9wYWNpdHk9Ii4yMCIgZmlsdGVyPSJ1cmwoI2dsb3cpIi8+CjwhLS0gcGVwaXRlLWRldiAtLT4KPGNpcmNsZSBjeD0iMTM4MiIgY3k9IjQzMiIgcj0iMjAiIGZpbGw9IiMxMGI5ODEiIG9wYWNpdHk9Ii4xOCIgZmlsdGVyPSJ1cmwoI2dsb3cpIi8+CjwhLS0gbW9uaXRvcmluZyAtLT4KPGNpcmNsZSBjeD0iMTU3NCIgY3k9Ijc1NiIgcj0iMjIiIGZpbGw9IiMxMGI5ODEiIG9wYWNpdHk9Ii4yMCIgZmlsdGVyPSJ1cmwoI2dsb3cpIi8+CjwhLS0gcGVwaXRlLWFpOiByb3VnZSAoR1BVKSAtLT4KPGNpcmNsZSBjeD0iMTA1NiIgY3k9Ijg2NCIgcj0iMjQiIGZpbGw9IiNhODFjMmUiIG9wYWNpdHk9Ii4yNSIgZmlsdGVyPSJ1cmwoI2dsb3ctc3Ryb25nKSIvPgo8IS0tIGZhbmxlc3MgLS0+CjxjaXJjbGUgY3g9IjI4OCIgIGN5PSI4MTAiIHI9IjE4IiBmaWxsPSIjMTBiOTgxIiBvcGFjaXR5PSIuMTYiIGZpbHRlcj0idXJsKCNnbG93KSIvPgo8IS0tIGNsYXVkZS1jb2RlIC0tPgo8Y2lyY2xlIGN4PSIxNzI4IiBjeT0iMzI0IiByPSIyMCIgZmlsbD0iIzEwYjk4MSIgb3BhY2l0eT0iLjE4IiBmaWx0ZXI9InVybCgjZ2xvdykiLz4KPCEtLSBob21lYXNzaXN0YW50IC0tPgo8Y2lyY2xlIGN4PSIxMjQ4IiBjeT0iNTk0IiByPSIyMCIgZmlsbD0iIzEwYjk4MSIgb3BhY2l0eT0iLjE4IiBmaWx0ZXI9InVybCgjZ2xvdykiLz4KCjwhLS0g4pSA4pSA4pSAIE7FklVEUyAoY2VyY2xlcykg4pSA4pSA4pSAIC0tPgo8IS0tIGNvbnRyb2wtcGxhbmUgdHVyaW5nLW5vZGUxIDogb3IgLS0+CjxjaXJjbGUgY3g9IjM0NiIgY3k9IjMyNCIgcj0iOCIgZmlsbD0iI2M5YTIyNyIgc3Ryb2tlPSIjMGQxMTE3IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8IS0tIHR1cmluZyB3b3JrZXJzIDogdmVydCDDqW1lcmF1ZGUgLS0+CjxjaXJjbGUgY3g9IjUzOCIgY3k9IjcwMiIgcj0iNiIgZmlsbD0iIzEwYjk4MSIgc3Ryb2tlPSIjMGQxMTE3IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8Y2lyY2xlIGN4PSI3MzAiIGN5PSIyNzAiIHI9IjYiIGZpbGw9IiMxMGI5ODEiIHN0cm9rZT0iIzBkMTExNyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPGNpcmNsZSBjeD0iOTIyIiBjeT0iNjQ4IiByPSI2IiBmaWxsPSIjMTBiOTgxIiBzdHJva2U9IiMwZDExMTciIHN0cm9rZS13aWR0aD0iMS41Ii8+CjwhLS0gY2FjZXJ0IDogYmxldSBhY2llciAtLT4KPGNpcmNsZSBjeD0iMTE1MiIgY3k9IjIxNiIgcj0iNiIgZmlsbD0iIzViYTRlNSIgc3Ryb2tlPSIjMGQxMTE3IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8IS0tIHBlcGl0ZS1kZXYgLS0+CjxjaXJjbGUgY3g9IjEzODIiIGN5PSI0MzIiIHI9IjYiIGZpbGw9IiMxMGI5ODEiIHN0cm9rZT0iIzBkMTExNyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPCEtLSBtb25pdG9yaW5nIC0tPgo8Y2lyY2xlIGN4PSIxNTc0IiBjeT0iNzU2IiByPSI2IiBmaWxsPSIjMTBiOTgxIiBzdHJva2U9IiMwZDExMTciIHN0cm9rZS13aWR0aD0iMS41Ii8+CjwhLS0gcGVwaXRlLWFpIDogcm91Z2UgR1BVIC0tPgo8Y2lyY2xlIGN4PSIxMDU2IiBjeT0iODY0IiByPSI4IiBmaWxsPSIjYTgxYzJlIiBzdHJva2U9IiMwZDExMTciIHN0cm9rZS13aWR0aD0iMS41Ii8+CjwhLS0gZmFubGVzcyAtLT4KPGNpcmNsZSBjeD0iMjg4IiAgY3k9IjgxMCIgcj0iNSIgZmlsbD0iIzEwYjk4MSIgc3Ryb2tlPSIjMGQxMTE3IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8IS0tIGNsYXVkZS1jb2RlIC0tPgo8Y2lyY2xlIGN4PSIxNzI4IiBjeT0iMzI0IiByPSI2IiBmaWxsPSIjMTBiOTgxIiBzdHJva2U9IiMwZDExMTciIHN0cm9rZS13aWR0aD0iMS41Ii8+CjwhLS0gaG9tZWFzc2lzdGFudCAtLT4KPGNpcmNsZSBjeD0iMTI0OCIgY3k9IjU5NCIgcj0iNiIgZmlsbD0iIzEwYjk4MSIgc3Ryb2tlPSIjMGQxMTE3IiBzdHJva2Utd2lkdGg9IjEuNSIvPgoKPCEtLSDilIDilIDilIAgTEFCRUxTIOKUgOKUgOKUgCAtLT4KPGcgZm9udC1mYW1pbHk9IidDb3VyaWVyIE5ldycsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxMSIgZmlsbD0iIzhiOTQ5ZSI+CiAgPHRleHQgeD0iMzQ2IiB5PSIzMTAiICB0ZXh0LWFuY2hvcj0ibWlkZGxlIj50dXJpbmctbm9kZTE8L3RleHQ+CiAgPHRleHQgeD0iNTM4IiB5PSI3MjAiICB0ZXh0LWFuY2hvcj0ibWlkZGxlIj50dXJpbmctbm9kZTI8L3RleHQ+CiAgPHRleHQgeD0iNzMwIiB5PSIyNTgiICB0ZXh0LWFuY2hvcj0ibWlkZGxlIj50dXJpbmctbm9kZTM8L3RleHQ+CiAgPHRleHQgeD0iOTIyIiB5PSI2NjYiICB0ZXh0LWFuY2hvcj0ibWlkZGxlIj50dXJpbmctbm9kZTQ8L3RleHQ+CiAgPHRleHQgeD0iMTE1MiIgeT0iMjA0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5jYWNlcnQ8L3RleHQ+CiAgPHRleHQgeD0iMTM4MiIgeT0iNDIwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5wZXBpdGUtZGV2PC90ZXh0PgogIDx0ZXh0IHg9IjE1NzQiIHk9Ijc3NCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+bW9uaXRvcmluZzwvdGV4dD4KICA8dGV4dCB4PSIxMDU2IiB5PSI4ODIiIHRleHQtYW5jaG9yPSJtaWRkbGUiPnBlcGl0ZS1haTwvdGV4dD4KICA8dGV4dCB4PSIyODgiICB5PSI4MjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPmZhbmxlc3M8L3RleHQ+CiAgPHRleHQgeD0iMTcyOCIgeT0iMzEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5jbGF1ZGUtY29kZTwvdGV4dD4KICA8dGV4dCB4PSIxMjQ4IiB5PSI2MTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiPmhvbWVhc3Npc3RhbnQ8L3RleHQ+CjwvZz4KPC9zdmc+Cg==") center / cover no-repeat fixed !important;
    color: #e2e8f0 !important;
}

/* ── Login page ──────────────────────────────────────── */

.login-ui {
    background: transparent !important;
}

.login-dialog,
.login-ui .dialog-container {
    background: rgba(13, 17, 23, 0.92) !important;
    border: 1px solid #10b981 !important;
    border-radius: 12px !important;
    box-shadow: 0 0 48px rgba(16, 185, 129, 0.18), 0 2px 32px rgba(0,0,0,.7) !important;
    padding: 2rem !important;
}

/* Logo */
.login-ui .logo {
    display: block !important;
    background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyODAgNjQiIHdpZHRoPSIyODAiIGhlaWdodD0iNjQiIGZpbGw9Im5vbmUiPgogIDwhLS0gcGVwaXRlbmV0IGRpYW1vbmQgLS0+CiAgPHBvbHlnb24gcG9pbnRzPSIzMiwzIDU1LDMyIDMyLDYxIDksMzIiIHN0cm9rZT0iIzEwYjk4MSIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJub25lIi8+CiAgPGNpcmNsZSBjeD0iMzIiIGN5PSIzIiAgcj0iMy41IiBmaWxsPSJyZ2JhKDI1NSwyNTUsMjU1LC44OCkiLz4KICA8Y2lyY2xlIGN4PSI1NSIgY3k9IjMyIiByPSIzLjUiIGZpbGw9InJnYmEoMjU1LDI1NSwyNTUsLjg4KSIvPgogIDxjaXJjbGUgY3g9IjMyIiBjeT0iNjEiIHI9IjMuNSIgZmlsbD0icmdiYSgyNTUsMjU1LDI1NSwuODgpIi8+CiAgPGNpcmNsZSBjeD0iOSIgIGN5PSIzMiIgcj0iMy41IiBmaWxsPSJyZ2JhKDI1NSwyNTUsMjU1LC44OCkiLz4KICA8Y2lyY2xlIGN4PSIzMiIgY3k9IjMyIiByPSI3LjUiIHN0cm9rZT0iIzEwYjk4MSIgc3Ryb2tlLXdpZHRoPSIxLjgiIGZpbGw9IiMwZDExMTciLz4KICA8cGF0aCBkPSJNMzIsMzcuNSBDMjcsMzQuNSAyNywyOCAyOS41LDI3LjIgQzMwLjcsMjYuOCAzMS41LDI4LjIgMzIsMjkuNSBDMzIuNSwyOC4yIDMzLjMsMjYuOCAzNC41LDI3LjIgQzM3LDI4IDM3LDM0LjUgMzIsMzcuNVoiIGZpbGw9IiNhODFjMmUiLz4KICA8bGluZSB4MT0iMzIiIHkxPSIyOS41IiB4Mj0iMzIiIHkyPSIyNC41IiBzdHJva2U9IiNjOWEyMjciIHN0cm9rZS13aWR0aD0iMS4zIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICA8bGluZSB4MT0iMzAiIHkxPSIyNi41IiB4Mj0iMzQiIHkyPSIyNi41IiBzdHJva2U9IiNjOWEyMjciIHN0cm9rZS13aWR0aD0iMS4zIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICA8IS0tICJwZXBpdGVuZXQiIHRleHQgLS0+CiAgPHRleHQgeD0iNzAiIHk9IjQzIiBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZiIgZm9udC1zaXplPSIzMiIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzEwYjk4MSIgbGV0dGVyLXNwYWNpbmc9Ii0wLjUiPnBlcGl0ZW5ldDwvdGV4dD4KICA8IS0tICJIT01FTEFCIiBzdWJ0aXRsZSAtLT4KICA8dGV4dCB4PSI3MiIgeT0iNTgiIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmIiBmb250LXNpemU9IjEwIiBmaWxsPSIjOGI5NDllIiBsZXR0ZXItc3BhY2luZz0iNCI+SE9NRUxBQjwvdGV4dD4KPC9zdmc+Cg==") center / contain no-repeat !important;
    width: 240px !important;
    height: 56px !important;
    margin: 0 auto 1.5rem !important;
}
.login-ui .logo img,
.login-ui .logo a img {
    display: none !important;
}

/* Title h1 */
.login-ui h1 {
    color: #10b981 !important;
    font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro', monospace !important;
    font-size: 0.78rem !important;
    letter-spacing: 0.2em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    margin-bottom: 1.5rem !important;
    opacity: 0.7 !important;
}

/* Form inputs */
.login-ui input[type="text"],
.login-ui input[type="password"],
.login-ui input[type="email"] {
    background: rgba(16, 185, 129, 0.04) !important;
    border: 1px solid rgba(16, 185, 129, 0.3) !important;
    color: #e2e8f0 !important;
    border-radius: 6px !important;
    padding: 0.5rem 0.75rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
    transition: border-color 0.15s, box-shadow 0.15s !important;
}
.login-ui input:focus {
    border-color: #10b981 !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.12) !important;
}

/* Labels */
.login-ui .field-header,
.login-ui label {
    color: #94a3b8 !important;
    font-size: 0.85rem !important;
}

/* Login button */
.login-ui button.action,
.login-ui .button,
.login-ui input[type="submit"] {
    background: #10b981 !important;
    border: none !important;
    color: #0d1117 !important;
    font-weight: 700 !important;
    border-radius: 6px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    padding: 0.6rem 1.5rem !important;
    cursor: pointer !important;
    width: 100% !important;
    transition: background 0.15s !important;
}
.login-ui button.action:hover,
.login-ui input[type="submit"]:hover {
    background: #059669 !important;
}

/* Error messages */
.login-ui .error {
    color: #f87171 !important;
    background: rgba(248, 113, 113, 0.08) !important;
    border: 1px solid rgba(248, 113, 113, 0.2) !important;
    border-radius: 4px !important;
    padding: 0.5rem !important;
}

/* ── Connected interface ──────────────────────────────── */

/* Header bar */
header.header,
.header {
    background: rgba(13, 17, 23, 0.96) !important;
    border-bottom: 1px solid rgba(16, 185, 129, 0.25) !important;
    backdrop-filter: blur(8px) !important;
}

/* Header logo */
.header .logo {
    display: block !important;
    background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyODAgNjQiIHdpZHRoPSIyODAiIGhlaWdodD0iNjQiIGZpbGw9Im5vbmUiPgogIDwhLS0gcGVwaXRlbmV0IGRpYW1vbmQgLS0+CiAgPHBvbHlnb24gcG9pbnRzPSIzMiwzIDU1LDMyIDMyLDYxIDksMzIiIHN0cm9rZT0iIzEwYjk4MSIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJub25lIi8+CiAgPGNpcmNsZSBjeD0iMzIiIGN5PSIzIiAgcj0iMy41IiBmaWxsPSJyZ2JhKDI1NSwyNTUsMjU1LC44OCkiLz4KICA8Y2lyY2xlIGN4PSI1NSIgY3k9IjMyIiByPSIzLjUiIGZpbGw9InJnYmEoMjU1LDI1NSwyNTUsLjg4KSIvPgogIDxjaXJjbGUgY3g9IjMyIiBjeT0iNjEiIHI9IjMuNSIgZmlsbD0icmdiYSgyNTUsMjU1LDI1NSwuODgpIi8+CiAgPGNpcmNsZSBjeD0iOSIgIGN5PSIzMiIgcj0iMy41IiBmaWxsPSJyZ2JhKDI1NSwyNTUsMjU1LC44OCkiLz4KICA8Y2lyY2xlIGN4PSIzMiIgY3k9IjMyIiByPSI3LjUiIHN0cm9rZT0iIzEwYjk4MSIgc3Ryb2tlLXdpZHRoPSIxLjgiIGZpbGw9IiMwZDExMTciLz4KICA8cGF0aCBkPSJNMzIsMzcuNSBDMjcsMzQuNSAyNywyOCAyOS41LDI3LjIgQzMwLjcsMjYuOCAzMS41LDI4LjIgMzIsMjkuNSBDMzIuNSwyOC4yIDMzLjMsMjYuOCAzNC41LDI3LjIgQzM3LDI4IDM3LDM0LjUgMzIsMzcuNVoiIGZpbGw9IiNhODFjMmUiLz4KICA8bGluZSB4MT0iMzIiIHkxPSIyOS41IiB4Mj0iMzIiIHkyPSIyNC41IiBzdHJva2U9IiNjOWEyMjciIHN0cm9rZS13aWR0aD0iMS4zIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICA8bGluZSB4MT0iMzAiIHkxPSIyNi41IiB4Mj0iMzQiIHkyPSIyNi41IiBzdHJva2U9IiNjOWEyMjciIHN0cm9rZS13aWR0aD0iMS4zIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICA8IS0tICJwZXBpdGVuZXQiIHRleHQgLS0+CiAgPHRleHQgeD0iNzAiIHk9IjQzIiBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZiIgZm9udC1zaXplPSIzMiIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzEwYjk4MSIgbGV0dGVyLXNwYWNpbmc9Ii0wLjUiPnBlcGl0ZW5ldDwvdGV4dD4KICA8IS0tICJIT01FTEFCIiBzdWJ0aXRsZSAtLT4KICA8dGV4dCB4PSI3MiIgeT0iNTgiIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmIiBmb250LXNpemU9IjEwIiBmaWxsPSIjOGI5NDllIiBsZXR0ZXItc3BhY2luZz0iNCI+SE9NRUxBQjwvdGV4dD4KPC9zdmc+Cg==") left center / contain no-repeat !important;
    width: 180px !important;
    height: 44px !important;
}
.header .logo img,
.header .logo a img {
    display: none !important;
}

/* Navigation links */
.header a,
.header .action {
    color: #94a3b8 !important;
    transition: color 0.15s !important;
}
.header a:hover,
.header .action:hover {
    color: #10b981 !important;
}

/* User identity chip */
.header .identity,
.header .username {
    color: #10b981 !important;
    font-weight: 600 !important;
}

/* Dropdown menus */
.menu-dropdown-container,
.menu-dropdown {
    background: #0f1923 !important;
    border: 1px solid rgba(16, 185, 129, 0.2) !important;
    border-radius: 8px !important;
    box-shadow: 0 8px 32px rgba(0,0,0,.6) !important;
    color: #e2e8f0 !important;
}
.menu-dropdown-container .item,
.menu-dropdown li {
    color: #e2e8f0 !important;
}
.menu-dropdown-container .item:hover,
.menu-dropdown li:hover {
    background: rgba(16, 185, 129, 0.08) !important;
    color: #10b981 !important;
}

/* Connection list / home */
.connection-list,
.connection-group-contents {
    background: transparent !important;
}
.connection {
    background: rgba(13, 17, 23, 0.75) !important;
    border: 1px solid rgba(16, 185, 129, 0.15) !important;
    border-radius: 8px !important;
    transition: border-color 0.15s, box-shadow 0.15s !important;
}
.connection:hover {
    border-color: rgba(16, 185, 129, 0.4) !important;
    box-shadow: 0 0 16px rgba(16, 185, 129, 0.1) !important;
}
.connection .name {
    color: #e2e8f0 !important;
    font-weight: 500 !important;
}
.connection .protocol-icon {
    color: #10b981 !important;
}

/* Connection group */
.connection-group {
    background: rgba(13, 17, 23, 0.5) !important;
    border: 1px solid rgba(16, 185, 129, 0.1) !important;
    border-radius: 8px !important;
}
.connection-group .caption {
    color: #10b981 !important;
    font-weight: 600 !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
    font-size: 0.8rem !important;
}

/* Active session tabs */
.tab {
    background: rgba(13, 17, 23, 0.8) !important;
    color: #94a3b8 !important;
    border: 1px solid rgba(16, 185, 129, 0.15) !important;
    border-radius: 4px 4px 0 0 !important;
}
.tab.active,
.tab.selected {
    background: rgba(16, 185, 129, 0.12) !important;
    color: #10b981 !important;
    border-bottom-color: transparent !important;
}

/* Notifications */
.notification {
    background: rgba(13, 17, 23, 0.95) !important;
    border: 1px solid rgba(16, 185, 129, 0.3) !important;
    color: #e2e8f0 !important;
}

/* Buttons throughout the UI */
button.action,
.button.action,
input[type="submit"] {
    background: #10b981 !important;
    color: #0d1117 !important;
    border: none !important;
    border-radius: 6px !important;
    font-weight: 700 !important;
}
button.action:hover {
    background: #059669 !important;
}

/* ── Guac menu (panneau Ctrl+Alt+Shift) ──────────────── */
.menu {
    background: #0f1923 !important;
    color: #e2e8f0 !important;
    box-shadow: 2px 0 16px rgba(0,0,0,.7), inset -1px 0 0 rgba(16,185,129,.2) !important;
}

.menu-content .header {
    background: rgba(13, 17, 23, 0.98) !important;
    border-bottom: 1px solid rgba(16, 185, 129, 0.3) !important;
    color: #10b981 !important;
}

.menu-content .header h2,
.menu-content .header h3,
.menu-body h3,
.menu-section h3 {
    color: #10b981 !important;
}

.menu-body {
    color: #e2e8f0 !important;
}

.menu label,
.menu p,
.menu span {
    color: #e2e8f0 !important;
}

/* Clipboard */
.clipboard {
    background: rgba(16, 185, 129, 0.05) !important;
    border: 1px solid rgba(16, 185, 129, 0.3) !important;
    color: #e2e8f0 !important;
    border-radius: 4px !important;
}

/* Boutons dans le menu */
.menu button,
.menu input[type="button"],
.menu input[type="submit"],
.menu select {
    background: rgba(16, 185, 129, 0.1) !important;
    border: 1px solid rgba(16, 185, 129, 0.3) !important;
    color: #e2e8f0 !important;
    border-radius: 4px !important;
}

.menu button:hover {
    background: rgba(16, 185, 129, 0.2) !important;
}

/* Clavier virtuel */
.key-button {
    background: rgba(30, 40, 55, 0.9) !important;
    border: 1px solid rgba(16, 185, 129, 0.25) !important;
    color: #e2e8f0 !important;
}

/* Scrollbar styling */
::-webkit-scrollbar {
    width: 6px !important;
    height: 6px !important;
}
::-webkit-scrollbar-track {
    background: #0d1117 !important;
}
::-webkit-scrollbar-thumb {
    background: rgba(16, 185, 129, 0.3) !important;
    border-radius: 3px !important;
}
::-webkit-scrollbar-thumb:hover {
    background: rgba(16, 185, 129, 0.6) !important;
}
