:root{--brand: #121718;--brand-dark: #050708;--accent: #e8b828;--accent-light: #f0e8b8;--link: #8f6400;--bg: #f5f3ee;--card: #ffffff;--text: #121718;--muted: #6a665e;--line: #dcd8cf;--ok: #2e7d32;--warn: #b26a00;--err: #b3261e;--info: #1f5f8b;--radius: 10px;--shadow: 0 1px 2px rgba(0,0,0,.05), 0 6px 20px rgba(0,0,0,.05);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--text);background:var(--bg);line-height:1.45;font-size:16px}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--bg)}a{color:var(--link)}h1,h2,h3{line-height:1.2;margin:0 0 .5rem;font-family:Merriweather,Georgia,Times New Roman,serif;font-weight:700}h1{font-size:1.6rem}h2{font-size:1.25rem}h3{font-size:1.05rem}p{margin:0 0 .75rem}small,.muted{color:var(--muted)}code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.95em}button,input,select,textarea{font:inherit}:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--link);outline-offset:3px}.osakas{max-width:620px;margin:0 auto;padding:1rem}.osakas header{display:flex;align-items:center;gap:.75rem;padding:.75rem 0 1.25rem}.logo{height:34px;width:auto;flex:none}.brand{font-weight:700;letter-spacing:.01em}.brand small{display:block;font-weight:400}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;margin-bottom:1rem}.card.tight{padding:1rem}.summary{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1rem;margin:1rem 0}.summary div{background:var(--bg);border-radius:8px;padding:.6rem .8rem}.summary .label{font-size:.8rem;color:var(--muted)}.summary .value{font-weight:700;font-size:1.1rem}.summary .wide{grid-column:1 / -1}.choices{display:grid;gap:.75rem;margin:1rem 0}.choice{border:2px solid var(--line);border-radius:var(--radius);padding:1rem;cursor:pointer;background:var(--card);text-align:left;display:flex;gap:.75rem;align-items:flex-start}.choice:hover{border-color:#b5aea0}.choice.selected{border-color:var(--brand);background:#fbf5dc}.choice input{margin-top:.25rem}.choice strong{display:block}.amount{display:flex;gap:1rem;align-items:center;margin:.75rem 0 .25rem;flex-wrap:wrap}.amount input[type=number]{width:7.5rem;padding:.6rem .7rem;border:1px solid var(--line);border-radius:8px;font-size:1.1rem;text-align:right}.amount input[type=range]{flex:1;min-width:160px;accent-color:var(--brand)}.total{font-size:1.25rem;font-weight:700;margin:.5rem 0 0}.check{display:flex;gap:.6rem;align-items:flex-start;margin:1rem 0}.check input{flex:none;margin-top:.3rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.2rem;border-radius:8px;border:1px solid transparent;background:var(--brand);color:#fff;font-weight:600;cursor:pointer;text-decoration:none}.btn:hover{background:var(--brand-dark)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.secondary{background:var(--card);color:var(--text);border-color:var(--line)}.btn.secondary:hover{background:var(--bg)}.btn.danger{background:var(--err)}.btn.small{padding:.4rem .75rem;font-size:.9rem}.btn.block{width:100%}.actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}.alert{border-radius:8px;padding:.8rem 1rem;margin:.75rem 0;border:1px solid}.alert.err{border-color:#f1c2be;background:#fdf1f0;color:var(--err)}.alert.ok{border-color:#bfe0c1;background:#f0f9f0;color:var(--ok)}.alert.info{border-color:#bcd6e8;background:#eef6fb;color:var(--info)}.alert.warn{border-color:#f1dcb5;background:#fdf7ea;color:var(--warn)}.payment{border:1px dashed var(--line);border-radius:var(--radius);padding:1rem;margin:.75rem 0;background:#faf8f3}.payment dl{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem;margin:0}.payment dt{color:var(--muted)}.payment dd{margin:0;font-weight:600}.payment dd.mono{font-size:1.05rem;letter-spacing:.03em}.bank-barcode{margin:1.25rem 0;min-width:0}.bank-barcode h3{margin-bottom:.5rem}.bank-barcode-scroll{width:100%;overflow-x:auto;background:#fff;padding:.5rem 0;border:1px solid var(--line);border-radius:var(--radius)}.bank-barcode-scroll img{display:block;width:484px;height:52px;max-width:none;margin:0 auto}.virtual-barcode{display:grid;gap:.6rem;margin-top:1.5rem}.virtual-barcode textarea{width:100%;resize:none;overflow-wrap:anywhere;word-break:break-all;font-size:.95rem;padding:.55rem .7rem;border:1px solid var(--line);border-radius:8px;background:#fff}.virtual-barcode button{justify-self:start}.virtual-barcode [role=status]{font-size:.9rem;color:var(--muted)}@media print{.bank-barcode-scroll{overflow:visible;border:0}.bank-barcode-scroll img{width:128.058mm;height:13.758mm}.virtual-barcode button,.virtual-barcode [role=status]{display:none}}.demo-linkit{margin:0;padding-left:1.2rem;display:grid;gap:.4rem}.footer{color:var(--muted);font-size:.85rem;text-align:center;padding:1.5rem 0}.footer a{color:var(--muted)}.spinner{display:inline-block;width:1.1em;height:1.1em;border:2px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.center{text-align:center;padding:2rem 0}.admin{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.admin nav{background:var(--brand-dark);color:#e2ded6;padding:1rem .75rem;display:flex;flex-direction:column;gap:.15rem}.admin nav .brand{color:#fff;padding:.5rem .75rem 1rem}.admin nav .nav-logo{display:block;height:30px;width:auto;margin-bottom:.5rem}.admin nav .brand small{color:#b9b3a7}.admin nav a{color:#e2ded6;text-decoration:none;padding:.55rem .75rem;border-radius:6px;display:flex;justify-content:space-between}.admin nav a:hover{background:#ffffff14}.admin nav a.active{background:#ffffff29;color:#fff;font-weight:600}.admin nav .user{margin-top:auto;padding:.75rem;font-size:.85rem;color:#b9b3a7;border-top:1px solid rgba(255,255,255,.12)}.admin nav .user button{background:none;border:0;color:#e2ded6;text-decoration:underline;cursor:pointer;padding:0}.admin main{min-width:0;width:100%;padding:1.5rem 2rem;max-width:1400px}.admin main h1{margin-bottom:1rem}.pill{display:inline-block;font-size:.72rem;padding:.05rem .45rem;border-radius:999px;background:var(--accent);color:#121718;font-weight:700}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:.75rem;margin-bottom:1.25rem}.kpi{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:.9rem 1rem}.kpi .label{font-size:.8rem;color:var(--muted)}.kpi .value{font-size:1.5rem;font-weight:700;margin-top:.15rem}.kpi .sub{font-size:.8rem;color:var(--muted)}.funnel{display:grid;gap:.4rem}.funnel .row{display:grid;grid-template-columns:180px 1fr 90px;align-items:center;gap:.75rem;font-size:.92rem}.funnel .bar{height:14px;background:#e8e4dc;border-radius:7px;overflow:hidden}.funnel .bar>div{height:100%;background:var(--accent)}.toolbar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-bottom:.75rem}.toolbar>*{min-width:0;max-width:100%}.toolbar input:not([type=checkbox]):not([type=radio]),.toolbar select,.match-controls select{padding:.5rem .65rem;border:1px solid var(--line);border-radius:8px;background:var(--card)}.toolbar input[type=search]{flex:1 1 280px;width:100%;max-width:24rem}.toolbar .spacer{flex:1}.table-wrap{overflow-x:auto;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow)}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;padding:.55rem .75rem;border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap}th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#faf9f5;position:sticky;top:0}td.num,th.num{text-align:right}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#f7f5f0}.badge{display:inline-block;font-size:.78rem;padding:.12rem .5rem;border-radius:999px;background:#ebe8e1;color:#3a3833;white-space:nowrap}.badge.ok{background:#e2f2e3;color:var(--ok)}.badge.warn{background:#fbefd9;color:var(--warn)}.badge.err{background:#fbe4e2;color:var(--err)}.badge.info{background:#e3eef7;color:var(--info)}.badge.muted{background:#eeece6;color:var(--muted)}.match-cell{white-space:normal;min-width:320px;width:24rem}.match-hint{color:var(--muted);font-size:.8rem;margin-bottom:.35rem}.match-controls{margin-top:0}.match-controls select{flex:1 1 100%;min-width:0;width:100%}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.grid2>*{min-width:0}.field{display:grid;min-width:0;gap:.25rem;margin-bottom:.75rem}.field-label{font-size:.85rem;color:var(--muted)}.field input,.field select,.field textarea{min-width:0;padding:.55rem .7rem;border:1px solid var(--line);border-radius:8px;background:#fff;width:100%}.field.inline{grid-template-columns:auto 1fr;align-items:center}.card>h2:not(:first-child){margin-top:1.25rem}.export-card{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem}.export-card>div{flex:1 1 16rem;min-width:0}.export-card .btn{flex:none;white-space:nowrap}.drawer-bg{position:fixed;inset:0;background:#00000059;z-index:20}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100%);background:var(--card);box-shadow:-10px 0 30px #00000026;z-index:21;padding:1.25rem 1.5rem;overflow-y:auto}.drawer h2{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.drawer h2>span{min-width:0;overflow-wrap:anywhere}.drawer h3{margin-top:1.25rem}.drawer .close{flex:none;background:none;border:0;font-size:1.4rem;cursor:pointer;color:var(--muted)}.timeline{list-style:none;padding:0;margin:.5rem 0 1rem}.timeline li{display:grid;grid-template-columns:minmax(0,140px) minmax(0,1fr);gap:.75rem;padding:.35rem 0;border-bottom:1px dashed var(--line);font-size:.92rem;overflow-wrap:anywhere}.timeline li span:first-child{color:var(--muted)}.reveal{background:#fbf7ea;border:1px solid #ead9a8;border-radius:8px;padding:.75rem 1rem;margin:.75rem 0}.dropzone{display:grid;position:relative;place-items:center;min-height:112px;width:100%;border:2px dashed var(--line);border-radius:var(--radius);padding:1.5rem;text-align:center;background:var(--card);color:var(--muted);cursor:pointer}.dropzone input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.dropzone:hover,.dropzone.over{border-color:var(--brand);background:#fbf5dc}.dropzone:focus-within{outline:2px solid var(--link);outline-offset:3px}.login{max-width:400px;margin:10vh auto}@media(max-width:800px){.admin{grid-template-columns:minmax(0,1fr)}.admin nav{flex-direction:row;flex-wrap:wrap;align-items:center}.admin nav .brand{padding:.25rem .5rem;width:100%}.admin nav .user{margin:0;border:0;width:100%}.admin main{padding:1rem}.grid2,.summary{grid-template-columns:1fr}.funnel .row{grid-template-columns:120px 1fr 70px}}
