/* ASTOR Mekanik Fabrika · dashboard grafikleri, mobil gezinme, bağlantı uyarısı.
   Mevcut kurumsal dil korunur (DIN / Nexa, #da291c vurgu, mat yüzey). Durum renkleri tek yerde tanımlıdır. */
:root{--c-ok:#3f8a68;--c-warn:#c8962e;--c-bad:#c2453c;--c-info:#4a6f9e;--c-ink:#4a4f4d;--c-mute:#a3a8a4;--c-plum:#7a62a8;--c-teal:#3c8c8a}
html[data-theme="dark"]{--c-ok:#6fcfa1;--c-warn:#e6bd6b;--c-bad:#f08b86;--c-info:#8fb2e3;--c-ink:#cfd2cf;--c-mute:#6c726e;--c-plum:#b7a2e6;--c-teal:#7fd0cc}

/* ---------- dashboard ---------- */
.dx-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--line);margin:4px 0 6px}
.dx-tabs button{border:0;background:transparent;padding:10px 14px;font-size:13px;color:var(--muted);border-bottom:2px solid transparent;border-radius:0}
.dx-tabs button.active{color:var(--ink);border-bottom-color:var(--accent,#da291c);font-weight:600}
.dx-tabs .dx-print{margin-left:auto;border:1px solid var(--line);border-radius:6px;padding:6px 12px;align-self:center}
.dx-scope{font-size:12px;color:var(--muted);margin:6px 0 14px}
.dx-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:16px}
.dx-tile{background:var(--paper,#fff);padding:14px 16px;display:flex;flex-direction:column;gap:3px;min-width:0}
.dx-tile span{font-size:12px;color:var(--muted)}
.dx-tile strong{font-family:AstorNexa,AstorDIN,sans-serif;font-size:26px;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums}
.dx-tile strong em{font-family:AstorDIN,sans-serif;font-style:normal;font-size:13px;color:var(--muted);font-weight:400}
.dx-tile small{font-size:11px;color:var(--muted)}
.dx-tile.is-bad strong{color:var(--c-bad)}.dx-tile.is-warn strong{color:var(--c-warn)}
.dx-tile.is-bad{box-shadow:inset 3px 0 var(--c-bad)}.dx-tile.is-warn{box-shadow:inset 3px 0 var(--c-warn)}
.dx-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}
.dx-grid2>.dx-card{margin:0}
.dx-card{background:var(--paper,#fff);border:1px solid var(--line);border-radius:8px;padding:16px 18px;margin-bottom:16px;min-width:0}
.dx-card header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px}
.dx-card h3{font-size:14px;margin:0;color:var(--ink)}
.dx-card header small{font-size:11px;color:var(--muted);text-align:right}
.dx-card .table-wrap{margin:0 -18px -16px;border-top:1px solid var(--line)}
.dx-none{color:var(--muted);font-size:13px;margin:8px 0}
.dx-note{font-size:12px;color:var(--muted);margin:12px 0 0;line-height:1.6}
.dx-donut{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:center}
.dx-donut svg{width:150px;height:150px}
.dx-donut-n{font-family:AstorNexa,AstorDIN,sans-serif;font-size:24px;fill:var(--ink)}
.dx-donut-s{font-size:10px;fill:var(--muted);letter-spacing:.5px;text-transform:uppercase}
.dx-legend{list-style:none;margin:0;padding:0;display:grid;gap:7px;font-size:12.5px}
.dx-legend li{display:grid;grid-template-columns:10px 1fr auto 40px;gap:8px;align-items:center}
.dx-legend i,.dx-cap-key{width:10px;height:10px;border-radius:2px;display:inline-block}
.dx-legend b{font-variant-numeric:tabular-nums;color:var(--ink)}.dx-legend em{font-style:normal;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.dx-legend.inline{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px}
.dx-legend.inline li{display:flex;gap:6px}
.dx-cap-key{background:none;border-left:2px solid var(--ink);height:12px;width:2px;border-radius:0}
.dx-trend{width:100%;height:auto;max-height:240px;display:block}
.dx-trend text{font-size:10px}
.dx-gridline{stroke:var(--line);stroke-width:1}
.dx-axis{font-size:10px;fill:var(--muted)}
.dx-hbars{display:grid;gap:9px}
.dx-hbar{display:grid;grid-template-columns:minmax(90px,160px) 1fr 56px;gap:10px;align-items:center;font-size:12.5px}
.dx-hl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.dx-hbar b{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.dx-track{position:relative;height:10px;background:var(--soft,#f2f2f0);border-radius:2px;display:flex;overflow:visible}
.dx-track i{display:block;height:100%}
.dx-track i:first-child{border-radius:2px 0 0 2px}
.dx-track u{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);text-decoration:none}
.is-bad{color:var(--c-bad)!important}.is-warn{color:var(--c-warn)!important}.is-ok{color:var(--c-ok)!important}
.dx-daily-form{align-items:flex-end;margin-bottom:14px}
.dx-daily-form label{display:grid;gap:4px;font-size:12px;color:var(--muted)}
#dashboard-filter{flex-wrap:wrap}
@media(max-width:1100px){.dx-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.dx-grid2{grid-template-columns:1fr}}
@media(max-width:560px){.dx-donut{grid-template-columns:1fr;justify-items:center}.dx-hbar{grid-template-columns:90px 1fr 46px}}
@media print{.dx-tabs,.dx-daily-form,.net-banner,.mobile-tabbar{display:none!important}.dx-card,.dx-tiles{break-inside:avoid}}

/* ---------- proje listesi kilometre taşları ---------- */
.milestones{display:flex;gap:3px;margin-top:6px}
.milestones i{font-style:normal;font-size:9.5px;letter-spacing:.3px;padding:2px 5px;border-radius:3px;border:1px solid var(--line);color:var(--muted)}
.milestones i.on{background:#e7f1ed;border-color:#cfe3d9;color:#2e7055}
html[data-theme="dark"] .milestones i.on{background:#1f3a2e;border-color:#2c5240;color:#8fd3b0}
.risk-note{display:block;color:#916c22;margin-top:4px}
.check-line{display:flex!important;gap:8px;align-items:flex-start;margin:10px 0 4px;font-size:13px}
.check-line input{width:auto!important;margin-top:3px}
.mail-draft{margin:14px 0;border:1px solid var(--line);border-radius:8px;padding:10px 14px}
.mail-draft summary{cursor:pointer;font-weight:600}
.mail-draft label{display:grid;gap:4px;margin:8px 0;font-size:12px;color:var(--muted)}
.mail-draft textarea{font-family:inherit;font-size:13px}
a.button{display:inline-flex;align-items:center;padding:7px 12px;border:1px solid var(--line);border-radius:6px;color:var(--ink);text-decoration:none;font-size:13px}

/* ---------- bağlantı uyarısı ---------- */
.net-banner{display:none;position:fixed;left:0;right:0;top:0;z-index:1000;background:#8a2a22;color:#fff;padding:9px 16px;font-size:13px;text-align:center}
body.is-offline .net-banner{display:block}
.sync.offline{color:#aa3c43!important;font-weight:600}

/* ---------- mobil: alt gezinme, dokunma hedefleri ---------- */
.mobile-tabbar{display:none}
@media(max-width:760px){
  .mobile-tabbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--paper,#fff);border-top:1px solid var(--line);padding:4px 4px calc(4px + env(safe-area-inset-bottom))}
  .mobile-tabbar button{border:0;background:none;display:grid;justify-items:center;gap:2px;font-size:11px;color:var(--muted);padding:6px 2px;min-height:48px}
  .mobile-tabbar button span{font-size:17px;line-height:1}
  .mobile-tabbar button.active{color:var(--accent,#da291c)}
  .content{padding-bottom:84px!important}
  .task-card .actions button,.dialog-actions button{min-height:42px}
  #communication{bottom:76px!important}
  dialog#dialog{width:100vw;max-width:100vw;max-height:100dvh;margin:0;border-radius:0}
  .form-grid{grid-template-columns:1fr!important}
  .topbar .header-leave,.topbar [data-action="navigate"][data-id="bildirimler"],.topbar .user-name,.topbar .sync,#communication{display:none!important}
  .topbar .top-actions{flex-wrap:nowrap;gap:6px;min-width:0}
  .topbar{gap:8px}
}

/* ---------- Ana sayfa · Bugün kimde ne iş var? ---------- */
.today-board .tb-tools{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:12px}
.today-board .tb-chip{border-radius:999px;padding:5px 12px;font-size:12px;border:1px solid var(--line);background:var(--paper)!important;color:var(--c-ink)!important}
.today-board .tb-chip b{margin-left:6px;display:inline-block;min-width:20px;padding:0 6px;border-radius:999px;background:var(--soft);color:var(--c-ink);font-size:11px}
.today-board .tb-chip[data-tb-filter="work"] b{background:color-mix(in srgb,var(--c-ok) 22%,transparent)}
.today-board .tb-chip[data-tb-filter="free"] b{background:color-mix(in srgb,var(--c-warn) 28%,transparent)}
.today-board .tb-chip[data-tb-filter="leave"] b{background:color-mix(in srgb,var(--c-plum) 22%,transparent)}
.today-board .tb-chip[data-tb-filter="late"] b{background:color-mix(in srgb,var(--c-bad) 22%,transparent)}
.today-board .tb-chip.active{background:#36393a!important;color:#fff!important;border-color:#36393a}
.today-board .tb-chip.active b{background:rgba(255,255,255,.22);color:#fff}
html[data-theme=dark] .today-board .tb-chip.active{background:#e8eae8!important;color:#1d1f1e!important;border-color:#e8eae8}
html[data-theme=dark] .today-board .tb-chip.active b{background:rgba(0,0,0,.15);color:#1d1f1e}
.today-board .tb-search{border:1px solid var(--line);border-radius:999px;padding:5px 12px;background:var(--paper);color:var(--c-ink)}
.tb-search{margin-left:auto;min-width:220px}
.tb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.tb-card{border:1px solid var(--line);border-left:4px solid var(--c-mute);border-radius:10px;padding:10px;background:var(--paper)}
.tb-card.busy{border-left-color:var(--c-ok)}.tb-card.late{border-left-color:var(--c-bad)}.tb-card.leave{border-left-color:var(--c-plum);opacity:.85}.tb-card.free{border-left-color:var(--c-warn)}
.tb-card header{display:flex;gap:10px;align-items:center}.tb-card header div{flex:1;min-width:0}
.tb-card header strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tb-card header small{color:var(--c-mute);font-size:11px}
.tb-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none;border:2px solid var(--line)}
.tb-initials{display:grid;place-items:center;background:var(--soft);font-weight:700;color:var(--c-ink)}
.tb-badge{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--soft);white-space:nowrap}
.tb-card ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.tb-card li button{width:100%;text-align:left;padding:5px 7px;font-size:12px;border-radius:6px;display:grid}
.tb-card li button small{color:var(--c-mute);font-size:10px}.tb-card li button.late{border-color:var(--c-bad)}.tb-card li button.doing{border-color:var(--c-ok)}
.tb-more{font-size:11px;color:var(--c-mute);padding-left:4px}.tb-empty{margin:8px 0 0;font-size:12px;color:var(--c-mute)}
.role-note{display:block;color:var(--c-mute);font-size:10px}.dialog-sub{font-size:13px;margin:10px 0 4px}
.role-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}

/* ---------- Profil ---------- */
.profile-card{overflow:hidden}
.profile-hero{display:flex;gap:24px;align-items:center;padding:22px 24px;background:linear-gradient(120deg,color-mix(in srgb,#da291c 9%,var(--paper)),var(--paper) 60%)}
.profile-photo{width:112px;height:112px;border-radius:50%;flex:none;overflow:hidden;border:4px solid var(--paper);box-shadow:0 4px 18px rgba(0,0,0,.14);background:var(--soft);display:grid;place-items:center}
.profile-photo img{width:100%;height:100%;object-fit:cover}.profile-photo span{font-size:36px;font-weight:700;color:var(--c-ink)}
.profile-id h2{margin:0;font-size:22px}.profile-id>p{margin:2px 0 12px;color:var(--c-mute)}
.profile-id dl{display:flex;flex-wrap:wrap;gap:8px 28px;margin:0}.profile-id dt{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--c-mute)}.profile-id dd{margin:0;font-size:13px}
.avatar-form{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.avatar-preview{width:128px;height:128px;border-radius:50%;overflow:hidden;border:2px dashed var(--line);display:grid;place-items:center;background:var(--soft);flex:none}
.avatar-preview img{width:100%;height:100%;object-fit:cover}.avatar-preview span{font-size:12px;color:var(--c-mute)}
.avatar-preview.pending{border:3px solid var(--c-warn)}
.avatar-side{flex:1;min-width:240px;display:grid;gap:10px}
.file-pick{display:inline-flex;position:relative;align-self:start;cursor:pointer}
.file-pick input{position:absolute;inset:0;opacity:0;cursor:pointer}
.file-pick span{border:1px solid var(--line);border-radius:6px;padding:7px 14px;background:var(--paper);font-size:13px}
@media(max-width:700px){.profile-hero{flex-direction:column;text-align:center}.profile-id dl{justify-content:center}}

/* ---------- Rol / öncelik matrisi ---------- */
.sm-wrap{max-height:70vh;overflow:auto}
.skill-matrix th,.skill-matrix td{padding:4px 6px;text-align:center;white-space:nowrap}
.skill-matrix thead th{position:sticky;top:0;background:var(--paper);z-index:2;font-size:10px;line-height:1.2;white-space:normal;min-width:64px}
.skill-matrix tbody th{position:sticky;left:0;background:var(--paper);text-align:left;z-index:1;font-size:12px}
.skill-matrix .sm-role-h{background:color-mix(in srgb,var(--c-info) 10%,var(--paper))}
.skill-matrix select{font-size:12px;padding:3px 4px;min-width:84px}
.skill-matrix select.yedek{background:color-mix(in srgb,var(--c-warn) 22%,transparent)}.skill-matrix select.yok{background:color-mix(in srgb,var(--c-bad) 15%,transparent)}
.skill-matrix .sm-num{width:52px;text-align:center;padding:3px}
.skill-matrix .sm-na{color:var(--c-mute);font-size:10px}
.skill-matrix .sm-dirty{outline:2px solid var(--c-warn)}

/* ---------- Yönetim · gruplu sekmeler ---------- */
.admin-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;align-items:start}
.admin-tab-group{border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:8px 10px}
.admin-tab-group>span{display:block;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--c-mute);margin:0 0 6px}
.admin-tab-group>div{display:flex;flex-wrap:wrap;gap:6px}
.admin-tab-group button{font-size:12px;padding:5px 9px}

/* ---------- Yönetim › Kurulum / Taşıma ---------- */
.deploy-panel h3{margin:18px 0 8px;font-size:15px}
.deploy-facts{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.deploy-facts dd{overflow-wrap:anywhere}
.deploy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px}
.deploy-card{border:1px solid var(--line);border-radius:10px;padding:14px;background:var(--paper);display:flex;flex-direction:column;gap:8px}
.deploy-card.chosen{border-color:var(--c-ok);box-shadow:0 0 0 2px color-mix(in srgb,var(--c-ok) 25%,transparent)}
.deploy-card header{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.deploy-card h4{margin:0;font-size:14px}.deploy-card h5{margin:8px 0 4px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--c-mute)}
.deploy-card p{margin:0}.deploy-card footer{margin-top:auto;display:flex;gap:8px;align-items:center}
.deploy-progress{height:6px;border-radius:3px;background:var(--soft);overflow:hidden}.deploy-progress i{display:block;height:100%;background:var(--c-ok)}
.deploy-steps{display:grid;gap:4px}
.deploy-check{display:flex;gap:8px;align-items:flex-start;padding:5px 6px;border-radius:6px;cursor:pointer}
.deploy-check:hover{background:var(--soft)}.deploy-check.done span{color:var(--c-mute);text-decoration:line-through}
.deploy-check small{display:block;text-decoration:none;font-size:10px}
.deploy-cmd{display:grid;grid-template-columns:1fr auto;gap:2px 8px;margin:4px 0}.deploy-cmd small{grid-column:1/-1;color:var(--c-mute)}
.deploy-cmd code{font-size:11px;background:var(--soft);padding:6px;border-radius:5px;overflow-wrap:anywhere}
.deploy-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:18px}
.deploy-two textarea{width:100%}
@media(max-width:700px){.deploy-grid,.deploy-two{grid-template-columns:1fr}}

/* ---------- Yönetim › Veritabanı bağlantısı ---------- */
#dialog.db-dialog{width:min(1100px,calc(100vw - 24px));max-width:none}
.db-flow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 12px}
.db-flow span{padding:5px 10px;border:1px solid var(--line);border-radius:6px;background:var(--soft);font-size:12px}
.db-flow b{color:var(--c-mute)}
.db-facts{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.db-facts code,.db-tables code{font-size:11px;overflow-wrap:anywhere}
.db-tables{max-height:52vh;overflow:auto}
.db-tables td{vertical-align:top}
.db-tables td.num{text-align:right;font-variant-numeric:tabular-nums}
.db-tables tr.db-kind td{background:var(--soft);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--c-mute)}
.db-link{display:inline-block;margin:0 6px 4px 0;padding:2px 7px;border-radius:5px;background:color-mix(in srgb,var(--c-info) 12%,transparent);font-size:12px;white-space:nowrap}
.db-link.in{background:color-mix(in srgb,var(--c-ok) 12%,transparent)}

/* ---------- aranabilir listede grup başlığı (ör. Bana atananlar / Diğer projeler) ---------- */
.search-options .combo-group{display:block;padding:8px 10px 4px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--c-mute);border-top:1px solid var(--line);pointer-events:none}
.search-options .combo-group:first-child{border-top:0}

/* ---------- tam ekran araç (Teknik Resim / DXF / Metot) ----------
   Üst menü gizlenince araç ekranın en altına kadar uzanır (eskiden 73 px boş şerit kalıyordu).
   Mesaj ve "Tam ekrandan çık" düğmeleri yan yana, küçük; aracın alt durum çubuğunda imza yazısının soluna oturur
   (sağdaki "ASTOR ENERJİ A.Ş. · … tarafından geliştirilmiştir" yazısını kapatmaz). */
.workspace-fullscreen .control-content .panel-body{height:100dvh}
.workspace-fullscreen .control-content .tool-frame{height:100%!important}
.workspace-fullscreen #exit-workspace{bottom:5px;right:390px;padding:3px 12px;font-size:12px;line-height:1.4;min-height:0}
.workspace-fullscreen #communication{bottom:5px;right:524px;width:min(430px,calc(100vw - 540px))}
.workspace-fullscreen #communication-open{padding:3px 12px;font-size:12px;line-height:1.4;min-height:0}
