/* ============================================================
   portal.css — Moje Gostovanje user portal
   Matches landing page aesthetic (Outfit + JetBrains Mono)
   ============================================================ */

/* ── Design tokens ────────────────────────────────────────── */
:root {
    --g:     #22c55e;
    --gdk:   #16a34a;
    --glite: #dcfce7;
    --gring: rgba(34,197,94,.18);
    --ink:   #0f1f14;
    --ink2:  #374840;
    --mute:  #6b7d72;
    --line:  #e2ece6;
    --bg:    #f7faf8;
    --card:  #ffffff;
    --red:   #dc2626;
    --redlt: #fef2f2;
    --amber: #d97706;
    --amlt:  #fffbeb;
    --blue:  #2563eb;
    --bluelt:#eff6ff;
    --sans:  'Outfit', sans-serif;
    --mono:  'JetBrains Mono', monospace;
    --r:     .5rem;
    --rg:    .75rem;
    --nav-w: 240px;
    --top-h: 60px;
    --shadow: 0 2px 12px rgba(0,0,0,.05);
}

/* ── Base ─────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 16px; }
body {
    font-family: var(--sans);
    background: var(--bg);
    color: var(--ink);
    margin: 0;
    -webkit-font-smoothing: antialiased;
}

/* ── Top navbar ───────────────────────────────────────────── */
.p-topnav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 200;
    height: var(--top-h);
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--line);
    display: flex; align-items: center;
    padding: 0 1.5rem 0 calc(var(--nav-w) + 1.5rem);
    gap: 1rem;
}
.p-topnav-brand {
    position: fixed; left: 0; top: 0;
    width: var(--nav-w); height: var(--top-h);
    display: flex; align-items: center; padding: 0 1.5rem;
    font-family: var(--mono); font-weight: 700; font-size: .9rem;
    color: var(--ink); text-decoration: none;
    border-bottom: 1px solid var(--line);
    background: rgba(255,255,255,.96);
    z-index: 201;
}
.p-topnav-brand span { color: var(--g); }
.p-topnav-title {
    font-weight: 600; font-size: .95rem; color: var(--ink2); flex: 1;
}
.p-menu-toggle {
    display: none; background: none; border: none; cursor: pointer;
    padding: .35rem; color: var(--ink2); align-items: center;
}

