/* ==========================================
   RESET
========================================== */
*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

/********************************************
   LAYOUT
********************************************/
body{
    font-family:Arial, Helvetica, sans-serif;
    background:#f2f5f9;
    color:#222;
}

/* ==========================================
   HEADER
========================================== */

.header{
    background:#0F2D52;
    color:#fff;
    padding:22px 30px;
    box-shadow:0 4px 12px rgba(0,0,0,.15);
}

.header-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.logo{
    display:flex;
    align-items:center;
    gap:15px;
}

.logo h1{
    margin:0;
    font-size:30px;
}

.logo span{
    display:block;
    margin-top:3px;
    font-size:14px;
    color:rgba(255,255,255,.8);
}
.header-user{
    min-height:48px;
    padding:0 16px;
    border-radius:24px;
    background: transparent;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:16px;
}

/* ==========================================
   CONTENT
========================================== */
.content{
    max-width:900px;
    margin:30px auto;
    padding:20px;
}

.content h2{
    margin-bottom:15px;
    color:#0F2D52;
}

.content p{
    margin-bottom:15px;
    line-height:1.6;
}
/* ==========================================
   BOTTOM NAVIGATION
========================================== */

.bottom-nav{
    position:fixed;
    left:0;
    right:0;
    bottom:0;

    height:70px;

    background:#0F2D52;

    display:flex;
    justify-content:space-around;
    align-items:center;

    box-shadow:0 -3px 10px rgba(0,0,0,.2);
}
.bottom-nav a{
    color:#fff;
    text-decoration:none;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    font-size:24px;

    flex:1;
    min-width:0;
}

.bottom-nav span{
    font-size:12px;
    margin-top:4px;
}

.content{
    padding-bottom:120px !important;
}

/* ==========================================
   FORMULIEREN
========================================== */

.card-form{
    background:#fff;
    padding:25px;
    border-radius:12px;
    box-shadow:0 3px 10px rgba(0,0,0,.08);
}

.card-form label{
    display:block;
    margin-top:18px;
    margin-bottom:6px;
    font-weight:bold;
}

.card-form input,
.card-form select,
.card-form textarea{
    width:100%;
    padding:12px;
    border:1px solid #ccc;
    border-radius:8px;
    font-size:16px;
}

.card-form button{
    margin-top:25px;
    width:100%;
    padding:14px;
    border:none;
    border-radius:8px;
    background:#0F2D52;
    color:#fff;
    font-size:16px;
    cursor:pointer;
}

.card-form button:hover{
    background:#18406f;
}
/* ==========================================
   CUSTOMER CARD
========================================== */
.customer-card{
    background: var(--white);
    border-radius: var(--radius);
    padding:24px;
    margin-bottom:24px;
    box-shadow:var(--shadow);
    border:1px solid #edf1f7;
    transition:.25s ease;

    text-align:center;
}

.card-header{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:18px;
    margin-bottom:14px;
}

.card-logo{
    width:82px;
    height:82px;
    border-radius:18px;
       background:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    flex-shrink:0;
}

.card-info{

    flex:1;

}

.card-info h3{

    margin:0;

    color:#0F2D52;

    font-size:22px;

}

.card-info{
    flex:1;
}

.card-info h3{
    margin:0;
    font-size:30px;
    font-weight:700;
    color:var(--text);
}

.card-info p{
    margin:6px 0 0;
    font-size:18px;
    color:var(--text-light);
}

.card-favorite{
    font-size:28px;
    margin-left:auto;
}

.card-barcode{

    margin-top:8px;

    font-family:monospace;

    font-size:28px;

    text-align:center;

    letter-spacing:2px;

}

.card-number{

    margin-top:8px;

    text-align:center;

    color:#666;

    letter-spacing:2px;

    font-size:14px;

}

.customer-card:hover{
    transform:translateY(-3px);
    box-shadow:var(--shadow-hover);
}
/* ==========================================
   SEARCHBAR
========================================== */

.searchbar{
    margin-bottom:30px;
}

.searchbar input{

    width:100%;

    padding:16px 20px;

    border:none;

    border-radius:16px;

    background:#ffffff;

    font-size:16px;

    box-shadow:0 4px 12px rgba(0,0,0,.08);

    outline:none;

    transition:.2s;
}

.searchbar input:focus{

    box-shadow:0 0 0 3px rgba(25,118,210,.20);

}
.store-logo{
    width:64px;
    height:64px;
    object-fit:contain;
}

.store-logo-fallback {
    width: 72px;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #1976d2;
    color: #fff;
    border-radius: 14px;
    font-weight: 700;
    font-size: 22px;
}
.card-barcode{
    display:flex;
    justify-content:center;
    margin:12px 0;
}

.card-barcode svg{
    max-width:100%;
    height:auto;
}
.card-form{
    background:#fff;
    padding:30px;
    border-radius:20px;
    box-shadow:var(--shadow);
    max-width:700px;
}

.form-group{
    margin-bottom:24px;
}

.form-group label{
    display:block;
    font-weight:600;
    margin-bottom:8px;
}

.form-group input,
.form-group select{

    width:100%;
    padding:14px 16px;

    border:1px solid #d8dde7;
    border-radius:12px;

    font-size:16px;

    background:#fff;
}

.card-form button{

    background:var(--primary);

    color:#fff;

    border:none;

    padding:14px 24px;

    border-radius:12px;

    font-size:16px;

    cursor:pointer;
}
.store-preview {

    display: flex;
    align-items: center;
    gap: 24px;

    margin: 20px 0;

    padding: 20px;

    background: #fff;

    border-radius: 20px;

    box-shadow: var(--shadow);
}

.store-preview-logo {

    width: 100px;
    height: 100px;

    flex-shrink: 0;

    display: flex;
    justify-content: center;
    align-items: center;

    background: #f7f7f7;
    border-radius: 16px;

    overflow: hidden;
}

