/* PIXOFT Güvenli Sevkiyat — okunabilir tipografi ve genişletilmiş yerleşim.
   9–12px sabit metinler kaynak stil dosyalarında büyütüldü.
   Bu dosya yalnızca tipografi yoğunluğunu, aralıkları ve responsive yerleşimi düzeltir. */

:root{font-synthesis:none}
html{font-size:18px}
body{font-size:18px;line-height:1.48;overflow-wrap:break-word}
button,input,select,textarea{line-height:1.36}
::placeholder{opacity:1}

/* Sol navigasyon: büyük metinler için rahat okuma ve dokunma alanları. */
.sidebar{width:300px}
.app-shell{margin-left:300px}
.brand{min-height:153px;height:153px;flex-basis:153px;gap:5px}
.brand-logo{width:258px;max-width:100%}
.brand-origin{font-weight:650;line-height:1.35}
.workspace-box{margin:13px 15px 21px;padding:14px 12px;gap:10px;align-items:center}
.workspace-box strong{line-height:1.3;white-space:normal}
.workspace-box small{line-height:1.4;margin-top:5px;white-space:normal}
.workspace-icon{padding:9px}
.workspace-icon svg{width:21px;height:21px}
.sidebar-scroll{padding:0 12px}
.side-group{margin:17px 0 24px}
.side-label{line-height:1.4;margin:0 12px 12px;letter-spacing:.11em}
.side-link{min-height:50px;gap:13px;padding:13px 13px;line-height:1.38;align-items:center}
.side-link svg{width:21px;height:21px}
.side-link .side-counter{margin-left:auto;min-width:31px;min-height:27px;height:auto;line-height:1.25;padding:5px 7px;border-radius:7px;flex:none}
.sidebar-bottom{padding:15px 13px 18px}
.side-status{padding:13px;align-items:flex-start}
.side-status b,.side-profile b{line-height:1.4}
.side-status small,.side-profile small{line-height:1.5;margin-top:5px}
.side-profile{gap:11px;align-items:flex-start}
.side-profile>span:nth-child(2){min-width:0;flex:1}
.avatar,.topbar-avatar{width:39px;height:39px;flex:none}

/* Üst bant, sayfa başlıkları ve genel aksiyonlar. */
.topbar{min-height:83px;height:auto;padding:15px 28px;gap:16px;flex-wrap:wrap}
.topbar-left,.topbar-right{min-width:0;gap:13px}
.crumb-base,.crumb-current{line-height:1.4}
.global-search{min-height:44px;height:auto;gap:10px;padding:9px 13px;min-width:260px}
.global-search kbd{line-height:1.25}
.icon-btn{width:44px;height:44px;flex:none}
.topbar-date{line-height:1.4}
.main-content{max-width:1810px;padding:31px 29px 49px}
.page-head{align-items:flex-start;gap:18px;flex-wrap:wrap}
.page-head h1{line-height:1.19;overflow-wrap:anywhere}
.page-head p{max-width:940px;line-height:1.58}
.eyebrow{line-height:1.4;letter-spacing:.085em}
.btn{min-height:43px;padding:11px 15px;line-height:1.35;white-space:normal;text-align:center}
.btn.sm{min-height:39px;padding:9px 13px}
.head-actions{min-width:0;max-width:100%}
input,textarea,select{min-height:43px}
.input-search input,.select{min-height:43px;line-height:1.4}

/* Panolar: satır taşmadan büyüyen başlıklar ve metin alanları. */
.kpi-grid,.dashboard-primary,.dashboard-secondary,.ops-kpi-grid{align-items:stretch}
.kpi-grid>*,
.dashboard-primary>*,
.dashboard-secondary>*,
.ops-kpi-grid>*{min-width:0}
.metric-card{min-height:185px;padding:23px}
.metric-label,.metric-foot,.metric-foot b{line-height:1.4;overflow-wrap:anywhere}
.metric-value{line-height:1.2}
.section-card-head{flex-wrap:wrap;gap:13px}
.section-card-head h2{line-height:1.32}
.section-card-head p{line-height:1.55}
.card-more{line-height:1.38;white-space:normal;text-align:right}
.map-toolbar{flex-wrap:wrap;gap:13px}
.toggle-row{flex-wrap:wrap}
.tiny-toggle{min-height:39px;line-height:1.34}
.map-filter-label,.map-foot{line-height:1.4}
.map-foot{flex-wrap:wrap}
.live-event-list{max-height:490px}
.live-event-item{gap:13px;padding:15px 7px;align-items:flex-start}
.live-event-title{line-height:1.45}
.live-event-meta{line-height:1.55}
.live-event-time{line-height:1.4}
.alert-item{padding:18px 5px;gap:13px}
.alert-text strong,.alert-text p{line-height:1.45}
.alert-time{line-height:1.4}
.legend-stack,.alert-text,.live-event-info{min-width:0}
.legend-row{gap:10px;line-height:1.42;align-items:flex-start}
.legend-row strong{white-space:nowrap}
.chart-stats{flex-wrap:wrap}
.bar-col span,.chart-legend{line-height:1.35}
.mini-note{line-height:1.6}
.app-footer{line-height:1.6;display:flow-root;padding:22px 0 27px}
.app-footer .footer-right{white-space:normal}

