:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#102d2a;background:#f3f7f5;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 12% 8%,rgba(27,207,164,.13),transparent 32%),linear-gradient(180deg,#f8fbfa 0,#edf4f1 100%)}button,input,select{font:inherit}.portal-shell{width:min(1180px,calc(100% - 36px));min-height:100vh;margin:auto;display:flex;flex-direction:column}.portal-header{height:96px;display:flex;align-items:center;justify-content:space-between;color:#65756f;font-size:13px}.portal-brand{display:block;width:178px;height:58px;overflow:hidden;position:relative}.portal-brand img{position:absolute;width:178px;height:auto;top:-23px}.secure-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#12b981;margin-right:8px;box-shadow:0 0 0 4px rgba(18,185,129,.12)}.auth-wrap{flex:1;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:80px;padding:48px 6% 90px}.eyebrow{font-size:11px;letter-spacing:.16em;color:#07816c;font-weight:850}.auth-copy h1,.portal-title h1{font-size:clamp(42px,5vw,70px);line-height:1.02;letter-spacing:-.055em;margin:18px 0 22px;color:#0b2d29}.auth-copy>p{max-width:600px;color:#62736d;font-size:18px;line-height:1.65}.trust{display:flex;gap:10px;flex-wrap:wrap;margin-top:34px}.trust span{border:1px solid #d6e5df;background:rgba(255,255,255,.72);padding:9px 12px;border-radius:999px;font-size:12px;color:#49615a}.auth-card,.records{background:rgba(255,255,255,.94);border:1px solid #dce8e3;border-radius:24px;box-shadow:0 24px 70px rgba(9,55,46,.1)}.auth-card{padding:36px}.auth-card h2{font-size:26px;margin:16px 0 8px}.auth-card p{color:#677871;line-height:1.55}.icon-tile{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:linear-gradient(145deg,#0ba88b,#057562);color:white;font-weight:850;letter-spacing:3px;box-shadow:0 10px 24px rgba(6,128,106,.2)}label{display:block;font-size:12px;font-weight:750;color:#3a514b;margin-top:24px}input,select{width:100%;border:1px solid #ccdcd6;border-radius:12px;background:white;color:#143b34;padding:14px 15px;margin-top:8px;outline:none;transition:.2s}input:focus,select:focus{border-color:#07816c;box-shadow:0 0 0 4px rgba(7,129,108,.1)}button{border:0;cursor:pointer}.primary,.secondary{border-radius:12px;padding:13px 18px;font-weight:800}.primary{background:linear-gradient(135deg,#0b9a81,#05705f);color:white;box-shadow:0 9px 24px rgba(7,112,95,.18)}form .primary{width:100%;margin-top:18px}.secondary{background:white;border:1px solid #cfddd8;color:#24463e}.link-button,.back{background:transparent;color:#087765;font-weight:800;padding:12px 0}.message{min-height:22px;margin:14px 0 0!important;font-size:13px}.message.error{color:#ae402b}.message.success{color:#087765}.portal-title{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:42px 0 28px}.portal-title h1{font-size:46px;margin:10px 0}.portal-title p,.records-head p{color:#667771;margin:0}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.summary-card{background:#fff;border:1px solid #dce8e3;border-radius:18px;padding:20px;box-shadow:0 10px 32px rgba(16,56,48,.05)}.summary-card span{display:block;color:#71807b;font-size:12px;margin-bottom:12px}.summary-card strong{font-size:23px;letter-spacing:-.03em}.records{padding:26px}.records-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.records-head h2{margin:0 0 5px}.records-head select{width:auto;min-width:170px;margin:0}.invoice-list{display:grid}.invoice-row{display:grid;grid-template-columns:1.2fr 1fr .8fr .9fr auto;gap:16px;align-items:center;border-top:1px solid #e7efec;padding:17px 5px}.invoice-row:first-child{border-top:0}.invoice-row b{display:block}.invoice-row small{display:block;color:#74827d;margin-top:5px}.amount{text-align:right}.status{display:inline-flex;width:max-content;padding:7px 10px;border-radius:999px;background:#eef5f2;color:#537068;font-size:11px;font-weight:850}.status.paid{background:#e6f6ec;color:#247444}.status.overdue{background:#fff0ec;color:#a64731}.status.partial{background:#fff7e4;color:#8a6517}.open-detail{background:#edf6f2;color:#08715f;border-radius:10px;padding:9px 12px;font-weight:800}.empty{padding:55px 20px;text-align:center;color:#6b7b76}footer{display:flex;justify-content:space-between;gap:18px;color:#6c7c76;font-size:11px;padding:24px 4px 30px}footer a{color:#087560;font-weight:850;text-decoration:none}dialog{width:min(900px,calc(100% - 30px));max-height:90vh;border:0;border-radius:24px;padding:0;box-shadow:0 30px 100px rgba(5,35,30,.28);color:#163b34}dialog::backdrop{background:rgba(7,31,27,.55);backdrop-filter:blur(5px)}.invoice-detail{padding:34px}.detail-top{display:flex;justify-content:space-between;gap:28px;border-bottom:2px solid #e6eeeb;padding-bottom:22px}.detail-top h2{font-size:28px;margin:7px 0}.detail-top .right{text-align:right}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:23px 0}.detail-grid h3,.history h3{font-size:11px;letter-spacing:.1em;color:#657670;text-transform:uppercase}.detail-grid p{line-height:1.6}.table-wrap{overflow:auto}.detail-table{width:100%;border-collapse:collapse;font-size:13px}.detail-table th{text-align:left;color:#697973;font-size:10px;letter-spacing:.08em;padding:10px 8px;border-bottom:1px solid #dce7e3}.detail-table td{padding:13px 8px;border-bottom:1px solid #edf2f0}.detail-table th:not(:first-child),.detail-table td:not(:first-child){text-align:right}.detail-totals{width:min(100%,360px);margin:20px 0 24px auto}.detail-totals div{display:flex;justify-content:space-between;padding:7px}.detail-totals .grand{border-top:2px solid #183c35;margin-top:5px;padding-top:12px;font-size:18px}.history{border-top:1px solid #e3ece8;padding-top:16px}.history-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #edf2f0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding:18px 34px;border-top:1px solid #dce7e3;background:#f8faf9}.loading{opacity:.65;pointer-events:none}@media(max-width:850px){.auth-wrap{grid-template-columns:1fr;gap:34px;padding:28px 0 60px}.auth-copy h1{font-size:48px}.summary{grid-template-columns:1fr 1fr}.invoice-row{grid-template-columns:1fr auto}.invoice-row .customer,.invoice-row .date{display:none}.portal-title{align-items:flex-start}.detail-grid{grid-template-columns:1fr}}@media(max-width:560px){.portal-shell{width:min(100% - 22px,1180px)}.portal-header{height:78px}.portal-header>div{font-size:0}.portal-header>div:after{content:'Secure';font-size:12px}.auth-card{padding:26px 20px}.auth-copy h1{font-size:40px}.auth-copy>p{font-size:16px}.summary{grid-template-columns:1fr}.portal-title{flex-direction:column}.records{padding:18px 14px}.records-head{align-items:flex-start;flex-direction:column}.records-head select{width:100%}.invoice-row{gap:10px}.amount{display:none}.invoice-detail{padding:22px 16px}.detail-top{flex-direction:column}.detail-top .right{text-align:left}footer{flex-direction:column}}@media print{body *{visibility:hidden}dialog[open],dialog[open] *{visibility:visible}dialog[open]{position:absolute;inset:0;width:100%;max-height:none;border-radius:0;box-shadow:none}.dialog-actions{display:none}}
