:root{--yellow: #ffcd00;--yellow-light: #fff1b3;--yellow-dark: #e6b800;--black: #1b1b1b;--off-black: #2a2a2a;--white: #ffffff;--off-white: #f7f7f8;--border: #e5e7eb;--border-strong: #d1d5db;--muted: #6b7280;--text: #1b1b1b;--ok: #1b9e4b;--warn: #d97706;--danger: #c0392b;--info: #2563eb}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:var(--off-white);color:var(--text);font-size:14px}.app{max-width:1400px;margin:0 auto;padding:24px}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:3px solid var(--yellow)}.header h1{margin:0;font-size:22px;font-weight:700;color:var(--black);letter-spacing:-.01em}.header .subtitle{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:2px}.toolbar{display:flex;gap:8px;align-items:center}.btn{background:var(--yellow);color:var(--black);border:0;padding:8px 14px;border-radius:4px;cursor:pointer;font-size:13px;font-weight:600;letter-spacing:.01em;transition:filter .1s;text-decoration:none;display:inline-flex;align-items:center;gap:6px}.btn:hover{filter:brightness(.95)}.btn.secondary{background:var(--white);color:var(--black);border:1px solid var(--border-strong)}.btn.secondary:hover{background:var(--off-white)}.btn.danger{background:var(--white);color:var(--danger);border:1px solid var(--border-strong)}.btn.danger:hover{background:#fff5f5;border-color:var(--danger)}.btn.ghost{background:transparent;color:var(--muted);border:1px dashed var(--border-strong);font-weight:500}.btn.ghost:hover{color:var(--black);border-color:var(--black)}.btn.sm{padding:4px 10px;font-size:12px}.section{background:var(--white);border:1px solid var(--border);border-radius:6px;margin-bottom:16px;overflow:hidden;box-shadow:0 1px 2px #00000008}.section-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--black);color:var(--white);border-left:4px solid var(--yellow);font-weight:600;font-size:14px}.section-header .name-edit{flex:1;background:transparent;border:0;color:var(--white);font-weight:600;font-size:14px;outline:none;padding:2px 4px;border-radius:3px}.section-header .name-edit:focus{background:#ffffff1f}.section-header .count{color:var(--yellow);font-size:12px;font-weight:500;padding:2px 8px;background:#ffcd0026;border-radius:3px}.section-header .actions{display:flex;gap:4px}.section-header .actions .icon-btn{color:#ffffffb3}.section-header .actions .icon-btn:hover{color:var(--white);background:#ffffff1a}.task-grid{display:grid;grid-template-columns:24px 28px 1fr 130px 110px 130px 90px 130px 160px 70px;align-items:stretch}.task-grid>.h{background:var(--off-white);border-bottom:1px solid var(--border);padding:6px 8px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:500}.task-row{display:contents}.task-row>.cell{border-bottom:1px solid var(--border);padding:0;display:flex;align-items:center;min-height:38px;background:var(--white);position:relative}.task-row:hover>.cell{background:#fafbfc}.task-row.is-milestone>.cell{background:#fffbe6}.task-row.is-milestone:hover>.cell{background:#fff7cc}.task-row>.cell.actions{justify-content:flex-end;padding-right:6px}.task-row .grip{width:100%;height:100%;display:flex;align-items:center;justify-content:center;cursor:grab;color:var(--muted);-webkit-user-select:none;user-select:none}.task-row .grip:active{cursor:grabbing}.task-row .grip:hover{color:var(--black);background:var(--off-white)}.task-row .type-icon{width:100%;display:flex;justify-content:center;font-size:12px}.task-row .type-icon.milestone{color:var(--yellow-dark)}.task-row .type-icon.task{color:var(--muted)}.inline{width:100%;height:100%;border:0;background:transparent;color:var(--text);padding:8px 10px;font-size:13px;font-family:inherit;outline:none;border-radius:0}.inline:focus{background:var(--white);box-shadow:inset 0 0 0 2px var(--yellow)}.inline.title{font-weight:500}.inline.title.is-milestone{font-weight:600}.inline.title.is-done{text-decoration:line-through;color:var(--muted)}.inline-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:0;padding:6px 22px 6px 10px;font-size:12px;font-family:inherit;font-weight:500;color:inherit;width:100%;height:100%;cursor:pointer;outline:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath fill='%236b7280' d='M0 0l4 5 4-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center}.inline-select:focus{box-shadow:inset 0 0 0 2px var(--yellow)}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;text-transform:capitalize;white-space:nowrap}.badge.todo{background:#f3f4f6;color:var(--muted)}.badge.in_progress{background:var(--yellow-light);color:var(--off-black)}.badge.blocked{background:#fde2e2;color:var(--danger)}.badge.done{background:#d6f5e0;color:var(--ok)}.badge.low{background:#f3f4f6;color:var(--muted)}.badge.medium{background:#dceaff;color:var(--info)}.badge.high{background:#ffe6cc;color:var(--warn)}.badge.critical{background:var(--danger);color:var(--white)}.status-cell,.priority-cell{width:100%;height:100%;position:relative;display:flex;align-items:center}.labels-display{font-size:11px;color:var(--muted);padding:0 10px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-btn{background:none;border:0;cursor:pointer;padding:4px 8px;border-radius:3px;color:var(--muted);font-size:12px;font-weight:500}.icon-btn:hover{background:var(--off-white);color:var(--black)}.icon-btn.danger:hover{color:var(--danger);background:#fff5f5}.add-row{display:flex;gap:6px;padding:8px 14px;background:var(--off-white);border-top:1px solid var(--border)}.add-input{flex:1;padding:6px 10px;border:1px solid var(--border-strong);border-radius:4px;font-size:13px;font-family:inherit;outline:none}.add-input:focus{border-color:var(--yellow);box-shadow:0 0 0 2px var(--yellow-light)}.drag-overlay{background:var(--white);border:2px solid var(--yellow);border-radius:4px;padding:8px 12px;font-size:13px;font-weight:500;box-shadow:0 4px 16px #00000026}.dragging>.cell{opacity:.5}.empty{text-align:center;padding:40px 0;color:var(--muted);font-size:13px}.error-banner{background:#fde2e2;color:var(--danger);padding:10px 14px;border-radius:4px;font-size:13px;margin-bottom:12px}.footer{margin-top:16px;display:flex;justify-content:center}
