:root{color:#241536;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--navy:#241536;--navy-soft:#3c2a52;--text:#4b3d60;--muted:#74688a;--faint:#9a90ad;--border:#67429c24;--surface:#ffffffd6;--surface-strong:#fffffff5;--bg:transparent;--accent:#9234ea;--accent-soft:#f2e8ff;--gold:#9234ea;--danger:#b84a62;--purple-900:#3c0f63;--purple-800:#571d85;--purple-700:#6136cd;--purple-600:#7c3aed;--violet-500:#9234ea;--violet-400:#b06cf5;--header:linear-gradient(145deg, #6d29aa 0%, #571d85 52%, #45116d 100%);--hero:linear-gradient(140deg, #9234ea 0%, #7c3aed 46%, #571d85 100%);--backdrop:linear-gradient(180deg, #faf8fe 0%, #f4effc 58%, #f8f4fd 100%);--card-pink:linear-gradient(145deg, #f6edff 0%, #e9d9ff 100%);--card-lilac:linear-gradient(145deg, #efe5ff 0%, #ddc9ff 100%);--card-rose:linear-gradient(145deg, #f9efff 0%, #edd9fb 100%);--shadow-card:0 18px 34px #571d8529;--shadow-soft:0 10px 24px #571d8517;background:#f7f5fc;font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{min-width:320px;min-height:100%;margin:0}body{background:var(--backdrop);background-attachment:fixed}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}h1,h2,h3{letter-spacing:-.035em;color:var(--navy);margin:0;font-family:Manrope,system-ui,sans-serif;line-height:1.25}h1{font-size:clamp(1.6rem,7vw,2rem);font-weight:800}h2{font-size:1.05rem;font-weight:700}h3{font-size:.98rem;font-weight:700}p{margin:0;line-height:1.6}ul,ol{margin:0}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--muted)}.small{font-size:.76rem}.eyebrow{letter-spacing:.15em;text-transform:uppercase;color:var(--faint);margin:0 0 8px;font-size:.66rem;font-weight:700}.center{text-align:center}.hint{color:var(--muted);margin:0;font-size:.73rem;line-height:1.6}.loading-line{padding:18px 2px;font-size:.83rem}.button{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:.82rem;font-weight:600;line-height:1.2;transition:background .15s,border-color .15s,transform .15s;display:inline-flex}.button.primary{background:linear-gradient(135deg, var(--violet-500) 0%, var(--purple-700) 100%);color:#fff;box-shadow:0 12px 24px #6136cd52}.button.primary:hover:not(:disabled){background:linear-gradient(135deg,#a54cf5 0%,#6f3fe0 100%);transform:translateY(-1px)}.button.subtle{background:var(--surface-strong);border-color:var(--border);color:var(--purple-700);box-shadow:var(--shadow-soft)}.button.subtle:hover:not(:disabled){background:#fff}.button.danger{color:var(--danger);background:#fdeef1;border-color:#f4d4dc}.button.danger:hover:not(:disabled){background:#fce3e8}.button.block{width:100%}.button.small{padding:8px 14px;font-size:.74rem}.button-row{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}input,select,textarea{background:#fffffff5;border:1px solid #67429c2e;border-radius:14px;min-width:0;padding:12px 14px}input::placeholder{color:var(--faint)}input:focus,select:focus,textarea:focus{border-color:var(--accent)}.form-error,.form-success{border-radius:12px;margin:12px 0 0;padding:10px 13px;font-size:.78rem}.form-error{color:var(--danger);background:#fdeef1;border:1px solid #f4d4dc}.form-success{color:#4e7a5f;background:#eaf5ee;border:1px solid #d2e8da}.alert{border-radius:16px;margin-bottom:16px;padding:14px;font-size:.8rem}.alert.error{color:var(--danger);background:#fdeef1;border:1px solid #f4d4dc}.alert p{margin:0 0 10px}.stack-form{flex-direction:column;display:flex}.stack-form label{margin:16px 0 6px;font-size:.78rem;font-weight:600}.stack-form label:first-child{margin-top:4px}.stack-form input{width:100%}.stack-form .button{margin-top:18px}.app-shell{background:var(--backdrop);width:100%;max-width:520px;min-height:100dvh;margin:0 auto;position:relative;box-shadow:0 0 60px #571d8524}.app-main{padding:0 18px calc(110px + env(safe-area-inset-bottom))}.page{padding-top:0}.page-header{padding:max(30px, env(safe-area-inset-top)) 18px 32px;background:var(--header);border-radius:0 0 30px 30px;margin:0 -18px 22px;position:relative;overflow:hidden}.page-header:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff29 0%,#0000 68%);border-radius:50%;width:230px;height:230px;position:absolute;top:-110px;right:-80px}.page-header .eyebrow{color:#ffffffb8}.page-header h1{color:#fff}.page-header .muted{color:#ffffffd1;margin-top:8px;font-size:.83rem}.offline-banner{border-bottom:1px solid var(--border);color:#8a6420;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffb8;padding:9px 16px;font-size:.74rem}.bottom-nav{bottom:max(14px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:20;background:#ffffffeb;border:1px solid #67429c1f;border-radius:26px;grid-template-columns:repeat(4,1fr);gap:4px;width:calc(100% - 32px);max-width:460px;padding:8px;display:grid;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 18px 34px #571d8533}.tab{letter-spacing:.01em;color:var(--faint);border-radius:18px;flex-direction:column;align-items:center;gap:3px;padding:4px 2px;font-size:.63rem;font-weight:600;display:flex}.tab-icon{border-radius:999px;place-items:center;width:38px;height:30px;transition:background .15s,color .15s;display:grid}.tab-icon svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px}.tab.active{color:var(--purple-700)}.tab.active .tab-icon{background:var(--violet-500);color:#fff;box-shadow:0 6px 14px #9234ea59}.splash{background:var(--backdrop);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100dvh;padding:32px;display:flex}.splash p{color:var(--muted);font-size:.84rem}.splash .button{margin-top:4px}.brand-mark{background:var(--accent-soft);width:46px;height:46px;color:var(--purple-700);letter-spacing:-.08em;box-shadow:var(--shadow-soft);border-radius:999px;place-items:center;font-family:Manrope,system-ui,sans-serif;font-size:1.5rem;font-weight:800;display:inline-grid}.brand-mark.large{color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff29;border:1px solid #ffffff3d;border-radius:999px;width:56px;height:56px;font-size:1.9rem}.login-page{background:var(--backdrop);width:100%;max-width:520px;min-height:100dvh;margin:0 auto;box-shadow:0 0 60px #571d8524}.login-hero{background:var(--header);color:#fff;padding:max(46px, env(safe-area-inset-top)) 24px 70px;position:relative;overflow:hidden}.login-hero:after{content:"";pointer-events:none;border:1px solid #ffffff47;border-radius:50%;width:320px;height:320px;position:absolute;bottom:-190px;right:-140px}.login-hero .eyebrow{color:#ffffffb8;margin-top:22px}.login-hero h1{color:#fff}.login-hero p:last-child{color:#ffffffd6;max-width:340px;margin-top:12px;font-size:.86rem}.login-card{background:var(--surface-strong);border:1px solid var(--border);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:26px;flex-direction:column;margin:-42px 18px 0;padding:26px 22px;display:flex;position:relative}.login-card h2{color:var(--navy);font-size:1.5rem}.login-card>.muted{margin-top:8px}.login-card label{margin:18px 0 7px;font-size:.78rem;font-weight:600}.login-card input{width:100%}.login-card .button{margin-top:22px;padding:14px}.login-card .form-error{margin-top:16px}.login-note{text-align:center;color:var(--muted);margin-top:20px;font-size:.72rem;line-height:1.6}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:22px;padding:18px}.card-title{margin-bottom:10px;font-size:.98rem}.section{margin-top:26px}.section h2{color:var(--navy)}.section-heading{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.section>.muted.small{margin-top:8px}.text-link{cursor:pointer;font:inherit;color:var(--accent);text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:.74rem;font-weight:600;-webkit-text-decoration:underline #9234ea66;text-decoration:underline #9234ea66}.back-link{margin:max(26px, env(safe-area-inset-top)) 0 16px;color:var(--purple-700);align-items:center;gap:6px;font-size:.76rem;font-weight:600;display:inline-flex}.card-list{flex-direction:column;gap:12px;display:flex}.card-list.plain{padding:0;list-style:none}.empty-state{text-align:center;margin-top:10px;padding:30px 22px}.empty-state h3{color:var(--navy)}.empty-state p{margin-top:8px;font-size:.8rem}.hero-card{background:var(--hero);color:#fff;border:1px solid #ffffff2e;border-radius:28px;padding:24px;position:relative;overflow:hidden;box-shadow:0 22px 40px #571d8547}.hero-card:before{content:"";pointer-events:none;background:#ffffff1a;border-radius:50%;width:190px;height:190px;position:absolute;top:-60px;right:-45px}.hero-card:after{content:"";pointer-events:none;background:#ffffff0f;border-radius:50%;width:160px;height:160px;position:absolute;bottom:-80px;right:34px}.hero-card>*{z-index:1;position:relative}.hero-label{letter-spacing:.12em;text-transform:uppercase;color:#ffffffe6;font-size:.68rem;font-weight:700}.hero-amount{letter-spacing:-.05em;color:#fff;margin-top:8px;font-family:Manrope,system-ui,sans-serif;font-size:clamp(1.9rem,9vw,2.5rem);font-weight:800;line-height:1.1}.hero-stats{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.hero-stats span{color:#fff;background:#ffffff29;border:1px solid #ffffff38;border-radius:999px;padding:6px 12px;font-size:.7rem;font-weight:600}.child-chips{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.child-chip{background:var(--surface-strong);border:1px solid var(--border);box-shadow:var(--shadow-soft);border-radius:18px;flex-direction:column;gap:2px;padding:10px 14px;display:flex}.child-chip strong{color:var(--navy);font-size:.79rem}.child-chip small{color:var(--muted);font-size:.66rem}.simple-list{margin-top:10px;padding:0;list-style:none}.simple-list li{border-bottom:1px solid #7e70a81f;justify-content:space-between;align-items:center;gap:14px;padding:12px 2px;display:flex}.simple-list li:last-child{border-bottom:0}.row-main{flex-direction:column;gap:2px;min-width:0;display:flex}.row-main strong{color:var(--navy);font-size:.79rem}.filter-bar{gap:8px;margin-bottom:18px;display:flex}.filter-bar select{background:var(--surface-strong);border-radius:999px;flex:1;min-width:0;padding:11px 14px;font-size:.78rem}.filter-bar.single select{width:100%}.invoice-card{background:var(--surface-strong);border:1px solid var(--border);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:26px;padding:18px;transition:box-shadow .15s,transform .15s;display:block}.card-list>.invoice-card:nth-child(3n+2){background:#fbf8ff}.card-list>.invoice-card:nth-child(3n){background:#f7f1ff}.invoice-card:hover{box-shadow:var(--shadow-card);transform:translateY(-2px)}.invoice-card-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.invoice-heading{min-width:0}.invoice-heading .eyebrow{letter-spacing:.1em;color:#24153680;margin-bottom:4px;font-size:.6rem}.invoice-heading h3{color:var(--navy)}.invoice-heading .muted{color:#24153699;margin-top:4px}.invoice-card-bottom{justify-content:space-between;align-items:flex-end;gap:12px;margin-top:14px;display:flex}.invoice-card .muted.small{color:#2415368c}.align-right{text-align:right}.amount{letter-spacing:-.02em;color:var(--navy);white-space:nowrap;font-family:Manrope,system-ui,sans-serif;font-size:.92rem;font-weight:700}.amount.large{font-size:1.6rem}.due{color:var(--navy-soft);white-space:nowrap;font-size:.79rem;font-weight:600}.due.overdue,.overdue{color:#a3304e}.remaining-line{color:#2415369e;border-top:1px dashed #2415362e;margin-top:12px;padding-top:10px;font-size:.71rem}.remaining.strong{color:#a3304e;font-weight:700}.badge{white-space:nowrap;color:var(--navy);background:#ffffffd1;border-radius:999px;align-items:center;gap:5px;padding:6px 12px;font-size:.63rem;font-weight:700;display:inline-flex}.badge-paid{color:#3f6b50;background:#e4f3e9}.badge-unpaid{background:var(--accent-soft);color:var(--purple-700)}.badge-partial{color:#8a6420;background:#fbeedd}.badge-overdue{color:#a3304e;background:#fcdfe5}.badge-cancelled{color:#5f4b7d;background:#efe9f8}.detail-header{background:var(--header);border-radius:0 0 30px 30px;margin:0 -18px 18px;padding:24px 18px 28px;position:relative;overflow:hidden}.detail-header:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff29 0%,#0000 68%);border-radius:50%;width:220px;height:220px;position:absolute;top:-100px;right:-80px}.detail-title-row{z-index:1;justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:relative}.detail-header .eyebrow{z-index:1;color:#ffffffb8;position:relative}.detail-title-row h1{color:#fff}.detail-header .muted{z-index:1;color:#ffffffd1;margin-top:8px;font-size:.8rem;position:relative}.amount-panel{background:var(--hero);color:#fff;border-color:#ffffff29}.amount-panel .muted{color:#ffffffb8}.amount-panel .amount{color:#fff}.amount-panel .amount-grid{border-top:1px solid #fff3;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px;padding-top:16px;display:grid}.amount-grid p{color:var(--navy);margin-top:3px;font-size:.8rem;font-weight:600}.amount-panel .amount-grid p{color:#fff}.amount-panel .remaining.strong,.amount-panel .due.overdue{color:#ffd2de}.section+.card{margin-top:18px}.note-card{border:1px solid var(--border);background:#fff9;border-radius:18px;margin-top:26px;padding:14px 16px}.timeline{margin-top:12px;padding:0 0 0 4px;list-style:none}.timeline-item{gap:14px;padding-bottom:18px;display:flex;position:relative}.timeline-item:not(:last-child):before{content:"";background:#7e70a847;width:1px;position:absolute;top:14px;bottom:0;left:4px}.timeline-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:9px;height:9px;margin-top:5px}.timeline-body{flex:1;min-width:0}.timeline-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.timeline-top strong{color:var(--navy);font-size:.87rem}.timeline-body .muted{margin-top:3px}.payment-card{padding:18px}.payment-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.payment-top .muted{margin-top:3px}.payment-meta{flex-wrap:wrap;gap:6px;margin:12px 0 8px;display:flex}.payment-meta span{border:1px solid var(--border);color:var(--text);background:#ffffffc7;border-radius:999px;padding:5px 11px;font-size:.66rem}.account-page .page-header{margin-bottom:0}.account-page>.card,.account-page>.section{margin-top:16px}.account-page>.section>h2{margin-bottom:10px}.account-page .card-title{margin-bottom:14px}.account-page .card>.muted.small{margin-top:0}.account-page .card>.muted.small+.button{margin-top:14px}.account-page .card>.button.primary,.account-page .card .button-row{margin-top:16px}.account-page .card .form-error,.account-page .card .form-success,.account-page .card>.hint{margin-top:14px}.account-page .stack-form label{margin:14px 0 6px}.account-page .stack-form label:first-child{margin-top:0}.account-page .stack-form .button{margin-top:20px}.account-page>.button.danger.block{margin-top:24px}.account-page>.hint.center{margin-top:14px;margin-bottom:8px}.profile-card{background:var(--card-rose);border-color:#fff9;align-items:center;gap:14px;padding:16px 18px;display:flex}.profile-info{flex-direction:column;gap:2px;min-width:0;display:flex}.profile-card strong{color:var(--navy);font-size:.94rem;display:block}.profile-card .muted{color:#24153699;overflow-wrap:anywhere}.avatar{width:42px;height:42px;color:var(--navy);box-shadow:var(--shadow-soft);background:#ffffffe6;border-radius:50%;flex-shrink:0;place-items:center;font-size:.86rem;font-weight:700;display:grid}.avatar.large{width:56px;height:56px;font-size:1.1rem}.linked-children{margin-top:8px;padding:4px 16px 6px;list-style:none}.linked-children li{border-bottom:1px solid #7e70a81f;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;display:flex}.linked-children li:last-child{border-bottom:0;padding-bottom:2px}.linked-children li>div{flex-direction:column;gap:1px;min-width:0;display:flex}.linked-children strong{color:var(--navy);font-size:.79rem}.linked-children>li>span{text-align:right;flex-shrink:0}.push-status{color:var(--text);align-items:center;gap:8px;font-size:.8rem;display:flex}.status-dot{background:#c3bcd8;border-radius:50%;flex-shrink:0;width:9px;height:9px}.status-dot.on{background:#5d8a6b;box-shadow:0 0 0 3px #5d8a6b2e}.card>.hint{margin-top:14px}.push-card{background:var(--surface-strong);margin-top:26px}.push-copy h3{color:var(--navy)}.push-copy .muted{margin-top:5px}.push-card .button,.push-card .hint{margin-top:14px}.push-card .form-error{margin-top:12px}.push-enabled{color:var(--text);align-items:center;gap:8px;margin-top:14px;font-size:.8rem;display:flex}.push-enabled .text-link{margin-left:auto}.payment-panel{background:var(--surface-strong);margin-top:18px}.payment-panel-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.payment-panel h2{color:var(--navy)}.simulation-tag{background:var(--accent-soft);color:var(--purple-700);letter-spacing:.09em;text-transform:uppercase;border-radius:999px;padding:5px 11px;font-size:.6rem;font-weight:700}.payment-intro{margin-top:10px}.payment-intro strong{color:var(--navy)}.pay-methods{gap:10px;margin-top:14px;display:grid}.pay-method{background:var(--surface-strong);border:1px solid var(--border);text-align:left;width:100%;box-shadow:var(--shadow-soft);border-radius:20px;align-items:center;gap:12px;padding:14px 16px;transition:transform .15s,box-shadow .15s;display:flex}.pay-methods>.pay-method:nth-child(2n){background:#faf7ff}.pay-method:hover:not(:disabled){box-shadow:var(--shadow-card);transform:translateY(-1px)}.pay-method-icon{background:var(--accent-soft);width:40px;height:40px;color:var(--purple-700);letter-spacing:.02em;border-radius:999px;flex-shrink:0;place-items:center;font-size:.7rem;font-weight:800;display:grid}.pay-method>span:last-child{flex-direction:column;gap:2px;min-width:0;display:flex}.pay-method strong{color:var(--navy);font-size:.84rem}.pay-method small{color:#24153699;font-size:.7rem}.intent-top{border-top:1px solid #7e70a829;justify-content:space-between;align-items:flex-start;gap:12px;margin-top:14px;padding-top:14px;display:flex}.intent-top .amount{margin-top:2px}.qr-block{border:1px solid var(--border);background:#ffffffb3;border-radius:20px;flex-direction:column;align-items:center;gap:8px;margin-top:14px;padding:16px;display:flex}.qr-image{background:#fff;border-radius:14px;width:min(240px,100%);height:auto}.va-block{border:1px solid var(--border);background:#ffffffb3;border-radius:20px;margin-top:14px;padding:16px}.va-number-row{justify-content:space-between;align-items:center;gap:12px;margin-top:4px;display:flex}.va-number{letter-spacing:.06em;color:var(--navy);word-break:break-all;font-family:Manrope,system-ui,sans-serif;font-size:1.12rem;font-weight:700}.va-number-row .button{flex-shrink:0}.intent-expiry{color:var(--muted);margin-top:12px;font-size:.72rem}.intent-expiry strong{color:#8a6420;font-variant-numeric:tabular-nums}.intent-steps{color:var(--text);margin-top:12px;padding-left:18px;font-size:.74rem;line-height:1.6}.intent-steps li+li{margin-top:4px}.intent-done{border-top:1px dashed #7e70a83d;margin-top:14px;padding-top:14px}.intent-done>p{color:var(--text);font-size:.8rem}.intent-done .muted{margin-top:4px}.intent-done .button{margin-top:12px}.payment-panel .hint,.payment-panel .form-error{margin-top:14px}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}