/* Tablolar: başlıklar belirgin, satırlar daha ferah, geniş tablolar yatay kaydırılabilir. */
.table-wrap,.gv-table-scroll{overflow-x:auto;scrollbar-width:thin}
.table-card{min-width:0}
table{font-variant-numeric:tabular-nums}
thead th{line-height:1.34;letter-spacing:.035em;padding:15px 18px}
tbody td{padding:17px 18px;line-height:1.42}
.plate,.subline{line-height:1.4}
.subline{margin-top:6px}
.status-pill{line-height:1.32;white-space:normal;gap:7px;padding:8px 11px}
.paging,.toolbar-count{line-height:1.45}
.paging{flex-wrap:wrap;gap:7px}
.toolbar{flex-wrap:wrap;gap:10px}
.td-action{min-width:37px;min-height:37px;width:auto;height:auto;padding:8px}
.td-action svg{width:18px;height:18px}

/* Olay detay ve kanıt: genişletilmiş yan çekmece. */
.drawer{width:min(715px,100vw)}
.drawer-head{padding:24px 28px;gap:17px}
.drawer-head h2{line-height:1.26;overflow-wrap:anywhere}
.drawer-head p,.drawer-head small{line-height:1.45}
.drawer-body{padding:26px 29px 48px}
.drawer-section{margin-bottom:30px}
.drawer-section h3{line-height:1.35;margin-bottom:16px}
.drawer-actions{gap:10px}
.detail-grid{gap:13px}
.detail-field{padding:16px;min-width:0}
.detail-field small,.detail-field strong{line-height:1.44;overflow-wrap:anywhere}
.detail-field small{margin-bottom:9px}
.timeline{margin-right:3px}
.time-item{gap:20px;padding-bottom:26px}
.time-content strong,.time-content p,.time-content small{line-height:1.5}
.evidence-caption{line-height:1.58}
.photo-details,.photo-thumb-bottom,.photo-thumb-top{line-height:1.45}
.drawer-foot{gap:12px}
.toast{max-width:min(440px,calc(100vw - 30px));line-height:1.45}

/* Genel yardımcı metinlerin kontrastını güçlendir. */
.page-head p,.section-card-head p,.metric-foot,.map-foot,.mini-note,
.alert-text p,.alert-time,.live-event-meta,.live-event-time,.subline,
.chart-legend,.chart-stats small,.detail-field small,.drawer-head p,
.evidence-caption,.app-footer,.gv-stat small,.gv-toolbar p,
.gv-table td small,.gv-association small,.gv-video-caption,
.gsi-video-message p,.gsi-video-disclaimer{
  color:#526b7f;
}

/* Canlı simülasyon, rota listeleri ve filtreler. */
.simulation-bar{gap:13px;padding:14px 16px;align-items:center}
.sim-status{line-height:1.4;padding:10px 12px;white-space:normal}
.sim-bar-hint,.sim-speed-label,.sim-clock{line-height:1.42}
.sim-clock{gap:9px;flex-wrap:wrap}
.sim-clock:before{letter-spacing:.04em}
.sim-speed-label select{min-height:42px;height:auto}
.simulation-bar .btn{height:auto;min-height:43px}
.live-feed-counter{line-height:1.4}
.live-feed-bottom{gap:13px}
.map-route-tools select{min-height:44px;height:auto}
.map-route-tools small{line-height:1.55}
.route-overview-head{gap:12px}
.route-overview-head strong,.route-overview-head small{line-height:1.45}
.route-preview{min-height:52px;gap:10px}
.route-preview b,.route-preview small{line-height:1.45}
.route-stop{gap:13px;padding:15px 0}
.route-stop-index{width:34px;height:34px}
.route-stop:not(:last-child):after{left:16px;top:35px}
.route-stop-name b,.route-stop-name small{line-height:1.46}
.route-location strong,.route-location small{line-height:1.45}
.route-sidebar-actions{gap:9px}
.route-sidebar-actions .btn{min-height:43px;padding:10px 13px}

