@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
*{box-sizing:border-box}body{margin:0;font-family:var(--vlow-font);color:var(--navy);background:var(--bg);font-size:14px;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--vlow-white);border-radius:var(--vlow-radius-control);padding:12px 16px;min-height:46px;color:var(--navy);font-weight:500;transition:background .15s,border-color .15s}button:hover{border-color:var(--teal);background:var(--vlow-action-soft)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--vlow-action-border);outline-offset:3px}input,select{border:1px solid var(--line);padding:13px;border-radius:var(--vlow-radius-control);background:white;color:var(--navy);min-width:0;min-height:46px}input::placeholder{color:var(--muted)}h1{font-size:29px;letter-spacing:-.8px;margin:0 0 7px;line-height:1.2}h2{font-size:20px;letter-spacing:-.4px;margin:0 0 7px}h3{margin:0;font-size:15px;line-height:1.4}p{color:var(--vlow-text-secondary);line-height:1.6}small{color:var(--muted);font-size:12px}strong,.price,.total,td{font-variant-numeric:tabular-nums}.icon{display:inline-block;width:20px;height:20px;vertical-align:middle;flex-shrink:0}button .icon{margin-right:7px}.shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.sidebar{background:white;border-right:1px solid var(--line);padding:20px 16px;display:flex;flex-direction:column;gap:27px;position:sticky;top:0;height:100vh}.brand-logo{display:inline-flex;box-sizing:content-box;align-items:center;width:153px;padding:4px 10px;background:transparent;flex-shrink:0;line-height:0}.brand-logo img{display:block;width:100%;height:auto;object-fit:contain}.brand-lockup{display:flex;flex-direction:column;align-items:center;gap:0}.brand-lockup .tag{font-size:9px;letter-spacing:2.5px;color:var(--muted);margin-top:0}.nav{display:grid;gap:5px}.nav button{text-align:left;border:0;color:var(--vlow-text-secondary);display:flex;gap:13px;align-items:center;padding:13px 14px;border-radius:9px}.nav button .icon{margin:0;width:21px;height:21px}.nav button.active{background:var(--vlow-action-soft);color:var(--teal);font-weight:700;box-shadow:inset 3px 0 0 var(--teal)}.nav button:hover{color:var(--teal)}.navtext{font-size:13px}.label{font-size:10px;letter-spacing:1.6px;color:var(--muted);font-weight:600;padding:0 14px 10px}.outlet{margin-top:auto;border-top:1px solid var(--line);padding-top:20px}.avatar{display:inline-grid;place-items:center;border-radius:50%;background:var(--vlow-action-soft);color:var(--teal);width:37px;height:37px;font-weight:bold;flex-shrink:0}.logout-button{padding:9px;min-height:42px}.logout-button .icon{margin:0;width:18px}.top{min-height:83px;background:white;border-bottom:1px solid var(--line);padding:16px 30px;display:flex;align-items:center;justify-content:space-between;gap:12px}.outlet-name{display:flex;align-items:center;gap:12px}.outlet-icon{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:11px;color:var(--teal)}.outlet-name b{font-size:14px;display:block}.outlet-name small{display:block;font-size:11px;margin-top:3px}.topright{display:flex;gap:18px;align-items:center}.mode-button{font-size:12px}.mode-button .icon{width:17px;height:17px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;border-radius:6px;padding:7px 10px;background:var(--vlow-success-soft);color:var(--vlow-success);font-weight:600;white-space:nowrap}.badge-warning{background:var(--vlow-warning-soft);color:var(--vlow-warning)}.workspace{padding:30px;max-width:1900px;margin:auto}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;gap:15px}.heading p{margin:0;font-size:13px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700;color:var(--teal);display:block;margin-bottom:9px}.primary{background:var(--teal);color:white;border-color:var(--teal)}.primary:hover{background:var(--vlow-action-hover);border-color:var(--vlow-action-hover);color:white}.pos{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px}.toolbar{display:flex;gap:10px;margin-bottom:18px}.toolbar input{flex:1}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.tabs button{font-size:12px;min-height:43px;padding:10px 16px;border-color:var(--line);background:white}.tabs button.active{background:var(--teal);border-color:var(--teal);color:white}.products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.product{padding:0;text-align:left;overflow:hidden;position:relative;min-height:235px;border-radius:var(--vlow-radius);display:flex;flex-direction:column}.product img{width:100%;height:133px;object-fit:cover;background:var(--vlow-action-soft)}.product .info{padding:15px;width:100%;flex:1}.product h3{margin-bottom:5px;padding-right:3px}.product .price{padding-right:35px}.price{color:var(--teal);font-weight:700;margin-top:13px}.add{position:absolute;right:12px;bottom:12px;background:var(--vlow-action-soft);color:var(--teal);border-radius:8px;width:32px;height:32px;display:grid;place-items:center;font-size:20px}.stocklabel{position:absolute;top:10px;left:10px;background:#fffffff2;border-radius:5px;padding:5px 8px;font-size:10px;font-weight:500}.order{border:1px solid var(--line);border-radius:var(--vlow-radius);background:white;display:flex;flex-direction:column;align-self:start;min-height:640px;overflow:hidden;border-top:3px solid var(--teal)}.orderhead{padding:22px;border-bottom:1px solid var(--line)}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.orderhead .row h2{font-size:18px}.orderhead .tabs{margin:18px 0 12px}.orderhead select,.orderhead input{width:100%;margin-top:8px}.orderitems{padding:5px 20px;flex:1;min-height:170px}.item{padding:17px 0;border-bottom:1px dashed var(--line)}.item small{display:block;margin:5px 0}.item h3{font-size:14px}.qty{display:flex;align-items:center;gap:12px}.qty button{padding:2px 10px;min-height:36px;min-width:36px;border-radius:7px}.totals{padding:20px;background:white;border-top:1px solid var(--line)}.totals .row{margin-bottom:13px}.total{font-size:21px;font-weight:700;padding-top:17px;border-top:1px dashed var(--line)}.total span:last-child{color:var(--teal)}.totals button{width:100%;margin-top:9px;min-height:49px}.empty{text-align:center;padding:44px 16px;color:var(--vlow-text-secondary);line-height:1.6}.empty b{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 16px;border-radius:15px;background:var(--vlow-action-soft);color:var(--teal)}.empty b .icon{width:26px;height:26px}.products>.empty{grid-column:1/-1;background:white;border:1px dashed var(--vlow-action-border);border-radius:var(--vlow-radius);padding:65px 20px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.card{background:white;border:1px solid var(--line);border-radius:var(--vlow-radius);padding:23px}.card strong{font-size:27px;display:block;margin:15px 0 9px;letter-spacing:-.8px}.cards>.card{border-top:3px solid var(--vlow-action-border)}.cards>.card:first-child{border-top-color:var(--teal)}.cards>.card:first-child strong{color:var(--teal)}.section{background:white;padding:24px;border:1px solid var(--line);border-radius:var(--vlow-radius);margin-bottom:20px;overflow:auto}.section>p{margin-top:6px;font-size:13px}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}td,th{padding:16px 12px;border-bottom:1px solid var(--line)}td{font-size:13px}td small{line-height:1.8}th{font-size:10px;letter-spacing:1px;color:var(--vlow-text-secondary);background:var(--vlow-canvas);font-weight:700}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcfd}.tables{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.table{min-height:170px;text-align:center;border:1px solid var(--line);border-radius:var(--vlow-radius);background:white;padding:25px}.table.busy{background:var(--vlow-action-soft);border-color:var(--vlow-action-border)}.table.busy strong,.table.busy small{color:var(--teal)}.table strong{display:block;font-size:30px;margin:14px;font-weight:600}.chart{height:220px;display:flex;align-items:end;gap:18px;border-bottom:1px solid var(--line);padding:20px 10px 0}.bar{flex:1;background:var(--vlow-action-border);border-radius:5px 5px 0 0;position:relative;min-height:3px}.bar:nth-last-child(2){background:var(--teal)}.bar small{position:absolute;bottom:-25px;left:0;font-size:10px}.notice{background:var(--vlow-action-soft);border:1px solid var(--vlow-action-border);padding:13px 16px;border-radius:10px;color:var(--vlow-text-secondary);font-size:12px;line-height:1.65;margin-bottom:20px}.section .notice{margin-top:16px}dialog{border:1px solid var(--line);border-radius:18px;padding:28px;width:480px;max-width:94vw;max-height:90vh;color:var(--navy);box-shadow:0 25px 100px #102a4326}dialog::backdrop{background:#102a4366}.dialog-brand{display:flex;align-items:center;justify-content:space-between;margin:-8px -5px 20px;padding-bottom:12px;border-bottom:1px solid var(--line)}.dialog-brand .brand-logo{width:122px;padding:0 5px}.dialog-brand small{font-size:9px;letter-spacing:1.5px;margin-left:auto;margin-right:14px}dialog input,dialog select{width:100%;margin:8px 0 17px}dialog label{font-size:12px;font-weight:600}dialog .primary{width:100%;margin-top:10px}dialog .card{background:var(--vlow-action-soft);border-color:var(--vlow-action-border);margin:20px 0}dialog .card strong{color:var(--teal);font-size:32px}.close{min-height:36px;width:36px;padding:3px 9px;font-size:22px;border-color:transparent}.success-mark{display:grid;place-items:center;margin:5px auto 20px;width:64px;height:64px;border-radius:50%;background:var(--vlow-action-soft);color:var(--teal)}.success-mark .icon{width:30px;height:30px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--navy);color:white;padding:15px 24px;border-radius:10px;display:none;z-index:100;max-width:90vw;box-shadow:0 8px 32px #102a4326}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:white}.loginhero{background:var(--vlow-charcoal);padding:48px 58px;display:flex;flex-direction:column;justify-content:space-between;gap:55px;color:white;position:relative;overflow:hidden}.loginhero .brand-logo{width:204px;border-radius:0;padding:0;background:transparent;filter:brightness(0) invert(1)}.loginhero h1{font-size:clamp(40px,4.4vw,66px);max-width:540px;letter-spacing:-2px;line-height:1.08;font-weight:600;margin:24px 0}.loginhero p{color:#d0dce4;max-width:360px;font-size:16px;line-height:1.7}.loginhero .eyebrow{color:white;letter-spacing:2px;display:inline-block;padding:9px 13px;background:var(--teal);border-radius:6px}.loginhero footer{font-size:11px;color:#c1cdd5;letter-spacing:1px;border-top:1px solid #ffffff24;padding-top:22px;display:flex;justify-content:space-between;gap:12px}.loginform{display:grid;place-items:center;padding:38px}.loginbox{width:360px;max-width:100%}.loginbox h1{font-size:31px}.loginbox>p{margin-bottom:32px}.loginbox label{display:block;font-size:12px;font-weight:600;margin-bottom:8px}.loginbox input,.loginbox select,.loginbox button{width:100%;margin-bottom:20px;min-height:50px}.loginbox .notice{font-size:11px;margin-top:6px}.loginbox .brand-logo{display:none}.split{display:grid;grid-template-columns:1.6fr 1fr;gap:20px}.workspace-footer{border-top:1px solid var(--line);margin-top:34px;padding-top:17px;display:flex;justify-content:space-between;gap:15px;font-size:10px;color:var(--muted)}.workspace-footer b{color:var(--teal);letter-spacing:1.2px;font-size:10px}.kiosk .sidebar{display:none}.kiosk{grid-template-columns:minmax(0,1fr)}.kiosk .products{grid-template-columns:repeat(4,1fr)}.header-logo{display:none}.kiosk .header-logo{display:inline-flex;width:100px;padding:8px;margin-right:12px;border-right:1px solid var(--line);padding-right:20px}.kiosk .outlet-name{gap:4px}.kiosk .outlet-icon{display:none}.kiosk .workspace{padding:30px 38px}.kiosk .pos{grid-template-columns:minmax(0,1fr) 380px}.kiosk .products .product{min-height:245px}.kiosk .order button{min-height:52px}.kiosk .order .qty button{min-height:44px;min-width:44px}
@media(min-width:1600px){.products{grid-template-columns:repeat(4,1fr)}.product img{height:170px}}
@media(max-width:1150px){.shell{grid-template-columns:90px minmax(0,1fr)}.sidebar{padding:20px 8px}.sidebar .brand-logo{width:68px;padding:3px}.sidebar .tag{display:none}.nav button{justify-content:center;padding:14px}.nav .navtext,.sidebar .label,.outlet .details{display:none}.outlet .row{flex-direction:column}.workspace{padding:25px 20px}.top{padding:15px 20px}.pos{grid-template-columns:minmax(0,1fr) 315px;gap:18px}.products,.kiosk .products{grid-template-columns:repeat(2,minmax(0,1fr))}.cards{grid-template-columns:repeat(2,1fr)}.loginhero{padding:36px}.kiosk{grid-template-columns:minmax(0,1fr)}.kiosk .pos{grid-template-columns:minmax(0,1fr) 350px}.kiosk .workspace{padding:25px 20px}}
@media(max-width:760px){.shell{display:block}.sidebar{position:relative;width:100%;height:auto;padding:9px 10px;gap:12px;overflow:auto}.sidebar>.brand-lockup,.sidebar>.outlet{display:none}.nav{display:flex;gap:5px}.nav button{padding:9px 13px;display:block;white-space:nowrap;font-size:11px;min-height:48px}.nav .navtext{display:block;font-size:11px}.nav .icon{display:none}.top{min-height:72px;gap:8px;padding:12px 16px}.topright{gap:8px}.topright>small,.top .badge{display:none}.mode-button{padding:9px 11px;min-height:42px}.mode-button .icon{display:none}.outlet-name{gap:0}.outlet-icon{display:none}.header-logo{display:inline-flex;width:76px;padding:7px 10px 7px 0;margin-right:10px;border-right:1px solid var(--line)}.outlet-name b{font-size:12px}.workspace,.kiosk .workspace{padding:23px 15px}.pos,.kiosk .pos{grid-template-columns:minmax(0,1fr)}.order{min-height:400px}.products{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.product img{height:130px}.product .info{padding:13px}.product h3{font-size:14px}.heading{align-items:start}.heading h1{font-size:25px}.heading button{padding:10px;white-space:nowrap;font-size:11px}.heading button .icon{display:none}.heading p{font-size:12px;max-width:260px}.eyebrow{font-size:9px;letter-spacing:1.2px}.tables{grid-template-columns:repeat(2,1fr)}.split,.login{grid-template-columns:1fr}.loginhero{display:none}.loginform{padding:36px 25px}.loginbox .brand-logo{display:inline-flex;width:180px;padding:0;margin-bottom:22px}.loginbox>small.eyebrow{margin-top:6px}.kiosk .sidebar{display:flex}.cards{gap:12px}.cards .card{padding:17px}.card strong{font-size:23px}.section{padding:19px}.workspace-footer{font-size:9px}.workspace-footer span{max-width:50%;text-align:right}.dialog-brand small{display:none}.kiosk .header-logo{width:76px;margin-right:10px;padding-right:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* VLOW operations & back office */
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 18px;border:1px solid var(--line);border-radius:10px;text-decoration:none;font-size:13px;font-weight:600;color:var(--navy);background:white}.button.primary{background:var(--teal);color:white}.access-page{max-width:480px;margin:12vh auto;padding:32px}.access-page .brand-logo{width:180px;margin-bottom:36px}.access-page .button{width:100%;margin-top:16px}.space{margin-bottom:22px}.table-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.table-actions button{flex:1}.table strong{font-size:23px}.table.inactive{opacity:.65}.wide{width:100%;margin-top:12px}.nav{overflow-y:auto;min-height:0}.sidebar{height:100dvh;position:sticky;top:0}.printer-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.printer-grid .card h2{margin:12px 0}.printer-status{font-size:12px;color:var(--muted);margin:12px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.section{overflow-x:auto}.notice a,a{color:var(--teal)}.print-state{font-size:12px}.printer-grid .card input,.printer-grid .card select{width:100%}.station{display:flex;gap:16px;align-items:center;margin-bottom:24px}.station input{width:22px;height:22px}.badge-error{background:#fce8e6;color:#a72e24}@media(max-width:850px){.printer-grid{grid-template-columns:1fr}.heading{gap:15px;flex-wrap:wrap}.topright>small{display:none}.cards{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.access-page{margin:5vh auto}.tables{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.sidebar{height:auto;position:relative;top:auto}.nav{overflow-x:auto;overflow-y:hidden}.customer-main .row{flex-wrap:wrap}}
.station label,.station small{display:block}.station small{margin-top:6px;line-height:1.6}.printer-grid label{display:block;font-size:12px;font-weight:600;margin:17px 0 7px}.printer-grid .form-grid{gap:14px}.printer-grid .table-actions button{font-size:12px}.printer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.notice{overflow-wrap:anywhere}@media(max-width:850px){.printer-grid{grid-template-columns:minmax(0,1fr)}}
/* Vlowpoint software endorsement, Vlow hardware parent */
.brand-lockup .brand-logo{width:170px}.loginhero footer{line-height:1.7}.workspace-footer{flex-wrap:wrap}.workspace-footer b{letter-spacing:.6px}@media(max-width:1150px){.sidebar .brand-logo{width:72px}}@media(max-width:760px){.header-logo{width:100px}.workspace-footer b{font-size:9px}}
