:root{--ink: #16191d;--ink-soft: #5a6470;--ink-faint: #8b949d;--paper: #f4f6f5;--card: #ffffff;--rule: #dde3e1;--seal: #0f5f56;--seal-wash: #e7f0ee;--flag: #b4341c;--sans: "Instrument Sans", ui-sans-serif, system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace}body[data-mode=real]{--seal: #8a4b12;--seal-wash: #f7efe4}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.5 var(--sans);-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid var(--seal);outline-offset:2px}.masthead{background:var(--card);border-bottom:1px solid var(--rule)}.masthead-row{max-width:62rem;margin:0 auto;padding:1.4rem 1.5rem .9rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-start;justify-content:space-between}.brand h1{margin:0;font-size:1.5rem;font-weight:600;letter-spacing:-.03em}.tagline{margin:.15rem 0 0;color:var(--ink-soft);font-size:.88rem}.controls{display:flex;align-items:center;gap:.6rem}.modes{display:inline-flex;border:1px solid var(--rule);border-radius:7px;overflow:hidden}.modes button{appearance:none;border:0;background:var(--card);cursor:pointer;font:500 .8rem var(--sans);padding:.4rem .9rem;color:var(--ink-soft)}.modes button+button{border-left:1px solid var(--rule)}.modes button[aria-pressed=true]{background:var(--seal);color:#fff}.status{margin:0;padding:.35rem .6rem;border-radius:6px;white-space:nowrap;font:500 .74rem var(--mono);background:#eef1f0;color:var(--ink-soft)}.status[data-status=ready]{background:var(--seal-wash);color:var(--seal)}.status[data-status=unsupported]{background:#fbeee9;color:var(--flag)}.mode-strip{max-width:62rem;margin:0 auto;padding:0 1.5rem 1rem;font-size:.8rem;color:var(--ink-soft)}.tabs{max-width:62rem;margin:0 auto;padding:0 1.5rem;display:flex;gap:.25rem}.tabs button{appearance:none;background:none;border:0;cursor:pointer;font:500 .88rem var(--sans);color:var(--ink-soft);padding:.55rem .85rem;border-bottom:2px solid transparent;display:inline-flex;align-items:center;gap:.4rem}.tabs button:hover{color:var(--ink)}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--seal)}.tabs .count:not(:empty){font:500 .7rem var(--mono);background:var(--seal-wash);color:var(--seal);border-radius:20px;padding:.1rem .45rem}main{max-width:62rem;margin:0 auto;padding:1.5rem 1.5rem 2.5rem}.prompt{margin:0 0 1.1rem;font-size:.85rem;color:var(--ink-soft)}.prompt em{color:var(--ink);font-style:italic}.empty{margin:0 0 .5rem;color:var(--ink-soft);font-size:.9rem}.empty.small{font-size:.82rem;max-width:34rem}#invoices{display:grid;gap:0;border-radius:10px}#invoices.touched,#obligations.touched{animation:notice 1.1s ease-out}@keyframes notice{0%{box-shadow:0 0 0 4px var(--seal-wash)}to{box-shadow:0 0 0 4px transparent}}.invoice{position:relative;background:var(--card);border:1px solid var(--rule);border-radius:9px;padding:.9rem 1.05rem;margin-bottom:1.6rem;display:flex;gap:1.1rem;align-items:flex-start;justify-content:space-between}.invoice:last-child{margin-bottom:0}.invoice.fresh{border-color:var(--seal);box-shadow:0 0 0 3px var(--seal-wash)}.invoice-body{min-width:0;flex:1}.link{position:absolute;left:1.05rem;right:1.05rem;bottom:-1.6rem;height:1.6rem;margin:0;display:flex;align-items:center;gap:.5rem;font-size:.68rem;color:var(--ink-faint)}.link:before{content:"";position:absolute;left:-.1rem;top:0;bottom:0;border-left:2px solid var(--ink-faint);opacity:.45}.link-label{padding-left:.8rem;text-transform:uppercase;letter-spacing:.07em}.link code{font:400 .62rem var(--mono);color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invoice:last-child .link:before{border-left-style:dashed}.link-root .link-label{color:var(--seal)}.invoice header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.invoice h3{margin:0;font:500 .92rem var(--mono);letter-spacing:-.01em}.invoice .total{font:500 .95rem var(--mono);white-space:nowrap}.invoice .client{margin:.3rem 0 .6rem;font-size:.88rem}.invoice .nif{font:400 .74rem var(--mono);color:var(--ink-faint);margin-left:.3rem}.invoice dl{margin:0;display:grid;grid-template-columns:auto auto;gap:.1rem .9rem;justify-content:start;font-size:.78rem}.invoice dt{color:var(--ink-soft)}.invoice dd{margin:0;font-family:var(--mono);font-size:.74rem}.hash{margin:.6rem 0 0;font-size:.66rem;display:grid;gap:.1rem}.hash span{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em}.hash code{font:400 .64rem/1.35 var(--mono);color:var(--ink);word-break:break-all}.qr{margin:0;flex:0 0 auto;text-align:center}.qr svg{display:block;width:84px;height:84px}.qr figcaption{margin-top:.3rem;font:400 .6rem var(--mono);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em}#obligations{display:grid;gap:.65rem;border-radius:10px}.obligation{background:var(--card);border:1px solid var(--rule);border-radius:9px;border-left:3px solid var(--seal);padding:.85rem 1rem}.obligation.soon{border-left-color:var(--flag)}.obligation header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.obligation h3{margin:0;font-size:.95rem;font-weight:600}.period{font:400 .8rem var(--mono);color:var(--ink-soft);margin-left:.2rem}.days{font:500 .78rem var(--mono);color:var(--ink-soft);white-space:nowrap}.obligation .what{margin:.1rem 0 .55rem;font-size:.86rem;color:var(--ink-soft)}.obligation dl{margin:0 0 .5rem;display:grid;grid-template-columns:auto auto;justify-content:start;gap:.1rem .9rem;font-size:.78rem}.obligation dt{color:var(--ink-soft)}.obligation dd{margin:0;font-family:var(--mono);font-size:.74rem}.obligation dd strong{font-weight:500;color:var(--seal)}.obligation.soon dd strong{color:var(--flag)}.reason{margin:0;font-size:.78rem;color:var(--ink-soft);max-width:46rem}.return-head,.submission-head{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-start;justify-content:space-between;margin-bottom:.8rem}.return-head h3,.submission-head h3{margin:0;font:500 .95rem var(--mono)}.result{margin:0;text-align:right}.result span{display:block;font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em}.result strong{font:500 1.15rem var(--mono)}.warn ul{margin:.3rem 0 0;padding-left:1.1rem}.warn li{margin-bottom:.2rem}.warn p{margin:0 0 .2rem}.warn p+p{margin-top:.6rem}.boxes{border-collapse:collapse;width:100%;max-width:44rem;font-size:.82rem}.boxes th{text-align:left;font:500 .7rem var(--sans);color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em;padding:.3rem .6rem .35rem 0;border-bottom:1px solid var(--rule)}.boxes td{padding:.3rem .6rem .3rem 0;border-bottom:1px solid var(--rule)}.boxes .num{font:500 .78rem var(--mono);color:var(--seal);white-space:nowrap;width:4rem}.boxes .val{font:500 .82rem var(--mono);text-align:right;white-space:nowrap}.boxes tr:last-child td{border-bottom:0}.filing{margin:0 0 .5rem;font-size:.82rem;color:var(--ink-soft);max-width:46rem}.formlink{font:400 .76rem var(--mono);color:var(--seal);word-break:break-all}.endpoint{margin:.15rem 0 0;font:400 .72rem var(--mono);color:var(--ink-faint);word-break:break-all}#download-submission{padding:.48rem 1rem;font:500 .85rem var(--sans);border-radius:7px;background:var(--seal);color:#fff;border:1px solid transparent;cursor:pointer;white-space:nowrap}.warn{margin:0 0 .9rem;padding:.6rem .8rem;border-radius:7px;background:#fbeee9;color:#7d2a13;font-size:.8rem;max-width:46rem}.send{margin:0 0 1.1rem;padding:.9rem 1rem;border:1px solid var(--seal);border-radius:9px;background:var(--seal-wash)}.send button{padding:.55rem 1.1rem;font:500 .88rem var(--sans);cursor:pointer;background:var(--seal);color:#fff;border:1px solid transparent;border-radius:7px}.send-note{margin:.55rem 0 0;font-size:.78rem;color:var(--ink-soft);max-width:40rem}#submission h4{margin:1.2rem 0 .4rem;font-size:.85rem}.envelope,.howto{margin:0;padding:.85rem 1rem;background:var(--card);border:1px solid var(--rule);border-radius:8px;overflow-x:auto;max-height:26rem;overflow-y:auto}.envelope code,.howto code{font:400 .7rem/1.55 var(--mono);color:var(--ink);white-space:pre}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1.2rem}.toolbar button,.picker button{padding:.48rem 1rem;font:500 .85rem var(--sans);cursor:pointer;background:var(--seal);color:#fff;border:1px solid transparent;border-radius:7px;white-space:nowrap}.toolbar .ghost,.picker .ghost{background:var(--card);color:var(--seal);border-color:var(--rule)}.toolbar .ghost:hover,.picker .ghost:hover{background:var(--seal-wash)}.toolbar-note{margin:0;font-size:.8rem;color:var(--ink-soft);flex:1 1 16rem;min-width:0}.toolbar-note em{color:var(--ink)}#drawer{position:fixed;top:0;right:0;bottom:0;width:min(46rem,100%);background:var(--paper);border-left:1px solid var(--rule);box-shadow:-18px 0 46px #10161a21;display:flex;flex-direction:column;z-index:20;animation:slide-in .22s cubic-bezier(.2,.7,.3,1)}@keyframes slide-in{0%{transform:translate(14px);opacity:0}}#drawer>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.4rem;border-bottom:1px solid var(--rule);background:var(--card)}#drawer h2{margin:0;font:500 .95rem var(--mono);letter-spacing:-.01em}#close-drawer{appearance:none;border:0;background:none;cursor:pointer;line-height:1;font-size:1.5rem;color:var(--ink-soft);padding:0 .2rem}#close-drawer:hover{color:var(--ink)}.drawer-body{overflow-y:auto;padding:1.3rem 1.4rem 2rem}.panel-head{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-start;justify-content:space-between;margin-bottom:1.1rem}.panel-head .prompt{margin:0;max-width:34rem}#open-new-invoice,.picker button{padding:.48rem 1rem;font:500 .85rem var(--sans);cursor:pointer;background:var(--seal);color:#fff;border:1px solid transparent;border-radius:7px;white-space:nowrap}.picker{display:flex;gap:.35rem;align-items:center}.picker select,.picker input{font:400 .82rem var(--mono);padding:.38rem .45rem;color:var(--ink);border:1px solid var(--rule);border-radius:6px;background:var(--card)}.picker input{width:5.5rem}.invoice-side{display:grid;gap:.45rem;justify-items:center;flex:0 0 auto}.prepare{font:500 .72rem var(--sans);padding:.3rem .6rem;cursor:pointer;background:var(--card);color:var(--seal);border:1px solid var(--rule);border-radius:6px;white-space:nowrap}.prepare:hover{background:var(--seal-wash)}dialog{border:1px solid var(--rule);border-radius:12px;padding:1.4rem 1.5rem;max-width:26rem;width:calc(100% - 2rem);background:var(--card);color:var(--ink)}dialog::backdrop{background:#10161a61}dialog[open]{animation:lift .18s cubic-bezier(.2,.7,.3,1)}dialog[open]::backdrop{animation:fade .18s ease}@keyframes lift{0%{opacity:0;transform:translateY(6px) scale(.985)}}@keyframes fade{0%{opacity:0}}dialog h2{margin:0 0 .2rem;font-size:1rem}.dialog-note{margin:0 0 1rem;font-size:.78rem;color:var(--ink-soft)}dialog label{display:grid;gap:.2rem;margin-bottom:.7rem;font-size:.78rem;color:var(--ink-soft)}dialog input,dialog select{font:400 .88rem var(--sans);padding:.45rem .55rem;color:var(--ink);border:1px solid var(--rule);border-radius:6px;background:var(--card)}dialog input[name=clientNif],dialog input[type=date],dialog input[type=number]{font-family:var(--mono);font-size:.82rem}.dialog-error{margin:0 0 .8rem;padding:.55rem .7rem;border-radius:7px;background:#fbeee9;color:#7d2a13;font-size:.78rem}dialog menu{display:flex;gap:.5rem;justify-content:flex-end;margin:.3rem 0 0;padding:0}dialog menu button{padding:.45rem 1rem;font:500 .85rem var(--sans);cursor:pointer;border-radius:7px;border:1px solid transparent;background:var(--seal);color:#fff}dialog menu .ghost{background:var(--card);color:var(--ink-soft);border-color:var(--rule)}.facts,.fields{max-width:26rem}.facts{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;font-size:.88rem}.facts dt{color:var(--ink-soft)}.facts dd{margin:0;font-family:var(--mono);font-size:.82rem}.fields{display:grid;gap:.7rem}.fields label{display:grid;gap:.25rem;font-size:.8rem;color:var(--ink-soft)}.fields label.check{grid-template-columns:auto 1fr;align-items:center;gap:.45rem}.fields input,.fields select{font:400 .88rem var(--sans);padding:.45rem .55rem;color:var(--ink);border:1px solid var(--rule);border-radius:6px;background:var(--card)}.fields input[name=nif],.fields input[type=date]{font-family:var(--mono);font-size:.82rem}.fields input[type=checkbox]{width:auto;justify-self:start}.saved{font:500 .78rem var(--mono);color:var(--seal)}.fields button,#load-obligations{justify-self:start;margin-top:.2rem;padding:.48rem 1rem;font:500 .85rem var(--sans);border-radius:7px;cursor:pointer;background:var(--seal);color:#fff;border:1px solid transparent}#load-obligations{background:var(--card);color:var(--seal);border-color:var(--rule)}#load-obligations:hover{background:var(--seal-wash)}footer{max-width:62rem;margin:0 auto;padding:0 1.5rem 3rem;color:var(--ink-faint);font-size:.76rem}footer p{max-width:46rem;margin:0}@media(max-width:34rem){.invoice{flex-direction:column}.qr{align-self:flex-start}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