/* Profesyonel GIS: 337px'lik eski inceleme panelinde artık 14–18px metinler kullanılabilir. */
.ops-page-heading p{line-height:1.58}
.ops-page-actions .btn{height:auto;min-height:43px;padding:10px 13px}
.ops-demo-flag{white-space:normal;line-height:1.45}
.ops-kpi{min-height:95px;gap:14px;padding:17px}
.ops-kpi-text{gap:6px}
.ops-kpi-text strong{line-height:1.17}
.ops-kpi-text>span,.ops-kpi>small{white-space:normal;line-height:1.35}
.ops-workspace-body{grid-template-columns:minmax(0,1fr) 398px}
.ops-stage-heading{height:auto;min-height:78px;padding:13px 16px;flex-wrap:wrap;gap:12px}
.ops-stage-title{gap:12px}
.ops-stage-title strong,.ops-stage-title small{line-height:1.38}
.ops-view-tabs{flex-wrap:wrap;gap:5px}
.ops-view-tabs button{line-height:1.35;padding:10px 12px;white-space:normal;min-height:39px}
.ops-floating-search{width:min(386px,calc(100% - 110px))}
.ops-floating-search label{height:auto;min-height:51px;padding:10px 13px}
.ops-floating-search input{min-height:30px;line-height:1.4}
.ops-floating-search kbd{font:700 14px Inter,sans-serif}
.ops-search-results{max-height:410px}
.ops-search-result{padding:13px 10px}
.ops-search-result strong,.ops-search-result small{line-height:1.4}
.ops-viewport-status{max-width:calc(100% - 115px);line-height:1.4;flex-wrap:wrap}
.ops-map-legend{gap:10px 15px;padding:12px 14px}
.ops-map-legend>span{line-height:1.35;white-space:normal}
.ops-viewport-bottom{flex-wrap:wrap}
.ops-cursor-position{line-height:1.35}
.ops-stage-footer{min-height:50px;gap:12px;flex-wrap:wrap;line-height:1.4}
.ops-inspector-heading,.ops-inspector-tabs{min-width:0}
.ops-inspector-tabs{flex-wrap:wrap}
.ops-inspector-tabs button{min-height:39px;line-height:1.35}
.ops-inspector-section-heading{line-height:1.4}
.ops-inspector-content{overflow-y:auto}
.ops-quick-vehicle strong,.ops-quick-vehicle small{line-height:1.45}
.ops-safety-hint,.ops-empty-selection p{line-height:1.55}
.ops-hero-heading small,.ops-selected-stats small,.ops-selected-stats em{line-height:1.4}
.ops-timeline-text strong,.ops-timeline-text small{line-height:1.45}
.ops-minor-action,.ops-inspector-link{line-height:1.4}
.ops-event-info strong,.ops-event-info small,.ops-event-info>span{line-height:1.42}
.ops-layer-info strong,.ops-layer-info small{line-height:1.45}
.ops-event-focus-card{padding:17px}
.ops-event-focus-heading strong,.ops-event-focus-heading small{line-height:1.43}
.ops-event-focus-eyebrow{flex-wrap:wrap;gap:10px}
.ops-event-focus-meta{line-height:1.4;flex-wrap:wrap}
.ops-event-focus-buttons{flex-wrap:wrap;gap:9px}
.ops-event-focus-buttons button{flex:1 1 160px;min-height:44px;line-height:1.35;padding:10px 9px}
.ops-event-coordinate>strong{line-height:1.4;overflow-wrap:anywhere}
.ops-event-map-key{gap:9px 14px}
.ops-event-map-key>span{white-space:normal;line-height:1.4}
.ops-event-synthetic-note,.ops-event-focus-note{line-height:1.55}
.ops-route-incident-item{gap:13px;padding:14px 4px}
.ops-route-incident-num{width:34px;height:34px}
.ops-route-incident-main strong,.ops-route-incident-main small{line-height:1.45}
.ops-route-event-caption{line-height:1.43}
.ops-workspace-bottom{min-height:50px;height:auto;line-height:1.4;flex-wrap:wrap}
.gsu-incident-preview .maplibregl-popup-content{max-width:min(320px,calc(100vw - 30px))}
.gsu-preview-card{width:300px;max-width:100%}
.gsu-preview-top{gap:11px;padding:12px 13px 5px;line-height:1.4}
.gsu-preview-top span{line-height:1.3}
.gsu-preview-plate,.gsu-preview-meta,.gsu-preview-note{line-height:1.42;padding-left:13px;padding-right:13px}
.gsu-preview-photo img{height:150px}
.gsu-preview-empty{min-height:75px;height:auto;padding:12px;line-height:1.4}
.maplibregl-popup-content{line-height:1.45}
.maplibregl-ctrl-attrib{line-height:1.3!important}

