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;
}

/* ============ SaaS design system (garden theme) ============ */
:root{--grn:#5b9c53;--grn-d:#47823f;--grn-l:#eaf5e6;--pink:#e98aa8;--ink:#334036;--mut:#7c8a7a;--line:#e8efe5;--bg:#f7faf5}
.page-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:4px 0 18px}
.page-head h1{font-size:26px;font-weight:800;color:var(--ink);margin:0}
.page-head .sub{color:var(--mut);font-size:14px}

.card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 18px rgba(60,90,50,.05)}
.card-pad{padding:18px 20px}

.stat-row{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 18px;min-width:130px;flex:1}
.stat .n{font-size:24px;font-weight:800;color:var(--grn-d)}.stat .l{font-size:13px;color:var(--mut)}

/* table */
.tbl{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.tbl thead th{background:var(--grn-l);color:var(--grn-d);text-align:left;font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:12px 14px;white-space:nowrap}
.tbl tbody td{padding:13px 14px;border-top:1px solid var(--line);font-size:14px;color:var(--ink);vertical-align:middle}
.tbl tbody tr:hover{background:#fbfdf9}
.tbl .acc-name{font-weight:700}.tbl .acc-sub{color:var(--mut);font-size:12.5px}

/* badges / pills */
.badge2{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:12.5px;font-weight:600}
.b-on{background:#e6f6e6;color:#2f8a34}.b-off{background:#fdeaea;color:#c0392b}.b-wait{background:#fff4e0;color:#b7791f}
.b-neutral{background:#eef1 f0;background:#eef1f0;color:#5a6a58}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.on{background:#2f8a34}.dot.off{background:#c0392b}
.pill{display:inline-block;background:var(--grn-l);color:var(--grn-d);border:1px solid #d6e8cf;border-radius:14px;padding:2px 9px;font-size:12px;margin:1px 2px}
.pill.muted{background:#f0f2ef;color:#8a978a;border-color:#e2e6df}

/* buttons */
.btn2{border:0;border-radius:20px;padding:6px 14px;font-weight:700;font-size:13px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:5px}
.btn2.pri{background:var(--grn);color:#fff}.btn2.pri:hover{background:var(--grn-d)}
.btn2.ghost{background:#fff;border:1.5px solid var(--line);color:var(--ink)}.btn2.ghost:hover{border-color:var(--grn);color:var(--grn-d)}
.btn2.sm{padding:5px 11px;font-size:12.5px}
.icon-link{color:var(--mut);text-decoration:none;font-size:18px}.icon-link:hover{color:var(--grn-d)}

/* controls */
.field{display:inline-flex;flex-direction:column;gap:4px}
.select,.inp{border:1.5px solid var(--line);border-radius:10px;padding:8px 12px;font-size:14px;background:#fff;color:var(--ink)}
.select:focus,.inp:focus{outline:none;border-color:var(--grn)}
.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}

.empty{background:#fff;border:1px dashed var(--line);border-radius:14px;padding:40px;text-align:center;color:var(--mut)}
.sub-banner{background:var(--grn-l);border:1px solid #d6e8cf;border-radius:12px;padding:10px 16px;margin-bottom:16px;font-size:14px;color:var(--grn-d)}
.sub-banner.exp{background:#fdeaea;border-color:#f3c6c6;color:#c0392b}.sub-banner .up{margin-left:10px;font-weight:700}

/* FlowerPicker (search + multi-select) */
.fp{max-width:520px}
.fp-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;min-height:26px}
.fp-empty{color:#a7b3a5;font-size:13px;font-style:italic}
.fp-chip{display:inline-flex;align-items:center;gap:6px;background:var(--grn-l);color:var(--grn-d);border:1px solid #d6e8cf;border-radius:16px;padding:4px 10px;font-size:13px;font-weight:600}
.fp-chip b{cursor:pointer;color:#8aa383;font-weight:700}.fp-chip b:hover{color:#c0392b}
.fp-search{position:relative}
.fp-inp{width:100%;box-sizing:border-box}
.fp-list{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(60,90,50,.14);max-height:240px;overflow-y:auto}
.fp-opt{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;cursor:pointer;font-size:14px}
.fp-opt:hover{background:var(--grn-l)}.fp-opt small{color:#a7b3a5}
.fp-none{padding:10px 12px;color:#a7b3a5;font-size:13px}
.fp-max{color:var(--grn-d);font-size:13px;font-weight:600}

/* Setup + Logs 2-column */
.setup-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;align-items:start}
@media(max-width:960px){.setup-grid{grid-template-columns:1fr}}
.logs-panel{position:sticky;top:12px;max-height:calc(100vh - 130px);display:flex;flex-direction:column;padding:0!important;overflow:hidden}
.logs-head{padding:12px 16px;border-bottom:1px solid var(--line);font-weight:700;display:flex;justify-content:space-between;align-items:center;font-size:15px}
.logs-head .live{font-size:12px;color:var(--grn-d);font-weight:600;display:flex;align-items:center;gap:5px}
.logs-head .live .dot{width:7px;height:7px;border-radius:50%;background:var(--grn);animation:lp 1.2s infinite}
@keyframes lp{50%{opacity:.3}}
.logs-body{overflow-y:auto;padding:4px 0}
.log-line{padding:6px 16px;border-bottom:1px solid #f4f7f2;display:flex;gap:10px;font-size:13px;line-height:1.45}
.log-line:hover{background:#fbfdf9}
.log-line .t{color:var(--mut);white-space:nowrap;font-variant-numeric:tabular-nums}
.log-line .m{color:var(--ink);word-break:break-word}
.logs-empty{padding:30px 16px;text-align:center;color:var(--mut);font-size:13px}
