@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,600&display=swap');
:root{--ink:#17332e;--muted:#667b76;--green:#176b58;--green-dark:#103f35;--mint:#e7f2ed;--cream:#f6f3eb;--line:#d9e1dc;--white:#fff;--gold:#d9a63d;--danger:#9e3c35;--shadow:0 18px 55px rgba(21,56,48,.11)}
*{box-sizing:border-box}body{margin:0;background:#f8faf8;color:var(--ink);font:15px/1.55 "DM Sans",sans-serif}a{color:var(--green);text-decoration:none}h1,h2,p{margin-top:0}h1{font:600 clamp(2rem,4vw,3.3rem)/1.05 "Newsreader",serif;letter-spacing:-.02em}h2{font:600 1.45rem/1.2 "Newsreader",serif}.topbar{height:72px;padding:0 max(24px,calc((100% - 1180px)/2));background:var(--green-dark);color:white;display:flex;align-items:center;gap:34px}.brand{display:flex;align-items:center;gap:11px;color:white;font-weight:700}.brand-mark{width:36px;height:36px;border:1px solid #91b9ae;border-radius:50%;display:grid;place-items:center;font:600 16px "Newsreader"}.topbar nav{display:flex;gap:6px;flex:1}.topbar nav a{color:#d8e8e3;padding:8px 12px;border-radius:8px}.topbar nav a:hover{background:#ffffff15}.account{display:flex;align-items:center;gap:15px}.account form{display:inline}.link-button{border:0;background:none;color:var(--green);padding:0;font:inherit;cursor:pointer}.account .link-button{color:#d8e8e3}.page{max-width:1180px;margin:0 auto;padding:44px 24px 80px}.auth-page{min-height:100vh;background:var(--cream);padding:40px}.auth-shell{max-width:1080px;min-height:calc(100vh - 80px);margin:auto;display:grid;grid-template-columns:1.1fr .9fr;background:var(--white);border-radius:26px;overflow:hidden;box-shadow:var(--shadow)}.auth-intro{padding:72px;background:linear-gradient(145deg,#123f35,#1c715d);color:white;position:relative;overflow:hidden}.auth-intro:after{content:"";position:absolute;width:450px;height:450px;border:1px solid #ffffff1f;border-radius:50%;right:-200px;bottom:-220px;box-shadow:0 0 0 70px #ffffff08,0 0 0 140px #ffffff05}.auth-intro h1{font-size:3.5rem;max-width:560px;margin:30px 0 20px}.auth-intro p{color:#d5e7e1;max-width:480px;font-size:1.05rem}.login-logo{position:absolute;bottom:55px;left:72px;width:92px;height:92px;padding:5px;background:#fff;border:1px solid #ffffff88;border-radius:50%;box-shadow:0 8px 24px rgba(7,35,28,.22);overflow:hidden}.login-logo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}.auth-card{padding:70px 58px;align-self:center}.auth-card h2{font-size:2rem}.auth-card.wide{max-width:560px;margin:auto;background:white;border-radius:22px;box-shadow:var(--shadow);padding:52px}.single-auth{min-height:calc(100vh - 80px);display:grid;place-items:center}.stack{display:grid;gap:18px;margin-top:30px}label{display:grid;gap:7px;font-weight:600;font-size:.9rem}input,select,textarea{width:100%;border:1px solid #cad7d1;background:white;border-radius:9px;padding:12px 13px;color:var(--ink);font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #176b581c}textarea{min-height:90px;resize:vertical}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:9px;padding:11px 18px;font:600 .95rem "DM Sans";cursor:pointer}.primary{background:var(--green);color:white}.primary:hover{background:#125745}.secondary{border-color:var(--line);background:white;color:var(--ink)}.divider{display:flex;align-items:center;gap:12px;color:var(--muted);margin:27px 0}.divider:before,.divider:after{content:"";height:1px;background:var(--line);flex:1}.auth-card>.secondary{width:100%}.muted,.page-heading p,.panel-head p{color:var(--muted)}.eyebrow,.step{color:var(--green);font-size:.74rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.step{display:block;margin-bottom:18px}.back{display:block;margin-bottom:28px}.otp-input{text-align:center;font-size:2rem;letter-spacing:.45em}.dev-note{background:#fff5d8;border:1px solid #ead498;padding:12px;border-radius:9px}.alert{max-width:1180px;margin:0 auto 18px;padding:13px 16px;border-radius:9px}.alert.success{background:#dff2e9;color:#175443}.alert.error{background:#f8e6e3;color:#842f29}.alert ul{margin:0;padding-left:20px}.page-heading{display:flex;justify-content:space-between;gap:25px;align-items:flex-end;margin-bottom:32px}.page-heading h1{margin:8px 0 7px}.page-heading p{margin:0}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:25px}.summary-grid.four{grid-template-columns:repeat(4,1fr)}.stat-card{background:white;border:1px solid var(--line);border-radius:15px;padding:24px;display:grid;gap:8px}.stat-card.featured{background:var(--green-dark);border-color:var(--green-dark);color:white}.stat-card span{color:var(--muted);font-weight:600}.stat-card.featured span,.stat-card.featured small{color:#bcd8d0}.stat-card strong{font:600 2.5rem "Newsreader"}.stat-card strong.compact{font-size:1.8rem}.stat-card small{color:var(--muted)}.panel{background:white;border:1px solid var(--line);border-radius:15px;margin-bottom:22px;overflow:hidden}.panel-head{padding:23px 25px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.panel-head h2,.panel-head p{margin-bottom:4px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th{background:#f2f6f3;color:#5f746e;text-align:left;text-transform:uppercase;letter-spacing:.06em;font-size:.7rem}th,td{padding:14px 17px;border-bottom:1px solid #e7ece9;white-space:nowrap}tbody tr:last-child td{border-bottom:0}td.number,th.number{text-align:right}.sub{display:block;color:var(--muted)}.certificate{background:var(--mint);padding:4px 8px;border-radius:6px}.empty{text-align:center!important;color:var(--muted);padding:40px}.status{display:inline-flex;border-radius:99px;padding:5px 10px;font-size:.75rem;font-weight:700}.status.active{background:#ddf1e7;color:#17614e}.status.inactive{background:#eee;color:#666}.status.pending{background:#fff1d4;color:#7e5911}.details{padding:25px}.details dl{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:26px 0 0}.details dt{color:var(--muted);font-size:.8rem}.details dd{font-weight:600;margin:4px 0}.search{padding:18px;display:flex;gap:10px;border-bottom:1px solid var(--line)}.search input{max-width:440px}.search a{align-self:center}.form-grid{padding:25px;display:grid;grid-template-columns:1fr 1fr;gap:20px}.span-2{grid-column:span 2}.form-actions{border-top:1px solid var(--line);padding-top:20px}.readonly{align-self:end;background:#f2f6f3;border-radius:9px;padding:11px 13px;display:grid}.readonly span{font-size:.75rem;color:var(--muted)}.shares-form{background:#fbfcfb;border-bottom:1px solid var(--line)}details summary{color:var(--green);cursor:pointer}pre{max-width:450px;white-space:pre-wrap;font:12px/1.5 monospace}.pagination{display:flex;gap:6px;list-style:none;padding:18px;margin:0}.pagination a{display:block;padding:7px 11px;border:1px solid var(--line);border-radius:6px}.site-footer{text-align:center;padding:20px 16px;color:var(--muted);font-size:.82rem;border-top:1px solid var(--line);background:#f8faf8}
.summary-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}
.stat-card strong.currency-value{max-width:100%;font-size:clamp(1.45rem,1.75vw,2rem);line-height:1.1;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.stat-card.low-balance{background:#fff1ee;border-color:#dc7467;box-shadow:0 0 0 2px #dc74671c}.stat-card.low-balance span,.stat-card.low-balance strong,.stat-card.low-balance small{color:#9a2f25}.stat-card.low-balance strong{animation:balance-pulse 1.8s ease-in-out infinite}@keyframes balance-pulse{0%,100%{opacity:1}50%{opacity:.55}}
.signatory-editor{display:grid;gap:16px;padding:20px;border:1px solid var(--line);border-radius:12px}.signatory-editor h2{margin:0}.signature-preview{height:90px;padding:8px;border:1px dashed var(--line);border-radius:9px;background:#fbfcfb}.signature-preview img{display:block;max-width:100%;height:100%;margin:auto;object-fit:contain}
.otp-toast{position:fixed;right:24px;bottom:24px;z-index:1000;min-width:320px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:17px 18px;background:var(--green-dark);color:white;border:1px solid #ffffff24;border-radius:14px;box-shadow:0 18px 55px rgba(10,38,31,.3);animation:toast-in .28s ease-out}.otp-toast div{display:grid;gap:2px}.otp-toast span{color:#c3ddd6;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.otp-toast strong{font:600 2rem "DM Sans";letter-spacing:.18em}.otp-toast small{color:#c3ddd6}.otp-toast button{border:0;background:#ffffff14;color:white;width:28px;height:28px;border-radius:50%;font-size:1.25rem;line-height:1;cursor:pointer}.otp-toast button:hover{background:#ffffff25}.toast-leaving{opacity:0;transform:translateY(8px);transition:.35s ease}@keyframes toast-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.password-panel{max-width:620px;padding:28px}.password-panel .stack{margin:0}.password-panel small{color:var(--muted);margin-top:-10px}.password-panel .form-actions{display:flex;gap:10px}
.profile-panel{max-width:760px}.profile-panel .form-actions{display:flex;gap:10px}
.import-form{padding:20px 25px;display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px 16px;align-items:end}.import-form small{grid-column:1/-1;color:var(--muted)}.import-form input[type=file]{padding:9px}.import-errors{margin:20px 25px 0;padding:14px 16px;background:#f8e6e3;color:#842f29;border-radius:9px}.import-errors ul{margin:8px 0 0;padding-left:20px;max-height:230px;overflow:auto}
.certificate-icon-button{width:36px;height:36px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:white;color:var(--green)}.certificate-icon-button:hover{background:var(--mint);border-color:#b9d1c7}.certificate-icon-button:focus-visible{outline:3px solid #176b5830;outline-offset:2px}.certificate-icon{position:relative;width:21px;height:17px;border:2px solid currentColor;border-radius:2px}.certificate-icon:before{content:"";position:absolute;left:4px;right:4px;top:4px;height:2px;background:currentColor;box-shadow:0 5px 0 currentColor}.certificate-icon:after{content:"";position:absolute;right:-5px;bottom:-6px;width:8px;height:8px;border:2px solid white;border-radius:50%;background:var(--gold);box-shadow:0 0 0 1px var(--gold)}
@media(max-width:850px){.auth-page{padding:0}.auth-shell{min-height:100vh;border-radius:0;grid-template-columns:1fr}.auth-intro{display:none}.summary-grid,.summary-grid.four{grid-template-columns:1fr 1fr}.topbar{height:auto;padding:15px 20px;flex-wrap:wrap}.topbar nav{order:3;width:100%}.account span{display:none}.details dl{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.page{padding:30px 16px}.auth-card,.auth-card.wide{padding:35px 25px;border-radius:0;box-shadow:none}.page-heading{align-items:flex-start;flex-direction:column}.summary-grid,.summary-grid.four,.form-grid,.import-form{grid-template-columns:1fr}.span-2{grid-column:span 1}.details dl{grid-template-columns:1fr}.topbar{gap:14px}.brand span:last-child{display:none}.otp-toast{left:14px;right:14px;bottom:14px;min-width:0}}

/* Responsive portal layout */
.menu-toggle{display:none}
html,body{max-width:100%;overflow-x:hidden}
.page,.panel,.panel-head,.table-wrap,.form-grid,.summary-grid,.stat-card{min-width:0}
input,select,textarea,button{max-width:100%}

@media(max-width:850px){
    .topbar{height:auto;padding:13px 16px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"brand account toggle" "nav nav nav";gap:10px 12px;align-items:center}
    .brand{grid-area:brand;min-width:0;font-size:.88rem;line-height:1.2}
    .brand span:last-child{display:block;white-space:normal}
    .menu-toggle{grid-area:toggle;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:7px 11px;border:1px solid #ffffff42;border-radius:8px;background:#ffffff12;color:#fff;font:600 .86rem "DM Sans",sans-serif;cursor:pointer}
    .account{grid-area:account;justify-self:end;gap:8px}
    .account span{display:none}
    .account .link-button{min-height:40px;padding:7px 4px;white-space:nowrap}
    .topbar nav{grid-area:nav;display:none;width:100%;padding-top:4px;border-top:1px solid #ffffff24;gap:3px;flex-direction:column}
    .topbar nav.is-open{display:flex}
    .topbar nav a{display:block;width:100%;padding:10px 8px;white-space:normal}
    .page{width:100%;padding:28px 16px 64px}
    .page-heading{align-items:flex-start;flex-direction:column;gap:16px;margin-bottom:24px}
    .page-heading h1{margin-top:5px;font-size:clamp(2rem,10vw,2.75rem);overflow-wrap:anywhere}
    .page-heading>.button{width:100%}
    .summary-grid,.summary-grid.four,.summary-grid.five{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
    .summary-grid.five .stat-card:last-child{grid-column:1/-1}
    .stat-card{padding:19px 17px}
    .stat-card strong{font-size:2.1rem;overflow-wrap:anywhere}
    .stat-card strong.compact{font-size:1.45rem}
    .panel-head{padding:19px 18px;align-items:flex-start;gap:12px;flex-wrap:wrap}
    .panel-head>div{min-width:0;flex:1 1 190px}
    .panel-head a{overflow-wrap:anywhere}
    .table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
    .table-wrap table{min-width:680px}
    th,td{padding:12px 14px}
    .search{padding:15px;flex-wrap:wrap}
    .search input{max-width:none;flex:1 1 210px}
    .search .button{flex:1 1 auto}
    .form-grid{padding:20px;grid-template-columns:1fr;gap:17px}
    .form-grid .span-2{grid-column:1}
    .readonly{min-width:0;overflow-wrap:anywhere}
    .form-actions{display:flex;flex-wrap:wrap;gap:10px}
    .form-actions .button{flex:1 1 160px}
    .signatory-editor{padding:16px}
    .pagination{flex-wrap:wrap}
    pre{max-width:75vw;overflow-wrap:anywhere}
}

@media(max-width:460px){
    .summary-grid,.summary-grid.four,.summary-grid.five{grid-template-columns:1fr}
    .summary-grid.five .stat-card:last-child{grid-column:auto}
    .stat-card{padding:18px}
    .panel{border-radius:12px}
    .panel-head h2{font-size:1.3rem}
    .search input,.search .button{flex-basis:100%}
    input[type="file"]{font-size:.82rem;padding:9px}
}
.form-trap {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

/* AMCS website integration */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-height:100vh;display:flex;flex-direction:column;font-family:Inter,sans-serif}
main{flex:1}
.portal-guest .auth-page{flex:none;min-height:0}
.portal-guest .auth-shell{min-height:0}
h1,h2{font-family:Poppins,sans-serif}
h1{font-weight:600;letter-spacing:-.045em}
h2{font-weight:600;letter-spacing:-.025em}
.topbar{min-height:74px;height:auto;position:relative;z-index:30;padding-block:10px;background:rgba(16,63,53,.985);border-bottom:1px solid #ffffff20}
.brand{min-width:max-content;gap:12px}
.brand-logo{display:block;flex:0 0 50px;width:50px;height:50px;background:url("amcs-logo.png") center/contain no-repeat}
.brand span{display:grid;line-height:1.12}
.brand strong{font:600 .95rem Poppins,sans-serif}
.brand small{color:#bcd4cd;font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.topbar nav a,.site-exit,.account .link-button{font-family:Inter,sans-serif}
.topbar nav a{border-bottom:2px solid transparent;border-radius:3px;transition:color .2s ease,background-color .2s ease,border-color .2s ease}
.topbar nav a:hover,.topbar nav a:focus-visible{color:#f0c66f;border-bottom-color:var(--gold);outline:none}
.site-exit{display:inline-flex;align-items:center;gap:.6rem;flex:none;padding:.65rem .85rem;border:1px solid #ffffff35;border-radius:8px;color:#fff;font-size:.78rem;font-weight:700;white-space:nowrap;transition:background-color .2s ease,border-color .2s ease,transform .2s ease}
.site-exit:hover,.site-exit:focus-visible{background:var(--coral,#e76f51);border-color:var(--coral,#e76f51);color:#fff;transform:translateY(-2px);outline:none}
.site-exit i{font-size:.72rem}
.guest-topbar{justify-content:space-between}
.mobile-signout{display:none}
.auth-page{min-height:calc(100vh - 74px);padding:28px 40px}
.auth-page .single-auth{min-height:0}
.auth-page .auth-card.wide{width:min(100%,560px);padding:40px 44px}
.auth-page .auth-card.wide .back{margin-bottom:20px}
.auth-page .auth-card.wide .step{margin-bottom:12px}
.auth-page .auth-card.wide .stack{margin-top:24px}
.auth-shell{border-radius:0;box-shadow:0 18px 55px rgba(21,56,48,.11)}
.auth-intro{background:linear-gradient(145deg,#103f35,#176b58)}
.button,.stat-card,.panel,.certificate-icon-button{transition:transform .2s ease-out,background-color .2s ease-out,border-color .2s ease-out,box-shadow .2s ease-out}
.button:hover,.button:focus-visible{transform:translateY(-2px);box-shadow:0 10px 24px rgba(16,63,53,.13)}
.stat-card:hover{transform:translateY(-3px);box-shadow:0 15px 32px rgba(16,63,53,.08)}
.site-footer{flex:none;padding:2rem max(22px,calc((100% - 1180px)/2)) 1.15rem;background:#092d26;color:#c6d9d4;border:0;text-align:center}
.footer-social{display:flex;justify-content:center;gap:.5rem}
.footer-social a{display:grid;place-items:center;width:40px;height:40px;border:1px solid #ffffff35;border-radius:50%;color:#fff;transition:transform .2s ease-out,background-color .2s ease-out}
.footer-social a:hover,.footer-social a:focus-visible{background:#ffffff18;color:#fff;transform:translateY(-3px);outline:2px solid #ffffff55;outline-offset:2px}
.footer-note{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #ffffff20;font-size:.78rem}
.portal-reveal{opacity:0;transform:translateY(18px);transition:opacity .55s cubic-bezier(.165,.84,.44,1),transform .55s cubic-bezier(.165,.84,.44,1)}
.portal-reveal.is-visible{opacity:1;transform:none}
@media(max-width:1050px) and (min-width:851px){.topbar{gap:16px}.topbar nav a{padding-inline:7px;font-size:.76rem}.account>span{display:none}}
@media(max-width:850px){
 .topbar{grid-template-columns:minmax(0,1fr) 44px 44px;grid-template-areas:"brand toggle exit" "nav nav nav";gap:8px;padding:10px 14px}
 .brand{min-width:0;gap:9px}.brand-logo{flex-basis:42px;width:42px;height:42px}.brand>span:last-child{min-width:0}.brand strong{font-size:.86rem}.brand small{font-size:.6rem;letter-spacing:.065em}
 .site-exit{grid-area:exit;width:44px;height:44px;justify-content:center;padding:0}.site-exit span{display:none}.site-exit i{font-size:.95rem}
 .menu-toggle{grid-area:toggle;width:44px;height:44px;min-height:44px;padding:0!important;border-radius:8px}.menu-toggle span{display:none}.menu-toggle i{font-size:1rem}
 .account{display:none}
 .topbar nav{margin-top:4px;padding:8px;border:1px solid #ffffff1f;border-radius:8px;background:#092d26}
 .topbar nav a{padding:11px 10px;border-radius:5px}
 .mobile-signout{display:block;margin-top:5px;padding-top:8px;border-top:1px solid #ffffff20}
 .mobile-signout .link-button{display:block;width:100%;padding:11px 10px;border-radius:5px;color:#f3c0b3;text-align:left;font-weight:700}
 .mobile-signout .link-button:hover,.mobile-signout .link-button:focus-visible{background:#ffffff0d;color:#fff;outline:none}
 .guest-topbar{display:flex;padding-inline:16px}.guest-topbar .site-exit{width:auto;padding:.58rem .7rem}.guest-topbar .site-exit span{display:inline}
 .auth-page{min-height:calc(100vh - 65px);padding:24px 18px}
}
@media(max-width:560px){.site-footer{padding-top:1.65rem}.footer-note{margin-top:1.2rem}.auth-card{padding-top:42px}.auth-page{padding:20px 14px}.auth-page .auth-card.wide{padding:30px 24px;border-radius:14px;box-shadow:0 12px 34px rgba(21,56,48,.09)}}
@media(prefers-reduced-motion:reduce){.portal-reveal{opacity:1;transform:none;transition:none}.button,.stat-card,.panel,.site-exit,.footer-social a{transition:none!important}.stat-card.low-balance strong{animation:none}}
.site-footer{padding:2rem 0 1.2rem;background:#092d26;color:#c6d9d4;text-align:left}
.footer-container{width:min(calc(100% - 44px),1180px);margin-inline:auto}
.footer-main.footer-simple{display:flex;justify-content:center;align-items:center}
.site-footer .social{display:flex;justify-content:center;gap:.5rem}
.site-footer .social a{display:grid;place-items:center;width:40px;height:40px;border:1px solid #ffffff35;border-radius:50%;color:#fff;transition:transform .2s ease-out,background-color .2s ease-out}
.site-footer .social a:hover,.site-footer .social a:focus-visible{background:#ffffff18;color:#fff;transform:translateY(-3px);outline:2px solid #ffffff55;outline-offset:2px}
.site-footer .footnote{display:flex;justify-content:center;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #ffffff20;text-align:center;font-size:.78rem}
@media(max-width:560px){.footer-container{width:min(calc(100% - 28px),1180px)}}
@media(prefers-reduced-motion:reduce){.site-footer .social a{transition:none!important}}
.login-logo{display:grid;place-items:center;padding:0;background:var(--mint);border-color:#ffffff66;color:var(--green);overflow:hidden}
.login-logo i{font-size:2.15rem}
