:root{--blue:#1a73e8;--blue-dark:#1765cc;--bg:#fff;--surface:#f8f9fa;--line:#dadce0;--text:#202124;--muted:#5f6368;--danger:#d93025;--green:#1e8e3e;color:var(--text);font-family:Google Sans,Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg)}button{font:inherit;cursor:pointer}input,select{font:inherit}.material-symbols-outlined{vertical-align:middle;-webkit-user-select:none;user-select:none;font-size:20px;line-height:1}.login{background:var(--surface);place-items:center;min-height:100vh;display:grid}.login-card{background:var(--bg);border:1px solid var(--line);text-align:center;border-radius:12px;width:380px;padding:44px 40px;box-shadow:0 1px 3px #3c404326}.login-card .logo{color:var(--blue);margin-bottom:10px;font-size:28px;font-weight:500}.login-card p{color:var(--muted);font-size:15px;line-height:1.5}.google-btn{background:var(--blue);color:#fff;border:0;border-radius:8px;width:100%;margin-top:18px;padding:12px;font-size:15px;font-weight:500}.google-btn:hover{background:var(--blue-dark)}.layout{width:100%;height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;width:280px;padding:14px 12px;display:flex}.sidebar-brand{color:var(--blue);padding:8px 14px 16px;font-size:22px;font-weight:500}.lists{flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.list-item{text-align:left;color:var(--text);background:0 0;border:0;border-radius:0 999px 999px 0;align-items:center;gap:14px;padding:11px 14px;font-size:14px;font-weight:500;display:flex}.list-item .material-symbols-outlined{color:var(--muted);font-size:20px}.list-item:hover{background:#ecedef}.list-item.on{color:#041e49;background:#d3e3fd}.list-item.on .material-symbols-outlined{color:#041e49}.add-list{text-align:left;color:var(--muted);background:0 0;border:0;border-radius:999px;align-items:center;gap:14px;margin-top:4px;padding:11px 14px;font-size:14px;display:flex}.add-list:hover{background:#ecedef}.sidebar-foot{border-top:1px solid var(--line);margin-top:8px;padding-top:10px}.text-btn{color:var(--muted);background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:9px 14px;font-size:14px;display:flex}.text-btn:hover{color:var(--text);background:#ecedef}.main{flex-direction:column;flex:1;min-width:0;padding:24px 32px;display:flex;overflow-y:auto}.main-head{flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:18px;display:flex}.main-head h1{margin:0;font-size:26px;font-weight:500}.spacer{flex:1}.seg{border:1px solid var(--line);border-radius:999px;display:inline-flex;overflow:hidden}.seg button{background:var(--bg);color:var(--muted);border:0;padding:7px 18px;font-size:14px;font-weight:500}.seg button.on{color:#041e49;background:#d3e3fd}.toggle{color:var(--muted);align-items:center;gap:8px;font-size:14px;display:inline-flex}.toggle input{width:16px;height:16px;accent-color:var(--blue)}.icon-btn{width:40px;height:40px;color:var(--muted);background:0 0;border:0;border-radius:50%;place-items:center;display:inline-grid}.icon-btn:hover{background:#e8eaed}.add-bar{gap:10px;max-width:720px;margin-bottom:16px;display:flex}.add-bar input{border:1px solid var(--line);background:var(--bg);border-radius:999px;flex:1;padding:12px 16px}.add-bar input:focus{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue);outline:none}.add-bar button{background:var(--blue);color:#fff;border:0;border-radius:999px;padding:0 26px;font-weight:500}.add-bar button:hover{background:var(--blue-dark)}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.chip{border:1px solid var(--line);background:var(--bg);color:var(--muted);border-radius:999px;padding:6px 16px;font-size:14px;font-weight:500}.chip.on{color:#041e49;background:#d3e3fd;border-color:#0000}.search{border:1px solid var(--line);background:var(--surface);border-radius:999px;min-width:220px;margin-left:auto;padding:9px 16px}.search:focus{border-color:var(--blue);background:var(--bg);outline:none}.error{color:var(--danger);font-size:14px}.error.banner{background:#fce8e6;border-radius:8px;max-width:720px;margin-bottom:10px;padding:10px 14px}.loading,.empty{color:var(--muted);padding:28px 4px}.content{max-width:760px}.t-row{border-radius:10px;align-items:flex-start;gap:14px;padding:10px 8px;display:flex}.t-row:hover{background:#f1f3f4}.t-check{color:#0000;background:0 0;border:2px solid #5f6368;border-radius:50%;flex-shrink:0;place-items:center;width:20px;height:20px;margin-top:2px;padding:0;display:grid}.t-check:hover{border-color:var(--blue)}.t-check .material-symbols-outlined{font-size:16px}.t-check.on{background:var(--blue);border-color:var(--blue);color:#fff}.t-main{flex:1;min-width:0}.t-title{cursor:text;font-size:15px}.t-row.done .t-title{color:var(--muted);text-decoration:line-through}.t-title-edit{border:0;border-bottom:1px solid var(--blue);background:0 0;width:100%;padding:2px 4px;font-size:15px}.t-title-edit:focus{outline:none}.t-notes{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:13px;overflow:hidden}.t-chips{align-items:center;gap:12px;margin-top:5px;display:flex}.t-due{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.t-due .material-symbols-outlined{font-size:15px}.t-due.overdue{color:var(--danger)}.t-quad{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.t-quad:before{content:"";background:#80868b;border-radius:50%;width:8px;height:8px}.t-quad.q-0:before{background:#d93025}.t-quad.q-1:before{background:#1a73e8}.t-quad.q-2:before{background:#f29900}.t-quad.q-3:before{background:#80868b}.t-actions{opacity:0;gap:2px;transition:opacity .12s;display:flex}.t-row:hover .t-actions{opacity:1}.t-icon{width:34px;height:34px;color:var(--muted);background:0 0;border:0;border-radius:50%;place-items:center;display:inline-grid}.t-icon:hover{color:var(--text);background:#e2e4e6}.add-sub{margin:4px 0}.add-sub input{border:1px solid var(--line);border-radius:999px;width:60%;padding:9px 14px}.add-sub input:focus{border-color:var(--blue);outline:none}.matrix{grid-template-columns:1fr 1fr;gap:14px;max-width:1100px;display:grid}.quad{background:var(--bg);border:1px solid var(--line);border-top:3px solid var(--line);border-radius:12px;flex-direction:column;min-height:200px;display:flex}.quad.q-0{border-top-color:#d93025}.quad.q-1{border-top-color:#1a73e8}.quad.q-2{border-top-color:#f29900}.quad.q-3{border-top-color:#80868b}.quad.over{outline:2px dashed var(--blue);outline-offset:-2px}.quad-head{padding:14px 16px 6px}.quad-title{font-weight:500;display:block}.quad-hint{color:var(--muted);font-size:12px}.quad-body{flex-direction:column;gap:6px;padding:6px 12px 14px;display:flex}.quad-card{background:var(--surface);border:1px solid var(--line);cursor:grab;border-radius:10px;align-items:center;gap:10px;padding:9px 12px;display:flex}.quad-card:active{cursor:grabbing}.quad-card input[type=checkbox]{accent-color:var(--blue)}.quad-card-title{flex:1;font-size:14px}.quad-card-due{color:var(--muted);font-size:12px}.quad-empty{color:var(--muted);text-align:center;padding:16px;font-size:13px}.t-icon.info,.icon-btn.info{color:var(--blue)}.modal-overlay{z-index:50;background:#20212480;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--bg);border-radius:16px;width:480px;max-width:100%;padding:24px;box-shadow:0 8px 28px #3c40434d}.modal h2{margin:0 0 18px;font-size:20px;font-weight:500}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field>span{color:var(--muted);font-size:13px}.field input,.field textarea,.field select{border:1px solid var(--line);background:var(--bg);color:var(--text);font:inherit;border-radius:8px;padding:10px 12px}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue);outline:none}.field textarea{resize:vertical}.field-row{gap:14px;display:flex}.field-row .field{flex:1}.modal-actions{align-items:center;gap:8px;margin-top:8px;display:flex}.modal-actions .spacer{flex:1}.modal-actions button{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:999px;padding:9px 20px;font-weight:500}.modal-actions button:hover{background:var(--surface)}.modal-actions .primary{background:var(--blue);color:#fff;border-color:var(--blue)}.modal-actions .primary:hover{background:var(--blue-dark)}.modal-actions .del{color:var(--danger);border-color:#0000}.modal-actions .del:hover{background:#fce8e6}@media (width<=760px){.sidebar{width:220px}.matrix{grid-template-columns:1fr}}
