/* Ehsan Blaze Planner — Warm Fire on Black */
:root{
  --bg:#080808; --bg-card:#141414; --bg-elevated:#1E1E1E; --bg-hover:#252525;
  --border:#2A2A2A; --border-light:#333;
  --primary:#FF3B30; --primary-2:#FF6B35; --accent:#FF9500; --accent-2:#FFCC02;
  --gradient:linear-gradient(135deg,#FF3B30 0%,#FF6B35 50%,#FF9500 100%);
  --gradient-subtle:linear-gradient(135deg,rgba(255,59,48,0.12),rgba(255,149,0,0.12));
  --text:#F5F5F5; --muted:#9A9A9A; --muted2:#6B6B6B;
  --success:#00D26A; --radius:18px;
}
*{font-family:'Vazirmatn',system-ui,-apple-system,sans-serif}
.mono{font-family:'JetBrains Mono','Vazirmatn',monospace}
.outfit{font-family:'Outfit','Vazirmatn',sans-serif}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);overflow-x:hidden}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:#111}
::-webkit-scrollbar-thumb{background:linear-gradient(#FF3B30,#FF9500);border-radius:999px}
::selection{background:rgba(255,107,53,0.3)}
/* Glass */
.glass{background:rgba(20,20,20,0.8);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,0.06)}
.glass-strong{background:rgba(20,20,20,0.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.card{ background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); transition:all .35s cubic-bezier(.16,1,.3,1) }
.card:hover{ border-color:#3a3a3a; transform:translateY(-2px); box-shadow:0 10px 30px rgba(0,0,0,0.5),0 0 20px rgba(255,107,53,0.08)}
.card-glow:hover{box-shadow:0 10px 30px rgba(0,0,0,0.5),0 0 28px rgba(255,107,53,0.15)}
.btn-primary{background:var(--gradient);color:white;border:none;border-radius:999px;padding:10px 20px;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 4px 15px rgba(255,59,48,0.35);position:relative;overflow:hidden}
.btn-primary::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,0.2),transparent);opacity:0;transition:opacity .2s}
.btn-primary:hover{transform:translateY(-1px) scale(1.02);box-shadow:0 8px 25px rgba(255,59,48,0.45)}
.btn-primary:hover::before{opacity:1}
.btn-primary:active{transform:scale(0.97)}
.btn-ghost{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:8px 16px;transition:all .2s}
.btn-ghost:hover{background:var(--bg-hover);border-color:#3a3a3a}
.input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;padding:11px 14px;color:var(--text);outline:none;transition:all .2s;width:100%}
.input::placeholder{color:var(--muted2)}
.input:focus{border-color:#FF6B35;box-shadow:0 0 0 3px rgba(255,107,53,0.15);background:#222}
.badge{font-size:11px;padding:4px 9px;border-radius:999px;font-weight:700;letter-spacing:.02em}
.badge-high{background:rgba(255,59,48,0.15);color:#FF3B30;border:1px solid rgba(255,59,48,0.25)}
.badge-medium{background:rgba(255,107,53,0.15);color:#FF8A3D;border:1px solid rgba(255,107,53,0.25)}
.badge-low{background:rgba(255,204,2,0.12);color:#FFCC02;border:1px solid rgba(255,204,2,0.22)}
.badge-cat{background:#222;color:#ccc;border:1px solid #333}
/* Animations */
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes float2{0%,100%{transform:translateY(0) translateX(0)}50%{transform:translateY(-14px) translateX(6px)}}
@keyframes dash{0%{stroke-dashoffset:1000}100%{stroke-dashoffset:0}}
@keyframes pulse-glow{0%,100%{opacity:0.6;filter:blur(8px)}50%{opacity:1;filter:blur(12px)}}
@keyframes slideIn{from{opacity:0;transform:translateY(12px) scale(0.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes confetti{0%{transform:translateY(0) rotate(0) scale(1);opacity:1}100%{transform:translateY(-60px) rotate(180deg) scale(0);opacity:0}}
@keyframes tick-draw{from{stroke-dashoffset:20}to{stroke-dashoffset:0}}
@keyframes ring{0%{transform:scale(1)}50%{transform:scale(1.04)}100%{transform:scale(1)}}
.float{animation:float 6s ease-in-out infinite}
.float2{animation:float2 7s ease-in-out infinite}
.slide-in{animation:slideIn .45s cubic-bezier(.16,1,.3,1) both}
.shimmer{background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,0.06) 50%,transparent 75%);background-size:200% 100%;animation:shimmer 2s infinite}
.pulse-glow{animation:pulse-glow 3s ease-in-out infinite}
/* Particles bg */
.particles{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.particle{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(255,107,53,0.18),transparent 70%);filter:blur(1px)}
/* Pomodoro ring */
.pomo-ring{transform:rotate(-90deg);transform-origin:50% 50%}
.pomo-bg{fill:none;stroke:#222;stroke-width:8}
.pomo-progress{fill:none;stroke:url(#pomoGrad);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .5s linear}
/* Calendar */
.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:12px;cursor:pointer;position:relative;font-size:13px;transition:all .2s;border:1px solid transparent}
.cal-day:hover{background:#222;border-color:#333}
.cal-day.today{background:var(--gradient);color:white;font-weight:800;box-shadow:0 4px 12px rgba(255,59,48,0.35)}
.cal-day.selected{border-color:#FF6B35;background:rgba(255,107,53,0.12);color:#FF8A3D;font-weight:700}
.cal-day.has-task::after{content:'';position:absolute;bottom:3px;left:50%;transform:translateX(-50%);width:4px;height:4px;background:#FF6B35;border-radius:50%}
.cal-day.other{color:#444}
.cal-day.other:hover{color:#666}
/* Heatmap */
.heat{width:14px;height:14px;border-radius:4px;background:#1a1a1a;border:1px solid #222;transition:all .2s}
.heat.l1{background:rgba(255,107,53,0.25);border-color:rgba(255,107,53,0.3)}
.heat.l2{background:rgba(255,107,53,0.55);border-color:rgba(255,107,53,0.5)}
.heat.l3{background:rgba(255,59,48,0.85);border-color:rgba(255,59,48,0.6)}
.heat:hover{transform:scale(1.2);z-index:2}
/* Task */
.task{border-radius:16px;background:var(--bg-card);border:1px solid var(--border);padding:14px;transition:all .25s;position:relative;overflow:hidden}
.task::before{content:'';position:absolute;inset-inline-start:0;top:0;bottom:0;width:3px;background:var(--gradient);opacity:0;transition:opacity .2s}
.task:hover{border-color:#3a3a3a;transform:translateY(-1px);box-shadow:0 8px 24px rgba(0,0,0,0.45)}
.task:hover::before{opacity:1}
.task.done{opacity:0.55}
.task.done .task-title{text-decoration:line-through;color:var(--muted)}
.task.done::before{opacity:0.3}
.check{width:24px;height:24px;border-radius:999px;border:2px solid #333;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0;background:#111}
.check:hover{border-color:#FF6B35;background:rgba(255,107,53,0.1)}
.check.done{background:var(--gradient);border-color:transparent;color:white;box-shadow:0 2px 10px rgba(255,59,48,0.4)}
.check.done svg{animation:tick-draw .3s ease}
.task-actions{opacity:0;transition:opacity .2s}
.task:hover .task-actions{opacity:1}
@media(max-width:1024px){.task-actions{opacity:1}}
/* Donut */
.donut{transform:rotate(-90deg)}
.donut-bg{fill:none;stroke:#222;stroke-width:10}
.donut-fg{fill:none;stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset 1.2s cubic-bezier(.16,1,.3,1)}
/* Scroll hide */
.no-scrollbar::-webkit-scrollbar{display:none}
.no-scrollbar{scrollbar-width:none}
/* Focus mode */
.focus-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.85);backdrop-filter:blur(12px);z-index:50;display:none;align-items:center;justify-content:center;padding:24px}
.focus-overlay.open{display:flex}
.focus-card{background:linear-gradient(135deg,#1a1a1a,#141414);border:1px solid #333;border-radius:24px;padding:32px;max-width:560px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,0.7),0 0 40px rgba(255,107,53,0.1)}
/* Tooltip */
.tip{position:relative}
.tip:hover::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:#222;color:#fff;font-size:11px;padding:5px 8px;border-radius:8px;white-space:nowrap;border:1px solid #333;z-index:10}
/* Range */
input[type="range"]{appearance:none;height:4px;background:#222;border-radius:999px;outline:none}
input[type="range"]::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border-radius:50%;background:var(--gradient);cursor:pointer;box-shadow:0 2px 8px rgba(255,59,48,0.4);border:2px solid white}
/* Drag */
.dragging{opacity:0.4;transform:rotate(1deg) scale(0.98)}
.drag-over{border-color:#FF6B35!important;background:rgba(255,107,53,0.06)!important}
/* Modal */
.modal{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,0.6);backdrop-filter:blur(8px)}
.modal.open{display:flex}
.modal-box{background:#141414;border:1px solid #2A2A2A;border-radius:20px;padding:24px;width:100%;max-width:520px;max-height:90vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,0.7);animation:slideIn .35s cubic-bezier(.16,1,.3,1)}
/* Bottom nav */
.bnav{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);background:rgba(20,20,20,0.92);backdrop-filter:blur(20px);border:1px solid #2A2A2A;border-radius:999px;padding:6px;display:flex;gap:4px;z-index:40;box-shadow:0 10px 30px rgba(0,0,0,0.5)}
.bnav button{padding:10px 16px;border-radius:999px;font-size:13px;font-weight:600;color:var(--muted);transition:all .2s;display:flex;align-items:center;gap:6px}
.bnav button.active{background:var(--gradient);color:white;box-shadow:0 4px 12px rgba(255,59,48,0.35)}
/* Prose */
.quote{position:relative;padding:16px;border-radius:14px;background:var(--gradient-subtle);border:1px solid rgba(255,107,53,0.15);overflow:hidden}
.quote::before{content:'“';position:absolute;top:-8px;right:12px;font-size:52px;color:rgba(255,107,53,0.12);font-family:serif;line-height:1}
