*{box-sizing:border-box;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Noto Sans TC,sans-serif;background:#f4f5f7;color:#172b4d}button{cursor:pointer}.center{text-align:center;padding:2rem}.error{color:#c0392b}.row{display:flex;gap:.5rem}.login{max-width:320px;margin:10vh auto;display:flex;flex-direction:column;gap:.75rem;text-align:center}.login form{display:flex;flex-direction:column;gap:.5rem}.login input,.login button{padding:.5rem}.page{max-width:720px;margin:0 auto;padding:1rem}.page-header{display:flex;align-items:center;gap:1rem;padding:.5rem 0}.page-header h1{flex:1;font-size:1.25rem}.board-grid{display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0}.board-tile{display:block;width:160px;padding:1.5rem .75rem;background:#0079bf;color:#fff;border-radius:4px;text-decoration:none;font-weight:600}.board-tile-wrap{position:relative}.side-panel{position:fixed;top:0;right:0;width:300px;height:100vh;background:#fff;border-left:1px solid #ddd;padding:.75rem;overflow-y:auto;z-index:10}.side-panel header{display:flex;justify-content:space-between;align-items:center}.member-list,.activity-list{list-style:none;padding:0;margin:.5rem 0}.member-list li{display:flex;align-items:center;gap:.5rem;padding:.25rem 0}.member-list li span:first-child{flex:1}.role-tag{color:#666;font-size:.8rem}.invite-form{display:flex;gap:.25rem;margin-top:.5rem}.activity-list li{padding:.3rem 0;border-bottom:1px solid #f0f0f0;font-size:.85rem}.activity-list time{display:block;color:#999;font-size:.75rem}.readonly-note{color:#b04632;font-size:.85rem}.error-toast{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);background:#b04632;color:#fff;padding:.5rem 1rem;border-radius:4px;z-index:100;box-shadow:0 2px 8px #00000040}.assignee-row{display:flex;align-items:center;gap:.5rem;margin:.5rem 0;font-size:.9rem}.list-rename{margin-left:.4rem;padding:0 4px;font-size:.7rem;opacity:.5}.list-rename:hover{opacity:1}.card-title-input{flex:1;font-size:1.1rem;font-weight:600;border:none;background:transparent}.card-title-input:focus{outline:1px solid #0079bf;background:#fff}.board-actions{position:absolute;top:4px;right:4px;display:flex;gap:2px}.board-actions button{padding:0 4px;font-size:.75rem;background:#ffffffd9}.board-page{padding:.5rem 1rem;height:100vh;display:flex;flex-direction:column}.lists-row{display:flex;gap:.75rem;align-items:flex-start;overflow-x:auto;flex:1;padding-bottom:1rem}.list-column{background:#ebecf0;border-radius:4px;padding:.5rem;width:272px;flex-shrink:0;display:flex;flex-direction:column;gap:.5rem}.list-column h3{font-size:.9rem;padding:0 .25rem}.list-column input{width:100%;padding:.4rem;border:none;border-radius:3px}.add-list{width:272px;flex-shrink:0}.add-list input{width:100%;padding:.6rem;border:none;border-radius:4px;background:#ffffff3f}.card{background:#fff;border-radius:3px;padding:.5rem;box-shadow:0 1px #091e4240;cursor:grab;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.card.dragging{opacity:.5}.assignee-dot{color:#0079bf}.label-strips{display:flex;gap:3px;width:100%}.label-strip{height:6px;border-radius:3px;flex:1;max-width:40px}.due-badge,.check-badge{font-size:.72rem;padding:1px 6px;border-radius:3px;align-self:center}.due-overdue{background:#eb5a46;color:#fff}.due-soon{background:#f2d600;color:#172b4d}.due-normal,.check-badge{background:#ebecf0;color:#5e6c84}.label-chip{border:none;border-radius:12px;padding:2px 10px;color:#fff;font-size:.8rem;opacity:.45}.label-chip.on{opacity:1}.label-row{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.due-row,.move-row{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.due-row input,.move-row select{width:auto}.checklist{list-style:none;padding:0;display:flex;flex-direction:column;gap:.25rem}.check-item{display:flex;align-items:center;gap:.4rem;font-size:.9rem}.filter-bar{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;margin:0 0 .5rem}.label-list,.archive-list{list-style:none;padding:0;margin:.5rem 0}.label-list li,.archive-list li{display:flex;align-items:center;gap:.5rem;padding:.25rem 0}.label-name,.archive-list li span:first-child{flex:1}.label-swatch{width:32px;height:18px;border-radius:3px;border:none;display:inline-block;flex-shrink:0}.label-form{display:flex;gap:.25rem;margin-top:.5rem}.label-form input{flex:1;min-width:0}.nl-create{display:flex;gap:.5rem;margin:.5rem 0}.nl-create input{flex:1;padding:.5rem}.draft-preview{background:#fffbe6;border:1px solid #e2c94d;border-radius:4px;padding:.75rem;margin-bottom:.5rem;display:flex;flex-direction:column;gap:.5rem}.report{background:#fff;border-radius:4px;padding:.75rem;margin-bottom:.5rem}.report pre{white-space:pre-wrap;font-family:inherit;margin-top:.5rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:flex-start;justify-content:center;padding-top:8vh}.modal{background:#f4f5f7;border-radius:4px;width:min(560px,92vw);max-height:80vh;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.modal header{display:flex;justify-content:space-between;align-items:center}.modal textarea,.modal input{width:100%;padding:.5rem}.comments{list-style:none;display:flex;flex-direction:column;gap:.4rem}.comments li{background:#fff;border-radius:3px;padding:.5rem}
