/* SkyMate brand assets and the user's annotated UX reductions. */
/* One quiet brand entrance; animation is decorative, not a progress claim. */
#boot-screen,[data-theme=dark] #boot-screen { background:var(--surface,#fff); transition:opacity .28s ease,visibility .28s ease; }
#boot-screen::before,#boot-screen::after,.boot-terminal::before { display:none; }
#boot-screen .boot-logo-wrap { animation:skymate-arrive .6s cubic-bezier(.2,.7,.2,1) both; }
#boot-screen .logo-lockup { width:auto; height:auto; min-height:0; --logo-height:auto; filter:none; }
#boot-screen .skymate-logo { width:clamp(180px,28vw,260px); height:auto; }
#boot-screen .boot-tagline { margin-top:24px; font:400 clamp(16px,3vw,20px)/1.5 var(--font); letter-spacing:-.3px; color:var(--ink); animation:bootFade .4s .12s both; }
#boot-screen .boot-terminal { margin-top:8px; font:400 12px/1.5 var(--font); letter-spacing:0; color:var(--ink-2); animation:bootFade .4s .2s both; }
#boot-screen .boot-bar { width:96px; height:2px; margin-top:28px; background:var(--line,#e5e7eb); animation:none; opacity:1; }
#boot-screen .boot-bar-fill { width:40%; background:#1f5fd8; transform:none; animation:skymate-pass 1.1s ease-in-out infinite; }
@keyframes skymate-arrive { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@keyframes skymate-pass { from { transform:translateX(-110%); } to { transform:translateX(360%); } }
.agentic-shell .app { animation:none; opacity:1; transform:none; }
.executive-brief { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:22px 24px; border-left:3px solid var(--brand); background:var(--brand-soft); border-radius:0 12px 12px 0; }
.executive-brief h2,.executive-priorities h2 { font:500 17px/1.4 var(--font); margin:0 0 8px; letter-spacing:-.3px; color:var(--ink); }
.executive-brief p { font:400 14px/1.65 var(--font); margin:0 0 8px; color:var(--ink); max-width:65ch; }
.executive-brief .executive-facts { font-weight:500; }
.agentic-shell .dashboard-hero { min-height:0; padding-block:8px; }
.executive-brief small,.executive-action small { display:block; font:400 12px/1.5 var(--font); color:var(--ink-2); }
.executive-brief button { flex-shrink:0; }
.executive-action-list { display:grid; }
.executive-action { display:flex; align-items:center; gap:16px; padding:14px 0; border-bottom:1px solid var(--line); }
.executive-action>div { flex:1; min-width:0; }
.executive-action strong { font:500 14px/1.5 var(--font); overflow-wrap:anywhere; }
.executive-severity { font:500 11px/1.5 var(--font); color:var(--ink-2); min-width:44px; }
.executive-severity.danger { color:var(--danger); }
.executive-severity.warning { color:var(--ink); }
.executive-no-signals { font:400 13px/1.65 var(--font); color:var(--ink-2); margin:0; }
.dashboard-detail-hint { display:block; margin-top:16px; font:500 12px/1.5 var(--font); color:var(--brand); }
.agentic-shell .dashboard-kpis:empty { display:none; }
.agentic-shell .dashboard-panel:has(.dashboard-empty) { min-height:0; }
.agentic-shell .dashboard-empty { padding:24px 12px; min-height:0; height:auto; box-shadow:none; border:0; background:none; font:400 13px/1.6 var(--font); }
@media(max-width:768px) {
  .executive-brief { padding:18px; align-items:flex-start; flex-direction:column; gap:12px; }
  .executive-action { gap:10px; }
  .executive-action .dashboard-action { min-height:44px; }
  .agentic-shell .dashboard-panel { min-height:0; }
}
@media(prefers-reduced-motion:reduce) {
  #boot-screen *,#boot-screen .boot-logo-wrap,#boot-screen .boot-bar-fill { animation:none!important; opacity:1; transform:none; }
  #boot-screen { transition:none; }
}
:root,[data-theme=light] { --brand:#1f5fd8; --brand-hover:#194fb7; --brand-soft:#edf2fc; --primary:#1f5fd8; }
.agentic-shell { --workspace-rail:200px; }
.agentic-shell .sidebar { padding-inline:12px; }
.agentic-shell .brand-shell { margin-inline:4px; gap:4px; min-height:56px; }
.agentic-shell .ag-wordmark { width:120px; height:auto; min-width:96px; }
.agentic-shell .brand-shell .brand { flex:1; min-width:0; }
.agentic-shell .brand-shell .sidebar-collapse { position:static; flex:0 0 24px; margin-left:8px; }
.skymate-compact { display:none; width:32px; height:32px; }
.agentic-shell .sidebar-collapsed .skymate-lockup { display:none; }
.agentic-shell .sidebar-collapsed .skymate-compact { display:block; }
.agentic-shell .sidebar-collapsed .brand { display:flex; }
.agentic-shell .sidebar-collapsed .brand-shell { flex-direction:column; align-items:center; gap:8px; margin:0 0 20px; }
.agentic-shell .sidebar-collapsed .brand-shell .brand { flex:none; width:44px; height:44px; justify-content:center; align-items:center; border:1px solid var(--border); border-radius:14px; background:var(--bg-elevated); }
.agentic-shell .sidebar-collapsed .skymate-compact { width:28px; height:28px; }
.agentic-shell .sidebar-collapsed .brand-shell .sidebar-collapse { flex:none; margin:0; width:36px; height:32px; box-shadow:none; background:transparent; border-color:transparent; }
.agentic-shell .company-badge { display:none; }
.agentic-shell .ag-composer { border-radius:16px; padding:10px 12px; }
.agentic-shell .ag-composer #msg-input { height:44px; min-height:44px; max-height:180px; font:14px/1.6 var(--font); padding:6px 4px; }
.agentic-shell .ag-composer-tools { gap:5px; flex-wrap:nowrap; }
.agentic-shell .ag-composer-tools>button { flex-shrink:0; }
.agentic-shell .ag-composer-command { margin-left:0; }
.agentic-shell .ag-composer-tools #ag-attach { display:grid; place-items:center; }
.agentic-shell #prompt-effort { margin-left:auto; min-width:0; width:auto; max-width:125px; }
.agentic-shell .ag-composer-tools #ag-attach { width:30px; font-size:0; }
.agentic-shell .ag-composer-tools #ag-attach svg { width:17px; height:17px; }
.agentic-shell .ag-composer-tools .prompt-mic { width:30px; height:30px; display:grid; place-items:center; }
.agentic-shell .prompt-mic svg { width:16px; height:16px; }
.agentic-shell .prompt-mic[aria-pressed=true] { color:var(--danger); background:var(--hover); }
.agentic-shell .msg.bot .msg-avatar::before { background:url('/static/assets/skymate/skymate-mark-color.svg') center/contain no-repeat; border:0; border-radius:0; transform:none; width:24px; height:24px; }
.logo-lockup .skymate-logo { width:180px; height:auto; }
.logo-lockup.boot-logo-img .skymate-logo { width:240px; }
[data-theme=dark] .skymate-logo,[data-theme=dark] .ag-wordmark { content:url('/static/assets/skymate/skymate-lockup-horizontal-mono-white.svg'); }
[data-theme=dark] .skymate-compact { content:url('/static/assets/skymate/skymate-mark-mono-white.svg'); }
[data-theme=dark] .agentic-shell .msg.bot .msg-avatar::before { background-image:url('/static/assets/skymate/skymate-mark-mono-white.svg'); }
[data-theme=dark] { --brand:#729ff6; --brand-soft:#25334b; }
@media(max-width:760px) {
  .agentic-shell .sidebar { --workspace-rail:200px; }
  .agentic-shell .ag-composer-tools { gap:3px; }
  .agentic-shell #prompt-effort { max-width:108px; }
}
/* Touch and installed-app layout: preserve room for content and system UI. */
@media (pointer:coarse) {
  .agentic-shell :is(.nav-btn,.ag-profile-action,.ag-shortcut,.sidebar-collapse,.mobile-menu-button,.header-icon-btn) { min-width:44px; min-height:44px; }
  .agentic-shell .ag-composer-tools #chat-send { min-width:44px; width:44px; height:44px; }
  .agentic-shell .ag-composer #msg-input { font-size:16px; }
  .agentic-shell .ag-composer-tools :is(button,select) { min-height:44px; }
  .agentic-shell .ag-composer-tools button { min-width:40px; }
}
@media(max-width:768px) {
  .agentic-shell .app { height:100dvh; padding-top:env(safe-area-inset-top); padding-left:env(safe-area-inset-left); padding-right:env(safe-area-inset-right); }
  .agentic-shell .sidebar,.agentic-shell .sidebar-collapsed .sidebar { width:min(280px,86vw); min-width:0; height:100dvh; background:var(--canvas); padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom)); }
  .agentic-shell .sidebar-collapse { background:var(--surface); color:var(--ink); border-color:var(--border); }
  .agentic-shell .chat-session { padding:0 12px max(12px,env(safe-area-inset-bottom)); min-width:0; }
  .agentic-shell .ag-empty .chat-session { padding-top:clamp(24px,7dvh,64px); padding-bottom:max(20px,env(safe-area-inset-bottom)); overflow-y:auto; }
  .agentic-shell .ag-welcome h1 { font-size:clamp(23px,5vw,30px); line-height:1.25; }
  .agentic-shell .ag-composer #msg-input { font-size:16px; max-height: min(180px,30dvh); }
  .agentic-shell .ag-composer-tools { gap:2px; }
  .agentic-shell #prompt-effort { max-width:100px; font-size:12px; }
  .agentic-shell .ag-result-panel { width:100%; max-width:100%; }
  .agentic-shell .header { padding:0 12px; min-height:60px; }
}
@media(min-width:769px) and (max-width:1100px) {
  .agentic-shell .sidebar { width:200px; }
  .agentic-shell .chat-session { padding-inline:20px; }
}
@media(display-mode:standalone) {
  .agentic-shell .app { padding-top:env(safe-area-inset-top); }
  .agentic-shell .sidebar { padding-bottom:max(16px,env(safe-area-inset-bottom)); }
}

/* ── Arkadan yenileme geri bildirimi ──────────────────────────────────
   Panel artık yenilenirken iskelete dönmüyor; bayat veri ekranda kalıyor
   ve yeni veri sessizce üstüne yazılıyor. Ama "sessiz" ile "görünmez" aynı
   şey değil: para ve risk rakamları haber verilmeden değişebilir, ancak
   DEĞİŞTİĞİNİN hiç belli olmaması kabul edilemez — birisi bir rakamı okuyup
   karar verirken hangi ana ait olduğunu bilebilmeli. Bu yüzden iki ince
   işaret var: yenilenirken hafif solma, yeni veri gelince kısa bir vurgu. */
.dashboard-yenileniyor { opacity: .72; transition: opacity 160ms ease-out; }

@keyframes dashboard-tazelendi-vurgu {
  from { box-shadow: inset 0 2px 0 0 var(--brand); }
  to   { box-shadow: inset 0 2px 0 0 transparent; }
}
.dashboard-tazelendi { animation: dashboard-tazelendi-vurgu 900ms ease-out; }

/* "2 dk önce güncellendi" — alt bilgide, sessiz ama okunur. */
#dashboard-freshness {
  font-style: normal;
  color: var(--ink-3);
  margin-left: 8px;
}