/* ── User pill + dropdown ─────────────────────────────────── */
.p-topnav-user {
    display: flex; align-items: center; gap: .55rem;
    padding: .32rem .75rem .32rem .35rem;
    border: 1.5px solid var(--line); border-radius: 2rem;
    cursor: pointer; text-decoration: none;
    font-size: .82rem; font-weight: 600; color: var(--ink2);
    transition: border-color .15s, background .15s;
    position: relative; user-select: none;
}
.p-topnav-user:hover { border-color: var(--g); background: var(--glite); color: var(--gdk); }
.p-topnav-avatar {
    width: 28px; height: 28px; border-radius: 50%;
    background: var(--glite); border: 1.5px solid var(--gring);
    display: flex; align-items: center; justify-content: center;
    font-size: .7rem; font-weight: 800; color: var(--gdk); flex-shrink: 0;
}
.p-topnav-caret { opacity: .5; flex-shrink: 0; }
.p-dropdown {
    position: absolute; top: calc(100% + .55rem); right: 0;
    background: var(--card); border: 1.5px solid var(--line);
    border-radius: var(--rg); box-shadow: 0 8px 32px rgba(0,0,0,.1);
    min-width: 210px; padding: .4rem 0; display: none; z-index: 300;
}
.p-dropdown.open { display: block; }
.p-dropdown-head {
    padding: .8rem 1rem .75rem;
    border-bottom: 1px solid var(--line);
}
.p-dropdown-name {
    display: block; font-weight: 700; font-size: .875rem;
    color: var(--ink); line-height: 1.3; margin-bottom: .1rem;
}
.p-dropdown-email {
    font-family: var(--mono); font-size: .7rem; color: var(--mute);
}
.p-dropdown a,
.p-dropdown button {
    display: flex; align-items: center; gap: .6rem;
    width: 100%; padding: .55rem 1rem;
    font-size: .85rem; font-weight: 500; color: var(--ink2);
    text-decoration: none; background: none; border: none;
    cursor: pointer; font-family: var(--sans); text-align: left;
    transition: background .12s, color .12s;
}
.p-dropdown a:hover, .p-dropdown button:hover {
    background: var(--bg); color: var(--g);
}
.p-dropdown-logout { color: var(--red) !important; }
.p-dropdown-logout:hover { background: var(--redlt) !important; color: #b91c1c !important; }

/* ── Sidebar ──────────────────────────────────────────────── */
.p-sidebar {
    position: fixed; left: 0; top: var(--top-h); bottom: 0;
    width: var(--nav-w); z-index: 100;
    background: var(--card); border-right: 1px solid var(--line);
    overflow-y: auto; overflow-x: hidden;
}
.p-nav { list-style: none; padding: .75rem .65rem 1.5rem; margin: 0; }
.p-nav-sec {
    display: block;
    font-size: .6rem; font-weight: 800; letter-spacing: .12em;
    text-transform: uppercase; color: var(--mute);
    padding: 1rem .6rem .3rem; margin: 0;
}
.p-nav li a,
.p-nav li button {
    display: flex; align-items: center; gap: .6rem;
    padding: .5rem .7rem; border-radius: var(--r);
    font-size: .875rem; font-weight: 500; color: var(--ink2);
    text-decoration: none; transition: background .12s, color .12s;
    width: 100%; background: none; border: none;
    cursor: pointer; font-family: var(--sans); text-align: left;
    white-space: nowrap;
}
.p-nav li a:hover, .p-nav li button:hover {
    background: var(--bg); color: var(--g);
}
.p-nav li a.active {
    background: var(--glite); color: var(--gdk); font-weight: 600;
}
.p-nav-ico {
    width: 16px; height: 16px; flex-shrink: 0;
    opacity: .55; transition: opacity .12s;
}
.p-nav li a:hover .p-nav-ico,
.p-nav li a.active .p-nav-ico,
.p-nav li button:hover .p-nav-ico { opacity: 1; }
.p-nav-logout a, .p-nav-logout button { color: var(--red); }
.p-nav-logout a:hover, .p-nav-logout button:hover {
    background: var(--redlt); color: #b91c1c;
}

/* ── Page wrapper ─────────────────────────────────────────── */
.p-main {
    margin-left: var(--nav-w);
    margin-top: var(--top-h);
    min-height: calc(100vh - var(--top-h) - 48px);
    padding: 1.75rem 2rem;
}
.p-footer {
    margin-left: var(--nav-w);
    padding: .85rem 2rem;
    border-top: 1px solid var(--line);
    background: var(--card);
    display: flex; justify-content: space-between; align-items: center;
    font-size: .75rem; color: var(--mute);
}
.p-footer a { color: var(--g); text-decoration: none; font-weight: 600; }

/* ── Flash alerts ─────────────────────────────────────────── */
.p-flash { margin-bottom: 1.25rem; }
.p-alert {
    display: flex; align-items: center; gap: .6rem;
    padding: .65rem .9rem; border-radius: var(--r);
    font-size: .875rem; font-weight: 500;
}
.p-alert-success {
    background: var(--glite); border: 1px solid var(--gring); color: var(--gdk);
}
.p-alert-error {
    background: var(--redlt); border: 1px solid #fca5a5; color: var(--red);
}
.p-alert svg { flex-shrink: 0; }

/* ── Dashboard layout ─────────────────────────────────────── */
.dash-welcome {
    background: var(--card); border: 1.5px solid var(--line);
    border-radius: var(--rg); padding: 1.25rem 1.5rem;
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem;
    box-shadow: var(--shadow);
}
.dash-welcome-text h2 {
    font-size: 1.2rem; font-weight: 800; letter-spacing: -.02em;
    color: var(--ink); margin: 0 0 .2rem;
}
.dash-welcome-text p { font-size: .875rem; color: var(--mute); margin: 0; }
.dash-welcome-actions { display: flex; gap: .6rem; flex-wrap: wrap; }

.dash-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
}

/* ── Portal panel (replaces Bootstrap .card in dashboard) ─── */
.p-panel {
    background: var(--card); border: 1.5px solid var(--line);
    border-radius: var(--rg); box-shadow: var(--shadow);
    display: flex; flex-direction: column; overflow: hidden;
}
.p-panel-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: .8rem 1.1rem; border-bottom: 1px solid var(--line);
    background: var(--bg);
}
.p-panel-title {
    display: flex; align-items: center; gap: .5rem;
    font-size: .82rem; font-weight: 700; color: var(--ink2);
}
.p-panel-title svg { opacity: .7; }
.p-panel-badge {
    font-family: var(--mono); font-size: .68rem; font-weight: 700;
    padding: .15rem .5rem; border-radius: 2rem; line-height: 1.4;
}
.p-panel-badge-red   { background: var(--redlt); color: var(--red); }
.p-panel-badge-blue  { background: var(--bluelt); color: var(--blue); }
.p-panel-badge-green { background: var(--glite);  color: var(--gdk); }
.p-panel-badge-mute  { background: var(--bg);     color: var(--mute); border: 1px solid var(--line); }
.p-panel-body { flex: 1; }
.p-panel-footer {
    padding: .6rem 1.1rem; border-top: 1px solid var(--line);
    background: var(--bg); text-align: center;
}

