*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{--primary:#10B981;--primary-l:#34D399;--accent:#6366F1;--bg:#0F172A;--card:rgba(15,23,42,0.75);--border:rgba(16,185,129,0.12);--border-h:rgba(16,185,129,0.25);--text:#E2E8F0;--muted:#94A3B8;--dim:#475569;--r:12px;--rs:8px;--t:250ms ease;--font:'Inter',-apple-system,sans-serif}
html{font-size:16px;-webkit-font-smoothing:antialiased}
body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;line-height:1.6}
body::before{content:'';position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse 50% 40% at 20% 10%,rgba(16,185,129,0.04),transparent 70%),radial-gradient(ellipse 40% 50% at 80% 90%,rgba(99,102,241,0.03),transparent 70%)}
.app{position:relative;z-index:1;max-width:720px;margin:0 auto;padding:0 20px}
.hidden{display:none!important}

.header{padding:32px 0 16px;text-align:center}
.logo{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:6px}
.logo h1{font-size:1.5rem;font-weight:700;background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.subtitle{color:var(--muted);font-size:0.9rem}

.main{display:flex;flex-direction:column;gap:16px;padding-bottom:40px}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.toolbar select{background:rgba(0,0,0,0.3);border:1px solid var(--border);border-radius:var(--rs);padding:8px 12px;font-family:var(--font);font-size:0.82rem;color:var(--text);cursor:pointer}

.progress-bar-wrap{display:flex;align-items:center;gap:10px}
.progress-bar{flex:1;height:8px;background:rgba(16,185,129,0.1);border-radius:4px;overflow:hidden}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-l));border-radius:4px;transition:width 0.4s ease;width:0}
.progress-text{font-size:0.85rem;font-weight:600;color:var(--primary-l);min-width:36px}

.checklist{display:flex;flex-direction:column;gap:8px}
.checklist-item{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:14px 16px;backdrop-filter:blur(12px);display:flex;flex-direction:column;gap:8px;cursor:grab;transition:border-color var(--t)}
.checklist-item:hover{border-color:var(--border-h)}
.checklist-item.dragging{opacity:0.5}
.item-top{display:flex;align-items:center;gap:10px}
.drag-handle{color:var(--dim);font-size:1rem;cursor:grab;user-select:none}
.item-title{flex:1;background:transparent;border:none;font-family:var(--font);font-size:0.9rem;font-weight:500;color:var(--text)}
.item-title:focus{outline:none}
.item-status{padding:4px 10px;border-radius:12px;font-size:0.7rem;font-weight:600;text-transform:uppercase;cursor:pointer;border:none;transition:all var(--t)}
.status-pending{background:rgba(251,191,36,0.15);color:#FBBF24}
.status-review{background:rgba(99,102,241,0.15);color:#818CF8}
.status-approved{background:rgba(16,185,129,0.15);color:#34D399}
.item-meta{display:flex;gap:8px;align-items:center;font-size:0.8rem}
.item-meta input{background:rgba(0,0,0,0.2);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-family:var(--font);font-size:0.8rem;color:var(--muted);width:120px}
.item-meta input:focus{outline:none;border-color:var(--primary)}
.item-delete{background:none;border:none;color:var(--dim);cursor:pointer;font-size:0.9rem;padding:4px;border-radius:4px}
.item-delete:hover{color:#F87171}

.btn{display:inline-flex;align-items:center;gap:6px;font-family:var(--font);font-size:0.85rem;font-weight:500;padding:8px 14px;border-radius:var(--rs);border:none;cursor:pointer;transition:all var(--t)}
.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-l));color:#fff;box-shadow:0 4px 14px rgba(16,185,129,0.3)}
.btn-primary:hover{box-shadow:0 6px 20px rgba(16,185,129,0.45);transform:translateY(-1px)}
.btn-ghost{background:rgba(16,185,129,0.08);color:var(--primary-l);border:1px solid var(--border)}
.btn-ghost:hover{background:rgba(16,185,129,0.15)}
.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}

.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);padding:10px 20px;background:var(--primary);color:#fff;border-radius:var(--rs);font-size:0.85rem;font-weight:500;box-shadow:0 8px 32px rgba(16,185,129,0.4);opacity:0;transition:all 300ms ease;z-index:100;pointer-events:none}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.footer{text-align:center;padding:16px 0 32px;color:var(--dim);font-size:0.75rem}
@media(max-width:600px){.toolbar{flex-direction:column}.header{padding:24px 0 12px}.logo h1{font-size:1.3rem}}
