:root{--ink:#1c2738;--muted:#7f8a9a;--line:#e8ecf2;--paper:#fff;--canvas:#f6f8fb;--nav:#132238;--blue:#4267df;--green:#14805d;--red:#cf2838;--shadow:0 5px 24px rgba(25,43,69,.055)}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:14px/1.45 'DM Sans',sans-serif}h1,h2,h3,p{margin-top:0}h1,h2,h3,.brand{font-family:Manrope,'DM Sans',sans-serif}h1{font-size:29px;letter-spacing:-.8px;margin:4px 0 5px;font-weight:800}h2{font-size:17px;letter-spacing:-.25px;margin:0}a{color:inherit;text-decoration:none}.shell{min-height:100vh}.sidebar{width:248px;background:var(--nav);color:#d5dceb;position:fixed;inset:0 auto 0 0;padding:23px 16px;display:flex;flex-direction:column;z-index:3}.brand{display:flex;align-items:center;gap:11px;color:white;font-size:15px;font-weight:800;padding:0 8px 34px;letter-spacing:-.25px}.brand small{display:block;font:11px 'DM Sans',sans-serif;font-weight:400;color:#93a5bf;margin-top:2px;letter-spacing:.1px}.brand-mark{width:33px;height:33px;border-radius:11px;background:#e43d4d;color:#fff;display:grid;place-items:center;font:800 17px Manrope;box-shadow:0 4px 12px #08152566}.nav-label{font-size:9px;font-weight:700;color:#8192ac;letter-spacing:1.3px;padding:0 10px 9px}.nav-link{display:flex;align-items:center;gap:11px;border-radius:8px;padding:10px 11px;margin:2px 0;color:#b7c3d6;font-size:12px;transition:.15s}.nav-link:hover{background:#ffffff10;color:#fff}.nav-link.active{background:#283c58;color:#fff;font-weight:600;box-shadow:inset 2px 0 #7d9bff}.nav-link>span:first-child{width:14px;text-align:center;color:#8297b5}.category-label{margin-top:26px}.nav-dot{width:5px;height:5px;border-radius:50%;background:#7189aa;margin:0 4px}.sidebar-foot{margin-top:auto;border-top:1px solid #ffffff16;padding:16px 5px 0}.connection{display:flex;align-items:center;gap:9px;font-size:11px;color:#d8e1ef}.connection small{display:block;color:#8192ac;font-size:10px;margin-top:2px}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#2abd83;box-shadow:0 0 0 3px #2abd8320}.logout{border:0;background:none;color:#9eacc1;font:inherit;font-size:11px;margin-top:16px;padding:5px;cursor:pointer;width:100%;text-align:left}.logout span{float:right}.main{margin-left:248px;min-height:100vh}.topbar{height:62px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 35px;position:sticky;top:0;z-index:2}.crumb{font-size:10px;font-weight:700;letter-spacing:.7px;color:#718095}.crumb span{padding:0 8px;color:#c2c9d3}.top-actions{display:flex;align-items:center;gap:10px}.retailer-pill{border:1px solid var(--line);border-radius:20px;padding:5px 10px;display:flex;align-items:center;gap:6px;color:#536176;font-size:10px}.retailer-pill i,.live-label i{display:block;width:6px;height:6px;border-radius:50%;background:#d63848}.retailer-pill.coles i{background:#2861bf}.avatar{display:grid;place-items:center;margin-left:5px;border-radius:50%;width:29px;height:29px;background:#eef1f7;color:#455671;font-size:9px;font-weight:700}.content{padding:28px 35px 60px;max-width:1480px;margin:auto}.demo-banner{display:flex;align-items:center;gap:12px;border:1px solid #f1dfb6;background:#fffaf0;color:#78632f;padding:10px 14px;border-radius:8px;font-size:11px;margin-bottom:22px}.demo-banner strong{font-size:9px;letter-spacing:.7px;color:#9b741e;background:#ffefc6;padding:4px 7px;border-radius:4px}.flash{padding:10px 13px;border-radius:7px;margin-bottom:12px;font-size:12px}.flash.error{background:#fff0f0;color:#ad2835;border:1px solid #f4d3d5}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:4px 0 22px}.page-heading p{color:var(--muted);margin:0;font-size:12px}.eyebrow{font-size:9px;color:#8390a0;letter-spacing:1.05px;font-weight:700}.updated-chip{background:#fff;border:1px solid var(--line);border-radius:7px;padding:9px 11px;display:flex;align-items:center;gap:8px;color:#6e7b8c;font-size:10px;white-space:nowrap}.updated-chip b{color:#344359;font-weight:600}.retailer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.retailer-card,.category-card,.comparison-card,.product-price-card,.stats-panel,.table-wrap{background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}.retailer-card{padding:17px 19px 0;overflow:hidden}.retailer-card-head{display:flex;align-items:center;gap:10px}.retailer-card-head h2{font-size:14px}.retailer-logo{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;font-weight:800;font:800 15px Manrope}.w-logo{background:#fff0f0;color:#d02f41}.c-logo{background:#edf4ff;color:#285eb3}.live-label{display:flex;align-items:center;gap:5px;color:#8a95a4;font-size:9px}.live-label i{background:#b5c0ce}.card-menu{margin-left:auto;color:#9aa5b3;letter-spacing:2px}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);padding:21px 0 17px}.metric{border-right:1px solid var(--line);padding-left:13px}.metric:first-child{padding-left:0}.metric:last-child{border:0}.metric strong{display:block;font:800 23px Manrope;letter-spacing:-1px;color:#22324a}.metric span{font-size:10px;color:#8994a2}.card-foot{border-top:1px solid var(--line);margin:0 -19px;padding:10px 19px;display:flex;justify-content:space-between;color:#8994a2;font-size:9px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin:30px 0 13px}.section-heading h2{margin-top:4px}.muted{font-size:10px;color:#929cab}.category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.category-card{padding:13px;display:flex;align-items:center;gap:10px;transition:.16s}.category-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px #1b2d4214;border-color:#d8e0ec}.category-icon{width:31px;height:31px;flex:none;background:#f0f3fa;border-radius:9px;display:grid;place-items:center;font:700 13px Manrope;color:#667793}.category-card strong{display:block;font-size:11px}.category-card small{display:block;font-size:9px;color:#929cab;margin-top:3px}.arrow{margin-left:auto;color:#a9b2bf}.table-wrap{overflow:auto;margin-top:13px}table{width:100%;border-collapse:collapse;min-width:760px}th{text-align:left;padding:11px 14px;background:#fafbfc;color:#8691a0;font-size:9px;text-transform:uppercase;letter-spacing:.6px;font-weight:700}td{padding:11px 14px;border-top:1px solid #eef1f5;font-size:10px;color:#536176}tr:hover td{background:#fcfdff}.product-link{font-size:11px;font-weight:600;color:#2a3b54}.product-link small{display:block;font-size:9px;font-weight:400;color:#99a2ae;margin-top:3px}.text-retailer{font-weight:600;font-size:10px}.text-woolies{color:#c83243}.text-coles{color:#2c62b8}.mono{font:10px ui-monospace,SFMono-Regular,Consolas,monospace;color:#8791a0}.price-cell{font-weight:700;color:#24344b}.availability{display:inline-flex;align-items:center;gap:5px;border-radius:12px;padding:4px 7px;font-size:9px;white-space:nowrap}.availability:before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor}.in-stock{background:#eaf7f1;color:#13805b}.out-stock{background:#fff0ef;color:#bc4550}.unknown-stock{background:#f1f3f6;color:#7e8998}.filter-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:-5px 0 14px}.search-box{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:8px 11px;color:#8290a2;width:min(350px,100%)}.search-box input{border:0;outline:0;width:100%;font:11px 'DM Sans';color:var(--ink)}.comparison-list{display:grid;gap:14px}.comparison-card{padding:16px}.comparison-title{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.comparison-title h2{font-size:14px}.comparison-title>div>span{display:block;color:#929cab;font-size:10px;margin-top:4px}.match-tag{border-radius:14px;padding:4px 8px;background:#edf7f2;color:#18805c;font-size:9px}.offer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.offer{border:1px solid #edf0f5;border-radius:8px;padding:13px}.offer-woolies{background:linear-gradient(180deg,#fffafa,#fff 50%);border-top:2px solid #d53745}.offer-coles{background:linear-gradient(180deg,#f8fbff,#fff 50%);border-top:2px solid #2a62b9}.offer-head{display:flex;justify-content:space-between;align-items:center}.offer-price{font:800 27px Manrope;letter-spacing:-.7px;margin:13px 0 2px;color:#1f2d41}.offer-price small,.product-current-price small{font:500 10px 'DM Sans';color:#8792a0;letter-spacing:0;margin-left:5px}.sku-line{font-size:9px;color:#929cab}.price-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:14px 0;padding:11px 0;border-top:1px solid #edf0f5;border-bottom:1px solid #edf0f5}.price-stats span,.stat-grid span{display:block;color:#929cab;font-size:9px}.price-stats b{display:block;color:#34445a;font-size:11px;margin-top:3px}.details-link{color:#4866ce;font-size:10px;font-weight:600;display:inline-flex;gap:6px;align-items:center}.details-link:hover{color:#2849bb}.missing-offer{padding:20px 0;color:#9aa4b1;font-size:10px}.back-link{font-size:10px;color:#526ed0;white-space:nowrap}.product-overview{display:grid;grid-template-columns:.75fr 1.25fr;gap:14px}.product-price-card,.stats-panel{padding:18px}.product-current-price{font:800 36px Manrope;letter-spacing:-1.6px;margin:7px 0 9px}.product-sku{border-top:1px solid var(--line);padding-top:11px;margin-top:13px;color:#929cab;font-size:9px;line-height:1.8}.stats-panel>.eyebrow{margin-bottom:18px}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.stat-grid b{display:block;font:700 17px Manrope;color:#2d3c50;margin-top:4px}.positive{color:#15805e;font-weight:600}.negative{color:#c6464e;font-weight:600}.empty-state{background:#fff;border:1px dashed #dce3ec;padding:32px;border-radius:10px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:9px;color:#98a2af;font-size:11px}.empty-state strong{color:#3b4a60;font:700 15px Manrope}.large-empty{margin-top:60px;padding:56px}.empty-state .details-link{margin-top:7px}.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 15% 15%,#e7edf9 0,#f6f8fb 42%,#f2f5fa 100%)}.login-card{width:min(390px,calc(100vw - 32px));background:#fff;border:1px solid var(--line);border-radius:14px;padding:27px 30px 24px;box-shadow:0 18px 55px #273a5518}.login-brand{padding:0 0 31px;color:#1e2b3d}.login-brand small{color:#8c97a5}.login-eyebrow{color:#6278c4;font-size:9px;font-weight:700;letter-spacing:1px}.login-card h1{font-size:24px;margin-top:8px}.login-subtitle{color:#8792a0;font-size:11px;margin-bottom:22px}.login-form label{font-size:10px;font-weight:600;color:#46556a}.login-form input{display:block;width:100%;margin:7px 0 14px;padding:11px 12px;border:1px solid #dfe5ed;border-radius:7px;font:12px 'DM Sans';outline-color:#8099ed}.primary-button{width:100%;background:#315bd1;color:#fff;border:0;border-radius:7px;padding:11px 13px;font:600 11px 'DM Sans';cursor:pointer;box-shadow:0 4px 10px #315bd133}.primary-button:hover{background:#244abb}.primary-button span{float:right}.login-note{border-top:1px solid var(--line);margin-top:22px;padding-top:15px;display:flex;align-items:center;gap:8px;color:#909baa;font-size:9px}
@media(max-width:1050px){.sidebar{width:215px}.main{margin-left:215px}.content{padding:25px 23px}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.sidebar{position:static;width:auto;height:auto;padding:13px 14px;display:block}.brand{padding:0 4px 10px}.sidebar .nav-label,.sidebar .nav-link,.sidebar-foot{display:none}.main{margin-left:0}.topbar{padding:0 16px;height:52px}.top-actions .retailer-pill{display:none}.content{padding:20px 14px 40px}.retailer-grid{grid-template-columns:1fr}.category-grid{grid-template-columns:1fr 1fr}.page-heading{align-items:flex-start;flex-direction:column}.offer-grid{grid-template-columns:1fr}.product-overview{grid-template-columns:1fr}.filter-row{align-items:flex-start;flex-direction:column}.comparison-card{padding:13px}.crumb{font-size:9px}}
@media(max-width:420px){.category-grid{grid-template-columns:1fr}.metric strong{font-size:19px}.metric{padding-left:8px}.metric span{font-size:9px}}

/* Home button back to the joeycloud front page. Every app in the ecosystem
   carries one in its top bar so there is always a way back to the front page.
   Defined here rather than inline so the standalone login card gets it too. */
.home-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border:1px solid #e2e7ef;border-radius:6px;background:#f7f9fc;color:#3d5fa8;font-weight:700;font-size:10px;letter-spacing:.2px;text-decoration:none}
.home-btn:hover{background:#eef3fb;border-color:#c9d6ea;text-decoration:none}
.home-mark{font-size:11px}
.login-card .home-btn{margin-bottom:16px}
