/* BouwKostenPro v7.0 — Responsive (Sprint 5) */

/* TABLET LANDSCAPE ≤1200 */
@media(max-width:1200px){.grid-4{grid-template-columns:repeat(3,1fr)}.page-content{padding:16px}.sidebar{width:180px}}

/* TABLET PORTRAIT ≤900 */
@media(max-width:900px){.sidebar:not(.sidebar-mobile){display:none}.grid-4,.grid-3{grid-template-columns:1fr 1fr}.dash-kpis{grid-template-columns:1fr 1fr}.page-content{padding:14px}.modal{width:90vw;max-width:500px}.form-row{grid-template-columns:1fr}.sp-header{flex-direction:column;gap:4px}.sp-rest{text-align:left}.header-title{font-size:13px}.header-breadcrumb{display:none}.cal-cell{min-height:44px}.cal-event{font-size:6px}}

/* MOBILE ≤640 */
@media(max-width:640px){
.mobile-nav{display:block}.page-content{padding:10px;padding-bottom:68px}
.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.dash-kpis{grid-template-columns:1fr 1fr;gap:6px}
.header{padding:8px 10px}.header-title{font-size:12px}
.card{border-radius:10px;padding:12px}.tx-card{margin-bottom:4px}
.tx-amount{font-size:16px}.tx-desc{font-size:13px}
/* Touch targets 44px min */
.btn{min-height:40px;padding:9px 14px;font-size:12px}.btn-sm{min-height:34px;padding:7px 10px}
.nav-item{padding:12px 14px;min-height:44px}.tab{padding:10px 8px;min-height:38px;font-size:10px}
.form-input{min-height:40px;padding:10px;font-size:14px}.form-check{min-height:40px;font-size:13px}
.form-check input[type="checkbox"]{width:18px;height:18px}
.ctx-item{padding:12px;min-height:44px;font-size:13px}.pill{padding:4px 8px;font-size:11px}
/* Tabs scroll */
.tabbar{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.tab{flex:0 0 auto;padding:10px 12px}
/* Calendar compact */
.cal-cell{min-height:36px;padding:2px}.cal-day{font-size:10px}.cal-event{display:none}.cal-header{font-size:8px}
/* KPI compact */
.kpi-icon{font-size:14px}.kpi-value{font-size:14px}.kpi-label{font-size:8px}
/* Stelpost compact */
.sp-name{font-size:12px;flex-wrap:wrap}.sp-details{flex-wrap:wrap;gap:4px}.sp-rest-amount{font-size:12px}
/* Context menu bottom sheet */
.ctx-menu{position:fixed;bottom:56px;left:4px;right:4px;top:auto;border-radius:12px 12px 0 0;min-width:auto;animation:slideUp .2s ease}
.ctx-item{padding:14px 12px;font-size:14px;min-height:48px}
/* Modal bottom sheet */
.modal-overlay{align-items:flex-end;padding:0}
.modal{width:100%;max-width:100%;max-height:90vh;border-radius:16px 16px 0 0;padding:16px;animation:slideUp .25s ease}
.modal-title{font-size:15px}
.desktop-only{display:none!important}.helpbox{padding:8px}.helpbox-text{font-size:10px}
}

/* SMALL MOBILE ≤380 */
@media(max-width:380px){.dash-kpis{grid-template-columns:1fr}.kpi-value{font-size:12px}.page-content{padding:6px;padding-bottom:64px}}

/* LANDSCAPE TABLET */
@media(min-width:641px)and(max-width:1024px)and(orientation:landscape){.page-content{padding:12px 20px}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:1fr 1fr 1fr}.modal{max-width:560px}}

/* FAB */
.fab{position:fixed;bottom:72px;right:16px;z-index:100;display:none}
.fab-main{width:52px;height:52px;border-radius:26px;background:linear-gradient(135deg,var(--ac),var(--ac-d));color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 6px 24px rgba(34,197,94,.4);transition:transform .2s}
.fab-main:active{transform:scale(.92)}.fab-main.open{transform:rotate(45deg)}
.fab-options{position:absolute;bottom:60px;right:0;display:flex;flex-direction:column;gap:8px;opacity:0;transform:translateY(10px);pointer-events:none;transition:all .2s ease}
.fab.open .fab-options{opacity:1;transform:translateY(0);pointer-events:auto}
.fab-option{display:flex;align-items:center;gap:8px;white-space:nowrap;cursor:pointer;animation:slideUp .2s ease}
.fab-option-btn{width:40px;height:40px;border-radius:20px;background:var(--card);border:1px solid var(--brd);display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:var(--shadow)}
.fab-option-label{background:var(--card);border:1px solid var(--brd);border-radius:var(--r-pill);padding:4px 10px;font-size:11px;font-weight:600;color:var(--t1);box-shadow:var(--shadow)}
@media(max-width:640px){.fab{display:block}}

/* Swipe */
.swipeable{position:relative;overflow:hidden;touch-action:pan-y}
.swipe-content{position:relative;z-index:2;background:var(--card);transition:transform .2s ease}
.swipe-actions-right{position:absolute;top:0;bottom:0;right:0;display:flex;align-items:center;padding-right:12px;background:var(--red);border-radius:0 var(--r) var(--r) 0;z-index:1}
.swipe-actions-left{position:absolute;top:0;bottom:0;left:0;display:flex;align-items:center;padding-left:12px;background:var(--blue);border-radius:var(--r) 0 0 var(--r);z-index:1}
.swipe-action-icon{color:#fff;font-size:16px;font-weight:700}

/* Pull to refresh */
.pull-indicator{position:fixed;top:-40px;left:50%;transform:translateX(-50%);z-index:200;display:flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--brd);border-radius:var(--r-pill);padding:6px 14px;font-size:11px;font-weight:600;color:var(--t2);box-shadow:var(--shadow);transition:top .3s ease}
.pull-indicator.active{top:12px}
.pull-indicator .spinner{width:14px;height:14px;border:2px solid var(--brd);border-top-color:var(--ac);border-radius:50%;animation:spin .6s linear infinite}

/* Page transitions */
.page-enter{animation:fadeSlideIn .2s ease}
@keyframes fadeSlideIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.count-up{animation:countUp .4s ease}
.success-check{display:inline-flex;width:20px;height:20px;background:var(--ac);border-radius:50%;align-items:center;justify-content:center;animation:popIn .3s ease}
@keyframes popIn{0%{transform:scale(0)}60%{transform:scale(1.2)}100%{transform:scale(1)}}
