:root{--ink: #10231f;--ink-soft: #4a5d57;--mist: #e8eef0;--mist-deep: #d5e0e3;--panel: rgba(255, 255, 255, .78);--teal: #0c6b5c;--teal-deep: #084f44;--teal-bright: #14927c;--danger: #b42318;--ok: #067647;--line: rgba(16, 35, 31, .1);--shadow: 0 16px 40px rgba(16, 35, 31, .08);--radius: 12px;--font-display: "Syne", "Avenir Next", sans-serif;--font-body: "Figtree", "Segoe UI", sans-serif;color:var(--ink);font-family:var(--font-body);line-height:1.5;font-weight:500;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh;background:radial-gradient(1000px 520px at 0% -5%,rgba(20,146,124,.16),transparent 55%),radial-gradient(800px 480px at 100% 10%,rgba(16,35,31,.08),transparent 50%),linear-gradient(165deg,#f4f7f8,#e4ebed)}a{color:var(--teal-deep);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{padding:1.4rem 1rem;background:linear-gradient(185deg,#0c6b5c,#073f37);color:#f2faf8;display:flex;flex-direction:column;gap:1.4rem}.brand{font-family:var(--font-display);font-size:1.55rem;font-weight:700;letter-spacing:-.03em;line-height:1.05}.brand span{display:block;font-family:var(--font-body);font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;opacity:.72;margin-top:.4rem}.nav-links{display:flex;flex-direction:column;gap:.3rem}.nav-links a{color:#e7f5f1;text-decoration:none;padding:.6rem .75rem;border-radius:8px;transition:background .16s ease,transform .16s ease}.nav-links a:hover,.nav-links a.active{background:#ffffff1f;transform:translate(2px)}.sidebar-foot{margin-top:auto;font-size:.84rem;opacity:.85}.main{padding:1.5rem 1.7rem 2.4rem}.page-title{font-family:var(--font-display);font-size:clamp(1.7rem,2.4vw,2.25rem);margin:0 0 .3rem;letter-spacing:-.03em}.page-sub{margin:0 0 1.4rem;color:var(--ink-soft)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.2rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow);animation:rise .42s ease both}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-bottom:1.2rem}.stat{padding:.95rem 1rem;border-radius:var(--radius);border:1px solid var(--line);background:#ffffffb8;animation:rise .5s ease both}.stat:nth-child(2){animation-delay:60ms}.stat:nth-child(3){animation-delay:.12s}.stat:nth-child(4){animation-delay:.18s}.stat strong{display:block;font-family:var(--font-display);font-size:1.7rem;line-height:1;margin-bottom:.35rem;letter-spacing:-.03em}.stat span{color:var(--ink-soft);font-size:.84rem}.grid-2{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{text-align:left;padding:.65rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--ink-soft);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.badge{display:inline-flex;align-items:center;padding:.18rem .5rem;border-radius:6px;font-size:.74rem;font-weight:700}.badge.requested{background:#0c6b5c1f;color:var(--teal-deep)}.badge.received{background:#0676471f;color:var(--ok)}.badge.overdue{background:#b423181a;color:var(--danger)}.badge.cancelled{background:#10231f14;color:var(--ink-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:none;border-radius:9px;padding:.65rem .95rem;background:var(--teal);color:#fff;font-weight:700;transition:transform .15s ease,background .15s ease,box-shadow .15s ease;box-shadow:0 8px 18px #0c6b5c38}.btn:hover{background:var(--teal-deep);transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn.secondary{background:transparent;color:var(--teal-deep);border:1px solid rgba(12,107,92,.35);box-shadow:none}.btn.ghost{background:transparent;color:inherit;box-shadow:none;border:1px solid transparent}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.85rem}.field label{font-size:.8rem;font-weight:700;color:var(--ink-soft)}.field input,.field textarea{border:1px solid var(--line);border-radius:9px;padding:.65rem .75rem;background:#ffffffd9;color:var(--ink)}.field input:focus,.field textarea:focus{outline:2px solid rgba(12,107,92,.3);border-color:var(--teal)}.stack{display:flex;flex-direction:column;gap:.8rem}.row{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}.muted{color:var(--ink-soft)}.error{background:#b4231814;color:var(--danger);border:1px solid rgba(180,35,24,.2);padding:.65rem .8rem;border-radius:9px;margin-bottom:.8rem}.success{background:#06764714;color:var(--ok);border:1px solid rgba(6,118,71,.2);padding:.65rem .8rem;border-radius:9px;margin-bottom:.8rem}.auth-page{min-height:100vh;display:grid;place-items:center;padding:2rem 1rem;position:relative;overflow:hidden}.auth-page:before{content:"";position:absolute;inset:-15% 35% auto -15%;height:65%;background:radial-gradient(circle,rgba(12,107,92,.2),transparent 65%);animation:fadeIn .8s ease both}.auth-card{width:min(430px,100%);position:relative;z-index:1}.auth-card .brand{color:var(--ink);font-size:clamp(2.5rem,7vw,3.3rem);margin-bottom:.2rem;animation:rise .48s ease both}.auth-card .brand span{color:var(--teal);opacity:1}.auth-lede{color:var(--ink-soft);margin:0 0 1.2rem;animation:rise .58s ease both}.portal-page{min-height:100vh;padding:2rem 1rem 3rem;display:flex;justify-content:center}.portal-shell{width:min(760px,100%)}.portal-hero{margin-bottom:1.2rem;animation:rise .45s ease both}.portal-hero .brand{font-size:clamp(2.3rem,5vw,3.1rem);color:var(--ink)}.portal-hero .brand span{color:var(--teal);opacity:1}.doc-item{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:1rem 0;border-bottom:1px solid var(--line);animation:rise .5s ease both}.doc-item:last-child{border-bottom:none}.portal-link-box{margin-top:.7rem;padding:.8rem;border-radius:9px;background:#0c6b5c12;border:1px dashed rgba(12,107,92,.35);word-break:break-all;font-size:.88rem}.empty{padding:1.4rem .2rem;color:var(--ink-soft)}.landing{min-height:100vh;color:var(--ink)}.landing-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem 1.6rem;position:relative;z-index:2}.landing-nav .brand{font-size:clamp(1.8rem,4vw,2.4rem);color:var(--ink)}.landing-nav .brand span{color:var(--teal);opacity:1}.landing-nav-actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.landing-link{color:var(--teal-deep)!important}.landing-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:1.5rem;align-items:center;padding:1.5rem 1.6rem 3rem;min-height:calc(100vh - 5.5rem);position:relative}.landing-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(900px 480px at 10% 20%,rgba(12,107,92,.18),transparent 60%),radial-gradient(700px 420px at 90% 70%,rgba(16,35,31,.08),transparent 55%);z-index:0;pointer-events:none}.landing-hero-copy,.landing-hero-visual{position:relative;z-index:1}.landing-title{font-family:var(--font-display);font-size:clamp(2.4rem,5.5vw,3.8rem);line-height:1.05;letter-spacing:-.04em;margin:0 0 1rem;animation:rise .5s ease both}.landing-sub{font-size:1.08rem;color:var(--ink-soft);max-width:36rem;margin:0 0 1.4rem;animation:rise .62s ease both}.landing-cta-row{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center;animation:rise .74s ease both}.landing-hero-price{margin:.9rem 0 0;font-size:.95rem;animation:rise .82s ease both}.landing-proof{padding-top:0;padding-bottom:.5rem;text-align:center}.landing-proof-line{margin:0;font-family:var(--font-display);font-size:clamp(1.15rem,2.4vw,1.45rem);letter-spacing:-.02em;color:var(--teal-deep)}.landing-roi{margin:.65rem 0 0;font-size:1rem}.landing-security{max-width:720px}.landing-security-blurb{margin:0 0 1rem;color:var(--ink);line-height:1.55;font-size:1.02rem}.landing-security-list{margin:0;padding:0;list-style:none;display:grid;gap:.55rem}.landing-security-list li{padding:.55rem .75rem;border-left:3px solid var(--teal);background:#0c6b5c0d;color:var(--ink);font-weight:500}.landing-mock{background:#ffffffd1;border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem;box-shadow:var(--shadow);animation:rise .7s ease both}.landing-mock-bar{font-family:var(--font-display);font-weight:700;margin-bottom:.8rem;font-size:1.05rem}.landing-mock-row{display:flex;justify-content:space-between;gap:.8rem;padding:.7rem 0;border-bottom:1px solid var(--line);font-weight:600}.landing-mock-note{margin-top:.85rem;font-size:.82rem;color:var(--ink-soft)}.landing-section{padding:2.5rem 1.6rem;max-width:1000px;margin:0 auto}.landing-section h2{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.1rem);margin:0 0 .4rem;letter-spacing:-.03em}.landing-section-sub{color:var(--ink-soft);margin:0 0 1.4rem}.landing-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}.landing-features h3{font-family:var(--font-display);margin:0 0 .35rem;font-size:1.15rem}.landing-features p{margin:0;color:var(--ink-soft)}.landing-pricing{text-align:center}.landing-price-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:720px;margin:0 auto;text-align:left}.landing-price-card{background:#fffc;border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem 1.6rem;box-shadow:var(--shadow)}.landing-price-card-accent{border-color:#0c6b5c59;background:#0c6b5c0f}.landing-price-label{font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--teal-deep);margin-bottom:.35rem}.landing-price{font-family:var(--font-display);font-size:3rem;letter-spacing:-.04em;margin-bottom:.35rem}.landing-price span{font-size:1rem;color:var(--ink-soft);margin-left:.2rem}.landing-price-note{margin:0 0 .75rem;color:var(--teal-deep);font-weight:600;font-size:.92rem}.landing-price-card ul{margin:0 0 1.1rem;padding-left:1.1rem;color:var(--ink-soft)}.landing-invoice{margin:1.2rem 0 0;font-size:.95rem}.landing-invoice a{color:var(--teal-deep);font-weight:600}.landing-support{max-width:720px}.landing-support-contacts{margin:0 0 1.1rem;font-weight:600;font-size:1.05rem}.landing-support-contacts a{color:var(--teal-deep)}.landing-faq{margin:0;padding:0;display:grid;gap:.85rem}.landing-faq>div{padding:.7rem .85rem;border-left:3px solid var(--teal);background:#0c6b5c0d}.landing-faq dt{font-family:var(--font-display);font-weight:700;margin:0 0 .25rem;font-size:1.02rem}.landing-faq dd{margin:0;color:var(--ink-soft);line-height:1.45}.landing-faq a{color:var(--teal-deep);font-weight:600}.landing-foot{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.4rem 1.6rem 2rem;border-top:1px solid var(--line);color:var(--ink-soft);font-weight:600}.landing-foot-links{display:flex;gap:1rem;flex-wrap:wrap}.landing-foot-links a{color:var(--teal-deep)}.billing-price-summary{display:grid;gap:.35rem;padding:.75rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.billing-cta-row{display:flex;flex-wrap:wrap;gap:.65rem}@media(max-width:900px){.landing-hero{grid-template-columns:1fr;min-height:auto;padding-top:.5rem}.landing-features,.landing-price-grid{grid-template-columns:1fr}}tr.row-overdue{background:#b423180e}tr.row-overdue td:first-child{box-shadow:inset 3px 0 0 var(--danger)}td.count-overdue{color:var(--danger);font-weight:700}.activity-action{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--teal-deep);margin-right:.35rem}.activity-action.remindersent,.activity-action.portallinkreissued{color:var(--danger)}.onboarding-guide{border-color:#0c6b5c47;background:linear-gradient(135deg,#0c6b5c0f,#ffffffe6)}.onboarding-steps{list-style:none;margin:.85rem 0;padding:0;display:grid;gap:.55rem}.onboarding-steps li{display:flex;flex-direction:column;gap:.1rem;padding:.45rem .6rem;border-radius:8px;border:1px solid transparent;opacity:.55}.onboarding-steps li.done{opacity:.85}.onboarding-steps li.active{opacity:1;border-color:#0c6b5c4d;background:#0c6b5c12}.onboarding-done{animation:rise .45s ease both}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{padding-bottom:1rem}.nav-links{flex-direction:row;flex-wrap:wrap}.stat-row,.grid-2{grid-template-columns:1fr 1fr}}@media(max-width:640px){.stat-row,.grid-2{grid-template-columns:1fr}.main{padding:1rem}.doc-item{flex-direction:column}}
