:root{--bg:#f4f5f7;--surface:#fff;--border:#dfe1e6;--text:#172b4d;--muted:#5e6c84;--accent:#0052cc;--accent-hover:#0747a6;--todo:#dfe1e6;--progress:#deebff;--done:#e3fcef;--high:#ff5630;--medium:#ffab00;--low:#36b37e;--shadow:0 1px 2px #091e4214;--radius:6px;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.4}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--accent)}#root{min-height:100vh}.login-page{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:380px;box-shadow:var(--shadow);border-radius:8px;padding:2rem}.login-card h1{margin:0 0 .25rem;font-size:1.4rem}.login-card p{color:var(--muted);margin:0 0 1.5rem;font-size:.9rem}.field{flex-direction:column;gap:.35rem;margin-bottom:1rem;display:flex}.field label{font-size:.85rem;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:var(--radius);background:#fafbfc;padding:.55rem .7rem}.field input:focus,.field select:focus,.field textarea:focus{outline-offset:0;background:#fff;outline:2px solid #4c9aff}.error{color:var(--high);margin:0 0 .75rem;font-size:.85rem}.btn{border-radius:var(--radius);border:none;padding:.55rem .9rem;font-size:.9rem;font-weight:600}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{color:var(--muted);border:1px solid var(--border);background:0 0}.btn-ghost:hover{color:var(--text);background:#ebecf0}.btn-danger{color:#bf2600;background:#ffebe6;border:1px solid #ffbdad}.btn-block{width:100%}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{color:#fff;background:#0747a6;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex}.topbar h1{min-width:0;margin:0;font-size:1.05rem;font-weight:600}.topbar-right{flex-shrink:0;align-items:center;gap:.75rem;font-size:.9rem;display:flex}.topbar-date{opacity:.9;border-right:1px solid #ffffff59;margin-right:.15rem;padding-right:.5rem;font-size:.85rem}.tabs{background:var(--surface);border-bottom:1px solid var(--border);position:relative}.tabs:before,.tabs:after{content:"";z-index:1;pointer-events:none;width:1.75rem;position:absolute;top:0;bottom:1px}.tabs:before{background:linear-gradient(to right, var(--surface), transparent);left:0}.tabs:after{background:linear-gradient(to left, var(--surface), transparent);right:0}.tabs-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#c1c7d0 transparent;align-items:stretch;gap:0;padding:0 1rem;display:flex;overflow:auto hidden}.tabs-scroll::-webkit-scrollbar{height:4px}.tabs-scroll::-webkit-scrollbar-thumb{background:#c1c7d0;border-radius:4px}.tab{color:var(--muted);white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;flex-shrink:0;padding:.85rem 1rem;font-size:.9rem;font-weight:600}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.main{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:1.25rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.25rem}.panel h2{margin:0 0 1rem;font-size:1.15rem}.panel-count{color:var(--muted);margin:-.55rem 0 1rem;font-size:.85rem;font-weight:600}.panel .hint{color:var(--muted);margin:0 0 1rem;font-size:.9rem}.empty{color:var(--muted);text-align:center;border:1px dashed var(--border);border-radius:var(--radius);padding:2rem}.toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.toolbar-filters{flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto;display:flex}.board{grid-template-columns:repeat(3,1fr);align-items:start;gap:1rem;min-height:420px;display:grid}@media (width<=900px){.board{grid-template-columns:1fr}.column{min-height:0}}.column{background:#ebecf0;border-radius:8px;min-height:360px;padding:.6rem}.column.over{outline:2px dashed var(--accent)}.column-header{justify-content:space-between;align-items:center;padding:.4rem .5rem .7rem;display:flex}.column-header h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0;font-size:.8rem}.count{color:var(--muted);background:#dfe1e6;border-radius:10px;padding:.1rem .45rem;font-size:.75rem;font-weight:700}.column-list{flex-direction:column;gap:.35rem;min-height:80px;display:flex}.issue-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);cursor:grab;text-align:left;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:1px solid #0000;width:100%;padding:.7rem .75rem;position:relative}.issue-card.compact{padding:.4rem .55rem}.issue-card.has-handle{cursor:pointer;align-items:stretch;gap:.25rem;padding-left:.2rem;display:flex}.issue-card-body{flex:1;min-width:0}.drag-handle{color:#97a0af;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-self:center;padding:.45rem .3rem;font-size:1.05rem;line-height:1}.drag-handle:active{cursor:grabbing;color:#42526e;background:#ebecf0}.issue-card.compact .issue-key{margin-bottom:0;font-size:.7rem}.issue-card.compact .issue-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.15rem 0 0;font-size:.82rem;line-height:1.25;display:-webkit-box;overflow:hidden}.issue-card.compact .priority{padding:.05rem .3rem;font-size:.62rem}.issue-card.compact .avatar{width:20px;height:20px;font-size:.65rem}.issue-card.compact .tag{font-size:.6rem}.issue-card.is-completed{background:#e3fcef}.issue-card-top-right{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.due-inline{color:var(--muted);font-size:.75rem;font-weight:500}.issue-card .issue-card-top{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:0;display:flex}.issue-card .issue-card-top .priority{flex-shrink:0}.issue-card:hover{background:#fafbfc}.issue-card.is-completed:hover{background:#d3f5e5}.issue-card:active{cursor:grabbing}.issue-card.dragging{opacity:.5}.issue-key{color:var(--muted);margin-bottom:.25rem;font-size:.75rem;font-weight:600}.issue-title{color:var(--text);margin:0 0 .55rem;font-size:.9rem;font-weight:500}.issue-meta{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.priority{text-transform:uppercase;border-radius:3px;padding:.1rem .4rem;font-size:.7rem;font-weight:700}.priority.high{color:var(--high);background:#ffebe6}.priority.medium{color:#974f0c;background:#fff0b3}.priority.low{color:#064;background:#e3fcef}.avatar{color:#fff;background:#42526e;border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:.7rem;font-weight:700;display:grid}.modal-backdrop{z-index:50;background:#091e4273;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:8px;width:100%;max-width:520px;max-height:90vh;padding:1.25rem;overflow:auto;box-shadow:0 8px 24px #091e4233}.modal h3{margin:0 0 1rem;font-size:1.1rem}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.calendar-wrap{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.75rem}.fc{--fc-border-color:var(--border);--fc-button-bg-color:var(--accent);--fc-button-border-color:var(--accent);--fc-button-hover-bg-color:var(--accent-hover);--fc-button-hover-border-color:var(--accent-hover);--fc-button-active-bg-color:var(--accent-hover);--fc-today-bg-color:#deebff;font-size:.9rem}.fc .fc-toolbar-title{font-size:1.1rem!important}.doc-list{margin:0;padding:0;list-style:none}.doc-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:1rem;padding:.85rem 0;display:flex}.doc-options{letter-spacing:.05em;flex-shrink:0;min-width:2.25rem;padding:.35rem .55rem;font-size:1.25rem;line-height:1}.doc-item:last-child{border-bottom:none}.doc-item h4{margin:0 0 .2rem;font-size:.95rem}.doc-item p{color:var(--muted);margin:0;font-size:.85rem}.row-2{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}@media (width<=600px){.row-2{grid-template-columns:1fr}.topbar{flex-wrap:wrap;gap:.5rem;padding:.65rem .85rem}.topbar h1{flex:auto;font-size:.92rem}.topbar-right{justify-content:flex-end;gap:.45rem;width:100%;font-size:.8rem}.topbar-date{display:none}.topbar-user{margin-right:auto}.tabs-scroll{padding:0 .75rem}.tab{padding:.75rem .8rem;font-size:.85rem}.main{padding:.85rem}.panel{padding:1rem}.toolbar{flex-direction:column;align-items:stretch}.toolbar-filters{width:100%;margin-left:0}.toolbar-filters .field{flex:140px}.modal-backdrop{align-items:flex-end;padding:.5rem}.modal{border-radius:10px 10px 0 0;max-height:92vh;padding:1rem}.modal-actions{flex-wrap:wrap}.modal-actions .btn{flex:auto}.doc-item{flex-direction:column;align-items:stretch}.fc .fc-toolbar{flex-direction:column;gap:.5rem;align-items:stretch!important}.fc .fc-toolbar-chunk{flex-wrap:wrap;justify-content:center;gap:.25rem;display:flex}.fc .fc-toolbar-title{font-size:1rem!important}.settings-tags li{flex-wrap:wrap}.sprint-column{flex-basis:260px;min-width:260px}}.tag{text-transform:uppercase;letter-spacing:.03em;vertical-align:middle;color:#0747a6;background:#deebff;border-radius:3px;padding:.1rem .4rem;font-size:.68rem;font-weight:700;display:inline-block}.tag-carry{color:#974f0c;text-transform:none;letter-spacing:0;background:#fff0b3;max-width:100%;font-weight:600}.due-date{color:#bf2600;margin-top:.45rem;font-size:.75rem;font-weight:600}.backlog-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.backlog-item{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);padding:.85rem 1rem}.backlog-item:hover{background:#fafbfc;border-color:#b3d4ff}.backlog-item-top{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.35rem;display:flex}.backlog-item strong{font-size:.95rem;display:block}.backlog-item p{color:var(--muted);margin:.35rem 0 0;font-size:.85rem}.sprint-board{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;align-items:stretch;gap:1rem;padding-bottom:.75rem;display:flex;overflow:auto hidden}.sprint-column{scroll-snap-align:start;background:#ebecf0;border:2px solid #0000;border-radius:8px;flex:0 0 280px;min-width:280px;max-width:300px;min-height:280px;padding:.75rem}.sprint-column.active-sprint{background:#f4f8ff;border-color:#4c9aff}.sprint-column-header{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.5rem;display:flex}.sprint-header-actions{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.sprint-column-header h3{margin:0;font-size:1rem}.sprint-column-header p{color:var(--muted);margin:.2rem 0 0;font-size:.8rem}.sprint-card-static{cursor:default;position:relative}.sprint-card-static:active{cursor:default}.sprint-goal{font-style:italic;color:var(--text)!important;margin-top:.35rem!important}.issue-card-top{justify-content:space-between;align-items:flex-start;gap:.35rem;display:flex}.icon-close{color:var(--muted);background:0 0;border:none;border-radius:3px;flex-shrink:0;padding:0 .15rem;font-size:1.15rem;line-height:1}.icon-close:hover{color:#bf2600;background:#ffebe6}.alloc-list{border:1px solid var(--border);border-radius:var(--radius);max-height:320px;margin:0;padding:0;list-style:none;overflow-y:auto}.alloc-list li{border-bottom:1px solid var(--border)}.alloc-list li:last-child{border-bottom:none}.alloc-item{cursor:pointer;align-items:flex-start;gap:.65rem;padding:.65rem .75rem;font-size:.9rem;display:flex}.alloc-item:hover{background:#f4f5f7}.alloc-item input{margin-top:.15rem}.settings-tags{flex-direction:column;gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.settings-tags li{border:1px solid var(--border);border-radius:var(--radius);background:#fafbfc;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem .75rem;display:flex}.settings-tag-actions{gap:.35rem;display:flex}
