:root{--bg: #0e1013;--bg-elev: #15181c;--panel: linear-gradient(180deg, #1b1f24 0%, #15181c 100%);--border: #2a2f36;--border-strong: #3a414a;--text: #dde1e6;--muted: #8b939d;--accent: #e8742a;--accent-ink: #1a0d04;--danger: #e5484d;--low: #5b9bd5;--medium: #d9a441;--high: #e5484d;--radius: 8px;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-height:100vh;font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:repeating-linear-gradient(135deg,rgba(255,255,255,.012) 0 2px,transparent 2px 6px),radial-gradient(1200px 500px at 50% -200px,#1c2128 0%,transparent 70%),var(--bg);display:flex;flex-direction:column}h1,h2,h3,p{margin:0}ul{list-style:none;margin:0;padding:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--muted);font-weight:400}.spacer{flex:1}.skip-link{position:absolute;left:12px;top:-48px;padding:8px 12px;background:var(--accent);color:var(--accent-ink);border-radius:var(--radius);z-index:100;transition:top .15s}.skip-link:focus{top:12px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px clamp(16px,4vw,40px);border-bottom:1px solid var(--border);background:#0e1013d9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:12px}.brand__mark{width:34px;height:34px;border-radius:7px;border:1px solid var(--border-strong);background:linear-gradient(var(--accent),var(--accent)) 22px 7px/5px 8px no-repeat,linear-gradient(#8a929c,#8a929c) 14px 7px/5px 14px no-repeat,linear-gradient(#8a929c,#8a929c) 6px 7px/5px 20px no-repeat,#16191d}.brand__name{font-size:18px;letter-spacing:.18em;font-weight:700}.brand__tag{font-size:12px;color:var(--muted)}.page{width:100%;max-width:1280px;margin:0 auto;padding:20px clamp(16px,4vw,40px) 32px;flex:1}.footer{padding:16px clamp(16px,4vw,40px);text-align:center;color:var(--muted);font-size:12px;border-top:1px solid var(--border)}.btn{font:inherit;color:var(--text);cursor:pointer;padding:8px 14px;border-radius:var(--radius);border:1px solid var(--border-strong);background:linear-gradient(180deg,#262b32,#1e2227);transition:border-color .15s,background .15s}.btn:hover:not(:disabled){border-color:#59626e;background:linear-gradient(180deg,#2c323a,#22272d)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:linear-gradient(180deg,#f08540,var(--accent));color:var(--accent-ink);border-color:#f39a63;font-weight:600}.btn--primary:hover:not(:disabled){background:linear-gradient(180deg,#f59555,#ee7d36);border-color:#f7ad80}.btn--danger{background:linear-gradient(180deg,#ef5a5f,var(--danger));border-color:#f2797d;color:#fff;font-weight:600}.btn--danger:hover:not(:disabled){background:linear-gradient(180deg,#f46d71,#e9545a);border-color:#f58d90}.btn--sm{padding:3px 10px;font-size:13px}.btn--danger-ghost{color:#ff8a8e}.btn--danger-ghost:hover:not(:disabled){border-color:var(--danger)}.icon-btn{font:inherit;line-height:1;color:var(--muted);background:transparent;cursor:pointer;min-width:30px;height:30px;border-radius:6px;border:1px solid transparent}.icon-btn:hover:not(:disabled){color:var(--text);border-color:var(--border-strong);background:#20252b}.icon-btn:disabled{opacity:.25;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field--grow{flex:1 1 220px}.field label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}input,select,textarea{font:inherit;color:var(--text);background:#0f1215;border:1px solid var(--border-strong);border-radius:var(--radius);padding:8px 10px;width:100%}input::placeholder,select::placeholder,textarea::placeholder{color:#5d646d}input:hover,select:hover,textarea:hover{border-color:#59626e}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--danger)}textarea{resize:vertical}.field__error{color:#ff8a8e;font-size:12px;min-height:18px}.field-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px}.toolbar .field:not(.field--grow){width:150px}.hint{color:var(--muted);font-size:13px;margin-bottom:12px}.banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-radius:var(--radius);margin-bottom:14px;border:1px solid var(--border-strong)}.banner--error{background:#e5484d1a;border-color:#e5484d80;color:#ffb3b5}.state{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 0;color:var(--muted)}.state--empty{padding:24px 0}.spinner{display:inline-block;width:18px;height:18px;border-radius:50%;border:2px solid var(--border-strong);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}.board--single{grid-template-columns:minmax(0,1fr);max-width:520px}.column{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px;min-width:0}.column__head{display:flex;align-items:center;gap:8px;padding:2px 4px 12px;border-bottom:1px solid var(--border);margin-bottom:12px}.column__title{font-size:13px;letter-spacing:.12em;text-transform:uppercase;flex:1}.column__count{font-size:12px;color:var(--muted);background:#0f1215;border:1px solid var(--border);border-radius:999px;padding:0 8px}.column__list{display:flex;flex-direction:column;gap:10px;min-height:72px}.column__empty{color:var(--muted);font-size:13px;text-align:center;padding:20px 8px;border:1px dashed var(--border);border-radius:var(--radius)}.card{background:linear-gradient(180deg,#232830,#1b1f25);border:1px solid var(--border-strong);border-left:3px solid var(--muted);border-radius:var(--radius);padding:10px 12px;cursor:grab}.card.card--low{border-left-color:var(--low)}.card.card--medium{border-left-color:var(--medium)}.card.card--high{border-left-color:var(--high)}.card:hover{border-color:#59626e}.card__top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px;min-height:22px}.card__title{font-size:15px;font-weight:600;overflow-wrap:anywhere}.card__desc{color:var(--muted);font-size:13px;margin-top:4px;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card__actions{display:flex;align-items:center;gap:2px;margin-top:10px;padding-top:8px;border-top:1px solid var(--border);flex-wrap:wrap}.card__actions .btn{margin-left:4px}.card__placeholder{min-height:60px;border:1px dashed var(--accent);border-radius:var(--radius);background:#e8742a0f}.badge{font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:1px 8px;border-radius:999px;border:1px solid currentColor}.badge--low{color:var(--low)}.badge--medium{color:var(--medium)}.badge--high{color:#ff7b7f}.due{font-size:12px;color:var(--muted)}.due--overdue{color:#ff8a8e;font-weight:600}.cdk-drag-preview{box-sizing:border-box;border-radius:var(--radius);box-shadow:0 12px 28px #0009;background:#262c34;border:1px solid var(--accent);padding:10px 12px;color:var(--text);list-style:none}.cdk-drag-preview .card__actions{display:none}.cdk-drag-animating{transition:transform .2s cubic-bezier(0,0,.2,1)}.column__list.cdk-drop-list-dragging .card:not(.cdk-drag-placeholder){transition:transform .2s cubic-bezier(0,0,.2,1)}.cdk-drag-placeholder{opacity:1}.dialog{color:var(--text);background:#181b20;border:1px solid var(--border-strong);border-radius:12px;padding:0;width:min(560px,100vw - 32px);box-shadow:0 24px 60px #0009}.dialog::backdrop{background:#050608b3}.dialog--small{width:min(420px,100vw - 32px)}.dialog__body{padding:20px;display:flex;flex-direction:column;gap:14px}.dialog__title{font-size:17px}.dialog__text{color:var(--muted);overflow-wrap:anywhere}.dialog__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}@media(max-width:900px){.board{grid-template-columns:minmax(0,1fr)}.board--single{max-width:none}.toolbar .field:not(.field--grow){flex:1 1 130px;width:auto}}@media(max-width:520px){.field-row{grid-template-columns:1fr}.brand__tag{display:none}.icon-btn{min-width:36px;height:36px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
