/* Blink — blinktrade.ch — palette: blu notte e oro */
:root{
  /* colori del logo Blink: blu notte #102441 / #081830, oro champagne #B8995A → #D9C48C */
  --ink:#0E1B2E; --muted:#5E6B7D; --line:#E4E7EC; --bg:#F5F4F1; --card:#fff;
  --lake:#122644; --lake-2:#1D3A66; --navy-900:#081830; --navy-800:#0E2240;
  --saffron:#B8995A; --gold:#B8995A; --gold-2:#D9C48C; --gold-dark:#8E7442; --gold-soft:#F3EDDF; --up:#1f9d74; --dn:#d64545;
}
body, .content-wrapper, .main-footer{ font-family:'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif; color:var(--ink); }
.content-wrapper{ background:var(--bg); }
.content{ padding:22px 24px; }
h1,h2,h3,h4,h5{ font-family:inherit; font-weight:700; letter-spacing:-.01em; }
a{ color:var(--lake); }
:focus-visible{ outline:2px solid var(--saffron); outline-offset:2px; }

/* header + sidebar */
.skin-black .main-header .logo, .skin-black .main-header .navbar{ background:#fff; border-bottom:1px solid var(--line); box-shadow:none; }
.skin-black .main-header .logo{ border-right:1px solid var(--line); }
.brand{ display:inline-flex; align-items:center; gap:9px; font-weight:800; color:var(--ink); font-size:17px; }
.skin-black .main-header .navbar .sidebar-toggle{ color:var(--muted); border-right:none; }
.user-li .who{ display:inline-block; padding:15px 8px; color:var(--ink); font-weight:600; }
.user-li .logout{ display:inline-block; padding:15px 14px 15px 6px; color:var(--muted); }
.user-li .logout:hover{ color:var(--dn); }
.skin-black .main-sidebar, .skin-black .left-side{ background:var(--ink); }
.skin-black .sidebar-menu > li > a{ color:#b9c4cf; font-weight:600; padding:13px 18px; border-left:3px solid transparent; }
.skin-black .sidebar-menu > li:hover > a{ background:rgba(255,255,255,.04); color:#fff; }
.skin-black .sidebar-menu > li.active > a{ background:rgba(232,163,61,.10); color:#fff; border-left-color:var(--saffron); }
.sidebar-menu > li > a > .fa, .sidebar-menu > li > a > svg{ width:22px; margin-right:6px; }
.side-foot{ position:absolute; bottom:16px; left:18px; right:18px; color:#6f8091; font-size:11px; line-height:1.5; }

/* box */
.box{ border:1px solid var(--line); border-top:1px solid var(--line); border-radius:10px; box-shadow:none; }
.box.box-primary{ border-top:3px solid var(--lake); }
.box.box-danger{ border-top:3px solid var(--dn); }
.box-header{ padding:14px 16px 6px; }
.box-header .box-title{ font-size:15px; font-weight:700; }
.box-body{ padding:10px 16px 16px; }
.toolbar .box-body{ padding-bottom:4px; }
.toolbar-btns{ padding-top:25px; justify-content:flex-end; }
.nav-tabs-custom{ border-radius:10px; box-shadow:none; border:1px solid var(--line); }
.nav-tabs-custom > .nav-tabs > li.active{ border-top-color:var(--lake); }
.nav-tabs-custom > .nav-tabs > li > a{ font-weight:600; color:var(--muted); }

/* value box: numeri grandi, niente blocco colore pieno */
.small-box{ border-radius:10px; box-shadow:none; overflow:hidden; }
.small-box h3{ font-size:26px; font-weight:800; letter-spacing:-.02em; white-space:nowrap; }
.small-box p{ font-weight:600; opacity:.9; }
.small-box .icon-large, .small-box .icon{ font-size:58px; opacity:.18; }
.small-box .small-box-footer{ display:none; }
.bg-purple{ background:var(--lake)!important; }

/* bottoni e input */
.btn{ border-radius:8px; font-weight:600; }
.btn-primary{ background:var(--lake); border-color:var(--lake); }
.btn-primary:hover, .btn-primary:focus{ background:var(--lake-2); border-color:var(--lake-2); }
.form-control, .selectize-input{ border-radius:8px; border-color:var(--line); box-shadow:none; }
.form-control:focus, .selectize-input.focus{ border-color:var(--lake-2); box-shadow:0 0 0 3px rgba(184,153,90,.22); }
.btn-row{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.inline-add{ display:flex; gap:8px; align-items:flex-start; }
.inline-add .form-group{ flex:1; margin-bottom:8px; }
.hint{ color:var(--muted); font-size:12px; }
.warn{ color:#9a5b00; background:#fff6e6; border-radius:8px; padding:8px 10px; font-size:13px; margin:6px 0 10px; }
.badge-soft{ display:inline-block; background:#eef3f8; color:var(--lake); border-radius:20px; padding:3px 10px; font-size:12px; font-weight:600; margin-right:6px; }
.badge-soft.attiva{ background:#e5f5ef; color:var(--up); } .badge-soft.conclusa{ background:#f1f1f1; color:#666; }

/* quotazioni */
.chart-title{ display:inline-flex; gap:12px; align-items:baseline; }
.px{ font-weight:800; font-size:20px; font-variant-numeric:tabular-nums; }
.chg{ font-weight:700; font-variant-numeric:tabular-nums; }
.up{ color:var(--up); } .dn{ color:var(--dn); }
.quote-line{ display:flex; gap:12px; align-items:baseline; flex-wrap:wrap; margin:-4px 0 10px; }
.estimate{ background:var(--bg); border-radius:8px; padding:10px 12px; margin:6px 0 12px; }
.estimate div{ display:flex; justify-content:space-between; font-size:13px; padding:2px 0; }
.estimate div:last-child{ border-top:1px solid var(--line); margin-top:4px; padding-top:6px; font-size:14px; }
.pf-info{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:10px; }
.order-box .radio-inline{ font-weight:600; }
.mini-ind .checkbox-inline{ font-size:12px; }

/* stat card */
.stats-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px; margin:10px 0; }
.stat{ background:var(--bg); border-radius:8px; padding:9px 12px; }
.stat-l{ font-size:12px; color:var(--muted); font-weight:600; }
.stat-v{ font-size:16px; font-weight:800; font-variant-numeric:tabular-nums; }
.ov-head{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.ov-head h3{ margin:0 8px 0 0; }
details summary{ cursor:pointer; color:var(--lake); font-weight:600; margin-top:6px; }
.signals h5{ margin-top:14px; }
.sig{ display:grid; grid-template-columns:1fr auto; gap:0 8px; padding:6px 0; border-bottom:1px dashed var(--line); font-size:13px; }
.sig em{ grid-column:1 / 3; color:var(--muted); font-style:normal; font-size:12px; }
.page-hello{ display:flex; align-items:baseline; gap:12px; margin:0 0 14px; }
.page-hello h3{ margin:0; font-weight:800; }
.page-hello span{ color:var(--muted); text-transform:capitalize; }
.ch-info{ display:flex; gap:16px; align-items:center; flex-wrap:wrap; margin-bottom:10px; color:var(--muted); }
.ch-info p{ flex-basis:100%; margin:0; color:var(--ink); }
table.table{ font-variant-numeric:tabular-nums; }
table.dataTable{ font-variant-numeric:tabular-nums; }
table.dataTable thead th{ font-weight:700; color:var(--muted); font-size:12px; border-bottom:1px solid var(--line)!important; }

/* chat */
.conv-list{ margin-top:12px; max-height:520px; overflow-y:auto; }
.conv-item{ display:flex; gap:10px; align-items:center; padding:10px; border-radius:8px; cursor:pointer; color:var(--ink); }
.conv-item:hover{ background:var(--bg); color:var(--ink); text-decoration:none; }
.conv-item.active{ background:#eef3f8; }
.conv-ico{ width:34px; height:34px; border-radius:50%; background:#e4ecf4; color:var(--lake); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.conv-txt{ flex:1; min-width:0; }
.conv-name{ font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.conv-last{ font-size:12px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.conv-badge{ background:var(--saffron); color:#fff; border-radius:12px; padding:1px 8px; font-size:11px; font-weight:800; }
.chat-tools{ display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:8px; font-size:12px; }
.chat-scroll{ overflow-y:auto; background:var(--bg); border-radius:10px; padding:14px; }
.chat-empty{ color:var(--muted); text-align:center; padding:40px 0; }
.chat-day{ text-align:center; color:var(--muted); font-size:11px; margin:10px 0; font-weight:600; }
.msg{ max-width:72%; margin:4px 0; padding:6px 11px; border-radius:12px; clear:both; word-wrap:break-word; white-space:normal; line-height:1.35; }
.msg.me{ background:var(--lake); color:#fff; float:right; border-bottom-right-radius:4px; }
.msg.them{ background:#fff; border:1px solid var(--line); float:left; border-bottom-left-radius:4px; }
.msg.sys{ max-width:100%; text-align:center; color:var(--muted); font-size:12px; background:none; float:none; }
.msg-from{ font-size:11px; font-weight:700; color:var(--saffron); margin-bottom:2px; }
.msg-ts{ font-size:10px; opacity:.6; text-align:right; margin-top:2px; }
.chat-scroll::after{ content:""; display:block; clear:both; }
.chat-input{ display:flex; gap:8px; margin-top:10px; }
.chat-input textarea{ resize:none; }
.chat-input .btn{ width:52px; }

/* login */
.auth-wrap{ position:fixed; inset:0; z-index:2000; display:grid; grid-template-columns:1.1fr 1fr; background:#fff; overflow:auto; }
.auth-side{ background:var(--ink); color:#e8edf2; padding:56px 64px; display:flex; flex-direction:column; justify-content:center; }
.auth-logo{ display:flex; align-items:center; gap:12px; font-weight:800; font-size:20px; margin-bottom:auto; }
.auth-side h1{ font-size:44px; line-height:1.08; font-weight:800; max-width:14ch; margin:40px 0 18px; letter-spacing:-.03em; }
.auth-side p{ color:#a7b4c1; max-width:46ch; font-size:15px; line-height:1.6; }
.auth-ticker{ margin-top:auto; padding-top:40px; display:flex; gap:10px; flex-wrap:wrap; }
.auth-ticker .tk{ background:rgba(255,255,255,.06); border-radius:8px; padding:8px 12px; font-size:13px; display:inline-flex; gap:8px; font-variant-numeric:tabular-nums; }
.auth-ticker .tk b{ color:#fff; }
.auth-ticker .tk.up{ color:#5fd3a8; } .auth-ticker .tk.dn{ color:#f08a8a; }
.auth-card{ align-self:center; justify-self:center; width:100%; max-width:400px; padding:32px; }
.auth-card .nav-pills{ margin-bottom:22px; }
.auth-card .nav-pills > li > a{ border-radius:8px; font-weight:700; color:var(--muted); }
.auth-card .nav-pills > li.active > a{ background:var(--lake); color:#fff; }
.auth-msg{ margin-top:14px; padding:10px 12px; border-radius:8px; font-size:13px; font-weight:600; }
.auth-msg.ok{ background:#e5f5ef; color:var(--up); } .auth-msg.ko{ background:#fdeceb; color:var(--dn); }
@media (max-width: 860px){ .auth-wrap{ grid-template-columns:1fr; } .auth-side{ padding:32px; } .auth-side h1{ font-size:30px; } .auth-ticker{ display:none; } }
@media (prefers-reduced-motion: reduce){ *{ transition:none!important; } }
.shiny-notification{ border-radius:10px; font-family:inherit; font-weight:600; }

/* ---- v2 ---- */
.avatar{ border-radius:50%; object-fit:cover; vertical-align:middle; flex-shrink:0; }
.avatar-txt{ display:inline-block; text-align:center; background:var(--lake); color:#fff; font-weight:800; }
.user-li .who .avatar{ margin-right:6px; }
.page-hello{ align-items:center; }
.page-hello > div{ display:flex; flex-direction:column; }
.profile-head{ display:flex; gap:14px; align-items:center; margin-bottom:12px; }
.profile-head h4{ margin:0 0 2px; }
.field-hint{ font-size:12px; margin:-8px 0 8px; color:var(--muted); }
.field-hint.ok{ color:var(--up); } .field-hint.ko{ color:var(--dn); }
.pw-meter{ margin:-6px 0 10px; }
.pw-bar{ height:6px; background:#e8edf2; border-radius:4px; overflow:hidden; margin-bottom:4px; }
.pw-bar > div{ height:100%; border-radius:4px; transition:width .2s; }
.pw-bar .lvl0{ background:var(--dn); } .pw-bar .lvl1{ background:#e8a33d; } .pw-bar .lvl2{ background:#7fb069; } .pw-bar .lvl3{ background:var(--up); }
.news{ display:grid; gap:8px; margin-bottom:14px; }
.news-item{ background:#fff; border:1px solid var(--line); border-left:4px solid var(--lake); border-radius:8px; padding:10px 14px; }
.news-item.pinned{ border-left-color:var(--saffron); }
.news-item .fa, .news-item svg{ color:var(--saffron); margin-right:6px; }
.news-item p{ margin:4px 0 0; }
.progress-line{ display:flex; justify-content:space-between; margin-bottom:6px; font-size:13px; }
.badges-mini{ display:flex; gap:6px; flex-wrap:wrap; margin:10px 0; }
.badge-ico{ width:30px; height:30px; border-radius:50%; background:#fff6e6; color:var(--saffron); display:inline-flex; align-items:center; justify-content:center; }
.badge-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:8px; }
.badge-card{ display:flex; gap:10px; align-items:center; padding:9px 11px; border-radius:8px; border:1px solid var(--line); }
.badge-card .fa, .badge-card svg{ font-size:18px; width:22px; }
.badge-card.on{ background:#fffaf0; border-color:#E2D3AE; } .badge-card.on .fa, .badge-card.on svg{ color:var(--saffron); }
.badge-card.off{ opacity:.45; }
.lesson-body{ font-size:14px; line-height:1.65; max-width:75ch; }
.lesson-body h2{ font-size:18px; margin-top:18px; color:var(--lake); }
.lesson-body table{ border-collapse:collapse; margin:8px 0; } .lesson-body td, .lesson-body th{ border:1px solid var(--line); padding:4px 8px; }
.lesson-body blockquote{ border-left:3px solid var(--saffron); background:#fffaf0; font-size:14px; padding:6px 12px; }
.risk-now{ margin-bottom:10px; }

/* DataTables compatte */
table.dataTable.compact tbody td{ padding:3px 8px; font-size:12px; line-height:1.35; }
table.dataTable.compact thead th{ padding:5px 8px; font-size:11.5px; }
.dataTables_wrapper{ font-size:12px; }
.dataTables_wrapper .dt-buttons{ float:right; margin-left:8px; }
.dataTables_wrapper .dt-button, .dataTables_wrapper button.dt-button{ background:#fff!important; border:1px solid var(--line)!important; border-radius:6px!important;
  padding:3px 10px!important; font-size:12px!important; font-weight:600; color:var(--up)!important; }
.dataTables_wrapper .dt-button::before{ content:"\2B07  "; }
.dataTables_wrapper .dataTables_filter input{ border:1px solid var(--line); border-radius:6px; padding:2px 6px; }
td.dt-actions{ white-space:nowrap; }
.btn-act, .btn-act-del{ padding:1px 7px; font-size:11px; border-radius:5px; margin-right:3px; background:#fff; border:1px solid var(--line); font-weight:600; }
.btn-act{ color:var(--lake); } .btn-act:hover{ background:#eef3f8; color:var(--lake); }
.btn-act-del{ color:var(--dn); } .btn-act-del:hover{ background:#fdeceb; color:var(--dn); }
.auth-card{ max-width:460px; }

/* ---- v3: testo bianco sui pulsanti blu ---- */
.btn-primary, .btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active,
a.btn-primary, a.btn-primary:hover, a.btn-primary:focus, .open > .dropdown-toggle.btn-primary,
.btn-primary .fa, .btn-primary svg, .btn-primary i{ color:#fff !important; fill:#fff !important; }
.btn-primary:active, .btn-primary.active{ background:#0A1A30 !important; border-color:#0A1A30 !important; }
.btn-success, .btn-success:hover, .btn-danger, .btn-danger:hover, .btn-warning, .btn-warning:hover{ color:#fff !important; }
.academy-top{ display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; margin-bottom:6px; }
.academy-top .form-group{ margin-bottom:6px; min-width:150px; }
.path-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:8px; margin-bottom:10px; }
.path-card{ background:var(--bg); border-radius:8px; padding:8px 10px; font-size:12px; }
.path-card strong{ display:block; font-size:13px; }
.lesson-nav{ display:flex; justify-content:space-between; margin:14px 0; }
.qfb{ font-size:12px; margin:-6px 0 10px; padding:6px 10px; border-radius:6px; }
.qfb.ok{ background:#e5f5ef; color:var(--up); } .qfb.ko{ background:#fdeceb; color:var(--dn); }

/* ---- v4 ---- */
.msg-body{ white-space:pre-wrap; }               /* a capo solo nel testo del messaggio, non nell'HTML */
.msg-from{ margin-bottom:1px; } .msg-ts{ margin-top:1px; line-height:1; }
.chat-scroll{ display:flow-root; }
.powered{ margin-top:10px; font-size:11px; color:#8a99a8; }
.powered a{ color:var(--saffron); font-weight:700; }
.auth-side .powered{ margin-top:18px; font-size:12px; }
.px-status{ font-size:11px; font-weight:700; color:var(--muted); background:var(--bg); border-radius:10px; padding:2px 8px; }
.px-status.live{ color:var(--up); background:#e5f5ef; }
.px-status.live::before{ content:"\25CF  "; }
.quote-row{ display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
.loading-line{ color:var(--muted); font-size:13px; }
.report-btn{ display:inline-flex; gap:8px; align-items:center; flex-wrap:wrap; }
.hdr-btn{ display:inline-block; padding:15px 12px !important; color:var(--muted) !important; }
.hdr-btn:hover{ color:var(--lake) !important; }


/* ================= v5 · tema Blink (blu notte + oro) ================= */
body{ background:var(--bg); }
.skin-black .main-header .logo, .skin-black .main-header .navbar{ background:var(--navy-900); border-bottom:1px solid #1A2E4F; }
.skin-black .main-header .logo{ border-right:1px solid #1A2E4F; }
.skin-black .main-header{ box-shadow:0 2px 0 0 var(--gold); }
.brand{ color:#fff; letter-spacing:.02em; }
.brand span, .brand{ font-weight:800; }
.skin-black .main-header .navbar .sidebar-toggle{ color:#AFC0D6; }
.skin-black .main-header .navbar .sidebar-toggle:hover{ background:transparent; color:var(--gold); }
.user-li .who{ color:#E6ECF4; } .user-li .logout, .hdr-btn{ color:#AFC0D6 !important; }
.user-li .logout:hover, .hdr-btn:hover{ color:var(--gold) !important; }
.skin-black .main-header .navbar .nav > li > a{ color:#AFC0D6; }
.skin-black .main-header .navbar .nav > li > a:hover{ background:transparent; color:var(--gold); }
.navbar .label-danger{ background:var(--gold) !important; color:var(--navy-900) !important; }

.skin-black .main-sidebar, .skin-black .left-side{ background:linear-gradient(180deg, var(--navy-800) 0%, var(--navy-900) 100%); }
.skin-black .sidebar-menu > li > a{ color:#A9B8CC; }
.skin-black .sidebar-menu > li:hover > a{ background:rgba(184,153,90,.07); color:#fff; }
.skin-black .sidebar-menu > li.active > a{ background:linear-gradient(90deg, rgba(184,153,90,.22), rgba(184,153,90,0)); color:#fff; border-left-color:var(--gold); }
.skin-black .sidebar-menu > li.active > a .fa, .skin-black .sidebar-menu > li.active > a svg{ color:var(--gold); }
.side-foot{ color:#7F8FA6; } .powered a{ color:var(--gold-2); }

.box{ border-radius:12px; border-color:var(--line); box-shadow:0 1px 2px rgba(14,27,46,.04); }
.box.box-primary{ border-top:3px solid var(--gold); }
.box-header .box-title{ color:var(--ink); }
.nav-tabs-custom > .nav-tabs > li.active{ border-top-color:var(--gold); }
.nav-tabs-custom > .nav-tabs > li.active > a{ color:var(--lake); }

.small-box{ border-radius:12px; }
.bg-purple, .bg-navy{ background:linear-gradient(135deg, var(--lake) 0%, var(--navy-900) 100%) !important; }
.bg-purple .icon, .bg-navy .icon{ color:var(--gold) !important; opacity:.35 !important; }
.bg-light-blue{ background:linear-gradient(135deg, var(--lake-2) 0%, var(--lake) 100%) !important; }
.bg-yellow{ background:linear-gradient(135deg, var(--gold) 0%, #8E7442 100%) !important; }

.btn-primary{ background:var(--lake); border-color:var(--lake); box-shadow:inset 0 -2px 0 rgba(184,153,90,.55); }
.btn-primary:hover, .btn-primary:focus{ background:var(--navy-900); border-color:var(--gold); }
.btn-default:hover{ border-color:var(--gold); color:var(--lake); }
.badge-soft{ background:var(--gold-soft); color:#6E5A2E; }
.conv-badge, .badge-ico{ background:var(--gold); color:var(--navy-900); }
.badge-ico{ background:var(--gold-soft); color:#8E7442; }
.conv-item.active{ background:var(--gold-soft); }
.conv-ico, .avatar-txt{ background:var(--lake); color:var(--gold-2); }
.msg.me{ background:var(--lake); box-shadow:inset 0 -2px 0 rgba(184,153,90,.5); }
.msg-from{ color:#8E7442; }
.news-item{ border-left-color:var(--lake); } .news-item.pinned{ border-left-color:var(--gold); }
.badge-card.on{ background:var(--gold-soft); border-color:#E2D3AE; } .badge-card.on .fa, .badge-card.on svg{ color:#8E7442; }
.pw-bar .lvl3{ background:var(--gold); }
.form-control:focus, .selectize-input.focus{ border-color:var(--gold); }
.dataTables_wrapper .dt-button, .dataTables_wrapper button.dt-button{ color:var(--lake) !important; border-color:#E2D3AE !important; }
.btn-act{ color:var(--lake); } .btn-act:hover{ background:var(--gold-soft); }
.estimate div:last-child{ border-top-color:var(--gold); }
.px-status.live{ color:var(--up); }
.page-hello h3::after{ content:""; display:block; width:36px; height:3px; background:var(--gold); border-radius:2px; margin-top:6px; }

.auth-side{ background:radial-gradient(1200px 600px at 0% 0%, #1B3560 0%, var(--navy-900) 60%); position:relative; }
.auth-side h1{ color:#fff; }
.auth-side h1::after{ content:""; display:block; width:64px; height:4px; background:var(--gold); border-radius:2px; margin-top:18px; }
.auth-logo span{ color:#fff; letter-spacing:.04em; }
.auth-domain{ color:var(--gold-2); font-weight:700; letter-spacing:.06em; font-size:12px; margin-top:4px; }
.auth-card .nav-pills > li.active > a{ background:var(--lake); box-shadow:inset 0 -2px 0 var(--gold); }
.auth-card .btn-primary{ background:var(--lake); }

/* ---- v6 · logo Blink ---- */
.brand{ gap:10px; }
.brand-word{ font-family:'Montserrat', 'Manrope', sans-serif; font-weight:600; letter-spacing:.24em; font-size:16px; color:#FBFBFB; }
.auth-logo{ flex-direction:column; align-items:flex-start; gap:6px; }
.auth-logo img{ width:190px; height:auto; margin-left:-18px; }
.auth-domain{ color:var(--gold-2); letter-spacing:.32em; font-size:11px; text-transform:uppercase; margin-left:2px; }
.auth-side h1{ margin-top:28px; }