.store-preview-logo img {

    width: 80px;
    height: 80px;

    object-fit: contain;
}

.store-preview-info strong {

    font-size: 24px;
}

.store-preview-info span {

    color: #666;
}
.favorite-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.favorite-row input{
    width:22px;
    height:22px;
    cursor:pointer;
}
.switch{
    position:relative;
    display:inline-block;
    width:54px;
    height:30px;
}

.switch input{
    opacity:0;
    width:0;
    height:0;
}

.slider{
    position:absolute;
    inset:0;
    background:#d1d5db;
    border-radius:30px;
    transition:.3s;
    cursor:pointer;
}

.slider:before{
    content:"";
    position:absolute;
    width:22px;
    height:22px;
    left:4px;
    top:4px;
    background:#fff;
    border-radius:50%;
    transition:.3s;
    box-shadow:0 2px 6px rgba(0,0,0,.2);
}

.switch input:checked + .slider{
    background:#2563eb;
}

.switch input:checked + .slider:before{
    transform:translateX(24px);
}
.success-message {
    background: #dff5e3;
    border: 1px solid #b7e2c0;
    border-left: 6px solid #28a745;
    color: #1e4d2b;
    padding: 18px 22px;
    margin: 20px 0 30px;
    border-radius: 14px;
    box-shadow: 0 8px 20px rgba(0,0,0,.08);
}

.success-title {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 6px;
}

.success-text {
    font-size: 15px;
    color: #3b5b44;
    line-height: 1.5;
}





.card-logo {

    margin-bottom: 20px;

}

.card-info h3 {

    margin-bottom: 8px;

}

.card-barcode {

    margin-top: 30px;

}

.card-number {

    margin-top: 12px;
    font-size: 20px;
    letter-spacing: 3px;
    font-weight: 600;

}


.card-detail{
    background:#fff;
    border-radius:24px;
    padding:40px;
    text-align:center;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
}




.detail-logo{
    display:flex;
    justify-content:center;
    align-items:center;
    margin-bottom:30px;
    width:160px;
    margin-left:auto;
    margin-right:auto;
}

.detail-store-logo{
    width:100%;
    height:auto;
    object-fit:contain;
}

.detail-type{
    font-size:22px;
    color:#666;
    margin-top:10px;
}
.btn-edit{
    display:inline-block;
    margin-top:30px;
    padding:12px 24px;
    background:#0F2D52;
    color:#fff;
    text-decoration:none;
    border-radius:12px;
    font-weight:600;
    transition:.2s;
}

.btn-edit:hover{
    background:#18406f;
}
.btn-delete{
    display:inline-block;
    margin-top:15px;
    padding:12px 24px;
    background:#d32f2f;
    color:#fff;
    text-decoration:none;
    border-radius:12px;
    font-weight:600;
    transition:.2s;
}

.btn-delete:hover{
    background:#b71c1c;
}
.detail-buttons{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:15px;
    margin-top:30px;
}

.detail-buttons a{
    width:260px;
    text-align:center;
}

.btn-delete{
    background:#d32f2f;
    color:#fff;
}


.home-slogan{
    font-size:1.15rem;
    color:#666;
    line-height:1.7;
    margin:15px 0 20px;
}


.settings-card{

    background:#fff;
    border-radius:20px;
    padding:20px;
    margin:20px 0;

    box-shadow:0 8px 20px rgba(0,0,0,.08);

}
.settings-card input[type="text"],
.settings-card input[type="email"] {
    width: 100%;
    box-sizing: border-box;
    padding: 14px 16px;
    margin: 4px 0 14px;
    border: 1px solid #ddd;
    border-radius: 14px;
    font-size: 16px;
    background: #fff;
}

.settings-card h2{

    color:#0F2D52;
    margin-bottom:15px;

}
.setting-row{
    display:flex;
    justify-content:space-between;
    align-items:center;

    padding:18px 0;

    border-bottom:1px solid #eee;
}

.setting-row:last-child{

    border-bottom:none;

}
.profile-avatar{

    width:90px;
    height:90px;

    border-radius:50%;

    background:#eef3fb;

    display:flex;
    justify-content:center;
    align-items:center;

    font-size:46px;

    margin:0 auto 25px;

}

.profile-info{

    display:flex;
    flex-direction:column;

}

.profile-info label{

    font-weight:600;
    margin-bottom:8px;
    color:#0F2D52;

}

.profile-info input{

    padding:14px;

    border:1px solid #ddd;
    border-radius:12px;

    font-size:16px;

}

.save-btn{

    margin-top:25px;

    width:100%;

    background:#0F2D52;
    color:#fff;

    border:none;

    border-radius:14px;

    padding:14px;

    font-size:16px;
    font-weight:600;

    cursor:pointer;

}
    
.clickable{
    display:flex;
    justify-content:space-between;
    align-items:center;
    width:100%;
    text-decoration:none;
    color:inherit;
}


.setting-info{
    display:flex;
    justify-content:space-between;
    align-items:center;
    width:100%;
}

.setting-title{
    font-size:16px;
    font-weight:600;
    color:#0F2D52;
}
.setting-value{
    width:140px;
    text-align:left;
    font-size:18px;
    font-weight:600;
    color:#0F2D52;
}

.no-value{
    color:#9aa0a6;
    font-style:italic;
    font-weight:400;
    font-size:15px;
}
.setting-value.has-value{
    color:#0F2D52;
    font-size:22px;
    font-weight:700;
}

.setting-arrow{
    color:#6b7280;
    font-size:28px;
    margin-left:20px;
}

.clickable:hover .setting-arrow{
    color:#0F2D52;
    transform:translateX(3px);
}
.profile-intro{

    text-align:center;
    color:#666;
    margin-bottom:25px;

}

