:root {
    --ink: #17323b;
    --muted: #667b82;
    --line: #dce7e8;
    --surface: #ffffff;
    --soft: #f4f8f8;
    --teal: #0b7777;
    --teal-dark: #075b5c;
    --teal-soft: #dff2ef;
    --mint: #79cdbd;
    --amber: #c77816;
    --amber-soft: #fff2d9;
    --red: #b83b45;
    --red-soft: #fde8e9;
    --shadow: 0 18px 50px rgba(20, 59, 66, .09);
    --radius: 18px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: #fbfdfd; font: 16px/1.55 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { color: var(--teal); text-decoration: none; }
a:hover { color: var(--teal-dark); }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.topbar { height: 72px; padding: 0 clamp(22px, 4vw, 64px); border-bottom: 1px solid rgba(220,231,232,.9); background: rgba(255,255,255,.94); backdrop-filter: blur(14px); display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 30; }
.brand { color: var(--ink); display: inline-flex; gap: 11px; align-items: center; font-size: 19px; font-weight: 760; letter-spacing: -.02em; }
.brand-mark { width: 38px; height: 38px; display: inline-grid; place-items: center; border-radius: 11px; background: linear-gradient(145deg, var(--teal), #34a69c); color: #fff; font-size: 14px; letter-spacing: .04em; box-shadow: 0 8px 20px rgba(11,119,119,.22); }
.brand-mark.large { width: 64px; height: 64px; border-radius: 18px; font-size: 22px; }
.topnav { display: flex; align-items: center; gap: clamp(14px, 2.2vw, 32px); }
.topnav a, .topnav .link-button { color: #405b63; font-size: 14px; font-weight: 650; }
.inline-form { display: inline; margin: 0; }
.link-button { padding: 0; border: 0; background: none; color: var(--teal); cursor: pointer; }
.tenant-pill, .quota-pill { padding: 7px 12px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: var(--soft); font-size: 13px; }
.tenant-switch select { width: auto; min-width: 150px; padding: 7px 30px 7px 10px; border-radius: 999px; background: var(--soft); font-size: 12px; }

.public-content { min-height: calc(100vh - 150px); }
.section { max-width: 1240px; margin: 0 auto; padding: 90px clamp(22px, 4vw, 48px); }
.hero { min-height: 720px; display: grid; grid-template-columns: 1.02fr .98fr; gap: 72px; align-items: center; }
.eyebrow { color: var(--teal); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1 { font-size: clamp(38px, 5vw, 64px); line-height: 1.05; letter-spacing: -.045em; margin: 18px 0 24px; }
h2 { font-size: clamp(27px, 3vw, 38px); line-height: 1.15; letter-spacing: -.035em; margin: 12px 0 16px; }
h3 { line-height: 1.2; letter-spacing: -.02em; }
.hero-copy > p { max-width: 670px; color: var(--muted); font-size: 19px; line-height: 1.7; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 34px 0 25px; }
.button { display: inline-flex; min-height: 44px; padding: 10px 18px; align-items: center; justify-content: center; gap: 8px; border: 1px solid var(--teal); border-radius: 11px; background: var(--teal); color: #fff; font-weight: 720; cursor: pointer; transition: .18s ease; }
.button:hover { color: #fff; background: var(--teal-dark); border-color: var(--teal-dark); transform: translateY(-1px); }
.button:disabled { opacity: .48; pointer-events: none; }
.button-ghost { color: var(--teal); background: #fff; border-color: #bcd4d4; }
.button-ghost:hover { color: var(--teal-dark); background: var(--teal-soft); border-color: #93bfbc; }
.button-large { min-height: 51px; padding: 12px 24px; }
.button-small { min-height: 37px; padding: 7px 13px; border-radius: 9px; font-size: 14px; }
.trust-row { display: flex; flex-wrap: wrap; gap: 9px 22px; color: #557078; font-size: 13px; }
.trust-row span::first-letter { color: var(--teal); }
.hero-panel { position: relative; }
.hero-panel::before { content: ""; position: absolute; inset: -70px -45px -55px -55px; background: radial-gradient(circle at 45% 45%, #c8ebe4 0, rgba(223,242,239,.62) 36%, transparent 67%); z-index: -1; }
.mini-window { padding: 0 28px 28px; border: 1px solid rgba(193,216,216,.9); border-radius: 21px; background: rgba(255,255,255,.95); box-shadow: 0 35px 90px rgba(28,78,83,.15); overflow: hidden; transform: rotate(1deg); }
.window-head { height: 48px; margin: 0 -28px 24px; padding: 0 20px; display: flex; align-items: center; gap: 7px; border-bottom: 1px solid var(--line); background: #f8fbfb; }
.window-head span { width: 8px; height: 8px; border-radius: 50%; background: #c9d7d8; }
.window-head em { margin-left: auto; color: #809398; font-size: 11px; font-style: normal; }
.result-hero { display: flex; gap: 17px; align-items: center; padding: 18px; border-radius: 14px; background: var(--teal-soft); }
.result-hero small, .mini-grid small, .stat-card > span { display: block; color: var(--muted); font-size: 12px; }
.result-hero strong { display: block; margin: 2px 0; font-size: 20px; }
.result-hero p { margin: 0; color: var(--muted); font-size: 12px; }
.status-icon { width: 46px; height: 46px; flex: 0 0 46px; display: grid; place-items: center; border-radius: 50%; background: var(--teal); color: #fff; font-size: 23px; font-weight: 800; }
.mini-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 22px 0; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--line); }
.mini-grid div { padding: 15px; background: #fff; }
.mini-grid b { display: block; margin-top: 4px; font-size: 14px; }
.validation-line { padding: 13px 15px; border-radius: 10px; display: flex; justify-content: space-between; background: var(--soft); font-size: 12px; }
.validation-line strong { color: var(--teal); }

.section-heading { max-width: 760px; margin: 0 auto 45px; text-align: center; }
.section-heading > p { color: var(--muted); font-size: 17px; }
.demo-section { max-width: 100%; background: #eff6f5; }
.demo-card { max-width: 880px; margin: 0 auto; padding: 28px; border: 1px solid #d4e4e3; border-radius: 22px; background: #fff; box-shadow: var(--shadow); }
.drop-form { display: grid; gap: 18px; }
.dropzone { min-height: 210px; padding: 28px; border: 1.5px dashed #9dc8c3; border-radius: 15px; background: #f8fcfb; display: grid; place-items: center; align-content: center; gap: 7px; text-align: center; cursor: pointer; transition: .18s; }
.dropzone:hover, .dropzone.dragover { border-color: var(--teal); background: var(--teal-soft); }
.dropzone.large { min-height: 330px; }
.dropzone strong { font-size: 18px; }
.dropzone span { color: var(--muted); font-size: 13px; }
.dropzone input[type=file] { width: min(100%, 360px); margin-top: 10px; color: var(--muted); }
.upload-icon { width: 50px; height: 50px; border-radius: 14px; display: grid; place-items: center; background: var(--teal-soft); color: var(--teal) !important; font-size: 28px !important; }
.demo-result { margin-top: 24px; padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: var(--soft); }
.demo-result h3 { margin: 12px 0; font-size: 23px; }
.demo-result dl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.demo-result dl div, .data-list div { padding: 12px 0; border-bottom: 1px solid var(--line); }
.demo-result dt, .data-list dt { color: var(--muted); font-size: 12px; }
.demo-result dd, .data-list dd { margin: 4px 0 0; font-weight: 670; }
.features { padding-top: 115px; }
.feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.feature-grid article { min-height: 245px; padding: 26px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.feature-grid article > span { color: #7aa7a4; font-size: 13px; font-weight: 750; }
.feature-grid h3 { margin: 32px 0 13px; font-size: 23px; }
.feature-grid p { color: var(--muted); line-height: 1.7; }
.pricing-preview { max-width: 100%; background: #f4f8f8; }
.plan-grid { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; align-items: stretch; }
.plan-card { position: relative; padding: 30px; border: 1px solid var(--line); border-radius: 19px; background: #fff; display: flex; flex-direction: column; }
.plan-card.recommended { border-color: #84bab6; box-shadow: 0 16px 45px rgba(11,119,119,.12); transform: translateY(-8px); }
.plan-card.current { outline: 3px solid rgba(11,119,119,.15); }
.recommend-label { position: absolute; top: 0; right: 22px; padding: 7px 11px; border-radius: 0 0 9px 9px; background: var(--teal); color: #fff; font-size: 11px; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; }
.plan-card h2, .plan-card h3 { margin: 5px 0 8px; font-size: 26px; }
.plan-card > p { min-height: 48px; color: var(--muted); }
.plan-price { margin: 12px 0 20px; font-size: 24px; font-weight: 800; letter-spacing: -.03em; }
.plan-card ul { padding: 0; margin: 0 0 26px; list-style: none; flex-grow: 1; }
.plan-card li { padding: 9px 0 9px 25px; border-bottom: 1px solid #eef3f3; position: relative; font-size: 14px; }
.plan-card li::before { content: "✓"; position: absolute; left: 0; color: var(--teal); font-weight: 800; }
.price-footnote { margin: 24px auto 0; color: var(--muted); font-size: 12px; text-align: center; }
.disclaimer-card { margin-top: 70px; margin-bottom: 70px; padding-top: 55px; padding-bottom: 55px; border: 1px solid #c7dcda; border-radius: 22px; background: linear-gradient(120deg, #eff9f7, #fff); display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 50px; }
.disclaimer-card p { color: var(--muted); font-size: 17px; margin: 0; }

.footer { min-height: 110px; padding: 28px clamp(22px, 4vw, 64px); border-top: 1px solid var(--line); background: #fff; display: flex; align-items: center; justify-content: space-between; gap: 25px; color: var(--muted); font-size: 13px; }
.footer > div { display: grid; gap: 5px; }
.footer strong { color: var(--ink); }
.footer nav { display: flex; flex-wrap: wrap; gap: 18px; }
.legal-note { color: #788c91; font-size: 12px; }

.sidebar { width: 244px; position: fixed; top: 72px; left: 0; bottom: 0; z-index: 20; padding: 28px 18px 20px; border-right: 1px solid var(--line); background: #fff; display: flex; flex-direction: column; }
.sidebar nav { display: grid; gap: 4px; }
.sidebar nav a { padding: 11px 13px; border-radius: 10px; color: #4d656c; display: flex; align-items: center; gap: 11px; font-size: 14px; font-weight: 650; }
.sidebar nav a span { width: 19px; color: #789196; text-align: center; }
.sidebar nav a:hover, .sidebar nav a.active { color: var(--teal-dark); background: var(--teal-soft); }
.sidebar-plan { margin-top: auto; padding: 16px; border-radius: 13px; background: #f0f7f6; display: grid; gap: 3px; }
.sidebar-plan strong { font-size: 18px; }
.sidebar-plan > span:last-child { color: var(--muted); font-size: 12px; }
.portal-content { min-height: calc(100vh - 72px); margin-left: 244px; padding: 45px clamp(28px, 4vw, 64px) 70px; }
.portal-footer { margin-left: 244px; }
.page-head { max-width: 1260px; margin: 0 auto 28px; display: flex; justify-content: space-between; align-items: end; gap: 25px; }
.page-head h1 { margin: 8px 0 5px; font-size: clamp(30px, 3.2vw, 43px); }
.page-head p { margin: 0; color: var(--muted); }
.back-link { display: inline-block; margin-bottom: 5px; font-size: 13px; font-weight: 650; }
.messages { max-width: 1260px; margin: 0 auto 20px; display: grid; gap: 8px; }
.message { padding: 13px 16px; border: 1px solid #c8dedb; border-radius: 10px; background: var(--teal-soft); color: var(--teal-dark); }
.message.error { border-color: #f0c1c5; background: var(--red-soft); color: var(--red); }
.message.warning { border-color: #efd8a8; background: var(--amber-soft); color: #8a510c; }
.stat-grid { max-width: 1260px; margin: 0 auto 24px; display: grid; grid-template-columns: 1.45fr repeat(3, 1fr); gap: 14px; }
.stat-card { min-height: 145px; padding: 21px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.stat-card.highlight { background: linear-gradient(135deg, #eaf7f5, #fff); border-color: #c7e1de; }
.stat-card strong { display: block; margin: 8px 0 11px; font-size: 34px; letter-spacing: -.04em; }
.stat-card strong small { color: var(--muted); font-size: 17px; font-weight: 600; }
.stat-card > small { color: var(--muted); }
.progress { height: 6px; margin: 11px 0 7px; border-radius: 999px; overflow: hidden; background: #d9e8e7; }
.progress i { display: block; height: 100%; border-radius: inherit; background: var(--teal); }
.content-card { max-width: 1260px; margin: 0 auto 22px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 8px 30px rgba(31,67,72,.035); overflow: hidden; }
.card-head { padding: 22px 25px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.card-head h2 { margin: 0 0 3px; font-size: 20px; }
.card-head p { margin: 0; color: var(--muted); font-size: 13px; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th { padding: 12px 18px; background: #f8fafa; color: #74878c; font-size: 11px; text-align: left; text-transform: uppercase; letter-spacing: .06em; }
td { padding: 16px 18px; border-top: 1px solid #edf2f2; font-size: 13px; }
td strong, td small { display: block; }
td small { margin-top: 3px; color: var(--muted); }
.click-row { cursor: pointer; transition: background .15s; }
.click-row:hover { background: #f6fbfa; }
.empty-cell { padding: 50px; text-align: center; color: var(--muted); }
.empty-cell strong { color: var(--ink); font-size: 16px; }
.status-badge { display: inline-flex; padding: 5px 9px; border-radius: 999px; background: #eef3f3; color: #60767c; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.status-badge.valid { background: var(--teal-soft); color: var(--teal-dark); }
.status-badge.warning { background: var(--amber-soft); color: #945408; }
.status-badge.invalid, .status-badge.failed { background: var(--red-soft); color: var(--red); }
.beta-info { max-width: 1260px; margin: 22px auto; padding: 15px 18px; border: 1px solid #cadedd; border-radius: 12px; background: #f5faf9; display: flex; gap: 13px; align-items: flex-start; color: #567177; font-size: 13px; }
.beta-info > span { width: 24px; height: 24px; flex: 0 0 24px; display: grid; place-items: center; border-radius: 50%; background: var(--teal); color: #fff; font-weight: 800; }
.beta-info p { margin: 1px 0 0; }
.upload-layout, .team-layout { max-width: 1260px; margin: 0 auto; display: grid; grid-template-columns: 1.55fr .75fr; gap: 20px; align-items: start; }
.upload-card { margin: 0; }
.upload-card .drop-form { padding: 28px; }
.upload-summary { padding: 13px 16px; border-radius: 10px; background: var(--soft); display: flex; justify-content: space-between; color: var(--muted); font-size: 13px; }
.upload-summary strong { color: var(--ink); }
.info-card { padding: 26px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.info-card ol { padding: 0; margin: 24px 0; list-style: none; counter-reset: steps; }
.info-card li { padding: 0 0 20px 42px; position: relative; counter-increment: steps; }
.info-card li::before { content: counter(steps); position: absolute; left: 0; top: 0; width: 27px; height: 27px; border-radius: 8px; display: grid; place-items: center; background: var(--teal-soft); color: var(--teal); font-size: 12px; font-weight: 800; }
.info-card li b, .info-card li span { display: block; }
.info-card li span { color: var(--muted); font-size: 12px; }
.filter-bar { padding: 18px; display: grid; grid-template-columns: 1fr 210px auto; gap: 10px; }
input, select, textarea { width: 100%; padding: 11px 12px; border: 1px solid #cddbdd; border-radius: 9px; background: #fff; color: var(--ink); outline: none; }
input:focus, select:focus, textarea:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(11,119,119,.1); }
.result-banner { max-width: 1260px; margin: 0 auto 20px; padding: 23px 25px; border: 1px solid #c9dedc; border-radius: var(--radius); background: #eef8f6; display: flex; gap: 17px; align-items: center; }
.result-banner.warning { border-color: #eed8a9; background: #fff9eb; }
.result-banner.invalid, .result-banner.failed { border-color: #edc7ca; background: #fff2f3; }
.result-banner.warning .status-icon { background: var(--amber); }
.result-banner.invalid .status-icon, .result-banner.failed .status-icon { background: var(--red); }
.result-banner h2 { margin: 3px 0; font-size: 24px; }
.result-banner p { margin: 0; color: var(--muted); font-size: 12px; }
.format-pill { margin-left: auto; padding: 7px 12px; border-radius: 999px; background: rgba(255,255,255,.7); color: #4d6b70; font-size: 11px; }
.detail-grid { max-width: 1260px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.detail-grid .content-card { width: 100%; margin: 0 0 20px; }
.data-list { padding: 5px 25px 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 0 25px; }
.data-list dd small { display: block; margin-top: 3px; color: var(--muted); font-weight: 400; }
.message-list { padding: 18px 24px 24px; display: grid; gap: 10px; }
.locked-panel { padding: 17px; border-radius: 11px; background: var(--soft); color: var(--muted); }
.locked-panel strong { color: var(--ink); }
.locked-panel p { margin: 5px 0; font-size: 12px; }
.locked-data { background: linear-gradient(90deg, #f6f9f9, #fff); }
.validation-message { padding: 13px; border: 1px solid var(--line); border-radius: 10px; display: flex; gap: 12px; }
.validation-message > span { color: var(--teal); font-size: 10px; font-weight: 800; }
.validation-message strong { font-size: 13px; }
.validation-message p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.validation-message.warning { border-color: #efd9af; background: #fffbf2; }
.validation-message.error { border-color: #ecc4c8; background: #fff6f6; }
.technical-card details { padding: 18px 24px; }
.technical-card summary { cursor: pointer; font-weight: 700; }
.technical-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 25px; margin-top: 18px; }
pre { max-height: 280px; padding: 15px; border-radius: 10px; overflow: auto; background: #172c32; color: #dff2ef; font-size: 11px; white-space: pre-wrap; }
code { padding: 2px 5px; border-radius: 5px; background: #edf3f2; font-size: 12px; word-break: break-all; }
.upgrade-card { max-width: 1260px; margin: 0 auto 20px; padding: 24px; border: 1px solid #c8dedd; border-radius: var(--radius); background: linear-gradient(115deg, #e9f6f4, #fff); display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.upgrade-card h2 { font-size: 24px; margin-bottom: 7px; }
.upgrade-card p { margin: 0; color: var(--muted); }
.team-layout .content-card { width: 100%; margin: 0; }
.member-list { padding: 10px 24px 24px; }
.member-list article { padding: 14px 0; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 12px; }
.avatar { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; background: var(--teal-soft); color: var(--teal); font-weight: 800; }
.member-list article div { flex-grow: 1; }
.member-list strong, .member-list small { display: block; }
.member-list small { color: var(--muted); }
.role-pill { padding: 5px 9px; border-radius: 999px; background: var(--soft); color: var(--muted); font-size: 10px; font-weight: 750; }
.stack-form { padding: 24px; display: grid; gap: 17px; }
.stack-form label { display: grid; gap: 6px; color: #405b62; font-size: 13px; font-weight: 650; }
.subheading { padding: 0 24px; font-size: 14px; }
.pending-invite { margin: 0 24px 10px; padding: 10px 12px; border-radius: 9px; background: var(--soft); display: flex; justify-content: space-between; font-size: 12px; }
.pending-invite small { color: var(--muted); }
.plans-page { max-width: 1260px; margin: 0 auto; }
.plans-page .section-heading h1 { font-size: clamp(34px,4.5vw,56px); }
.plans-page .beta-info { margin-top: 35px; }
.template-layout { max-width: 1260px; margin: 0 auto 22px; display: grid; grid-template-columns: .78fr 1.22fr; gap: 20px; align-items: start; }
.template-layout .content-card { width: 100%; margin: 0; }
.invoice-preview { min-height: 620px; padding: 48px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: var(--shadow); }
.preview-top { padding-bottom: 24px; border-bottom: 4px solid var(--preview-primary); display: flex; justify-content: space-between; align-items: end; }
.preview-top strong { color: var(--preview-primary); font-size: 23px; }
.preview-top span { font-size: 29px; font-weight: 300; letter-spacing: .11em; }
.preview-address { margin: 45px 0 35px; display: grid; gap: 3px; }
.preview-address small, .preview-meta small { color: var(--muted); }
.preview-meta { display: flex; gap: 45px; margin-bottom: 38px; }
.preview-meta span { display: grid; }
.preview-lines { font-size: 13px; }
.preview-lines > div { padding: 12px; display: grid; grid-template-columns: 1fr 80px 110px; gap: 10px; border-bottom: 1px solid var(--line); }
.preview-lines > div:first-child { background: color-mix(in srgb, var(--preview-accent) 22%, white); }
.preview-lines > div > :last-child { text-align: right; }
.preview-total { margin: 30px 0 80px auto; width: 245px; padding: 16px 0; border-top: 2px solid var(--preview-primary); display: flex; justify-content: space-between; }
.invoice-preview footer { padding-top: 15px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; }
.template-list { padding: 12px 24px 24px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.template-list a { padding: 12px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); display: flex; align-items: center; gap: 10px; }
.template-list i { width: 9px; height: 38px; border-radius: 5px; }
.template-list span { flex-grow: 1; display: grid; }
.template-list small { color: var(--muted); }
.template-list em { padding: 4px 7px; border-radius: 999px; background: var(--teal-soft); color: var(--teal); font-size: 9px; font-style: normal; }

.auth-wrap { min-height: calc(100vh - 182px); display: grid; grid-template-columns: minmax(460px, 680px) minmax(300px, 1fr); }
.auth-card { padding: 80px clamp(30px, 7vw, 100px); align-self: center; }
.auth-card.wide { max-width: 780px; }
.auth-card h1 { margin-bottom: 12px; font-size: 46px; }
.auth-card > p { color: var(--muted); }
.auth-card .stack-form { padding: 18px 0 0; }
.auth-aside { padding: 70px; background: linear-gradient(145deg, #0a6869, #123e47); color: #fff; display: flex; flex-direction: column; justify-content: center; }
.auth-aside h2 { max-width: 480px; margin-top: 25px; font-size: clamp(34px, 4vw, 55px); }
.auth-aside p { max-width: 480px; color: #c8dedf; font-size: 18px; }
.auth-switch { margin-top: 22px !important; font-size: 13px; }
.two-columns { grid-template-columns: 1fr 1fr; }
.full { grid-column: 1 / -1; }
.checkbox-label { grid-template-columns: auto 1fr !important; align-items: start; }
.checkbox-label input { width: auto; margin-top: 3px; }
.form-legal { color: var(--muted); font-size: 12px; }
.check-list { padding: 0; list-style: none; }
.check-list li { margin: 11px 0; color: #d5eaea; }
.check-list li::before { content: "✓"; margin-right: 11px; color: #8ae0cf; }
.field-error, .errorlist { margin: 3px 0 0; padding: 8px 10px; border-radius: 7px; background: var(--red-soft); color: var(--red); font-size: 12px; list-style: none; }
.helptext { color: var(--muted); font-size: 11px; font-weight: 400; }

.legal-page { max-width: 850px; margin: 0 auto; padding: 75px 30px 100px; }
.legal-page h1 { font-size: 48px; }
.updated { color: var(--muted); font-size: 13px; }
.legal-body { margin-top: 40px; }
.legal-body h2 { margin-top: 38px; font-size: 24px; }
.legal-body h3 { margin-top: 28px; }
.legal-body p, .legal-body li { color: #4f666d; }
.draft-banner { margin-bottom: 35px; padding: 17px 19px; border: 1px solid #efd6a7; border-radius: 11px; background: var(--amber-soft); color: #704816; display: grid; gap: 3px; }
.draft-banner span { font-size: 12px; }

.cookie-banner { position: fixed; left: 22px; right: 22px; bottom: 20px; z-index: 100; max-width: 1050px; margin: auto; padding: 20px 22px; border: 1px solid #bed4d3; border-radius: 16px; background: rgba(255,255,255,.98); box-shadow: 0 25px 80px rgba(14,51,56,.24); display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.cookie-banner[hidden] { display: none; }
.cookie-banner p { max-width: 680px; margin: 4px 0 1px; color: var(--muted); font-size: 13px; }
.text-action { padding: 0; border: 0; background: transparent; color: var(--teal); cursor: pointer; font-size: 12px; font-weight: 700; }
.cookie-actions { flex: 0 0 auto; display: flex; gap: 9px; }
.cookie-dialog { width: min(580px, calc(100% - 32px)); padding: 0; border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); }
.cookie-dialog::backdrop { background: rgba(14,39,45,.48); }
.dialog-head, .dialog-actions { padding: 18px 20px; display: flex; justify-content: space-between; align-items: center; }
.dialog-head { border-bottom: 1px solid var(--line); }
.dialog-head button { border: 0; background: none; font-size: 25px; cursor: pointer; }
.consent-row { padding: 17px 20px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.consent-row span { display: grid; }
.consent-row small { color: var(--muted); }
.consent-row input { width: 20px; height: 20px; }
.dialog-actions { gap: 10px; justify-content: flex-end; }

@media (max-width: 1050px) {
    .hero { grid-template-columns: 1fr; padding-top: 65px; gap: 40px; }
    .hero-panel { max-width: 680px; }
    .feature-grid { grid-template-columns: 1fr 1fr; }
    .plan-grid { grid-template-columns: 1fr; max-width: 650px; }
    .plan-card.recommended { transform: none; }
    .stat-grid { grid-template-columns: 1fr 1fr; }
    .upload-layout, .team-layout, .detail-grid, .template-layout { grid-template-columns: 1fr; }
    .auth-wrap { grid-template-columns: 1fr; }
    .auth-aside { display: none; }
}

@media (max-width: 760px) {
    .topbar { padding: 0 17px; }
    .topnav > a:not(.button), .tenant-pill { display: none; }
    .sidebar { width: 100%; height: 62px; top: auto; bottom: 0; padding: 7px; border: 0; border-top: 1px solid var(--line); }
    .sidebar nav { height: 100%; grid-template-columns: repeat(6, 1fr); }
    .sidebar nav a { padding: 4px; justify-content: center; font-size: 0; }
    .sidebar nav a span { font-size: 20px; }
    .sidebar-plan { display: none; }
    .portal-content { margin-left: 0; padding: 28px 17px 90px; }
    .portal-footer { margin-left: 0; margin-bottom: 62px; }
    .section { padding: 65px 20px; }
    .hero { min-height: auto; }
    h1 { font-size: 40px; }
    .feature-grid, .stat-grid, .data-list, .technical-grid, .disclaimer-card { grid-template-columns: 1fr; }
    .page-head, .footer, .cookie-banner { align-items: flex-start; flex-direction: column; }
    .page-head .button { width: 100%; }
    .filter-bar { grid-template-columns: 1fr; }
    .result-banner { align-items: flex-start; flex-wrap: wrap; }
    .format-pill { margin-left: 0; }
    .two-columns { grid-template-columns: 1fr; }
    .full { grid-column: 1; }
    .auth-card { padding: 55px 24px; }
    .cookie-actions { width: 100%; flex-direction: column; }
    .cookie-actions .button { width: 100%; }
    .invoice-preview { min-height: 520px; padding: 25px; }
    .template-list { grid-template-columns: 1fr; }
}

/* 0.2 design system ------------------------------------------------------ */
.brand > span:last-child { display:grid; line-height:1.05; }
.brand > span:last-child small { margin-top:5px; color:#86a0b6; font-size:8px; font-weight:800; letter-spacing:.16em; }
.public-topbar { width:min(1500px,100%); height:76px; margin:auto; padding:0 58px; border-bottom:1px solid #e5ecee; background:#fff; display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:40; }
.public-topbar .topnav { margin-left:auto; margin-right:72px; }
.public-topbar .topnav a { color:#526a81; font-size:13px; }
.landing-hero { width:min(1500px,100%); min-height:720px; margin:auto; padding:68px 58px 58px; display:grid; grid-template-columns:1.1fr .8fr; gap:90px; align-items:center; overflow:hidden; background:linear-gradient(115deg,#f8fbfb 0%,#f3f9f8 64%,#eaf8f3 100%); position:relative; }
.landing-hero:after { content:""; width:270px; height:270px; border:1px solid #cce9df; border-radius:50%; position:absolute; right:-110px; top:40px; }
.landing-hero .hero-copy { max-width:720px; }
.hero-badge { display:inline-flex; padding:8px 14px; border:1px solid #89d4bc; border-radius:999px; background:#fff; color:#087968; box-shadow:0 2px 5px rgba(8,121,104,.12); font-size:12px; font-weight:750; }
.landing-hero h1 { margin:30px 0 24px; color:#092e33; font-size:clamp(54px,6vw,86px); line-height:.94; letter-spacing:-.065em; }
.landing-hero h1 em { color:#07947e; font-style:normal; }
.landing-hero .hero-copy>p { max-width:630px; color:#587084; font-size:18px; line-height:1.6; }
.landing-hero .trust-row { margin-top:35px; padding-bottom:35px; border-bottom:1px solid #dce8e8; }
.landing-hero .trust-row span { color:#47627a; }
.practice-note { margin-top:25px; display:flex; align-items:center; }
.practice-note .avatar { border:2px solid #fff; margin-right:-7px; }
.practice-note p { margin:0 0 0 18px; display:grid; }
.practice-note small { color:#71879a; }
.avatar.tiny { width:30px; height:30px; font-size:9px; background:#dff6f4; color:#08776e; }
.avatar.blue { background:#e4f1fb; color:#287ca4; }.avatar.amber { background:#fff0cd; color:#bd730c; }
.login-stage { position:relative; z-index:2; }
.login-card { padding:38px 38px 22px; border:8px solid rgba(255,255,255,.75); outline:1px solid #dde7e8; border-radius:30px; background:#fff; box-shadow:0 26px 65px rgba(21,64,68,.13); }
.login-head { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }
.login-head h2 { margin:7px 0 18px; color:#0a3036; font-size:29px; }
.login-lock { width:45px; height:45px; display:grid; place-items:center; border-radius:13px; background:#def8ee; color:#088d77; font-size:22px; }
.login-form { display:grid; gap:18px; }
.login-form label { display:grid; gap:7px; color:#314c65; font-size:12px; font-weight:700; }
.login-form label>span { display:flex; justify-content:space-between; }
.login-form input { height:53px; padding:0 17px; border-radius:14px; background:#f4f7f7; }
.login-form .button { width:100%; height:52px; border-radius:14px; box-shadow:0 14px 28px rgba(9,139,120,.22); }
.or { height:25px; display:flex; align-items:center; color:#8ca0aa; font-size:10px; text-transform:uppercase; }
.or:before,.or:after { content:""; height:1px; flex:1; background:#e4eaea; }.or span{padding:0 10px;}
.demo-link { padding:13px; border:1px solid #dbe5e7; border-radius:14px; color:#173947; display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; }
.demo-link .demo-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:11px; background:#f0f4f5; }.demo-link span:nth-child(2){display:grid}.demo-link small{color:#7c8f9b;font-size:10px}.demo-link>span:last-child{font-size:23px;color:#9cb0bb}
.quick-link { margin-top:12px; display:flex; justify-content:space-between; padding:8px 3px; color:#087f71; font-weight:750; font-size:13px; }
.register-line { margin:11px 0 0; color:#7a8f9a; text-align:center; font-size:11px; }
.login-foot { margin:-3px 22px 0; padding:16px 20px 13px; border-radius:0 0 16px 16px; background:#e9f3f1; display:flex; justify-content:space-between; color:#6d858d; font-size:10px; }
.quick-section { max-width:100%; background:#eef7f5; }
.security-band { margin-top:55px; margin-bottom:55px; padding:45px 55px; border:1px solid #c9dedd; border-radius:22px; display:grid; grid-template-columns:1fr 1.2fr auto; gap:40px; align-items:center; background:#f7fbfa; }
.security-band h2 { margin-bottom:0; }.security-band p { margin:0;color:var(--muted); }.security-band a{white-space:nowrap;font-weight:750}
.how-hero { max-width:1100px; text-align:center; }.how-hero p{max-width:780px;margin:0 auto;color:var(--muted);font-size:18px}.how-hero .hero-actions{justify-content:center}
.how-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }.how-grid article{padding:28px;border:1px solid var(--line);border-radius:18px;background:#fff}.how-grid article>b{color:var(--teal)}.how-grid p{color:var(--muted)}
.demo-explainer{margin-bottom:70px;border-radius:22px;background:#eef7f5;display:grid;grid-template-columns:1fr 1fr;gap:60px}.demo-explainer p{color:var(--muted)}

/* Customer portal */
.portal-topbar { height:74px; padding:0 24px 0 18px; border-bottom:1px solid #dfe8ea; background:#fff; position:fixed; inset:0 0 auto 0; z-index:50; display:grid; grid-template-columns:245px 1fr auto; align-items:center; }
.portal-brand { padding-right:26px; }.portal-crumb { height:74px; padding:14px 25px; border-left:1px solid #e4ebec; display:grid;align-content:center}.portal-crumb small{color:#91a1b7;font-size:9px;font-weight:800;letter-spacing:.14em}.portal-crumb strong{font-size:16px}
.portal-actions { display:flex; align-items:center; gap:14px; }.search-box{width:330px;height:42px;padding:0 14px;border:1px solid #dce6e8;border-radius:14px;background:#f7fafa;display:flex;align-items:center;gap:8px}.search-box input{height:auto;padding:0;border:0;background:transparent;box-shadow:none}.search-box kbd{padding:2px 6px;border:1px solid #dfe8ea;border-radius:6px;background:#fff;color:#8ca0ac;font-size:10px}.icon-button{width:42px;height:42px;display:grid;place-items:center;border:1px solid #dce6e8;border-radius:50%;background:#fff}.user-chip{display:flex;align-items:center;gap:10px}.user-chip>span:last-child{display:grid;min-width:120px}.user-chip b{font-size:12px}.user-chip small{color:#8597a6;font-size:10px}
.sidebar { width:255px; top:74px; padding:24px 13px 14px; }.new-invoice{width:100%;margin-bottom:25px;justify-content:flex-start;padding-left:18px}.menu-label{margin:0 9px 9px;color:#9aa8bb;font-size:9px;font-weight:800;letter-spacing:.17em;text-transform:uppercase}.administration-label{margin-top:24px}.sidebar nav a{min-height:42px;position:relative}.sidebar nav a em{margin-left:auto;padding:2px 7px;border-radius:999px;background:#eef3f6;color:#72879a;font-size:9px;font-style:normal}.nav-icon{font-size:16px}.locked-nav{color:#647984!important}.info-dot{width:17px!important;height:17px;margin-left:auto;border:1px solid #b9c8cd;border-radius:50%;display:grid!important;place-items:center;color:#70858d!important;font:700 10px/1 sans-serif;position:relative}.info-dot>span{width:230px!important;padding:10px 12px;border-radius:9px;background:#16363b;color:#fff!important;box-shadow:0 10px 25px rgba(0,0,0,.2);font-size:11px!important;font-weight:500;text-align:left;position:absolute;left:24px;top:-8px;z-index:10;opacity:0;visibility:hidden;transition:.15s}.info-dot:hover>span,.info-dot:focus>span{opacity:1;visibility:visible}.sidebar-account{margin-top:auto;padding:11px;border:1px solid #dce6e8;border-radius:15px;display:flex;align-items:center;gap:9px}.sidebar-account>span:nth-child(2){display:grid;flex:1;min-width:0}.sidebar-account b{font-size:11px}.sidebar-account small{color:#8194a1;font-size:9px}.sidebar-account form{margin:0}
.portal-content { margin-left:255px; padding:113px clamp(28px,4vw,70px) 70px; background:#f4f8f7; min-height:100vh; }.dashboard-head{max-width:1420px;margin:0 auto 27px;display:flex;justify-content:space-between;align-items:flex-end}.dashboard-head h1{margin:6px 0 5px;font-size:35px}.dashboard-head p{margin:0;color:#708497}.dashboard-stats{max-width:1420px;margin:0 auto 24px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.dashboard-stats article{min-height:155px;padding:22px;border:1px solid #dbe6e8;border-radius:17px;background:#fff;position:relative}.dashboard-stats span,.dashboard-stats small{display:block;color:#6d8296;font-size:11px}.dashboard-stats b{display:block;margin:28px 0 7px;color:#0a343a;font-size:30px;letter-spacing:-.04em}.stat-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;position:absolute;right:18px;top:18px;font-style:normal}.stat-icon.blue{background:#eaf6fb;color:#2587ae}.stat-icon.green{background:#e3f9ef;color:#08a274}.stat-icon.amber{background:#fff2df;color:#d2851b}
.dashboard-grid{max-width:1420px;margin:0 auto;display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,.68fr);gap:18px}.invoice-overview{margin:0;max-width:none}.dashboard-side{display:grid;gap:18px}.validation-summary,.quota-card{padding:22px;border:1px solid #dbe6e8;border-radius:17px;background:#fff}.summary-head{display:flex;justify-content:space-between;margin-bottom:21px}.summary-head h3{margin:0}.summary-head small{color:#80939e}.summary-head>b{width:62px;height:62px;border:6px solid #c8f6df;border-radius:50%;display:grid;place-items:center;color:#078b6d;font-size:20px}.summary-head>b small{display:inline;color:inherit;font-size:10px}.summary-row{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:15px;font-size:11px}.summary-row i{grid-column:1/-1;height:6px;border-radius:99px;background:#edf2f3;overflow:hidden}.summary-row em{display:block;height:100%;background:#06bb7e}.summary-row.warning em{background:#f0ad22}.summary-row.error em{background:#ec3c68}.quota-card{background:#0a3c3f;color:#fff;border-color:#0a3c3f;box-shadow:0 20px 45px rgba(10,60,63,.15)}.quota-card h3{margin:18px 0 5px}.quota-card p{color:#a9c3c5;font-size:12px}.quota-card .progress{background:#315e60}.quota-card a{color:#5be0be;font-size:12px;font-weight:750}.locked-feature-page{max-width:950px;margin:30px auto;text-align:center}.locked-big{width:78px;height:78px;margin:0 auto 20px;display:grid;place-items:center;border-radius:24px;background:#e2f4f0;font-size:30px}.locked-feature-page>p{max-width:620px;margin:0 auto 35px;color:var(--muted)}.upgrade-options{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;text-align:left}.upgrade-options article{padding:25px;border:1px solid var(--line);border-radius:16px;background:#fff;display:grid;gap:9px}.upgrade-options span{color:var(--muted)}

/* Read-only product demo */
.public-shell:has(.demo-portal) .public-topbar,.public-shell:has(.demo-portal)>.footer{display:none}.demo-portal{min-height:100vh;background:#f3f8f7;display:grid;grid-template-columns:245px 1fr;position:relative}.demo-ribbon{height:32px;padding:0 20px;background:#082f33;color:#b9d8d7;display:flex;align-items:center;justify-content:center;gap:18px;font-size:10px;letter-spacing:.12em;position:fixed;inset:0 0 auto;z-index:80}.demo-ribbon a{color:#66dfc1}.demo-sidebar{padding:50px 14px 20px;background:#fff;border-right:1px solid #dce7e8;display:flex;flex-direction:column;gap:5px}.demo-sidebar .brand{margin:0 4px 24px}.demo-sidebar button{margin-bottom:18px;padding:13px;border:0;border-radius:11px;background:#0b8d7f;color:#fff;font-weight:750;text-align:left}.demo-sidebar>small{margin:15px 9px 5px;color:#9baabc;font-size:9px;font-weight:800;letter-spacing:.14em}.demo-sidebar>a:not(.brand){padding:10px 11px;border-radius:9px;color:#536a7e;font-size:13px}.demo-sidebar>a.active{background:#dff5ec;color:#087c6d}.demo-sidebar em{float:right;font-style:normal}.demo-main{padding-top:32px}.demo-top{height:68px;padding:0 28px;border-bottom:1px solid #dde7e8;background:#fff;display:flex;justify-content:space-between;align-items:center}.demo-top>span{display:grid}.demo-top small{color:#93a4b4;font-size:9px;letter-spacing:.13em}.demo-body{padding:35px clamp(25px,5vw,75px)}.demo-body h1{margin:6px 0;font-size:36px}.demo-body>p{color:#728699}.demo-stats{margin:24px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.demo-stats article{padding:21px;border:1px solid var(--line);border-radius:16px;background:#fff;position:relative}.demo-stats small,.demo-stats span{display:block;color:#778b9c;font-size:11px}.demo-stats strong{display:block;margin:28px 0 5px;font-size:27px}.demo-dashboard-grid{display:grid;grid-template-columns:2fr .75fr;gap:18px}.demo-dashboard-grid .content-card{margin:0}.demo-dashboard-grid aside{display:grid;gap:18px}.demo-status-card,.system-card{padding:22px;border:1px solid var(--line);border-radius:16px;background:#fff}.demo-status-card .score{float:right;color:#079273;font-size:23px}.demo-status-card div{clear:both;margin-top:14px;font-size:10px}.demo-status-card i{height:6px;margin-top:5px;border-radius:9px;background:#04bd80;display:block}.demo-status-card i.warn{background:#f3b41d}.demo-status-card i.error{background:#f03b68}.system-card{background:#093c40;color:#fff}.system-card>span{float:right;padding:5px 8px;border-radius:999px;background:#0b685e;color:#4ce2bd;font-size:9px}.system-card p{color:#a5c2c3}.system-card a{color:#4ce2bd;font-size:12px}

/* Operator */
.operator-shell{background:#f3f6f6}.operator-topbar{height:76px;padding:0 25px;position:fixed;inset:0 0 auto;background:#fff;border-bottom:1px solid #dae4e5;display:flex;align-items:center;z-index:60}.operator-topbar .brand{width:245px}.brand-mark.gold,.avatar.gold{background:linear-gradient(145deg,#a66e16,#d3a345)}.operator-badge{padding:6px 9px;border-radius:7px;background:#fff3d8;color:#97610d;font-size:9px;font-weight:800;letter-spacing:.12em}.operator-topbar>div{margin-left:auto;display:flex;align-items:center;gap:24px;font-size:12px}.operator-sidebar{width:255px;padding:104px 15px 20px;position:fixed;inset:0 auto 0 0;background:#092f34;color:#fff;display:flex;flex-direction:column}.operator-sidebar .menu-label{color:#77999c}.operator-sidebar nav{display:grid;gap:4px;margin-bottom:20px}.operator-sidebar nav a{padding:11px 13px;border-radius:9px;color:#bdd0d1;font-size:13px}.operator-sidebar nav a:hover,.operator-sidebar nav a.active{background:#12464a;color:#fff}.operator-note{margin-top:auto;padding:16px;border:1px solid #1c5256;border-radius:13px;display:grid;gap:5px}.operator-note span{color:#88a7a9;font-size:10px}.operator-content{min-height:100vh;margin-left:255px;padding:114px clamp(28px,4vw,65px) 70px}.operator-page-head{max-width:1450px;margin:0 auto 28px;display:flex;justify-content:space-between;align-items:flex-end}.operator-page-head h1{margin:5px 0;font-size:37px}.operator-page-head p{margin:0;color:var(--muted)}.operator-stats{max-width:1450px;margin:0 auto 20px;display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.operator-stats article{padding:21px;border:1px solid #dbe5e6;border-top:3px solid #bd8a32;border-radius:14px;background:#fff}.operator-stats small,.operator-stats span{color:#748b91}.operator-stats b{display:block;margin:15px 0 4px;font-size:29px}.operator-grid{max-width:1450px;margin:0 auto;display:grid;grid-template-columns:2fr .8fr;gap:18px}.operator-card{border:1px solid #dbe5e6;border-radius:16px;background:#fff;overflow:hidden}.operator-system,.operator-shortcuts{padding:23px;border-radius:16px;background:#0a373b;color:#fff}.operator-system.online{background:#0a4542}.operator-system h3{margin:22px 0 7px}.operator-system p{color:#a5c1c2;font-size:12px}.operator-system a{color:#63e1bf;font-size:12px}.operator-shortcuts{margin-top:18px;background:#fff;color:var(--ink);border:1px solid #dbe5e6}.operator-shortcuts a{padding:11px 0;border-top:1px solid #e7eeee;color:#526a70;display:flex;justify-content:space-between;font-size:12px}.operator-plan-grid{max-width:1450px;margin:0 auto 20px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.operator-plan-grid>article{padding:25px;border:1px solid #dbe5e6;border-radius:17px;background:#fff;display:flex;flex-direction:column}.operator-plan-grid h2{margin:18px 0 4px}.operator-plan-grid p{min-height:44px;color:var(--muted)}.operator-price{font-size:25px}.operator-plan-grid dl{margin:22px 0}.operator-plan-grid dl div{padding:8px 0;border-bottom:1px solid #e9eeee;display:flex;justify-content:space-between;font-size:11px}.operator-plan-grid dt{color:#768b90}.operator-plan-grid dd{margin:0}.operator-recommended{margin-left:7px;color:#ad771b;font-size:9px;font-weight:800}.option-chips{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:22px;flex:1}.option-chips span{padding:4px 7px;border-radius:7px;background:#edf5f4;color:#467069;font-size:9px}.info-panel{max-width:1450px;margin:0 auto;padding:20px}.info-panel p{margin:5px 0;color:var(--muted)}.operator-form{max-width:1100px;margin:0 auto}.operator-form>.operator-card{margin-bottom:18px}.form-grid{padding:24px;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.form-grid label{display:grid;gap:6px;color:#52686d;font-size:11px;font-weight:700}.feature-checks{padding:20px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.feature-checks label{padding:13px;border:1px solid #dfe8e9;border-radius:11px;display:flex;gap:11px;align-items:flex-start}.feature-checks input{width:auto;margin-top:3px}.feature-checks span{display:grid}.feature-checks small{color:var(--muted)}.sticky-save{position:sticky;bottom:15px;padding:13px 17px;border-radius:13px;background:#0a373b;color:#fff;box-shadow:0 15px 40px rgba(0,0,0,.2);display:flex;justify-content:space-between;align-items:center}.component-status{max-width:1450px;margin:0 auto 18px;padding:22px;border:1px solid #dbe5e6;border-radius:16px;background:#fff;display:flex;justify-content:space-between;align-items:center}.component-status h2{margin:10px 0 2px}.component-status p{margin:0;color:var(--muted)}.component-grid{max-width:1450px;margin:0 auto 18px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.component-grid article{padding:21px;border:1px solid #dbe5e6;border-radius:15px;background:#fff}.component-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#e5f3f1;color:#087f72}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:#d34455}.status-dot.on{background:#08ad77}.component-grid article>div{display:flex;justify-content:space-between}.component-grid h3{margin:18px 0 4px}.component-grid dl div{display:flex;justify-content:space-between;font-size:10px}.component-grid dt{color:#819297}.component-grid dd{margin:0}.source-link{display:block;margin-top:18px;font-size:10px}.update-warning,.payment-setup{max-width:1450px;margin:18px auto;padding:18px 20px;border:1px solid #e3ca96;border-radius:13px;background:#fff8e9;display:flex;gap:14px}.update-warning p,.payment-setup p{margin:2px 0;color:#745c35;font-size:12px}.payment-setup>span{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#c98719;color:#fff;font-weight:800}.payment-setup h2{margin:0 0 4px;font-size:18px}.event-list{padding:15px 22px}.event-list article{padding:11px 0;border-bottom:1px solid #e6eeee;display:flex;gap:11px;align-items:center}.event-list article>div{display:grid}.event-list small{color:var(--muted)}.legal-admin-grid{max-width:1450px;margin:0 auto;display:grid;grid-template-columns:330px 1fr;gap:18px}.legal-list>a{padding:15px 18px;border-top:1px solid #e5ecec;display:flex;justify-content:space-between;align-items:center;color:var(--ink)}.legal-list>a.active{background:#eef6f4}.legal-list>a>span:first-child{display:grid}.legal-list small{color:var(--muted)}.legal-editor textarea{min-height:520px;font-family:ui-monospace,monospace;font-size:12px}.empty-editor{min-height:430px;display:grid;place-items:center;align-content:center;color:var(--muted)}.empty-editor>span{font-size:44px;color:#bc8a37}.empty-editor h2{margin:12px 0 5px}

@media (max-width:1100px){.landing-hero{grid-template-columns:1fr;gap:45px}.landing-hero .login-stage{max-width:620px}.dashboard-stats,.demo-stats,.operator-stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.demo-dashboard-grid,.operator-grid{grid-template-columns:1fr}.operator-plan-grid,.component-grid{grid-template-columns:repeat(2,1fr)}.public-topbar .topnav{display:none}.search-box{display:none}}
@media (max-width:760px){.public-topbar{padding:0 16px}.landing-hero{padding:50px 22px}.landing-hero h1{font-size:52px}.login-card{padding:25px 20px}.security-band,.demo-explainer{grid-template-columns:1fr}.how-grid{grid-template-columns:1fr}.portal-topbar{grid-template-columns:1fr auto}.portal-crumb,.portal-actions .user-chip{display:none}.sidebar{height:64px}.sidebar .new-invoice{margin:0}.sidebar .new-invoice span,.sidebar>.menu-label,.sidebar .sidebar-account,.sidebar nav:nth-of-type(2){display:none}.sidebar nav:first-of-type{display:flex;overflow-x:auto}.sidebar nav a{min-width:52px;font-size:0}.sidebar nav a .nav-icon{font-size:17px}.sidebar nav a em,.sidebar nav a .info-dot{display:none!important}.portal-content{padding-top:100px}.dashboard-stats{grid-template-columns:1fr}.dashboard-head{align-items:flex-start;flex-direction:column}.dashboard-head .button{width:100%}.demo-portal{display:block}.demo-sidebar{display:none}.demo-stats{grid-template-columns:1fr}.operator-topbar{padding:0 15px}.operator-topbar .brand{width:auto}.operator-badge,.operator-topbar>div>a{display:none}.operator-sidebar{width:65px;padding:95px 7px 10px}.operator-sidebar .menu-label,.operator-sidebar .operator-note{display:none}.operator-sidebar nav a{font-size:0;text-align:center}.operator-sidebar nav a::first-letter{font-size:16px}.operator-content{margin-left:65px;padding:105px 14px 60px}.operator-page-head{align-items:flex-start;flex-direction:column}.operator-stats,.operator-plan-grid,.component-grid,.form-grid,.feature-checks,.legal-admin-grid{grid-template-columns:1fr}.upgrade-options{grid-template-columns:1fr}}
.inline-plan-form { display: flex; align-items: center; gap: 8px; min-width: 280px; }
.inline-plan-form select { min-width: 150px; flex: 1; }
.button-small { min-height: 38px; padding: 8px 13px; font-size: .82rem; }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-bottom: 20px; }
.settings-company { margin-top: 20px; }
.settings-notice { display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px; margin-bottom: 20px; border: 1px solid #f1d492; border-radius: 14px; background: #fff9eb; color: #6f4a00; }
.settings-notice > span { display: grid; place-items: center; flex: 0 0 30px; width: 30px; height: 30px; border-radius: 50%; background: #f3bd45; color: #fff; font-weight: 800; }
.settings-notice p { margin: 4px 0 0; }
.settings-notice.danger { border-color: #ffc2cc; background: #fff2f4; color: #8b1730; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px 18px; }
.form-grid label { display: grid; gap: 7px; font-weight: 700; color: var(--ink); }
.form-grid .form-wide { grid-column: 1 / -1; }
.member-admin-list { display: grid; gap: 10px; }
.member-admin-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; }
.member-admin-list small { display: block; margin-top: 3px; color: var(--muted); }
.membership-summary { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--line); }
.extraction-error { margin: 0 0 16px; padding: 13px 15px; border: 1px solid #ffc2cc; border-radius: 12px; background: #fff2f4; color: #8b1730; }
.extraction-error p { margin: 5px 0 0; overflow-wrap: anywhere; }
@media (max-width: 900px) { .settings-grid, .form-grid { grid-template-columns: 1fr; } .form-grid .form-wide { grid-column: auto; } }

/* 0.2.3 portal refinements */
.sidebar-account{display:grid;padding:14px;gap:12px;background:linear-gradient(145deg,#f4fbf9,#fff);box-shadow:0 10px 28px rgba(8,72,69,.09)}.account-main{display:flex;align-items:center;gap:10px}.account-main>span:last-child{display:grid;min-width:0}.account-usage{display:grid;gap:6px;color:#637d82;font-size:10px}.mini-progress{height:6px;overflow:hidden;border-radius:9px;background:#dfeceb}.mini-progress i{height:100%;display:block;background:#0a9482}.account-links{display:grid;border-top:1px solid #dce8e7}.account-links a,.account-links button{width:100%;padding:8px 2px 0;display:flex;justify-content:space-between;color:#406064;font-size:10px}.search-box button{border:0;background:transparent;color:#087f72;cursor:pointer}.invoice-view-tabs{margin:-4px 0 15px;display:flex;gap:8px}.invoice-view-tabs a{padding:9px 17px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#5f777d;font-size:12px;font-weight:700}.invoice-view-tabs a.active{background:#0b8980;color:#fff;border-color:#0b8980}.invoice-toolbar{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:18px}.invoice-toolbar h1{margin:10px 0 4px;font-size:34px}.invoice-toolbar p{margin:0;color:var(--muted)}.toolbar-actions{display:flex;gap:8px}.action-menu{position:relative}.action-menu summary{width:43px;height:43px;display:grid;place-items:center;border:1px solid var(--line);border-radius:11px;background:#fff;cursor:pointer;list-style:none}.action-menu>div{min-width:170px;padding:7px;position:absolute;right:0;top:49px;z-index:8;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:0 12px 30px rgba(0,0,0,.12)}.action-menu button{width:100%;padding:9px;border:0;background:transparent;text-align:left;cursor:pointer}.danger-link{color:#b32743}.invoice-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.invoice-status-grid article{padding:18px;border:1px solid var(--line);border-radius:15px;background:#fff;display:grid;gap:6px}.invoice-status-grid article.success,.invoice-status-grid article.valid{background:#effbf7;border-color:#a8e5d4}.invoice-status-grid article.danger,.invoice-status-grid article.invalid,.invoice-status-grid article.failed{background:#fff3f5;border-color:#ffc2cc}.invoice-status-grid span{color:#8799a9;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.09em}.invoice-status-grid small{color:var(--muted);font-size:10px}.invoice-workspace{display:grid;grid-template-columns:minmax(360px,.8fr) minmax(550px,1.25fr);gap:16px}.document-preview,.invoice-data-panel{border:1px solid var(--line);border-radius:17px;background:#fff;overflow:hidden}.preview-head{height:55px;padding:0 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.document-preview iframe{width:100%;height:780px;border:0;background:#e8efed}.xml-preview{min-height:700px;margin:30px;padding:70px 45px;background:#fff;box-shadow:0 10px 35px rgba(19,54,56,.12);display:grid;place-items:center;align-content:center;text-align:center;gap:15px}.xml-preview small{max-width:320px;color:var(--muted)}.detail-tabs{height:55px;padding:0 20px;border-bottom:1px solid var(--line);display:flex;gap:26px;align-items:center;color:#647a8c;font-size:12px;font-weight:700}.detail-tabs .active{height:55px;display:flex;align-items:center;border-bottom:2px solid #0a8b7e;color:#087f72}.invoice-data-panel>.extraction-error,.invoice-data-panel>.data-section-title,.invoice-data-panel>.structured-list,.invoice-data-panel>.party-grid,.invoice-data-panel>.locked-panel{margin-left:24px;margin-right:24px}.data-section-title{margin-top:25px;color:#91a0b5;font-size:11px;letter-spacing:.1em;text-transform:uppercase}.structured-list{border:1px solid var(--line);border-radius:14px;overflow:hidden}.structured-list div{min-height:44px;padding:10px 15px;border-bottom:1px solid #e7eeee;display:grid;grid-template-columns:145px 1fr;align-items:center}.structured-list div:last-child{border:0}.structured-list dt{color:#73869a;font-size:11px}.structured-list dd{margin:0;font-size:12px;font-weight:700}.party-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.party-grid .data-section-title{margin-left:0}.party-grid .structured-list{margin:0}.validation-details{margin:25px 24px}.validation-details summary{padding:13px;border-radius:10px;background:#eef6f4;color:#087f72;cursor:pointer;font-weight:700}.validation-details pre{max-height:300px;overflow:auto;font-size:10px}.delete-dialog{max-width:580px;padding:0;border:0;border-radius:18px;box-shadow:0 25px 70px rgba(0,0,0,.28)}.delete-dialog::backdrop{background:rgba(6,30,33,.55)}.delete-dialog form{padding:28px;display:grid;gap:17px}.delete-dialog label:not(.checkbox-label){display:grid;gap:7px}.danger-button{background:#bd2442}.member-welcome{max-width:1320px;margin:0 auto;padding:20px 0}.member-welcome-head{display:flex;align-items:flex-end;justify-content:space-between}.member-welcome h1{margin:7px 0;font-size:40px}.member-welcome p{color:var(--muted)}.member-metrics{margin:30px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.member-metrics article{padding:23px;border:1px solid var(--line);border-radius:16px;background:#fff;display:grid;gap:14px}.member-metrics span,.member-metrics small{color:var(--muted);font-size:11px}.member-metrics strong{font-size:31px}.member-actions{padding:22px;border-radius:16px;background:#0a3d40;display:flex;gap:35px}.member-actions a{color:#62e3c2;font-weight:700}.register-shell{width:min(1100px,calc(100% - 40px));margin:55px auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:55px;align-items:start}.register-intro{padding:35px 10px}.register-intro h1{font-size:46px;line-height:1.04}.register-intro>p{color:var(--muted);font-size:17px}.selected-plan{margin:30px 0;padding:18px;border:1px solid #a9ddd2;border-radius:15px;background:#effaf7;display:grid;gap:5px;position:relative}.selected-plan a{position:absolute;right:15px;top:15px;font-size:11px}.register-card{padding:30px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 24px 60px rgba(20,68,70,.1)}.register-form{margin-top:20px}.register-form .checkbox-label{grid-template-columns:auto 1fr}.operator-toolbar{max-width:1450px;margin:0 auto 15px;display:flex;justify-content:flex-end;gap:9px}.operator-create-card{max-width:1000px;margin:0 auto;padding:24px}.api-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}.api-grid>.content-card{margin:0}.api-grid .inline-plan-form{padding:20px}.api-key-list{padding:0 20px 20px}.api-key-list article{padding:13px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:14px}.api-key-list article>span:first-child{display:grid;flex:1}.api-key-list small{color:var(--muted)}.api-doc,.api-secret{padding:25px;border-radius:16px;background:#0a3c40;color:#fff}.api-doc pre{padding:15px;border-radius:10px;background:#062b2e;color:#b8eee2;overflow:auto}.api-doc p{color:#b0cacc}.api-secret{margin-bottom:18px;background:#effaf7;color:var(--ink);border:1px solid #a9ddd2;display:grid;gap:8px}.api-secret code{padding:12px;background:#fff;overflow-wrap:anywhere}
@media(max-width:1050px){.invoice-status-grid,.member-metrics{grid-template-columns:repeat(2,1fr)}.invoice-workspace,.api-grid,.register-shell{grid-template-columns:1fr}.document-preview iframe{height:600px}}@media(max-width:650px){.invoice-status-grid,.member-metrics,.party-grid{grid-template-columns:1fr}.invoice-toolbar,.member-welcome-head{align-items:flex-start;flex-direction:column;gap:15px}.member-actions{display:grid}.register-shell{width:calc(100% - 24px);margin:25px auto}.register-card{padding:20px}}

/* 0.2.4 */
.preview-switch{display:flex;gap:5px;padding:4px;border-radius:10px;background:#eef4f3}.preview-switch button,.detail-tabs button{border:0;background:transparent;color:#647a8c;font:inherit;cursor:pointer}.preview-switch button{padding:7px 10px;border-radius:8px}.preview-switch button.active{background:#fff;color:#087f72;box-shadow:0 2px 7px rgba(5,55,58,.12)}[hidden]{display:none!important}.preview-notice{margin:0;padding:9px 15px;background:#f5f8f7;color:#74888b;font-size:10px}.detail-tabs{overflow-x:auto}.detail-tabs button{height:55px;white-space:nowrap;font-weight:700}.detail-tabs button.active{border-bottom:2px solid #0a8b7e;color:#087f72}.detail-tabs em{padding:2px 6px;border-radius:12px;background:#e4f3ef;font-style:normal}.detail-panel{padding:0 24px 28px}.detail-panel .data-section-title,.detail-panel .structured-list,.detail-panel .party-grid{margin-left:0;margin-right:0}.detail-panel .table-wrap{border:1px solid var(--line);border-radius:14px}.allowance-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.allowance-grid article{padding:17px;border:1px solid var(--line);border-radius:13px;display:grid;gap:8px}.validation-message{margin:10px 0;padding:15px;border:1px solid var(--line);border-radius:12px;display:grid;grid-template-columns:70px 1fr;gap:12px}.validation-message.error,.validation-message.fatal{background:#fff2f4;border-color:#f5b4c0}.validation-message.warning{background:#fff9ec;border-color:#efd190}.validation-message p{margin:5px 0;color:var(--muted)}.validation-message code{overflow-wrap:anywhere}.report-downloads{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}.settings-wide{grid-column:1/-1}.preferences-form{grid-template-columns:repeat(2,minmax(240px,1fr))}.preferences-form>label:first-of-type,.preferences-form>button{grid-column:1/-1}.account-avatar{object-fit:cover}.portal-footer{margin-left:255px;padding:22px 35px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#6d8387;font-size:11px}.portal-footer nav{display:flex;gap:18px}.narrow-card{max-width:720px;margin:0 auto;padding:28px}.danger-zone{margin-top:35px;padding:22px;border:1px solid #f0b7c2;border-radius:14px;background:#fff5f6;display:grid;gap:12px}.stat-list{padding:15px 24px}.stat-list div{padding:13px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.system-config{margin-top:18px}@media(max-width:900px){.portal-footer{margin-left:0;display:grid;gap:12px}.preferences-form{grid-template-columns:1fr}}

/* 0.2.7 validation details */
.validator-evaluation{margin:12px 0;border:1px solid var(--line);border-radius:14px;background:#f8fbfa;overflow:hidden}.validator-evaluation>summary{padding:17px 20px;background:#fff;color:var(--teal);font-size:16px;font-weight:800;cursor:pointer}.validator-evaluation>summary span{float:right;color:var(--muted);font-size:11px;font-weight:600}.validator-evaluation[open]>summary{border-bottom:1px solid var(--line)}.validator-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px}.validator-counts div{padding:13px 15px;border:1px solid var(--line);border-radius:11px;background:#fff}.validator-counts small{display:block;color:var(--muted)}.validator-counts b{font-size:22px}.validator-evaluation .message-list{padding:0 16px 16px}

/* 0.2.5 account and destructive workflows */
.bulk-toolbar{padding:12px 14px;display:flex;gap:10px;border-top:1px solid var(--line);background:#f8fbfa}.delete-dialog .dialog-form{padding:28px;display:grid;gap:17px}.delete-dialog .dialog-form>label:not(.checkbox-label){display:grid;gap:7px}.status-badge.not_invoice{background:#eef1f4;color:#53636d}.account-settings{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.settings-profile-card,.account-settings>.content-card{margin:0}.settings-profile-card{grid-column:1/-1;padding:26px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:30px}.profile-visual{display:flex;align-items:center;gap:20px}.profile-visual>img,.profile-visual>span{width:92px;height:92px;border-radius:24px;object-fit:cover;display:grid;place-items:center;background:linear-gradient(145deg,#d9f5ed,#edf9f6);color:#087f72;font-size:32px;font-weight:800}.profile-visual h2{margin:0 0 5px;font-size:24px}.profile-visual p{margin:0 0 8px;color:var(--muted)}.profile-visual small{color:#6b8286}.avatar-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.file-button input[type=file]{max-width:270px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#fff}.file-button>span{display:none}.remove-avatar{display:flex;align-items:center;gap:6px;font-size:12px}.form-hint{grid-column:2;margin:0;color:var(--muted);font-size:11px}.notification-card{grid-column:1/-1}.notification-form{padding:4px 24px 24px;display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.setting-switch,.digest-select{min-height:74px;padding:15px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.setting-switch span,.digest-select span{display:grid;gap:4px}.setting-switch small,.digest-select small{color:var(--muted)}.setting-switch input{width:42px;height:22px;accent-color:#0a8b7e}.digest-select{grid-column:1/-1}.digest-select select{width:210px}.notification-form>.button{margin-top:20px;justify-self:start}.operator-card.danger-zone{max-width:1450px;margin:22px auto;border-color:#f0b7c2}@media(max-width:850px){.account-settings{grid-template-columns:1fr}.settings-profile-card{grid-column:auto;grid-template-columns:1fr}.form-hint{grid-column:auto}.notification-card{grid-column:auto}.notification-form{grid-template-columns:1fr}.digest-select{grid-column:auto}}
