:root{
  --bg:#0e1014; --bg2:#151922; --bg3:#1c212c; --line:#252b38;
  --tx:#e6e9ef; --tx2:#9aa3b2; --tx3:#6b7484;
  --acc:#6366f1; --acc2:#818cf8;
  --ok:#22c55e; --warn:#f59e0b; --dan:#ef4444; --info:#38bdf8;
  --r:12px; --sh:0 1px 3px rgba(0,0,0,.4);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;
  background:var(--bg);color:var(--tx);font-size:15px;line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--acc2);text-decoration:none}
a:hover{text-decoration:underline}
button,input,select,textarea{font:inherit;color:inherit}

/* ---- kabuk ---- */
.shell{display:flex;min-height:100vh}
.side{
  width:230px;flex:0 0 230px;background:var(--bg2);border-right:1px solid var(--line);
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;
}
.brand{padding:18px 18px 14px;font-weight:650;letter-spacing:-.02em;display:flex;align-items:center;gap:9px;font-size:1.02rem}
.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--acc);box-shadow:0 0 10px var(--acc)}
.nav{padding:4px 10px;flex:1}
.nav a{
  display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:9px;
  color:var(--tx2);font-size:.925rem;margin-bottom:2px;text-decoration:none;transition:.12s;
}
.nav a:hover{background:var(--bg3);color:var(--tx)}
.nav a.on{background:var(--acc);color:#fff;font-weight:550}
.nav a .ct{margin-left:auto;font-size:.75rem;background:rgba(255,255,255,.08);padding:1px 7px;border-radius:20px}
.nav a.on .ct{background:rgba(255,255,255,.2)}
.nav .sec{padding:14px 12px 6px;font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;color:var(--tx3);font-weight:600}
.side-foot{padding:12px 14px;border-top:1px solid var(--line);font-size:.83rem;color:var(--tx2);display:flex;align-items:center;gap:9px}
.avatar{width:28px;height:28px;border-radius:50%;background:var(--acc);display:grid;place-items:center;font-size:.78rem;font-weight:600;color:#fff;flex:0 0 28px}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{
  display:flex;align-items:center;gap:12px;padding:14px 22px;border-bottom:1px solid var(--line);
  background:rgba(14,16,20,.85);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20;
}
.topbar h1{font-size:1.12rem;font-weight:620;letter-spacing:-.02em}
.topbar .sp{flex:1}
.wrap{padding:22px;max-width:1100px;width:100%}
.burger{display:none;background:none;border:0;font-size:1.35rem;cursor:pointer;color:var(--tx2)}

/* ---- bileşenler ---- */
.card{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.card + .card{margin-top:14px}
.card h2{font-size:.95rem;font-weight:600;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.muted{color:var(--tx2)}
.small{font-size:.83rem}
.tiny{font-size:.76rem}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}

.btn{
  display:inline-flex;align-items:center;gap:7px;background:var(--bg3);border:1px solid var(--line);
  color:var(--tx);padding:8px 14px;border-radius:9px;cursor:pointer;font-size:.88rem;font-weight:500;
  transition:.12s;text-decoration:none;
}
.btn:hover{background:#232a37;text-decoration:none}
.btn.pri{background:var(--acc);border-color:var(--acc);color:#fff}
.btn.pri:hover{background:var(--acc2)}
.btn.dan{color:#fca5a5}
.btn.dan:hover{background:#3a1d1d;border-color:#5a2a2a}
.btn.sm{padding:5px 10px;font-size:.8rem;border-radius:7px}
.btn.gh{background:transparent}

.inp,textarea.inp,select.inp{
  width:100%;background:var(--bg);border:1px solid var(--line);border-radius:9px;
  padding:9px 12px;font-size:.9rem;outline:none;transition:.12s;
}
.inp:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(99,102,241,.15)}
textarea.inp{resize:vertical;min-height:90px;line-height:1.6}
label.lbl{display:block;font-size:.8rem;color:var(--tx2);margin-bottom:5px;font-weight:500}
.field{margin-bottom:13px}

.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:20px;font-size:.74rem;font-weight:550;background:var(--bg3);color:var(--tx2)}
.badge.ok{background:rgba(34,197,94,.13);color:#4ade80}
.badge.warn{background:rgba(245,158,11,.13);color:#fbbf24}
.badge.dan{background:rgba(239,68,68,.14);color:#f87171}
.badge.info{background:rgba(56,189,248,.13);color:#7dd3fc}
.badge.acc{background:rgba(99,102,241,.16);color:var(--acc2)}

.flash{padding:11px 14px;border-radius:10px;margin-bottom:14px;font-size:.88rem;border:1px solid}
.flash.ok{background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.3);color:#86efac}
.flash.err{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.3);color:#fca5a5}
.flash.info{background:rgba(56,189,248,.1);border-color:rgba(56,189,248,.3);color:#7dd3fc}

/* ---- görev listesi ---- */
.tasks{list-style:none}
.task{
  display:flex;gap:11px;align-items:flex-start;padding:11px 12px;border-radius:10px;
  border:1px solid transparent;transition:.12s;
}
.task:hover{background:var(--bg3);border-color:var(--line)}
.task + .task{margin-top:1px}
.chk{
  flex:0 0 19px;width:19px;height:19px;margin-top:2px;border:1.8px solid var(--tx3);border-radius:50%;
  background:none;cursor:pointer;display:grid;place-items:center;transition:.12s;padding:0;
}
.chk:hover{border-color:var(--ok);background:rgba(34,197,94,.12)}
.chk.done{background:var(--ok);border-color:var(--ok);color:#06210f}
.task-b{flex:1;min-width:0}
.task-t{font-size:.92rem;line-height:1.4;word-break:break-word}
.task.is-done .task-t{text-decoration:line-through;color:var(--tx3)}
.task-m{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:4px;font-size:.76rem;color:var(--tx3)}
.task-m .od{color:#f87171;font-weight:600}
.pdot{width:7px;height:7px;border-radius:50%;flex:0 0 7px}
.empty{text-align:center;padding:34px 16px;color:var(--tx3);font-size:.88rem}

/* ---- takvim ---- */
.cal{width:100%;border-collapse:collapse;table-layout:fixed}
.cal th{padding:8px 4px;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);font-weight:600;border-bottom:1px solid var(--line)}
.cal td{border:1px solid var(--line);vertical-align:top;height:104px;padding:5px;position:relative}
.cal td.off{background:rgba(0,0,0,.18)}
.cal td.tdy{background:rgba(99,102,241,.09);border-color:var(--acc)}
.cal .dn{font-size:.76rem;color:var(--tx3);font-weight:600;display:block;margin-bottom:3px}
.cal td.tdy .dn{color:var(--acc2)}
.cal .ev{
  display:block;font-size:.72rem;padding:2px 5px;border-radius:5px;margin-bottom:2px;
  background:var(--bg3);color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  border-left:2.5px solid var(--acc);text-decoration:none;
}
.cal .ev:hover{background:#2a3141;text-decoration:none}
.cal .ev.done{opacity:.45;text-decoration:line-through}
.cal .more{font-size:.68rem;color:var(--tx3);padding-left:5px}
.cal .nt{position:absolute;bottom:3px;right:4px;font-size:.7rem;opacity:.75}

/* ---- tablo ---- */
table.tbl{width:100%;border-collapse:collapse;font-size:.87rem}
table.tbl th{text-align:left;padding:8px 10px;color:var(--tx3);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line)}
table.tbl td{padding:9px 10px;border-bottom:1px solid var(--line)}
table.tbl tr:hover td{background:var(--bg3)}

.qa{display:flex;gap:8px;margin-bottom:16px}
.qa .inp{flex:1}
.hint{font-size:.76rem;color:var(--tx3);margin-top:6px}

.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto}
.tabs a{padding:8px 13px;font-size:.87rem;color:var(--tx2);border-bottom:2px solid transparent;white-space:nowrap;text-decoration:none}
.tabs a.on{color:var(--tx);border-bottom-color:var(--acc);font-weight:550}

.stat{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}
.stat .n{font-size:1.7rem;font-weight:650;letter-spacing:-.02em;line-height:1.1}
.stat .l{font-size:.78rem;color:var(--tx3);margin-top:3px}

/* ---- giriş ---- */
.login{min-height:100vh;display:grid;place-items:center;padding:20px}
.login .box{width:100%;max-width:340px}
.login .logo{text-align:center;margin-bottom:22px}
.login .logo .t{font-size:1.3rem;font-weight:650;letter-spacing:-.02em}
.login .logo .s{font-size:.83rem;color:var(--tx3);margin-top:3px}

.dropzone{border:1.5px dashed var(--line);border-radius:10px;padding:22px;text-align:center;color:var(--tx3);font-size:.86rem;cursor:pointer;transition:.12s}
.dropzone:hover,.dropzone.over{border-color:var(--acc);background:rgba(99,102,241,.06);color:var(--tx2)}

@media(max-width:820px){
  .side{position:fixed;left:0;top:0;z-index:60;transform:translateX(-100%);transition:.2s;box-shadow:0 0 40px rgba(0,0,0,.5)}
  .side.open{transform:none}
  .burger{display:block}
  .wrap{padding:14px}
  .topbar{padding:12px 14px}
  .cal td{height:auto;min-height:62px}
  .cal .ev{font-size:.66rem}
  .backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:50}
}