.profile-avatar{
    width:180px;
    text-align:center;
    margin-bottom:15px;
}

.profile-avatar img{
    width:220px;
    max-width:100%;
    height:auto;
}


.profile-info{

    margin-top:20px;

}

.profile-info label{

    display:block;
    margin-bottom:8px;

    font-weight:600;
    color:#0F2D52;

}

input[type=text]{

    width:100%;

    padding:14px;

    border:1px solid #ddd;
    border-radius:12px;

    font-size:16px;

    box-sizing:border-box;

}

.save-btn{

    width:100%;

    margin-top:25px;

    padding:15px;

    border:none;
    border-radius:14px;

    background:#0F2D52;
    color:#fff;

    font-size:16px;
    font-weight:600;

    cursor:pointer;

}

.save-btn:hover{

    background:#1d4f91;

}
.setting-title{
    font-size:16px;
    font-weight:600;
    color:#0F2D52;
}

.setting-value{
    text-align:right;
}

.setting-value.has-value{
    color:#0F2D52;
    font-size:18px;
    font-weight:600;
}


.twannie-home{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:25px;
    flex-wrap:wrap;

    margin-bottom:40px;
}

.twannie-home img{

    width:240px;
 height:auto;
}

.twannie-text{

    max-width:300px;

}

.balloon-title{

    font-size:30px;
    font-weight:700;

    margin-bottom:15px;

}

.balloon-body{

    font-size:22px;
    line-height:1.4;

}

.balloon-footer{

    margin-top:20px;

    font-size:20px;
    font-weight:bold;

    color:#0F2D52;

}
@media (max-width:700px){

.twannie-home{
    gap:10px;
}

.twannie-home img{
    width:180px;

}

.twannie-text{

    max-width:180px;

}

.balloon-title{

    font-size:22px;

}

.balloon-body{

    font-size:17px;

}

.balloon-footer{

    font-size:17px;

}

}


/* ===============================
   BARCODE SCANNER
================================ */

.scanner-modal{
    display:none;
    position:fixed;
    inset:0;
    z-index:9999;
    background:rgba(0,0,0,.65);
    align-items:center;
    justify-content:center;
    padding:20px;
}

.scanner-box{
    width:min(420px, 100%);
    background:#fff;
    border-radius:18px;
    padding:18px;
    box-shadow:0 15px 40px rgba(0,0,0,.3);
}

.scanner-box h2{
    margin:0 0 14px;
    color:#0F2D52;
}
#reader{
    width:100%;
    aspect-ratio:16 / 9;
    overflow:hidden;
    border-radius:12px;
    background:#111;
    object-fit:cover;
display:block;
}

#reader video{
    width:100% !important;
    height:auto !important;
}

.close-scanner{
    width:100%;
    margin-top:14px;
    padding:12px;
    border:0;
    border-radius:10px;
    background:#0F2D52;
    color:#fff;
    font-size:16px;
}


.scan-success{
    position:fixed;
    left:50%;
    bottom:110px;
    transform:translateX(-50%) translateY(20px);

    width:min(360px, calc(100% - 32px));

    background:#e8f7ee;
    color:#163b25;

    border:1px solid #9fd7b2;
    border-radius:16px;

    padding:14px 18px;

    display:flex;
    flex-direction:column;
    gap:4px;

    text-align:center;

    box-shadow:0 10px 30px rgba(0,0,0,.18);

    opacity:0;
    z-index:10000;

    transition:
        opacity .25s ease,
        transform .25s ease;
}

.scan-success.show{
    opacity:1;
    transform:translateX(-50%) translateY(0);
}

.scan-success strong{
    font-size:1.05rem;
}

.scan-success span{
    font-size:.92rem;
}
.name-mobile {
    display: none;
}

@media (max-width: 600px) {
    .header{
    padding:10px 12px !important;
}

.header-top{
    padding:6px 8px !important;
}

    .header-top{
        display:grid;
        grid-template-columns:1fr auto;
        align-items:center;
        gap:10px;
        padding:14px 16px;
    }

    .logo{
        min-width:0;
    }

    .logo h1{
        font-size:1.75rem;
        line-height:1.05;
        margin:0;
        white-space:nowrap;
    }

    .logo span{
        display:block;
        margin-top:5px;
        font-size:.88rem;
        line-height:1.2;
        white-space:nowrap;
    }

    .header-user{
        min-height:42px;
        padding:0 10px;
        border-radius:22px;
    }


    .header-user-icon{
        font-size:20px;
    }

    .header-user-button > span:not(.header-user-icon):not(.header-user-arrow){
        display:none;
    }

    .header-user-link > span:not(.header-user-icon){
        display:none;
    }

    .header-user-arrow{
        display:inline !important;
        font-size:9px;
        margin-left:2px;
    }

    .header-user-dropdown{
        top:50px;
        right:0;
    }

    .name-desktop{
        display:none;
    }

    .name-mobile{
        display:inline;
    }
    .twannie-intro-image {
    transform: translateY(-25px);
}
@media (max-width: 700px) {

    /* Twannie iets hoger */
    .twannie-intro-image{
        transform:translateY(-25px);
    }

    /* Tekst in de ballon iets hoger */
    .twannie-intro-text{
        transform:translateY(-18px);
    }


}



}
.profile-message{
    margin: 8px 0 22px;
    padding: 12px 16px;
    background: #e8f7ed;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 600;
    transition: opacity 0.5s ease;
    color: #247a3c;
}
.install-page{
    max-width:700px;
    margin:0 auto;
    padding:30px 20px;
}

.install-card{
    background:#fff;
    border-radius:24px;
    padding:30px;
    text-align:center;
    box-shadow:0 12px 30px rgba(0,0,0,.12);
}

