:root{--bg: #ffffff;--ink: #000000;--dim: #888888;--dim-2: #b8b8b8;--alta: #c0271d;--media: #c67c00;--baja: #3a7a4e}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg)}body{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}button,input,textarea{font-family:inherit;font-size:inherit;color:inherit}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:360px}.login-brand{font-weight:700;font-size:22px;letter-spacing:-.01em;margin-bottom:4px}.login-sub{color:var(--dim);font-size:12.5px;margin-bottom:20px}.login-error{color:var(--alta);font-size:11.5px;margin-top:8px;min-height:16px}.login-hint{margin-top:24px;color:var(--dim);font-size:11px;line-height:1.7}.login-hint code{font-family:inherit;border:1px solid var(--dim-2);background:#fafafa;padding:0 4px;border-radius:3px;font-size:10.5px;color:var(--ink)}.app{min-height:100vh;padding:28px 20px 80px}.container{max-width:880px;margin:0 auto}.head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:18px}.brand{font-weight:700;letter-spacing:-.01em}.head-right{display:flex;align-items:baseline;gap:8px;font-size:12.5px;color:var(--dim)}.head-right .sep{color:var(--dim-2)}.head-right .user-email{color:var(--ink)}.logout-btn{background:transparent;border:0;padding:0;font:inherit;font-size:12.5px;color:var(--dim);cursor:pointer;text-decoration:underline;text-underline-offset:3px;transition:color .12s}.logout-btn:hover{color:var(--alta)}.new-wrap{position:relative;margin-bottom:18px}.new{display:block;width:100%;border:1px solid var(--dim-2);background:var(--bg);padding:10px 34px 10px 12px;font-size:14px;outline:none;border-radius:6px;transition:border-color .12s}.new::placeholder{color:var(--dim)}.new:focus{border-color:var(--ink)}.new-plus{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--dim);font-size:16px;font-weight:700;pointer-events:none;-webkit-user-select:none;user-select:none;line-height:1;transition:color .12s}.new:focus~.new-plus{color:var(--ink)}.filters{display:flex;gap:14px;margin-bottom:16px;font-size:13px}.filter{background:transparent;border:0;padding:0;cursor:pointer;color:var(--dim);font:inherit;transition:color .12s}.filter:hover{color:var(--ink)}.filter.active{color:var(--ink);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}.filter .n{color:var(--dim-2);margin-left:2px}.filter.active .n{color:var(--dim)}.list{padding:0}.list-empty{color:var(--dim);padding:24px 0;font-size:13px}.row{display:flex;align-items:baseline;gap:10px;padding:7px 0;border-bottom:1px dashed #e8e8e8;position:relative}.row:hover{background:#fafafa}.row.done{color:var(--dim)}.row.done .text{text-decoration:line-through;text-decoration-thickness:1px}.cbx{flex:none;width:14px;height:14px;border:1.5px solid var(--ink);background:var(--bg);cursor:pointer;padding:0;display:grid;place-items:center;border-radius:3px;transform:translateY(2px)}.cbx svg{opacity:0}.row.done .cbx{background:var(--ink)}.row.done .cbx svg{opacity:1;color:var(--bg)}.text{flex:1 1 auto;min-width:0;cursor:default;padding:1px 4px;margin:-1px -4px;border:1px solid transparent;border-radius:4px;word-wrap:break-word}.text-edit{flex:1 1 auto;min-width:0;font:inherit;font-size:14px;background:var(--bg);border:1px solid var(--ink);border-radius:4px;padding:1px 4px;outline:none;cursor:text}.meta{flex:none;display:flex;align-items:baseline;gap:10px;font-size:12.5px;color:var(--dim);white-space:nowrap}.pri{background:transparent;border:0;padding:0;cursor:pointer;font:inherit;font-size:12.5px;color:var(--dim);letter-spacing:.02em;transition:color .12s}.pri:hover{color:var(--ink)}.row[data-pri=alta] .pri{color:var(--alta);font-weight:700}.row[data-pri=media] .pri{color:var(--media);font-weight:500}.row[data-pri=baja] .pri{color:var(--baja);font-weight:500}.meta-btn{background:transparent;border:0;padding:0;cursor:pointer;font:inherit;font-size:11.5px;color:var(--dim);display:inline-flex;align-items:center;gap:4px;transition:color .12s}.meta-btn:hover{color:var(--ink);background:#f0f0f0}.meta-btn.empty{color:var(--dim-2);opacity:0;transition:opacity .12s}.row:hover .meta-btn.empty,.row:focus-within .meta-btn.empty{opacity:1}.meta-btn.empty:hover{color:var(--dim);background:transparent}.meta-btn svg{flex:none}.due-wrap{position:relative;display:inline-block;cursor:pointer;font-size:11.5px;color:var(--dim);transition:color .12s}.due-wrap:hover{color:var(--ink)}.due-wrap:hover .due-label{background:#f0f0f0}.due-wrap.empty .due-label{color:var(--dim-2);opacity:0;transition:opacity .12s}.row:hover .due-wrap.empty .due-label,.row:focus-within .due-wrap.empty .due-label{opacity:1}.due-wrap.empty:hover .due-label{color:var(--dim);background:transparent}.due-label{display:inline-block;padding:0;pointer-events:none}.due-wrap.overdue .due-label{color:var(--alta);font-weight:700}.due-wrap.overdue:hover .due-label{background:#fdecea}.overdue-dot{font-size:8px;vertical-align:middle}.date-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;padding:0;margin:0;background:transparent;color:transparent}.date-input::-webkit-calendar-picker-indicator{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer}.row:not(:hover) .due-wrap.empty .date-input{pointer-events:none}.person-wrap{position:relative;display:inline-block}.person-input{border:1px solid var(--ink);background:var(--bg);padding:1px 4px;font:inherit;font-size:12.5px;outline:none;border-radius:3px;width:130px}.person-suggest{position:absolute;top:calc(100% + 2px);left:0;z-index:60;background:var(--bg);border:1px solid var(--ink);border-radius:4px;min-width:140px;max-height:180px;overflow-y:auto;box-shadow:0 2px 8px #0000000f}.person-suggest button{display:block;width:100%;background:transparent;border:0;padding:4px 8px;font:inherit;font-size:12.5px;text-align:left;cursor:pointer;color:var(--ink)}.person-suggest button:hover,.person-suggest button.active{background:var(--ink);color:var(--bg)}.pri-pop{position:absolute;z-index:50;background:var(--bg);border:1px solid var(--ink);padding:0;display:flex;flex-direction:column;min-width:90px;border-radius:4px;overflow:hidden;box-shadow:0 2px 8px #00000014}.pri-pop button{background:transparent;border:0;padding:5px 10px;font:inherit;font-size:12.5px;text-align:left;cursor:pointer;color:var(--ink)}.pri-pop button.alta-opt{color:var(--alta);font-weight:700}.pri-pop button.alta-opt:hover{background:var(--alta);color:var(--bg)}.pri-pop button.media-opt{color:var(--media);font-weight:500}.pri-pop button.media-opt:hover{background:var(--media);color:var(--bg)}.pri-pop button.baja-opt{color:var(--baja);font-weight:500}.pri-pop button.baja-opt:hover{background:var(--baja);color:var(--bg)}.comments{padding:4px 0 8px 26px;border-bottom:1px dashed #e8e8e8;background:#fcfcfc}.comment{display:flex;gap:8px;align-items:baseline;font-size:12.5px;padding:3px 0;color:var(--ink)}.comment .c-meta{color:var(--dim);flex:none}.comment .c-text{color:var(--ink);word-wrap:break-word;min-width:0}.comment .c-bullet{color:var(--dim-2);flex:none}.comment-input-wrap{display:flex;align-items:center;gap:8px;margin-top:4px}.comment-bullet{color:var(--dim-2);font-size:12.5px}.comment-input{flex:1;border:1px solid var(--dim-2);background:var(--bg);padding:4px 8px;font:inherit;font-size:12.5px;outline:none;border-radius:4px;transition:border-color .12s}.comment-input:focus{border-color:var(--ink)}.hint{margin-top:22px;color:var(--dim);font-size:11.5px;line-height:1.7}.kbd{border:1px solid var(--dim-2);padding:0 4px;font-size:10.5px;background:#fafafa;border-radius:3px}@media (max-width: 580px){.app{padding:20px 14px 60px}.row{flex-wrap:wrap;gap:6px 8px}.meta{width:100%;padding-left:24px}.meta-btn.empty,.due-wrap.empty .due-label{opacity:1}.comments{padding-left:24px}}@media (max-width: 480px){.head{flex-wrap:wrap;gap:6px}.head-right{font-size:11.5px}}
