html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

a, .btn-link {
    color: #006bb7;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}
/* ===================== Stockpile theme ===================== */
:root{
  --sp-bg:#0f1417; --sp-surface:#1b2227; --sp-surface-2:#232c33;
  --sp-text:#eef3f6; --sp-muted:#9fb0bb; --sp-line:#2c373f;
  --sp-green:#34c759; --sp-cyan:#32ade6; --sp-yellow:#ffd60a;
  --sp-orange:#ff9f0a; --sp-red:#ff453a; --sp-accent:#5e9eff;
  --sp-radius:18px;
}
html,body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  background:var(--sp-bg); color:var(--sp-text);
}
a{color:var(--sp-accent); text-decoration:none;}
a:hover{text-decoration:underline;}

.sp-shell{max-width:760px;margin:0 auto;padding:16px 16px 92px;}
.sp-topbar{display:flex;align-items:center;justify-content:space-between;
  padding:6px 2px 14px;}
.sp-brand{font-weight:800;letter-spacing:.5px;font-size:1.25rem;}
.sp-brand span{color:var(--sp-accent);}
.sp-topbar .sp-user{color:var(--sp-muted);font-size:.85rem;}

.sp-card{background:var(--sp-surface);border:1px solid var(--sp-line);
  border-radius:var(--sp-radius);padding:18px;margin-bottom:16px;
  box-shadow:0 1px 0 rgba(255,255,255,.02);}
.sp-card h2{font-size:1rem;margin:0 0 12px;color:var(--sp-muted);
  text-transform:uppercase;letter-spacing:.6px;font-weight:700;}
.sp-card.tappable{cursor:pointer;transition:transform .08s ease,border-color .15s;}
.sp-card.tappable:active{transform:scale(.99);}
.sp-card.tappable:hover{border-color:var(--sp-accent);}

.sp-big{font-size:2.6rem;font-weight:800;line-height:1.1;}
.sp-sub{color:var(--sp-muted);font-size:.9rem;}
.sp-row{display:flex;justify-content:space-between;align-items:center;gap:12px;}
.sp-stat{flex:1;text-align:center;}
.sp-stat .v{font-size:1.2rem;font-weight:700;}
.sp-stat .l{font-size:.72rem;color:var(--sp-muted);text-transform:uppercase;letter-spacing:.5px;}

.sp-meter{height:12px;border-radius:8px;background:var(--sp-surface-2);overflow:hidden;}
.sp-meter > div{height:100%;border-radius:8px;transition:width .4s ease;}

.sp-chip{display:inline-block;padding:2px 10px;border-radius:999px;
  background:var(--sp-surface-2);color:var(--sp-cyan);font-size:.75rem;font-weight:600;}

.sp-list{list-style:none;margin:0;padding:0;}
.sp-list li{display:flex;justify-content:space-between;align-items:center;
  padding:12px 2px;border-bottom:1px solid var(--sp-line);}
.sp-list li:last-child{border-bottom:none;}
.sp-list .name{font-weight:600;}
.sp-list .meta{color:var(--sp-muted);font-size:.8rem;}
.sp-amt{font-weight:700;}
.sp-amt.pos{color:var(--sp-green);}

.sp-btn{display:inline-block;border:none;border-radius:12px;padding:13px 18px;
  font-weight:700;font-size:1rem;cursor:pointer;background:var(--sp-accent);color:#fff;
  text-align:center;}
.sp-btn.block{width:100%;}
.sp-btn.ghost{background:var(--sp-surface-2);color:var(--sp-text);}
.sp-btn.green{background:var(--sp-green);}
.sp-btn.danger{background:transparent;color:var(--sp-red);border:1px solid var(--sp-red);}
.sp-btn:disabled{opacity:.45;cursor:not-allowed;}
.sp-btns{display:flex;gap:10px;flex-wrap:wrap;}

.sp-field{margin-bottom:14px;}
.sp-field label{display:block;font-size:.8rem;color:var(--sp-muted);margin-bottom:6px;}
.sp-field input,.sp-field select,.sp-field textarea{
  width:100%;background:var(--sp-surface-2);border:1px solid var(--sp-line);
  color:var(--sp-text);border-radius:12px;padding:12px 14px;font-size:1rem;}
.sp-field input:focus,.sp-field select:focus{outline:2px solid var(--sp-accent);}

.sp-insight{background:linear-gradient(135deg,#1d2a3a,#1b2227);
  border:1px solid #2b3d52;border-radius:var(--sp-radius);padding:18px;margin-bottom:16px;}
.sp-insight h2{color:var(--sp-accent);}
.sp-insight p{margin:0;line-height:1.5;}

.sp-pet{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;}
.sp-pet canvas{width:200px;height:200px;}

.sp-empty{color:var(--sp-muted);text-align:center;padding:24px 8px;}
.sp-seg{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;}
.sp-seg button{background:var(--sp-surface-2);border:1px solid var(--sp-line);color:var(--sp-muted);
  border-radius:999px;padding:6px 14px;font-weight:600;cursor:pointer;}
.sp-seg button.on{background:var(--sp-accent);color:#fff;border-color:var(--sp-accent);}

/* bottom tab bar (mobile-first; works on desktop too) */
.sp-tabs{position:fixed;left:0;right:0;bottom:0;z-index:50;
  display:flex;justify-content:space-around;background:rgba(20,26,30,.96);
  backdrop-filter:blur(12px);border-top:1px solid var(--sp-line);padding:8px 4px;}
.sp-tabs a{display:flex;flex-direction:column;align-items:center;gap:2px;
  color:var(--sp-muted);font-size:.66rem;flex:1;text-decoration:none;}
.sp-tabs a.active{color:var(--sp-accent);}
.sp-tabs a .i{font-size:1.25rem;}
.sp-tabs .fab{margin-top:-26px;}
.sp-tabs .fab .i{background:var(--sp-accent);color:#fff;width:52px;height:52px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:1.6rem;
  box-shadow:0 6px 16px rgba(94,158,255,.4);}