.install-app-icon{
    width:140px;
    height:140px;
    border-radius:28px;
    margin-bottom:20px;
}

.install-card h1{
    color:#0F2D52;
    margin-bottom:12px;
}

.install-intro{
    font-size:17px;
    line-height:1.6;
    color:#4b5563;
    margin-bottom:24px;
}

.install-button{
    width:100%;
    min-height:54px;
    border:none;
    border-radius:14px;
    background:#0F2D52;
    color:#fff;
    font-size:18px;
    font-weight:700;
    cursor:pointer;
    margin-bottom:18px;
}

.install-help{
    padding:14px;
    background:#eef4fa;
    border-radius:12px;
    color:#334155;
    line-height:1.5;
    margin-bottom:22px;
}

.install-account-links{
    display:flex;
    justify-content:center;
    gap:18px;
    flex-wrap:wrap;
}

.install-account-links a{
    color:#0F2D52;
    font-weight:700;
    text-decoration:none;
}

@media (max-width:600px){
    .install-page{
        padding:0px 14px;
        transform: translateY(-50px);
    }

    .install-card{
        padding:24px 18px;
    }

    .install-app-icon{
        width:145px;
        height:145px;
    }
}
.install-after{
    margin-top:18px;
    color:#4b5563;
    font-size:15px;
    line-height:1.5;
}

.install-after p{
    margin:5px 0;
}
.login-page{
    max-width:520px;
    margin:40px auto;
    padding:30px;
    background:#fff;
    border-radius:24px;
    box-shadow:0 12px 30px rgba(0,0,0,.12);
}

.login-page h2{
    color:#0F2D52;
    margin-bottom:10px;
}

.login-intro{
    color:#4b5563;
    margin-bottom:22px;
    line-height:1.5;
}

.login-page form{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.login-page label{
    display:flex;
    flex-direction:column;
    gap:7px;
    font-size:16px;
    font-weight:600;
    color:#0F2D52;
}

.login-page input{
    width:100%;
    min-height:50px;
    padding:10px 12px;
    font-size:17px;
    border:1px solid #cbd5e1;
    border-radius:10px;
    box-sizing:border-box;
}

.login-page button{
    min-height:52px;
    border:none;
    border-radius:12px;
    background:#0F2D52;
    color:#fff;
    font-size:18px;
    font-weight:700;
    cursor:pointer;
}

.login-register{
    margin-top:22px;
    padding-top:18px;
    border-top:1px solid #e5e7eb;
    text-align:center;
}

.login-register span{
    display:block;
    margin-bottom:8px;
    color:#4b5563;
}

.login-register a{
    color:#0F2D52;
    font-weight:700;
    text-decoration:none;
}

.login-message{
    margin-bottom:18px;
    padding:12px 14px;
    border-radius:10px;
    background:#eef4fa;
    color:#0F2D52;
}

@media (max-width:600px){
    .login-page{
        margin:20px 14px;
        padding:24px 18px;
    }
}
.register-page{
    max-width:520px;
    margin:40px auto;
    padding:30px;
    background:#fff;
    border-radius:24px;
    box-shadow:0 12px 30px rgba(0,0,0,.12);
}

.register-page h2{
    color:#0F2D52;
    margin-bottom:10px;
}

.register-page form{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.register-page label{
    display:flex;
    flex-direction:column;
    gap:7px;
    font-size:16px;
    font-weight:600;
    color:#0F2D52;
}

.register-page input{
    width:100%;
    min-height:50px;
    padding:10px 12px;
    font-size:17px;
    border:1px solid #cbd5e1;
    border-radius:10px;
    box-sizing:border-box;
}

.register-page button{
    min-height:52px;
    border:none;
    border-radius:12px;
    background:#0F2D52;
    color:#fff;
    font-size:18px;
    font-weight:700;
    cursor:pointer;
}

.register-message{
    margin-bottom:18px;
    padding:12px 14px;
    border-radius:10px;
    background:#eef4fa;
    color:#0F2D52;
}

@media (max-width:600px){
    .register-page{
        margin:20px 14px;
        padding:24px 18px;
    }
}
.register-login{
    margin-top:22px;
    padding-top:18px;
    border-top:1px solid #e5e7eb;
    text-align:center;
}

.register-login span{
    display:block;
    margin-bottom:8px;
    color:#4b5563;
}

.register-login a{
    color:#0F2D52;
    font-weight:700;
    text-decoration:none;
}
@media (min-width: 901px){

    .header-user{
        min-width:190px;
        display:flex;
        justify-content:flex-end;
        
    }

    .header-user-menu{
        position:relative;
    }

    .header-user-button{
        min-height:46px;
        padding:0 14px;
        border:none;
        border-radius:24px;
        background:rgba(255,255,255,.14);
        color:#fff;
        display:flex;
        align-items:center;
        gap:8px;
        font-size:16px;
        font-weight:600;
        cursor:pointer;
    }

    .header-user-button .name-desktop{
        display:inline;
    }

    .header-user-arrow{
        font-size:10px;
        margin-left:2px;
    }

    .header-user-dropdown{
        top:54px;
        right:0;
        min-width:180px;
        border-radius:12px;
        box-shadow:0 8px 24px rgba(0,0,0,.18);
        overflow:hidden;
        position:absolute;
z-index:2000;
    }

    .header-user-dropdown a{
        display:block;
        padding:12px 16px;
        background:#fff;
        color:#0F2D52;
        text-decoration:none;
        font-weight:600;
    }

    .header-user-dropdown a:hover{
        background:#f2f6fa;
    }
}
.header-user-dropdown{
    display:none;
}

.header-user-menu.open .header-user-dropdown{
    display:block;
}

/* ==========================================
   HOME - COMPACT WEERMAN TWANNIE
   ========================================== */

.home-page .weather-card{
    padding:14px 16px !important;
    margin:10px 0 16px !important;
    border-radius:18px !important;

    display:grid !important;
    grid-template-columns:1fr auto !important;
    align-items:center !important;
    gap:6px 12px !important;

    min-height:0 !important;
}

/* Weerman Twannie + icoon */
.home-page .weather-header{
    grid-column:1 !important;
    grid-row:1 !important;

    display:flex !important;
    align-items:center !important;
    gap:7px !important;

    margin:0 !important;
    padding:0 !important;

    font-size:16px !important;
}

/* Grote temperatuur rechts */
.home-page .weather-temp{
    grid-column:2 !important;
    grid-row:1 !important;

    margin:0 !important;
    padding:0 !important;

    font-size:26px !important;
    line-height:1 !important;
}

/* Alleen wind + vochtigheid tonen */
.home-page .weather-grid{
    grid-column:1 / -1 !important;

    display:grid !important;
    grid-template-columns:auto 1fr auto 1fr !important;
    gap:4px 8px !important;

    margin:4px 0 0 !important;
    padding:0 !important;

    font-size:14px !important;
}

/* Gevoelstemperatuur verbergen */
.home-page .weather-grid > div:nth-child(1),
.home-page .weather-grid > div:nth-child(2),

/* Regen verbergen */
.home-page .weather-grid > div:nth-child(7),
.home-page .weather-grid > div:nth-child(8){
    display:none !important;
}

/* Kort weerbericht */
.home-page .weather-message{
    grid-column:1 !important;

    margin:3px 0 0 !important;
    padding:0 !important;

    font-size:13px !important;
    line-height:1.25 !important;
}

/* Laatste update niet meer op Home tonen */
.home-page .weather-update{
    display:none !important;
}

/* Link rechtsonder */
.home-page .weather-link{
    grid-column:2 !important;

    margin:3px 0 0 !important;
    padding:0 !important;

    font-size:13px !important;
    white-space:nowrap !important;
}


/* Extra compact op telefoon */
@media (max-width:600px){

    .home-page .weather-card{
        padding:12px 14px !important;
        margin-top:6px !important;
        margin-bottom:14px !important;
    }

    .home-page .weather-temp{
        font-size:24px !important;
    }

    .home-page .weather-header{
        font-size:15px !important;
    }

    .home-page .weather-grid{
        font-size:13px !important;
    }

    .home-page .weather-message,
    .home-page .weather-link{
        font-size:12px !important;
    }
}
/* ==========================================
   HOME - MIJN KAARTEN
   ========================================== */

.home-cards{
    margin-top:8px;
    margin-bottom:140px;
}

.home-cards-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-bottom:12px;
}

.home-cards-header h2{
    margin:0;
    color:#0F2D52;
    font-size:22px;
}

.home-cards-header a{
    color:#0F2D52;
    text-decoration:none;
    font-size:14px;
    font-weight:700;
    white-space:nowrap;
}

/* 2 kaarten naast elkaar */
.home-cards-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px;
}

