:root{--bg: #0f1117;--surface: #181c27;--surface2: #1e2333;--border: #2a3045;--accent: #4f8eff;--accent2: #ff6b35;--accent3: #34c98a;--warn: #ffb547;--danger: #ff4757;--text: #e8eaf0;--text2: #8b92a8;--text3: #4a5270;--mono: "DM Mono", monospace;--sans: "DM Sans", sans-serif;--display: "Syne", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);min-height:100vh;overflow-x:hidden}.app{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:transform .3s ease}.sidebar-logo{padding:24px 20px 20px;border-bottom:1px solid var(--border)}.logo-mark{font-family:var(--display);font-weight:800;font-size:20px;color:var(--accent);letter-spacing:-.5px}.logo-sub{font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:1.5px;text-transform:uppercase;margin-top:2px}.sidebar-vehicles{padding:16px 12px;border-bottom:1px solid var(--border)}.sidebar-section-label{font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:2px;text-transform:uppercase;padding:0 8px;margin-bottom:8px}.vehicle-chip{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;transition:background .15s;margin-bottom:4px}.vehicle-chip:hover,.vehicle-chip.active{background:var(--surface2)}.vehicle-chip.active{border-left:2px solid var(--accent);padding-left:8px}.vehicle-icon{width:28px;height:28px;background:var(--surface2);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.vehicle-info{flex:1;min-width:0}.vehicle-name{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vehicle-plate{font-family:var(--mono);font-size:10px;color:var(--text3)}.vehicle-status{width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-ok{background:var(--accent3)}.status-warn{background:var(--warn)}.add-vehicle-btn{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer;color:var(--text3);font-size:12px;transition:all .15s;margin-top:4px;border:1px dashed var(--border)}.add-vehicle-btn:hover{border-color:var(--accent);color:var(--accent)}.sidebar-nav{padding:12px;flex:1;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text2);transition:all .15s;margin-bottom:2px;position:relative}.nav-item:hover{background:var(--surface2);color:var(--text)}.nav-item.active{background:#4f8eff1f;color:var(--accent);font-weight:600}.nav-icon{font-size:15px;width:20px;text-align:center;flex-shrink:0}.nav-badge{margin-left:auto;background:var(--danger);color:#fff;font-family:var(--mono);font-size:9px;padding:2px 5px;border-radius:10px;font-weight:500}.nav-badge.warn{background:var(--warn);color:#1a1000}.nav-badge.ok{background:var(--accent3);color:#001a10}.main{margin-left:220px;flex:1;display:flex;flex-direction:column;min-height:100vh}.topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:env(safe-area-inset-top) 24px 0;height:calc(56px + env(safe-area-inset-top));display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:50}.topbar-title{font-family:var(--display);font-weight:700;font-size:16px;flex:1}.hamburger{display:none;background:none;border:none;color:var(--text);font-size:20px;cursor:pointer;padding:4px}.topbar-actions{display:flex;gap:8px;align-items:center}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;border:none;transition:all .15s;font-family:var(--sans)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#3a7aee}.btn-ghost{background:transparent;color:var(--text2);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.btn-scan{background:#4f8eff26;color:var(--accent);border:1px solid rgba(79,142,255,.3)}.btn-scan:hover{background:#4f8eff40}.alert-bell{position:relative;cursor:pointer;padding:8px;border-radius:8px;transition:background .15s;font-size:18px}.alert-bell:hover{background:var(--surface2)}.bell-dot{position:absolute;top:6px;right:6px;width:8px;height:8px;background:var(--danger);border-radius:50%;border:2px solid var(--surface)}.page{padding:24px;display:none;animation:fadeIn .2s ease}.page.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-title{font-family:var(--display);font-weight:700;font-size:14px;color:var(--text);display:flex;align-items:center;gap:8px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.grid-6{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.doc-grid{display:flex;flex-direction:row;gap:8px;margin-top:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px}.doc-grid::-webkit-scrollbar{display:none}.doc-grid .doc-chip{flex:0 0 auto;min-width:90px;max-width:110px}@media (min-width: 1024px){.doc-grid{display:grid;grid-template-columns:repeat(6,1fr);overflow-x:visible}.doc-grid .doc-chip{flex:unset;min-width:0;max-width:none;width:100%}}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:8px}.stat-label{font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:1px;text-transform:uppercase}.stat-value{font-family:var(--display);font-size:26px;font-weight:800;line-height:1}.stat-sub{font-size:11px;color:var(--text2)}.stat-ok{color:var(--accent3)}.stat-warn{color:var(--warn)}.stat-danger{color:var(--danger)}.vehicle-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px;position:relative;overflow:hidden}.vehicle-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent2))}.vehicle-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.vehicle-photo{width:64px;height:48px;background:var(--surface2);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0}.vehicle-details{flex:1;margin:0 16px}.vehicle-make{font-family:var(--display);font-weight:700;font-size:18px}.vehicle-meta{font-family:var(--mono);font-size:11px;color:var(--text3);margin-top:3px}.km-display{text-align:right;min-width:120px}.km-value{font-family:var(--mono);font-size:24px;font-weight:800;color:var(--accent);line-height:1}.km-label{font-size:10px;color:var(--text3);font-family:var(--mono)}.vehicle-vin-line{margin-top:8px;font-size:11px;color:var(--text3);font-family:var(--mono)}.tech-details-container{padding:0 20px 20px}.tech-details-toggle{font-size:11px;color:var(--accent);cursor:pointer;display:flex;align-items:center;gap:6px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;transition:opacity .2s;-webkit-user-select:none;user-select:none}.tech-details-toggle:hover{opacity:.8}.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border);animation:fadeIn .3s ease}.tech-item{display:flex;flex-direction:column;gap:4px}.tech-label{font-family:var(--mono);font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px}.tech-value{font-size:12px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-chip{background:var(--surface2);border-radius:8px;padding:10px 12px;cursor:pointer;transition:all .15s;border:1px solid transparent}.doc-chip:hover{border-color:var(--accent)}.doc-chip.expired{border-color:var(--danger);background:#ff475714}.doc-chip.expiring{border-color:var(--warn);background:#ffb54714}.doc-chip.ok{border-color:#34c98a33}.doc-chip-label{font-size:10px;color:var(--text3);font-family:var(--mono);margin-bottom:4px}.doc-chip-date{font-size:12px;font-weight:600}.doc-chip-days{font-size:10px;margin-top:2px}.expired .doc-chip-date{color:var(--danger)}.expiring .doc-chip-date{color:var(--warn)}.ok .doc-chip-date{color:var(--accent3)}.alert-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:8px;margin-bottom:6px;cursor:pointer;transition:all .15s}.alert-item:hover{background:var(--surface2)}.alert-item.danger{background:#ff47570f;border:1px solid rgba(255,71,87,.15)}.alert-item.warn{background:#ffb5470f;border:1px solid rgba(255,181,71,.15)}.alert-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.alert-dot.danger{background:var(--danger)}.alert-dot.warn{background:var(--warn)}.alert-text{flex:1}.alert-title{font-size:13px;font-weight:500}.alert-sub{font-size:11px;color:var(--text3);margin-top:2px}.alert-days{font-family:var(--mono);font-size:11px;padding:3px 8px;border-radius:10px}.danger .alert-days{background:#ff475726;color:var(--danger)}.warn .alert-days{background:#ffb54726;color:var(--warn)}.timeline{position:relative;padding-left:28px}.timeline:before{content:"";position:absolute;left:9px;top:0;bottom:0;width:2px;background:var(--border)}.timeline-item{position:relative;margin-bottom:20px;cursor:pointer;transition:all .15s}.timeline-dot{position:absolute;left:-23px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid var(--bg);z-index:1}.timeline-dot.service{background:var(--accent3)}.timeline-dot.repair{background:var(--accent2)}.timeline-dot.doc{background:var(--accent)}.timeline-card{background:var(--surface2);border-radius:8px;padding:12px 14px;border:1px solid var(--border);transition:border-color .15s}.timeline-item:hover .timeline-card{border-color:var(--accent)}.timeline-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.timeline-type{font-family:var(--mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;padding:2px 7px;border-radius:4px}.type-service{background:#34c98a26;color:var(--accent3)}.type-repair{background:#ff6b3526;color:var(--accent2)}.type-doc{background:#4f8eff26;color:var(--accent)}.type-tire{background:#8b92a826;color:var(--text2)}.timeline-date{font-family:var(--mono);font-size:11px;color:var(--text3)}.timeline-title{font-size:13px;font-weight:600;margin-bottom:4px}.timeline-desc{font-size:12px;color:var(--text2)}.timeline-km{font-family:var(--mono);font-size:11px;color:var(--text3);margin-top:6px}.modal-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:200;align-items:center;justify-content:center;padding:20px;transition:all .3s ease}.modal-overlay.open{display:flex}.modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:28px;width:100%;max-width:440px;max-height:calc(100vh - 40px);overflow-y:auto;position:relative;animation:slideUp .25s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-title{font-family:var(--display);font-weight:700;font-size:18px;margin-bottom:6px}.modal-sub{font-size:13px;color:var(--text2);margin-bottom:24px}.scan-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.scan-option{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:16px;text-align:center;cursor:pointer;transition:all .15s}.scan-option:hover{border-color:var(--accent);background:#4f8eff0f}.scan-option.active{border-color:var(--accent);background:#4f8eff1a}.scan-option-icon{font-size:24px;margin-bottom:8px}.scan-option-label{font-size:12px;font-weight:600}.scan-option-sub{font-size:11px;color:var(--text3);margin-top:3px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;position:sticky;bottom:-28px;background:var(--surface);margin:20px -28px -28px;padding:16px 28px;padding-bottom:calc(28px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);z-index:10}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.form-label{font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:1px;text-transform:uppercase}.form-input{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:9px 12px;color:var(--text);font-family:var(--sans);font-size:13px;transition:border-color .15s;outline:none}@media (max-width: 768px){.form-input{font-size:16px}}.form-input:focus{border-color:var(--accent)}.form-input::placeholder{color:var(--text3)}.tire-diagram{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:12px;max-width:300px;margin:0 auto 20px}.tire-slot{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:14px;text-align:center;cursor:pointer;transition:all .15s}.tire-slot:hover{border-color:var(--accent)}.tire-slot.mounted{border-color:#34c98a4d}.tire-pos{font-family:var(--mono);font-size:9px;color:var(--text3);margin-bottom:6px}.tire-emoji{font-size:22px;margin-bottom:4px}.tire-size{font-family:var(--mono);font-size:11px;color:var(--accent)}.tire-brand{font-size:11px;color:var(--text2);margin-top:2px}.km-strip{display:flex;align-items:center;gap:12px;background:var(--surface2);border-radius:10px;padding:14px 16px;margin-bottom:16px;border:1px solid var(--border)}.km-photo-thumb{width:56px;height:40px;background:var(--surface);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:18px;border:1px solid var(--border);flex-shrink:0}.km-strip-info{flex:1}.km-strip-value{font-family:var(--mono);font-size:18px;font-weight:500;color:var(--accent3)}.km-strip-meta{font-size:11px;color:var(--text3);margin-top:2px}.tabs{display:flex;gap:4px;background:var(--surface2);padding:4px;border-radius:10px;margin-bottom:20px}.tab{flex:1;padding:8px 12px;text-align:center;font-size:12px;font-weight:600;cursor:pointer;border-radius:7px;color:var(--text2);transition:all .15s}.tab.active{background:var(--surface);color:var(--accent);box-shadow:0 1px 4px #0000004d}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:99}.sidebar-overlay.open{display:block}.empty-state{text-align:center;padding:48px 24px;color:var(--text3)}.empty-icon{font-size:48px;margin-bottom:12px}.empty-title{font-family:var(--display);font-weight:700;font-size:18px;color:var(--text2);margin-bottom:8px}.empty-sub{font-size:13px;line-height:1.6}.section-divider{height:1px;background:var(--border);margin:20px 0}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.empty-dashboard-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:60vh;color:var(--text2);text-align:center;padding:20px}.empty-dashboard-icon{font-size:48px;margin-bottom:20px}.empty-dashboard-title{color:var(--text1);margin-bottom:8px}.empty-dashboard-sub{max-width:400px;font-size:14px;line-height:1.5}.mt-16{margin-top:16px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.text-center{text-align:center}.p-24{padding:24px}.p-40{padding:40px}.flex-center{display:flex;align-items:center;justify-content:center}.tag{display:inline-block;font-family:var(--mono);font-size:10px;padding:3px 8px;border-radius:4px;letter-spacing:.5px}.tag-blue{background:#4f8eff1f;color:var(--accent)}.tag-green{background:#34c98a1f;color:var(--accent3)}.tag-orange{background:#ff6b351f;color:var(--accent2)}.tag-gray{background:#8b92a81f;color:var(--text2)}.wireframe-note{background:#ffb5470f;border:1px dashed rgba(255,181,71,.3);border-radius:8px;padding:8px 12px;font-size:11px;color:var(--warn);margin-bottom:16px;font-family:var(--mono)}.propagation-preview{margin:16px 0;background:#4f8eff0d;border-left:2px solid var(--accent);padding:12px 16px;border-radius:4px 8px 8px 4px}.propagation-title{font-family:var(--display);font-weight:600;font-size:13px;margin-bottom:12px}.propagation-item{display:flex;align-items:center;gap:12px;font-size:13px;margin-bottom:8px}.propagation-item:last-child{margin-bottom:0}.propagation-arrow{color:var(--accent)}.propagation-value{margin-left:auto;font-family:var(--mono)}.scan-processing{margin:20px 0;padding:24px;background:#4f8eff0d;border-radius:12px;border:1px dashed var(--accent);text-align:center}.scan-progress-bar{height:4px;background:var(--surface2);border-radius:2px;margin:16px 0;overflow:hidden;position:relative}.scan-progress-fill{position:absolute;top:0;left:0;height:100%;background:var(--accent);animation:scanProgress 2s linear forwards}@keyframes scanProgress{0%{width:0}to{width:100%}}.onboarding-selection{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.select-method-card{padding:16px;background:var(--surface2);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:16px}.select-method-card:hover{border-color:var(--accent);background:#4f8eff0d;transform:translateY(-2px)}.method-icon{width:44px;height:44px;background:var(--surface);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;border:1px solid var(--border)}.method-info{flex:1}.method-title{font-weight:600;font-size:14px;color:var(--text)}.method-sub{font-size:11px;color:var(--text3);margin-top:2px}.preview-field{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}.preview-field:last-child{border-bottom:none}.preview-label{font-size:11px;color:var(--text3);font-family:var(--mono);text-transform:uppercase}.preview-value{font-size:13px;font-weight:600;color:var(--text)}@media (max-width: 768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main{margin-left:0}.hamburger{display:none}.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr 1fr}.grid-2,.form-row{grid-template-columns:1fr}.scan-options{grid-template-columns:1fr 1fr}.topbar-title{font-size:14px}.page{padding:16px}.main{padding-bottom:calc(64px + env(safe-area-inset-bottom))}.btn-scan-topbar{display:none}.bottom-nav{display:flex!important}.modal-overlay{padding:0;background:#000}.modal{border-radius:0;max-height:100dvh!important;height:100dvh;width:100%!important;border:none;display:flex;flex-direction:column;overflow-y:auto}}@media (max-width: 480px){.grid-3{grid-template-columns:1fr}.tabs{flex-wrap:wrap}.grid-4{grid-template-columns:1fr 1fr}.stat-card{padding:12px;min-width:0}.stat-card .stat-value{font-size:clamp(16px,5vw,28px);word-break:break-word}.stat-card .stat-label{font-size:10px}}body,.sidebar,.main{padding-bottom:env(safe-area-inset-bottom)}.page{overflow-x:hidden;max-width:100vw}@media (max-width: 768px){table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}.grid-3{grid-template-columns:1fr}}.print-report{display:none}@media print{.print-report{display:block!important}#page-export>*:not(.print-report){display:none!important}.sidebar,.topbar,.btn,.hamburger,.wireframe-note,.modal-overlay,.tabs,.sidebar-overlay{display:none!important}.main{margin-left:0!important;background:#fff!important;color:#000!important;width:100%!important}.page{padding:0!important;display:block!important}.card{border:1px solid #000!important;background:#fff!important;color:#000!important;margin-bottom:20px!important;break-inside:avoid}.card-title{color:#000!important;border-bottom:1px solid #000!important;padding-bottom:8px!important;text-transform:uppercase}body{background:#fff!important;color:#000!important}*{color:#000!important;border-color:#000!important;box-shadow:none!important;text-shadow:none!important}.tag,.doc-chip,.timeline-card{border:1px solid #000!important;background:transparent!important}}.sidebar-scan-cta{display:flex;align-items:center;gap:8px;padding:10px 14px;margin:8px 12px 12px;background:var(--accent);color:#fff;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:none;width:calc(100% - 24px);transition:background .15s;font-family:var(--sans);letter-spacing:.2px}.sidebar-scan-cta:hover{background:#3a7aee}.sidebar-nav-footer{padding:8px 12px 16px;border-top:1px solid var(--border);margin-top:auto}.sidebar-nav-footer .nav-item{color:var(--text3);font-size:12px}.sidebar-nav-footer .nav-item:hover{color:var(--text2);background:var(--surface2)}.revizie-subpanou{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-top:8px;margin-bottom:4px}.revizie-row{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px}.revizie-row:last-of-type{margin-bottom:0}