/* Hareketi azalt tercihi: solma ve vurgu kapanır, bilgi metni kalır.
   Vestibüler duyarlılığı olan kullanıcı için hareket rahatsız edici;
   ama "ne zaman güncellendi" bilgisi erişilebilirlik gereği kalmalı. */
@media (prefers-reduced-motion: reduce) {
  .dashboard-yenileniyor { opacity: 1; }
  .dashboard-tazelendi { animation: none; }
}
/* Employee expense form: policy-driven groups, not the administrator settings. */
#expense-draft .expense-grouped-form {display:flex;flex-direction:column;gap:14px;min-width:0}
#expense-draft .expense-form-section {border:1px solid var(--border);border-radius:12px;background:var(--bg-elevated);padding:16px;min-width:0}
#expense-draft .expense-form-section h3 {margin:0 0 14px;font-size:11px;font-weight:650;letter-spacing:.05em;color:var(--text-secondary)}
#expense-draft .expense-section-fields {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
#expense-draft .expense-section-fields .expense-field {min-width:0}
#expense-draft .expense-section-fields input,#expense-draft .expense-section-fields select,#expense-draft .expense-section-fields textarea {max-width:100%;box-sizing:border-box}
#expense-draft .expense-net-line {grid-column:1/-1;display:flex;justify-content:space-between;margin:0;color:var(--text-muted);font-size:12px}
.expense-required {color:var(--danger)}
.expense-source-note {display:block;color:var(--text-muted);font-size:12px;margin-top:4px}
#expense-draft .expense-form-section[hidden] {display:none}
@media(max-width:540px){#expense-draft .expense-section-fields{grid-template-columns:minmax(0,1fr)}#expense-draft .expense-section-fields input,#expense-draft .expense-section-fields select,#expense-draft .expense-section-fields textarea{font-size:16px;min-height:44px}}

/* Sohbet kolonu genişliği (mesajlar + composer) tek yerde: sohbet.css "Tek sohbet kolonu" (UX v21).
   Buradaki eski UX v6 kuralları (composer calc(100% - 48px), kaydırma boşluğu) sonradan eklenen
   chat-session iç boşluğuyla üst üste binip composer'ı mesajlardan dar bırakıyordu; kaldırıldı. */
.agentic-shell .ag-empty .ag-welcome { margin-top:24px; }
.agentic-shell .msg.user { flex-direction:column; align-items:flex-end; gap:0; }
.agentic-shell .msg.user .msg-content {
  width:fit-content; max-width:80%; padding:10px 16px; border:0;
  border-radius:14px; background:var(--hover);
}
.agentic-shell .msg.user > .message-actions { margin-top:6px; }
.agentic-shell .ag-composer-tools .prompt-mic { margin-left:auto; }
@media(max-width:760px) {
  .agentic-shell .msg.user .msg-content { max-width:92%; }
}