/* Kleine kaarttegel */
.home-card-tile{
    min-height:92px;
    padding:8px;

    background:#fff;
    border:1px solid #e1e6ee;
    border-radius:18px;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:8px;

    text-align:center;
    text-decoration:none;
    color:#0F2D52;

    box-shadow:0 4px 12px rgba(0,0,0,.08);
    overflow:hidden;
}

/* Logo */
.home-card-tile img{
    width:100%;
    max-width:120px;
    height:62px;
    object-fit:contain;
    display:block;
}

/* Winkelnaam */
.home-card-tile span{
    font-size:14px;
    font-weight:700;
    line-height:1.2;
}

/* Op telefoon iets compacter */
@media (max-width:600px){

    /* Grote Twannie-welkomstafbeelding verbergen op mobiel */
.twannie-intro{
    display:none !important;
}

    .home-cards{
    margin-top:0 !important;
    padding-top:0 !important;
}
.home-cards-grid{
    margin-top:0 !important;
    max-height:calc(100vh - 350px);
    overflow-y:auto;
    overflow-x:hidden;
    padding-right:4px;
    padding-bottom:90px;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
}

    .home-cards-header h2{
        font-size:20px;
    }

    .home-card-tile{
        min-height:100px;
        padding:10px;
        border-radius:16px;
    }

    .home-card-tile img{
        max-width:105px;
        height:52px;
    }

    .home-card-tile span{
        font-size:13px;
    }
}
/* ==========================================
   HOME - BOVENKANT COMPACTER OP MOBIEL
   ========================================== */

@media (max-width:600px){

    /* Begroeting iets compacter */
    .home-header{
        margin-bottom:0 !important;
    }

    .home-header h1{
    font-size:24px !important;
    line-height:1.05 !important;
    margin-bottom:4px !important;
    white-space:nowrap !important;
}

    /* Twannie + ballon minder hoog */
    .twannie-intro{
        height:245px !important;
        min-height:245px !important;
        margin-bottom:4px !important;
        overflow:visible !important;
    }

    .twannie-intro-image{
        max-height:270px !important;
        width:auto !important;
        transform:translateY(-20px) !important;
    }

    /* Welkomsttekst iets kleiner */
    .twannie-intro-text strong{
        font-size:25px !important;
    }

    .twannie-intro-text span{
        font-size:15px !important;
        line-height:1.25 !important;
    }

    .twannie-intro-text b{
        font-size:15px !important;
    }

    /* Minder ruimte voor het weerblok */
    .home-page .weather-card{
        margin-top:2px !important;
        margin-bottom:8px !important;
    }

    /* Mijn kaarten dichter tegen het weer */
    .home-cards{
        margin-top:2px !important;
    }
}
/* ==========================================
   HOME - WEERBALK EXTRA COMPACT
   ========================================== */

