:root{--ink: #1e293b;--muted: #64748b;--primary: #6366f1;--primary-dark: #4f46e5;--line: #e4e7f2;--radius: 14px;--shadow-sm: 0 1px 3px rgba(30, 41, 59, .08);--shadow-md: 0 6px 18px rgba(30, 41, 59, .1);--shadow-lg: 0 18px 50px rgba(30, 41, 59, .22)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh}body{font-family:Nunito,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:linear-gradient(120deg,#eef2ff,#fdf4ff 45%,#fff7ed);background-attachment:fixed}h1,h2,h3{margin:0}h2{font-size:1.45rem;font-weight:900}a{color:var(--primary)}input,textarea,select,button{font-family:inherit;font-size:.92rem}input,textarea{padding:9px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);width:100%}input:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:0;border-color:transparent}.muted{color:var(--muted);font-size:.8rem}.spacer{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border:none;border-radius:10px;font-weight:800;font-size:.85rem;cursor:pointer;white-space:nowrap;transition:background .15s,transform .1s}.btn:active{transform:scale(.97)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{opacity:.55;cursor:default}.btn-ghost{background:transparent;color:var(--muted)}.btn-ghost:hover{background:#64748b1f}.btn-danger{background:#fef2f2;color:#dc2626}.btn-danger:hover{background:#fee2e2}.btn-block{width:100%}.mini-del{border:none;background:transparent;color:#cbd5e1;font-size:1rem;cursor:pointer;padding:4px 6px;border-radius:8px}.mini-del:hover{color:#dc2626;background:#fef2f2}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;padding:10px 22px;background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-size:1.1rem;font-weight:900}.brand img{height:34px;display:block}.brand b{color:var(--primary)}.topbar nav{display:flex;gap:4px}.topbar nav a{text-decoration:none;color:var(--muted);font-weight:800;font-size:.88rem;padding:6px 14px;border-radius:999px}.topbar nav a:hover{background:#6366f114}.topbar nav a.active{background:#e0e7ff;color:var(--primary-dark)}.topbar-me{margin-left:auto;display:flex;align-items:center;gap:9px}.me-name{font-weight:800;font-size:.88rem}.demo-pill{text-decoration:none;background:#fef3c7;color:#b45309;border:1px solid #fcd34d;font-weight:900;font-size:.68rem;letter-spacing:.5px;padding:4px 10px;border-radius:999px}.container{max-width:1320px;margin:0 auto;padding:26px 22px 60px}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:800;flex-shrink:0;-webkit-user-select:none;user-select:none}.avatars{display:inline-flex}.avatars .avatar{margin-left:-6px;border:2px solid #fff}.avatars .avatar:first-child{margin-left:0}.chip{display:inline-flex;align-items:center;gap:4px;font-weight:800;font-size:.74rem;background:#f1f4f8;color:var(--muted);padding:3px 9px;border-radius:999px;white-space:nowrap}.due-chip{background:#eef2ff;color:#4f46e5}.due-chip.late{background:#fee2e2;color:#dc2626}.chip.ok{background:#dcfce7;color:#15803d}.chip.wait{background:#fef3c7;color:#b45309}.progress{display:flex;align-items:center;gap:9px;width:100%}.progress-track{flex:1;height:9px;background:#e7e9f2;border-radius:999px;overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#34d399,#10b981);transition:width .35s ease}.progress-label{font-weight:900;font-size:.76rem;color:#059669;min-width:34px;text-align:right}.board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px}.board-tile{display:flex;flex-direction:column;gap:12px;background:#fff;border-radius:var(--radius);border-top:6px solid var(--bc, var(--primary));padding:18px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s}a.board-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.board-tile h3{font-size:1.02rem;font-weight:800}.tile-chips{display:flex;flex-wrap:wrap;gap:6px}.new-board .swatches{margin:2px 0}.field-label{display:flex;flex-direction:column;gap:5px;font-weight:800;font-size:.78rem;color:var(--muted)}.swatches{display:flex;flex-wrap:wrap;gap:7px}.swatch{width:26px;height:26px;border-radius:9px;border:2px solid #fff;cursor:pointer;box-shadow:var(--shadow-sm)}.swatch.on{box-shadow:0 0 0 2.5px var(--ink)}.row-btns{display:flex;gap:8px;align-items:center}.empty{text-align:center;color:var(--muted);padding:70px 20px;font-size:1.05rem;line-height:1.7}.board-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:20px;background:#fff;border-radius:var(--radius);border-left:6px solid var(--bc, var(--primary));padding:14px 18px;box-shadow:var(--shadow-sm)}.back{text-decoration:none;font-size:1.25rem;font-weight:900;color:var(--muted);padding:2px 8px;border-radius:8px}.back:hover{background:#f1f4f8;color:var(--ink)}.board-head-progress{flex:1;min-width:170px;max-width:340px;margin-left:auto}.board-desc{background:#fff;border-radius:var(--radius);padding:13px 18px;margin:-6px 0 20px;box-shadow:var(--shadow-sm);white-space:pre-wrap;font-size:.93rem;line-height:1.55;cursor:pointer}.board-desc:hover{box-shadow:var(--shadow-md)}.board-desc.editing{cursor:auto;display:flex;flex-direction:column;gap:10px}.add-desc-btn{display:block;border:none;background:transparent;color:var(--muted);font-weight:800;font-size:.84rem;padding:4px 8px;margin:-12px 0 14px;border-radius:8px;cursor:pointer}.add-desc-btn:hover{background:#fffc;color:var(--ink)}.columns{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:start}.col{border-radius:var(--radius);border-top:4px solid var(--c);padding:12px;display:flex;flex-direction:column;gap:10px;min-height:240px}.col.drag-over{outline:2px dashed var(--c);outline-offset:-4px}.col-head{display:flex;align-items:center;gap:8px}.col-dot{width:10px;height:10px;border-radius:50%}.col-title{font-weight:800;font-size:.9rem}.col-count{margin-left:auto;background:#fff;border-radius:999px;padding:2px 9px;font-weight:900;font-size:.75rem;color:var(--muted)}.col-cards{display:flex;flex-direction:column;gap:8px;min-height:40px}.col-empty{font-size:.76rem;color:var(--muted);text-align:center;padding:14px 8px;border:1.5px dashed rgba(100,116,139,.35);border-radius:10px}.kcard{background:#fff;border-radius:12px;padding:10px 12px;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .12s,box-shadow .12s}.kcard:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.kcard.dragging{opacity:.35}.drop-line{height:4px;border-radius:999px;background:var(--c);margin:-2px 2px;pointer-events:none}.kcard-title{font-weight:700;font-size:.9rem;line-height:1.35}.kcard-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:9px}.add-card-btn{text-align:left;background:transparent;border:none;color:var(--muted);font-weight:800;font-size:.84rem;padding:8px 10px;border-radius:10px;cursor:pointer}.add-card-btn:hover{background:#ffffffbf;color:var(--ink)}.add-card-form{display:flex;flex-direction:column;gap:7px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;padding:34px 16px;overflow-y:auto}.modal{background:#fff;border-radius:18px;padding:24px;width:100%;max-width:560px;margin:auto;box-shadow:var(--shadow-lg)}.cm-head{display:flex;align-items:center;gap:8px}.cm-title{flex:1;font-size:1.18rem;font-weight:900;border:1.5px solid transparent;background:transparent;padding:6px 8px;border-radius:10px}.cm-title:hover{background:#f6f7fb}.cm-title:focus{background:#fff}.cm-close{border:none;background:transparent;font-size:1.05rem;color:var(--muted);cursor:pointer;padding:6px 10px;border-radius:10px}.cm-close:hover{background:#f1f4f8;color:var(--ink)}.cm-section{margin-top:18px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.cm-section>*{width:auto}.cm-label{font-weight:900;font-size:.72rem;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.cm-row{display:grid;grid-template-columns:1fr 1.4fr;gap:16px}.status-pills{display:flex;flex-wrap:wrap;gap:7px}.pill{border-radius:999px;padding:6px 13px;font-weight:800;font-size:.8rem;border:1.5px solid;background:#fff;cursor:pointer;transition:transform .1s}.pill:active{transform:scale(.96)}.pill.on{color:#fff}.due-edit{display:flex;gap:6px;align-items:center}.due-edit input{width:auto}.assign-chips{display:flex;flex-wrap:wrap;gap:7px}.assign-chip{display:inline-flex;align-items:center;gap:7px;border-radius:999px;border:1.5px solid var(--line);padding:4px 12px 4px 5px;background:#fff;font-weight:700;font-size:.82rem;color:var(--ink);cursor:pointer}.assign-chip:hover{border-color:#b6bdf5}.assign-chip.on{border-color:var(--primary);background:#eef2ff;color:var(--primary-dark)}.cm-desc{width:100%;resize:vertical}.file-list{list-style:none;margin:0;padding:0;width:100%}.file-list li{display:flex;align-items:center;gap:10px;padding:7px 2px;border-bottom:1px dashed var(--line)}.file-list a{font-weight:700;text-decoration:none;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-list a:hover{text-decoration:underline}.file-btn input{display:none}.comment-list{display:flex;flex-direction:column;width:100%}.comment{display:flex;gap:10px;padding:5px 0}.comment-body{background:#f6f7fb;border-radius:12px;padding:8px 12px;flex:1}.comment-head{display:flex;gap:8px;align-items:baseline;font-size:.82rem;margin-bottom:2px}.comment-text{font-size:.9rem;white-space:pre-wrap}.comment-form{display:flex;gap:8px;width:100%;margin-top:6px}.comment-form input{flex:1}.comment-actions{margin-left:auto;display:inline-flex;gap:2px}.comment-actions button{border:none;background:transparent;cursor:pointer;font-size:.72rem;color:#b6bdd0;padding:1px 4px;border-radius:6px}.comment-actions button:hover{background:#eceef7;color:var(--ink)}.comment-head{width:100%}.cm-footer{display:flex;justify-content:space-between;align-items:center;margin-top:22px;padding-top:14px;border-top:1px solid var(--line)}.edit-board{display:flex;flex-direction:column;gap:14px}.info-box{background:#eef2ff;border:1px solid #dbe1ff;color:#3b3f8f;padding:13px 17px;border-radius:12px;font-size:.92rem;margin-bottom:18px;line-height:1.55}.add-member{display:flex;gap:10px;margin-bottom:12px}.add-member input{flex:1}.member-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:9px}.member-list li{display:flex;align-items:center;gap:13px;background:#fff;border-radius:12px;padding:11px 15px;box-shadow:var(--shadow-sm)}.member-info{display:flex;flex-direction:column;flex:1;min-width:0}.member-info b{font-size:.93rem}.form-error{background:#fef2f2;color:#dc2626;font-weight:700;font-size:.84rem;padding:9px 13px;border-radius:10px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#6366f1,#a855f7 55%,#ec4899)}.auth-card{background:#fff;border-radius:22px;padding:36px 32px;width:100%;max-width:410px;box-shadow:var(--shadow-lg);text-align:center}.auth-logo{font-size:3rem;line-height:1;margin-bottom:8px}.auth-card h1{font-size:1.65rem;font-weight:900}.auth-sub{color:var(--muted);margin:6px 0 20px}.tabs{display:flex;background:#f1f4f8;border-radius:12px;padding:4px;margin-bottom:16px}.tabs button{flex:1;padding:9px 6px;border:none;border-radius:9px;background:transparent;color:var(--muted);font-weight:800;font-size:.85rem;cursor:pointer}.tabs button.active{background:#fff;color:var(--ink);box-shadow:var(--shadow-sm)}.auth-card form{display:flex;flex-direction:column;gap:11px;text-align:left}.hint{color:var(--muted);font-size:.79rem;margin:0;line-height:1.5}.demo-note{background:#fef3c7;border:1px solid #fcd34d;color:#92400e;border-radius:10px;padding:9px 13px;font-size:.83rem;font-weight:700;margin-bottom:14px}.setup-steps{text-align:left;margin:0 0 20px;padding-left:22px;line-height:2;font-size:.92rem}.setup-steps code{background:#f1f4f8;padding:2px 6px;border-radius:6px;font-size:.82rem}.spinner-wrap{display:flex;justify-content:center;padding:90px 0}.spinner{width:38px;height:38px;border:4px solid #e0e7ff;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 1100px){.columns{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.columns,.cm-row{grid-template-columns:1fr}.add-member{flex-direction:column}.topbar{flex-wrap:wrap;gap:8px}.me-name{display:none}}
