:root{--bg:#f4f6f8;--panel:#fff;--text:#18202a;--muted:#6b7280;--line:#dfe3e8;--brand:#1261a0;--brand2:#0d4d80;--danger:#b42318;--success:#18794e;--warn:#9a6700;--sidebar:#111827;--sidebarText:#d1d5db;--radius:12px;--shadow:0 10px 30px rgba(15,23,42,.08)}*{box-sizing:border-box}body{margin:0;font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:var(--sidebar);color:var(--sidebarText);padding:18px 14px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;gap:10px;align-items:center;padding:4px 8px 20px;color:#fff}.brand-mark{width:36px;height:36px;border:1px solid #374151;border-radius:9px;display:grid;place-items:center;font-weight:800}.brand-text strong{display:block}.brand-text small{color:#9ca3af}.nav{display:grid;gap:4px}.nav a{padding:10px 12px;border-radius:8px;display:flex;gap:10px;align-items:center}.nav a:hover,.nav a.active{background:#1f2937;color:#fff}.nav .sep{height:1px;background:#263244;margin:10px 6px}.main{min-width:0}.topbar{height:64px;background:var(--panel);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:10}.topbar .user{display:flex;gap:10px;align-items:center}.avatar{width:34px;height:34px;border-radius:50%;background:#e5eef7;color:var(--brand);display:grid;place-items:center;font-weight:700}.content{padding:24px}.page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}.page-head h1{margin:0;font-size:24px}.muted{color:var(--muted)}.tiny{font-size:12px}.cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:18px}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 2px rgba(0,0,0,.02)}.card{padding:16px}.card .value{font-size:23px;font-weight:750;margin-top:6px}.panel{padding:18px;margin-bottom:18px}.panel h2,.panel h3{margin-top:0}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.form-grid{display:grid;gap:14px}.form-grid.two{grid-template-columns:1fr 1fr}.span-2{grid-column:1/-1}label{display:grid;gap:6px;font-weight:600}input,select,textarea{width:100%;border:1px solid #cfd6dd;border-radius:8px;padding:10px 11px;background:#fff;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:#79a9d3;box-shadow:0 0 0 3px rgba(18,97,160,.12)}textarea{min-height:90px;resize:vertical}.check{display:flex;align-items:center;gap:8px;font-weight:500}.check input{width:auto}.btn{border:1px solid #c8d0d8;background:#fff;padding:9px 13px;border-radius:8px;font-weight:700;color:#27313c}.btn:hover{filter:brightness(.98)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand2)}.btn.danger{background:#fff0f0;border-color:#f3b8b8;color:var(--danger)}.btn.success{background:#eef9f3;border-color:#b7e2ca;color:var(--success)}.btn.small{padding:6px 9px;font-size:12px}.wide{width:100%}.actions{display:flex;gap:8px;flex-wrap:wrap}.toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:14px}.toolbar>*{min-width:140px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}.table{width:100%;border-collapse:collapse;background:#fff}.table th,.table td{padding:10px 12px;border-bottom:1px solid #edf0f2;text-align:left;white-space:nowrap}.table th{background:#f8fafb;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#5f6b76}.table tr:last-child td{border-bottom:0}.right{text-align:right!important}.badge{display:inline-flex;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:700;background:#eef2f6;color:#475569}.badge.success{background:#e9f7ef;color:#11663e}.badge.danger{background:#feecec;color:#9d1d16}.badge.warn{background:#fff4d6;color:#825500}.alert{padding:11px 12px;border-radius:8px;margin-bottom:14px;border:1px solid}.alert.success{background:#effaf4;border-color:#b9e5cc;color:#12633d}.alert.error{background:#fff1f0;border-color:#f0c4bf;color:#912018}.alert.warn{background:#fff7e6;border-color:#f3d39b;color:#7a5100}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#eef3f8,#f8fafc)}.login-shell{width:min(920px,100%);display:grid;grid-template-columns:1.05fr .95fr;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.login-brand{background:#101827;color:white;padding:52px;display:flex;flex-direction:column;justify-content:center}.login-brand h1{font-size:30px;margin:18px 0 6px}.login-brand p{color:#aeb8c5}.logo-box{width:72px;height:72px;border-radius:16px;background:#fff;display:grid;place-items:center;color:var(--brand);font-size:22px;font-weight:900;overflow:hidden}.logo-box img{max-width:100%;max-height:100%;object-fit:contain}.login-card{padding:52px}.login-card h2{font-size:26px;margin:0 0 4px}.login-card form{display:grid;gap:14px;margin-top:22px}.password-wrap{display:flex}.password-wrap input{border-radius:8px 0 0 8px}.icon-btn{border:1px solid #cfd6dd;border-left:0;background:#f8fafb;border-radius:0 8px 8px 0;padding:0 12px}.install-card{width:min(820px,100%);background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:var(--shadow)}.pos-grid{display:grid;grid-template-columns:1.35fr .85fr;gap:18px}.search-results{position:relative}.results-pop{position:absolute;z-index:20;left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow);max-height:300px;overflow:auto}.result-item{padding:10px 12px;border-bottom:1px solid #edf0f2;cursor:pointer}.result-item:hover{background:#f5f8fb}.cart-table input{padding:7px;width:82px}.summary{display:grid;gap:10px}.summary-row{display:flex;justify-content:space-between;gap:20px}.summary-row.total{font-size:20px;font-weight:800;border-top:2px solid #dfe3e8;padding-top:12px}.kbd{font-family:ui-monospace,monospace;padding:2px 6px;border:1px solid #d8dee5;border-bottom-width:2px;border-radius:5px;background:#fff}.chart-bars{height:220px;display:flex;align-items:end;gap:8px;padding:18px 8px 0;border-bottom:1px solid var(--line)}.bar{flex:1;background:#8fb9dc;border-radius:6px 6px 0 0;min-height:2px;position:relative}.bar span{position:absolute;bottom:-25px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--muted)}.metric-list{display:grid;gap:10px}.metric-line{display:flex;justify-content:space-between;border-bottom:1px solid #edf0f2;padding-bottom:8px}.empty{padding:28px;text-align:center;color:var(--muted)}.mobile-menu{display:none}.receipt-body{background:#fff}.receipt{width:var(--paper-width,80mm);margin:0 auto;padding:4mm;font-family:"Courier New",monospace;color:#000}.receipt h1,.receipt p{text-align:center;margin:3px 0}.receipt table{width:100%;border-collapse:collapse;font-size:11px}.receipt th,.receipt td{padding:3px 0;border-bottom:1px dashed #999;text-align:left}.receipt .totals{margin-top:8px}.receipt .totals div{display:flex;justify-content:space-between}.receipt .grand{font-weight:bold;font-size:14px;border-top:1px solid #000;margin-top:4px;padding-top:4px}.receipt-actions{max-width:500px;margin:18px auto;display:flex;gap:8px;justify-content:center}.low-stock-row{background:#fff9ed}.pagination{display:flex;gap:6px;margin-top:14px}.pagination a{padding:6px 9px;border:1px solid var(--line);border-radius:6px;background:#fff}.pagination a.active{background:var(--brand);color:white;border-color:var(--brand)}@media(max-width:1200px){.cards{grid-template-columns:repeat(3,1fr)}.pos-grid{grid-template-columns:1fr}}@media(max-width:860px){.app{grid-template-columns:1fr}.sidebar{position:fixed;left:-260px;width:250px;z-index:30;transition:.2s}.sidebar.open{left:0}.mobile-menu{display:inline-flex}.content{padding:16px}.topbar{padding:0 16px}.grid-2,.grid-3,.form-grid.two{grid-template-columns:1fr}.span-2{grid-column:auto}.cards{grid-template-columns:repeat(2,1fr)}.login-shell{grid-template-columns:1fr}.login-brand{display:none}.login-card{padding:32px 24px}}@media(max-width:520px){.cards{grid-template-columns:1fr}.page-head{flex-direction:column}.content{padding:12px}.login-card{padding:28px 20px}}@media print{.receipt-actions{display:none!important}.receipt{margin:0;padding:2mm}.receipt-body{background:#fff}@page{margin:0}}

.app.sidebar-collapsed{grid-template-columns:78px 1fr}.app.sidebar-collapsed .sidebar{width:78px}.app.sidebar-collapsed .brand-text,.app.sidebar-collapsed .nav-label{display:none}.app.sidebar-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}.app.sidebar-collapsed .nav a{justify-content:center;padding:10px 5px}.desktop-collapse{display:inline-flex}@media(max-width:860px){.desktop-collapse{display:none}.app.sidebar-collapsed{grid-template-columns:1fr}}