@media (max-width:600px){

    .home-page .weather-card{
        display:flex !important;
        align-items:center !important;
        justify-content:space-between !important;
        gap:8px !important;

        padding:10px 14px !important;
        margin:0 0 8px !important;

        min-height:58px !important;
        border-radius:16px !important;
    }

    .home-page .weather-header{
        margin:0 !important;
        padding:0 !important;

        display:flex !important;
        align-items:center !important;
        gap:5px !important;

        font-size:14px !important;
        line-height:1.05 !important;
        flex:0 1 auto !important;
    }

    .home-page .weather-temp{
        margin:0 !important;
        padding:0 !important;

        font-size:24px !important;
        line-height:1 !important;

        flex:0 0 auto !important;
    }

    .home-page .weather-grid{
        margin:0 !important;
        padding:0 !important;

        display:flex !important;
        flex-direction:column !important;
        gap:1px !important;

        font-size:12px !important;
        line-height:1.1 !important;

        flex:0 0 auto !important;
    }

    /* alles verbergen */
    .home-page .weather-grid > div{
        display:none !important;
    }

    /* alleen windwaarde + vochtigheidswaarde */
    .home-page .weather-grid > div:nth-child(4),
    .home-page .weather-grid > div:nth-child(6){
        display:block !important;
    }

    /* bericht, update en losse link weg */
    .home-page .weather-message,
    .home-page .weather-update,
    .home-page .weather-link{
        display:none !important;
    }
}
/* ==========================================
   HOME - DEFINITIEVE WEERBALK
   ========================================== */

@media (max-width:600px){

    .home-page .weather-card-home{
        width:calc(100% - 24px);
margin-left:auto !important;
margin-right:auto !important;
        box-sizing:border-box;

        display:grid !important;

grid-template-columns:
    1.15fr
    .85fr
    .75fr
    18px !important;

        align-items:center !important;
        column-gap:4px !important;

        min-height:72px !important;
        padding:10px 18px 10px 14px !important;
        margin-top:0 !important;

margin-bottom:8px !important;

        border-radius:18px !important;
        text-decoration:none !important;

        overflow:hidden !important;
    }


    /* Icoon + Weerman Twannie */
    .weather-card-home .weather-home-title{
        display:flex;
        align-items:center;
        gap:8px;

        min-width:0;

        font-size:16px;
        font-weight:700;
        line-height:1.05;
    }


    .weather-card-home .weather-home-icon{
        flex:0 0 auto;
        font-size:20px;
    }


    .weather-card-home .weather-home-name{
        white-space:normal;
    }


    /* Temperatuur */
    .weather-card-home .weather-home-temp{
        min-width:0;

        font-size:25px !important;
        font-weight:500;
        line-height:1;

        text-align:center;
        white-space:nowrap;
    }


    /* Wind + vochtigheid */
    .weather-card-home .weather-home-extra{
        display:flex;
        flex-direction:column;
        align-items:flex-end;
        justify-content:center;

        min-width:0;

        font-size:13px;
        font-weight:700;
        line-height:1.3;
        white-space:nowrap;
    }


    /* Pijltje rechts */
    .weather-card-home .weather-home-arrow{
    width:18px;
    min-width:18px;

    font-size:26px !important;
    font-weight:400;
    line-height:1;

    text-align:center;
    position:static;
}
/* =====================================================
   KAARTDETAIL - NIEUWE MOBIELE LAYOUT
   Barcode groot bovenaan
   ===================================================== */

@media (max-width:600px){

    /* Titel */
    .content > h1{
        font-size:28px;
        line-height:1.1;
        margin:12px 0 8px;
    }

    /* Witte kaart */
    .card-detail{
        padding:20px 16px 18px !important;
        border-radius:24px !important;
    }

    /* Barcode bovenaan */
    .card-barcode-top{
        margin:0 auto 4px !important;
        width:100% !important;
        text-align:center !important;
    }

    /* Barcode SVG groter en vooral HOGER */
    .card-barcode-top svg{
        width:100% !important;
        max-width:330px !important;
        height:115px !important;
        display:block !important;
        margin:0 auto !important;
    }

    /* Nummer direct onder barcode */
    .card-number{
        margin:2px 0 16px !important;
        font-size:22px !important;
        line-height:1.1 !important;
        letter-spacing:3px !important;
        text-align:center !important;
    }

    /* Logo en naam naast elkaar */
    .detail-store-info{
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        gap:18px !important;
        margin:6px 0 18px !important;
    }

    .detail-logo{
        margin:0 !important;
        padding:0 !important;
    }

    .detail-store-logo{
        width:auto !important;
        height:auto !important;
        max-width:95px !important;
        max-height:95px !important;
        object-fit:contain !important;
    }

    .detail-store-text{
        text-align:left !important;
    }

    .detail-store-text h2{
        margin:0 0 4px !important;
        font-size:22px !important;
        line-height:1.1 !important;
    }

    .detail-store-text .detail-type{
        margin:0 !important;
        font-size:18px !important;
        line-height:1.2 !important;
    }

    /* Knoppen */
    .detail-buttons{
        margin-top:10px !important;
        display:flex !important;
        flex-direction:column !important;
        gap:10px !important;
    }

    .btn-edit,
    .btn-delete{
        margin:0 !important;
        padding:14px 12px !important;
        min-height:0 !important;
        font-size:18px !important;
        line-height:1.2 !important;
        border-radius:14px !important;
    }
}/* Kaartdetail hoger op mobiel */
@media (max-width:600px){

    .content{
        margin-top:8px !important;
    }

}
/* =========================================
   FAVORIETEN - COMPACTE TEGELS
   ========================================= */

.favorites-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:14px;
    width:100%;
}

