*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Plus Jakarta Sans,Segoe UI,sans-serif}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}a{text-decoration:none}:root,[data-theme=dark]{--bg: #faf7f4;--bg-surface: #ffffff;--bg-raised: #f4f0eb;--border: #e4dbd2;--border-dim: #ece6df;--border-focus: rgba(194,78,28,.4);--text-primary: #1c1410;--text-secondary: #4a3020;--text-muted: #7a6050;--accent: #c24e1c;--accent-fg: #ffffff;--accent-dim: rgba(194,78,28,.08);--badge-bg: #ede5db;--badge-text: #6a4e38;--badge-active-bg: rgba(194,78,28,.1);--badge-active-text: #a83e12;--status-pending-bg: #ede5db;--status-pending-text: #6a4e38;--status-progress-bg: rgba(194,78,28,.08);--status-progress-text: #c24e1c;--status-done-bg: #edf6ee;--status-done-text: #2a7a44;--input-bg: #ffffff;--input-border: #d8cfc6;--card-hover-border: #c8bfb5;--skeleton-base: #ede8e2;--skeleton-shine: #f5f0eb;--sidebar-bg: #f2ede7;--sidebar-border: #e4dbd2;--sidebar-icon-bg: #ffffff;--sidebar-icon-active: #fdf0e8;--sidebar-icon-dot: #e4dbd2;--sidebar-logo-bg: #c24e1c;--sidebar-logo-fg: #ffffff;--texture-color: rgba(194,78,28,.025)}[data-theme=warm]{--bg: #fdf8f0;--bg-surface: #fffdf8;--bg-raised: #faf3e6;--border: #e8d8c0;--border-dim: #f0e6d4;--border-focus: rgba(184,88,20,.4);--text-primary: #2a1808;--text-secondary: #8a5428;--text-muted: #b89070;--accent: #b85818;--accent-fg: #fffdf8;--accent-dim: rgba(184,88,20,.1);--badge-bg: #f5ead8;--badge-text: #8a6040;--badge-active-bg: rgba(184,88,20,.12);--badge-active-text: #b85818;--status-pending-bg: #f5ead8;--status-pending-text: #8a6040;--status-progress-bg: rgba(184,88,20,.1);--status-progress-text: #b85818;--status-done-bg: #edf6ee;--status-done-text: #2a7a44;--input-bg: #fffdf8;--input-border: #e0cdb0;--card-hover-border: #d0b898;--skeleton-base: #f0e6d4;--skeleton-shine: #f8f0e2;--sidebar-bg: #f5ede0;--sidebar-border: #e8d8c0;--sidebar-icon-bg: #fffdf8;--sidebar-icon-active: #fdf0de;--sidebar-icon-dot: #e8d8c0;--sidebar-logo-bg: linear-gradient(135deg, #c8721e, #9a4e10);--sidebar-logo-fg: #fffdf8;--texture-color: rgba(184,88,20,.03)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.skeleton{background:linear-gradient(90deg,var(--skeleton-base) 25%,var(--skeleton-shine) 50%,var(--skeleton-base) 75%);background-size:800px 100%;animation:shimmer 1.4s infinite linear;border-radius:6px}.status-badge{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:3px 9px;border-radius:20px;letter-spacing:.2px;white-space:nowrap}.status-badge.pending{background:var(--status-pending-bg);color:var(--status-pending-text)}.status-badge.in_progress{background:var(--status-progress-bg);color:var(--status-progress-text)}.status-badge.completed{background:var(--status-done-bg);color:var(--status-done-text)}.tab-bar{display:flex;border-bottom:1px solid var(--border);padding:0 24px;gap:0}.tab-btn{display:flex;align-items:center;gap:7px;padding:12px 2px;margin-right:24px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}.tab-btn:hover{color:var(--text-secondary)}.tab-btn.active{color:var(--text-primary);font-weight:600;border-bottom-color:var(--accent)}.tab-count{font-size:11px;font-weight:600;padding:1px 6px;border-radius:10px;background:var(--badge-bg);color:var(--badge-text);transition:background .15s,color .15s}.tab-btn.active .tab-count{background:var(--badge-active-bg);color:var(--badge-active-text)}.tab-content{animation:fadeUp .15s ease forwards}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 20px;background:var(--accent);color:var(--accent-fg);border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:filter .15s,opacity .15s;white-space:nowrap}.btn-primary:hover:not(:disabled){filter:brightness(.9)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:none;border:1px solid var(--border);border-radius:8px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:border-color .15s,color .15s;white-space:nowrap}.btn-ghost:hover{border-color:var(--text-muted);color:var(--text-primary)}.text-input{width:100%;padding:10px 14px;background:var(--input-bg);border:1.5px solid var(--input-border);border-radius:8px;font-size:14px;color:var(--text-primary);outline:none;transition:border-color .15s,box-shadow .15s}.text-input::placeholder{color:var(--text-muted)}.text-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-dim)}.text-input.error{border-color:#ef4444}.field-error{font-size:12px;color:#ef4444;margin-top:4px}.alert-error{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:8px;color:#f87171;font-size:13px}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.spinner-lg{width:28px;height:28px;border-width:2.5px}.breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted)}.breadcrumb a{color:var(--text-muted);transition:color .15s}.breadcrumb a:hover{color:var(--text-secondary)}.breadcrumb .sep{opacity:.4}.breadcrumb .current{color:var(--text-primary);font-weight:500}.section-label{font-size:11px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--text-muted);margin-bottom:14px}.add-card{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;background:none;border:1.5px dashed var(--border);border-radius:10px;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:border-color .15s,color .15s}.add-card:hover{border-color:var(--text-muted);color:var(--text-secondary)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;gap:8px}.empty-state h3{font-family:Cormorant Garamond,serif;font-size:28px;font-weight:300;letter-spacing:-.02em;color:var(--text-primary);margin-bottom:2px}.empty-state p{font-size:14px;color:var(--text-muted);margin-bottom:16px}.auth-bg{min-height:100vh;display:flex;align-items:stretch;padding:0;background-color:var(--bg);background-image:radial-gradient(ellipse 65% 75% at 28% 50%,rgba(194,78,28,.06) 0%,transparent 68%),repeating-linear-gradient(-45deg,var(--texture-color) 0px,var(--texture-color) 1px,transparent 1px,transparent 8px)}.auth-card{position:fixed;top:0;right:0;width:420px;height:100vh;background:var(--bg-surface);border-radius:16px 0 0 16px;box-shadow:-8px 0 40px #00000012;padding:48px 40px;overflow-y:auto;display:flex;flex-direction:column;justify-content:center;animation:fadeUp .35s ease forwards}.auth-left{display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:60px 8%;padding-right:calc(420px + 8%);box-sizing:border-box}@media (max-width: 860px){.auth-left{display:none}.auth-card{position:relative;top:auto;right:auto;width:100%;height:auto;min-height:100vh;border-radius:0;box-shadow:none;justify-content:center}.auth-bg{align-items:flex-start}}.seg-control{display:inline-flex;background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;padding:3px;gap:2px}.seg-btn{padding:5px 12px;border-radius:5px;border:none;background:none;font-size:12px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.seg-btn:hover{color:var(--text-secondary)}.seg-btn.active{font-weight:600;color:var(--text-primary)}.seg-btn.active.pending{background:var(--status-pending-bg);color:var(--status-pending-text)}.seg-btn.active.in_progress{background:var(--status-progress-bg);color:var(--status-progress-text)}.seg-btn.active.completed{background:var(--status-done-bg);color:var(--status-done-text)}
