body{background:#f8fafc;place-items:center;min-height:100vh;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:grid}#root{width:min(560px,90vw)}main{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:32px 24px}h1{margin:0 0 10px;font-size:28px}p{color:#334155;margin:0 0 16px}button{color:#fff;cursor:pointer;background:#2563eb;border:1px solid #2563eb;border-radius:8px;padding:10px 16px;font-size:16px}input{border:1px solid #cbd5e1;border-radius:8px;flex:1;padding:10px 12px;font-size:16px}.row{gap:8px;margin-bottom:12px;display:flex}.filters button{color:#0f172a;background:#e2e8f0;border-color:#cbd5e1;flex:1}.filters .active{color:#fff;background:#2563eb;border-color:#2563eb}ul{margin:12px 0;padding:0;list-style:none}li{cursor:move;border:1px solid #e2e8f0;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;padding:10px 12px;display:flex}li.dragging{opacity:.45}li.drop-target{border-top:2px solid #2563eb}label{color:#0f172a;align-items:center;gap:8px;display:flex}.done{color:#64748b;text-decoration:line-through}.due-text{color:#64748b;margin-top:2px;font-size:12px;display:block}.overdue{background:#fef2f2;border-color:#fca5a5}.overdue .due-text{color:#dc2626}.danger{background:#ef4444;border-color:#ef4444;padding:6px 10px;font-size:14px}.empty{color:#64748b;justify-content:center}small{color:#475569;display:block}.warn{color:#b91c1c;margin-bottom:8px}.hint{color:#64748b;margin-top:6px}@media (width<=640px){body{background:#fff;display:block}#root{width:100%}main{min-height:100vh;padding:14px;padding-bottom:calc(14px + env(safe-area-inset-bottom));border:none;border-radius:0}h1{margin-bottom:8px;font-size:22px}form.row{grid-template-columns:1fr 132px;gap:8px;display:grid}form.row>input:first-child{grid-column:1/3}form.row input,form.row button{min-height:44px}form.row button{padding-inline:12px}.filters{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.filters button{min-height:44px;padding:8px 6px}li{flex-direction:column;align-items:flex-start;gap:10px;padding:12px}label{align-items:flex-start;width:100%;min-width:0}label input[type=checkbox]{margin-top:3px}label>span{overflow-wrap:anywhere;min-width:0;font-size:15px}.danger{width:100%;min-height:42px}}
