@font-face { font-family:"Geist"; src:url(/vendor/geist/geist-latin-wght-normal.woff2) format("woff2"); font-weight:100 900; font-display:swap; unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2190-2193; }
@font-face { font-family:"Geist"; src:url(/vendor/geist/geist-latin-ext-wght-normal.woff2) format("woff2"); font-weight:100 900; font-display:swap; unicode-range:U+0100-02AF,U+1E00-1EFF; }
:root {
  --ink:#17171a; --ink2:#5f6068; --ink3:#8b8c94; --line:#e8e8ec; --bg:#f7f7f8; --surface:#fff; --side:#121214; --accent:#17171a;
  --tblr-font-sans-serif:"Geist",system-ui,sans-serif; --tblr-body-font-family:"Geist",system-ui,sans-serif; --tblr-body-font-size:14px; --tblr-body-color:var(--ink); --tblr-bg-surface:#fff; --tblr-body-bg:var(--bg); --tblr-border-color:var(--line); --tblr-primary:#17171a; --tblr-primary-rgb:23,23,26; --tblr-link-color:#17171a; --tblr-link-color-rgb:23,23,26; --tblr-border-radius:8px; --tblr-secondary:#5f6068;
}
[hidden] { display:none !important; }
body { background:var(--bg); color:var(--ink); font-family:"Geist",system-ui,sans-serif; font-size:14px; font-feature-settings:"tnum"; -webkit-font-smoothing:antialiased; }
a { color:var(--ink); }
.text-secondary { color:var(--ink2) !important; }