/* Video aktarım merkezi ve 10 saniyelik olay klipleri. */
.gv-login,.gv-login-info{padding:32px}
.gv-login p,.gv-login>small{line-height:1.62}
.gv-login form{gap:14px}
.gv-login input,.gv-form input:not([type=file]),.gv-form select,
.gv-toolbar-actions input{height:auto;min-height:47px;padding:11px 13px;line-height:1.4}
.gv-policy-box{padding:20px 10px;min-width:95px}
.gv-policy-box span,.gv-policy-total span{line-height:1.4}
.gv-policy-total{min-width:87px}
.gv-banner p{line-height:1.58}
.gv-toolbar{gap:16px}
.gv-toolbar p,.gv-panel-top p{line-height:1.5}
.gv-toolbar-actions{gap:11px}
.gv-toolbar-actions input{width:260px}
.gv-toolbar-actions button{height:auto;min-height:44px;line-height:1.35}
.gv-form{gap:19px 23px}
.gv-file-label{gap:11px}
.gv-file-label small,.gv-upload-footer span{line-height:1.55}
.gv-stat{min-width:0}
.gv-stat span,.gv-stat small{line-height:1.45}
.gv-table{min-width:790px;white-space:normal}
.gv-table td,.gv-table td b,.gv-table td small{line-height:1.45}
.gv-table td small{overflow-wrap:anywhere}
.gv-pill{line-height:1.38;white-space:normal;text-align:center}
.gv-message,.gv-empty p,.gv-video-caption{line-height:1.55}
.gv-video-header small{line-height:1.42}
.gv-association{gap:13px}
.gv-association strong,.gv-association small{line-height:1.5}
.gsi-video-section{margin:28px 0 32px}
.gsi-video-heading{flex-wrap:wrap}
.gsi-video-heading h3,.gsi-video-heading>span{line-height:1.45}
.gsi-video-state{padding:18px}
.gsi-video-message-title,.gsi-video-message p{line-height:1.5}
.gsi-video-meta{gap:9px}
.gsi-video-meta>span{line-height:1.4}
.gsi-video-actions{gap:10px}
.gsi-video-actions .btn{min-height:42px}

