Files
MagoRevisited/static/css/style.css
T
Alby96andClaude Sonnet 4.6 b6b6759b9a Restyle UI to match Mago4 and add invoicing, warehouse, scadenzario
Rework the demo into a faithful Mago4 look-and-feel and expand it with
core ERP modules modelled on the real Mago4 database schema.

UI (ispirata a Mago4):
- Blue header with logo/search/operation date, desktop-style window tabs
- White sidebar with coloured module icons (Anagrafiche, Vendite, Acquisti,
  Amministrazione, Logistica)
- Card-based module landing pages with breadcrumb + tab strip
- Document detail forms with left tabs, line grid and totals box

Fatturazione (InvoiceMng / MA_SaleDoc):
- Document types (Fattura Immediata, DDT, Nota di Credito, ProForma)
- Lines with discount/IVA, automatic taxable/tax/total computation
- Document states (draft -> printed -> issued / posted_to_inventory)

Magazzino (Inventory / MA_InventoryEntries + MA_InventoryReasons):
- Inventory movements with load/unload reasons (DebitCreditSign)
- Posting a movement actually updates item balances
- Causali and stock valuation pages

Amministrazione / Scadenzario (AP_AR / MA_PyblsRcvbls):
- Open items (receivables/payables) with due date, method, state
- Settle action closes the item and recomputes the cash forecast

Dashboard riprogettata (focus su scadenze e to-do):
- Overdue alert banner, KPI for overdue payables/receivables
- Upcoming deadlines table, prioritised "Cose da fare" action list
- 30-day cash-flow forecast and customer credit-limit check

Adds REST endpoints for invoices, movements, schedules and dashboard data.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 11:47:32 +02:00

650 lines
23 KiB
CSS