.favorite-tile{
    position:relative;

    min-width:0;
    height:95px;

    background:#fff;
    border-radius:16px;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    padding:12px;

    text-decoration:none;
    color:#0F2D52;

    box-shadow:0 3px 10px rgba(0,0,0,.08);

    overflow:hidden;
}

.favorite-tile img{
    display:block;
    width:auto;
    max-width:110px;
    height:auto;
    max-height:70px;
    object-fit:contain;
    margin-bottom:10px;
}

.favorite-tile strong{
    display:block;
    width:100%;

    text-align:center;
    font-size:15px;
    line-height:1.2;

    color:#0F2D52;
}

.favorite-star{
    position:absolute;
    top:7px;
    right:7px;

    font-size:16px;
    line-height:1;
}
/* =========================================
   HOME - WEERBALK + ZOEKKNOP NAAST ELKAAR
   ========================================= */

@media (max-width:600px){

    /* Ruimte rechts maken voor zoekknop */
    .home-page .weather-card{
        width:calc(100% - 58px) !important;
        margin-left:0 !important;
        margin-right:58px !important;
    }

    /* Zoekgedeelte */
    .home-cards{
        position:relative;
    }

    .home-cards-search-wrap{
        position:absolute;

        /* omhoog naast de weerbalk */
        top:-72px;
        right:0;

        z-index:30;

        display:flex;
        align-items:center;
        justify-content:flex-end;
        gap:8px;
    }

    /* Zoekknop */
.home-search-toggle{
    width:60px;
    height:64px;

    border:2px solid #0F2D52;
    border-radius:14px;

    background:#ffffff;
    color:#0F2D52;

    font-size:25px;
    cursor:pointer;

    display:flex;
    align-items:center;
    justify-content:center;

    box-shadow:0 2px 8px rgba(0,0,0,.12);
}

    /* Zoekveld standaard dicht */
    .home-card-search-input{
        position:absolute;
        right:0;
        top:52px;

        width:230px;

        opacity:0;
        pointer-events:none;

        border:1px solid #d7dce3;
        border-radius:18px;

        padding:10px 14px;

        font-size:15px;
        background:#ffffff;
        color:#0F2D52;

        box-shadow:0 4px 14px rgba(0,0,0,.15);

        transition:opacity .2s ease;
    }

    /* Zoekveld open */
    .home-cards-search-wrap.open .home-card-search-input{
        opacity:1;
        pointer-events:auto;
    }

}
/* Kleine melding na toevoegen kaart */
.home-save-message{
    position: fixed;
    top: 18px;
    left: 50%;
    transform: translateX(-50%);

    background: #dff5e5;
    color: #176b32;
    border: 1px solid #9ed9ad;

    padding: 10px 18px;
    border-radius: 12px;

    font-size: 16px;
    font-weight: 700;

    box-shadow: 0 3px 10px rgba(0,0,0,.12);

    z-index: 9999;
}
    
}
/* =========================================
   PRIVACY PAGINA
   ========================================= */

.privacy-page{
    max-width:760px;
    margin:0 auto;
    background:#ffffff;
    border-radius:22px;
    padding:24px;
    box-shadow:0 3px 12px rgba(0,0,0,.08);
}

.privacy-page h1{
    color:#0F2D52;
    margin:0 0 18px;
}

.privacy-page h2{
    color:#0F2D52;
    font-size:22px;
    margin:26px 0 10px;
}

.privacy-page p,
.privacy-page li{
    font-size:17px;
    line-height:1.6;
    color:#263238;
}

.privacy-page ul{
    padding-left:24px;
}

.privacy-updated{
    margin-top:28px;
    font-size:14px !important;
    color:#6b7280 !important;
}

.privacy-back{
    display:block;
    max-width:760px;
    margin:16px auto 0;
    padding:14px 18px;

    background:#0F2D52;
    color:#ffffff;

    text-align:center;
    text-decoration:none;
    font-weight:700;

    border-radius:14px;
}

@media (max-width:600px){

    .privacy-page{
        margin:0;
        padding:20px 18px;
        border-radius:18px;
    }

    .privacy-page h1{
        font-size:28px;
    }

    .privacy-page h2{
        font-size:20px;
    }

    .privacy-page p,
    .privacy-page li{
        font-size:16px;
    }

    .privacy-back{
        margin-top:14px;
    }
    /* Wachtwoord tonen/verbergen */

.password-field {
    position: relative;
    width: 100%;
}

.password-field input {
    width: 100%;
    padding-right: 55px;
}

.password-field .password-toggle {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);

    width: 40px;
    height: 40px;
    padding: 0;
    margin: 0;

    background: transparent;
    border: none;
    box-shadow: none;

    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}

}
/* Oude Twannie-intro overal verbergen */
.twannie-intro{
    display:none !important;
}
/* Statistieken - laatste gebruikers */
.stats-user {
    padding: 16px 0;
    border-bottom: 1px solid #e5e5e5;
}

.stats-user:last-child {
    border-bottom: none;
}

.stats-user-name {
    font-size: 18px;
    font-weight: 700;
    color: #12365e;
    margin-bottom: 4px;
}

.stats-user-email {
    font-size: 15px;
    color: #555;
    overflow-wrap: anywhere;
}

.stats-user-date {
    font-size: 14px;
    color: #777;
    margin-top: 4px;
}
/* =========================================
   KLANTENKAARTEN / CADEAUKAARTEN TABS
========================================= */

.card-kind-tabs {
    display: flex;
    gap: 10px;
    width: 100%;
    margin: 14px 0 18px;
}

.card-kind-tab {
    flex: 1;
    padding: 14px 8px;
    border: 2px solid #12365d;
    border-radius: 12px;
    background: #fff;
    color: #12365d;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
}