/* ── Panel row items ──────────────────────────────────────── */
.p-panel-row {
    display: flex; align-items: flex-start; justify-content: space-between;
    padding: .8rem 1.1rem; border-bottom: 1px solid var(--line);
    gap: .75rem;
}
.p-panel-row:last-child { border-bottom: none; }
.p-panel-row-label {
    font-size: .875rem; font-weight: 600; color: var(--ink);
    text-decoration: none; display: block; margin-bottom: .2rem;
}
.p-panel-row-label:hover { color: var(--g); }
.p-panel-row-meta {
    font-size: .75rem; color: var(--mute); font-family: var(--mono);
    display: flex; align-items: center; gap: .4rem;
}
.p-panel-row-amount {
    font-size: .875rem; font-weight: 700;
    font-family: var(--mono); white-space: nowrap;
}
.p-panel-row-amount.red { color: var(--red); }
.p-panel-empty {
    padding: 2rem 1rem; text-align: center;
    font-size: .85rem; color: var(--mute);
    display: flex; flex-direction: column; align-items: center; gap: .5rem;
}
.p-panel-empty svg { opacity: .35; }

/* ── Inline badge chips ───────────────────────────────────── */
.p-chip {
    display: inline-flex; align-items: center; gap: .3rem;
    font-size: .68rem; font-weight: 700; padding: .15rem .5rem;
    border-radius: 2rem; white-space: nowrap;
}
.p-chip-red    { background: var(--redlt); color: var(--red); }
.p-chip-green  { background: var(--glite); color: var(--gdk); }
.p-chip-amber  { background: var(--amlt);  color: var(--amber); }
.p-chip-blue   { background: var(--bluelt);color: var(--blue); }
.p-chip-mute   { background: var(--bg);    color: var(--mute); border: 1px solid var(--line); }