/* Ekran daraldığında panelleri tek kolona al; büyük yazı kesilmesin. */
@media(max-width:1500px){
 .dashboard-primary,.dashboard-secondary{grid-template-columns:1fr}
 .ops-workspace-body{grid-template-columns:minmax(0,1fr) 370px}
 .gv-stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1350px){
 .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ops-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ops-workspace-body{grid-template-columns:minmax(0,1fr) 345px}
 .ops-kpi>small{display:block}
}
@media(max-width:1180px){
 .sidebar{width:274px}
 .app-shell{margin-left:274px}
 .brand{min-height:143px;height:143px;flex-basis:143px}
 .brand-logo{width:235px}
 .workspace-box{margin-left:12px;margin-right:12px;padding:12px 10px}
 .main-content{padding:26px 21px 41px}
 .topbar{padding:13px 21px;gap:11px}
 .global-search{min-width:180px}
 .ops-workspace-body{grid-template-columns:minmax(0,1fr) 330px}
 .ops-viewport-status{max-width:55%}
}
@media(max-width:980px){
 .sidebar{width:min(315px,90vw)}
 .app-shell{margin-left:0}
 .brand{min-height:146px;height:146px;flex-basis:146px}
 .brand-logo{width:258px}
 .ops-workspace-body{display:flex;flex-direction:column}
 .ops-inspector{max-height:none}
 .ops-inspector-content{max-height:none}
 .ops-viewport{height:clamp(510px,60vh,700px)}
 .ops-floating-search{width:min(400px,calc(100% - 115px))}
 .ops-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .gv-login-wrap{grid-template-columns:1fr}
}
@media(max-width:650px){
 body{font-size:17px}
 .topbar{min-height:70px;padding:11px 14px;flex-wrap:nowrap}
 .topbar-right{gap:8px}
 .global-search{min-width:44px;width:44px;min-height:44px;padding:0;justify-content:center}
 .main-content{padding:20px 12px 30px}
 .page-head{gap:13px}
 .page-head h1{line-height:1.2}
 .kpi-grid{gap:11px}
 .metric-card{min-height:164px;padding:15px}
 .metric-value{overflow-wrap:anywhere}
 .section-card-head{padding:17px}
 .map-canvas{height:360px}
 .drawer-body{padding:20px 16px 35px}
 .drawer-head{padding:18px 17px}
 .detail-grid{grid-template-columns:1fr}
 .detail-field{padding:14px}
 .gv-login,.gv-login-info{padding:20px}
 .gv-policy{flex-wrap:wrap;justify-content:center}
 .gv-policy-box{min-width:85px}
 .gv-toolbar-actions{width:100%}
 .gv-toolbar-actions input{width:100%}
 .gv-upload-panel{padding:16px}
 .gv-table{min-width:735px}
 .ops-page-actions{flex-wrap:wrap;gap:9px}
 .ops-page-actions .btn{height:auto;min-height:43px}
 .ops-demo-flag{line-height:1.45;padding:10px}
 .ops-stage-heading{min-height:76px;padding:13px}
 .ops-stage-title{flex:1}
 .ops-view-tabs{width:100%}
 .ops-view-tabs button{flex:1;justify-content:center}
 .ops-kpi{min-height:92px;padding:13px}
 .ops-kpi-text>span{white-space:normal}
 .ops-floating-search{width:calc(100% - 78px);left:11px;top:11px}
 .ops-floating-tools{right:11px}
 .ops-viewport-status{top:69px;right:12px;max-width:calc(100% - 24px)}
 .ops-viewport-bottom{left:11px;right:11px;bottom:11px}
 .ops-map-legend{gap:8px}
 .ops-map-legend>span{white-space:normal}
 .ops-event-focus-card{padding:13px}
 .ops-inspector-content{padding:15px}
 .gsu-preview-card{width:270px}
 .app-footer{margin-left:12px;margin-right:12px}
}
@media(max-width:400px){
 .kpi-grid{grid-template-columns:1fr}
 .gv-stat-row{grid-template-columns:1fr 1fr}
 .ops-kpi-grid{grid-template-columns:1fr 1fr}
 .ops-view-tabs{flex-wrap:wrap}
 .ops-view-tabs button{flex:1 1 90px}
 .topbar-right .notify-btn{display:none}
}

/* Dynamic report and vehicle footnote lines are readable and selectable. */
.report-disclaimer{padding:0 22px 22px;color:#526b7f;font-size:15px;line-height:1.6}
.detail-demo-note{font-size:14px;color:#526b7f;line-height:1.5}

/* Playwright visual QA: avoid double-height topbar at laptop widths. */
@media(min-width:651px){
 .topbar{flex-wrap:nowrap}
 .topbar-left{flex:1 1 auto}
 .topbar-right{flex:0 0 auto}
 .global-search{width:315px;min-width:260px;max-width:100%}
}
@media(min-width:651px) and (max-width:1450px){
 .topbar-date{display:none}
 .global-search{width:305px}
}
/* Four GIS status counters: do not squeeze a third text column into small tiles. */
@media(max-width:1350px){
 .ops-kpi>small{display:none}
}
@media(max-width:650px){
 .ops-kpi{
  display:grid;
  grid-template-columns:minmax(0,1fr) 36px;
  grid-template-rows:auto 1fr;
  align-items:start;
  min-height:122px;
  gap:8px;
  padding:14px;
 }
 .ops-kpi-icon{grid-column:2;grid-row:1;width:36px;height:36px}
 .ops-kpi-text{grid-column:1;grid-row:1/span 2;min-width:0;align-self:start;gap:8px}
 .ops-kpi-text strong{font-size:30px;white-space:nowrap}
 .ops-kpi-text>span{white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:none;line-height:1.36}
 .ops-kpi>small{display:none}
}

/* Search control stays in one line on laptops; collapses to icon when needed. */
@media(min-width:651px){
 .global-search{width:355px;min-width:355px;white-space:nowrap;flex-shrink:0}
 .global-search>span:nth-child(2){white-space:nowrap}
 .global-search kbd{flex-shrink:0;white-space:nowrap}
}
@media(min-width:651px) and (max-width:1150px){
 .global-search{width:44px;min-width:44px;min-height:44px;padding:0;justify-content:center}
 .global-search span:not(:first-child),.global-search kbd{display:none}
}
