*{margin:0;padding:0;box-sizing:border-box}
:root{--purple:#3d2b7a;--teal:#1a6b5a;--grad:linear-gradient(135deg,var(--purple),var(--teal));--light:#f5f5f5;--dark:#1a1a2e;--border:#e0e0e0;--success:#2e7d32;--error:#d32f2f}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--light);color:var(--dark);min-height:100vh}
.nav{background:#fff;padding:1rem 1.5rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}
.nav-brand{font-weight:700;color:var(--purple);text-decoration:none;font-size:1.15rem}
.nav-links{display:flex;gap:.3rem;flex-wrap:wrap}
.nav-links a{padding:.5rem .8rem;color:#555;text-decoration:none;border-radius:6px;font-size:.9rem}
.nav-links a.active,.nav-links a:hover{background:var(--grad);color:#fff}
.container{max-width:980px;margin:0 auto;padding:1.5rem}
.card{background:#fff;border-radius:12px;padding:1.6rem;margin-bottom:1.4rem;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.card h2{margin-bottom:1rem;font-size:1.25rem}
.auth-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--grad);padding:1rem}
.auth-box{background:#fff;padding:2.5rem;border-radius:12px;max-width:420px;width:100%;box-shadow:0 10px 40px rgba(0,0,0,.2)}
.auth-box h1{font-size:1.6rem;margin-bottom:.3rem}
.auth-box .sub{color:#666;margin-bottom:1.6rem;font-size:.9rem}
.form-group{margin-bottom:1.1rem}
.form-group label{display:block;margin-bottom:.35rem;font-weight:600;font-size:.92rem}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:.8rem;border:1px solid var(--border);border-radius:6px;font-size:1rem;font-family:inherit}
.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(26,107,90,.12)}
.btn{display:inline-block;padding:.85rem 1.4rem;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;font-family:inherit;text-decoration:none;text-align:center}
.btn-primary{background:var(--grad);color:#fff}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 5px 15px rgba(0,0,0,.2)}
.btn-outline{background:#fff;color:var(--teal);border:2px solid var(--teal)}
.btn-full{width:100%}
.btn-small{padding:.45rem .8rem;font-size:.83rem}
.msg{padding:.9rem;border-radius:6px;margin-bottom:1rem;display:none;font-size:.92rem}
.msg.err{background:#ffebee;color:var(--error);border-left:4px solid var(--error)}
.msg.ok{background:#e8f5e9;color:var(--success);border-left:4px solid var(--success)}
.msg.show{display:block}
.badge{display:inline-block;padding:.32rem .75rem;border-radius:20px;font-size:.74rem;font-weight:600;white-space:nowrap}
.b-blue{background:#e3f2fd;color:#1976d2}.b-orange{background:#fff3e0;color:#f57c00}
.b-purple{background:#f3e5f5;color:#7b1fa2}.b-green{background:#e8f5e9;color:var(--success)}
.b-grey{background:#eee;color:#555}.b-red{background:#ffebee;color:var(--error)}
table{width:100%;border-collapse:collapse;font-size:.92rem}
th{background:var(--light);padding:.75rem;text-align:left;border-bottom:2px solid var(--border)}
td{padding:.75rem;border-bottom:1px solid var(--border)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.4rem}
.stat{background:var(--grad);color:#fff;border-radius:12px;padding:1.1rem;text-align:center}
.stat .v{font-size:1.9rem;font-weight:700}
.stat .l{font-size:.82rem;opacity:.92}
.empty{text-align:center;color:#888;padding:1.6rem}
/* tracker stages */
.stage{display:flex;align-items:flex-start;gap:.9rem;padding:.85rem 0;border-bottom:1px solid #f0f0f0}
.stage:last-child{border-bottom:none}
.dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.85rem;flex-shrink:0}
.dot.done{background:var(--success)}
.dot.now{background:var(--purple)}
.dot.todo{background:#ccc}
.stage .t{font-weight:600}
.stage .sub{font-size:.8rem;color:#888}
.stage-right{margin-left:auto}
@media(max-width:600px){.auth-box{padding:1.6rem}}
