:root{--bg: rgb(232,232,232);--input: rgba(0, 64, 141, 1);--dark: #111;--muted: #444;--card: #fff;--radius: 16px}*{box-sizing:border-box;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial}body{margin:0;padding:20px;background:var(--bg);color:#111}.topbar{display:flex;align-items:center;justify-content:space-between;background:#0f0f0f;color:#fff;border-radius:var(--radius);padding:14px 16px;margin-bottom:16px}.brand{display:flex;gap:14px;align-items:center}.logo{height:46px;width:auto;border-radius:10px}.login-logo{height:72px;width:auto;border-radius:10px;margin:0 auto 1rem;display:block}h1{margin:0;font-size:18px;font-weight:700}h2{margin:0 0 12px}h3{margin:14px 0 8px}.muted{color:#ffffffb3;font-size:13px;margin:0}.card .muted{color:var(--muted)}.topbar-right{display:flex;gap:10px;align-items:center}.pill{padding:8px 12px;background:#ffffff1f;border-radius:999px;font-size:13px;margin-top:-2px;color:#fff;text-decoration:none}.card{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:16px;box-shadow:0 6px 18px #00000014}.page-wrap{max-width:1100px;margin:0 auto}.centered{min-height:calc(100vh - 40px);display:grid;place-items:center}.login-card{width:100%;max-width:420px;text-align:center}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.form-grid{display:grid;gap:12px;margin-bottom:12px}.form-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0 12px}.summary-grid div{background:#0000000d;border-radius:10px;padding:8px 10px;display:flex;justify-content:space-between;gap:10px}.row-actions{display:flex;gap:10px;margin-top:12px}.estimator-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.field-hint{display:block;margin-top:4px;color:#666;font-size:11px}.print-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.print-meta p{margin:0;background:#0000000d;border-radius:10px;padding:8px 10px}.print-header{display:flex;align-items:center;gap:16px;margin-bottom:12px}.print-header h3{margin:0 0 6px}.print-header p{margin:0;font-size:13px}.print-logo{width:90px;height:auto;border-radius:8px}@media (max-width: 900px){.menu-grid,.form-grid.two-col,.form-grid.three-col,.summary-grid,.print-meta{grid-template-columns:1fr}.print-header{flex-direction:column;align-items:flex-start}}@media print{body{background:#fff;padding:0}.topbar,.no-print,body:after{display:none!important}.card{box-shadow:none;border:1px solid #ddd}}.menu-item,.tile{text-align:left;padding:14px;background:#111;border-radius:14px;text-decoration:none;color:#fff;font-weight:800}label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}input,select{width:100%;padding:10px 12px;border-radius:12px;border:1px solid rgba(0,0,0,.2);background:var(--input);color:#fff;outline:none}input::placeholder{color:#ffffffb3}input:focus,select:focus{background:#00408de6;border:1px solid rgba(255,255,255,.4)}button{border:none;border-radius:12px;padding:10px 14px;font-weight:800;cursor:pointer;background:#111;color:#fff}button.primary{background:#00408d}button.secondary{background:#3b3b3b}button.danger{background:#9b1c1c}.action-link{border:none;border-radius:12px;padding:10px 14px;font-weight:800;cursor:pointer;background:#111;color:#fff;text-decoration:none;display:inline-flex;align-items:center}button:disabled{opacity:.45;cursor:not-allowed}.result-box{background:#00000012;border-radius:12px;padding:12px;display:flex;justify-content:space-between;margin-top:12px}table{width:100%;border-collapse:collapse;margin-top:12px;background:#fff;border-radius:12px;overflow:hidden}th,td{padding:10px;border-bottom:1px solid rgba(0,0,0,.08);font-size:13px;vertical-align:top}th{text-align:left;background:#0000000a}.error{color:#9b1c1c}.success{color:#166534}@media (max-width: 600px){body{padding:12px}.topbar{flex-direction:column;align-items:flex-start;gap:12px}.topbar-right{width:100%;flex-wrap:wrap}.topbar-right .pill{width:100%}.brand{gap:10px}.logo{height:38px}h1{font-size:16px}.card{padding:12px}.menu-grid{grid-template-columns:1fr}input,select,button{font-size:16px}table{display:block;overflow-x:auto}th,td{white-space:nowrap}}body:after{content:"© Milling Spares and Services (Pty) LTD. All calculators, formulas, logic, and data are proprietary and confidential. Internal use only. Unauthorised use, copying, or distribution is prohibited.";display:block;text-align:center;font-size:11px;color:#777;margin:18px 0 10px}
