html { -webkit-text-size-adjust: 100%; }
.inp { display: block; width: 100%; border: 1px solid #d6d3d1; border-radius: .75rem; padding: .7rem .85rem; background: #fff; font-size: 16px; line-height: 1.35; }
.inp:focus { outline: none; border-color: #C82333; box-shadow: 0 0 0 3px rgba(200,35,51,.12); }
textarea.inp { resize: vertical; }
.lbl { display: block; font-size: .78rem; font-weight: 600; color: #44403c; margin-bottom: .3rem; }
.help { display: block; font-size: .72rem; color: #78716c; margin-top: .3rem; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; font-weight: 600; font-size: .875rem; border-radius: .75rem; padding: .7rem 1.1rem; min-height: 44px; transition: all .15s; white-space: nowrap; }
.btn:disabled { opacity: .55; pointer-events: none; }
.btn-primary { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; font-weight: 700; font-size: .875rem; border-radius: .75rem; padding: .75rem 1.2rem; min-height: 46px; background: #C82333; color: #fff; }
.btn-primary:hover { background: #A01B27; }
.btn-dark { background: #1c1917; color: #fff; } .btn-dark:hover { background: #292524; }
.btn-light { background: #fff; color: #292524; border: 1px solid #d6d3d1; } .btn-light:hover { background: #f5f5f4; }
.btn-green { background: #059669; color: #fff; } .btn-green:hover { background: #047857; }
.btn-danger-light { background: #fff; color: #b91c1c; border: 1px solid #fecaca; } .btn-danger-light:hover { background: #fef2f2; }
.btn-sm { min-height: 36px; padding: .45rem .8rem; font-size: .8rem; }
.icon-btn { width: 40px; height: 40px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; color: #57534e; background: #fff; border: 1px solid #e7e5e4; }
.icon-btn:hover { background: #f5f5f4; }
.card { background: #fff; border: 1px solid #e7e5e4; border-radius: 1rem; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.side-link { display: flex; align-items: center; gap: .6rem; padding: .6rem .8rem; border-radius: .6rem; font-size: .875rem; font-weight: 500; color: #d6d3d1; }
.side-link:hover { background: #292524; color: #fff; }
.side-link.active { background: #C82333; color: #fff; }
.side-sep { font-size: .65rem; text-transform: uppercase; letter-spacing: .12em; color: #78716c; padding: .9rem .8rem .3rem; }
.bn-item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 8px 2px 6px; font-size: 10px; font-weight: 600; color: #78716c; position: relative; }
.bn-item i { font-size: 18px; }
.bn-item.active { color: #C82333; }
.badge-dot { position: absolute; top: 4px; left: 50%; margin-left: 6px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: #C82333; color: #fff; font-size: 10px; display: flex; align-items: center; justify-content: center; }
.chip { display: inline-flex; align-items: center; gap: .35rem; padding: .45rem .85rem; border-radius: 999px; font-size: .8rem; font-weight: 600; background: #fff; border: 1px solid #e7e5e4; color: #57534e; white-space: nowrap; }
.chip.active { background: #1c1917; color: #fff; border-color: #1c1917; }
.status { display: inline-flex; align-items: center; gap: .3rem; font-size: .7rem; font-weight: 700; padding: .2rem .55rem; border-radius: 999px; }
.st-pending { background: #fef3c7; color: #92400e; } .st-confirmed { background: #d1fae5; color: #065f46; }
.st-rejected { background: #fee2e2; color: #991b1b; } .st-cancelled { background: #e7e5e4; color: #44403c; }
.switch { position: relative; width: 46px; height: 28px; flex-shrink: 0; }
.switch input { opacity: 0; width: 0; height: 0; }
.switch span { position: absolute; inset: 0; background: #d6d3d1; border-radius: 999px; transition: .2s; cursor: pointer; }
.switch span::before { content: ''; position: absolute; width: 22px; height: 22px; left: 3px; top: 3px; background: #fff; border-radius: 999px; transition: .2s; box-shadow: 0 1px 3px rgba(0,0,0,.25); }
.switch input:checked + span { background: #059669; }
.switch input:checked + span::before { transform: translateX(18px); }
.scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
.no-scrollbar::-webkit-scrollbar { display: none; } .no-scrollbar { scrollbar-width: none; }
/* Lap (mobilon alulról, asztalin középen) */
.sheet-backdrop { position: fixed; inset: 0; z-index: 60; background: rgba(28,25,23,.55); display: flex; align-items: flex-end; justify-content: center; animation: fade .15s; }
.sheet { background: #fff; width: 100%; max-height: 94vh; border-radius: 1.25rem 1.25rem 0 0; display: flex; flex-direction: column; animation: up .2s ease-out; }
@media (min-width: 768px) { .sheet-backdrop { align-items: center; padding: 1.5rem; } .sheet { max-width: 720px; border-radius: 1.25rem; max-height: 90vh; } .sheet.sheet-sm { max-width: 440px; } }
.sheet-body { overflow-y: auto; padding: 1.1rem 1.1rem 1.25rem; -webkit-overflow-scrolling: touch; }
.sheet-foot { border-top: 1px solid #e7e5e4; padding: .8rem 1.1rem calc(.8rem + env(safe-area-inset-bottom)); display: flex; gap: .5rem; flex-wrap: wrap; justify-content: flex-end; }
@keyframes up { from { transform: translateY(30px); opacity: 0 } to { transform: none; opacity: 1 } }
@keyframes fade { from { opacity: 0 } to { opacity: 1 } }
.toast { pointer-events: auto; background: #1c1917; color: #fff; padding: .7rem 1rem; border-radius: .8rem; font-size: .875rem; font-weight: 500; box-shadow: 0 10px 30px -10px rgba(0,0,0,.4); animation: up .2s; max-width: 420px; }
.toast.err { background: #b91c1c; }
/* Naptár idővonal */
.tl { display: grid; }
.tl-cell { height: 44px; border-right: 1px solid #f5f5f4; border-bottom: 1px solid #f5f5f4; }
.tl-head { font-size: 10px; text-align: center; color: #78716c; padding: 4px 0; border-bottom: 1px solid #e7e5e4; }
.tl-head.today { color: #C82333; font-weight: 700; }
.tl-head.we { background: #fafaf9; }
.tl-bar { position: absolute; top: 6px; height: 32px; border-radius: 8px; font-size: 11px; font-weight: 600; padding: 0 8px; display: flex; align-items: center; overflow: hidden; white-space: nowrap; cursor: pointer; }
.bar-confirmed { background: #059669; color: #fff; } .bar-pending { background: #fbbf24; color: #451a03; }
.thumb { background: #e7e5e4 center/cover no-repeat; }
.drop-hint { border: 2px dashed #d6d3d1; }
.drop-hint.over { border-color: #C82333; background: #fef2f2; }
