:root{font-family:Inter,system-ui,sans-serif;color:#17201a;background:#f7faf7}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;max-width:560px;margin:0 auto;background:#f7faf7}.screen{min-height:100vh;display:flex;flex-direction:column}.center{align-items:center;justify-content:center;padding:24px}.brand{color:#15803d;font-weight:900;letter-spacing:-.04em;font-size:2.1rem}.muted{color:#647067}.card{background:#fff;border:1px solid #e5ebe6;border-radius:18px;padding:16px;box-shadow:0 4px 16px #17201a0a}.stack{display:grid;gap:14px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.button{border:0;border-radius:12px;padding:12px 16px;font-weight:800;background:#16a34a;color:#fff}.button.secondary{background:#e8f5eb;color:#15803d}.button.danger{background:#fff0ee;color:#a5332c}.button.dark{background:#17201a}.button.full{width:100%}.header{background:#15803d;color:#fff;padding:20px}.header{display:flex;align-items:center;justify-content:space-between;gap:12px}.header h1{margin:0;font-size:1.25rem}.header-action{border:1px solid #ffffff66;border-radius:10px;padding:8px 11px;background:transparent;color:#fff;font-weight:700}.content{flex:1;padding:18px;overflow:auto}.nav{position:sticky;bottom:0;display:flex;justify-content:space-around;background:#fff;border-top:1px solid #e5ebe6;padding:8px}.nav button{border:0;background:transparent;color:#647067;padding:8px;font-size:.75rem;font-weight:700}.nav button.active{color:#16a34a}.badge{display:inline-flex;border-radius:999px;padding:4px 9px;font-size:.72rem;font-weight:800;background:#dcfce7;color:#166534}.input{width:100%;border:1px solid #d6dfd8;border-radius:12px;padding:12px;background:#fff}.auth-card{width:100%;max-width:420px;padding:24px;border:1px solid #e5ebe6;border-radius:20px;background:#fff;box-shadow:0 12px 40px #17201a12}.auth-card h1{margin:10px 0 0;font-size:1.5rem}.auth-card label{display:grid;gap:7px;font-size:.9rem;font-weight:700}.auth-card label small{font-weight:400}.auth-foot{margin:0;text-align:center;color:#647067;font-size:.9rem}.auth-foot a{color:#15803d;font-weight:800;text-decoration:none}.auth-foot a:hover{text-decoration:underline}.text-button{border:0;padding:4px;background:transparent;color:#15803d;font-weight:800}.auth-message{margin:0;padding:11px 12px;border-radius:10px;background:#e8f5eb;color:#14532d;font-size:.9rem;line-height:1.45}.auth-message.error{background:#fff1ec;color:#9a3412}.auth-card [hidden]{display:none!important}.button:disabled,.header-action:disabled{cursor:wait;opacity:.65}.metric{font-size:1.6rem;font-weight:900}.progress{height:9px;border-radius:999px;background:#e5ebe6;overflow:hidden}.progress>span{display:block;height:100%;background:#16a34a}.service{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #e5ebe6;border-radius:14px;background:#fff;text-align:left}.service strong{display:block}.loading-intro{display:grid;justify-items:center;gap:8px;padding:16px 0}.state-spinner{display:flex;align-items:center;justify-content:center;gap:12px;color:#647067;font-size:.92rem}.loader{width:70px;aspect-ratio:1;background:radial-gradient(farthest-side,#ffa516 90%,#0000) center/16px 16px,radial-gradient(farthest-side,green 90%,#0000) bottom/12px 12px;background-repeat:no-repeat;animation:l17 1s infinite linear;position:relative}.loader:before{content:"";position:absolute;width:8px;aspect-ratio:1;inset:auto 0 16px;margin:auto;background:#ccc;border-radius:50%;transform-origin:50% calc(100% + 10px);animation:l17 .5s infinite linear}@keyframes l17{to{transform:rotate(1turn)}}.skeleton-state{width:100%;display:grid;gap:12px}.skeleton{position:relative;overflow:hidden;border-radius:12px;background:#e8eee9}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,#ffffffb8,transparent);animation:shimmer 1.35s infinite}.skeleton-heading{width:45%;height:20px}.skeleton-card{min-height:86px;display:grid;align-content:center;gap:9px;padding:14px}.skeleton-card i{display:block;width:72%;height:9px;border-radius:6px;background:#d9e2db}.skeleton-card i:nth-child(2){width:50%}.skeleton-card i:nth-child(3){width:34%}@keyframes shimmer{to{transform:translate(100%)}}.skeleton-dashboard{gap:14px}.skeleton-notice,.skeleton-balance,.skeleton-section-title,.skeleton-service,.skeleton-toolbar,.skeleton-user-list,.skeleton-user-detail{position:relative;overflow:hidden;border-radius:14px;background:#e8eee9}.skeleton-notice,.skeleton-balance,.skeleton-service,.skeleton-user-list,.skeleton-user-detail{display:grid;align-content:center;gap:10px;padding:16px}.skeleton-notice{min-height:74px}.skeleton-balance{min-height:150px;background:#dcebe1}.skeleton-section-title{width:48%;height:22px}.skeleton-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.skeleton-service{min-height:92px}.skeleton-toolbar{height:48px}.skeleton-admin-users-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(16rem,.9fr);gap:14px}.skeleton-user-list,.skeleton-user-detail{min-height:310px}.skeleton-notice i,.skeleton-balance i,.skeleton-service i,.skeleton-user-list i,.skeleton-user-detail i{display:block;height:9px;border-radius:6px;background:#d6e0d8}.skeleton-notice i:first-child,.skeleton-user-detail i:first-child{width:48%;height:14px}.skeleton-notice i:last-child,.skeleton-user-list i:nth-child(2n){width:72%}.skeleton-balance i:first-child{width:35%;height:12px}.skeleton-balance i:nth-child(2){width:52%;height:34px}.skeleton-balance i:last-child{width:70%}.skeleton-service i:first-child{width:24px;height:24px;border-radius:8px}.skeleton-service i:nth-child(2){width:72%}.skeleton-service i:last-child{width:88%}.skeleton-user-list i{height:36px}.skeleton-user-detail i{width:88%}.skeleton-user-detail i:nth-child(2n){width:58%}@media(max-width:760px){.skeleton-admin-users-grid{grid-template-columns:1fr}.skeleton-user-detail{min-height:220px}}@media(prefers-reduced-motion:reduce){.skeleton:after{animation:none;transform:none;opacity:.25}}.state-card{width:min(100%,520px);text-align:center}.state-card h2{margin:0}.state-symbol{display:grid;place-items:center;width:44px;height:44px;margin:0 auto;border-radius:50%;color:#166534;background:#e8f5eb;font-size:1.5rem;font-weight:900}.error-state .state-symbol{color:#9a3412;background:#fff1ec}.state-link{display:block;text-decoration:none}.mobile-nav{position:fixed;z-index:20;left:50%;bottom:0;transform:translate(-50%);width:min(100%,560px);display:flex;justify-content:space-around;gap:2px;padding:7px 6px max(7px,env(safe-area-inset-bottom));border-top:1px solid #e5ebe6;background:#fffffff2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.app-shell.role-shell{max-width:430px}.role-shell .mobile-nav{width:min(100%,430px)}.nav-item{min-width:0;flex:1;display:grid;justify-items:center;gap:2px;border:0;border-radius:10px;padding:3px 2px;background:transparent;color:#647067;font-size:.65rem;font-weight:700}.nav-item.active{color:#15803d;background:#e8f5eb}.nav-icon{min-height:20px;font-size:1.2rem;line-height:1}.role-shell .screen:not(.center){padding-bottom:66px}.role-shell .content{padding-bottom:20px}.admin-shell{width:100%;max-width:none;min-height:100vh;display:grid;grid-template-columns:236px minmax(0,1fr);background:#f4f8f5}.admin-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:24px;padding:24px 16px;overflow-y:auto;background:#116b43;color:#fff}.admin-brand{color:#fff;font-size:1.35rem;font-weight:900;letter-spacing:-.03em;text-decoration:none}.admin-brand small{display:block;margin-top:3px;font-size:.58rem;font-weight:600;letter-spacing:.08em}.admin-sidebar nav{display:grid;gap:5px}.sidebar-link,.sidebar-signout{border:0;border-radius:9px;padding:11px 12px;background:transparent;color:#e5f6ec;text-align:left;font-size:.88rem}.sidebar-link:hover,.sidebar-link.active{background:#ffffff24;color:#fff}.sidebar-signout{margin-top:auto;border:1px solid #ffffff4a}.portal-main{min-width:0}.admin-shell .screen{max-width:1500px;min-height:100vh;margin:0 auto}.admin-shell .content{width:100%;padding:clamp(20px,4vw,42px)}.admin-shell .header{padding:22px clamp(20px,4vw,42px)}.admin-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.admin-mobile-nav{display:none}.dashboard-screen{min-height:100dvh;background:#f7faf7}.dashboard-screen .content{flex:1 0 auto;overflow:visible}.app-brand{min-height:58px;display:flex;align-items:center;gap:9px;padding:10px 18px;border-bottom:1px solid #e7eee8;background:#f9fcfa}.brand-mark{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:#07854e;color:#fff;font-weight:900}.brand-mark svg{display:block}.app-brand strong{display:block;color:#12563b;font-size:.76rem;letter-spacing:.02em}.app-brand small{display:block;color:#668075;font-size:.48rem}.brand-settings{margin-left:auto;width:34px;height:34px;border:0;border-radius:50%;color:#126b47;background:transparent;font-size:1.1rem}.account-menu{position:relative;z-index:20;flex:0 0 auto;margin-left:auto}.account-menu-toggle{width:44px;height:44px;display:flex;align-items:center;justify-content:center;gap:2px;padding:0;border:0;border-radius:12px;background:transparent;color:#126b47;cursor:pointer}.account-menu-toggle:hover,.account-menu-toggle[aria-expanded=true]{background:#e8f4ed}.account-menu-toggle:focus-visible,.account-menu-popover button:focus-visible{outline:3px solid #62b58a;outline-offset:2px}.account-menu-toggle svg{display:block;flex:0 0 auto}.account-menu-popover{position:absolute;top:calc(100% + 7px);right:0;width:min(205px,calc(100vw - 28px));display:grid;gap:3px;padding:6px;border:1px solid #e1ebe4;border-radius:13px;background:#fff;box-shadow:0 12px 30px #19362529}.account-menu-popover[hidden]{display:none}.account-menu-error{margin:2px 6px 5px;padding:8px;border-radius:8px;background:#fff0ee;color:#a5332c;font-size:.72rem;line-height:1.4}.account-menu-popover button{width:100%;min-height:44px;display:flex;align-items:center;gap:10px;padding:0 11px;border:0;border-radius:9px;background:transparent;color:#20362b;text-align:left;font:inherit;font-size:.82rem;font-weight:650;cursor:pointer}.account-menu-popover button:hover{background:#f0f7f2}.account-menu-popover button svg{color:#126b47}.account-menu-popover button[data-action=logout]{color:#b42318}.account-menu-popover button[data-action=logout] svg{color:currentColor}.dashboard-content{display:grid;align-content:start;gap:14px;padding:18px 18px 30px}.dashboard-content>h1{margin:0;color:#172b22;font-size:clamp(1.45rem,6vw,1.8rem);line-height:1.08;letter-spacing:-.04em}.dashboard-content>h2,.profile-group h2{margin:3px 0 0;color:#20362b;font-size:.94rem}.dashboard-welcome{margin:-8px 0 0;color:#6d7e74;font-size:.82rem}.balance-card{display:grid;gap:8px;padding:18px;border-radius:16px;background:#116b43;color:#fff;box-shadow:0 7px 18px #0b61362a}.balance-card p{margin:0;font-size:.64rem;letter-spacing:.05em}.balance-card h2{margin:0;font-size:1.9rem;line-height:1}.balance-card small{color:#e0f0e5;font-size:.72rem}.balance-progress{height:6px;margin:3px 0;overflow:hidden;border-radius:999px;background:#ffffff4a}.balance-progress span{display:block;height:100%;border-radius:inherit;background:#ffa516}.balance-action{justify-self:start;margin-top:4px;border:0;padding:7px 10px;border-radius:8px;background:#ffffff20;color:#fff;font-size:.75rem;font-weight:800}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.service-tile{min-height:92px;display:grid;align-content:start;justify-items:start;gap:5px;padding:12px;border:1px solid #edf1ed;border-radius:14px;background:#fff;color:#20362b;text-align:left;box-shadow:0 3px 12px #17201a08}.service-tile-locked{border-color:#f3dfbd;background:#fffaf1}.tile-icon{color:#07854e;font-size:1.12rem;line-height:1}.service-tile strong{font-size:.76rem}.service-tile small{color:#78867d;font-size:.66rem}.section-title{display:flex;align-items:center;justify-content:space-between;margin-top:3px}.section-title h2{margin:0;font-size:.95rem}.quiet-link{border:0;background:transparent;color:#08764a;font-size:.73rem;font-weight:800}.recent-job{display:grid;gap:7px;padding:14px}.recent-job p,.recent-job small{margin:0;font-size:.7rem}.job-credit{color:#08764a;font-size:.75rem}.profile-screen{min-height:100dvh;overflow:visible;background:#f6faf7}.profile-screen .profile-content{flex:1 0 auto;display:grid;align-content:start;gap:10px;overflow:visible;padding:12px 14px 88px}.profile-content>h1{margin:0 0 2px;color:#155b3d;font-size:1.35rem}.profile-hero{display:flex;align-items:center;gap:10px;padding:11px;border-radius:14px;background:#fff;box-shadow:0 3px 12px #17201a08}.avatar{width:54px;height:54px;flex:0 0 54px;display:grid;place-items:center;border:2px solid #d9efe3;border-radius:50%;background:#bfe4d0;color:#126b47;font-size:1.1rem;font-weight:900}.profile-hero-copy{min-width:0;flex:1}.profile-name-line{display:flex;align-items:center;gap:5px;color:#24362c;font-size:.88rem}.verified-mark{width:15px;height:15px;display:grid;place-items:center;border-radius:50%;background:#07854e;color:#fff;font-size:.62rem}.profile-hero-copy p{margin:2px 0;color:#557064;font-size:.68rem}.profile-hero-copy small{color:#718178;font-size:.63rem}.profile-edit{width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;border:0;border-radius:9px;background:#e8f5ee;color:#08764a;cursor:pointer}.profile-edit-form{align-content:start}.identity-card{display:grid;gap:8px;padding:11px;border:1px solid #e1eee5;border-radius:12px;background:#edf6f0;color:#21583e;font-size:.68rem}.identity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px}.identity-grid>div{display:grid;grid-template-columns:auto 1fr;gap:4px;font-size:.59rem}.identity-grid b{color:#6b7d72;font-weight:600}.identity-grid span{color:#263a2f;overflow-wrap:anywhere}.profile-group{display:grid;gap:5px;scroll-margin-top:10px}.profile-group h2{padding:0 2px;color:#658075;font-size:.62rem;letter-spacing:.07em}.profile-list{display:grid;gap:1px;overflow:hidden;border-radius:12px;background:#fff;box-shadow:0 3px 12px #17201a08}.profile-row{min-height:43px;display:flex;align-items:center;gap:8px;padding:7px 9px;color:inherit;text-decoration:none}.profile-row+.profile-row,.data-row+.data-row{border-top:1px solid #eff3f0}.profile-row-icon{width:23px;height:23px;flex:0 0 23px;display:grid;place-items:center;border-radius:7px;background:#eaf6ef;color:#08764a;font-size:.85rem;font-weight:800}.profile-row-copy,.data-row>span:last-child{min-width:0;flex:1;display:grid;gap:2px}.profile-row-copy strong,.data-row strong{color:#26392f;font-size:.68rem;font-weight:750}.profile-row-copy small,.data-row small{color:#79877f;font-size:.57rem;overflow-wrap:anywhere}.profile-chevron{color:#94a39a;font-size:1.1rem}.data-row{min-height:42px;display:flex;align-items:center;gap:8px;padding:8px 9px}.profile-note{margin:0;padding:12px;color:#74827a;font-size:.65rem}.signout-button{min-height:37px;border:1px solid #f3dedd;border-radius:8px;background:#fff5f4;color:#bd3d3d;font-size:.74rem;font-weight:800}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffa516;outline-offset:2px}:root{--portal-green: #126b45;--portal-green-strong: #0d7448;--portal-green-soft: #e8f4ed;--portal-sage: #f5f8f6;--portal-ink: #1f2d25;--portal-muted: #718078;--portal-border: #e9efeb;--portal-orange: #f99a3b;--portal-red: #d94a45;font-family:Inter,Segoe UI,system-ui,sans-serif}.role-shell.app-shell{width:min(100%,430px);max-width:430px;min-height:100dvh;color:var(--portal-ink);background:var(--portal-sage)}.role-shell .screen{min-height:100dvh;padding-bottom:calc(72px + env(safe-area-inset-bottom));background:var(--portal-sage)}.role-shell .content{min-width:0;overflow:visible;padding:16px}.portal-screen{overflow:visible}.portal-content{display:grid;align-content:start;gap:16px;padding-bottom:24px!important}.page-heading{display:grid;gap:4px}.page-heading h1{margin:0;color:var(--portal-ink);font-size:1.55rem;line-height:1.12;letter-spacing:-.035em}.page-heading p{margin:0;color:var(--portal-muted);font-size:.82rem;line-height:1.4}.page-heading p:empty{display:none}.refresh-control{display:grid;gap:4px}.refresh-control-row{display:flex;align-items:center;justify-content:center;gap:10px;min-height:28px}.refresh-control-row .quiet-link{min-height:32px;padding:4px 6px}.data-freshness{color:var(--portal-muted);font-size:.68rem;line-height:1.3}.data-connection{justify-self:center;color:var(--portal-muted);font-size:.66rem;line-height:1.35;text-align:center}.data-connection-warning{color:#9a4c0a}.app-brand{min-height:58px;flex:0 0 auto;padding:9px 16px;background:#f9fcfa}.brand-mark{background:var(--portal-green)}.brand-settings{display:grid;place-items:center;min-width:44px;min-height:44px;color:var(--portal-green)}.brand-settings svg{display:block}.account-menu-toggle{color:var(--portal-green)}.dashboard-welcome{margin:0;color:var(--portal-muted);font-size:.82rem}.portal-content>h2,.section-heading{margin:0;color:var(--portal-ink);font-size:1rem;line-height:1.25}.balance-card{gap:9px;border-radius:17px;background:var(--portal-green);box-shadow:none}.balance-card p{font-size:.67rem}.balance-card h2{font-size:1.8rem}.balance-progress span{background:var(--portal-orange)}.service-grid{gap:9px}.service-tile{min-height:92px;padding:12px;border:0;border-radius:15px;box-shadow:none}.tile-icon{display:grid;place-items:center;min-height:22px;color:var(--portal-green-strong)}.tile-icon svg{display:block}.service-tile strong{font-size:.79rem}.service-tile small{font-size:.68rem}.role-shell .card,.role-shell .plan-card,.role-shell .job-list-card,.role-shell .job-review{border:0;border-radius:16px;background:#fff;box-shadow:none}.plan-list,.job-list,.transaction-list,.service-list{display:grid;gap:12px}.plan-card{display:grid;gap:8px;padding:16px}.plan-card.current{background:var(--portal-green-soft)}.plan-card-top{display:flex;justify-content:space-between;align-items:start;gap:12px}.plan-card h2{margin:0;font-size:.98rem}.plan-price{color:var(--portal-green);font-size:1.4rem;line-height:1.15}.plan-card p,.plan-card small{margin:0;color:var(--portal-muted);font-size:.76rem}.plan-card p{color:var(--portal-ink);font-weight:650}.plan-card .plan-period{margin-top:2px}.plan-tag{border-radius:999px;padding:5px 10px;background:#fff;color:var(--portal-orange);font-size:.61rem;font-weight:800}.plan-card .button{margin-top:5px}.fine-print{margin:0;color:var(--portal-muted);font-size:.72rem;line-height:1.45}.allowance-list{display:grid;gap:9px;padding:13px;border-radius:12px;background:var(--portal-sage)}.allowance-list>div{display:flex;justify-content:space-between;gap:10px;font-size:.84rem}.payment-methods{display:grid;gap:9px;margin:0;padding:0;border:0}.payment-method{display:flex;align-items:center;gap:11px;min-height:64px;padding:12px 14px;border:1px solid transparent;border-radius:13px;background:#fff}.payment-method.selected{border-color:#c6e6d3;background:var(--portal-green-soft)}.payment-method input{width:18px;height:18px;accent-color:var(--portal-green)}.payment-method span{display:grid;gap:3px}.payment-method strong{font-size:.82rem}.payment-method small{color:var(--portal-muted);font-size:.7rem}.notice{padding:14px;border-radius:13px;background:#fff}.notice p{margin:5px 0 0;color:var(--portal-muted);font-size:.76rem;line-height:1.45}.notice-success{background:var(--portal-green-soft);color:var(--portal-green)}.notice-warn{background:#fff0e9;color:#703c2e}.session-idle-warning{position:fixed;z-index:10000;top:max(12px,env(safe-area-inset-top));left:50%;width:min(520px,calc(100% - 24px));transform:translate(-50%);padding:13px 16px;border:1px solid #f3c5a5;border-radius:12px;background:#fff0e9;color:#703c2e;box-shadow:0 8px 28px #162a1f29;font-size:.88rem;line-height:1.4}.form-error{margin:0;padding:11px 12px;border-radius:10px;background:#fff0ee;color:#a5332c;font-size:.78rem;line-height:1.45}.role-shell .button{min-height:46px;border-radius:11px;background:var(--portal-green)}.role-shell .button.secondary{background:var(--portal-green-soft);color:var(--portal-green)}.service-list{gap:8px}.service-option{display:flex;align-items:center;gap:11px;width:100%;min-height:68px;padding:11px 12px;border:0;border-radius:13px;background:#fff;color:var(--portal-ink);text-align:left}.service-option>span:nth-child(2){flex:1;display:grid;gap:4px}.service-option strong{font-size:.83rem}.service-option small{color:var(--portal-muted);font-size:.72rem}.service-option>svg:last-child{color:#9ca9a1}.service-option-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:var(--portal-green-soft);color:var(--portal-green)}.job-form{display:grid;gap:15px}.upload-drop{display:grid;justify-items:start;gap:7px;padding:14px;border-radius:16px;background:#fff}.upload-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--portal-green-soft);color:var(--portal-green)}.upload-drop>strong{font-size:.88rem}.upload-drop>small{color:var(--portal-muted);font-size:.72rem}.file-input{position:absolute;width:1px;height:1px;padding:0;opacity:0;overflow:hidden;clip:rect(0,0,0,0)}.upload-actions{display:flex;flex-wrap:wrap;gap:8px}.upload-actions .button{min-height:42px;padding:9px 15px;font-size:.78rem}.file-name{max-width:100%;overflow-wrap:anywhere;color:var(--portal-muted);font-size:.72rem}.field-label{display:grid;gap:7px;color:#54655b;font-size:.78rem}.role-shell .input{min-height:44px;border-color:var(--portal-border);border-radius:11px;color:var(--portal-ink);font-size:.84rem}.settings-grid{display:grid;grid-template-columns:1fr;gap:8px}.settings-grid label{display:grid;grid-template-columns:minmax(90px,.72fr) 1fr;align-items:center;gap:9px;color:#5e6e64;font-size:.76rem}.quote-card{display:grid;gap:6px;padding:14px;border-radius:13px;background:var(--portal-green-soft)}.quote-card small{color:var(--portal-green);font-size:.64rem;font-weight:800}.quote-card strong{color:var(--portal-green);font-size:1.16rem}.quote-card p{margin:0;color:var(--portal-muted);font-size:.7rem}.job-review{display:grid;gap:13px;padding:16px}.job-review h2{margin:0;font-size:1rem}.job-review dl,.payment-status-card dl{display:grid;gap:10px;margin:0}.job-review dl>div,.payment-status-card dl>div{display:flex;justify-content:space-between;align-items:start;gap:14px}.job-review dt,.payment-status-card dt{color:var(--portal-muted);font-size:.78rem}.job-review dd,.payment-status-card dd{margin:0;max-width:60%;overflow-wrap:anywhere;text-align:right;font-size:.79rem;font-weight:700}.review-file{display:flex;align-items:center;gap:10px;color:var(--portal-green)}.review-file span{min-width:0;display:grid;gap:3px}.review-file strong{color:var(--portal-ink);font-size:.83rem;overflow-wrap:anywhere}.review-file small{color:var(--portal-muted);font-size:.7rem}.job-list-card{display:grid;gap:9px;padding:14px}.job-list-top,.job-list-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px}.job-list-top>strong{font-size:.84rem}.job-list-card p{margin:0;color:var(--portal-muted);font-size:.74rem}.job-list-bottom small{color:var(--portal-muted);font-size:.67rem}.job-status{max-width:48%;border-radius:999px;padding:5px 9px;background:#fff3e4;color:#ad6216;font-size:.64rem;font-weight:750;text-align:center;text-transform:capitalize}.status-ready,.status-completed,.status-accepted{background:#e5f4ec;color:var(--portal-green)}.status-rejected,.status-cancelled,.status-failed{background:#fff0ee;color:var(--portal-red)}.status-processing,.status-awaiting_review,.status-quoted,.status-awaiting_payment,.status-submitted{background:#fff3e4;color:#ad6216}.available-credit{display:grid;gap:7px;padding:17px;border-radius:16px;background:var(--portal-green);color:#fff}.available-credit small{font-size:.64rem;letter-spacing:.04em}.available-credit strong{font-size:1.55rem;line-height:1.15}.available-credit span{color:#e0f0e5;font-size:.72rem}.transaction-row{display:flex;align-items:center;gap:10px;padding:13px 11px;border-radius:13px;background:#fff}.transaction-symbol{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:10px;background:var(--portal-green-soft);color:var(--portal-green);font-size:1.2rem;font-weight:800}.transaction-symbol.type-correction{background:#fff3e4;color:var(--portal-orange)}.transaction-copy{flex:1;min-width:0;display:grid;gap:4px}.transaction-copy strong{font-size:.76rem}.transaction-copy small{color:var(--portal-muted);font-size:.67rem}.transaction-amount{max-width:37%;font-size:.72rem;text-align:right;overflow-wrap:anywhere}.transaction-amount.positive{color:var(--portal-green)}.transaction-amount.negative{color:var(--portal-red)}.transaction-amount.adjustment{color:var(--portal-orange)}.payment-status-card{display:grid;justify-items:start;gap:12px;padding:18px;border-radius:16px;background:#fff}.payment-status-card.status-pending{background:#fff4e4}.payment-status-card.status-confirmed{background:var(--portal-green-soft)}.payment-status-card.status-failed{background:#fff0ee}.payment-status-card h2,.payment-status-card p{margin:0}.payment-status-card h2{font-size:1.08rem}.payment-status-card p{color:var(--portal-muted);font-size:.78rem;line-height:1.45}.payment-status-card dl{width:100%;padding-top:9px;border-top:1px solid #ffffffa8}.payment-status-card dd{font-size:.73rem}.state-icon{color:var(--portal-green)}.profile-content>h1{font-size:1.45rem}.profile-hero{min-height:78px;padding:12px}.profile-name-line{font-size:.91rem}.profile-hero-copy p{font-size:.74rem}.profile-hero-copy small{font-size:.68rem}.identity-card{font-size:.75rem}.identity-grid>div{font-size:.7rem}.profile-group h2{font-size:.68rem}.profile-row{min-height:48px;gap:10px;padding:8px 10px}.profile-row-icon{width:27px;height:27px;flex-basis:27px}.profile-row-copy strong,.data-row strong{font-size:.76rem}.profile-row-copy small,.data-row small{font-size:.68rem;line-height:1.35}.profile-note{font-size:.72rem;line-height:1.4}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mobile-nav{width:min(100%,430px);min-height:calc(64px + env(safe-area-inset-bottom));padding:6px 6px max(7px,env(safe-area-inset-bottom));background:#fffffff5}.nav-item{min-height:48px;gap:3px;border-radius:9px;font-size:.67rem}.nav-icon{display:grid;place-items:center;min-height:23px}.nav-icon svg{width:19px;height:19px}.nav-item.active{background:transparent;color:var(--portal-green-strong)}.job-list-bottom .quiet-link,.section-title .quiet-link{min-height:40px}@media(max-width:360px){.role-shell .content{padding-right:12px;padding-left:12px}.page-heading h1{font-size:1.42rem}.transaction-row{gap:8px;padding-right:9px;padding-left:9px}.transaction-amount{max-width:35%;font-size:.66rem}}@media(max-width:767px){.admin-shell{display:block;padding-bottom:66px}.admin-sidebar{display:none}.admin-mobile-nav{display:flex}.admin-shell .screen,.admin-shell .screen.center{min-height:calc(100vh - 66px)}}@media(max-width:360px){.dashboard-content{padding-right:12px;padding-left:12px}.profile-screen .profile-content{padding-right:10px;padding-left:10px}.identity-grid{gap:6px}.identity-grid>div{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}html{scroll-padding-bottom:calc(82px + env(safe-area-inset-bottom))}body{background:#eef2ef}.role-shell.app-shell{width:min(100%,345px);max-width:345px;min-height:100vh;min-height:100svh;min-height:100dvh;margin-inline:auto;background:#f6faf7}.role-shell .screen,.role-shell .screen:not(.center),.role-shell .screen.center{height:auto;min-height:100vh;min-height:100svh;min-height:100dvh;overflow:visible;padding-bottom:calc(82px + env(safe-area-inset-bottom))}.role-shell .content{min-width:0;overflow:visible;padding:12px 14px 20px}.role-shell .portal-content{gap:12px}.role-shell .page-heading{gap:3px}.role-shell .page-heading h1{font-size:clamp(1.25rem,5.9vw,1.34rem);line-height:1.12}.role-shell .page-heading p,.role-shell .dashboard-welcome{font-size:.68rem}.role-shell .portal-content>h2,.role-shell .section-heading,.role-shell .section-title h2{font-size:.91rem}.role-shell .app-brand{min-height:51px;padding:6px 12px}.role-shell .brand-mark{width:30px;height:30px}.role-shell .balance-card{gap:7px;padding:15px;border-radius:15px}.role-shell .balance-card p{font-size:.61rem}.role-shell .balance-card h2{font-size:1.72rem}.role-shell .service-grid{gap:8px}.role-shell .service-tile{min-height:79px;gap:4px;padding:10px;border-radius:13px}.role-shell .service-tile strong{font-size:.7rem}.role-shell .service-tile small{font-size:.61rem}.role-shell .card,.role-shell .plan-card,.role-shell .job-list-card,.role-shell .job-review{border-radius:13px}.role-shell .plan-list,.role-shell .job-list,.role-shell .transaction-list,.role-shell .service-list{gap:9px}.role-shell .plan-card{gap:6px;padding:13px}.role-shell .plan-card h2{font-size:.85rem}.role-shell .plan-price{font-size:1.25rem}.role-shell .plan-card p{font-size:.69rem}.role-shell .plan-card small,.role-shell .fine-print{font-size:.64rem}.role-shell .plan-tag{padding:4px 9px;font-size:.56rem}.role-shell .payment-method{min-height:52px;padding:10px 12px;border-radius:11px}.role-shell .payment-method strong{font-size:.72rem}.role-shell .payment-method small,.role-shell .notice p{font-size:.64rem}.role-shell .notice{padding:12px;border-radius:11px}.role-shell .button{min-height:40px;border-radius:9px;font-size:.75rem}.role-shell .service-option{min-height:59px;padding:9px 10px}.role-shell .service-option-icon{width:34px;height:34px}.role-shell .upload-drop{gap:6px;padding:11px;border-radius:13px}.role-shell .upload-actions .button{min-height:36px;padding:8px 12px;font-size:.7rem}.role-shell .settings-grid{gap:7px}.role-shell .settings-grid label{grid-template-columns:minmax(76px,.72fr) 1fr;gap:7px;font-size:.67rem}.role-shell .input{min-height:38px;border-radius:9px;font-size:.73rem}.role-shell .quote-card{padding:12px}.role-shell .quote-card strong{font-size:1.08rem}.role-shell .job-list-card{gap:7px;padding:12px}.role-shell .job-list-top>strong{font-size:.75rem}.role-shell .job-list-card p{font-size:.66rem}.role-shell .job-list-bottom small{font-size:.6rem}.role-shell .job-status{padding:4px 8px;font-size:.58rem}.role-shell .available-credit{padding:15px;border-radius:14px}.role-shell .available-credit strong{font-size:1.45rem}.role-shell .transaction-row{gap:8px;padding:10px 9px;border-radius:11px}.role-shell .transaction-symbol{width:32px;height:32px;flex-basis:32px}.role-shell .transaction-copy strong{font-size:.68rem}.role-shell .transaction-copy small{font-size:.59rem}.role-shell .transaction-amount{font-size:.64rem}.role-shell .profile-screen .profile-content{gap:10px;padding:10px 12px calc(82px + env(safe-area-inset-bottom))}.role-shell .profile-content>h1{font-size:1.28rem}.role-shell .profile-hero{min-height:68px;padding:9px}.role-shell .avatar{width:46px;height:46px;flex-basis:46px}.role-shell .profile-name-line{font-size:.78rem}.role-shell .profile-hero-copy p{font-size:.64rem}.role-shell .profile-hero-copy small{font-size:.59rem}.role-shell .identity-card{gap:6px;padding:9px;font-size:.65rem}.role-shell .identity-grid>div{gap:3px;font-size:.57rem}.role-shell .profile-group{gap:4px}.role-shell .profile-group h2{font-size:.6rem}.role-shell .profile-row{min-height:40px;gap:7px;padding:6px 8px}.role-shell .profile-row-icon{width:23px;height:23px;flex-basis:23px}.role-shell .profile-row-copy strong,.role-shell .data-row strong{font-size:.64rem}.role-shell .profile-row-copy small,.role-shell .data-row small{font-size:.56rem}.role-shell .profile-note{padding:10px;font-size:.62rem}.role-shell .mobile-nav{width:min(100%,345px);min-height:calc(64px + env(safe-area-inset-bottom));padding:5px 5px max(7px,env(safe-area-inset-bottom))}.role-shell .nav-item{min-width:0;min-height:48px;gap:2px;font-size:.59rem}.role-shell .nav-icon{min-height:22px}.role-shell .nav-icon svg{width:18px;height:18px}.role-shell .nav-item.active{background:transparent;color:var(--portal-green-strong)}.profile-page-header{padding:0 12px}.profile-page-header .app-brand{gap:8px}.profile-page-header .app-brand>span:nth-child(2){min-width:0}.profile-home-link{display:inline-flex;align-items:center;gap:1px;margin-left:auto;padding:5px 0 5px 4px;border:0;background:transparent;color:var(--portal-green-strong);font:inherit;font-size:.61rem;white-space:nowrap}.profile-home-link svg{transform:rotate(180deg)}.profile-page-heading{display:grid;gap:3px}.profile-page-heading h1{margin:0;color:#1f2e26;font-size:1.36rem;line-height:1.15}.profile-page-heading p{margin:0;color:#738078;font-size:.67rem}.profile-identity-card{display:grid;gap:9px;padding:10px;border-radius:13px;background:#fff}.profile-identity-top{display:flex;align-items:center;gap:9px;min-width:0}.profile-initials{display:grid;width:43px;height:43px;flex:0 0 43px;place-items:center;border-radius:50%;color:#14754c;background:#e5f4eb;font-size:.84rem;font-weight:800}.profile-lecturer-avatar{color:#bd6417;background:#fff0dc}.profile-person{display:grid;min-width:0;flex:1;gap:2px}.profile-person>strong{display:flex;align-items:center;gap:4px;color:#24352b;font-size:.76rem}.profile-person>small{color:#728078;font-size:.59rem;overflow-wrap:anywhere}.profile-approval{display:inline-flex;align-items:center;justify-self:start;gap:3px;max-width:100%;padding:3px 6px;border-radius:99px;color:#16734a;background:#e7f5ec;font-size:.52rem;line-height:1.25}.profile-identity-details{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 8px;padding-top:8px;border-top:1px solid #edf2ee}.profile-identity-details>div:not(.profile-detail-email){display:flex;justify-content:space-between;gap:5px;font-size:.55rem}.profile-identity-details span{color:#78847d}.profile-identity-details strong{color:#26392f;font-size:.55rem;text-align:right;overflow-wrap:anywhere}.profile-detail-email{grid-column:1 / -1;color:#78847d;font-size:.57rem;overflow-wrap:anywhere}.profile-plan-card{display:grid;width:100%;gap:6px;padding:12px;border:0;border-radius:13px;background:#e7f4ec;color:#26392f;text-align:left}.student-plan{cursor:pointer}.profile-plan-caption{display:flex;justify-content:space-between;gap:8px;font-size:.57rem}.profile-plan-caption>span{color:#728078}.profile-plan-caption>strong{color:#25382e}.profile-wallet-amount{color:#14754c;font-size:1.2rem;line-height:1.1}.profile-plan-card>small{color:#738078;font-size:.56rem;line-height:1.4}.lecturer-plan>strong{font-size:.77rem}.profile-plan-status{color:#16734a!important;font-weight:700}.lecturer-plan p{margin:2px 0;font-size:.59rem;line-height:1.4}.profile-plan-expiry{display:flex;justify-content:space-between;gap:6px;font-size:.55rem}.profile-plan-expiry span{color:#738078}.profile-menu .profile-list{gap:0}.profile-row-static{cursor:default}.profile-row-static .profile-row-icon{background:#f0f7f3}.profile-row-copy{text-align:left}.profile-list .profile-row button{font:inherit}button.profile-row{width:100%;border:0;background:#fff;text-align:left;cursor:pointer}.profile-signout{display:flex;justify-content:space-between;color:#cb3737;font-size:.64rem;font-weight:700}.profile-signout svg{margin-left:auto}.profile-edit-form{gap:9px}.profile-edit-form h2,.profile-section-title{margin:4px 0 0;color:#26372e;font-size:.83rem}.profile-edit-form .field-label{gap:5px;font-size:.61rem}.profile-edit-form .input,.profile-screen .field-label .input{min-height:39px;padding:9px 10px;font-size:.66rem}.profile-edit-form .input[readonly]{background:#f0f5f2;color:#68776e}.field-hint{margin:-4px 0 1px;color:#7b887f;font-size:.57rem;line-height:1.4}.profile-readonly-card{display:grid;gap:0;padding:2px 10px;border:1px solid #e7eee9;border-radius:11px;background:#fff}.profile-readonly-row{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #edf2ee;font-size:.61rem}.profile-readonly-row:last-child{border-bottom:0}.profile-readonly-row span{color:#748178}.profile-readonly-row strong{color:#2b3a31;text-align:right}.profile-feedback{display:grid;gap:5px;padding:11px;border-radius:11px;background:#e7f5ec;color:#176c47;font-size:.65rem}.profile-feedback p{margin:0;color:#596d60;font-size:.59rem;line-height:1.45}.profile-feedback-warn{background:#fff2df;color:#9b4b0b}.profile-feedback-warn p{color:#71563b}.profile-correction-card,.profile-correction-home{display:grid;gap:6px}.profile-correction-card>p,.profile-correction-home>p{margin:0;line-height:1.45}.profile-correction-values{display:grid;gap:5px;padding:9px 10px;border:1px solid #dfece4;border-radius:10px;background:#fff}.profile-correction-values>div{display:flex;justify-content:space-between;gap:10px;font-size:.62rem}.profile-correction-values span{color:#718078}.profile-correction-values strong{max-width:68%;color:#27382f;text-align:right;overflow-wrap:anywhere}.profile-correction-editor{align-content:start}.profile-correction-editor>h2{margin:0;color:#26372e;font-size:.83rem}.profile-correction-editor .notice{margin:0}.profile-correction-editor .form-error{overflow-wrap:anywhere}.profile-correction-editor button:disabled{cursor:not-allowed;opacity:.6}.notification-summary{align-self:start;padding:5px 8px;border-radius:99px;background:#e7f5ec;color:#176c47;font-size:.58rem;font-weight:700}.notification-list{display:grid;gap:8px}.notification-card{display:flex;align-items:flex-start;gap:9px;width:100%;padding:11px;border:0;border-radius:12px;background:#fff;color:inherit;text-align:left;cursor:pointer}.notification-icon{display:grid;width:29px;height:29px;flex:0 0 29px;place-items:center;border-radius:8px;background:#e8f5ed;color:#127449}.notification-copy{display:grid;flex:1;min-width:0;gap:4px}.notification-copy strong{color:#27372e;font-size:.65rem}.notification-copy small{color:#728077;font-size:.57rem;line-height:1.4}.notification-copy .notification-date{font-size:.52rem}.notification-status{max-width:66px;padding:3px 5px;border-radius:99px;background:#f0f6f2;color:#4b6958;font-size:.5rem;text-align:center;overflow-wrap:anywhere}.faq-list{display:grid;gap:8px}.faq-item{padding:11px;border-radius:12px;background:#fff}.faq-item summary{color:#28372f;font-size:.65rem;font-weight:700;cursor:pointer}.faq-item p{margin:8px 0 0;color:#718077;font-size:.59rem;line-height:1.5}.support-info{display:grid;gap:6px;padding:12px;border-radius:12px;background:#e7f4ec}.support-info h2{margin:0;color:#176c47;font-size:.73rem}.support-info p,.support-info small{margin:0;color:#576a5e;font-size:.59rem;line-height:1.45}.support-info small{color:#7a887f}.recovery-screen{width:min(100%,390px);min-height:100vh;min-height:100svh;min-height:100dvh;margin:0 auto;padding:max(10px,env(safe-area-inset-top)) 20px max(22px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:stretch;background:#f7faf8;color:#202f27}.recovery-brand{min-height:43px;display:flex;align-items:center;gap:8px;margin-bottom:12px;color:#155b3d}.recovery-brand>span:nth-child(2){display:grid;gap:2px}.recovery-brand strong{font-size:.6rem}.recovery-brand small{color:#74847b;font-size:.4rem}.recovery-back-link{display:inline-flex;align-items:center;gap:2px;margin-left:auto;padding:5px 0 5px 4px;border:0;background:transparent;color:#14764c;font-size:.59rem;font-weight:700;text-decoration:none;white-space:nowrap}.recovery-back-link svg{transform:rotate(180deg)}.recovery-screen>h1{margin:3px 0 4px;font-size:1.33rem;line-height:1.15;letter-spacing:-.025em}.recovery-subtitle{margin:0;color:#738078;font-size:.64rem;line-height:1.45}.recovery-emblem{width:52px;height:52px;display:grid;place-items:center;align-self:center;margin:48px 0 16px;border-radius:17px;background:#e7f5ec;color:#157349}.recovery-emblem-warn{background:#fff2df;color:#b85b08}.recovery-screen>h2{margin:0 0 7px;color:#26362d;font-size:.77rem}.recovery-copy{margin:0 0 16px;color:#748078;font-size:.61rem;line-height:1.5}.recovery-callout,.recovery-tip{display:grid;gap:5px;margin:0 0 10px;padding:11px;border-radius:11px;background:#e7f4ec;color:#176d47;font-size:.61rem}.recovery-callout-warn{background:#fff2df;color:#9b4b0b}.recovery-callout p,.recovery-tip p{margin:0;color:#586b60;font-size:.57rem;line-height:1.45}.recovery-callout-warn p{color:#72563a}.recovery-screen .recovery-primary{min-height:39px;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:1px}.recovery-screen .button.secondary{margin-top:0}.recovery-text-link{align-self:center;margin:12px 0;color:#13734a;font-size:.61rem;font-weight:700;text-decoration:none}.recovery-tip{margin-top:9px;background:#fff;color:#293a31}.recovery-error{margin:0 0 9px;color:#a5332c;font-size:.61rem}.segmented-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:3px;border-radius:10px;background:#edf3ef}.segmented-tabs[aria-label="Filter print jobs"]{grid-template-columns:repeat(3,minmax(0,1fr))}.segmented-tab{min-width:0;min-height:31px;padding:5px 4px;border:0;border-radius:7px;background:#fff;color:#596b61;font-size:.57rem}.segmented-tab.active{background:#13734a;color:#fff;font-weight:700}.jobs-empty-state{display:grid;justify-items:center;gap:9px;padding:18px 12px 12px;text-align:center}.jobs-empty-icon{width:47px;height:47px;display:grid;place-items:center;margin:2px 0 5px;border-radius:15px;background:#e7f4ec;color:#16744b}.jobs-empty-state>strong,.job-error-state>strong{color:#293a31;font-size:.69rem}.jobs-empty-state>p,.job-error-state>p{margin:0 0 3px;color:#748078;font-size:.58rem;line-height:1.45}.jobs-empty-state .button{width:100%}.jobs-howto{display:grid;gap:8px;padding:11px;border-radius:11px;background:#e7f4ec;color:#26382e;font-size:.59rem}.jobs-howto>div{display:flex;justify-content:space-between;gap:8px}.jobs-howto span{color:#718178}.jobs-howto b{font-size:.56rem;text-align:right}.job-error-state{display:grid;justify-items:center;gap:9px;padding:18px 12px;text-align:center}.job-error-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:15px;background:#fff0ee;color:#c8463f}.payment-result-card{display:grid;justify-items:start;gap:9px;padding:14px;border-radius:13px;background:#fff}.payment-result-card.result-pending{background:#fff}.payment-result-card.result-confirmed{background:#e7f4ec}.payment-result-card.result-failed,.payment-result-card.result-refunded{background:#fff3e2}.payment-result-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#e7f4ec;color:#14754b}.result-pending .payment-result-icon,.result-failed .payment-result-icon,.result-refunded .payment-result-icon{background:#fff0dc;color:#b15a09}.payment-result-card h2{margin:0;font-size:.9rem}.payment-result-card>p{margin:0;color:#728078;font-size:.61rem;line-height:1.45}.payment-result-details{display:grid;width:100%;gap:0;margin:4px 0 0;padding-top:6px;border-top:1px solid #dfeae3}.payment-result-details>div{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid #ffffffa8;font-size:.57rem}.payment-result-details dt{color:#748078}.payment-result-details dd{max-width:58%;margin:0;color:#27372e;font-weight:700;text-align:right;overflow-wrap:anywhere}.payment-history-filters{display:flex;justify-content:space-between;align-items:center;gap:10px;color:#728078;font-size:.57rem}.payment-history-method{display:flex;align-items:center;gap:6px;font-size:.55rem}.payment-history-method .input{width:auto;min-height:31px;padding:5px 7px;font-size:.55rem}.payment-history-list{display:grid;gap:8px}.payment-history-card{display:grid;gap:8px;padding:11px;border-radius:12px;background:#fff}.payment-history-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.payment-history-heading>strong{color:#28382f;font-size:.61rem}.payment-badge{padding:4px 7px;border-radius:99px;background:#e7f4ec;color:#176d47;font-size:.51rem;white-space:nowrap}.payment-badge-pending{background:#fff1dc;color:#a75107}.payment-badge-failed,.payment-badge-refunded{background:#fff0ee;color:#b83e35}.payment-history-card dl{display:grid;gap:5px;margin:0}.payment-history-card dl>div{display:flex;justify-content:space-between;gap:8px;font-size:.56rem}.payment-history-card dt{color:#78847d}.payment-history-card dd{max-width:58%;margin:0;color:#26382e;font-weight:650;text-align:right;overflow-wrap:anywhere}.payment-history-card .payment-reference{display:grid;gap:3px;padding-top:6px;border-top:1px solid #edf2ee}.payment-history-card>.quiet-link{justify-self:end;min-height:27px;padding:2px 0;font-size:.57rem}@media(max-width:360px){.segmented-tab{font-size:.53rem}.payment-history-method{gap:4px}.payment-history-filters{gap:6px}}@media(max-height:650px){.recovery-emblem{margin-top:22px}.recovery-screen{padding-bottom:max(14px,env(safe-area-inset-bottom))}}@media(max-width:360px){.role-shell .content{padding-right:11px;padding-left:11px}.role-shell .profile-screen .profile-content{padding-right:10px;padding-left:10px}.role-shell .settings-grid label{grid-template-columns:minmax(70px,.68fr) 1fr}}body[data-auth-page]{min-width:0;background:#e8e9e7;color:#1d2c24}.auth-screen{width:min(100%,390px);min-height:100vh;min-height:100svh;min-height:100dvh;margin-inline:auto;padding:env(safe-area-inset-top) 18px max(20px,env(safe-area-inset-bottom));display:flex;flex-direction:column;background:#f7faf8;color:#1e2d25;overflow:visible}.auth-brand{min-height:54px;display:flex;align-items:center;gap:8px;color:#135c3e;text-decoration:none}.auth-brand-icon{width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:#14764d;color:#fff;font-size:1.05rem}.auth-brand-icon .lucide-icon{display:block}.lucide-icon{display:inline-block;flex:0 0 auto;vertical-align:middle}.auth-brand strong{display:block;font-size:.64rem;line-height:1.15;letter-spacing:.02em}.auth-brand small{display:block;margin-top:2px;color:#698075;font-size:.39rem;letter-spacing:.015em}.auth-top-link{display:inline-flex;align-items:center;gap:3px;align-self:flex-end;margin:-36px 0 19px;color:#14724a;font-size:.65rem;font-weight:700;text-decoration:none}.auth-heading{display:grid;gap:4px;margin-bottom:15px}.auth-heading h1{margin:0;color:#202f27;font-size:1.35rem;line-height:1.14;letter-spacing:-.035em}.auth-heading p{margin:0;color:#78857e;font-size:.66rem;line-height:1.4}.auth-screen .auth-form{display:grid;gap:10px}.auth-field{min-width:0;display:grid;gap:5px;color:#293a31;font-size:.64rem;font-weight:700}.auth-screen .input{width:100%;min-width:0;min-height:38px;padding:8px 10px;border:1px solid #e5ebe7;border-radius:8px;background:#fff;color:#202f27;font-size:.65rem;font-weight:450}.auth-screen .input::placeholder{color:#a1aaa5}.auth-screen select.input{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.auth-field-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:9px}.auth-submit{min-height:39px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:8px;padding:9px 13px;background:#13734a;color:#fff;font-size:.67rem;font-weight:750;text-align:center;text-decoration:none}.auth-submit:hover{background:#0e633e}.auth-outline{min-height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #dce9e1;border-radius:8px;background:#fff;color:#14724a;font-size:.67rem;font-weight:750;text-decoration:none}.auth-screen .auth-message{padding:9px 10px;border-radius:8px;background:#e8f4ed;color:#17623f;font-size:.65rem}.auth-screen .auth-message.error{background:#fdebe7;color:#a33428}.auth-config-note{margin:-5px 0 4px;padding:6px 8px;border:1px dashed #d7e2db;border-radius:7px;color:#78867e;font-size:.54rem;line-height:1.3}.auth-inline{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#63746b;font-size:.59rem}.auth-inline>a,.auth-foot a{color:#13734a;font-weight:700;text-decoration:none}.auth-checkline{min-width:0;display:flex;align-items:flex-start;gap:6px;color:#5b6e63;font-size:.59rem;line-height:1.35}.auth-checkline input{width:14px;height:14px;flex:0 0 14px;margin:0;accent-color:#13734a}.auth-note{display:grid;gap:4px;margin-top:14px;padding:11px;border-radius:10px;background:#fff;color:#31443a;font-size:.62rem}.auth-note p{margin:0;color:#708077;font-size:.57rem;line-height:1.45}.auth-foot{margin:12px 0 0;color:#6c7a73;font-size:.62rem;text-align:center}.auth-register-link{margin-top:13px}.password-wrap{position:relative;display:block}.password-wrap .input{padding-right:37px}.password-toggle{position:absolute;top:50%;right:7px;width:28px;height:28px;transform:translateY(-50%);border:0;border-radius:6px;background:transparent;color:#168052}.auth-screen [hidden]{display:none!important}.auth-kicker{display:inline-flex;align-items:center;gap:5px;width:max-content;margin:9px 0 13px;padding:5px 9px;border:1px solid #dceae2;border-radius:999px;color:#176342;font-size:.59rem;font-weight:700}.auth-check{color:#13734a}.auth-welcome>h1{margin:0;color:#1d3026;font-size:1.72rem;line-height:1.02;letter-spacing:-.045em}.auth-subtitle{margin:7px 0 16px;color:#687a70;font-size:.65rem}.welcome-hero{min-height:148px;display:grid;align-content:center;gap:7px;margin-bottom:12px;padding:14px;border-radius:13px;background:#14734a;color:#fff}.welcome-printer{width:31px;height:31px;display:grid;place-items:center;border-radius:8px;background:#fff;color:#14734a;font-size:1.1rem}.welcome-hero h2{margin:0;font-size:1.05rem;line-height:1.1}.welcome-hero p{max-width:240px;margin:0;color:#dceee4;font-size:.58rem;line-height:1.4}.welcome-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.welcome-services article{min-height:68px;display:grid;align-content:center;gap:3px;padding:8px;border:1px solid #edf1ee;border-radius:10px;background:#fff}.welcome-services article>span{color:#148052;font-size:.8rem}.welcome-services strong{color:#293a31;font-size:.6rem}.welcome-services small{color:#87938d;font-size:.5rem}.auth-actions{display:grid;gap:8px;margin-top:auto;padding-top:14px}.auth-caption{margin:10px 0 0;color:#8a958f;font-size:.49rem;text-align:center}.role-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:0 0 12px;padding:4px;border-radius:9px;background:#fff}.role-tabs button{min-height:30px;border:0;border-radius:7px;background:transparent;color:#52635a;font-size:.62rem}.role-tabs button.active{background:#13734a;color:#fff;font-weight:750}.auth-approval{display:grid;gap:4px;margin:0;padding:9px;border-radius:8px;background:#e7f3ec;color:#17623f}.auth-approval strong{font-size:.61rem}.auth-approval span{color:#5e7467;font-size:.55rem;line-height:1.35}.auth-terms{padding:2px 0}.auth-verify .verify-icon{width:40px;height:40px;display:grid;place-items:center;margin:5px 0 9px;border-radius:12px;background:#e7f4ed;color:#13734a;font-size:1.15rem}.verify-email{margin:0 0 12px;color:#5c6f64;font-size:.66rem}.otp-fields{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.otp-cell{width:100%;min-width:0;height:40px;border:1px solid #d5e1d9;border-radius:7px;background:#fff;color:#1e3026;font-size:.95rem;font-weight:750;text-align:center}.otp-cell:focus{border-color:#13734a;outline:2px solid #13734a33}.auth-text-button{display:block;width:max-content;margin:11px auto 0;border:0;background:transparent;color:#13734a;font-size:.63rem;font-weight:700;text-decoration:none}.auth-code-note{grid-template-columns:1fr auto;margin-top:17px}.auth-code-note>span{color:#74847b;font-size:.57rem}.auth-code-note>strong{color:#52665a;font-size:.57rem;text-align:right}.auth-code-note p{grid-column:1 / -1;margin-top:5px}.auth-aux{justify-content:flex-start;padding-top:0}.auth-loading{justify-content:flex-start}.auth-loading>div{display:grid;justify-items:center;gap:16px;margin:auto 0}.auth-phone .phone-change-form{margin-top:8px}.auth-phone .auth-text-button:disabled{color:#93a19a;cursor:not-allowed}.auth-phone .auth-code-note{margin-top:15px}.request-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.request-category{min-width:0;min-height:84px;display:grid;align-content:center;justify-items:start;gap:5px;padding:11px;border:1px solid #e6ede8;border-radius:12px;background:#fff;color:#22352a;text-align:left}.request-category:hover,.request-category:focus-visible{border-color:#148052;outline:2px solid #14805222}.request-category .service-option-icon{width:30px;height:30px;border-radius:9px}.request-category strong{font-size:.72rem}.request-category small{color:#718078;font-size:.61rem;line-height:1.35}.request-form{gap:11px}.request-form .field-label{display:grid;gap:5px;color:#304238;font-size:.66rem;font-weight:700}.request-form textarea.input{min-height:68px;resize:vertical;line-height:1.4}.request-source-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.request-source-choice label{min-height:42px;display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #e5ece7;border-radius:9px;background:#fff;color:#3d5046;font-size:.65rem;font-weight:650}.request-source-choice input,.request-consent input{accent-color:#13734a}.request-source-choice input{width:14px;height:14px;margin:0}.request-form .upload-drop{margin:0}.request-form .original-description{padding:11px;border:1px solid #e5ece7;border-radius:11px;background:#fff}.request-form .lecturer-request-fields{margin-top:0}.request-estimate{display:grid;gap:4px;padding:12px;border-radius:11px;background:#e8f4ed;color:#17623f}.request-estimate small{font-size:.57rem;font-weight:750;letter-spacing:.025em}.request-estimate strong{font-size:1.05rem}.request-estimate span{color:#60756a;font-size:.58rem}.request-form .request-quote-note{margin:0}.request-consent{padding:0 2px}.request-form>.button{margin-top:1px}.plan-admin-form{align-content:start}.plan-admin-form h2{margin:0;font-size:1rem}.plan-admin-form>label,.plan-admin-form .settings-grid>label{display:grid;gap:5px;color:#304238;font-size:.68rem;font-weight:700}.plan-admin-form textarea.input{resize:vertical}.plan-service-list{display:grid;gap:7px;min-width:0;margin:0;padding:10px;border:1px solid var(--portal-border);border-radius:12px}.plan-service-list legend{padding-inline:4px;color:#304238;font-size:.68rem;font-weight:750}.plan-service-option{display:grid;gap:7px;padding:8px;border-radius:9px;background:#f6f9f7}.plan-service-option>span{display:flex;align-items:center;gap:7px;color:#58685f;font-size:.63rem}.plan-service-option>span:first-child{color:#25372d}.plan-service-option input[type=checkbox]{accent-color:var(--portal-green)}.plan-service-option input[type=number]{width:92px;min-height:34px;margin-left:auto}.request-estimate-unavailable{color:#9a4b19!important;font-size:.75rem!important;line-height:1.4}@media(max-width:359px){.request-category{padding:9px}.request-source-choice{gap:6px}.request-source-choice label{padding:7px;font-size:.6rem}}@media(min-width:600px){.auth-screen{margin-block:20px;min-height:min(844px,calc(100vh - 40px));border:1px solid #e5ebe7;border-radius:22px;box-shadow:0 15px 48px #12271a14}}@media(max-width:359px){.auth-screen{padding-right:14px;padding-left:14px}.auth-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-field-grid>.auth-field:first-child{grid-column:1 / -1}.auth-welcome>h1{font-size:1.55rem}.welcome-hero{min-height:132px}}@media(max-height:700px){.auth-screen{padding-top:max(4px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}.auth-heading{margin-bottom:10px}.auth-screen .auth-form{gap:8px}.auth-field-grid{gap:7px}.auth-top-link{margin-bottom:12px}.welcome-hero{min-height:122px}.auth-note{margin-top:10px}}.auth-recovery,.auth-review,.auth-reset-success{gap:0}.recovery-icon,.success-icon,.review-icon{width:50px;height:50px;display:grid;place-items:center;margin:7px 0 12px;border-radius:15px;background:#e7f4ed;color:#13734a}.auth-recovery .recovery-help{margin:0 0 13px;padding:14px}.auth-recovery .recovery-help strong{font-size:.68rem}.auth-recovery .recovery-help p{font-size:.61rem;line-height:1.5}.auth-recovery .auth-text-button{margin-top:13px}.recovery-verified{width:max-content;display:inline-flex;align-items:center;gap:5px;margin:1px 0 13px;padding:5px 9px;border-radius:999px;background:#e7f4ed;color:#17623f;font-size:.6rem;font-weight:750}.password-requirements{display:grid;gap:8px;padding:12px;border-radius:10px;background:#fff;color:#304238}.password-requirements>strong{font-size:.65rem}.password-requirements ul{display:grid;gap:7px;margin:0;padding:0;list-style:none}.password-requirements li{display:flex;align-items:center;gap:7px;color:#7b8881;font-size:.59rem}.password-requirements li>span{width:15px;height:15px;display:grid;place-items:center;flex:0 0 15px;border-radius:4px;background:#f0f3f1;color:#fff}.password-requirements li.passed{color:#31463a}.password-requirements li.passed>span{background:#13734a}.password-match-note{margin:0;text-align:left;line-height:1.4}.auth-reset-success .success-icon{width:56px;height:56px;margin:auto auto 15px}.reset-success-copy{margin-top:auto}.reset-success-copy h2{margin:0 0 8px;color:#202f27;font-size:.87rem}.reset-success-copy p,.review-followup{color:#718078;font-size:.64rem;line-height:1.5}.reset-success-note{margin:18px 0 12px;padding:14px}.reset-success-note>div,.review-status-list>div{display:flex;justify-content:space-between;gap:12px}.reset-success-note>div span,.review-status-list>div span{color:#718078;font-size:.59rem}.reset-success-note>div strong,.review-status-list>div strong{color:#25382d;font-size:.59rem;text-align:right}.reset-success-note p{margin-top:6px}.auth-review .review-icon{margin:10px 0 8px;background:#fff3e1;color:#c76b00}.auth-review .review-icon-alert{background:#fdebe7;color:#a33428}.review-badge{width:max-content;margin-bottom:12px;padding:5px 9px;border-radius:999px;background:#fff3e1;color:#a65300;font-size:.57rem;font-weight:750}.review-badge-alert{background:#fdebe7;color:#a33428}.review-status-list{gap:10px;margin:0 0 12px;padding:13px}.review-warning{margin:0;padding:13px;background:#fff3e1;color:#8a4c08}.review-warning strong{font-size:.64rem}.review-warning p{color:#695a45;font-size:.6rem}.review-followup{margin:13px 0}.review-signout{margin-top:15px;color:#b5342b}.campus-fee-list{display:grid;gap:10px}.campus-fee-card{width:100%;display:grid;gap:8px;padding:15px;border:1px solid #e5ece7;border-radius:14px;background:#fff;color:#23342b;text-align:left;cursor:pointer;font:inherit}.campus-fee-card .row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.campus-fee-card small{color:#708078;line-height:1.45}.campus-fee-amount{color:#116b43;font-size:1.3rem;font-weight:750}.campus-fee-card:focus-visible{outline:3px solid #62b58a;outline-offset:2px}.payment-proof-panel{gap:12px}.payment-proof-panel h3{margin:0}.payment-proof-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #e5ece7;border-radius:12px;background:#fff}.payment-proof-row>span{min-width:0;display:grid;gap:4px;overflow-wrap:anywhere}.payment-proof-row small{color:#708078;line-height:1.4}.payment-proof-upload{padding-top:12px;border-top:1px solid #e5ece7}.payment-proof-upload input[type=file]{max-width:100%}@media(max-width:359px){.password-requirements{padding:10px}.review-status-list{padding:11px}.campus-fee-card{padding:12px}.payment-proof-row{align-items:flex-start;flex-direction:column}}