/* ── Buttons (override Bootstrap) ────────────────────────── */
.btn {
    border-radius: var(--r) !important;
    font-family: var(--sans) !important;
    font-weight: 600 !important;
    font-size: .85rem !important;
    transition: all .15s !important;
}
.btn-primary, .btn-success {
    background: var(--g) !important; border-color: var(--g) !important; color: #fff !important;
}
.btn-primary:hover, .btn-success:hover {
    background: var(--gdk) !important; border-color: var(--gdk) !important;
}
.btn-outline-primary {
    color: var(--g) !important; border-color: var(--g) !important; background: transparent !important;
}
.btn-outline-primary:hover { background: var(--g) !important; color: #fff !important; }
.btn-outline-success {
    color: var(--gdk) !important; border-color: var(--g) !important; background: transparent !important;
}
.btn-outline-success:hover { background: var(--g) !important; color: #fff !important; border-color: var(--g) !important; }
.btn-outline-secondary:hover {
    background: var(--ink) !important; border-color: var(--ink) !important; color: #fff !important;
}
.btn-outline-danger { color: var(--red) !important; border-color: var(--red) !important; }
.btn-outline-danger:hover { background: var(--red) !important; color: #fff !important; }
.p-btn-link {
    background: none; border: none; padding: 0; cursor: pointer;
    font-family: var(--sans); font-size: .85rem; font-weight: 600;
    color: var(--g); text-decoration: none;
    display: inline-flex; align-items: center; gap: .3rem;
}
.p-btn-link:hover { color: var(--gdk); text-decoration: underline; }

/* ── Bootstrap card overrides (for non-dashboard views) ───── */
.card {
    border: 1.5px solid var(--line) !important;
    border-radius: var(--rg) !important;
    box-shadow: var(--shadow) !important;
    background: var(--card) !important;
}
.card-header {
    background: var(--bg) !important;
    border-bottom: 1px solid var(--line) !important;
    padding: .85rem 1.1rem !important;
    font-size: .875rem;
}
.card-footer {
    background: var(--bg) !important;
    border-top: 1px solid var(--line) !important;
    padding: .65rem 1.1rem !important;
}
.card-body { padding: 1.1rem !important; }
.card-title { font-weight: 700 !important; color: var(--ink) !important; font-size: 1rem !important; }

/* ── Tables ───────────────────────────────────────────────── */
.table { color: var(--ink) !important; font-size: .875rem; }
.table th {
    font-size: .68rem !important; font-weight: 800 !important;
    letter-spacing: .07em !important; text-transform: uppercase !important;
    color: var(--mute) !important;
    border-bottom: 1.5px solid var(--line) !important;
    background: var(--bg) !important; padding: .7rem 1rem !important;
}
.table td {
    border-color: var(--line) !important;
    padding: .75rem 1rem !important; vertical-align: middle !important;
}
.table-hover tbody tr:hover td { background: var(--bg) !important; }
.table-light { background: var(--bg) !important; }

/* ── Forms ────────────────────────────────────────────────── */
.form-control, .form-select, .form-control-sm {
    border: 1.5px solid var(--line) !important;
    border-radius: var(--r) !important;
    font-family: var(--sans) !important;
    color: var(--ink) !important; background: var(--card) !important;
    font-size: .875rem !important;
}
.form-control:focus, .form-select:focus {
    border-color: var(--g) !important;
    box-shadow: 0 0 0 3px var(--gring) !important;
}
.form-label {
    font-weight: 600; font-size: .85rem; color: var(--ink2);
    margin-bottom: .4rem;
}
.form-text { font-size: .78rem; color: var(--mute); }
.form-switch .form-check-input:checked {
    background-color: var(--g) !important; border-color: var(--g) !important;
}
.input-group-text {
    border: 1.5px solid var(--line) !important;
    background: var(--bg) !important; color: var(--mute) !important;
    font-size: .875rem !important;
}

/* ── Bootstrap badges ─────────────────────────────────────── */
.badge { font-family: var(--mono) !important; letter-spacing: .02em; }
.badge.bg-success, .badge.bg-primary { background: var(--g) !important; }
.badge.bg-danger   { background: var(--red) !important; }
.badge.bg-warning  { background: var(--amber) !important; }
.badge.bg-info     { background: var(--blue) !important; }

/* ── Bootstrap alerts ─────────────────────────────────────── */
.alert { border-radius: var(--r) !important; font-size: .875rem; }
.alert-success {
    background: var(--glite) !important;
    border-color: var(--gring) !important; color: var(--gdk) !important;
}

/* ── Select2 ──────────────────────────────────────────────── */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    border: 1.5px solid var(--line) !important;
    border-radius: var(--r) !important;
    font-family: var(--sans) !important;
}
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--g) !important;
    box-shadow: 0 0 0 3px var(--gring) !important;
}
.select2-dropdown {
    border: 1.5px solid var(--line) !important;
    border-radius: var(--r) !important;
    box-shadow: 0 4px 16px rgba(0,0,0,.08) !important;
}
.select2-container--default .select2-results__option--highlighted {
    background-color: var(--g) !important;
}

