:root{--petrol: #0b4f6c;--petrol-700: #0a3f57;--petrol-900: #072a3a;--teal: #127475;--teal-50: #e5f3f2;--coral: #ee6c4d;--coral-600: #d9573a;--coral-50: #fdeee9;--sand: #f7f3ec;--sand-200: #efe8dc;--white: #ffffff;--ink: #17262e;--muted: #5b6b73;--line: #e3dccf;--gold: #e2a72e;--ok: #1f9d74;--ok-50: #e3f5ee;--warn: #c98a12;--warn-50: #fbf2dc;--bad: #c8423a;--bad-50: #fbe7e5;--surface: #ffffff;--surface-2: #fbf9f5;--surface-hover: #fcfaf6;--input-bg: #ffffff;--line-soft: #f0ebe2;--link: var(--petrol);--teal-text: var(--teal);--warn-text: #8a5d05;--danger-line: #f1c4bf;--header-bg: var(--petrol);--btn-bg: var(--petrol);--btn-fg: #ffffff;--online: #12805c;--offline: #b3261e;--attention: #b97a0a;--neutral-conn: #55646c;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 2px rgba(7, 42, 58, .06), 0 6px 22px rgba(7, 42, 58, .07);--shadow-lg: 0 18px 50px rgba(7, 42, 58, .16);color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--sand)}:root[data-theme=dark]{--petrol-900: #061a24;--sand: #0d181e;--sand-200: #1d2d35;--surface: #14232b;--surface-2: #192a33;--surface-hover: #1b2e37;--input-bg: #0f1d24;--ink: #e4edef;--muted: #94a9b0;--line: #2a3e48;--line-soft: #22353e;--link: #6fc4d6;--teal-text: #5cc8c3;--teal-50: rgba(18, 116, 117, .24);--coral-50: rgba(238, 108, 77, .16);--ok: #4fc99b;--ok-50: rgba(31, 157, 116, .2);--warn-text: #e9b84f;--warn-50: rgba(201, 138, 18, .2);--bad: #f08079;--bad-50: rgba(200, 66, 58, .22);--danger-line: rgba(240, 128, 121, .4);--header-bg: #0a3a50;--btn-bg: #0f6a8d;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 22px rgba(0, 0, 0, .25);--shadow-lg: 0 18px 50px rgba(0, 0, 0, .45);color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--sand);color:var(--ink);font-size:15px;-webkit-font-smoothing:antialiased}a{color:var(--link)}a:hover{text-decoration:underline}h1{font-size:1.4rem;margin:0 0 12px}h2{font-size:1.15rem;margin:0 0 10px}h3{margin:0 0 8px}h4{margin:14px 0 6px}hr{border:0;border-top:1px dashed var(--line)}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:ui-monospace,Menlo,Consolas,monospace}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.grow{flex:1;min-width:0}.stack{display:flex;flex-direction:column;gap:12px}.grid{display:grid;gap:12px}.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.right{text-align:right}.topbar{background:var(--header-bg);color:#fff;display:flex;align-items:center;gap:16px;padding:8px 16px;flex-wrap:wrap;position:sticky;top:0;z-index:20}.topbar .brand{font-weight:800;font-size:1.15rem;letter-spacing:.01em}.topbar .brand small{display:block;font-weight:500;font-size:.72rem;opacity:.8}.topbar .who{margin-left:auto;text-align:right;font-size:.85rem;display:flex;align-items:center;gap:12px}.topbar .who a{color:#fff}.nav{background:var(--surface);border-bottom:1px solid var(--line);display:flex;gap:2px;padding:0 12px;overflow-x:auto}.nav a{padding:12px 14px;text-decoration:none;color:var(--ink);font-weight:600;border-bottom:3px solid transparent;white-space:nowrap}.nav a:hover{color:var(--link)}.nav a.active{border-color:var(--coral);color:var(--link)}.page{padding:16px;max-width:1400px;margin:0 auto}.theme-btn{border:0;border-radius:999px;padding:7px 11px;cursor:pointer;color:#fff;background:#ffffff24;font:inherit;font-size:1rem;line-height:1}.theme-btn:hover{background:#ffffff42}.conn{display:flex;align-items:center;gap:10px;border:0;border-radius:10px;padding:7px 14px;cursor:pointer;color:#fff;text-align:left;font:inherit;min-width:250px}.conn b{display:block;font-size:1.05rem;letter-spacing:.06em}.conn small{display:block;font-size:.74rem;opacity:.92}.conn .dot{width:14px;height:14px;border-radius:50%;background:#fff;flex:none}.conn-online{background:var(--online)}.conn-online .dot{box-shadow:0 0 0 4px #ffffff4d;animation:pulse 2s infinite}.conn-offline{background:var(--offline)}.conn-offline .dot{border-radius:3px}.conn-warn{background:var(--attention)}.conn-unknown{background:var(--neutral-conn)}@keyframes pulse{50%{box-shadow:0 0 0 7px #ffffff14}}.btn{border:1.5px solid var(--btn-bg);background:var(--btn-bg);color:var(--btn-fg);border-radius:var(--radius-sm);padding:9px 16px;font:inherit;font-weight:600;cursor:pointer}.btn:hover:not(:disabled){filter:brightness(1.1);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}.btn-ghost:hover:not(:disabled){border-color:var(--link);color:var(--link);filter:none}.btn-danger{background:var(--bad-50);color:var(--bad);border-color:var(--danger-line)}.btn-danger:hover:not(:disabled){filter:none;border-color:var(--bad)}.btn-accent{background:var(--coral);border-color:var(--coral);color:#fff;box-shadow:0 6px 16px #ee6c4d47}.btn-accent:hover:not(:disabled){background:var(--coral-600);border-color:var(--coral-600);filter:none}.btn-sm{padding:5px 10px;font-size:.85rem}.btn-block{width:100%;padding:14px;font-size:1.05rem}.input,select,textarea{border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:8px 10px;font:inherit;background:var(--input-bg);color:var(--ink);max-width:100%}.input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}.input:focus,select:focus,textarea:focus{outline:2px solid var(--teal);border-color:transparent}.input:disabled,select:disabled{opacity:.6}label.f{display:flex;flex-direction:column;gap:4px;font-size:.85rem;font-weight:600}label.f .input,label.f select{font-weight:400}.alert{border-radius:var(--radius-sm);padding:10px 14px}.alert-error{background:var(--bad-50);color:var(--bad)}.alert-warn{background:var(--warn-50);color:var(--warn-text)}.alert-ok{background:var(--ok-50);color:var(--ok)}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.78rem;font-weight:700;background:var(--sand-200);color:var(--muted)}.b-ok{background:var(--ok-50);color:var(--ok)}.b-bad{background:var(--bad-50);color:var(--bad)}.b-warn{background:var(--warn-50);color:var(--warn-text)}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tabs button{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 14px;font:inherit;font-weight:600;cursor:pointer}.tabs button:hover{border-color:var(--link)}.tabs button.on{background:var(--btn-bg);border-color:var(--btn-bg);color:#fff}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.tile .v{font-size:1.5rem;font-weight:800;color:var(--link)}.tile .k{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.tile-ok .v{color:var(--ok)}.tile-bad .v{color:var(--bad)}.tile-warn .v{color:var(--warn-text)}table.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line)}.table td{padding:8px 10px;border-bottom:1px solid var(--line-soft);vertical-align:middle}.table tr:hover td{background:var(--surface-hover)}.table-wrap{overflow-x:auto}.empty{padding:26px;text-align:center;color:var(--muted)}.spinner{width:28px;height:28px;border:3px solid var(--line);border-top-color:var(--link);border-radius:50%;animation:spin .8s linear infinite;margin:30px auto}@keyframes spin{to{transform:rotate(360deg)}}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#06141c8c;display:flex;align-items:flex-start;justify-content:center;padding:5vh 12px;z-index:50;overflow-y:auto}.modal{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:18px;width:100%;max-width:520px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-lg)}.modal.wide{max-width:860px}.bars{display:flex;align-items:flex-end;gap:3px;height:80px}.bars div{flex:1;background:var(--teal);min-width:3px;border-radius:2px 2px 0 0}.till{display:grid;grid-template-columns:1fr 400px;gap:14px;align-items:start}@media (max-width: 900px){.till{grid-template-columns:1fr}}.items{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.item{text-align:left;background:var(--surface);color:var(--ink);border:1.5px solid var(--line);border-radius:var(--radius);padding:12px;cursor:pointer;font:inherit}.item:hover:not(:disabled){border-color:var(--teal)}.item:disabled{opacity:.5;cursor:not-allowed}.item b{display:block;margin-bottom:4px}.cart-line{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line-soft)}.total{font-size:1.6rem;font-weight:800}.qty{display:flex;align-items:center;gap:6px}.qty button{width:28px;height:28px;border-radius:6px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font-weight:800}.receipt{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85rem}.receipt .line{display:flex;justify-content:space-between;gap:10px}.login{max-width:380px;margin:8vh auto}.themes{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;max-width:520px}.themes button{text-align:left;border:2px solid var(--line);background:var(--surface);color:var(--ink);border-radius:var(--radius);padding:10px;cursor:pointer;font:inherit}.themes button.on{border-color:var(--coral)}.themes .sw{display:flex;height:34px;border-radius:8px;overflow:hidden;margin-bottom:8px;border:1px solid var(--line)}@media print{:root,:root[data-theme=dark]{--ink: #000;--surface: #fff;--line: #999;color-scheme:light}body{background:#fff;color:#000}body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{position:absolute;left:0;top:0;width:80mm;background:#fff;color:#000}}.welcome{position:relative;min-height:calc(100vh - 62px);overflow:hidden;background:var(--petrol-900);display:grid;place-items:center;padding:28px 16px}.mosaic{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;gap:6px;padding:6px;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr)}.mosaic figure{margin:0;overflow:hidden;border-radius:12px;opacity:0;animation:rise .7s ease-out forwards}.mosaic img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.05);animation:drift 26s ease-in-out infinite alternate}.mosaic figure:nth-child(2n) img{animation-direction:alternate-reverse}.veil{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 60% 70% at 50% 50%,#061a24c7,#061a2461 70%,#061a2438),linear-gradient(135deg,#0b4f6c73,#1274751f 50%,#ee6c4d33)}.center{position:relative;width:100%;max-width:440px;display:flex;flex-direction:column;align-items:center;gap:14px;color:#fff;text-align:center}.hero-brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:1.6rem;letter-spacing:.02em;text-shadow:0 2px 14px rgba(0,0,0,.5)}.hero-line{margin:0 0 4px;font-size:clamp(1rem,2vw,1.2rem);font-weight:600;opacity:.95;text-shadow:0 2px 14px rgba(0,0,0,.55)}.signin-card{width:100%;text-align:left;background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);border:1px solid color-mix(in srgb,var(--line) 70%,transparent);border-radius:20px;padding:28px 26px;box-shadow:0 30px 80px #0000008c,0 0 0 1px #ffffff0f;color:var(--ink);animation:float-in .7s cubic-bezier(.2,.8,.2,1) both}.signin-card h2{font-size:1.6rem;margin:0 0 2px}.input.big{padding:12px 14px;font-size:1.05rem;width:100%}.pw{position:relative;display:block}.pw .input{padding-right:46px}.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;cursor:pointer;font-size:1.1rem;padding:6px 8px;border-radius:8px}.pw-toggle:hover{background:var(--sand-200)}.pills{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.pills li{display:inline-flex;gap:6px;align-items:center;padding:6px 12px;border-radius:999px;font-size:.8rem;font-weight:600;background:#ffffff24;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.18)}.credits-link{opacity:.85;text-shadow:0 1px 6px rgba(0,0,0,.6)}.credits-link a{color:#fff;text-decoration:underline}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes float-in{0%{opacity:0;transform:translateY(22px) scale(.97)}to{opacity:1;transform:none}}@keyframes drift{0%{transform:scale(1.05) translate(0)}to{transform:scale(1.14) translate(-1.5%,-1%)}}@media (max-width: 860px){.mosaic{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,1fr)}.welcome{padding:18px 12px}.signin-card{padding:22px 18px}}@media (prefers-reduced-motion: reduce){.mosaic figure,.signin-card{animation:none;opacity:1}.mosaic img{animation:none}}:root{--bg-veil: rgba(247, 243, 236, .66);--sec: #ee6c4d}:root[data-theme=dark]{--bg-veil: rgba(10, 20, 26, .78)}.bg-stage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none}.bg-layer{position:absolute;top:-40px;right:-40px;bottom:-40px;left:-40px;background-size:cover;background-position:center;filter:blur(7px) saturate(1.05);opacity:0;transform:scale(1.06);transition:opacity 2.4s ease;animation:bg-drift 44s ease-in-out infinite alternate;will-change:opacity,transform}.bg-layer.on{opacity:1}.bg-veil{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(900px 520px at 8% -8%,color-mix(in srgb,var(--sec) 15%,transparent),transparent 62%),radial-gradient(760px 480px at 100% 105%,color-mix(in srgb,var(--sec) 9%,transparent),transparent 60%),linear-gradient(180deg,color-mix(in srgb,var(--bg-veil) 80%,transparent),var(--bg-veil) 55%);transition:background .6s ease}.bg-corner{position:absolute;right:0;bottom:0;width:min(46vw,760px);height:min(52vh,520px);background-size:cover;background-position:center;opacity:.34;-webkit-mask-image:radial-gradient(ellipse 85% 85% at 100% 100%,#000 0%,rgba(0,0,0,.55) 38%,transparent 72%);mask-image:radial-gradient(ellipse 85% 85% at 100% 100%,#000 0%,rgba(0,0,0,.55) 38%,transparent 72%);transition:background-image .8s}:root[data-theme=dark] .bg-corner{opacity:.26}@keyframes bg-drift{0%{transform:scale(1.06) translate(0)}to{transform:scale(1.16) translate(-1.6%,-1.1%)}}body.has-bg{background:transparent}.has-bg .card,.has-bg .tile,.has-bg .item{background:color-mix(in srgb,var(--surface) 84%,transparent);backdrop-filter:blur(12px) saturate(1.15);-webkit-backdrop-filter:blur(12px) saturate(1.15)}.has-bg .nav{background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.has-bg .modal{background:var(--surface)}.bg-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.bg-thumbs figure{margin:0;position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--line);aspect-ratio:4 / 3;background:var(--sand-200)}.bg-thumbs img{width:100%;height:100%;object-fit:cover;display:block}.bg-thumbs button{position:absolute;right:6px;bottom:6px}.route-fade{animation:page-in .34s cubic-bezier(.2,.7,.2,1) both}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.btn,.tabs button,.nav a,.item,.card,.tile,.theme-btn,.pw-toggle,.table td{transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,transform .12s ease,filter .15s ease,opacity .2s ease}.btn:active:not(:disabled),.tabs button:active{transform:translateY(1px) scale(.985)}.item:hover:not(:disabled),.tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.modal-back{animation:fade-in .18s ease-out both}.modal{animation:pop-in .24s cubic-bezier(.2,.8,.2,1) both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}.alert{animation:fade-in .25s ease-out both}html.theme-anim *,html.theme-anim *:before,html.theme-anim *:after{transition:background-color .35s ease,color .35s ease,border-color .35s ease!important}@media (prefers-reduced-motion: reduce){.route-fade,.modal,.modal-back,.alert,.bg-layer{animation:none!important}.bg-layer,.btn,.item,.card,.tile{transition:none}}.hero-band{position:relative;min-height:156px;margin:0 0 16px;border-radius:18px;overflow:hidden;display:flex;align-items:flex-end;color:#fff;box-shadow:var(--shadow);animation:hero-in .5s cubic-bezier(.2,.7,.2,1) both}.hb-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,var(--petrol-900),color-mix(in srgb,var(--sec) 55%,var(--petrol-900)));-webkit-mask-image:linear-gradient(180deg,#000 55%,rgba(0,0,0,.35) 88%,rgba(0,0,0,.18));mask-image:linear-gradient(180deg,#000 55%,#00000059 88%,#0000002e)}.hb-tiles{position:absolute;top:0;right:0;bottom:0;width:66%;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px 8px 8px 0;-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.55) 22%,#000 48%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.55) 22%,#000 48%)}.hb-tiles figure{margin:0;border-radius:12px;background-size:cover;background-position:center;opacity:0;animation:tile-in .7s ease-out forwards;box-shadow:0 6px 20px #00000059}@keyframes tile-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:.96;transform:none}}.hb-tint{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#061a24eb,#061a24c7 34%,#061a2414 78%),linear-gradient(0deg,color-mix(in srgb,var(--sec) 38%,transparent),transparent 70%)}.hb-copy{position:relative;padding:20px 26px 18px;max-width:760px}.hb-eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.82;margin-bottom:2px}.hb-copy h2{margin:0;font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.1;text-shadow:0 2px 16px rgba(0,0,0,.5)}.hb-copy p{margin:6px 0 0;font-size:.95rem;opacity:.92;text-shadow:0 1px 10px rgba(0,0,0,.5)}@keyframes hero-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes hb-pan{0%{transform:scale(1.06) translate(0)}to{transform:scale(1.14) translate(-2%,-1.5%)}}.route-fade h1{display:none}.route-fade>.stack>.row>h1:only-child{display:none}.tile{border-top:3px solid color-mix(in srgb,var(--sec) 78%,transparent)}.nav a.active{border-color:var(--sec)}.tabs button.on{box-shadow:0 3px 0 var(--sec)}.card h3{position:relative}@media (max-width: 700px){.hb-tiles{width:100%;opacity:.55}.hero-band{min-height:108px;border-radius:14px}.hb-copy{padding:14px 16px}.hb-copy p{display:none}.bg-corner{width:80vw;height:30vh;opacity:.22}}@media print{.hero-band,.bg-stage{display:none!important}}@media (prefers-reduced-motion: reduce){.hero-band,.hb-tiles figure{animation:none;opacity:.96}}