/* Iskelet */
.shell { display:grid; grid-template-columns:232px minmax(0,1fr); min-height:100dvh; }
.sidebar { background:var(--side); color:#fff; position:sticky; top:0; height:100dvh; padding:16px 12px; flex-direction:column; }
.side-brand { display:flex; align-items:center; gap:10px; padding:6px 8px 20px; color:#fff; font-weight:600; font-size:15px; letter-spacing:-.01em; text-decoration:none; }
.side-brand:hover { color:#fff; text-decoration:none; }
.logo { width:26px; height:26px; border-radius:7px; background:#fff; color:#121214; display:grid; place-items:center; font-size:16px; }
.side-label { font-size:11px; color:#77777f; padding:14px 10px 6px; }
.side-link { display:flex; align-items:center; gap:10px; padding:7px 10px; margin-bottom:2px; border-radius:7px; color:#b4b4bb; font-weight:500; text-decoration:none; transition:background .15s,color .15s; }
.side-link i { font-size:17px; }
.side-link:hover { background:#1e1e21; color:#fff; text-decoration:none; }
.side-link.active { background:#26262a; color:#fff; }
.side-foot { margin-top:auto; display:flex; align-items:center; gap:10px; padding:10px 8px 2px; border-top:1px solid #26262a; }
.side-foot .who { min-width:0; flex:1; line-height:1.25; font-size:13px; } .side-foot small { color:#77777f; display:block; }
.side-foot button { background:none; border:0; color:#8b8c94; padding:6px; border-radius:6px; font-size:17px; line-height:1; } .side-foot button:hover { background:#26262a; color:#fff; }
.initials { width:28px; height:28px; flex:none; border-radius:50%; background:#eeeef1; color:#3a3a40; display:inline-grid; place-items:center; font-size:11px; font-weight:600; }
.side-foot .initials { background:#2c2c31; color:#ddd; }
.topbar { height:56px; display:flex; align-items:center; gap:12px; padding:0 28px; background:var(--surface); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:5; }
.topsearch { position:relative; flex:1; min-width:0; max-width:440px; margin:0; } .topsearch i { position:absolute; left:10px; top:9px; color:var(--ink3); font-size:16px; }
.topsearch input { padding-left:32px; background:var(--bg); }
.menu-btn { display:none; background:none; border:0; font-size:22px; padding:4px; line-height:1; }
.content { padding:28px; max-width:1240px; width:100%; margin:0 auto; }
.public-top { display:flex; align-items:center; gap:10px; padding:16px 20px; font-weight:600; background:var(--surface); border-bottom:1px solid var(--line); }
.public-top .logo { background:var(--ink); color:#fff; }
.public-body { padding:24px 16px 60px; }

/* Baslik */
.page-header { margin:0 0 20px !important; }
.page-pretitle { text-transform:none; letter-spacing:0; font-size:13px; color:var(--ink2); font-weight:400; margin-bottom:2px; }
.page-title { font-size:22px; font-weight:600; letter-spacing:-.02em; line-height:1.25; color:var(--ink); }
.plate { font-weight:600; letter-spacing:.02em; }

/* Kart ve tablo */
.card { background:var(--surface); border:1px solid var(--line); border-radius:10px; box-shadow:none; }
.card-header { padding:14px 18px; min-height:0; background:none; border-bottom:1px solid var(--line); }
.card-title { font-size:14px; font-weight:600; margin:0; color:var(--ink); }
.card-body { padding:18px; } .card-footer { padding:12px 18px; background:#fbfbfc; border-top:1px solid var(--line); border-radius:0 0 10px 10px; }
.card-table th,.table thead th { background:none; font-size:12px; font-weight:500; color:var(--ink2); text-transform:none; letter-spacing:0; padding:10px 18px; border-bottom:1px solid var(--line); white-space:nowrap; }
.card-table td,.table td { padding:11px 18px; border-color:#f0f0f3; vertical-align:middle; }
.table-hover tbody tr:hover>* { --tblr-table-accent-bg:#fafafb; background:#fafafb; }
.card-table a,.table td a { font-weight:500; text-decoration:none; } .table td a:hover { text-decoration:underline; }
.who-cell { display:flex; align-items:center; gap:10px; white-space:nowrap; }
.kpi { font-size:13px; color:var(--ink2); } .kpi b { display:block; font-size:26px; font-weight:600; letter-spacing:-.02em; color:var(--ink); line-height:1.2; margin-top:6px; }
.recent { list-style:none; margin:0; padding:0; } .recent li { display:flex; justify-content:space-between; gap:10px; padding:11px 18px; border-bottom:1px solid #f0f0f3; } .recent li:last-child { border:0; } .recent a { text-decoration:none; font-weight:500; }
.activity { list-style:none; margin:0; padding:0 0 0 14px; border-left:1px solid var(--line); } .activity li { position:relative; padding-bottom:14px; } .activity li:last-child { padding-bottom:0; }
.activity li::before { content:""; position:absolute; left:-18px; top:6px; width:7px; height:7px; border-radius:50%; background:var(--ink3); box-shadow:0 0 0 3px #fff; }
.activity span { display:block; font-weight:500; } .activity small { color:var(--ink2); }

/* Durum */
.status { display:inline-flex; align-items:center; gap:6px; padding:2px 9px 2px 7px; border-radius:99px; border:1px solid var(--line); background:#fff; font-size:12px; font-weight:500; white-space:nowrap; color:var(--ink); }
.status::before { content:""; width:7px; height:7px; border-radius:50%; background:#a3a3ab; }
.status.devam::before { background:#e8912d; } .status.tamamlandi::before { background:#2f6fed; } .status.teslim::before { background:#1f9d61; }

/* Form */
.form-label { font-size:13px; font-weight:500; color:var(--ink); margin-bottom:5px; }
.form-label.required::after { color:#d23c3c; }
.form-control,.form-select { font-size:14px; min-height:36px; padding:7px 11px; border:1px solid #dcdce1; border-radius:7px; background-color:#fff; color:var(--ink); box-shadow:0 1px 1px rgba(20,20,25,.03); transition:border-color .12s,box-shadow .12s; }
.form-select { padding-right:30px; }
.form-control::placeholder { color:var(--ink3); }
.form-control:hover,.form-select:hover { border-color:#c5c5cc; }
.form-control:focus,.form-select:focus { border-color:var(--ink); box-shadow:0 0 0 3px rgba(23,23,26,.09); }
.form-control[type=file] { padding:0; line-height:34px; } .form-control::file-selector-button { height:34px; padding:0 12px; margin:0 10px 0 0; border:0; border-right:1px solid #dcdce1; background:#f7f7f8; color:var(--ink); font-weight:500; }
.form-check-input:checked { background-color:var(--ink); border-color:var(--ink); }
.input-group .form-control:focus { z-index:3; }
.btn { font-size:14px; font-weight:500; min-height:36px; padding:6px 13px; border-radius:7px; border:1px solid #dcdce1; background:#fff; color:var(--ink); box-shadow:0 1px 1px rgba(20,20,25,.04); }
.btn:hover { background:#f7f7f8; border-color:#c5c5cc; color:var(--ink); }
.btn-primary { background:var(--ink); border-color:var(--ink); color:#fff; } .btn-primary:hover,.btn-primary:focus { background:#2d2d32; border-color:#2d2d32; color:#fff; }
.btn-ghost-danger { border-color:transparent; background:none; box-shadow:none; color:#c13434; } .btn-ghost-danger:hover { background:#fdf0f0; border-color:transparent; color:#a82626; }
.btn-sm { min-height:28px; padding:2px 9px; font-size:13px; }
.form-section { display:grid; grid-template-columns:230px minmax(0,1fr); gap:24px; padding:22px 0; border-top:1px solid var(--line); } .form-section:first-of-type { border-top:0; padding-top:4px; }
.form-section h3 { font-size:14px; font-weight:600; margin:0 0 3px; } .form-section p { color:var(--ink2); font-size:13px; margin:0; }
.alert { background:#fff; border:1px solid var(--line); border-left:3px solid #1f9d61; border-radius:8px; box-shadow:none; color:var(--ink); padding:10px 14px; } .alert-danger { border-left-color:#d23c3c; }

/* Musteri */
.steps { --tblr-steps-color:var(--ink); }
.steps-primary { --tblr-steps-color:#17171a; }
.photo-thumb { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; border:1px solid var(--line); }
.qr { width:132px; height:132px; }
#scanner { max-width:420px; }

/* Giris */
.auth { display:grid; grid-template-columns:1fr 1fr; min-height:100dvh; }
.auth-side { background:var(--side); color:#fff; padding:40px 48px; display:flex; flex-direction:column; justify-content:space-between; }
.auth-side h1 { font-size:34px; line-height:1.15; font-weight:600; letter-spacing:-.03em; max-width:15em; color:#fff; margin:0 0 12px; } .auth-side p { color:#a0a0a8; max-width:30em; margin:0; font-size:15px; }
.auth-form { display:grid; place-items:center; padding:32px 20px; background:#fff; } .auth-form form { width:100%; max-width:340px; }
.auth-form h2 { font-size:22px; font-weight:600; letter-spacing:-.02em; margin:0 0 4px; }

@media (max-width:991px) {
  .shell { grid-template-columns:minmax(0,1fr); }
  .sidebar { position:fixed; inset:56px 0 0 0; height:auto; z-index:20; }
  .menu-btn { display:block; }
  .topbar { padding:0 14px; } .content { padding:18px 14px; }
  .form-section { grid-template-columns:1fr; gap:12px; }
  .auth { grid-template-columns:1fr; } .auth-side { padding:24px 20px; } .auth-side h1 { font-size:24px; margin-top:24px; }
}
@media (min-width:992px) { .sidebar.collapse { display:flex !important; } }
@media (max-width:991px) { .sidebar.show { display:flex !important; } }
@media print { .no-print,.sidebar,.topbar,.public-top { display:none !important; } .shell { display:block; } .card { border:0; } body { background:#fff; } }
.qr-sm { width:84px; height:84px; flex:none; }
.activity-wrap { max-height:220px; overflow-y:auto; }
.modal-content { border:1px solid var(--line); border-radius:12px; } .modal-title { font-size:16px; font-weight:600; }

/* Fotograf yukleme */
.dropzone { position:relative; border:1px dashed #cfcfd6; border-radius:10px; background:#fbfbfc; padding:22px 16px; text-align:center; transition:border-color .15s,background .15s; }
.dropzone:hover { border-color:#a9a9b2; }
.dropzone.drag { border-color:var(--ink); background:#f1f1f3; }
.dropzone.invalid { border-color:#d23c3c; }
.dropzone input[type=file] { position:absolute; width:1px; height:1px; min-height:0; padding:0; opacity:0; left:50%; bottom:8px; pointer-events:none; }
.dz-icon { width:38px; height:38px; margin:0 auto 8px; display:grid; place-items:center; border-radius:9px; background:#fff; border:1px solid var(--line); font-size:19px; color:var(--ink2); }
.dz-title { font-weight:500; } .dz-hint { font-size:12px; color:var(--ink3); margin:2px 0 12px; }
.dz-actions { display:flex; gap:8px; justify-content:center; flex-wrap:wrap; }
.dz-error { color:#c13434; font-size:13px; margin:10px 0 0; }
.dz-previews { display:grid; grid-template-columns:repeat(auto-fill,minmax(92px,1fr)); gap:10px; margin-top:16px; text-align:left; }
.dz-thumb { position:relative; margin:0; }
.dz-thumb img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:8px; border:1px solid var(--line); display:block; }
.dz-thumb figcaption { font-size:11px; color:var(--ink2); margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dz-remove { position:absolute; top:4px; right:4px; width:24px; height:24px; padding:0; border:0; border-radius:50%; background:rgba(18,18,20,.8); color:#fff; display:grid; place-items:center; font-size:13px; }
.segmented { display:inline-flex; padding:3px; gap:2px; background:#efeff2; border-radius:8px; max-width:100%; }
.segmented label { margin:0; cursor:pointer; } .segmented input { position:absolute; opacity:0; }
.segmented span { display:block; padding:5px 12px; border-radius:6px; font-size:13px; font-weight:500; color:var(--ink2); transition:background .15s,color .15s; }
.segmented input:checked + span { background:#fff; color:var(--ink); box-shadow:0 1px 2px rgba(20,20,25,.12); }
.segmented input:focus-visible + span { outline:2px solid var(--ink); outline-offset:1px; }

/* Isler tablosu yatay kaydirilmaz */
.job-table { width:100%; }
.job-table .sub { font-size:13px; color:var(--ink2); overflow-wrap:anywhere; }
.job-table .who-cell { white-space:normal; }
.job-table th,.job-table td { padding-inline:14px; }
.job-table .status-cell { width:1%; }
.job-table td { vertical-align:top; }
.vehicle-cell { width:28%; }
.material + .material { margin-top:9px; }
.missing { color:#b4531a !important; font-weight:500; }
.kpi-link { display:block; color:inherit; text-decoration:none; } .kpi-link:hover { border-color:#c5c5cc; color:inherit; text-decoration:none; }
.fw-medium { font-weight:500; }
.lookup { max-width:560px; }
body.embedded { background:transparent; }

/* Musteri sorgu alani */
@font-face { font-family:"Archivo"; src:url(/fonts/archivo-latin-standard-normal.woff2) format("woff2"); font-weight:100 900; font-stretch:62% 125%; font-display:swap; unicode-range:U+0000-00FF,U+2000-206F; }
@font-face { font-family:"Archivo"; src:url(/fonts/archivo-latin-ext-standard-normal.woff2) format("woff2"); font-weight:100 900; font-stretch:62% 125%; font-display:swap; unicode-range:U+0100-02AF,U+1E00-1EFF; }
.q-panel { font-family:"Archivo","Geist",sans-serif; max-width:560px; margin:0 auto; padding:clamp(24px,5vw,38px); color:#fff; background:linear-gradient(155deg,#0d2a42,#07121d 70%); border-radius:8px; }
.q-label { display:block; margin:0 0 9px; font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:#8fc9ef; }
.q-plate { display:flex; height:82px; margin-bottom:24px; overflow:hidden; background:#fff; border-radius:7px; box-shadow:inset 0 0 0 2px #0b1a27,0 0 0 2px #fff; transition:box-shadow .18s; }
.q-plate:focus-within { box-shadow:inset 0 0 0 2px #0b1a27,0 0 0 2px #fff,0 0 0 5px #4aa6e2; }
.q-tr { flex:none; width:46px; display:flex; align-items:flex-end; justify-content:center; padding-bottom:12px; background:#0b4ea2; color:#fff; font-size:15px; font-weight:700; }
.q-plate input { flex:1; width:100%; min-width:0; padding:0 12px; border:0; outline:0; background:none; color:#0b1a27; text-align:center; text-transform:uppercase; font:800 clamp(26px,7vw,40px)/1 "Archivo",sans-serif; font-stretch:105%; letter-spacing:.03em; }
.q-plate input::placeholder { color:#c3cbd1; opacity:1; }
.q-serial { display:block; width:100%; height:58px; margin-bottom:26px; padding:0 18px; color:#fff; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.22); border-radius:7px; outline:0; text-transform:uppercase; font:500 clamp(17px,4.6vw,21px)/1 ui-monospace,"SF Mono",Menlo,monospace; letter-spacing:.08em; transition:border-color .18s,background .18s; }
.q-serial::placeholder { color:#71889a; opacity:1; }
.q-serial:hover { border-color:rgba(255,255,255,.42); }
.q-serial:focus { border-color:#4aa6e2; background:rgba(255,255,255,.1); box-shadow:0 0 0 3px rgba(74,166,226,.3); }
.q-submit { display:flex; align-items:center; justify-content:space-between; width:100%; height:60px; padding:0 22px; color:#07121d; background:#fff; border:0; border-radius:7px; cursor:pointer; font:700 17px "Archivo",sans-serif; transition:background .18s,transform .18s; }
.q-submit i { font-size:22px; transition:transform .25s cubic-bezier(.2,.8,.2,1); }
.q-submit:hover { background:#8fc9ef; } .q-submit:hover i { transform:translateX(5px); } .q-submit:active { transform:translateY(1px); }
.q-submit:focus-visible { outline:3px solid #4aa6e2; outline-offset:2px; }
.q-submit[disabled] { opacity:.65; cursor:wait; }
.q-error { display:flex; gap:9px; align-items:flex-start; margin:0 0 22px; padding:12px 14px; font-size:15px; line-height:1.4; color:#ffd9d4; background:rgba(226,75,58,.2); border-radius:6px; } .q-error i { font-size:19px; margin-top:1px; }
body.embedded main.public-body { padding:0; }

/* Gomulu sonuc */
body.embedded .container-narrow { max-width:none !important; font-family:"Archivo","Geist",sans-serif; }
body.embedded .card { background:#0d2233; border:0; border-radius:8px; color:#fff; --tblr-bg-surface:#0d2233; }
body.embedded .card-header { border-color:rgba(255,255,255,.1); }
body.embedded .card-title,body.embedded .page-title { color:#fff; }
body.embedded .text-secondary,body.embedded .page-pretitle { color:#a9bccb !important; }
body.embedded .list-group-item { background:none; color:#fff; border-color:rgba(255,255,255,.1); }
body.embedded .card a.btn-primary { background:#fff; border-color:#fff; color:#07121d; }
body.embedded a.text-secondary { color:#0b3b5c !important; font-weight:500; text-decoration:none; }
body.embedded .photo-thumb { border-color:rgba(255,255,255,.15); }

/* Sorgu butonunda giden arac */
.q-submit { position:relative; overflow:hidden; container-type:inline-size; }
.q-text { position:relative; z-index:1; }
.q-car { position:relative; z-index:0; display:block; line-height:0; transition:transform .3s cubic-bezier(.2,.8,.2,1); }
.q-car svg { display:block; overflow:visible; }
.q-car { color:#07121d; }
.q-submit:hover .q-car { transform:translateX(5px); }
.q-car::after { content:""; position:absolute; right:100%; top:50%; width:0; height:2px; margin:-2px 5px 0 0; border-radius:2px; opacity:0; background:#07345a; box-shadow:-7px 7px 0 #07345a; }
.q-submit.driving { cursor:progress; }
.q-submit.driving .q-text { animation:q-busy 1.1s ease-in-out infinite; }
.q-submit.driving .q-car { animation:q-launch .42s cubic-bezier(.55,0,.9,.3) forwards, q-cross 1s cubic-bezier(.35,.1,.6,.9) .42s infinite; }
.q-submit.driving .q-car::after { width:24px; opacity:.5; }

@keyframes q-launch { 0% { transform:translateX(0); } 30% { transform:translateX(-7px) rotate(-3deg); } 100% { transform:translateX(90px); } }
@keyframes q-cross { from { transform:translateX(calc(-100cqw - 10px)); } to { transform:translateX(90px); } }
@keyframes q-busy { 50% { opacity:.55; } }
.q-car img { display:block; height:22px; width:auto; }
