/* GIGATEC custom layer */
:root {
    --brand: 99 102 241;        /* indigo-500 */
    --brand-dark: 79 70 229;    /* indigo-600 */
}

* { -webkit-font-smoothing: antialiased; }

html, body { height: 100%; }
body { font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, sans-serif; }

/* Custom scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgb(203 213 225 / .6); border-radius: 999px; }
.dark ::-webkit-scrollbar-thumb { background: rgb(71 85 105 / .6); }
::-webkit-scrollbar-thumb:hover { background: rgb(148 163 184 / .8); }

/* Sidebar transitions */
.sidebar-link {
    display: flex; align-items: center; gap: .75rem;
    padding: .55rem .85rem; border-radius: .65rem;
    color: rgb(71 85 105); font-weight: 500; font-size: .9rem;
    transition: all .15s ease;
}
.dark .sidebar-link { color: rgb(203 213 225); }
.sidebar-link:hover { background: rgb(241 245 249); color: rgb(15 23 42); }
.dark .sidebar-link:hover { background: rgb(30 41 59); color: white; }
.sidebar-link.active {
    background: linear-gradient(135deg, rgb(99 102 241), rgb(139 92 246));
    color: white; box-shadow: 0 4px 14px -4px rgb(99 102 241 / .5);
}
.sidebar-link.active svg { color: white; }
.sidebar-link svg { width: 1.1rem; height: 1.1rem; flex-shrink: 0; }

/* Card hover */
.kpi-card { transition: transform .15s ease, box-shadow .15s ease; }
.kpi-card:hover { transform: translateY(-2px); box-shadow: 0 10px 28px -8px rgb(15 23 42 / .12); }

/* Animations */
@keyframes fadeUp { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
.animate-fade-up { animation: fadeUp .35s ease both; }

@keyframes pulse-ring {
    0% { box-shadow: 0 0 0 0 rgb(99 102 241 / .35); }
    100% { box-shadow: 0 0 0 14px rgb(99 102 241 / 0); }
}
.pulse-ring { animation: pulse-ring 1.6s infinite; }

/* Tables */
.gt-table { width: 100%; border-collapse: separate; border-spacing: 0; }
.gt-table thead th {
    text-align: left; font-size: .72rem; text-transform: uppercase;
    letter-spacing: .04em; color: rgb(100 116 139); font-weight: 600;
    padding: .75rem 1rem; border-bottom: 1px solid rgb(226 232 240);
}
.dark .gt-table thead th { color: rgb(148 163 184); border-bottom-color: rgb(51 65 85); }
.gt-table tbody td { padding: .85rem 1rem; border-bottom: 1px solid rgb(241 245 249); font-size: .9rem; }
.dark .gt-table tbody td { border-bottom-color: rgb(30 41 59); }
.gt-table tbody tr:hover { background: rgb(248 250 252); }
.dark .gt-table tbody tr:hover { background: rgb(30 41 59 / .5); }

/* Forms */
.gt-input {
    width: 100%; border: 1px solid rgb(203 213 225); border-radius: .55rem;
    padding: .55rem .75rem; background: white; color: rgb(15 23 42);
    font-size: .9rem; outline: none; transition: border-color .15s, box-shadow .15s;
}
.gt-input:focus { border-color: rgb(99 102 241); box-shadow: 0 0 0 3px rgb(99 102 241 / .18); }
.dark .gt-input { background: rgb(15 23 42); border-color: rgb(51 65 85); color: white; }
.dark .gt-input:focus { border-color: rgb(129 140 248); }

.gt-label { display: block; font-size: .82rem; font-weight: 500; color: rgb(51 65 85); margin-bottom: .35rem; }
.dark .gt-label { color: rgb(203 213 225); }

.gt-btn {
    display: inline-flex; align-items: center; gap: .5rem;
    padding: .55rem 1rem; border-radius: .55rem; font-weight: 600; font-size: .88rem;
    transition: all .15s; cursor: pointer; border: 1px solid transparent;
}
.gt-btn-primary { background: rgb(79 70 229); color: white; }
.gt-btn-primary:hover { background: rgb(67 56 202); box-shadow: 0 6px 18px -6px rgb(79 70 229 / .6); }
.gt-btn-secondary { background: white; color: rgb(51 65 85); border-color: rgb(203 213 225); }
.gt-btn-secondary:hover { background: rgb(248 250 252); border-color: rgb(148 163 184); }
.dark .gt-btn-secondary { background: rgb(30 41 59); color: rgb(226 232 240); border-color: rgb(51 65 85); }
.dark .gt-btn-secondary:hover { background: rgb(51 65 85); }
.gt-btn-danger { background: rgb(225 29 72); color: white; }
.gt-btn-danger:hover { background: rgb(190 18 60); }
.gt-btn-ghost { background: transparent; color: rgb(71 85 105); }
.gt-btn-ghost:hover { background: rgb(241 245 249); }
.dark .gt-btn-ghost { color: rgb(203 213 225); }
.dark .gt-btn-ghost:hover { background: rgb(30 41 59); }

/* Cards */
.gt-card {
    background: white; border: 1px solid rgb(226 232 240);
    border-radius: 1rem; padding: 1.25rem;
}
.dark .gt-card { background: rgb(15 23 42); border-color: rgb(30 41 59); }

/* POS */
.pos-product-card { transition: all .12s; cursor: pointer; }
.pos-product-card:hover { transform: translateY(-2px); border-color: rgb(99 102 241); box-shadow: 0 6px 18px -8px rgb(99 102 241 / .35); }

/* Print */
@media print {
    body * { visibility: hidden; }
    .printable, .printable * { visibility: visible; }
    .printable { position: absolute; left: 0; top: 0; width: 100%; }
    .no-print { display: none !important; }
}
