:root{--ink: #15231c;--pine: #1f4d3a;--moss: #3d7a5a;--sand: #e7efe8;--mist: #d3e4d9;--alert: #b3542d;--warn: #9a6b2f;--card: #f4f8f5;--border: #b7cfc0;--muted: #5a7264;--radius: 12px;--font: "Source Sans 3", "Segoe UI", sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:radial-gradient(ellipse 80% 50% at 10% -10%,#c5dbc9 0%,transparent 55%),radial-gradient(ellipse 60% 40% at 100% 0%,#dce8df 0%,transparent 50%),var(--sand);line-height:1.45}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--pine)}.app-shell{max-width:1100px;margin:0 auto;padding:1.25rem 1.25rem 3rem}.topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1.25rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.brand{display:flex;flex-direction:column;gap:.15rem}.brand h1{margin:0;font-size:1.55rem;font-weight:800;letter-spacing:-.03em;color:var(--pine)}.brand span{font-size:.85rem;color:var(--muted)}.nav{display:flex;flex-wrap:wrap;gap:.4rem}.nav button{border:1px solid transparent;background:transparent;padding:.45rem .85rem;border-radius:999px;cursor:pointer;color:var(--muted);font-weight:600}.nav button:hover{background:var(--mist);color:var(--ink)}.nav button.active{background:var(--pine);color:#fff}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:none;border-radius:var(--radius);padding:.55rem 1rem;font-weight:700;cursor:pointer;background:var(--pine);color:#fff}.btn:hover{background:var(--moss)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--pine);border:1px solid var(--border)}.btn-ghost:hover{background:var(--mist)}.panel{background:color-mix(in srgb,var(--card) 88%,white);border:1px solid var(--border);border-radius:calc(var(--radius) + 2px);padding:1.1rem 1.2rem}.panel+.panel{margin-top:1rem}.panel h2{margin:0 0 .75rem;font-size:1.15rem;font-weight:750}.panel h3{margin:0 0 .5rem;font-size:.95rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.login-card{max-width:420px;margin:4rem auto}.login-card p{margin:0 0 1rem;color:var(--muted)}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.9rem}.field label{font-size:.85rem;font-weight:700;color:var(--muted)}.field input,.field textarea,.field select{border:1px solid var(--border);border-radius:10px;background:#fff;padding:.6rem .75rem}.field textarea{font-family:var(--mono);font-size:.82rem;min-height:140px;resize:vertical;line-height:1.4}.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.95rem}th,td{text-align:left;padding:.65rem .5rem;border-bottom:1px solid var(--mist);vertical-align:top}th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--mist)}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700;background:var(--mist);color:var(--pine)}.badge.low,.badge.stale{background:#f3ddd4;color:var(--alert)}.badge.medium{background:#f0e4c8;color:var(--warn)}.badge.high{background:#cfe5d6;color:var(--pine)}.muted{color:var(--muted)}.error{color:var(--alert);font-weight:600;margin:.5rem 0}.success{color:var(--moss);font-weight:600;margin:.5rem 0}.toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:1rem}.estimate-box{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;margin-bottom:1rem;padding:.85rem;background:var(--mist);border-radius:var(--radius)}.estimate-box strong{display:block;font-size:1.1rem}.estimate-box span{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.empty{padding:1.5rem 0;color:var(--muted);text-align:center}
