*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:#0f172a;color:#e2e8f0;min-height:100vh}a{color:#38bdf8;text-decoration:none}button,input,textarea{font:inherit}.btn{background:#2563eb;color:#fff;border:none;border-radius:8px;padding:8px 14px;cursor:pointer}.btn:hover{background:#1d4ed8}.btn.secondary{background:#334155}.btn.danger{background:#b91c1c}.btn.ghost{background:transparent;border:1px solid #475569}input,textarea{width:100%;padding:10px 12px;border-radius:8px;border:1px solid #334155;background:#1e293b;color:#e2e8f0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#111827;border-bottom:1px solid #1f2937}.brand{font-weight:700;font-size:18px;letter-spacing:.02em}.brand span{color:#38bdf8}.login-wrap{max-width:380px;margin:80px auto;padding:28px;background:#111827;border:1px solid #1f2937;border-radius:16px}.login-wrap h1{margin:0 0 8px;font-size:22px}.login-wrap p{margin:0 0 20px;color:#94a3b8;font-size:14px}.field{margin-bottom:14px}.field label{display:block;margin-bottom:6px;font-size:13px;color:#94a3b8}.error{color:#f87171;font-size:13px;margin:8px 0}.page{padding:20px}.board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.board-card{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:16px;cursor:pointer}.board-card:hover{border-color:#38bdf8}.board-view{padding:16px 20px 40px}.columns{display:flex;gap:14px;align-items:flex-start;overflow-x:auto;padding-bottom:20px}.column{flex:0 0 280px;background:#1e293b;border-radius:12px;border:1px solid #334155;padding:12px;min-height:120px}.column h3{margin:0 0 10px;font-size:14px;color:#cbd5e1}.card{background:#0f172a;border:1px solid #334155;border-radius:10px;padding:10px 12px;margin-bottom:8px;cursor:grab}.card.dragging{opacity:.5}.card-title{font-size:14px;margin-bottom:4px}.card-desc{font-size:12px;color:#94a3b8;white-space:pre-wrap}.card-actions{display:flex;gap:6px;margin-top:8px}.card-actions button{font-size:12px;padding:4px 8px}.add-row{display:flex;gap:8px;margin-top:8px}.add-row input{flex:1}.muted{color:#94a3b8;font-size:13px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:#111827;border:1px solid #334155;border-radius:14px;padding:20px;width:min(420px,92vw)}.modal h2{margin:0 0 12px;font-size:18px}