/* ── Pagination ───────────────────────────────────────────── */
.pagination .page-link {
    color: var(--g) !important; border-color: var(--line) !important;
    font-size: .82rem;
}
.pagination .page-item.active .page-link {
    background: var(--g) !important; border-color: var(--g) !important; color: #fff !important;
}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 1024px) {
    .dash-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
    .p-menu-toggle { display: flex !important; }
    .p-sidebar {
        transform: translateX(-100%);
        transition: transform .22s ease;
        z-index: 300;
    }
    .p-sidebar.open { transform: translateX(0); }
    .p-topnav { padding-left: 1rem; }
    .p-topnav-brand { display: none; }
    .p-main { margin-left: 0; padding: 1.1rem; }
    .p-footer { margin-left: 0; }
    .dash-grid { grid-template-columns: 1fr; }
    .dash-welcome { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   FIX 1: Contact avatar initials (Unicode safe)
   ============================================================ */
.p-contact-avatar {
    width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0;
    background: var(--glite); border: 2px solid var(--gring);
    display: flex; align-items: center; justify-content: center;
    font-size: .95rem; font-weight: 800; color: var(--gdk);
    font-family: var(--sans); line-height: 1; text-transform: uppercase;
    font-feature-settings: "liga" 0;
    -webkit-font-smoothing: antialiased;
}

/* ============================================================
   FIX 2: Profile account type selector
   ============================================================ */
.auth-type-btn {
    display: flex; align-items: center; justify-content: center; gap: .5rem;
    padding: .65rem 1rem; cursor: pointer;
    border: 1.5px solid var(--line); border-radius: var(--r);
    font-size: .875rem; font-weight: 500; color: var(--ink2);
    background: var(--card); transition: all .15s;
    user-select: none; text-align: center;
}
.auth-type-btn:hover {
    border-color: var(--g); background: var(--glite); color: var(--gdk);
}
/* Active state — applied via JS when radio is checked */
.auth-type-btn.selected {
    border-color: var(--g); background: var(--glite);
    color: var(--gdk); font-weight: 700;
    box-shadow: 0 0 0 3px var(--gring);
}

/* ============================================================
   FIX 3: Order wizard styles
   ============================================================ */

/* Step progress bar */
.step-bar {
    display: flex; align-items: center;
    background: var(--card); border: 1.5px solid var(--line);
    border-radius: var(--rg); padding: .9rem 1.25rem;
    margin-bottom: 1.25rem; box-shadow: var(--shadow); gap: 0;
}
.step-dot {
    width: 28px; height: 28px; border-radius: 50%; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: .72rem; font-weight: 800; font-family: var(--mono);
    border: 2px solid var(--line); color: var(--mute); background: var(--bg);
    transition: all .2s;
}
.step-dot.active { background: var(--g); border-color: var(--g); color: #fff; }
.step-dot.done   { background: var(--glite); border-color: var(--g); color: var(--gdk); }
.step-label {
    font-size: .82rem; font-weight: 500; color: var(--mute);
    margin-left: .45rem; white-space: nowrap;
}
.step-label.active { color: var(--ink); font-weight: 700; }
.step-line {
    flex: 1; height: 2px; background: var(--line);
    margin: 0 .85rem; border-radius: 1px; transition: background .3s;
}
.step-line.done { background: var(--g); }
.step-line.idle { background: var(--line); }

/* Service type picker buttons */
.svc-btn {
    display: flex; flex-direction: column; align-items: center;
    width: 100%; padding: 1.75rem 1rem;
    background: var(--card); border: 1.5px solid var(--line);
    border-radius: var(--rg); cursor: pointer; text-align: center;
    transition: border-color .15s, background .15s, box-shadow .15s;
    font-family: var(--sans);
}
.svc-btn:hover {
    border-color: var(--g); background: var(--glite);
    box-shadow: 0 0 0 3px var(--gring);
}
.svc-btn.selected {
    border-color: var(--g); background: var(--glite);
    box-shadow: 0 0 0 3px var(--gring);
}
.svc-btn [data-feather], .svc-btn svg {
    margin-bottom: .65rem; color: var(--mute); transition: color .15s;
}
.svc-btn:hover [data-feather], .svc-btn:hover svg,
.svc-btn.selected [data-feather], .svc-btn.selected svg { color: var(--g); }

/* Package option cards */
.pkg-opt {
    border: 1.5px solid var(--line); border-radius: var(--r);
    cursor: pointer; transition: border-color .15s, background .15s;
    background: var(--card);
}
.pkg-opt:hover { border-color: var(--g); background: var(--glite); }
.pkg-opt.selected {
    border-color: var(--g); background: var(--glite);
    box-shadow: 0 0 0 3px var(--gring);
}

/* Domain extension scroll list */
.ext-scroll {
    max-height: 320px; overflow-y: auto;
    border: 1.5px solid var(--line); border-radius: var(--r);
    background: var(--card);
}
.ext-opt {
    padding: .6rem .9rem; cursor: pointer;
    border-bottom: 1px solid var(--line); transition: background .1s;
}
.ext-opt:last-child { border-bottom: none; }
.ext-opt:hover { background: var(--bg); }
.ext-opt.selected { background: var(--glite); }
.ext-opt-promo { background: #fefce8; }
.ext-opt-promo:hover { background: #fef9c3; }
.ext-promo-badge {
    font-size: .6rem; font-weight: 800; letter-spacing: .06em;
    background: var(--amber); color: #fff; padding: .1rem .35rem;
    border-radius: 2rem; text-transform: uppercase;
}
.ext-promo-until { font-size: .68rem; color: var(--amber); margin-top: .15rem; }

/* Price preview block */
.price-preview {
    background: var(--bg); border: 1.5px solid var(--line);
    border-radius: var(--r); padding: .75rem 1rem;
    font-size: .875rem; color: var(--ink2);
}

/* Cart FAB */
.cart-fab {
    position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 500;
    display: flex; align-items: center; gap: .5rem;
    background: var(--g); color: #fff; font-weight: 700;
    padding: .65rem 1.25rem; border-radius: 2rem;
    box-shadow: 0 4px 20px rgba(34,197,94,.4);
    text-decoration: none; font-family: var(--sans);
    transition: background .15s, box-shadow .15s;
}
.cart-fab:hover { background: var(--gdk); color: #fff; }
.badge-count {
    background: #fff; color: var(--gdk);
    font-size: .72rem; font-weight: 800; font-family: var(--mono);
    width: 20px; height: 20px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
}

/* ── Service picker cards (pimped) ────────────────────────── */
.svc-btn {
    display: flex; flex-direction: column; align-items: center;
    width: 100%; height: 100%; padding: 2rem 1.25rem 1.75rem;
    background: var(--card); border: 1.5px solid var(--line);
    border-radius: var(--rg); cursor: pointer; text-align: center;
    transition: border-color .18s, background .18s, box-shadow .18s, transform .15s;
    font-family: var(--sans); gap: .1rem;
}
.svc-btn:hover {
    border-color: var(--g); background: var(--glite);
    box-shadow: 0 4px 24px rgba(34,197,94,.13);
    transform: translateY(-2px);
}
.svc-btn.selected {
    border-color: var(--g); background: var(--glite);
    box-shadow: 0 0 0 3px var(--gring), 0 4px 24px rgba(34,197,94,.12);
}
.svc-btn-ico {
    width: 56px; height: 56px; border-radius: 1rem;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 1rem; transition: transform .18s;
}
.svc-btn:hover .svc-btn-ico { transform: scale(1.08); }
.svc-ico-blue  { background: #eff6ff; color: #2563eb; }
.svc-ico-green { background: var(--glite); color: var(--gdk); }
.svc-ico-amber { background: var(--amlt);  color: var(--amber); }
.svc-btn:hover .svc-ico-blue  { background: #dbeafe; }
.svc-btn:hover .svc-ico-green { background: #bbf7d0; }
.svc-btn:hover .svc-ico-amber { background: #fde68a; }
.svc-btn-title {
    font-size: .95rem; font-weight: 700; color: var(--ink);
    margin-bottom: .4rem; line-height: 1.3;
}
.svc-btn-desc {
    font-size: .8rem; color: var(--mute); line-height: 1.55;
}

/* ── Three-dot dropdown trigger ───────────────────────────── */
.btn-dots {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: .3rem .4rem;
    border-radius: var(--r);
    color: var(--mute);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .15s, color .15s;
    line-height: 1;
    width: 32px; height: 32px;
}
.btn-dots:hover { background: var(--bg) !important; color: var(--ink); }
.btn-dots:focus, .btn-dots:active { outline: none !important; box-shadow: none !important; background: var(--bg) !important; }
.btn-dots svg { pointer-events: none; }
/* Ensure dropdown-menu shows above table rows */
.dropdown-menu { z-index: 1050 !important; }
/* Portal vanilla dropdown */
.portal-dd-menu {
    display: none;
    position: fixed;
    min-width: 160px;
    background: var(--card);
    border: 1.5px solid var(--line);
    border-radius: var(--r);
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
    z-index: 9999;
    padding: .35rem 0;
}
.portal-dd-menu.show { display: block; }
.portal-dd-menu .dropdown-item {
    padding: .55rem 1rem;
    font-size: .85rem;
    color: var(--ink2);
    display: flex;
    align-items: center;
    gap: .5rem;
    text-decoration: none;
    transition: background .1s;
    white-space: nowrap;
}
.portal-dd-menu .dropdown-item:hover { background: var(--bg); color: var(--ink); }
.portal-dd-menu .dropdown-item.text-danger:hover { background: #fef2f2; }

/* Portal vanilla dropdown */
.portal-dd-menu {
    display: none;
    position: fixed;
    min-width: 160px;
    background: var(--card);
    border: 1.5px solid var(--line);
    border-radius: var(--r);
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
    z-index: 9999;
    padding: .35rem 0;
}
.portal-dd-menu.show { display: block; }
.portal-dd-menu .dropdown-item {
    padding: .55rem 1rem;
    font-size: .85rem;
    color: var(--ink2);
    display: flex;
    align-items: center;
    gap: .5rem;
    text-decoration: none;
    transition: background .1s;
    white-space: nowrap;
}
.portal-dd-menu .dropdown-item:hover { background: var(--bg); color: var(--ink); }
.portal-dd-menu .dropdown-item.text-danger:hover { background: #fef2f2; }
.dropdown { position: relative; }
