:root{--bg:#f4f5f7;--surface:#fff;--border:#dfe1e6;--text:#172b4d;--muted:#6b778c;--primary:#0b5cff;--primary-dark:#0846c4;--danger:#c9372c;--radius:8px;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}*{box-sizing:border-box}body,h1,h2,h3{margin:0}a{color:inherit;text-decoration:none}input,select,textarea,button{font:inherit}input,select,textarea{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:7px 9px}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px}.muted{color:var(--muted)}.small{font-size:12px}.spacer{flex:1}.right{text-align:right}.msg-error{color:var(--danger);margin:8px 0}.msg-info{color:var(--primary-dark);margin:8px 0}.page-msg{padding:32px}button{cursor:pointer;border:none;border-radius:6px;padding:7px 14px}button:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{color:var(--text);background:#e9ebee}.btn-danger{color:var(--danger);background:#fdecea}.btn-link{color:var(--primary);background:0 0;padding:4px 6px}.btn-icon{color:var(--muted);background:0 0;padding:0 6px;font-size:22px;line-height:1}.auth-page{place-items:center;min-height:100vh;display:grid}.auth-box{background:var(--surface);border-radius:var(--radius);flex-direction:column;gap:14px;width:340px;padding:28px;display:flex;box-shadow:0 2px 12px #00000014}.auth-box h1{text-align:center;margin-bottom:6px;font-size:20px}.auth-box label{flex-direction:column;gap:4px;font-weight:500;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:10px 20px;display:flex}.brand{font-weight:700}.topbar nav{gap:4px;display:flex}.topbar nav a{color:var(--muted);border-radius:6px;padding:6px 10px}.topbar nav a.active{color:var(--primary);background:#e8efff}.page{flex-direction:column;gap:16px;max-width:1000px;padding:24px;display:flex}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.board-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.board-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:4px;min-height:80px;padding:16px;display:flex}.board-tile:hover{border-color:var(--primary)}.tabs{border-bottom:1px solid var(--border);gap:4px;display:flex}.tab{color:var(--muted);background:0 0;border-bottom:2px solid #0000;border-radius:0}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.table{border-collapse:collapse;background:var(--surface);border-radius:var(--radius);width:100%;overflow:hidden}.table td{border-bottom:1px solid var(--border);padding:8px 12px}.table tr.inactive td{color:var(--muted);text-decoration:line-through}.board-page{flex-direction:column;gap:12px;height:calc(100vh - 53px);padding:16px 20px;display:flex}.board-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.filters{flex-wrap:wrap;flex:1;align-items:center;gap:6px;display:flex}.members{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:16px;padding:12px;display:flex}.members ul{flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none;display:flex}.columns{flex:1;align-items:flex-start;gap:12px;padding-bottom:8px;display:flex;overflow-x:auto}.column{border-radius:var(--radius);background:#ebecf0;flex-direction:column;flex:0 0 290px;max-height:100%;transition:background .15s;display:flex}.column.over{background:#dbe6ff}.column-header{border-radius:var(--radius) var(--radius) 0 0;border-top:3px solid #0000;justify-content:space-between;padding:10px 12px;font-weight:600;display:flex}.role-backlog{border-top-color:#8993a4}.role-todo{border-top-color:#0b5cff}.role-doing{border-top-color:#f5a623}.role-validation{border-top-color:#8e44ad}.role-done{border-top-color:#22a06b}.count{color:var(--muted);font-weight:500}.count.over-limit{color:var(--danger)}.column-body{flex-direction:column;gap:8px;min-height:60px;padding:0 8px 8px;display:flex;overflow-y:auto}.card{background:var(--surface);cursor:grab;touch-action:none;border-radius:6px;flex-direction:column;gap:6px;padding:10px;display:flex;box-shadow:0 1px 2px #091e4233}.card:hover{box-shadow:0 2px 6px #091e4240}.card.dragging{opacity:.85;cursor:grabbing;z-index:10;position:relative}.card-top,.card-bottom{justify-content:space-between;align-items:center;font-size:12px;display:flex}.card-id{color:var(--muted)}.card-title{font-weight:500;line-height:1.35}.card-tags{flex-wrap:wrap;gap:4px;display:flex}.tag{color:#44546f;background:#f1f2f4;border-radius:4px;padding:2px 6px;font-size:11px}.tag-product{color:var(--primary-dark);background:#e8efff;font-weight:600}.tag-env{color:#974f0c;background:#fff4e5;font-family:ui-monospace,monospace}.card-meta{align-items:center;gap:6px;display:flex}.overdue{color:var(--danger);font-weight:600}.avatar{background:#dfe1e6;border-radius:50%;place-items:center;width:24px;height:24px;font-size:10px;font-weight:700;display:grid}.priority{border-radius:4px;padding:1px 6px;font-size:11px;font-weight:700}.p-critical{color:#fff;background:#c9372c}.p-high{color:#ae2e24;background:#fdecea}.p-medium{color:#974f0c;background:#fff4e5}.p-low{color:#44546f;background:#f1f2f4}.modal-backdrop{z-index:100;background:#091e4273;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius);width:min(720px,100%);max-height:92vh;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-body{padding:18px}.card-form{grid-template-columns:1fr 1fr;gap:12px;display:grid}.card-form label{flex-direction:column;gap:4px;font-size:13px;font-weight:500;display:flex}.span-2{grid-column:span 2}.form-actions{align-items:center;gap:8px;display:flex}@media (width<=640px){.card-form{grid-template-columns:1fr}.span-2{grid-column:span 1}.column{flex-basis:85vw}}.code-input{border:1px solid var(--border);background:var(--surface);border-radius:6px;align-items:center;display:flex;overflow:hidden}.code-input span{color:var(--muted);border-right:1px solid var(--border);background:#f1f2f4;padding:7px 8px;font-family:ui-monospace,monospace}.code-input input{border:none;width:70px;font-family:ui-monospace,monospace}.mono{white-space:nowrap;font-family:ui-monospace,monospace}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:8px 12px;font-size:12px;font-weight:600}.actions{white-space:nowrap}.btn-link.danger{color:var(--danger)}.btn-danger-solid{background:var(--danger);color:#fff}.btn-danger-solid:hover:not(:disabled){background:#a32a21}.confirm{flex-direction:column;gap:12px;display:flex}.confirm p{margin:0}.warning-box{color:#7a1f17;background:#fdecea;border:1px solid #f5c2bd;border-radius:6px;padding:12px 14px;line-height:1.5}.warning-box ul{margin:6px 0;padding-left:20px}.tag-liveops{color:#1d6b40;background:#e9f7ef;font-family:ui-monospace,monospace}.url-cell{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.url-cell a,.access-view a{color:var(--primary)}.access-group{border:1px solid var(--border);border-radius:6px;grid-template-columns:1fr 1fr;gap:12px;margin:0;padding:10px 12px 12px;display:grid}.access-group legend{color:var(--muted);padding:0 4px;font-size:12px;font-weight:600}.checkbox-line{color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:400;display:flex}.access-view{flex-direction:column;gap:8px;display:flex}.access-view h4{margin:10px 0 0;font-size:13px}.access-row{border-bottom:1px solid var(--border);word-break:break-all;grid-template-columns:80px 1fr auto auto;align-items:center;gap:8px;padding:6px 0;display:grid}@media (width<=640px){.access-group{grid-template-columns:1fr}}
