:root{--bg:#faf6ef;--bg-soft:#f3ecdf;--surface:#fffdf8;--surface-2:#f7f1e5;--text:#3d352c;--text-muted:#8a7d6b;--border:#e9ddc9;--accent:#c2703d;--accent-strong:#a8562a;--accent-soft:#f7e3cd;--green:#4d7c5f;--green-soft:#dde9df;--red:#b3543f;--red-soft:#f6ddd5;--amber:#9a6b1f;--amber-soft:#f5e6c4;--blue:#4a6fa5;--blue-soft:#dde6f3;--purple:#7a5c9e;--purple-soft:#e7ddf3;--radius:14px;--radius-sm:10px;--shadow:0 8px 24px #5d402014, 0 2px 6px #5d40200f;--shadow-lg:0 18px 48px #5d402029;--sans:"Nunito", ui-rounded, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#1c1712;--bg-soft:#241d15;--surface:#2a221a;--surface-2:#33291d;--text:#f0e6d6;--text-muted:#b3a48d;--border:#453823;--accent:#e29a5b;--accent-strong:#f0b075;--accent-soft:#4a3120;--green:#8fbf9a;--green-soft:#2c4034;--red:#e08a73;--red-soft:#4c2a22;--amber:#e0b95c;--amber-soft:#4a3a1c;--blue:#8aa8d8;--blue-soft:#2a364e;--purple:#b79ade;--purple-soft:#3b2f52;--shadow:0 8px 24px #00000059;--shadow-lg:0 18px 48px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--sans);background:radial-gradient(1200px 400px at 20% -10%, var(--accent-soft), transparent 60%), var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;line-height:1.55}a{color:inherit}button{font-family:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}.app-shell{min-height:100svh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:16px;width:264px;height:100svh;padding:20px 16px;transition:width .22s,padding .22s;display:flex;position:sticky;top:0;overflow:hidden}.sidebar-collapsed .sidebar{width:78px;padding:20px 10px}.sidebar-collapsed .nav-label,.sidebar-collapsed .brand-text,.sidebar-collapsed .sidebar-cta{display:none}.sidebar-collapsed .brand{justify-content:center;padding:8px 0}.sidebar-collapsed .nav a{justify-content:center;padding:10px 0}.sidebar-collapsed .sidebar .btn,.sidebar-collapsed .collapse-pin{justify-content:center}.collapse-pin{margin-top:4px}.collapse-btn{display:inline-flex}@media (width<=760px){.collapse-btn{display:none}}.brand{align-items:center;gap:12px;padding:8px;text-decoration:none;display:flex}.brand-mark{background:linear-gradient(135deg, var(--accent), var(--accent-strong));width:40px;height:40px;box-shadow:var(--shadow);color:#fff8ef;border-radius:14px;flex-shrink:0;place-items:center;display:grid}.brand-text{min-width:0}.brand-name{letter-spacing:-.02em;font-size:19px;font-weight:900}.brand-sub{color:var(--text-muted);margin-top:-4px;font-size:12px}.nav{flex-direction:column;gap:4px;display:flex}.nav a{color:var(--text-muted);border-radius:12px;align-items:center;gap:12px;padding:10px 12px;font-weight:700;text-decoration:none;transition:background .15s,color .15s,transform .15s;display:flex}.nav a:hover{background:var(--surface-2);color:var(--text)}.nav a.active{background:var(--accent-soft);color:var(--accent-strong)}[data-theme=dark] .nav a.active{color:var(--accent-strong)}.nav-icon{justify-content:center;width:22px;display:inline-flex}.btn .lucide,.chip .lucide,.badge .lucide,.nav-icon .lucide{flex-shrink:0}kbd{border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-bottom-width:2px;border-radius:6px;padding:1px 6px;font-family:ui-monospace,Consolas,monospace;font-size:11px;font-weight:800}.sidebar-cta{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);margin-top:auto;padding:14px}.sidebar-cta-row{color:var(--accent-strong);align-items:center;gap:10px;display:flex}.sidebar-cta-row>div{color:var(--text)}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:20;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:14px 24px;display:flex;position:sticky;top:0}.search-box{align-items:center;display:inline-flex;position:relative}.search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:10px}.search-input{max-width:220px;padding-left:32px!important}@media (width<=760px){.search-input{max-width:130px}.hide-sm{display:none}}.page{width:100%;max-width:1180px;margin:0 auto;padding:28px 24px 64px}.page h1{letter-spacing:-.03em;margin:0;font-size:clamp(26px,3vw,34px)}.page-sub{color:var(--text-muted);margin:6px 0 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.grid{gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-num{letter-spacing:-.03em;font-size:30px;font-weight:900}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:13px;font-weight:800}.btn{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:12px;align-items:center;gap:8px;padding:10px 16px;font-weight:800;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex}.btn:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#fff8ef;border-color:#0000}.btn-danger{background:var(--red-soft);color:var(--red);border-color:#0000}.btn-ghost{box-shadow:none;background:0 0}.btn-sm{border-radius:10px;padding:6px 10px;font-size:13px}.input,.select,.textarea{border:1.5px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:12px;padding:10px 12px;font-family:inherit;font-size:15px}.textarea{resize:vertical;min-height:88px}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);outline:3px solid color-mix(in srgb, var(--accent) 25%, transparent)}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{font-size:13px;font-weight:800}.field-error{color:var(--red);font-size:13px;font-weight:700}.badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:800;display:inline-flex}.badge-low{background:var(--blue-soft);color:var(--blue)}.badge-medium{background:var(--green-soft);color:var(--green)}.badge-high{background:var(--amber-soft);color:var(--amber)}.badge-urgent{background:var(--red-soft);color:var(--red)}.badge-label{background:var(--surface-2);color:var(--text);border-color:var(--border)}.badge-done{background:var(--green-soft);color:var(--green)}.badge-overdue{background:var(--red-soft);color:var(--red)}.badge-today{background:var(--amber-soft);color:var(--amber)}.task-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);cursor:grab;color:inherit;padding:14px;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s;display:block}.task-card:hover{border-color:var(--accent);transform:translateY(-2px)}.task-card.dragging{opacity:.6;box-shadow:var(--shadow-lg);transform:rotate(2deg)scale(1.02)}.task-title{margin:8px 0 4px;font-weight:800;line-height:1.35}.task-desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13.5px;display:-webkit-box;overflow:hidden}.task-meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.task-actions{gap:6px;margin-top:10px;display:flex}.check-btn{border:2px solid var(--border);background:var(--surface);cursor:pointer;border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:14px;line-height:1;transition:all .15s;display:inline-grid}.check-btn.done{background:var(--green);border-color:var(--green);color:#fff}.check-btn:hover{border-color:var(--green);transform:scale(1.08)}.board{grid-auto-columns:minmax(280px,320px);grid-auto-flow:column;align-items:start;gap:16px;padding-bottom:16px;display:grid;overflow-x:auto}.column{background:var(--bg-soft);border:1px solid var(--border);border-radius:16px;min-height:200px;padding:12px}.column.over{outline:3px dashed var(--accent);outline-offset:-6px;background:var(--accent-soft)}.column-head{align-items:center;gap:8px;padding:4px 6px 12px;display:flex}.column-title{font-weight:900}.column-count{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:1px 9px;font-size:12px;font-weight:800}.column-list{flex-direction:column;gap:10px;min-height:80px;display:flex}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#281a0c73;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);width:min(620px,100%);max-height:92svh;box-shadow:var(--shadow-lg);border-radius:20px;padding:22px;animation:.22s cubic-bezier(.34,1.4,.64,1) modal-pop;overflow:auto}.modal-sm{width:min(440px,100%)}.modal-icon{border-radius:12px;place-items:center;width:40px;height:40px;margin-bottom:10px;display:grid}.modal-icon-danger{background:var(--red-soft);color:var(--red)}.toast-wrap{z-index:100;flex-direction:column;gap:8px;width:min(380px,100vw - 40px);display:flex;position:fixed;top:72px;right:20px}.toast{background:var(--surface);color:var(--text);border:1px solid var(--border);border-left:4px solid var(--blue);box-shadow:var(--shadow-lg);border-radius:14px;align-items:center;gap:10px;padding:11px 12px;font-size:14px;font-weight:700;animation:.28s cubic-bezier(.21,1.02,.73,1) toast-slide-in;display:flex}.toast-success{border-left-color:var(--green)}.toast-success .toast-icon{color:var(--green)}.toast-danger{border-left-color:var(--red)}.toast-danger .toast-icon{color:var(--red)}.toast-info .toast-icon{color:var(--blue)}.toast-msg{flex:1;min-width:0}.toast-action{background:var(--accent-soft);color:var(--accent-strong);cursor:pointer;border:none;border-radius:8px;padding:5px 10px;font-family:inherit;font-size:13px;font-weight:800;transition:transform .12s}.toast-action:hover{transform:scale(1.05)}.toast-x{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;padding:4px;transition:color .12s,background .12s;display:inline-flex}.toast-x:hover{color:var(--text);background:var(--surface-2)}@keyframes toast-slide-in{0%{opacity:0;transform:translate(48px)}}@media (width<=760px){.toast-wrap{top:64px;right:12px}}.empty{text-align:center;color:var(--text-muted);padding:40px 20px}.empty-icon{background:var(--surface-2);border:1px solid var(--border);width:60px;height:60px;color:var(--text-muted);border-radius:20px;place-items:center;margin-bottom:12px;display:inline-grid}.confetti{pointer-events:none;z-index:200;position:fixed;inset:0;overflow:hidden}.confetti i{width:8px;height:13px;animation:1.7s ease-in forwards confetti-fall;position:absolute;top:-14px}@keyframes confetti-fall{to{opacity:.5;transform:translateY(106vh)rotate(540deg)}}.route-anim{animation:.32s rise}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}@keyframes modal-pop{0%{opacity:0;transform:translateY(12px)scale(.97)}}.modal-backdrop{animation:.18s fade-in}@keyframes fade-in{0%{opacity:0}}.task-card{animation:.3s card-in}@keyframes card-in{0%{opacity:0;transform:translateY(8px)scale(.99)}}.check-btn.done{animation:.25s cubic-bezier(.34,1.56,.64,1) pop}@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.2)}to{transform:scale(1)}}.subtask-row{animation:.25s card-in}.chip{transition:background .15s,color .15s,border-color .15s,transform .12s}.chip:active{transform:scale(.95)}.column.over{transition:background .15s}.stat-strip{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.stat-mini{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:10px;min-width:0;padding:12px 14px;animation:.3s card-in;display:flex}.stat-mini-icon{background:var(--surface-2);width:34px;height:34px;color:var(--text-muted);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.stat-mini.alert .stat-mini-icon{background:var(--red-soft);color:var(--red)}.stat-mini .stat-num{font-size:22px}.dash-row{border-top:1px solid var(--border);align-items:center;gap:10px;padding:7px 0;font-size:14px;display:flex}.dash-row:first-of-type{border-top:none}.dash-row a{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:700;text-decoration:none;overflow:hidden}.dash-row a:hover{color:var(--accent-strong)}.meta-line{align-items:center;gap:5px;display:inline-flex}@media (width<=1000px){.stat-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}.mobile-nav{display:none}.search-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text-muted);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:800}.chip.on{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent)}.progress-ring{transform:rotate(-90deg)}.progress-ring-bg{stroke:var(--border)}.progress-ring-fg{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .6s}.detail-grid{grid-template-columns:1.6fr 1fr;align-items:start;gap:16px;display:grid}.subtask-row{border:1px solid var(--border);background:var(--surface);border-radius:10px;align-items:center;gap:10px;margin-bottom:8px;padding:8px 10px;display:flex}@media (width<=1000px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:1fr}}@media (width<=760px){.sidebar{display:none}.mobile-nav{z-index:30;background:var(--surface);border-top:1px solid var(--border);padding:8px 6px calc(8px + env(safe-area-inset-bottom));justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-nav a{color:var(--text-muted);border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:6px 10px;font-size:11px;font-weight:800;text-decoration:none;display:flex}.mobile-nav a.active{color:var(--accent-strong);background:var(--accent-soft)}.page{padding:18px 14px 96px}.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.board{grid-auto-columns:84vw}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
