:root{--ink: #071c1a;--ink-soft: #3d5a56;--paper: #eef5f2;--panel: rgba(255, 255, 255, .78);--accent: #12a87a;--accent-deep: #0a5c45;--accent-soft: #cff3e4;--line: rgba(7, 28, 26, .1);--danger: #c0352b;--danger-bg: #fff1ef;--ok: #0b7a4b;--ok-bg: #e6f8ef;--warn: #b45309;--warn-bg: #fff7ed;--shadow: 0 24px 60px rgba(7, 28, 26, .1);--radius: 22px;--font: "Figtree", "Segoe UI", sans-serif;--display: "Syne", "Figtree", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;touch-action:manipulation;overscroll-behavior-y:contain}a{color:var(--accent-deep);text-decoration:none}button,input,select{font:inherit}.page{position:relative;min-height:100dvh;min-height:100vh;padding:16px 16px calc(28px + env(safe-area-inset-bottom,0px));max-width:430px;margin:0 auto}.page.mobile-page{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}.page.admin{max-width:1100px;padding:24px 18px 40px}.desktop-only-gate{display:none}.mobile-app-shell{display:block}@media (min-width: 821px) and (pointer: fine){.desktop-only-gate{display:grid;place-items:center;min-height:100dvh;padding:32px 20px;position:relative}.mobile-app-shell{display:none!important}}.desktop-gate-card{width:min(420px,100%);text-align:center;background:#ffffffd1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.6);border-radius:24px;padding:36px 24px;box-shadow:var(--shadow);position:relative;z-index:1}.desktop-gate-text{margin:12px 0 18px;color:var(--ink-soft);line-height:1.5;font-size:1.05rem}.mobile-cta-bar{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:min(430px,100%);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,#eef5f200,#eef5f2eb 28%,#eef5f2);z-index:40}.mobile-cta-bar .print-btn{margin-top:0}.mobile-panel{border-radius:24px}input,select,textarea{font-size:16px!important}.atmosphere{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(900px 520px at 12% -8%,rgba(18,168,122,.28) 0%,transparent 58%),radial-gradient(700px 420px at 95% 8%,rgba(10,92,69,.16) 0%,transparent 52%),radial-gradient(500px 280px at 50% 100%,rgba(7,28,26,.05) 0%,transparent 60%),linear-gradient(165deg,#e8f4ef,#f4f8f6 42%,#eef5f2);animation:drift 16s ease-in-out infinite alternate}.atmosphere:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.35;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.45'/%3E%3C/svg%3E");mix-blend-mode:soft-light}.atmosphere.muted{opacity:.9}@keyframes drift{0%{transform:scale(1) translateZ(0)}to{transform:scale(1.04) translate3d(0,-10px,0)}}.hero{text-align:center;padding:20px 4px 14px;animation:rise .55s ease both}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.brand-mark{width:72px;height:72px;margin:0 auto 16px;border-radius:24px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#14c28d,#0a5c45);border:1px solid rgba(255,255,255,.25);box-shadow:0 14px 30px #0a5c4547;animation:pulse 3.4s ease-in-out infinite}@keyframes pulse{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.02)}}.brand{margin:0;font-family:var(--display);font-size:clamp(2.55rem,9vw,3.4rem);font-weight:800;letter-spacing:-.045em;line-height:.95;color:var(--ink)}.brand.small{font-size:1.85rem;margin-bottom:8px}.tagline{margin:12px auto 0;max-width:26ch;color:var(--ink-soft);font-size:1.06rem;line-height:1.45;font-weight:500}.panel{background:var(--panel);-webkit-backdrop-filter:blur(16px) saturate(1.15);backdrop-filter:blur(16px) saturate(1.15);border:1px solid rgba(255,255,255,.55);border-radius:calc(var(--radius) + 4px);padding:24px 18px 26px;box-shadow:var(--shadow);animation:rise .7s ease both}.panel h2{margin:0 0 18px;font-size:1.15rem;font-weight:600}.dropzone{border:1.5px dashed rgba(18,168,122,.4);border-radius:var(--radius);padding:42px 18px;min-height:180px;display:grid;place-content:center;text-align:center;background:linear-gradient(180deg,#ffffff8c,#cff3e459);cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .25s ease,box-shadow .25s ease}.dropzone:hover,.dropzone.is-dragging{border-color:var(--accent);background:#cff3e48c;transform:translateY(-2px);box-shadow:0 16px 36px #0a5c451f}.dropzone-icon{display:inline-grid;place-items:center;width:56px;height:56px;margin-bottom:14px;border-radius:18px;color:var(--accent-deep);background:#fff;border:1px solid rgba(18,168,122,.18);box-shadow:0 8px 18px #071c1a0f}.dropzone strong{display:block;font-family:var(--display);font-size:1.2rem;font-weight:700;letter-spacing:-.02em}.dropzone p,.hint,.muted{margin:6px 0 0;color:var(--ink-soft);font-size:.92rem}.file-name{word-break:break-word}.file-meta{margin-top:14px;padding:12px 14px;border-radius:12px;background:#fff;border:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:baseline}.file-meta strong{word-break:break-word}.file-meta span{color:var(--ink-soft);white-space:nowrap;font-size:.92rem}.ok-text{color:var(--ok);font-weight:600;margin:0 0 12px}.monitor-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.monitor-head h2{margin:0}.monitor-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.printer-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.printer-pick{width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;cursor:pointer;display:grid;gap:4px}.printer-pick span{color:var(--ink-soft);font-size:.85rem}.printer-pick:hover{border-color:var(--accent)}.settings{margin-top:22px;display:grid;gap:16px}.field>label{display:block;font-size:.86rem;font-weight:600;margin-bottom:8px;color:var(--ink-soft)}.field.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.stepper,.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.segmented{grid-template-columns:repeat(2,1fr)}.stepper button,.segmented button,.toggle,.btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:14px;min-height:48px;padding:0 14px;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}.confirm-title{margin:0;font-family:var(--display);font-size:clamp(1.2rem,4.5vw,1.4rem);font-weight:750;letter-spacing:-.03em;line-height:1.2}.modal-card{animation:rise .3s ease both}.stepper span{display:grid;place-items:center;font-weight:700;font-size:1.1rem}.segmented button.active{background:var(--accent);border-color:var(--accent);color:#fff}.radio-stack{display:grid;gap:8px}.field label.radio,.radio{display:flex;align-items:center;gap:10px;min-height:48px;margin:0;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:.95rem;font-weight:500;color:var(--ink);cursor:pointer;box-sizing:border-box}.radio input{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:var(--accent)}.radio span{line-height:1.3}.toggle{min-width:72px;font-weight:700}.toggle.on{background:var(--accent);border-color:var(--accent);color:#fff}.text-input{width:100%;min-height:46px;border-radius:12px;border:1px solid var(--line);padding:0 12px;background:#fff}label>.text-input,.stack label{display:grid;gap:8px;font-size:.9rem;font-weight:600;color:var(--ink-soft)}.stack{display:grid;gap:14px}.btn.primary{background:linear-gradient(135deg,#16c48f,#0d7a58);border-color:transparent;color:#fff;font-weight:700;letter-spacing:.03em;box-shadow:0 12px 28px #0d7a5847}.btn.primary:hover:not(:disabled){background:linear-gradient(135deg,#12a87a,#0a5c45);transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.ghost{background:transparent}.btn.small{min-height:34px;padding:0 10px;font-size:.85rem}.pdf-preview{margin:14px 0 18px;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:linear-gradient(160deg,#f5faf8,#e4efe9)}.pdf-preview img{display:block;width:100%;max-height:320px;object-fit:contain;background:#fff}.duplex-seg{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.ready-badge{display:inline-flex;align-items:center;gap:6px;margin:10px 0 14px;padding:7px 12px;border-radius:999px;background:var(--ok-bg);color:var(--ok);font-size:.84rem;font-weight:700}.ready-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px #0b7a4b26}.payment-box{margin:18px 0;padding:22px 18px;border-radius:20px;background:radial-gradient(420px 180px at 50% 0%,rgba(18,168,122,.16),transparent 70%),linear-gradient(165deg,#fff,#eef8f3);border:1px solid rgba(18,168,122,.18);text-align:center}.payment-box .muted{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700}.payment-amount{display:block;font-family:var(--display);font-size:clamp(1.7rem,6vw,2.15rem);font-weight:800;letter-spacing:-.03em;margin:8px 0 10px;color:var(--ink)}.payment-box .pay-meta{margin:0;color:var(--ink-soft);font-size:.92rem;text-transform:none;letter-spacing:0;font-weight:500}.confirm-amount dd strong,.confirm-pay strong{font-family:var(--display);font-size:1.35rem;font-weight:800;letter-spacing:-.03em;color:var(--accent-deep)}.badge.awaiting_payment{background:var(--warn-bg);color:var(--warn)}.print-btn{width:100%;margin-top:18px;min-height:56px;font-size:1.05rem;border-radius:16px}.panel.narrow{max-width:none;margin:8px 0 0}.btn.multicard{background:linear-gradient(135deg,#0f766e,#115e59 55%,#134e4a);border:none;color:#fff;box-shadow:0 14px 30px #0f766e47}.btn.multicard:hover:not(:disabled){filter:brightness(1.05)}.status-page .status-panel{text-align:center;padding-top:28px}.status-icon{width:72px;height:72px;margin:0 auto 16px;border-radius:22px;display:grid;place-items:center;color:var(--accent-deep);background:linear-gradient(160deg,#fff 0%,var(--accent-soft) 100%);border:1px solid rgba(18,168,122,.2);animation:pulse 3s ease-in-out infinite}.status-icon.ok{color:#fff;background:linear-gradient(145deg,#16c48f,#0a5c45)}.status-icon.bad{color:#fff;background:linear-gradient(145deg,#e35d52,#a52820)}.status-icon.pay{color:#fff;background:linear-gradient(145deg,#14b8a6,#0f766e)}.status-title{margin:0 0 8px;font-family:var(--display);font-size:clamp(1.45rem,5vw,1.85rem);font-weight:750;letter-spacing:-.03em;line-height:1.15}.status-title.ok{color:var(--ok)}.status-title.bad{color:var(--danger)}.status-live{margin:18px 0;padding:16px;border-radius:16px;background:#ffffffb3;border:1px solid var(--line);font-weight:600}.status-live .pulse{animation:pulse 1.4s ease-in-out infinite}.pay-hint{margin:14px 0 0;color:var(--ink-soft);font-size:.86rem;line-height:1.4}.payment-qr-wrap{margin:18px auto 8px;max-width:260px;text-align:center}.payment-qr{width:min(220px,68vw);height:auto;aspect-ratio:1;display:block;margin:0 auto;padding:14px;border-radius:18px;background:#fff;border:1px solid rgba(15,118,110,.18);box-shadow:0 10px 28px #0f766e1f;animation:fadeRise .45s ease-out both}.payment-qr-wrap .pay-hint{margin-top:12px}@keyframes fadeRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.formats-hint{margin-top:14px;text-align:center;color:var(--ink-soft);font-size:.86rem;line-height:1.4}.preview-card{display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px;background:#ffffffd9;border:1px solid var(--line)}.preview-icon{width:44px;height:44px;flex:0 0 auto;border-radius:12px;display:grid;place-items:center;color:var(--accent-deep);background:var(--accent-soft)}.preview-meta{flex:1;min-width:0;display:grid;gap:2px}.preview-meta strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-meta span{color:var(--ink-soft);font-size:.86rem}.quote-break{font-size:.88rem!important;text-transform:none!important;letter-spacing:0!important;font-weight:500!important}.status-banner{border-radius:14px;padding:14px 16px;margin-bottom:16px;border:1px solid transparent;animation:rise .35s ease both}.status-banner strong{display:block}.status-banner p{margin:6px 0 0;font-size:.92rem}.status-banner.pending{background:var(--warn-bg);border-color:#b5470833;color:var(--warn)}.status-banner.success{background:var(--ok-bg);border-color:#06764733;color:var(--ok)}.status-banner.error{background:var(--danger-bg);border-color:#b423182e;color:var(--danger)}.success-actions{display:grid;gap:10px}.footer{margin-top:22px;text-align:center;font-size:.9rem}.form-error{color:var(--danger);margin:0}.admin-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}.admin-header h1{margin:4px 0 0;font-family:var(--display);font-size:clamp(1.8rem,5vw,2.4rem)}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;color:var(--ink-soft);font-weight:700}.admin-actions{display:flex;gap:10px;align-items:center}.admin-grid{display:grid;gap:16px;grid-template-columns:1fr;margin-bottom:16px}@media (min-width: 900px){.admin-grid{grid-template-columns:repeat(3,1fr)}}.card-block{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:16px;box-shadow:var(--shadow)}.card-block h2{margin:0 0 14px;font-size:1.05rem}.meta{margin:0;display:grid;gap:12px}.meta div{display:grid;gap:4px}.meta dt{font-size:.78rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}.meta dd{margin:0;font-weight:600}.meta .ok{color:var(--ok)}.meta .bad{color:var(--danger)}.check{display:flex!important;align-items:center;gap:10px;font-weight:600}.code{display:block;margin:8px 0 14px;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid var(--line);word-break:break-all;font-size:.88rem}.qr-box{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;place-items:center;margin-bottom:14px}.qr-box img{width:min(220px,100%);height:auto}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.badge{display:inline-block;padding:3px 8px;border-radius:8px;background:#eef2f1;font-size:.78rem;font-weight:700;text-transform:uppercase}.badge.pending,.badge.printing{background:var(--warn-bg);color:var(--warn)}.badge.completed{background:var(--ok-bg);color:var(--ok)}.badge.failed,.badge.cancelled{background:var(--danger-bg);color:var(--danger)}.error-cell{max-width:220px;color:var(--danger);font-size:.85rem}@media (max-width: 480px){.page{padding:16px 14px 32px}.panel{padding:18px 14px 20px}.admin-header{flex-direction:column}}.upload-progress{margin-bottom:14px}.upload-progress-label{font-size:.9rem;margin-bottom:8px;color:var(--ink-soft)}.progress-track{height:10px;border-radius:999px;background:#e7eeea;overflow:hidden}.progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-deep));transition:width .2s ease}.settings-title{margin:0 0 4px;font-family:var(--display);font-size:1.05rem;letter-spacing:-.02em}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#071c1a80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:end center;padding:12px 12px calc(12px + env(safe-area-inset-bottom,0px));z-index:50}@media (min-width: 720px){.modal-backdrop{place-items:center;padding:24px}}.modal-card{width:min(420px,100%);background:#fff;border-radius:24px;padding:20px 18px 18px;border:1px solid rgba(255,255,255,.8);box-shadow:0 28px 70px #071c1a3d;animation:rise .3s ease both}.confirm-card{display:grid;gap:14px}.confirm-header{display:grid;gap:4px}.confirm-eyebrow{margin:0;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-deep)}.confirm-file{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:16px;background:linear-gradient(160deg,#f7fbf9,#eaf6f1);border:1px solid rgba(18,168,122,.16)}.confirm-file-icon{flex:0 0 auto;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:var(--accent-deep);background:#fff;border:1px solid rgba(18,168,122,.18)}.confirm-file-meta{min-width:0;display:grid;gap:2px}.confirm-file-label{font-size:.75rem;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}.confirm-file-name{font-size:.95rem;font-weight:650;line-height:1.35;overflow-wrap:anywhere;word-break:break-word}.confirm-list{margin:0;display:grid;gap:0;padding:4px 2px;border-radius:16px;background:#f7faf8;border:1px solid var(--line);overflow:hidden}.confirm-list div{display:grid;grid-template-columns:minmax(110px,42%) 1fr;align-items:baseline;gap:10px;padding:11px 14px;border-bottom:1px solid rgba(7,28,26,.07)}.confirm-list div:last-child{border-bottom:none}.confirm-list dt{margin:0;color:var(--ink-soft);font-size:.88rem;font-weight:500}.confirm-list dd{margin:0;font-weight:650;text-align:right;font-size:.95rem;overflow-wrap:anywhere}.confirm-pay{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:16px;background:linear-gradient(135deg,#12a87a1f,#0a5c4514);border:1px solid rgba(18,168,122,.22)}.confirm-pay span{font-size:.9rem;font-weight:600;color:var(--ink-soft)}.confirm-note{margin:0;color:var(--ink-soft);font-size:.88rem;line-height:1.45;text-align:center}.modal-actions{display:grid;grid-template-columns:1fr 1.2fr;gap:10px;margin-top:2px}.modal-actions .btn{min-width:0;min-height:50px;font-weight:700;font-size:.95rem}.modal-actions .btn.ghost{background:#fff;border-color:var(--line)}@media (max-width: 360px){.modal-actions{grid-template-columns:1fr}}.status-panel{margin-top:40px}.pulse{animation:pulse 1.4s ease-in-out infinite}.file-line{word-break:break-word}.center-link{margin-top:22px}.admin-tabs{display:flex;gap:8px;overflow-x:auto;margin-bottom:16px;padding-bottom:4px}.admin-tabs button{border:1px solid var(--line);background:#fff;border-radius:999px;min-height:44px;padding:0 14px;white-space:nowrap;cursor:pointer}.admin-tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff}.dash-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:16px}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);display:grid;gap:6px}.stat-card p{margin:0;color:var(--ink-soft);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}.stat-card strong{font-size:1.4rem}.stat-card span{color:var(--ink-soft);font-size:.9rem;word-break:break-word}.history-toolbar{display:grid;gap:10px;margin-bottom:14px}.filter-seg{grid-template-columns:repeat(3,1fr)}@media (min-width: 900px){.filter-seg{grid-template-columns:repeat(6,1fr)}}.ok{color:var(--ok)}.bad{color:var(--danger)}.page.home .panel,.page.status-page .panel{max-width:520px;margin-left:auto;margin-right:auto}@media (min-width: 1100px){.page.home{max-width:980px}}
