@import"https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;600&display=swap";:root{color-scheme:light;--bg: #f6f4ef;--panel: #ffffff;--ink: #1b1c1e;--muted: #5d5f62;--accent: #1f6f78;--accent-2: #e07a4f;--border: #e0dad1;--shadow: 0 10px 30px rgba(21, 22, 24, .08)}*{box-sizing:border-box}body{margin:0;font-family:"Source Sans 3",Segoe UI,sans-serif;color:var(--ink);background:radial-gradient(circle at top,#fff7e8,var(--bg))}a{color:inherit;text-decoration:none}a.active{color:var(--accent)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:24px 40px;border-bottom:1px solid var(--border);background:var(--panel);position:sticky;top:0;z-index:10}.brand{font-size:18px;font-weight:600}.app-nav{display:flex;gap:16px;font-weight:600}.app-main{flex:1;padding:32px 40px 48px}.page h1{font-size:32px;margin:0 0 12px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.page p{color:var(--muted);max-width:720px}.card-grid{margin-top:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:20px;box-shadow:var(--shadow)}.card-link{display:block;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.card-link:hover,.card-link:focus-visible{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 12px 28px #1f6f7826}.placeholder{margin-top:20px;padding:20px;background:var(--panel);border:1px dashed var(--border);border-radius:12px;color:var(--muted)}.field{display:grid;gap:6px;font-size:14px}.field-label{font-weight:600}.field-required{margin-left:4px;color:var(--accent-2)}.field-control{display:block}.field-hint,.field-error{font-size:12px;color:var(--muted)}.field-error{color:#b43824}.text-input,.select-input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#fff;font-size:14px}.text-input:focus,.select-input:focus{outline:2px solid rgba(31,111,120,.2);border-color:var(--accent)}.data-table{border:1px solid var(--border);border-radius:12px;background:var(--panel);box-shadow:var(--shadow)}.data-table-header,.data-table-body{padding:16px}.section-grid{display:grid;gap:20px;margin-top:24px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:var(--shadow)}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.panel h2{margin:0;font-size:20px}.form-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.table-grid{display:grid;gap:12px;align-items:center;padding:10px 0}.table-grid--materials{grid-template-columns:1.2fr 1fr 1fr auto}.table-grid--capacity{grid-template-columns:1.1fr 1fr 1fr 1fr 1fr auto}.table-grid--header{font-weight:600;color:var(--muted)}.button{border:none;background:var(--accent);color:#fff;font-weight:600;padding:10px 16px;border-radius:10px;cursor:pointer}.button:disabled{opacity:.5;cursor:not-allowed}.button--ghost{background:transparent;color:var(--accent);border:1px solid var(--accent)}.button--disabled{opacity:.6;cursor:not-allowed}.coffee-fab{position:fixed;right:20px;bottom:20px;z-index:20;padding:12px 18px;border-radius:999px;border:1px solid var(--accent);background:var(--panel);color:var(--accent);font-weight:600;box-shadow:var(--shadow)}.coffee-fab:hover{background:#1f6f7814}.result-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.result-label{display:block;color:var(--muted);font-size:13px}.result-value{font-size:18px;font-weight:600}.formula-card{margin-top:16px;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:#fdf9f2;font-size:13px;color:var(--muted)}.formula-card ul{margin:8px 0 0;padding-left:18px}.formula-card li{margin-bottom:6px}@media (max-width: 720px){.app-header,.app-main{padding:20px}.app-nav{flex-wrap:wrap}.table-grid--materials,.table-grid--capacity,.banner-actions{grid-template-columns:1fr}}