.card-kind-tab.active {
    background: #12365d;
    color: #fff;
}
/* =========================================
   SCANOPTIES
========================================= */

.scan-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 10px;
}

.scan-option-btn {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    border: none;
    border-radius: 14px;
    background: #12365d;
    color: #fff;
    text-align: left;
    cursor: pointer;
}

.scan-option-icon {
    font-size: 30px;
    flex-shrink: 0;
}

.scan-option-text {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 3px;
}

.scan-option-text strong {
    font-size: 17px;
    font-weight: 700;
}

.scan-option-text small {
    font-size: 13px;
    font-weight: 400;
    opacity: 0.85;
}

.scan-option-arrow {
    font-size: 34px;
    line-height: 1;
    flex-shrink: 0;
}
/* =========================================
   MELDING WINKEL KIEZEN
========================================= */

.scan-store-hint {
    margin: 18px 0 14px;
    padding: 18px 12px 4px;
    border-top: 1px solid #e1e5e9;

    text-align: center;
    color: #12365d;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
}
/* =========================================
   KLEINE TELEFOONS / IPHONE
========================================= */

@media (max-width: 430px) {

    .twannie-balloon {
        padding-left: 14px;
        padding-right: 14px;
    }

    .twannie-title {
        font-size: 15px;
        line-height: 1.05;
    }

    .twannie-temp {
        font-size: 30px;
        white-space: nowrap;
    }

    .twannie-extra {
        font-size: 13px;
        line-height: 1.2;
    }
}
@media (max-width: 430px) {

    .home-page .weather-card {
        padding: 12px 12px !important;
        gap: 4px 8px !important;
    }

    .home-page .weather-header {
        font-size: 14px !important;
        gap: 5px !important;
    }

    .home-page .weather-temp {
        font-size: 28px !important;
    }

    .home-page .weather-meta {
        font-size: 12px !important;
        line-height: 1.15 !important;
    }
    .home-page .weather-header {
    max-width: 105px !important;
    font-size: 13px !important;
    line-height: 1.05 !important;
}

.home-page .weather-temp {
    margin-left: 8px !important;
    font-size: 26px !important;
}
@media (max-width: 375px) {

    .home-page .weather-temp {
        font-size: 23px !important;
        margin-left: 6px !important;
    }

    .home-page .weather-header {
        font-size: 12px !important;
        max-width: 95px !important;
    }
.home-page .home-header {
    padding-top: 10px !important;
}

.home-page .home-header h1 {
    margin-top: 0 !important;
}
}
}
/* Portemonnee import - screenshot voorbeeld */
.wallet-import-preview {
    display: block;
    width: 100%;
    max-width: 220px;
    height: 140px;
    object-fit: contain;
    margin: 12px auto;
    border-radius: 12px;
    background: #f5f5f5;
}
.wallet-import-preview {
    cursor: pointer;
}

/* Grote weergave screenshot */
.wallet-preview-overlay {
    position: fixed;
    inset: 0;
    z-index: 99999;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 20px;
    background: rgba(0, 0, 0, 0.85);
}

.wallet-preview-overlay img {
    display: block;
    max-width: 100%;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 12px;
}

.wallet-preview-close {
    position: absolute;
    top: 20px;
    right: 20px;

    width: 46px;
    height: 46px;

    border: none;
    border-radius: 50%;

    font-size: 32px;
    line-height: 1;
    cursor: pointer;
}
.wallet-import-item {
    padding: 18px 0;
    border-bottom: 1px solid #ddd;
}

.wallet-import-item > strong {
    display: block;
    font-size: 20px;
    margin-bottom: 8px;
}

.wallet-import-item label {
    display: block;
    margin-top: 14px;
    margin-bottom: 6px;
    font-weight: 700;
}

.wallet-import-item input,
.wallet-import-item select {
    width: 100%;
}
.wallet-other-store {
    margin-top: 12px;
}
/* Ruimte onderaan zodat laatste kaart boven vaste navigatie kan scrollen */
.home-page {
    padding-bottom: 90px;
}
/* Compactere kaarten voor Wendy's kleinere viewport */
@media (max-width: 390px) and (max-height: 760px) {

    .home-card-tile {
        min-height: 88px !important;
        padding: 6px !important;
    }

    .home-cards-grid {
        gap: 8px !important;
    }
}
.setting-row-stacked{
    align-items:center;
}

.setting-row-stacked .setting-info{
    flex:1;
    min-width:0;
}

.setting-row-stacked .setting-title{
    margin-bottom:6px;
}
.setting-description{
    color:#0F2D52;
    font-style:normal;
    font-weight:600;
    font-size:14px;
    line-height:1.35;
}

.setting-row-stacked .setting-arrow{
    margin-left:14px;
    flex-shrink:0;
}
/* Reactie / suggestie formulier */
.settings-card form{
    display:flex;
    flex-direction:column;
    gap:14px;
    margin-top:20px;
}

.settings-card form label{
    font-weight:700;
    color:#0F2D52;
    font-size:16px;
}

.settings-card form select,
.settings-card form textarea{
    width:100%;
    box-sizing:border-box;
    border:1px solid #d8dde3;
    border-radius:14px;
    padding:14px 16px;
    font-size:16px;
    font-family:inherit;
    background:#fff;
}

.settings-card form textarea{
    min-height:150px;
    resize:vertical;
}

.settings-card form button{
    width:100%;
    border:0;
    border-radius:14px;
    padding:15px 18px;
    background:#0F2D52;
    color:#fff;
    font-size:17px;
    font-weight:700;
    cursor:pointer;
}
.feedback-setting .setting-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}

.feedback-setting .setting-title {
    width: 100%;
}

.feedback-setting .setting-description {
    width: 100%;
    color: #8a9098;
    font-size: 0.9em;
    font-weight: 400;
    line-height: 1.35;
}