:root{--bg:#f4f6fa;--panel:#fff;--panel2:#f8fafc;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--primary:#6d3df5;--primary2:#8b5cf6;--danger:#dc2626;--warning:#d97706;--success:#059669;--info:#2563eb;--sidebar:#111827;--shadow:0 12px 30px rgba(17,24,39,.07);--r:18px}
*{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text);background:var(--bg);font-size:14px}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:254px;background:var(--sidebar);color:#fff;padding:24px 16px 18px;display:flex;flex-direction:column;z-index:40}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 24px}.brand-mark{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-size:21px;font-weight:800;background:linear-gradient(135deg,#8b5cf6,#5b21b6);box-shadow:0 9px 22px rgba(124,58,237,.35)}.brand strong{display:block;font-size:15px}.brand span{display:block;font-size:11px;color:#9ca3af;margin-top:3px}.nav-list{display:grid;gap:6px}.nav-item{display:flex;align-items:center;gap:12px;color:#9ca3af;text-decoration:none;padding:11px 12px;border-radius:12px;font-weight:600;transition:.2s}.nav-item:hover{background:#1f2937;color:#fff}.nav-item.active{background:linear-gradient(90deg,rgba(124,58,237,.28),rgba(124,58,237,.10));color:#fff;box-shadow:inset 3px 0 #8b5cf6}.sidebar-user{margin-top:auto;border-top:1px solid #283242;padding:16px 4px 0;display:flex;align-items:center;gap:10px}.avatar{width:38px;height:38px;flex:0 0 38px;border-radius:12px;background:var(--avatar,#7c3aed);display:grid;place-items:center;color:#fff;font-weight:800}.sidebar-user-info{min-width:0;flex:1}.sidebar-user-info strong,.sidebar-user-info span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-info strong{font-size:12px}.sidebar-user-info span{color:#9ca3af;font-size:10px;margin-top:2px}.main-content{margin-left:254px;min-height:100vh}.topbar{height:86px;background:rgba(255,255,255,.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 32px;position:sticky;top:0;z-index:30}.topbar-title{flex:1}.topbar-title p{margin:0 0 2px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700}.topbar-title h1{margin:0;font-size:24px;letter-spacing:-.03em}.topbar-actions{display:flex;gap:10px}.page-content{padding:28px 32px 100px;max-width:1600px;margin:0 auto}.btn{appearance:none;border:0;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border-radius:11px;font:inherit;font-weight:700;cursor:pointer;transition:.15s;white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn-primary{color:#fff;background:linear-gradient(135deg,var(--primary2),var(--primary));box-shadow:0 8px 18px rgba(109,61,245,.22)}.btn-secondary{background:#fff;color:var(--text);border:1px solid var(--border)}.btn-danger{background:#fee2e2;color:#b91c1c}.btn-sm{padding:7px 10px;border-radius:9px;font-size:12px}.icon-btn{width:36px;height:36px;border-radius:10px;border:1px solid var(--border);background:#fff;display:inline-grid;place-items:center;color:#4b5563;text-decoration:none;cursor:pointer}.icon-btn.ghost{background:transparent;border:0;color:#9ca3af}.mobile-menu{display:none}.grid{display:grid;gap:18px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.task-detail-grid{grid-template-columns:2fr 1fr 1fr}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow)}.card-pad{padding:20px}.metric{padding:19px;display:flex;align-items:center;gap:14px}.metric-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center}.metric-icon.purple{background:#f1eafe;color:#6d3df5}.metric-icon.blue{background:#e8f0ff;color:#2563eb}.metric-icon.amber{background:#fff4dd;color:#d97706}.metric-icon.green{background:#e5f8f1;color:#059669}.metric small{display:block;color:var(--muted);font-weight:600;margin-bottom:4px}.metric strong{display:block;font-size:25px;letter-spacing:-.04em}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:28px 0 12px}.section-head h2{margin:0;font-size:17px}.section-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:780px}.data-table th,.data-table td{padding:14px 16px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.data-table th{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#fbfcfe}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fafbff}.task-title{font-weight:750}.subtext{font-size:11px;color:var(--muted);margin-top:3px}.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap}.status-todo{background:#f3f4f6;color:#4b5563}.status-progress{background:#e8f0ff;color:#1d4ed8}.status-review{background:#fff4dd;color:#b45309}.status-done{background:#e7f8f1;color:#047857}.status-cancelled{background:#feecec;color:#b91c1c}.priority-low{background:#f3f4f6;color:#6b7280}.priority-normal{background:#ede9fe;color:#6d28d9}.priority-high{background:#fff1e7;color:#c2410c}.priority-urgent{background:#fee2e2;color:#b91c1c}.dot{width:7px;height:7px;border-radius:50%;background:currentColor}.overdue{color:#b91c1c;font-weight:700}.due-soon{color:#b45309;font-weight:700}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px}.search-box{position:relative;flex:1}.search-box svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#9ca3af}.search-box input{padding-left:40px}.form-control,.form-select,.form-textarea{width:100%;border:1px solid #dfe3ea;border-radius:11px;background:#fff;color:var(--text);padding:11px 12px;font:inherit;outline:none;transition:.15s}.form-control:focus,.form-select:focus,.form-textarea:focus{border-color:#a78bfa;box-shadow:0 0 0 3px #ede9fe}.form-textarea{min-height:110px;resize:vertical}.form-group label{display:block;font-size:11px;font-weight:800;margin-bottom:7px;color:#4b5563}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-group.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.alert{padding:12px 14px;border-radius:12px;margin-bottom:16px;font-weight:650}.alert.success{background:#e7f8f1;color:#047857;border:1px solid #b7eed9}.alert.error{background:#feecec;color:#b91c1c;border:1px solid #fecaca}.alert.info{background:#e8f0ff;color:#1d4ed8;border:1px solid #c7d8ff}.empty{padding:38px 20px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--text);font-size:15px;margin-bottom:6px}.kanban{display:grid;grid-template-columns:repeat(4,minmax(260px,1fr));gap:14px;overflow:auto;padding-bottom:8px}.kanban-col{background:#eef1f6;border-radius:16px;padding:12px;min-width:260px}.kanban-head{display:flex;justify-content:space-between;align-items:center;padding:5px 4px 12px;font-weight:800;font-size:12px}.kanban-count{background:#fff;border:1px solid var(--border);padding:3px 7px;border-radius:999px;font-size:10px}.task-card{background:#fff;border:1px solid var(--border);border-radius:13px;padding:13px;margin-bottom:9px;box-shadow:0 5px 15px rgba(17,24,39,.04)}.task-card h3{font-size:13px;margin:0 0 8px}.task-card .meta{display:flex;gap:6px;flex-wrap:wrap}.task-card .task-footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:10px;border-top:1px solid #eef0f4;font-size:10px;color:var(--muted)}.progress{height:7px;background:#edf0f4;border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,#8b5cf6,#6d3df5);border-radius:999px}.client-card{padding:18px}.client-head{display:flex;align-items:center;gap:12px}.client-logo{width:42px;height:42px;border-radius:12px;background:var(--client-color,#7c3aed);display:grid;place-items:center;color:#fff;font-weight:800}.client-card h3{margin:0;font-size:14px}.client-card .info{display:grid;gap:7px;margin:14px 0;color:var(--muted);font-size:12px}.client-card .footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid var(--border)}.calendar-wrap{overflow:auto}.calendar{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));min-width:840px;border-left:1px solid var(--border);border-top:1px solid var(--border)}.calendar-weekday{background:#fafbfc;padding:10px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.calendar-day{min-height:125px;padding:9px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff}.calendar-day.muted{background:#fafafa;color:#c0c4cc}.calendar-day.today{background:#faf8ff;box-shadow:inset 0 0 0 2px #8b5cf6}.day-number{font-weight:800;font-size:11px;margin-bottom:7px}.calendar-item{display:block;padding:5px 7px;border-radius:7px;background:#eee9fe;color:#5b21b6;text-decoration:none;font-size:9px;font-weight:700;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-item.over{background:#fee2e2;color:#991b1b}.activity-list{display:grid}.activity-item{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--border)}.activity-item:last-child{border-bottom:0}.activity-dot{width:9px;height:9px;border-radius:50%;background:#8b5cf6;margin-top:5px;box-shadow:0 0 0 4px #ede9fe}.activity-item strong{display:block;font-size:12px}.activity-item span{display:block;color:var(--muted);font-size:10px;margin-top:3px}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.login-visual{background:radial-gradient(circle at 25% 15%,#8455ff 0,transparent 32%),radial-gradient(circle at 75% 70%,#3b1d82 0,transparent 30%),#111827;position:relative;overflow:hidden;color:#fff;padding:52px}.login-visual:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(to bottom,black,transparent)}.login-copy{position:relative;z-index:1;max-width:520px;margin-top:24vh}.login-copy .brand-mark{margin-bottom:28px}.login-copy h1{font-size:48px;line-height:1.02;letter-spacing:-.05em;margin:0 0 18px}.login-copy p{color:#cbd5e1;font-size:15px;line-height:1.7}.login-form-side{display:grid;place-items:center;padding:32px}.login-box{width:min(410px,100%)}.login-box h2{font-size:26px;letter-spacing:-.03em;margin:0}.login-box>p{color:var(--muted);margin:8px 0 24px}.login-box .form-group{margin-bottom:14px}.login-box .btn{width:100%;margin-top:8px;padding:12px}.mobile-bottom-nav{display:none}.install-note{font-size:11px;color:var(--muted);line-height:1.6;margin-top:14px}
@media(max-width:1100px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){body{font-size:13px}.sidebar{transform:translateX(-100%);transition:.22s;width:270px;box-shadow:20px 0 50px rgba(0,0,0,.18)}.sidebar.open{transform:translateX(0)}.main-content{margin-left:0}.topbar{height:72px;padding:0 16px;gap:11px}.mobile-menu{display:inline-grid}.topbar-title p{display:none}.topbar-title h1{font-size:19px}.topbar-actions .btn span.hide-mobile{display:none}.page-content{padding:18px 14px 92px}.grid-4,.grid-3,.grid-2{grid-template-columns:1fr 1fr;gap:10px}.task-detail-grid{grid-template-columns:1fr 1fr}.task-detail-grid>div:first-child{grid-column:1/-1;grid-row:auto!important}.metric{padding:14px;gap:10px}.metric-icon{width:40px;height:40px;border-radius:12px}.metric small{font-size:10px}.metric strong{font-size:21px}.card{border-radius:15px}.card-pad{padding:15px}.section-head{margin:22px 0 10px}.toolbar{align-items:stretch;flex-wrap:wrap}.search-box{flex-basis:100%}.form-grid{grid-template-columns:1fr}.mobile-bottom-nav{position:fixed;display:grid;grid-template-columns:1fr 1fr 64px 1fr 1fr;align-items:center;left:0;right:0;bottom:0;z-index:35;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-top:1px solid var(--border);padding:7px 8px calc(7px + env(safe-area-inset-bottom))}.mobile-bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:#6b7280;font-size:9px;font-weight:700}.mobile-bottom-nav .mobile-add{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,#8b5cf6,#6d3df5);color:#fff;place-self:center;justify-content:center;margin-top:-24px;box-shadow:0 10px 22px rgba(109,61,245,.3)}.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-form-side{min-height:100vh;padding:24px}.kanban{margin-right:-14px}.data-table{min-width:690px}.calendar{min-width:760px;grid-template-columns:repeat(7,minmax(108px,1fr))}}
@media(max-width:520px){.grid-4,.grid-3,.grid-2,.task-detail-grid{grid-template-columns:1fr}.task-detail-grid>div:first-child{grid-column:auto}.topbar-actions .btn-secondary{display:none}.metric{min-height:72px}.section-head{align-items:center}.section-head p{display:none}.form-actions{position:sticky;bottom:65px;background:linear-gradient(transparent,var(--bg) 25%);padding-top:20px}.form-actions .btn{flex:1}.client-card{padding:15px}}

/* v3 Finans ve ajans analitiği */
.metric-icon.red{background:#feecec;color:#b91c1c}.metric-caption{display:block;color:var(--muted);font-size:10px;margin-top:3px}.finance-banner{padding:24px 26px;background:linear-gradient(135deg,#111827,#1f2937);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px;overflow:hidden;position:relative}.finance-banner:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-80px;top:-120px;background:radial-gradient(circle,rgba(139,92,246,.45),transparent 68%)}.finance-banner>div{position:relative;z-index:1}.finance-banner h2{font-size:24px;letter-spacing:-.04em;margin:10px 0 6px}.finance-banner p{color:#cbd5e1;max-width:720px;margin:0;line-height:1.6;font-size:12px}.finance-lock{display:inline-flex;align-items:center;gap:6px;font-size:9px;font-weight:900;letter-spacing:.08em;color:#ddd6fe;background:rgba(124,58,237,.2);border:1px solid rgba(167,139,250,.28);padding:6px 9px;border-radius:999px}.finance-range{text-align:right;min-width:180px}.finance-range small{display:block;color:#9ca3af;font-size:9px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.finance-range strong{font-size:13px}.finance-filter{margin-top:16px;background:#fff;border:1px solid var(--border);border-radius:15px;padding:10px;box-shadow:0 8px 22px rgba(17,24,39,.04)}.period-switch{display:flex;gap:6px}.finance-private{border-color:#ddd6fe;background:linear-gradient(180deg,#fff,#fdfbff)}.finance-note{padding:12px 14px;border-radius:11px;background:#f5f3ff;border:1px solid #e9e2ff;color:#5b21b6;font-size:11px;line-height:1.6}.money-large{font-size:25px;font-weight:850;letter-spacing:-.04em;margin:7px 0 4px}.money-positive{color:#047857}.money-negative{color:#b91c1c}.finance-table{min-width:560px}.finance-table td,.finance-table th{padding:12px 14px}.finance-secondary{margin-top:18px}
@media(max-width:1000px){.finance-filter .period-switch{flex-basis:100%}.finance-filter .form-control,.finance-filter .form-select{max-width:none!important;flex:1;min-width:145px}.finance-banner{align-items:flex-start}.finance-range{min-width:150px}}
@media(max-width:620px){.finance-banner{padding:20px;display:block}.finance-banner h2{font-size:21px}.finance-range{text-align:left;margin-top:18px}.finance-filter{display:grid;grid-template-columns:1fr 1fr}.finance-filter .period-switch{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr)}.finance-filter .form-control,.finance-filter .form-select,.finance-filter>.btn{max-width:none!important;width:100%}.finance-metrics.grid-4{grid-template-columns:1fr 1fr}.finance-metrics .metric{min-width:0}.finance-metrics .metric strong{font-size:18px}.finance-secondary.grid-3{grid-template-columns:1fr}.money-large{font-size:22px}}
@media(max-width:390px){.finance-metrics.grid-4{grid-template-columns:1fr}.finance-filter{grid-template-columns:1fr}.finance-filter .period-switch{grid-template-columns:1fr 1fr 1fr}.finance-filter .form-control,.finance-filter .form-select,.finance-filter>.btn{grid-column:1/-1}}
.task-finance-mini{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:8px 9px;border-radius:9px;background:#faf8ff;border:1px solid #eee8ff;font-size:10px}.task-finance-mini strong{color:#5b21b6}.task-finance-mini span{color:var(--muted)}

/* v3.1 Takvim: proje + iş ayrımı */
.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;padding:15px 16px;border-bottom:1px solid var(--border)}
.calendar-toolbar>strong{font-size:16px}
.calendar-item{border-left:3px solid var(--event-color,#6d3df5)!important;display:flex!important;align-items:center;gap:6px;min-width:0}
.calendar-item.project-event{background:linear-gradient(90deg,#f5f3ff,#faf9ff);font-weight:800}
.calendar-item.task-event{background:#f8fafc}
.calendar-type{width:18px;height:18px;min-width:18px;border-radius:6px;display:inline-grid;place-items:center;font-size:9px;font-weight:900;background:var(--event-color,#6d3df5);color:#fff}
.calendar-item-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.calendar-item.over{background:#fff1f2!important;color:#b91c1c}
.calendar-more{padding:2px 4px}
.calendar-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.legend-item{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:750;color:#4b5563}
.legend-chip{width:22px;height:22px;border-radius:7px;display:inline-grid;place-items:center;font-size:10px;font-weight:900;color:#fff}
.legend-chip.project{background:#6d3df5}.legend-chip.task{background:#334155}
.project-no-task{padding:12px;border:1px dashed #ddd6fe;background:#faf8ff;border-radius:11px;display:flex;flex-direction:column;gap:4px}.project-no-task strong{font-size:11px;color:#5b21b6}.project-no-task span{font-size:10px;color:var(--muted);line-height:1.5}.project-first-task{border-color:#ddd6fe;background:linear-gradient(180deg,#fff,#faf8ff)}.toggle-row{display:flex;align-items:flex-start;gap:10px;cursor:pointer;margin-bottom:16px}.toggle-row input{width:18px;height:18px;margin-top:2px;accent-color:#6d3df5}.toggle-row span{display:flex;flex-direction:column;gap:3px}.toggle-row strong{font-size:12px}.toggle-row small{font-size:10px;color:var(--muted);line-height:1.5}


/* v3.2.1 iOS PWA safe-area / topbar fix */
@media(max-width:820px){
  .topbar{
    height:calc(72px + env(safe-area-inset-top));
    min-height:calc(72px + env(safe-area-inset-top));
    padding:env(safe-area-inset-top) 16px 0;
    align-items:center;
  }
  .sidebar{
    padding-top:calc(24px + env(safe-area-inset-top));
    padding-bottom:calc(18px + env(safe-area-inset-bottom));
  }
  .mobile-menu,.topbar-actions{position:relative;z-index:2}
}
@supports(padding-top:constant(safe-area-inset-top)){
  @media(max-width:820px){
    .topbar{height:calc(72px + constant(safe-area-inset-top));min-height:calc(72px + constant(safe-area-inset-top));padding:constant(safe-area-inset-top) 16px 0}
    .sidebar{padding-top:calc(24px + constant(safe-area-inset-top));padding-bottom:calc(18px + constant(safe-area-inset-bottom))}
  }
}

/* v3.2.2 iPhone mobile form action / bottom navigation collision fix */
@media(max-width:520px){
  /* Fixed bottom navigation + iOS home indicator için gerçek scroll boşluğu. */
  .page-content{
    padding-bottom:calc(160px + env(safe-area-inset-bottom));
  }

  /* Form kaydetme alanı alt navigasyonun ve ortadaki + butonunun üstünde kalır. */
  .form-actions{
    position:sticky;
    bottom:calc(88px + env(safe-area-inset-bottom));
    z-index:34;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);
    gap:10px;
    margin:18px -2px 0;
    padding:10px;
    border:1px solid rgba(223,227,234,.92);
    border-radius:16px;
    background:rgba(255,255,255,.96);
    -webkit-backdrop-filter:blur(16px);
    backdrop-filter:blur(16px);
    box-shadow:0 12px 34px rgba(17,24,39,.10);
  }
  .form-actions .btn{
    width:100%;
    min-width:0;
    min-height:46px;
    padding:10px 9px;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  /* Finans kartı ve son alanlar sabit nav arkasında kaybolmasın. */
  form > .card:last-of-type{
    margin-bottom:4px;
  }
}
@supports(padding-bottom:constant(safe-area-inset-bottom)){
  @media(max-width:520px){
    .page-content{padding-bottom:calc(160px + constant(safe-area-inset-bottom))}
    .form-actions{bottom:calc(88px + constant(safe-area-inset-bottom))}
  }
}
