*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f1f5f9;--surface: #ffffff;--surface-2: #f8fafc;--border: #e2e8f0;--accent: #6366f1;--accent-dark: #4f46e5;--accent-light: #eef2ff;--text: #1e293b;--text-muted: #64748b;--danger: #ef4444;--danger-light: #fef2f2;--success: #22c55e;--radius: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);--shadow: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1);--nav-h: 56px}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit;font-size:.875rem;font-weight:500;border:none;border-radius:var(--radius);padding:.5rem 1.125rem;transition:background .15s,box-shadow .15s,opacity .15s}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark)}.btn-danger{background:transparent;color:var(--danger);border:1px solid transparent;padding:.25rem .625rem}.btn-danger:hover{background:var(--danger-light);border-color:var(--danger)}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}input[type=text],input[type=password],input[type=number],textarea{font-family:inherit;font-size:.875rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem;width:100%;outline:none;transition:border-color .15s,box-shadow .15s}input[type=text]:focus,input[type=password]:focus,input[type=number]:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6366f126}textarea{resize:vertical;min-height:72px}select{font-family:inherit;font-size:.875rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem 2rem .5rem .75rem;width:100%;outline:none;cursor:pointer;transition:border-color .15s,box-shadow .15s;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2364748b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6366f126}.td-empty{color:var(--text-muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.page{max-width:960px;margin:0 auto;padding:2rem 1.5rem}@media (max-width: 640px){.page{padding:1rem .875rem}.app-nav{padding:0 1rem}}.page-title{font-size:1.5rem;font-weight:700;letter-spacing:-.01em;color:var(--text)}.card-title{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:1.25rem}.field{display:flex;flex-direction:column;gap:.375rem}.field label{font-size:.8125rem;font-weight:500;color:var(--text-muted)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.field-checkbox{justify-content:flex-end}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem;color:var(--text)}.checkbox-label input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent)}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted);font-size:.9375rem}.badge{display:inline-block;font-size:.75rem;font-weight:500;padding:.2rem .55rem;border-radius:999px;background:var(--accent-light);color:var(--accent-dark)}.progress-tag{display:inline-block;font-size:.75rem;font-weight:500;font-family:SF Mono,Fira Code,monospace;padding:.15rem .5rem;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted)}.status-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--border)}.status-dot.done{background:var(--success)}