/* ============================================================
MAGO4 DEMO — Tema ispirato a Mago4 (Microarea / Zucchetti)
============================================================ */
:root {
/* Palette Mago4 */
--mago-blue: #1577be; /* Blu header / titoli */
--mago-blue-dark: #0f5e9c;
--mago-blue-light: #e8f2fb; /* Sfondo voce attiva */
--mago-green: #5aa632; /* Accento logo */
--mago-teal: #1ba6b5;
--c-blue: #1976D2;
--c-orange: #F57C00;
--c-green: #388E3C;
--c-red: #D32F2F;
--c-purple: #7B1FA2;
--c-teal: #00838F;
--bg: #eef1f4;
--panel: #ffffff;
--border: #d8dee5;
--border-soft: #e8ecf0;
--text: #2b3640;
--text-soft: #6b7884;
--text-mute: #9aa6b1;
--header-h: 50px;
--tabbar-h: 34px;
--sidebar-w: 240px;
--radius: 3px;
--shadow-card: 0 1px 3px rgba(0,0,0,0.08);
--shadow-pop: 0 6px 24px rgba(0,0,0,0.18);
--t: 0.15s ease;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html, body {
height: 100%;
font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
font-size: 13px;
color: var(--text);
background: var(--bg);
}
/* ============================================================
WINDOW TAB BAR (Home | Customers | Invoice ...) — stile desktop
============================================================ */
.window-tabs {
height: var(--tabbar-h);
background: var(--mago-blue-dark);
display: flex;
align-items: flex-end;
padding: 0 6px;
gap: 2px;
}
.window-tab {
display: flex;
align-items: center;
gap: 6px;
height: 26px;
padding: 0 14px;
background: rgba(255,255,255,0.12);
color: rgba(255,255,255,0.85);
font-size: 12px;
border-radius: 4px 4px 0 0;
text-decoration: none;
transition: background var(--t);
white-space: nowrap;
}
.window-tab .material-icons { font-size: 15px; }
.window-tab:hover { background: rgba(255,255,255,0.2); }
.window-tab.active { background: var(--bg); color: var(--mago-blue-dark); font-weight: 600; }
/* ============================================================
HEADER
============================================================ */
.app-header {
height: var(--header-h);
background: var(--mago-blue);
display: flex;
align-items: center;
padding: 0 14px;
gap: 16px;
color: #fff;
position: relative;
z-index: 30;
}
.header-burger {
background: none; border: none; color: #fff; cursor: pointer;
width: 34px; height: 34px; border-radius: 4px;
display: flex; align-items: center; justify-content: center;
transition: background var(--t);
}
.header-burger:hover { background: rgba(255,255,255,0.15); }
.logo {
display: flex; align-items: center; gap: 9px;
text-decoration: none;
}
.logo-mark {
width: 34px; height: 34px; border-radius: 6px;
background: #fff;
display: flex; align-items: center; justify-content: center;
box-shadow: 0 1px 2px rgba(0,0,0,0.2);
}
.logo-mark svg { width: 24px; height: 24px; display: block; }
.logo-text {
font-size: 23px; font-weight: 700; letter-spacing: 1px;
color: #fff; line-height: 1;
}
.header-search {
flex: 1;
max-width: 560px;
margin: 0 auto;
position: relative;
}
.header-search input {
width: 100%;
height: 32px;
border: none;
border-radius: 16px;
padding: 0 16px 0 38px;
font-size: 13px;
background: #fff;
color: var(--text);
outline: none;
}
.header-search .material-icons {
position: absolute; left: 12px; top: 50%; transform: translateY(-50%);
color: var(--text-mute); font-size: 19px;
}
.header-right { display: flex; align-items: center; gap: 6px; }
.header-date {
display: flex; flex-direction: column; align-items: flex-end;
font-size: 11px; line-height: 1.25; opacity: 0.95; margin-right: 4px;
}
.header-date .label { opacity: 0.8; }
.header-date .value { font-weight: 600; }
.header-icon-btn {
background: none; border: none; color: #fff; cursor: pointer;
width: 34px; height: 34px; border-radius: 50%;
display: flex; align-items: center; justify-content: center;
transition: background var(--t);
}
.header-icon-btn:hover { background: rgba(255,255,255,0.15); }
.header-icon-btn .material-icons { font-size: 21px; }
/* ============================================================
LAYOUT BODY
============================================================ */
.app-body { display: flex; height: calc(100vh - var(--header-h) - var(--tabbar-h)); }
/* ---------- Sidebar ---------- */
.sidebar {
width: var(--sidebar-w);
background: var(--panel);
border-right: 1px solid var(--border);
overflow-y: auto;
flex-shrink: 0;
}
.sidebar-group-title {
display: flex; align-items: center; justify-content: space-between;
padding: 11px 14px;
background: linear-gradient(90deg, var(--mago-blue-light), #f4f9fe);
border-bottom: 1px solid var(--border-soft);
cursor: pointer;
}
.sidebar-group-title .gt-left { display: flex; align-items: center; gap: 8px; }
.sidebar-group-title .gt-mark {
width: 18px; height: 18px; border-radius: 3px;
background: var(--mago-blue);
display: flex; align-items: center; justify-content: center;
}
.sidebar-group-title .gt-mark .material-icons { font-size: 13px; color: #fff; }
.sidebar-group-title span.gt-text { font-weight: 700; color: var(--mago-blue-dark); font-size: 13px; }
.sidebar-group-title .material-icons.chev { font-size: 18px; color: var(--text-soft); }
.nav-item {
display: flex; align-items: center; gap: 11px;
padding: 9px 14px 9px 18px;
color: var(--text);
text-decoration: none;
border-left: 3px solid transparent;
transition: background var(--t), border-color var(--t);
font-size: 13px;
}
.nav-item:hover { background: #f4f7fa; }
.nav-item.active {
background: var(--mago-blue-light);
border-left-color: var(--mago-blue);
color: var(--mago-blue-dark);
font-weight: 600;
}
.nav-item .material-icons { font-size: 19px; }
.nav-item.disabled { color: var(--text-mute); cursor: default; pointer-events: none; }
/* icone colorate per modulo */
.ic-anagrafiche { color: var(--c-blue); }
.ic-amministrazione { color: var(--c-purple); }
.ic-vendite { color: var(--c-green); }
.ic-acquisti { color: var(--c-orange); }
.ic-logistica { color: var(--c-teal); }
.ic-produzione { color: #5d4037; }
.ic-servizi { color: var(--c-red); }
.ic-preferenze { color: var(--text-soft); }
.sidebar-sub-group {
padding: 9px 14px; font-weight: 700; color: var(--text-soft);
border-top: 1px solid var(--border-soft); font-size: 12px;
display: flex; align-items: center; justify-content: space-between;
}
/* ---------- Main ---------- */
.main {
flex: 1;
overflow-y: auto;
padding: 0;
}
.content-pad { padding: 16px 22px; }
/* ============================================================
BREADCRUMB + PAGE HEADER + TABS
============================================================ */
.module-bar {
background: var(--panel);
border-bottom: 1px solid var(--border);
padding: 0 22px;
}
.module-title {
font-size: 16px; font-weight: 600; color: var(--text);
padding: 13px 0 4px;
}
.breadcrumb {
font-size: 12px; color: var(--text-soft); padding-bottom: 10px;
}
.breadcrumb a { color: var(--mago-blue); text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; }
.breadcrumb .sep { margin: 0 5px; color: var(--text-mute); }
.breadcrumb .current { color: var(--text); font-style: italic; }
.tab-strip {
display: flex; gap: 2px;
border-bottom: 1px solid var(--border);
background: var(--panel);
padding: 0 22px;
overflow-x: auto;
}
.tab-strip a {
padding: 9px 16px;
font-size: 13px;
color: var(--text-soft);
text-decoration: none;
border-bottom: 2px solid transparent;
white-space: nowrap;
transition: color var(--t), border-color var(--t);
}
.tab-strip a:hover { color: var(--mago-blue); }
.tab-strip a.active {
color: var(--mago-blue-dark);
border-bottom-color: var(--mago-teal);
font-weight: 600;
}
/* ============================================================
MENU CARDS (landing moduli)
============================================================ */
.cards-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 16px;
padding: 18px 22px;
align-items: start;
}
.menu-card {
background: var(--panel);
border: 1px solid var(--border);
border-radius: var(--radius);
box-shadow: var(--shadow-card);
overflow: hidden;
}
.menu-card-header {
display: flex; align-items: center; justify-content: space-between;
padding: 11px 14px;
border-bottom: 2px solid var(--mago-blue);
}
.menu-card-header h3 { font-size: 14px; font-weight: 600; color: var(--mago-blue-dark); }
.menu-card-header .collapse-dot {
color: var(--text-mute); font-size: 16px; letter-spacing: -1px;
}
.menu-card-body { padding: 6px 0; }
.menu-link {
display: flex; align-items: center; gap: 10px;
padding: 8px 14px;
color: var(--text);
text-decoration: none;
transition: background var(--t);
}
.menu-link:hover { background: var(--mago-blue-light); }
.menu-link .ml-icon { font-size: 18px; width: 20px; text-align: center; }
.menu-link .ml-text { flex: 1; font-size: 13px; }
.menu-link .ml-star {
color: var(--text-mute); font-size: 17px;
opacity: 0; transition: opacity var(--t), color var(--t);
}
.menu-link:hover .ml-star { opacity: 1; }
.menu-link .ml-star:hover { color: var(--c-orange); }
.mtype-list { color: var(--c-blue); }
.mtype-form { color: var(--c-orange); }
.mtype-print { color: var(--c-green); }
.mtype-proc { color: var(--c-purple); }
/* ============================================================
PANELS / TABELLE DATI
============================================================ */
.panel {
background: var(--panel);
border: 1px solid var(--border);
border-radius: var(--radius);
box-shadow: var(--shadow-card);
margin-bottom: 16px;
overflow: hidden;
}
.panel-header {
display: flex; align-items: center; justify-content: space-between;
padding: 10px 14px;
border-bottom: 1px solid var(--border);
background: #fafbfc;
}
.panel-header h3 {
font-size: 13px; font-weight: 600; color: var(--mago-blue-dark);
display: flex; align-items: center; gap: 7px;
}
.panel-header h3 .material-icons { font-size: 17px; }
.panel-body { padding: 0; }
.panel-body.padded { padding: 14px; }
.data-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.data-table thead th {
background: #f3f6f9;
padding: 9px 12px;
text-align: left;
font-weight: 600;
color: var(--text-soft);
border-bottom: 1px solid var(--border);
white-space: nowrap;
position: sticky; top: 0;
}
.data-table tbody td {
padding: 8px 12px;
border-bottom: 1px solid var(--border-soft);
}
.data-table tbody tr { transition: background var(--t); cursor: default; }
.data-table tbody tr:hover { background: #f6f9fc; }
.data-table tbody tr.low-stock { background: rgba(211,47,47,0.045); }
.data-table tbody tr.row-link { cursor: pointer; }
.data-table-nested { width: 100%; border-collapse: collapse; font-size: 12px; margin-top: 8px; }
.data-table-nested th {
background: #f3f6f9; padding: 7px 10px; text-align: left;
font-weight: 600; color: var(--text-soft); border-bottom: 1px solid var(--border);
}
.data-table-nested td { padding: 7px 10px; border-bottom: 1px solid var(--border-soft); }
.text-right { text-align: right; }
.text-center { text-align: center; }
.text-bold { font-weight: 600; }
.mono { font-family: "Consolas", "SF Mono", monospace; }
.text-danger { color: var(--c-red); }
.text-warning { color: var(--c-orange); }
.text-success { color: var(--c-green); }
.text-blue { color: var(--mago-blue); }
.text-mute { color: var(--text-mute); }
/* ============================================================
KPI / STAT CARDS (dashboard)
============================================================ */
.kpi-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 14px;
margin-bottom: 16px;
}
.kpi-card {
background: var(--panel);
border: 1px solid var(--border);
border-left: 4px solid var(--c-blue);
border-radius: var(--radius);
box-shadow: var(--shadow-card);
padding: 14px 16px;
}
.kpi-card .kpi-title { font-size: 12px; color: var(--text-soft); margin-bottom: 10px; }
.kpi-card .kpi-row { display: flex; align-items: center; justify-content: space-between; }
.kpi-card .kpi-icon {
width: 42px; height: 42px; border-radius: 50%;
display: flex; align-items: center; justify-content: center;
background: #f2f5f8;
}
.kpi-card .kpi-icon .material-icons { font-size: 24px; }
.kpi-card .kpi-value { font-size: 23px; font-weight: 700; }
.dash-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 1100px) { .dash-grid-2 { grid-template-columns: 1fr; } }
/* ============================================================
TODO LIST / COSE DA FARE
============================================================ */
.todo-list { display: flex; flex-direction: column; }
.todo-item {
display: flex; align-items: center; gap: 12px;
padding: 11px 14px;
border-bottom: 1px solid var(--border-soft);
transition: background var(--t);
}
.todo-item:last-child { border-bottom: none; }
.todo-item:hover { background: #f6f9fc; }
.todo-icon {
width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0;
display: flex; align-items: center; justify-content: center;
}
.todo-icon .material-icons { font-size: 20px; }
.todo-icon.c-red { background: rgba(211,47,47,0.12); color: var(--c-red); }
.todo-icon.c-orange { background: rgba(245,124,0,0.14); color: var(--c-orange); }
.todo-icon.c-blue { background: rgba(21,119,190,0.12); color: var(--mago-blue); }
.todo-icon.c-teal { background: rgba(0,131,143,0.12); color: var(--c-teal); }
.todo-icon.c-green { background: rgba(56,142,60,0.12); color: var(--c-green); }
.todo-body { flex: 1; }
.todo-text { font-size: 13px; color: var(--text); }
.todo-amount { font-size: 12px; color: var(--text-soft); margin-top: 2px; }
.todo-action {
font-size: 12px; font-weight: 600; color: var(--mago-blue);
text-decoration: none; padding: 5px 12px; border-radius: 14px;
background: var(--mago-blue-light); white-space: nowrap;
transition: background var(--t);
}
.todo-action:hover { background: #d6e9f9; }
.todo-empty { padding: 30px; text-align: center; color: var(--text-mute); }
.todo-empty .material-icons { font-size: 42px; color: var(--c-green); display: block; margin-bottom: 8px; }
/* ---------- Cashflow ---------- */
.cashflow-box { padding: 16px; }
.cashflow-row {
display: flex; align-items: center; justify-content: space-between;
padding: 9px 0; border-bottom: 1px solid var(--border-soft);
}
.cashflow-row:last-child { border-bottom: none; }
.cashflow-row .cf-label { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-soft); }
.cashflow-row .cf-label .material-icons { font-size: 18px; }
.cashflow-row .cf-value { font-size: 15px; font-weight: 700; }
.cashflow-row.cf-net { border-top: 2px solid var(--border); margin-top: 4px; padding-top: 12px; }
.cashflow-row.cf-net .cf-label { font-weight: 700; color: var(--text); }
.cashflow-row.cf-net .cf-value { font-size: 18px; }
/* ============================================================
BADGES / STATUS
============================================================ */
.badge {
display: inline-flex; align-items: center; gap: 4px;
padding: 2px 9px; border-radius: 11px;
font-size: 11px; font-weight: 600; white-space: nowrap;
}
.badge .material-icons { font-size: 13px; }
.badge-success { background: rgba(56,142,60,0.12); color: var(--c-green); }
.badge-warning { background: rgba(245,124,0,0.14); color: #e06f00; }
.badge-danger { background: rgba(211,47,47,0.12); color: var(--c-red); }
.badge-info { background: rgba(21,119,190,0.12); color: var(--mago-blue); }
.badge-grey { background: rgba(120,130,140,0.14); color: var(--text-soft); }
.badge-load { background: rgba(56,142,60,0.12); color: var(--c-green); }
.badge-unload { background: rgba(211,47,47,0.12); color: var(--c-red); }
.status-draft { background: rgba(120,130,140,0.14); color: var(--text-soft); }
.status-confirmed { background: rgba(21,119,190,0.12); color: var(--mago-blue); }
.status-printed { background: rgba(0,131,143,0.12); color: var(--c-teal); }
.status-issued { background: rgba(56,142,60,0.12); color: var(--c-green); }
.status-posted { background: rgba(123,31,162,0.12); color: var(--c-purple); }
.status-partially_received { background: rgba(245,124,0,0.14); color: #e06f00; }
.status-received { background: rgba(56,142,60,0.12); color: var(--c-green); }
.status-cancelled { background: rgba(211,47,47,0.12); color: var(--c-red); }
/* ============================================================
BUTTONS
============================================================ */
.btn {
display: inline-flex; align-items: center; gap: 6px;
padding: 7px 14px; border: none; border-radius: var(--radius);
font-size: 13px; font-weight: 500; cursor: pointer;
transition: background var(--t), box-shadow var(--t);
}
.btn .material-icons { font-size: 17px; }
.btn-primary { background: var(--mago-blue); color: #fff; }
.btn-primary:hover { background: var(--mago-blue-dark); }
.btn-ghost { background: #fff; color: var(--mago-blue); border: 1px solid var(--border); }
.btn-ghost:hover { background: var(--mago-blue-light); }
.btn-icon-sm {
background: none; border: none; cursor: pointer;
width: 28px; height: 28px; border-radius: 4px;
display: inline-flex; align-items: center; justify-content: center;
transition: background var(--t);
}
.btn-icon-sm .material-icons { font-size: 17px; }
.btn-icon-sm.act-view { color: var(--mago-blue); }
.btn-icon-sm.act-edit { color: var(--c-orange); }
.btn-icon-sm.act-cart { color: var(--c-green); }
.btn-icon-sm:hover { background: #eef2f6; }
.page-toolbar {
display: flex; align-items: center; gap: 10px;
padding: 12px 22px;
flex-wrap: wrap;
}
.page-toolbar .spacer { flex: 1; }
/* ---------- Form toolbar (stile desktop document) ---------- */
.doc-toolbar {
display: flex; align-items: center; gap: 2px;
background: #f3f6f9;
border-bottom: 1px solid var(--border);
padding: 5px 10px;
}
.doc-toolbar .tb-btn {
background: none; border: none; cursor: pointer;
width: 30px; height: 30px; border-radius: 4px;
display: flex; align-items: center; justify-content: center;
color: var(--mago-blue-dark); transition: background var(--t);
}
.doc-toolbar .tb-btn:hover { background: #e2eaf1; }
.doc-toolbar .tb-btn .material-icons { font-size: 18px; }
.doc-toolbar .tb-sep { width: 1px; height: 20px; background: var(--border); margin: 0 5px; }
/* ============================================================
ALERTS
============================================================ */
.alert {
display: flex; align-items: center; gap: 10px;
padding: 10px 14px; border-radius: var(--radius);
font-size: 13px; margin-bottom: 14px;
}
.alert .material-icons { font-size: 19px; }
.alert-info { background: rgba(21,119,190,0.1); color: var(--mago-blue-dark); }
.alert-warning { background: rgba(245,124,0,0.12); color: #b85c00; }
.alert-danger { background: rgba(211,47,47,0.1); color: var(--c-red); }
/* ============================================================
FORM (document detail, stile Mago4)
============================================================ */
.doc-form { display: flex; }
.doc-form-tabs {
width: 190px; flex-shrink: 0;
border-right: 1px solid var(--border);
background: #fafbfc;
}
.doc-form-tab {
display: flex; align-items: center; gap: 9px;
padding: 10px 14px;
font-size: 13px; color: var(--text);
border-left: 3px solid transparent; cursor: pointer;
transition: background var(--t);
}
.doc-form-tab .material-icons { font-size: 18px; color: var(--mago-blue); }
.doc-form-tab:hover { background: #f0f4f8; }
.doc-form-tab.active {
background: var(--mago-blue-light); border-left-color: var(--mago-blue);
font-weight: 600; color: var(--mago-blue-dark);
}
.doc-form-content { flex: 1; padding: 16px 20px; }
.form-section-title {
font-size: 13px; font-weight: 700; color: var(--mago-blue);
border-bottom: 1px solid var(--border-soft);
padding-bottom: 6px; margin: 4px 0 14px;
}
.form-grid-2 {
display: grid; grid-template-columns: 1fr 1fr; gap: 8px 40px;
margin-bottom: 18px;
}
@media (max-width: 900px) { .form-grid-2 { grid-template-columns: 1fr; } }
.field-row {
display: grid; grid-template-columns: 130px 1fr; align-items: center;
gap: 10px; padding: 4px 0;
}
.field-row label { font-size: 12.5px; color: var(--text-soft); }
.field-row .field-value {
font-size: 13px; color: var(--text);
padding: 5px 8px; background: #f7f9fb;
border: 1px solid var(--border-soft); border-radius: 3px;
min-height: 28px; display: flex; align-items: center;
}
.totals-box {
display: flex; justify-content: flex-end; gap: 30px;
padding: 14px; background: #fafbfc;
border-top: 1px solid var(--border);
}
.totals-box .t-item { text-align: right; }
.totals-box .t-item .t-label { font-size: 11px; color: var(--text-soft); }
.totals-box .t-item .t-value { font-size: 16px; font-weight: 700; }
.totals-box .t-item.grand .t-value { color: var(--mago-blue-dark); font-size: 20px; }
/* ============================================================
MODAL
============================================================ */
.modal {
display: none; position: fixed; inset: 0;
background: rgba(20,30,40,0.5); z-index: 100;
align-items: flex-start; justify-content: center;
padding: 40px 20px; overflow-y: auto;
}
.modal.show { display: flex; }
.modal-content {
background: #fff; border-radius: var(--radius);
width: 100%; max-width: 760px;
box-shadow: var(--shadow-pop);
animation: modalIn 0.18s ease;
}
@keyframes modalIn { from { transform: translateY(-12px); opacity: 0; } to { transform: none; opacity: 1; } }
.modal-header {
display: flex; align-items: center; justify-content: space-between;
padding: 0; border-bottom: 1px solid var(--border);
background: var(--mago-blue); color: #fff;
border-radius: var(--radius) var(--radius) 0 0;
}
.modal-header h2 { font-size: 14px; font-weight: 600; padding: 12px 16px; }
.modal-close {
background: none; border: none; color: #fff; cursor: pointer;
width: 44px; height: 44px; display: flex; align-items: center; justify-content: center;
transition: background var(--t);
}
.modal-close:hover { background: rgba(255,255,255,0.18); }
.modal-body { padding: 0; }
/* ============================================================
SCROLLBAR
============================================================ */
::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-track { background: #eef1f4; }
::-webkit-scrollbar-thumb { background: #c4ccd4; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #a8b2bc; }
.material-icons {
font-family: 'Material Icons';
font-weight: normal; font-style: normal;
display: inline-block; line-height: 1;
text-transform: none; letter-spacing: normal;
white-space: nowrap; direction: ltr;
-webkit-font-smoothing: antialiased;
}