/* Shanika Hardware responsive login */
.login-page{min-height:100svh;padding:0;background:#f4f2ed;display:grid;place-items:center;color:#17191b;overflow-x:hidden}.shanika-login-shell{width:min(1180px,calc(100% - 48px));min-height:min(820px,calc(100svh - 48px));display:grid;grid-template-columns:minmax(440px,.96fr) minmax(500px,1.04fr);background:#fff;border:1px solid rgba(35,38,41,.18);border-radius:28px;overflow:hidden;box-shadow:0 30px 90px rgba(14,17,20,.18),0 2px 10px rgba(14,17,20,.1);position:relative}.shanika-login-shell:after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:linear-gradient(90deg,#d68a1e,#f3b54a 35%,#d68a1e);z-index:5}.shanika-login-visual{position:relative;isolation:isolate;min-height:820px;padding:38px 42px 42px;color:#fff;background:#0c0e0f url('../img/login-hardware-wall.svg') center/cover no-repeat;display:flex;flex-direction:column}.shanika-login-visual:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(7,8,9,.38) 0%,rgba(7,8,9,.22) 28%,rgba(7,8,9,.5) 64%,rgba(7,8,9,.9) 100%),linear-gradient(90deg,rgba(5,6,7,.34),rgba(5,6,7,.08))}.visual-brand{display:flex;align-items:center;gap:13px;max-width:260px;font-size:19px;line-height:1.08;letter-spacing:.025em;text-transform:uppercase}.visual-brand-mark{width:47px;height:47px;display:grid;place-items:center;flex:0 0 47px;color:#fff}.visual-brand-mark img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 8px rgba(0,0,0,.34))}.visual-brand-mark svg{width:43px;height:43px;fill:currentColor}.visual-copy{margin-top:auto;max-width:430px;padding-bottom:32px;text-shadow:0 2px 16px rgba(0,0,0,.6)}.visual-kicker{margin:0 0 10px;font-size:11px;font-weight:800;letter-spacing:.16em;color:#f0b047}.visual-copy h2{font-size:43px;line-height:1.08;margin:0 0 20px;letter-spacing:-.035em}.visual-copy h2 span{color:#efad3f}.visual-copy>p:last-child{margin:0;max-width:390px;color:#d5d7d8;font-size:16px;line-height:1.6}.visual-feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 26px}.visual-feature{display:grid;justify-items:center;text-align:center;gap:8px;padding:12px 6px;color:#f1f2f3;font-size:11px;line-height:1.25}.feature-icon{width:58px;height:58px;border:1px solid rgba(255,255,255,.18);background:rgba(15,17,19,.62);backdrop-filter:blur(7px);border-radius:14px;display:grid;place-items:center;box-shadow:inset 0 1px rgba(255,255,255,.06),0 10px 25px rgba(0,0,0,.22)}.feature-icon svg{width:29px;height:29px;fill:none;stroke:#fff;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.visual-security{display:flex;align-items:center;gap:13px;padding:15px 17px;border:1px solid rgba(255,255,255,.16);border-radius:15px;background:rgba(13,15,17,.64);backdrop-filter:blur(8px);box-shadow:inset 0 1px rgba(255,255,255,.05)}.visual-security>span{width:39px;height:39px;display:grid;place-items:center;color:#eda93a}.visual-security svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.visual-security strong,.visual-security small{display:block}.visual-security strong{font-size:12px;color:#fff;margin-bottom:2px}.visual-security small{font-size:10px;color:#bfc3c6}.shanika-login-panel{background:linear-gradient(180deg,#fff,#fefefe);display:grid;place-items:center;padding:42px 56px;min-width:0}.login-panel-inner{width:min(100%,470px);margin:auto}.login-logo-wrap{text-align:center;margin-bottom:22px}.login-main-logo{width:104px;height:104px;margin:0 auto 8px;display:grid;place-items:center;color:#111315}.login-main-logo img{width:100%;height:100%;object-fit:contain}.login-main-logo svg{width:78px;height:78px;fill:currentColor}.login-shop-name{font-size:17px;line-height:1.05;font-weight:850;text-transform:uppercase;letter-spacing:.03em;max-width:260px;margin:auto}.login-heading{text-align:center;margin-bottom:27px}.login-heading h1{margin:0;font-size:35px;line-height:1.1;letter-spacing:-.035em;color:#17191b}.login-heading p{margin:8px 0 0;color:#5e6368;font-size:14px}.shanika-login-form{display:grid;gap:8px}.shanika-login-form>label{font-size:12px;font-weight:750;color:#292d30;margin-top:4px}.auth-input-wrap{position:relative}.auth-input-wrap input{height:54px;border:1px solid #d8dadd;border-radius:11px;padding:0 52px 0 47px;font-size:14px;background:#fff;box-shadow:0 1px 1px rgba(0,0,0,.015);transition:border-color .16s,box-shadow .16s}.auth-input-wrap input::placeholder{color:#9da1a5}.auth-input-wrap input:focus{border-color:#c68a2e;box-shadow:0 0 0 3px rgba(224,157,55,.13)}.auth-input-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:21px;height:21px;color:#5f656a;pointer-events:none}.auth-input-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.password-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:39px;height:39px;border:0;background:transparent;color:#555b60;border-radius:8px;display:grid;place-items:center;padding:0}.password-eye:hover{background:#f3f4f5;color:#17191b}.password-eye svg{grid-area:1/1;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.password-eye .eye-closed{display:none}.password-eye.is-visible .eye-open{display:none}.password-eye.is-visible .eye-closed{display:block}.login-options{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:5px 0 7px}.remember-check{display:flex;align-items:center;gap:8px;font-weight:600;font-size:12px;cursor:pointer}.remember-check input{width:16px;height:16px;accent-color:#17191b}.login-help-note{font-size:11px;color:#b17820;font-weight:700}.shanika-login-button{height:51px;border:0;border-radius:9px;background:linear-gradient(180deg,#282a2c,#17191b);color:#fff;font-size:15px;font-weight:750;box-shadow:0 7px 18px rgba(17,19,21,.16);transition:transform .14s,box-shadow .14s,background .14s}.shanika-login-button:hover{background:#090a0b;box-shadow:0 9px 23px rgba(17,19,21,.22);transform:translateY(-1px)}.shanika-login-button:active{transform:translateY(0)}.access-divider{display:flex;align-items:center;gap:12px;color:#8b9094;font-size:10px;text-transform:uppercase;letter-spacing:.06em;margin:20px 0 13px}.access-divider:before,.access-divider:after{content:"";height:1px;background:#e6e7e8;flex:1}.role-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.role-pill{height:42px;border:1px solid #e0e2e4;border-radius:9px;display:flex;align-items:center;justify-content:center;gap:8px;background:#fff;font-size:12px;font-weight:700;color:#34383c}.role-pill svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.role-pill-admin{color:#a56d19}.support-box{margin-top:12px;border:1px solid #e0e2e4;border-radius:10px;padding:12px 16px;display:flex;align-items:center;justify-content:center;gap:11px;color:#2f3336;background:#fff;transition:background .15s,border-color .15s}.support-box:hover{background:#faf8f4;border-color:#d5c7b0}.support-box svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.support-box strong,.support-box small{display:block;text-align:left}.support-box strong{font-size:12px}.support-box small{font-size:10px;color:#777d82}.secure-access-note{display:flex;justify-content:center;align-items:center;gap:7px;margin:20px 0 0;text-align:center;color:#8a8f93;font-size:10px}.secure-access-note svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.login-page .alert{font-size:12px;border-radius:9px;margin-bottom:13px}

@media(max-width:980px){.shanika-login-shell{grid-template-columns:minmax(370px,.82fr) minmax(440px,1.18fr);width:min(100% - 30px,1050px)}.shanika-login-visual{padding:30px 28px}.visual-copy h2{font-size:37px}.visual-feature-grid{grid-template-columns:repeat(2,1fr)}.visual-feature:nth-child(n+3){display:none}.shanika-login-panel{padding:36px 40px}}
@media(max-width:760px){.login-page{background:#fff;display:block}.shanika-login-shell{width:100%;min-height:100svh;border:0;border-radius:0;box-shadow:none;display:block}.shanika-login-shell:after{display:none}.shanika-login-visual{display:none}.shanika-login-panel{min-height:100svh;padding:max(34px,env(safe-area-inset-top)) 22px max(28px,env(safe-area-inset-bottom));align-items:start}.login-panel-inner{width:min(100%,430px);padding-top:14px}.login-main-logo{width:102px;height:102px}.login-logo-wrap{margin-bottom:19px}.login-heading{margin-bottom:23px}.login-heading h1{font-size:30px}.auth-input-wrap input{height:52px}.shanika-login-button{height:49px}.role-strip{gap:8px}.secure-access-note{margin-top:18px}}
@media(max-width:420px){.shanika-login-panel{padding-left:18px;padding-right:18px}.login-panel-inner{padding-top:4px}.login-main-logo{width:90px;height:90px}.login-shop-name{font-size:15px}.login-heading h1{font-size:28px}.login-heading p{font-size:13px;max-width:300px;margin:7px auto 0}.login-options{align-items:flex-start}.login-help-note{text-align:right}.role-pill{font-size:11px}.support-box{padding:11px}.secure-access-note{font-size:9px}}
.visual-brand-mark img.default-login-logo{filter:invert(1) brightness(1.18) drop-shadow(0 2px 8px rgba(0,0,0,.34))}
