@import"https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700;800&family=Geist+Mono:wght@400;500;600&display=swap";:root{--font-sans: "Hanken Grotesk", ui-sans-serif, system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, monospace;--accent: #5b58e0;--accent-soft: color-mix(in srgb, var(--accent) 12%, transparent);--accent-text: #ffffff;--bg: #faf9f8;--surface: #ffffff;--surface-2: #f4f3f1;--surface-3: #ecebe8;--border: #e6e4e0;--border-strong: #d6d3ce;--text: #1c1b19;--text-2: #6a675f;--text-3: #9a978f;--shadow-sm: 0 1px 2px rgba(28,27,25,.05), 0 1px 1px rgba(28,27,25,.04);--shadow-md: 0 4px 14px rgba(28,27,25,.08), 0 2px 4px rgba(28,27,25,.04);--shadow-lg: 0 20px 50px rgba(28,27,25,.18), 0 6px 16px rgba(28,27,25,.1);--danger: #d4493f;--warn: #c77d1a;--ok: #2f9e6f}[data-theme=dark]{--bg: #0c0c0e;--surface: #161618;--surface-2: #1d1d20;--surface-3: #26262a;--border: #2a2a2e;--border-strong: #3a3a40;--text: #f1f0ee;--text-2: #a4a29c;--text-3: #6f6d68;--accent-soft: color-mix(in srgb, var(--accent) 22%, transparent);--shadow-sm: 0 1px 2px rgba(0,0,0,.4);--shadow-md: 0 6px 18px rgba(0,0,0,.5);--shadow-lg: 0 24px 60px rgba(0,0,0,.6), 0 8px 20px rgba(0,0,0,.4);--danger: #f1685c;--warn: #e0a13c;--ok: #4cc28d}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:14px;line-height:1.45;letter-spacing:-.006em}#root{height:100%}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}::selection{background:var(--accent-soft)}.mono{font-family:var(--font-mono);font-feature-settings:"tnum"}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:6px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--text-3);background-clip:content-box}.btn{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 13px;border-radius:9px;font-size:13.5px;font-weight:600;letter-spacing:-.01em;border:1px solid transparent;white-space:nowrap;transition:background .14s,border-color .14s,transform .08s,box-shadow .14s;-webkit-user-select:none;user-select:none}.btn:disabled{cursor:default}.btn:active:not(:disabled){transform:translateY(.5px)}.btn svg{width:16px;height:16px}.btn-primary{background:var(--accent);color:var(--accent-text)}.btn-primary:hover:not(:disabled){filter:brightness(1.07);box-shadow:0 2px 10px color-mix(in srgb,var(--accent) 35%,transparent)}.btn-ghost{color:var(--text-2)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-outline{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-outline:hover:not(:disabled){background:var(--surface-2);border-color:var(--text-3)}.btn-sm{height:28px;padding:0 10px;font-size:12.5px;border-radius:7px}.btn-icon{width:34px;height:34px;padding:0;justify-content:center}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(1.06)}.input{width:100%;height:38px;padding:0 12px;background:var(--surface);border:1px solid var(--border-strong);border-radius:9px;font-size:14px;color:var(--text);transition:border-color .14s,box-shadow .14s}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input::placeholder{color:var(--text-3)}textarea.input{height:auto;padding:10px 12px;resize:vertical;line-height:1.5}select.input{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239a978f' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:32px}.label{display:block;font-size:12px;font-weight:600;color:var(--text-2);margin-bottom:6px;letter-spacing:.01em}.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:8px;font-size:12.5px;font-weight:600;background:var(--surface);border:1px solid var(--border-strong);color:var(--text-2);transition:background .14s,border-color .14s,color .14s;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.chip:hover{background:var(--surface-2);color:var(--text)}.chip.on{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:color-mix(in srgb,var(--accent) 70%,var(--text))}.tag{display:inline-flex;align-items:center;height:19px;padding:0 7px;border-radius:5px;font-size:11px;font-weight:600;letter-spacing:.01em;background:var(--surface-3);color:var(--text-2);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.card-surface{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm)}.dot{width:10px;height:10px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 1px #0000001f}.divider{height:1px;background:var(--border)}.row-actions{opacity:0;transition:opacity .12s}.row-card:hover .row-actions{opacity:1}.kcard:hover{border-color:var(--border-strong)!important}.ms-row:hover{background:var(--surface-2)}.col-add:hover{background:var(--surface-2);color:var(--text)!important}.navbtn:hover{background:var(--surface-2)}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1413116b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:60;display:flex;animation:overlayIn .16s ease}[data-theme=dark] .overlay{background:#0009}.modal{background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-lg);animation:modalIn .2s cubic-bezier(.2,.8,.2,1)}.scroll-y{overflow-y:auto;overflow-x:hidden}.scroll-x{overflow-x:auto;overflow-y:hidden}@media(max-width:768px){.input,textarea.input,select.input{font-size:16px}}@media print{body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{position:absolute;left:0;top:0;width:100%;box-shadow:none!important;border:none!important}.no-print{display:none!important}.overlay{position:absolute;background:#fff!important;-webkit-backdrop-filter:none;backdrop-filter:none;padding:0!important}}
