*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:Pretendard,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.app{
  --ink:#0f1f2b; --muted:#5b7384; --line:rgba(120,150,170,.18);
  --accent:#0fb5c9; --accent2:#3b82f6; --violet:#a78bfa;
  --up:#10b981; --warn:#f5a623; --down:#ef5b6e;
  --glass:rgba(255,255,255,.62); --glass-2:rgba(255,255,255,.8);
  --stroke:rgba(255,255,255,.7); --panel:rgba(120,150,170,.1);
  --card-glass:rgba(255,255,255,.55); --grid:rgba(120,150,170,.2);
  --bg1:#e9f6fb; --bg2:#eef1fe; --bg3:#f5f3ff;
  --shadow:0 10px 30px rgba(20,40,60,.1); --shadow-lg:0 26px 64px rgba(20,40,80,.16);
  color:var(--ink); position:relative; min-height:100vh; overflow:hidden;
  background:linear-gradient(180deg,var(--bg1),var(--bg2) 42%,var(--bg3));
}
.app[data-theme="dark"]{
  --ink:#e7f0f6; --muted:#90a6b4; --line:rgba(140,170,190,.14);
  --glass:rgba(20,30,42,.55); --glass-2:rgba(28,40,54,.62);
  --stroke:rgba(255,255,255,.1); --panel:rgba(140,170,190,.1);
  --card-glass:rgba(26,38,52,.5); --grid:rgba(140,170,190,.16);
  --bg1:#0a1622; --bg2:#0b1220; --bg3:#10121e;
  --shadow:0 10px 30px rgba(0,0,0,.4); --shadow-lg:0 26px 64px rgba(0,0,0,.55);
}
.blob{position:fixed;border-radius:50%;filter:blur(80px);pointer-events:none;z-index:0}
.kcard{transition:transform .26s cubic-bezier(.2,.7,.2,1),box-shadow .26s;animation:rise .5s cubic-bezier(.2,.7,.2,1) both}
.kcard:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)!important}
input::placeholder{color:rgba(255,255,255,.7)}
@keyframes dash{from{stroke-dashoffset:var(--c)}to{stroke-dashoffset:var(--o)}}
@keyframes shine{0%{transform:translateX(-120%)}55%,100%{transform:translateX(120%)}}
@keyframes floatA{0%,100%{transform:translate(0,0)}50%{transform:translate(40px,30px)}}
@keyframes floatB{0%,100%{transform:translate(0,0)}50%{transform:translate(-50px,20px)}}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes slidein{from{transform:translateX(-100%)}to{transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (max-width:760px){
  .dbgrid{grid-template-columns:1fr!important}
  .today-card{flex-direction:column!important}
  .report-2col{grid-template-columns:1fr!important}
}
