@font-face{font-family:"Manrope";src:url("/fonts/Manrope-Variable.ttf") format("truetype");font-style:normal;font-weight:200 800;font-display:swap}:root{--ink:#29243a;--muted:#7b7588;--purple:#8068c7;--purple-dark:#6e55b8;--purple-soft:#f1eef9;--border:#e8e5ee;--surface:#fff;--bg:#f8f7fa;--danger:#b9384b;--success:#15785a;--shadow:0 12px 36px rgba(61,47,91,.065)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Manrope",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:400;line-height:1.5}button,input,textarea,select{font:inherit;color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--purple)}:focus-visible{outline:3px solid #b7a8df;outline-offset:3px;border-radius:6px}h1,h2,p{margin-top:0}h1,h2,h3{font-weight:560}h1{font-size:clamp(2rem,4vw,3.2rem);line-height:1.08;letter-spacing:-.035em}h2{font-size:1.35rem;letter-spacing:-.015em}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:600;color:var(--purple)}.muted,.micro{color:var(--muted)}.micro{font-size:.78rem}.brand-mark{width:54px;height:54px;border-radius:17px;background:linear-gradient(145deg,#8c76ce,#7159b8);display:grid;place-items:center;color:white;font-size:24px;font-weight:600;box-shadow:0 10px 24px #7058b42e}.brand-mark.small{width:40px;height:40px;border-radius:12px;font-size:18px}.brand{display:flex;align-items:center;gap:12px}.brand div{display:flex;flex-direction:column}.brand strong{font-weight:600}.brand small{color:var(--muted)}
.neutral-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 5%,#eee6ff 0,transparent 35%),var(--bg)}.neutral-card,.claim-card,.login-card{width:min(100%,520px);background:white;border:1px solid var(--border);border-radius:26px;padding:44px;text-align:center;box-shadow:var(--shadow)}.neutral-card h1,.claim-card h1,.login-card h1{font-size:2rem;margin:24px 0 14px}.neutral-card .brand-mark,.claim-card .brand-mark,.login-card .brand-mark{margin:auto}.neutral-card p,.claim-card>p,.login-card>p{color:var(--muted)}.text-link{display:inline-block;margin-top:18px;font-weight:650;text-underline-offset:4px}.center{text-align:center}.claim-card{text-align:left}.claim-card .brand-mark{margin:0 0 28px}.claim-card .primary{width:100%;margin-top:16px}.notice{background:var(--purple-soft);border-radius:13px;padding:15px;margin:22px 0;color:#4d327d}.status-dot{display:block;width:14px;height:14px;border-radius:50%;background:var(--danger);margin-bottom:20px;box-shadow:0 0 0 8px #fdebed}.success-card{text-align:center}.success-icon,.shield{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#e3f7ef;color:var(--success);font-size:30px;font-weight:800;margin:0 auto 22px}
.primary,.secondary{border:0;border-radius:11px;padding:11px 17px;font-weight:600;transition:.18s ease}.primary{background:var(--purple);color:white;box-shadow:0 7px 18px #8068c72b}.primary:hover{background:var(--purple-dark);transform:translateY(-1px)}.secondary{background:white;border:1px solid var(--border)}.secondary:hover{border-color:#c4b9df;background:#fbfaff}.wide{width:100%}.button-link{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.error{background:#fff0f2;color:#9c2539;border:1px solid #ffd0d8;border-radius:10px;padding:11px 13px;font-size:.9rem}.success-note{color:var(--success);font-weight:600}.login-card{text-align:left}.login-card label,.invite-form label{display:block;font-weight:550;margin:18px 0 6px}.login-card input,.invite-form input,.filters input,.filters select,.field-grid input,.field-grid textarea{width:100%;margin-top:7px;border:1px solid #dcd6e7;border-radius:10px;padding:11px 12px;background:white;transition:.18s}.login-card input:hover,.field-grid input:hover,.field-grid textarea:hover{border-color:#c4b9df}.login-card .primary{margin-top:20px}
.app-shell{min-height:100vh}.form-header,.admin-top{height:72px;background:white;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,5vw,72px);position:sticky;top:0;z-index:20}.temporary-badge,.count-badge{background:var(--purple-soft);color:#5c35a6;border-radius:99px;padding:6px 11px;font-size:.76rem;font-weight:750}.form-layout{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:250px minmax(0,1fr);gap:52px;padding:54px 28px 80px}.stepper{display:flex;flex-direction:column;gap:8px}.stepper button{border:0;background:transparent;display:flex;align-items:center;gap:12px;text-align:left;color:#8b8595;padding:9px;border-radius:10px}.stepper button span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1px solid #dcd6e7;font-style:normal;font-size:.83rem;font-weight:800}.stepper button em{font-style:normal;font-size:.9rem}.stepper button.active{background:var(--purple-soft);color:var(--purple);font-weight:750}.stepper button.active span{background:var(--purple);border-color:var(--purple);color:white}.stepper button.done{color:var(--success)}.stepper button.done span{border-color:#9cd7c5;background:#eaf8f3}.form-card{background:white;border:1px solid var(--border);border-radius:22px;padding:clamp(26px,5vw,48px);box-shadow:var(--shadow);min-height:600px}.form-card h1{font-size:2.25rem;margin:8px 0 12px}.section-lead{color:var(--muted);margin-bottom:30px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field-grid label{font-weight:700;font-size:.9rem}.field-grid label>span{color:var(--purple)}.field-grid .full{grid-column:1/-1}.field-grid textarea{resize:vertical}.form-actions{display:flex;gap:12px;align-items:center;margin-top:34px;padding-top:22px;border-top:1px solid var(--border)}.form-actions span{flex:1}.mobile-progress{display:none}.drop-zone{border:2px dashed #cfc4e5;border-radius:17px;min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;background:#fcfbff;cursor:pointer;transition:.2s}.drop-zone:hover,.drop-zone.over{border-color:var(--purple);background:var(--purple-soft)}.drop-zone.disabled{opacity:.6;cursor:not-allowed}.drop-zone input{position:absolute;opacity:0;pointer-events:none}.upload-icon{width:46px;height:46px;border-radius:13px;background:var(--purple-soft);color:var(--purple);display:grid;place-items:center;font-size:24px}.drop-zone>span:last-child{color:var(--muted);font-size:.86rem}.upload-progress{display:grid;grid-template-columns:140px 1fr 42px;align-items:center;gap:10px;margin:12px 0;font-size:.83rem}.upload-progress>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-progress>div{height:6px;background:#eeeaf4;border-radius:99px;overflow:hidden}.upload-progress i,.mobile-progress i{display:block;height:100%;background:var(--purple)}.upload-progress b{font-size:.78rem}.doc-list{margin-top:22px}.doc-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:13px;border-top:1px solid var(--border);padding:13px 0}.doc-row div{min-width:0}.doc-row strong,.doc-row small{display:block;overflow:hidden;text-overflow:ellipsis}.doc-row small{color:var(--muted);font-size:.75rem}.doc-row a,.doc-row button{font-size:.82rem;border:0;background:none;color:var(--purple);font-weight:700}.doc-row button{color:var(--danger)}.file-icon{width:40px;height:40px;border-radius:9px;background:#f0eafd;color:var(--purple);display:grid;place-items:center;font-size:.65rem;font-weight:900}.review-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border)}.review-grid>div{padding:16px 8px;border-bottom:1px solid var(--border)}.review-grid span,.review-grid strong{display:block}.review-grid span{font-size:.78rem;color:var(--muted);margin-bottom:4px}.review-grid strong{white-space:pre-wrap}.review h2{margin-top:30px}.review-doc{display:flex;justify-content:space-between;border-top:1px solid var(--border);padding:11px}.review-doc span{color:var(--muted)}.confirm-box{text-align:center;background:#faf9fd;border:1px solid var(--border);border-radius:17px;padding:32px}.confirm-box>p{color:var(--muted)}.checkbox{display:flex;gap:12px;text-align:left;background:white;border:1px solid var(--border);padding:16px;border-radius:12px;margin-top:24px;cursor:pointer}.checkbox input{width:20px;height:20px;accent-color:var(--purple);flex:0 0 auto}
.admin-shell{min-height:100vh}.admin-top nav{display:flex;align-items:center;gap:24px}.admin-top nav a,.admin-top nav button{border:0;background:none;text-decoration:none;color:var(--muted);font-weight:550}.admin-top nav a:hover,.admin-top nav button:hover{color:var(--purple)}.admin-content{max-width:1280px;margin:auto;padding:46px 28px 80px}.page-heading,.detail-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:28px}.page-heading h1,.detail-heading h1{font-size:2.55rem;margin:4px 0 7px}.page-heading p,.detail-heading p{color:var(--muted);margin:0}.metric-strip{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));overflow:hidden;background:white;border:1px solid var(--border);border-radius:16px;box-shadow:0 6px 22px #3d2f5b0a;margin-bottom:28px}.metric{min-width:0;padding:18px 22px;border-right:1px solid var(--border)}.metric:last-child{border-right:0}.metric span,.metric strong{display:block}.metric span{color:var(--muted);font-size:.78rem;margin-bottom:5px}.metric strong{font-size:1.6rem;font-weight:560;letter-spacing:-.025em}.metric.accent{background:var(--purple-soft);color:#5e4b98}.metric.accent span{color:#7a6aab}.panel{background:white;border:1px solid var(--border);border-radius:18px;padding:24px;box-shadow:0 6px 24px #3d2f5b0a;margin-bottom:26px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.panel-head h2{margin:4px 0 0}.admin-columns{display:grid;grid-template-columns:1.4fr .8fr;gap:26px}.invite-form{display:flex;flex-direction:column;align-items:stretch;gap:14px;width:100%}.invite-form label{margin:0;width:100%}.invite-form input,.invite-form button{width:100%}.created-link{display:grid;grid-template-columns:1fr;gap:10px;margin-top:18px;padding:14px;background:var(--purple-soft);border-radius:12px}.created-link>span{color:#685b8b;font-size:.76rem;font-weight:550}.created-link code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.created-link button{width:100%}.events{max-height:380px;overflow:auto}.event,.time-item{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--border)}.event i,.time-item i{width:9px;height:9px;border-radius:50%;background:#b8a9d5;margin-top:7px;flex:none}.event div,.time-item div{display:flex;flex-direction:column}.event strong,.time-item strong{font-size:.86rem}.event small,.time-item small{color:var(--muted)}.time-item.complete i{background:var(--success);box-shadow:0 0 0 5px #e5f7f1}.table-wrap{overflow:auto;margin:0 -8px}.table-wrap table{border-collapse:collapse;width:100%;min-width:820px}.table-wrap th,.table-wrap td{text-align:left;border-top:1px solid var(--border);padding:13px 10px;font-size:.84rem}.table-wrap th{color:var(--muted);font-weight:500}.status{display:inline-flex;padding:5px 9px;border-radius:99px;background:#f1eff4;color:#675e73;font-size:.73rem;font-weight:600;white-space:nowrap}.status.completed{background:#e5f7f1;color:#11684e}.status.started,.status.claimed{background:var(--purple-soft);color:#66529f}.status.revoked,.status.expired{background:#fff0f2;color:#a12d40}.danger-link,.sort{border:0;background:none;color:var(--danger);font-weight:600}.sort{color:var(--muted);padding:0}.row-link{font-weight:600;text-decoration:none}.filters{display:flex;gap:12px;margin-bottom:16px}.filters input{flex:1}.filters select{width:190px}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:18px}.pagination button{border:1px solid var(--border);background:white;border-radius:8px;padding:7px 11px}.empty{text-align:center;color:var(--muted);padding:30px}.detail-actions{display:flex;gap:10px}.detail-grid{display:grid;grid-template-columns:1.45fr .7fr;gap:26px}.details-list{margin:0}.details-list>div{display:grid;grid-template-columns:190px 1fr;gap:18px;padding:14px 0;border-top:1px solid var(--border)}.details-list dt{color:var(--muted)}.details-list dd{margin:0;white-space:pre-wrap}.document-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.document-cards article{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;border:1px solid var(--border);border-radius:12px;padding:13px}.document-cards article>div{min-width:0}.document-cards strong,.document-cards small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-cards small{font-size:.74rem;color:var(--muted)}
@media(max-width:900px){.form-layout{grid-template-columns:1fr;padding-top:28px}.stepper{display:none}.mobile-progress{display:block;font-size:.8rem;color:var(--muted);margin-bottom:22px}.mobile-progress>div{height:5px;background:#eeeaf4;border-radius:99px;margin-top:7px}.admin-columns,.detail-grid{grid-template-columns:1fr}.document-cards{grid-template-columns:1fr}.admin-top nav a:not(:last-of-type){display:none}}
@media(max-width:620px){.neutral-card,.claim-card,.login-card{padding:28px 22px;border-radius:20px}.form-header{padding:0 16px}.form-header .brand small,.temporary-badge{display:none}.form-layout{padding:18px 12px 50px}.form-card{padding:24px 18px;min-height:calc(100vh - 110px)}.form-card h1{font-size:1.8rem}.field-grid,.review-grid{grid-template-columns:1fr}.field-grid .full{grid-column:auto}.form-actions{position:sticky;bottom:0;background:white;padding-bottom:4px}.form-actions .primary{flex:1}.doc-row{grid-template-columns:auto 1fr auto}.doc-row a{display:none}.admin-top{padding:0 16px}.admin-content{padding:30px 14px 60px}.page-heading,.detail-heading{align-items:flex-start;flex-direction:column}.metric-strip{overflow-x:auto;grid-template-columns:repeat(4,minmax(135px,1fr))}.metric{padding:15px 17px}.metric strong{font-size:1.4rem}.filters{flex-direction:column}.filters select{width:100%}.details-list>div{grid-template-columns:1fr;gap:3px}.detail-actions{width:100%}.detail-actions>*{flex:1}.admin-top nav{gap:10px}}
strong{font-weight:600}.temporary-badge,.count-badge,.stepper button.active,.stepper button span,.drop-zone strong,.doc-row button,.doc-row a,.file-icon{font-weight:600}
.toast-stack{position:fixed;left:24px;bottom:24px;z-index:1000;width:min(380px,calc(100vw - 32px));display:flex;flex-direction:column-reverse;gap:10px;pointer-events:none}.app-toast{display:grid;grid-template-columns:32px minmax(0,1fr) 26px;align-items:center;gap:11px;padding:12px 12px 12px 14px;background:#edf9f3;color:#145d45;border:1px solid #b9e2ce;border-radius:14px;box-shadow:0 16px 40px rgba(25,92,68,.16);pointer-events:auto;animation:toast-slide-in .34s cubic-bezier(.2,.8,.2,1) both}.app-toast.error{background:#fff2f3;color:#8d2435;border-color:#f0bdc6;box-shadow:0 16px 40px rgba(141,36,53,.15)}.app-toast.leaving{animation:toast-slide-out .28s ease both}.app-toast strong{font-size:.9rem;line-height:1.35}.app-toast button{width:26px;height:26px;display:grid;place-items:center;border:0;background:transparent;color:#52816f;border-radius:7px;font-size:1.15rem;line-height:1}.app-toast button:hover{background:#dcefe6}.app-toast.error button{color:#a95260}.app-toast.error button:hover{background:#f7dfe3}.toast-check{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#2d9b70;color:white;font-weight:700;box-shadow:0 5px 12px rgba(45,155,112,.22)}.app-toast.error .toast-check{background:#c84b60;box-shadow:0 5px 12px rgba(200,75,96,.22)}@keyframes toast-slide-in{from{opacity:0;transform:translate3d(-26px,24px,0) scale(.96)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}@keyframes toast-slide-out{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:0;transform:translate3d(-22px,12px,0)}}@media(prefers-reduced-motion:reduce){.app-toast,.app-toast.leaving{animation-duration:.01ms}}

/* Document workflow v2 */
.home-card{max-width:620px}.home-actions{display:flex;gap:12px;justify-content:center;margin-top:28px}.stack-form{display:flex;flex-direction:column;gap:15px}.stack-form label,.form-panel label,.review-controls label{display:flex;flex-direction:column;gap:7px;font-weight:550}.stack-form input,.stack-form textarea,.stack-form select,.form-panel input,.form-panel textarea,.form-panel select,.review-controls textarea,.act-editor input,.act-editor textarea{width:100%;border:1px solid #dcd6e7;border-radius:10px;padding:11px 12px;background:white}.registration-card{width:min(100%,600px)}.text-button{border:0;background:none;color:var(--purple);font-weight:600;margin-top:14px}.template-warning{padding:13px 15px;background:#fff8e7;color:#725716;border:1px solid #f1dfaa;border-radius:12px;margin:18px 0}.review-comment{padding:14px 16px;background:#fff6f7;border:1px solid #f4d4da;border-radius:12px;margin:16px 0}.review-comment p{margin:5px 0 0}.action-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.danger-button{border:1px solid #edc0c8;background:#fff4f5;color:var(--danger);border-radius:11px;padding:10px 15px;font-weight:600}.section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.section-title h1,.section-title h2,.section-title h3{margin:5px 0 0}.form-panel>h1{font-size:2.2rem;margin:7px 0 24px}.form-panel>.primary,.form-panel>.file-button{margin-top:24px}.file-button{display:inline-flex!important;align-items:center;justify-content:center;width:max-content;border:0;border-radius:11px;padding:11px 17px;background:var(--purple);color:white;font-weight:600;cursor:pointer}.file-button input{position:absolute!important;width:1px!important;height:1px!important;opacity:0;pointer-events:none}.secondary-file{background:white;color:var(--ink);border:1px solid var(--border)}.signature-state{display:flex;flex-direction:column;gap:4px;background:#faf9fd;border:1px solid var(--border);border-radius:14px;padding:18px;margin:22px 0}.signature-state.ready{background:#eaf8f3;border-color:#c7eadd}.signature-state span{color:var(--muted)}
.portal-shell{min-height:100vh}.portal-top{height:72px;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--border);padding:0 34px;position:sticky;top:0;z-index:20}.portal-top nav{display:flex;gap:10px}.portal-top nav button{border:0;background:none;color:var(--muted);font-weight:550}.portal-layout{max-width:1440px;margin:auto;display:grid;grid-template-columns:230px minmax(0,1fr);gap:32px;padding:32px}.portal-nav,.admin-side{display:flex;flex-direction:column;gap:5px;position:sticky;top:104px;height:max-content}.portal-nav button,.admin-side button{border:0;background:transparent;border-radius:11px;padding:11px 13px;text-align:left;color:var(--muted);display:flex;align-items:center;gap:10px;font-weight:550}.portal-nav button span{font-size:.7rem;color:#aaa0ba}.portal-nav button.active,.admin-side button.active{background:var(--purple-soft);color:#5e48a0}.portal-content{min-width:0}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:26px}.summary-grid article{background:white;border:1px solid var(--border);border-radius:15px;padding:19px;display:flex;flex-direction:column;min-height:140px}.summary-grid span{color:var(--muted);font-size:.8rem}.summary-grid strong{font-size:1.05rem;margin:7px 0 16px}.summary-grid button{border:0;background:none;color:var(--purple);padding:0;text-align:left;margin-top:auto;font-weight:600}.order-list article,.invite-list article{display:flex;align-items:center;gap:14px;padding:13px 0;border-top:1px solid var(--border)}.order-list article>div,.invite-list article>div{display:flex;flex:1;flex-direction:column}.order-list small,.invite-list small{color:var(--muted)}.orders-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;align-items:start}.order-sidebar{display:flex;flex-direction:column;gap:8px}.order-sidebar button{display:flex;flex-direction:column;text-align:left;border:1px solid var(--border);background:white;border-radius:12px;padding:13px;color:var(--ink)}.order-sidebar button.active{border-color:#ad9bd5;background:var(--purple-soft)}.order-sidebar span,.order-sidebar small{color:var(--muted);font-size:.76rem}.order-editor{margin:0}.order-editor h3,.admin-order-detail h4{margin-top:28px}.upload-pair{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}.act-preview,.act-editor{margin-top:28px;padding:20px;border:1px solid var(--border);border-radius:14px;background:#faf9fd}.signature-required{margin:18px 0;padding:16px;border:1px solid #efd19a;border-radius:12px;background:#fff9e9;color:#684f17}.signature-required strong{display:block;margin-bottom:5px}.signature-required p{margin:0 0 13px;color:#80682e}.act-preview dl,.compact-details{margin:0}.act-preview dl>div,.compact-details>div{display:grid;grid-template-columns:180px 1fr;gap:15px;padding:10px 0;border-top:1px solid var(--border)}.act-preview dt,.compact-details dt{color:var(--muted)}.act-preview dd,.compact-details dd{margin:0;white-space:pre-wrap}.doc-list.compact .doc-row{grid-template-columns:auto 1fr auto}.document-group{margin-top:24px}.document-group h3{padding-bottom:8px;border-bottom:1px solid var(--border)}
.admin-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:24px;max-width:1480px;margin:auto;padding:30px}.admin-side{top:102px}.admin-content{max-width:none;width:100%;padding:0 0 70px}.storage-bar{height:10px;background:#eeeaf4;border-radius:99px;overflow:hidden}.storage-bar i{display:block;height:100%;background:var(--purple)}.created-credentials{margin-top:20px;padding:16px;border-radius:13px;background:var(--purple-soft)}.created-credentials label{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px}.created-credentials code{grid-column:1/-1;word-break:break-all;background:white;padding:10px;border-radius:8px}.created-credentials button{border:0;background:none;color:var(--purple);font-weight:600}.invite-list{max-height:620px;overflow:auto}.table-sub{display:block;color:var(--muted)}.audit-list{max-height:none}.event.failed i{background:var(--danger)}.admin-orders{grid-template-columns:240px minmax(0,1fr)}.admin-order-detail{min-width:0}.review-controls{margin-top:22px;padding-top:18px;border-top:1px solid var(--border)}.review-controls textarea{margin-top:7px}.document-cards article{grid-template-columns:auto minmax(0,1fr) auto}.document-cards small{white-space:normal;word-break:break-all}.status.review,.status.instruction_review,.status.act_review{background:#fff4d9;color:#745714}.status.accepted,.status.completed,.status.active{background:#e5f7f1;color:#11684e}.status.correction,.status.instruction_correction,.status.act_correction,.status.rejected,.status.blocked,.status.cancelled{background:#fff0f2;color:#a12d40}.status.act_drafting,.status.act_client_signature{background:var(--purple-soft);color:#66529f}
.template-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--border)}.template-row>div{display:flex;flex-direction:column;min-width:0}.template-row small{color:var(--muted);overflow:hidden;text-overflow:ellipsis}.template-row .file-button{margin:0;flex:none}
.staff-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.compact-button{padding:7px 10px;font-size:.78rem}.muted-row{opacity:.68}.status.deleted{background:#f1eff4;color:#675e73}.staff-activity{scroll-margin-top:92px}.staff-activity .panel-head p{color:var(--muted);margin:4px 0 0}.staff-metrics{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));overflow:hidden;border:1px solid var(--border);border-radius:14px;margin-bottom:20px}.staff-metrics .metric-date{font-size:1rem;line-height:1.35;padding-top:5px}
@media(max-width:1050px){.summary-grid{grid-template-columns:1fr 1fr}.portal-layout,.admin-layout{grid-template-columns:1fr}.portal-nav,.admin-side{position:static;flex-direction:row;overflow:auto}.portal-nav button,.admin-side button{white-space:nowrap}.orders-layout,.admin-orders{grid-template-columns:1fr}.order-sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.portal-top{padding:0 14px}.portal-top nav button:not(:last-child){display:none}.portal-layout,.admin-layout{padding:16px 12px}.portal-nav,.admin-side{margin:0 -12px;padding:0 12px}.summary-grid{grid-template-columns:1fr}.home-actions{flex-direction:column}.section-title{flex-direction:column}.order-sidebar{grid-template-columns:1fr}.act-preview dl>div,.compact-details>div{grid-template-columns:1fr;gap:3px}.upload-pair,.action-row{flex-direction:column}.upload-pair>*{width:100%}.admin-top nav button:not(:last-child){display:none}.staff-metrics{grid-template-columns:1fr 1fr}.staff-actions{min-width:190px}.toast-stack{left:16px;bottom:16px}}
.upload-limit{display:flex;flex-direction:column;gap:3px;margin-top:24px;color:var(--muted)}.upload-limit strong{color:var(--ink)}.upload-limit+.upload-pair{margin-top:10px}.file-button.disabled{opacity:.5;cursor:not-allowed}

/* Alipaygroup brand and mobile navigation */
@font-face {
  font-family: "Satoshi";
  src: url("/fonts/Satoshi-Variable.ttf") format("truetype");
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
}

body {
  font-family: "Satoshi", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.brand-logo {
  width: 52px;
  height: 52px;
  flex: 0 0 auto;
  object-fit: cover;
  border-radius: 15px;
  box-shadow: 0 7px 20px rgba(55, 48, 105, .15);
}

.brand-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.15;
}

.brand-copy strong {
  font-size: 1rem;
  font-weight: 580;
  letter-spacing: -.015em;
}

.brand-copy small {
  margin-top: 4px;
  color: var(--muted);
  font-size: .75rem;
  font-weight: 430;
}

.brand.compact .brand-logo {
  width: 42px;
  height: 42px;
  border-radius: 12px;
}

.brand-card {
  justify-content: center;
  margin: 0 auto 26px;
  text-align: left;
}

.brand-card.left {
  justify-content: flex-start;
  margin: 0 0 28px;
}

.brand-card .brand-logo {
  width: 58px;
  height: 58px;
  border-radius: 17px;
}

.portal-nav button span,
.admin-side button span {
  min-width: 22px;
  color: #9c90b7;
  font-size: .69rem;
  font-weight: 600;
}

.mobile-menu-trigger {
  width: 42px;
  height: 42px;
  display: none;
  place-content: center;
  gap: 5px;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 5px 16px rgba(61, 47, 91, .06);
}

.mobile-menu-trigger span {
  width: 19px;
  height: 1.5px;
  border-radius: 99px;
  background: var(--ink);
}

.mobile-drawer-shell {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  justify-content: flex-end;
}

.mobile-drawer-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  border-radius: 0;
  background: rgba(26, 21, 39, .46);
  backdrop-filter: blur(3px);
  animation: drawer-backdrop-in .22s ease both;
}

.mobile-drawer {
  position: relative;
  width: min(360px, calc(100vw - 24px));
  height: 100dvh;
  display: flex;
  flex-direction: column;
  overflow: auto;
  background: #fff;
  border-left: 1px solid #ded8eb;
  box-shadow: -22px 0 60px rgba(34, 26, 54, .2);
  animation: drawer-slide-in .28s cubic-bezier(.22, .8, .24, 1) both;
}

.mobile-drawer-head {
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 18px;
  border-bottom: 1px solid var(--border);
}

.mobile-drawer-close {
  width: 40px;
  height: 40px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 11px;
  background: var(--purple-soft);
  color: #604b9f;
  font-size: 1.45rem;
  line-height: 1;
}

.mobile-drawer-nav {
  display: flex;
  flex-direction: column;
}

.mobile-drawer-nav button {
  min-height: 64px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 2px;
  padding: 0 22px;
  border: 0;
  border-bottom: 1px solid var(--border);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  text-align: left;
  transition: background .16s ease, color .16s ease;
}

.mobile-drawer-nav button span {
  color: #8d7caf;
  font-size: .7rem;
  font-weight: 650;
  letter-spacing: .03em;
}

.mobile-drawer-nav button strong {
  font-size: 1rem;
  font-weight: 540;
}

.mobile-drawer-nav button.active {
  background: linear-gradient(90deg, #f4f1fb, #faf9fd);
  color: #6249a9;
  box-shadow: inset 3px 0 0 var(--purple);
}

.mobile-drawer-footer {
  margin-top: auto;
  padding: 18px;
  border-top: 1px solid var(--border);
}

.mobile-logout {
  width: 100%;
  min-height: 64px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border: 1px solid #d9d2e8;
  border-radius: 15px;
  background: #fbfaff;
  color: var(--ink);
  text-align: left;
}

.mobile-logout > span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: var(--purple-soft);
  color: var(--purple);
  font-size: 1.05rem;
}

.mobile-logout div {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.mobile-logout strong {
  font-size: .9rem;
  font-weight: 570;
}

.mobile-logout small {
  margin-top: 4px;
  color: var(--muted);
  font-size: .7rem;
}

@keyframes drawer-slide-in {
  from { opacity: .7; transform: translate3d(100%, 0, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes drawer-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (max-width: 760px) {
  .desktop-header-nav {
    display: none !important;
  }

  .mobile-menu-trigger {
    display: grid;
  }

  .portal-top,
  .admin-top {
    height: 68px;
    padding: 0 14px;
  }

  .portal-nav,
  .admin-side {
    display: none !important;
  }

  .portal-layout,
  .admin-layout {
    display: block;
    padding: 18px 12px 60px;
  }

  .brand.compact .brand-logo {
    width: 40px;
    height: 40px;
  }
}

.session-loading-screen {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  min-height: 100dvh;
  overflow: hidden;
  padding: 24px;
  background:
    radial-gradient(circle at 18% 12%, rgba(155, 112, 255, .22), transparent 34%),
    radial-gradient(circle at 88% 85%, rgba(95, 48, 184, .17), transparent 36%),
    linear-gradient(145deg, #fdfcff 0%, #f3edff 52%, #fbf9ff 100%);
}

.session-loading-card {
  position: relative;
  z-index: 2;
  width: min(100%, 480px);
  padding: clamp(30px, 7vw, 48px);
  overflow: hidden;
  border: 1px solid rgba(118, 77, 194, .16);
  border-radius: 30px;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 28px 80px rgba(74, 39, 132, .17);
  text-align: center;
  backdrop-filter: blur(18px);
}

.session-loading-brand {
  justify-content: center;
  margin-bottom: 30px;
}

.session-loader {
  position: relative;
  width: 112px;
  height: 112px;
  margin: 0 auto 28px;
}

.session-loader > b {
  position: absolute;
  inset: 27px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  background: linear-gradient(145deg, #8050d4, #56309d);
  box-shadow: 0 12px 30px rgba(91, 48, 163, .3);
  color: #fff;
  font-size: 30px;
  font-weight: 800;
  animation: session-core-pulse 1.8s ease-in-out infinite;
}

.session-loader-orbit {
  position: absolute;
  inset: 4px;
  border: 1px solid rgba(111, 69, 184, .2);
  border-radius: 50%;
  animation: session-orbit-spin 1.65s linear infinite;
}

.session-loader-orbit.orbit-two {
  inset: 14px;
  border-color: rgba(151, 108, 225, .24);
  animation-duration: 2.2s;
  animation-direction: reverse;
}

.session-loader-orbit i {
  position: absolute;
  top: -5px;
  left: 50%;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #7545c5;
  box-shadow: 0 0 0 6px rgba(117, 69, 197, .12), 0 0 22px rgba(117, 69, 197, .48);
}

.session-loader-orbit.orbit-two i {
  top: auto;
  bottom: -4px;
  width: 8px;
  height: 8px;
  background: #aa82eb;
}

.session-loading-card h1 {
  margin: 0 0 11px;
  color: #21162f;
  font-size: clamp(1.5rem, 5vw, 2rem);
  line-height: 1.15;
}

.session-loading-card p {
  margin: 0 auto;
  color: #70667f;
  line-height: 1.55;
}

.session-loading-progress {
  width: min(100%, 280px);
  height: 6px;
  margin: 28px auto 14px;
  overflow: hidden;
  border-radius: 99px;
  background: #ece5f7;
}

.session-loading-progress i {
  display: block;
  width: 42%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #a47ade, #6638b3, #b28ce8);
  animation: session-progress-slide 1.35s ease-in-out infinite;
}

.session-loading-card small {
  color: #948aa1;
  font-size: .76rem;
}

.session-loading-glow {
  position: absolute;
  width: min(55vw, 520px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: rgba(130, 80, 218, .11);
  filter: blur(6px);
  animation: session-glow-float 7s ease-in-out infinite;
}

.session-loading-glow.glow-one {
  top: -30%;
  left: -12%;
}

.session-loading-glow.glow-two {
  right: -16%;
  bottom: -36%;
  animation-delay: -3.5s;
}

@keyframes session-orbit-spin {
  to { transform: rotate(360deg); }
}

@keyframes session-core-pulse {
  0%, 100% { transform: scale(1); box-shadow: 0 12px 30px rgba(91, 48, 163, .3); }
  50% { transform: scale(1.06); box-shadow: 0 15px 38px rgba(91, 48, 163, .42); }
}

@keyframes session-progress-slide {
  0% { transform: translateX(-115%); }
  55%, 100% { transform: translateX(245%); }
}

@keyframes session-glow-float {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
  50% { transform: translate3d(5%, 7%, 0) scale(1.08); }
}

@media (max-width: 560px) {
  .session-loading-screen {
    padding: 16px;
  }

  .session-loading-card {
    padding: 30px 22px 32px;
    border-radius: 24px;
  }

  .session-loader {
    width: 96px;
    height: 96px;
  }

  .session-loader > b {
    inset: 24px;
    border-radius: 19px;
    font-size: 25px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .session-loader > b,
  .session-loader-orbit,
  .session-loading-progress i,
  .session-loading-glow {
    animation-duration: 4s;
  }
}

/* Minimal session loader: a clean white screen with floating circles. */
.session-loading-screen {
  background: #fff;
}

.session-floating-circles {
  position: relative;
  width: min(72vw, 290px);
  height: min(42vw, 170px);
}

.session-floating-circles i {
  position: absolute;
  display: block;
  border-radius: 50%;
  background: #7b4bc4;
  box-shadow: 0 10px 28px rgba(102, 56, 179, .18);
  animation: session-circle-float 2.4s ease-in-out infinite;
}

.session-floating-circles i:nth-child(1) {
  top: 52%;
  left: 2%;
  width: 22px;
  height: 22px;
  opacity: .35;
  animation-delay: -.4s;
}

.session-floating-circles i:nth-child(2) {
  top: 13%;
  left: 20%;
  width: 38px;
  height: 38px;
  opacity: .65;
  animation-delay: -1.7s;
  animation-duration: 2.8s;
}

.session-floating-circles i:nth-child(3) {
  top: 48%;
  left: 42%;
  width: 54px;
  height: 54px;
  opacity: .9;
  animation-delay: -.9s;
  animation-duration: 2.2s;
}

.session-floating-circles i:nth-child(4) {
  top: 7%;
  right: 19%;
  width: 27px;
  height: 27px;
  opacity: .48;
  animation-delay: -2.1s;
  animation-duration: 3s;
}

.session-floating-circles i:nth-child(5) {
  right: 1%;
  bottom: 18%;
  width: 42px;
  height: 42px;
  opacity: .72;
  animation-delay: -1.2s;
  animation-duration: 2.65s;
}

.session-floating-circles i:nth-child(6) {
  right: 34%;
  bottom: 0;
  width: 16px;
  height: 16px;
  opacity: .28;
  animation-delay: -.2s;
  animation-duration: 2.9s;
}

.session-loading-accessible {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

@keyframes session-circle-float {
  0%, 100% { transform: translate3d(0, 9px, 0) scale(.94); }
  50% { transform: translate3d(0, -13px, 0) scale(1.06); }
}

@media (prefers-reduced-motion: reduce) {
  .session-floating-circles i {
    animation-duration: 5s;
  }
}

@media (max-width: 390px) {
  .brand.compact .brand-copy strong {
    font-size: .92rem;
  }

  .brand.compact .brand-copy small {
    font-size: .69rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-drawer,
  .mobile-drawer-backdrop {
    animation-duration: .01ms;
  }
}

.export-actions {
  display: flex;
  justify-content: flex-end;
  margin: -4px 0 16px;
}

.panel-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.signed-act-upload {
  margin-top: 18px;
}

@media (max-width: 620px) {
  .export-actions,
  .panel-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .export-actions .button-link,
  .panel-actions .button-link,
  .signed-act-upload {
    width: 100%;
  }
}

/* Unified application layout grid */
:root {
  --layout-max: 1440px;
  --layout-gutter: clamp(20px, 3vw, 36px);
  --layout-top: clamp(28px, 4vw, 48px);
  --layout-gap: clamp(18px, 2vw, 28px);
  --card-padding: clamp(20px, 2.2vw, 30px);
}

.admin-top,
.portal-top {
  padding-inline: 0;
}

.topbar-inner {
  width: 100%;
  max-width: var(--layout-max);
  height: 100%;
  margin-inline: auto;
  padding-inline: var(--layout-gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.admin-layout,
.portal-layout {
  width: 100%;
  max-width: var(--layout-max);
  margin-inline: auto;
  padding: var(--layout-top) var(--layout-gutter) 80px;
  gap: var(--layout-gap);
}

.admin-layout {
  grid-template-columns: 220px minmax(0, 1fr);
}

.portal-layout {
  grid-template-columns: 230px minmax(0, 1fr);
}

.admin-layout > .admin-content {
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0 0 72px;
}

.admin-shell > .detail-content {
  width: 100%;
  max-width: var(--layout-max);
  margin-inline: auto;
  padding: var(--layout-top) var(--layout-gutter) 80px;
}

.portal-content {
  width: 100%;
  min-width: 0;
}

.page-heading,
.detail-heading {
  margin-bottom: var(--layout-gap);
}

.detail-heading {
  align-items: center;
}

.detail-heading > div {
  min-width: 0;
}

.detail-heading p {
  overflow-wrap: anywhere;
}

.panel {
  padding: var(--card-padding);
  margin-bottom: var(--layout-gap);
}

.detail-grid {
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .75fr);
  align-items: start;
  gap: var(--layout-gap);
  margin-bottom: var(--layout-gap);
}

.detail-grid > .panel {
  width: 100%;
  min-width: 0;
  margin-bottom: 0;
}

.admin-columns,
.summary-grid {
  gap: var(--layout-gap);
}

.orders-layout {
  grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
  gap: var(--layout-gap);
}

.admin-orders {
  grid-template-columns: minmax(220px, 250px) minmax(0, 1fr);
}

.admin-order-detail,
.details-list dd,
.compact-details dd {
  min-width: 0;
  overflow-wrap: anywhere;
}

@media (max-width: 1050px) {
  .admin-layout,
  .portal-layout {
    grid-template-columns: 1fr;
  }

  .orders-layout,
  .admin-orders {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 900px) {
  .detail-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  :root {
    --layout-gutter: 16px;
    --layout-top: 22px;
    --layout-gap: 16px;
    --card-padding: 20px;
  }

  .topbar-inner {
    padding-inline: var(--layout-gutter);
  }

  .admin-layout,
  .portal-layout {
    display: block;
    padding: var(--layout-top) var(--layout-gutter) 56px;
  }

  .admin-shell > .detail-content {
    padding: var(--layout-top) var(--layout-gutter) 56px;
  }
}

@media (max-width: 520px) {
  :root {
    --layout-gutter: 12px;
    --card-padding: 18px;
  }

  .detail-heading {
    align-items: stretch;
  }

  .detail-heading > button,
  .detail-actions,
  .detail-actions > * {
    width: 100%;
  }
}

/* Animated upload window and touch-friendly photo preview */
.upload-overlay {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(28, 22, 41, .5);
  backdrop-filter: blur(8px);
  animation: file-overlay-in .18s ease both;
}

.upload-dialog {
  width: min(100%, 430px);
  display: grid;
  justify-items: center;
  padding: 34px 30px 28px;
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(31, 22, 52, .28);
  text-align: center;
  animation: file-dialog-in .3s cubic-bezier(.22, .8, .24, 1) both;
}

.upload-spinner {
  position: relative;
  width: 82px;
  height: 82px;
  display: grid;
  place-items: center;
  margin-bottom: 22px;
  border-radius: 50%;
  background: #f3effb;
  color: var(--purple);
  font-size: .94rem;
  font-weight: 650;
}

.upload-spinner::before {
  content: "";
  position: absolute;
  inset: 0;
  border: 5px solid #ddd5ee;
  border-top-color: var(--purple);
  border-right-color: #8f78cf;
  border-radius: inherit;
  animation: file-spinner-turn .9s linear infinite;
}

.upload-spinner.processing {
  background: #eaf8f3;
  color: var(--success);
  font-size: 1.7rem;
}

.upload-spinner.processing::before {
  border-color: #a9dfcf;
  animation-duration: 1.4s;
}

.upload-dialog-copy {
  width: 100%;
  min-width: 0;
}

.upload-dialog-copy h2 {
  margin: 5px 0 8px;
  font-size: 1.35rem;
}

.upload-dialog-copy p {
  overflow: hidden;
  margin: 0;
  color: var(--muted);
  font-size: .88rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.upload-dialog-progress {
  width: 100%;
  height: 9px;
  overflow: hidden;
  margin-top: 24px;
  border-radius: 99px;
  background: #eeeaf4;
}

.upload-dialog-progress i {
  position: relative;
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #765dbb, #9a83d4);
  transition: width .22s ease;
}

.upload-dialog-progress i::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .65), transparent);
  animation: file-progress-shine 1.2s ease-in-out infinite;
}

.upload-dialog-progress.complete i {
  background: var(--success);
}

.upload-dialog > small {
  margin-top: 9px;
  color: var(--muted);
  font-size: .75rem;
}

.image-thumbnail {
  position: relative;
  width: 58px;
  height: 58px;
  flex: 0 0 auto;
  overflow: hidden;
  padding: 0;
  border: 1px solid #d9d1e8 !important;
  border-radius: 11px;
  background: #f3eff9 !important;
  color: #fff !important;
  box-shadow: 0 5px 14px rgba(58, 43, 88, .1);
}

.image-thumbnail img {
  object-fit: cover;
  transition: transform .2s ease;
}

.image-thumbnail:hover img {
  transform: scale(1.06);
}

.image-thumbnail span {
  position: absolute;
  right: 4px;
  bottom: 4px;
  z-index: 1;
  width: 19px;
  height: 19px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  background: rgba(32, 24, 50, .72);
  font-size: .72rem;
}

.image-lightbox {
  position: fixed;
  inset: 0;
  z-index: 320;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(18, 14, 27, .88);
  backdrop-filter: blur(10px);
  animation: file-overlay-in .18s ease both;
}

.image-lightbox-dialog {
  width: min(100%, 1040px);
  max-height: calc(100dvh - 40px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 20px;
  background: #1f1a29;
  box-shadow: 0 30px 100px rgba(0, 0, 0, .42);
}

.image-lightbox header,
.image-lightbox footer {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 16px;
  background: #fff;
}

.image-lightbox header {
  justify-content: space-between;
  border-bottom: 1px solid var(--border);
}

.image-lightbox header strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.image-lightbox header button {
  width: 40px;
  height: 40px;
  flex: 0 0 auto;
  padding: 0;
  border: 0;
  border-radius: 11px;
  background: var(--purple-soft);
  color: var(--purple);
  font-size: 1.55rem;
}

.image-lightbox-canvas {
  position: relative;
  width: 100%;
  height: min(72dvh, 760px);
  min-height: 260px;
  background: #211b2a;
}

.image-lightbox-canvas img {
  object-fit: contain;
}

.image-lightbox footer {
  justify-content: flex-end;
  border-top: 1px solid var(--border);
}

.image-lightbox footer a {
  display: inline-flex;
}

@keyframes file-overlay-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes file-dialog-in {
  from { opacity: 0; transform: translateY(12px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes file-spinner-turn {
  to { transform: rotate(360deg); }
}

@keyframes file-progress-shine {
  from { transform: translateX(-100%); }
  to { transform: translateX(100%); }
}

@media (max-width: 620px) {
  .upload-overlay {
    padding: 14px;
  }

  .upload-dialog {
    padding: 30px 22px 24px;
    border-radius: 20px;
  }

  .image-lightbox {
    padding: 0;
  }

  .image-lightbox-dialog {
    width: 100%;
    height: 100dvh;
    max-height: 100dvh;
    border: 0;
    border-radius: 0;
  }

  .image-lightbox-canvas {
    height: auto;
  }

  .image-lightbox footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 12px;
    padding-bottom: max(12px, env(safe-area-inset-bottom));
  }

  .image-lightbox footer > * {
    width: 100%;
    justify-content: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .upload-overlay,
  .upload-dialog,
  .upload-spinner::before,
  .upload-dialog-progress i::after {
    animation-duration: .01ms;
    animation-iteration-count: 1;
  }
}

.metric-button {
  width: 100%;
  border-top: 0;
  border-bottom: 0;
  border-left: 0;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.metric-button:hover {
  background: #eee8fb;
}

.metric-button:focus-visible {
  position: relative;
  z-index: 1;
}

.review-queue .panel-head p {
  margin: 4px 0 0;
  color: var(--muted);
}

.review-queue-list {
  display: grid;
  gap: 12px;
}

.review-queue-list article {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(180px, .8fr) auto;
  align-items: center;
  gap: 18px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: #fcfbff;
}

.review-queue-person,
.review-queue-state {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.review-queue-person strong,
.review-queue-person small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.review-queue-person small,
.review-queue-state > span {
  color: var(--muted);
  font-size: .76rem;
}

.review-queue-state > span {
  text-transform: uppercase;
  letter-spacing: .08em;
}

.review-queue-state > strong {
  margin-bottom: 5px;
}

.review-queue-state .status {
  width: max-content;
  max-width: 100%;
  font-style: normal;
}

.review-queue-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

#contract-review,
#order-review {
  scroll-margin-top: 92px;
}

@media (max-width: 760px) {
  .review-queue-list article {
    grid-template-columns: 1fr;
    gap: 13px;
  }

  .review-queue-actions {
    justify-content: stretch;
  }

  .review-queue-actions a {
    flex: 1 1 150px;
  }
}
