/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.static{position:static}.container{width:100%}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@layer base{:root{--radius:.5rem;--sidebar-background:0 0% 98%;--sidebar-foreground:240 5.3% 26.1%;--sidebar-primary:240 5.9% 10%;--sidebar-primary-foreground:0 0% 98%;--sidebar-accent:240 4.8% 95.9%;--sidebar-accent-foreground:240 5.9% 10%;--sidebar-border:220 13% 91%;--sidebar-ring:217.2 91.2% 59.8%}.dark{--sidebar-background:240 5.9% 10%;--sidebar-foreground:240 4.8% 95.9%;--sidebar-primary:224.3 76.3% 48%;--sidebar-primary-foreground:0 0% 100%;--sidebar-accent:240 3.7% 15.9%;--sidebar-accent-foreground:240 4.8% 95.9%;--sidebar-border:240 3.7% 15.9%;--sidebar-ring:217.2 91.2% 59.8%}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}*{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:flex-start;min-height:100vh;padding:40px 16px;font-family:PingFang SC,Microsoft YaHei,sans-serif;display:flex}.loading{color:#fff;margin:auto;font-size:18px}.auth-container{justify-content:center;align-items:center;width:100%;min-height:80vh;display:flex}.auth-box{background:#fff;border-radius:20px;flex-direction:column;gap:14px;width:100%;max-width:400px;padding:40px 32px;display:flex;box-shadow:0 20px 60px #0003}.auth-box h1{color:#333;text-align:center;font-size:22px}.auth-subtitle{text-align:center;color:#888;margin-top:-6px;font-size:14px}.auth-box input{border:1.5px solid #eee;border-radius:10px;outline:none;padding:12px 14px;font-size:15px;transition:border-color .2s}.auth-box input:focus{border-color:#6c63ff}.auth-btn{color:#fff;cursor:pointer;background:#6c63ff;border:none;border-radius:10px;margin-top:4px;padding:12px;font-size:16px;transition:background .2s,transform .1s}.auth-btn:hover{background:#574fd6}.auth-btn:active{transform:scale(.98)}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-message{color:#ff4d4f;text-align:center;font-size:13px}.auth-switch{text-align:center;color:#888;font-size:14px}.auth-switch span{color:#6c63ff;cursor:pointer;margin-left:4px;font-weight:500}.app{background:#fff;border-radius:20px;width:100%;max-width:560px;padding:28px 24px;box-shadow:0 20px 60px #0003}.header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.header h1{color:#333;font-size:22px}.user-info{align-items:center;gap:10px;display:flex}.user-info span{color:#999;text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:12px;overflow:hidden}.logout-btn{color:#888;cursor:pointer;background:0 0;border:1.5px solid #ddd;border-radius:6px;padding:4px 10px;font-size:12px;transition:all .2s}.logout-btn:hover{color:#ff4d4f;border-color:#ff4d4f}.input-section{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.input-row{gap:8px;display:flex}.input-row input{border:1.5px solid #eee;border-radius:10px;outline:none;flex:1;padding:11px 14px;font-size:15px;transition:border-color .2s}.input-row input:focus{border-color:#6c63ff}.input-row button{color:#fff;cursor:pointer;white-space:nowrap;background:#6c63ff;border:none;border-radius:10px;padding:11px 20px;font-size:15px;transition:background .2s,transform .1s}.input-row button:hover{background:#574fd6}.input-row button:active{transform:scale(.97)}.input-meta{flex-wrap:wrap;gap:8px;display:flex}.input-meta select,.input-meta input{color:#555;background:#fff;border:1.5px solid #eee;border-radius:8px;outline:none;flex:1;min-width:100px;padding:8px 10px;font-size:13px;transition:border-color .2s}.input-meta select:focus,.input-meta input:focus{border-color:#6c63ff}.filter-row{gap:6px;margin-bottom:16px;display:flex}.filter-row button{color:#888;cursor:pointer;background:#fff;border:1.5px solid #eee;border-radius:8px;flex:1;padding:7px;font-size:13px;transition:all .2s}.filter-row button.active{color:#fff;background:#6c63ff;border-color:#6c63ff}.todo-list{flex-direction:column;gap:8px;min-height:60px;list-style:none;display:flex}.todo-item{background:#f8f8ff;border:1.5px solid #ebebff;border-radius:10px;padding:12px 14px;transition:opacity .2s;animation:.2s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.todo-item.done{opacity:.6;background:#fafafa;border-color:#eee}.todo-main{align-items:center;gap:10px;display:flex}.priority-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.todo-text{color:#333;cursor:pointer;-webkit-user-select:none;user-select:none;word-break:break-all;flex:1;font-size:15px}.todo-item.done .todo-text{color:#aaa;text-decoration:line-through}button.delete{color:#ff6b6b;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:3px 8px;font-size:13px;transition:background .15s}button.delete:hover{background:#fff0f0}.todo-meta{flex-wrap:wrap;gap:8px;margin-top:6px;padding-left:20px;display:flex}.tag{color:#6c63ff;background:#f0edff;border-radius:20px;padding:2px 8px;font-size:12px}.due{color:#888;font-size:12px}.due.overdue{color:#ff4d4f;font-weight:500}.empty{text-align:center;color:#bbb;padding:20px;font-size:14px}.stats{text-align:right;color:#bbb;margin-top:16px;font-size:13px}@media (width<=480px){body{padding:16px 12px}.app{padding:20px 16px}.input-meta{flex-direction:column}.input-meta select,.input-meta input{min-width:unset}}
