/* Calm Admin: visual-only layer; keeps Django admin behavior intact. */
@import url("./tokens.a160c6196df7.css");
*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
:root{--ca-ink:var(--ink-strong);--ca-text:var(--text);--ca-muted:var(--muted);--ca-canvas:var(--canvas);--ca-surface:var(--surface);--ca-soft:var(--surface-soft);--ca-border:var(--border);--ca-blue:var(--brand-accent);--ca-blue-hover:var(--brand-accent-hover);--ca-blue-soft:var(--brand-accent-soft);--ca-green:var(--success);--ca-danger:var(--danger);--ca-radius:12px;--ca-shadow:0 1px 2px rgba(16,24,40,.04),0 8px 20px rgba(16,24,40,.05)}
body:not(.login){background:var(--ca-canvas)!important;color:var(--ca-text);font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif!important;font-size:14px}
body:not(.login) #container{min-width:0;background:transparent}
body:not(.login) #header{min-height:58px;padding:0 28px!important;background:#172033!important;box-shadow:0 1px 0 rgba(255,255,255,.08);display:flex;align-items:center;gap:20px}
body:not(.login) #branding h1,body:not(.login) #branding h1 a{font-size:16px!important;font-weight:700!important;letter-spacing:-.01em;color:#fff!important}
body:not(.login) #branding h1:before{content:"雨";display:inline-grid;place-items:center;width:30px;height:30px;margin-right:10px;border-radius:9px;background:var(--ca-blue);font-size:13px;vertical-align:middle}
body:not(.login) #user-tools{margin-left:auto;color:#98a2b3;font-size:12px;letter-spacing:0;text-transform:none}body:not(.login) #user-tools a{color:#e4e7ec!important;border-bottom:0;text-decoration:none}body:not(.login) #user-tools a:hover{color:#fff!important}
body:not(.login) div.breadcrumbs{padding:12px clamp(20px,4vw,54px)!important;background:#fff!important;border-bottom:1px solid var(--ca-border);color:var(--ca-muted)!important;font-size:12px}body:not(.login) div.breadcrumbs a{color:var(--ca-blue)!important}
body:not(.login) #main{padding:0!important;background:transparent;align-items:flex-start}body:not(.login) #content{width:100%;max-width:none!important;min-width:0;padding:30px clamp(20px,4vw,54px) 64px!important}body:not(.login) #content>h1{margin:0 0 22px;color:var(--ca-ink);font-size:26px;font-weight:700;letter-spacing:-.025em}
body:not(.login) #content-main{min-width:0}body:not(.login) #content-related{margin-right:0!important}
/* Default app modules and custom dashboard */
body:not(.login) .module{overflow:hidden;border:1px solid var(--ca-border)!important;border-radius:var(--ca-radius)!important;background:#fff!important;box-shadow:0 1px 2px rgba(16,24,40,.03)}body:not(.login) .module caption,body:not(.login) .module h2{padding:13px 16px!important;background:#fff!important;border-bottom:1px solid var(--ca-border);color:var(--ca-ink)!important;font-size:13px!important;font-weight:700!important;letter-spacing:0;text-transform:none}body:not(.login) #nav-sidebar .module caption{background:var(--ca-soft)!important;border-bottom:1px solid var(--ca-border)}body:not(.login) #nav-sidebar .module caption a.section:link,body:not(.login) #nav-sidebar .module caption a.section:visited{color:var(--ca-ink)!important}body:not(.login) #nav-sidebar .module caption a.section:hover,body:not(.login) #nav-sidebar .module caption a.section:active{color:var(--ca-blue)!important}
.admin-dashboard{display:grid;gap:26px}.admin-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.admin-hero h1{margin:0;color:var(--ca-ink);font-size:30px;line-height:1.18;letter-spacing:-.03em}.admin-hero p{margin:8px 0 0;color:var(--ca-muted);font-size:14px}.admin-env{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border:1px solid var(--warning-border);border-radius:999px;background:var(--warning-bg);color:#7A2E0E;font-size:12px;font-weight:700}.admin-env:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--warning-dot)}
.admin-quick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quick-card{display:flex;align-items:center;gap:13px;min-height:74px;padding:15px 16px;border:1px solid var(--ca-border);border-radius:var(--ca-radius);background:#fff;color:var(--ca-text)!important;text-decoration:none!important;box-shadow:0 1px 2px rgba(16,24,40,.03);transition:border-color .15s,box-shadow .15s,transform .15s}.quick-card:hover{transform:translateY(-1px);border-color:#bfdbfe;box-shadow:var(--ca-shadow)}.quick-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:10px;background:var(--ca-blue-soft);color:var(--ca-blue);font-size:16px;font-weight:700}.quick-card strong,.quick-card small{display:block}.quick-card strong{color:var(--ca-ink);font-size:13px}.quick-card small{margin-top:3px;color:var(--ca-muted);font-size:12px}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}.dashboard-main{display:grid;gap:18px}.dashboard-section-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:10px}.dashboard-section-title h2{margin:0;color:var(--ca-ink);font-size:16px}.dashboard-section-title p{margin:3px 0 0;color:var(--ca-muted);font-size:12px}.app-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.app-card{overflow:hidden;border:1px solid var(--ca-border);border-radius:var(--ca-radius);background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.03)}.app-card-header{display:flex;align-items:center;gap:11px;padding:15px 16px;border-bottom:1px solid var(--ca-border)}.app-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--ca-blue-soft);color:var(--ca-blue);font-size:13px;font-weight:700}.app-card-header h3{margin:0;color:var(--ca-ink);font-size:14px}.app-card-header small{display:block;margin-top:2px;color:var(--ca-muted);font-size:12px}.model-list{margin:0;padding:6px 0;list-style:none}.model-row{display:flex;align-items:center;min-height:42px;padding:6px 12px 6px 16px;border-bottom:1px solid #f2f4f7}.model-row:last-child{border-bottom:0}.model-name{min-width:0;flex:1;color:var(--ca-text)!important;font-size:13px;font-weight:500;text-decoration:none!important}.model-name:hover{color:var(--ca-blue)!important}.model-actions{display:flex;gap:4px}.model-actions a{padding:5px 7px;border-radius:6px;color:var(--ca-muted)!important;font-size:12px;text-decoration:none!important}.model-actions a:hover{background:var(--ca-blue-soft);color:var(--ca-blue)!important}
.activity-card{position:sticky;top:18px;overflow:hidden;border:1px solid var(--ca-border);border-radius:var(--ca-radius);background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.03)}.activity-header{padding:15px 16px;border-bottom:1px solid var(--ca-border)}.activity-header h2{margin:0;color:var(--ca-ink);font-size:14px}.activity-header p{margin:3px 0 0;color:var(--ca-muted);font-size:12px}.activity-list{margin:0;padding:7px 0;list-style:none}.activity-item{padding:10px 16px;border-bottom:1px solid #f2f4f7}.activity-item:last-child{border-bottom:0}.activity-item a{display:block;overflow:hidden;color:var(--ca-text)!important;font-size:12px;font-weight:600;text-decoration:none!important;text-overflow:ellipsis;white-space:nowrap}.activity-item small{display:block;margin-top:3px;color:var(--ca-muted);font-size:11px}.empty-activity{padding:28px 16px;color:var(--ca-muted);font-size:12px;text-align:center}
/* Change lists */
body:not(.login) #changelist{display:grid;gap:14px}body:not(.login) #changelist .changelist-form-container{min-width:0}body:not(.login) #changelist .module{border-radius:var(--ca-radius)!important}body:not(.login) #toolbar{margin:0 0 14px!important;padding:12px!important;border:1px solid var(--ca-border)!important;border-radius:var(--ca-radius);background:#fff!important}body:not(.login) #toolbar form{display:flex;gap:8px}body:not(.login) #toolbar input[type=text]{min-height:40px;flex:1;padding:8px 11px!important;border:1px solid #d0d5dd!important;border-radius:8px!important;background:#fff!important;font-size:13px}body:not(.login) #toolbar input[type=submit]{min-height:40px;padding:0 15px!important;border-radius:8px!important;background:var(--ca-blue)!important;color:#fff!important;font-weight:600}
body:not(.login) #changelist-filter{overflow:hidden;border:1px solid var(--ca-border)!important;border-radius:var(--ca-radius)!important;background:#fff!important}body:not(.login) #changelist-filter h2{padding:13px 15px!important;background:#fff!important;color:var(--ca-ink)!important}body:not(.login) #changelist-filter h3{margin:0;padding:12px 15px 5px;color:var(--ca-text);font-size:12px}body:not(.login) #changelist-filter ul{padding:0 15px 10px}body:not(.login) #changelist-filter li{margin:4px 0}body:not(.login) #changelist-filter a{color:var(--ca-muted)!important;font-size:12px}body:not(.login) #changelist-filter li.selected a{color:var(--ca-blue)!important;font-weight:700}
body:not(.login) #result_list{border-collapse:separate;border-spacing:0;width:100%;background:#fff}body:not(.login) #result_list thead th{padding:11px 12px!important;background:var(--ca-soft)!important;border-bottom:1px solid var(--ca-border)!important;color:#475467!important;font-size:11px;font-weight:700;white-space:nowrap}body:not(.login) #result_list tbody td,body:not(.login) #result_list tbody th{padding:11px 12px!important;border-bottom:1px solid #f2f4f7!important;background:#fff!important;font-size:12px}body:not(.login) #result_list tbody tr:hover td,body:not(.login) #result_list tbody tr:hover th{background:#f8fbff!important}body:not(.login) #result_list a{color:#175cd3!important;text-decoration:none}.paginator{margin:0!important;padding:14px 16px!important;border-top:1px solid var(--ca-border);background:#fff!important;color:var(--ca-muted)!important}
/* Forms */
body:not(.login) form .aligned,body:not(.login) fieldset.module{overflow:visible;border:1px solid var(--ca-border)!important;border-radius:var(--ca-radius)!important;background:#fff!important;box-shadow:0 1px 2px rgba(16,24,40,.03)}body:not(.login) fieldset.module h2{margin:0!important;border-radius:var(--ca-radius) var(--ca-radius) 0 0}body:not(.login) .form-row{padding:15px 18px!important;border-bottom:1px solid #f2f4f7!important}body:not(.login) .form-row:last-child{border-bottom:0!important}body:not(.login) .form-row label{color:#344054!important;font-size:12px;font-weight:600}body:not(.login) input[type=text],body:not(.login) input[type=password],body:not(.login) input[type=email],body:not(.login) input[type=url],body:not(.login) input[type=number],body:not(.login) input[type=date],body:not(.login) select,body:not(.login) textarea{min-height:40px;padding:8px 10px!important;border:1px solid #d0d5dd!important;border-radius:8px!important;background:#fff!important;color:var(--ca-text)!important}body:not(.login) textarea{min-height:90px}body:not(.login) input:focus,body:not(.login) select:focus,body:not(.login) textarea:focus{outline:none!important;border-color:var(--ca-blue)!important;box-shadow:0 0 0 3px rgba(37,99,235,.16)!important}body:not(.login) .help,body:not(.login) p.help{color:var(--ca-muted)!important;font-size:12px!important}.submit-row{display:flex!important;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;margin:20px 0 0!important;padding:14px 16px!important;border:1px solid var(--ca-border)!important;border-radius:var(--ca-radius)!important;background:#fff!important;box-shadow:0 -4px 18px rgba(16,24,40,.04)!important}.submit-row input[type=submit],.submit-row input[type=button],.submit-row .button{min-height:40px!important;padding:8px 14px!important;border:1px solid transparent!important;border-radius:8px!important;background:var(--ca-blue)!important;color:#fff!important;font-size:13px!important;font-weight:600!important;line-height:1.2!important;box-shadow:none!important}.submit-row input[type=submit]:hover,.submit-row input[type=button]:hover,.submit-row .button:hover{background:var(--ca-blue-hover)!important}.submit-row input.default{order:3}.submit-row a.closelink{display:inline-flex!important;align-items:center;justify-content:center;min-height:40px;padding:8px 14px!important;border:1px solid var(--ca-border)!important;border-radius:8px!important;background:var(--ca-soft)!important;color:var(--ca-text)!important;font-size:13px!important;font-weight:600!important;text-decoration:none!important}.submit-row a.deletelink{order:-1;margin-right:auto!important;margin-left:0!important;display:inline-flex!important;align-items:center;justify-content:center;min-height:40px;padding:8px 14px!important;border:1px solid #fda29b!important;border-radius:8px!important;background:#fff!important;color:var(--ca-danger)!important;font-size:13px!important;font-weight:600!important;line-height:1.2!important;text-decoration:none!important;box-shadow:none!important}.submit-row a.deletelink:hover,.submit-row a.deletelink:focus,.submit-row a.deletelink:active{background:#fef3f2!important;border-color:#f97066!important;color:#912018!important;text-decoration:none!important}.deletelink-box a{display:inline-flex;align-items:center;min-height:36px;padding:7px 12px;border-radius:8px;background:var(--ca-danger)!important;color:#fff!important;text-decoration:none!important}body:not(.login) .button:not(.deletelink),body:not(.login) input[type=submit]:not(.deletelink){min-height:40px;padding:8px 14px;border-radius:8px;background:var(--ca-blue);color:#fff;font-weight:600}body:not(.login) .button:not(.deletelink):hover,body:not(.login) input[type=submit]:not(.deletelink):hover{background:var(--ca-blue-hover)}
.object-tools{margin-top:-44px!important}.object-tools a{min-height:38px;padding:9px 13px!important;border-radius:8px!important;background:var(--ca-blue)!important;color:#fff!important;font-size:12px!important}.messagelist{margin:0 0 18px!important}.messagelist li{padding:12px 14px!important;border:1px solid var(--brand-accent-border)!important;border-radius:9px!important;background:var(--brand-accent-soft)!important;color:#1D4ED8!important}.messagelist li.success{border-color:var(--success-border)!important;background:var(--success-bg)!important;color:var(--success)!important}.messagelist li.warning{border-color:var(--warning-border)!important;background:var(--warning-bg)!important;color:var(--warning)!important}.messagelist li.error{border-color:var(--danger-border)!important;background:var(--danger-bg)!important;color:var(--danger)!important}
@media(max-width:1000px){.dashboard-grid{grid-template-columns:1fr}.activity-card{position:static}.app-card-grid{grid-template-columns:1fr}.admin-quick{grid-template-columns:1fr}.change-list #content{padding-right:20px!important}.change-list #changelist{display:block}.change-list #changelist-filter{margin-top:14px}}
@media(max-width:700px){body:not(.login) #header{min-height:64px;padding:10px 16px!important;flex-wrap:wrap}body:not(.login) #user-tools{width:100%;margin:0;white-space:normal}body:not(.login) #content{padding:22px 16px 48px!important}.admin-hero{align-items:flex-start;flex-direction:column}.admin-hero h1{font-size:25px}.app-card-grid{grid-template-columns:1fr}.object-tools{margin:0 0 14px!important;float:none}.object-tools li{float:none}.object-tools a{display:block}.model-actions{flex-direction:column}.dashboard-grid{gap:14px}body:not(.login) #result_list{min-width:720px}.results{overflow-x:auto;border-radius:var(--ca-radius)}body:not(.login) .form-row{padding:13px 14px!important}body:not(.login) .form-row>div{max-width:100%}body:not(.login) .aligned label{float:none;width:auto;padding:0 0 6px}body:not(.login) .aligned .form-row>div{margin-left:0}.submit-row{flex-direction:column-reverse;align-items:stretch}.submit-row a.deletelink{order:0;margin-right:0!important;width:100%;text-align:center}.submit-row input[type=submit],.submit-row a.closelink{width:100%}}
/* Shared upload progress (issue #41) */
body:not(.login) .smart-intake-progress{margin:14px 0;padding:14px 16px;border:1px solid #93c5fd;border-radius:10px;background:#eff6ff}
body:not(.login) .smart-intake-progress-head{display:flex;justify-content:space-between;margin-bottom:9px;color:#1d4ed8;font-size:13px;font-weight:700}
body:not(.login) .smart-intake-progress-track{height:9px;overflow:hidden;border-radius:99px;background:#dbeafe}
body:not(.login) .smart-intake-progress-bar{height:100%;width:0;border-radius:99px;background:var(--ca-blue);transition:width .25s}

/* ---- Collapsible fieldsets（issue #40）----
   Django 5.x 的 collapse fieldset 渲染为 <details><summary><h2>标题</h2></summary>…。
   此前 h2 的白底圆角样式叠在主题色条上，看起来像一个孤零零的“按钮”，没人知道能点开。
   这里把整条 summary 做成清晰的可点击折叠头：全宽、浅底、左侧箭头随开合旋转、右侧“点击展开/收起”提示。
   全站生效（残疾人档案的「补充信息/银行卡信息」、渠道的「高级」区块等所有 collapse 区块）。 */
body:not(.login) fieldset.module details>summary{display:flex;align-items:center;gap:10px;width:100%;padding:13px 16px!important;margin:0!important;background:var(--ca-soft)!important;border:0!important;border-bottom:1px solid var(--ca-border)!important;border-radius:0!important;cursor:pointer;list-style:none;user-select:none;transition:background .15s}
body:not(.login) fieldset.module details>summary::-webkit-details-marker{display:none}
body:not(.login) fieldset.module details>summary::before{content:"";flex:0 0 auto;width:8px;height:8px;margin-left:2px;border-right:2px solid var(--ca-muted);border-bottom:2px solid var(--ca-muted);transform:rotate(-45deg);transition:transform .15s ease}
body:not(.login) fieldset.module details[open]>summary::before{transform:rotate(45deg)}
body:not(.login) fieldset.module details>summary:hover{background:var(--ca-blue-soft)!important}
body:not(.login) fieldset.module details>summary h2{flex:1;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:var(--ca-ink)!important;font-size:13px!important;font-weight:700!important;letter-spacing:0;text-transform:none}
body:not(.login) fieldset.module details>summary::after{content:"点击展开";flex:0 0 auto;margin-left:auto;color:var(--ca-muted);font-size:12px;font-weight:500}
body:not(.login) fieldset.module details[open]>summary::after{content:"收起"}
body:not(.login) fieldset.module details:not([open])>summary{border-bottom:0!important}

/* #42 drag-drop + progress steps also used in admin multipart forms */
.hr-dropzone{position:relative;display:flex;flex-direction:column;gap:8px;padding:12px;border:1.5px dashed #D0D5DD;border-radius:10px;background:#FCFCFD}
.hr-dropzone.is-dragover{border-color:#2E90FA;background:#F0F9FF}
.hr-dropzone.has-file{border-color:#A6F4C5;background:#F6FEF9}
.hr-dropzone-hint{display:flex;flex-wrap:wrap;gap:8px;color:#475467;font-size:12px;pointer-events:none}
.hr-dropzone-file{font-size:12px;color:#067647;font-weight:600}
.hr-progress-steps{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:5px}
.hr-step{display:flex;gap:8px;font-size:12px;color:#667085}
.hr-step.is-active{color:#1D4ED8;font-weight:600}
.hr-step.is-done{color:#067647}
