/* Shared visual language derived from the form designer. This file only styles existing markup. */
:root{--designer-bg:#eef1f5;--designer-surface:#fff;--designer-line:#dfe3e8;--designer-line-soft:#e9edf2;--designer-text:#172033;--designer-muted:#667085;--designer-primary:#2563eb;--designer-primary-soft:#eaf2ff;--designer-radius:4px}
body{background:var(--designer-bg);color:var(--designer-text)}
.app-header{height:52px;padding:0 20px;border-color:var(--designer-line);background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.04)}.brand-mark{width:38px;height:38px;display:block;object-fit:contain}.app-nav{gap:4px}.app-nav a{padding:7px 10px;border-radius:var(--designer-radius)}.app-nav a:hover,.app-nav a[aria-current=page]{background:var(--designer-primary-soft);color:#1d4ed8}
.panel,.card,.surface,.workbench-folder-card,.workbench-pending,.version-directory,.form-inventory,.field-inventory,.crf-paper,.admin-panel,.admin-metrics>div,.admin-plan{border-color:var(--designer-line);border-radius:var(--designer-radius);box-shadow:0 1px 3px rgba(16,24,40,.05)}.panel-header{min-height:46px;padding:11px 14px}.page-subtitle,.muted{color:var(--designer-muted)}
.btn,.button,.admin-button{min-height:34px;border:1px solid #cbd5e1;border-radius:var(--designer-radius);padding:7px 11px;background:#eef1f4;color:#344054;font-size:12px;font-weight:600}.btn:hover,.button:hover,.admin-button:hover{border-color:#93c5fd;background:var(--designer-primary-soft);color:#1d4ed8}.btn-primary,.button--primary,.admin-button--primary{border-color:var(--designer-primary);background:var(--designer-primary);color:#fff}.btn-primary:hover,.button--primary:hover,.admin-button--primary:hover{background:#1d4ed8;color:#fff}
.field,.form-control,.admin-filter input,.admin-filter select,.admin-form input,.admin-form select{min-height:36px;border:1px solid #cbd5e1;border-radius:var(--designer-radius);background:#fff;color:var(--designer-text)}.field:focus,.form-control:focus,.admin-filter input:focus,.admin-filter select:focus,.admin-form input:focus,.admin-form select:focus{border-color:#60a5fa;box-shadow:0 0 0 2px #dbeafe;outline:0}.tag,.badge,.status{border-radius:var(--designer-radius)}
.data-table th,.admin-table th{background:#f8fafc;color:#475467}.data-table td,.data-table th,.admin-table td,.admin-table th{border-color:var(--designer-line-soft)}.browser-dialog,.edc-preview-dialog__panel,.modal-dialog{border-radius:6px;border:1px solid var(--designer-line);box-shadow:0 16px 42px rgba(16,24,40,.2)}
.workspace-header,.workbench-heading,.form-context-bar{border-color:var(--designer-line)}.workspace-main,.workspace-content,.workbench-content,.form-manager-stage{background:var(--designer-bg)}.workbench-topbar{height:56px;background:#fff;border-bottom-color:var(--designer-line)}.workbench-sidebar{background:#fff;border-right-color:var(--designer-line)}.workbench-menu a{border-radius:var(--designer-radius);color:#475467}.workbench-menu a:hover,.workbench-menu a.is-active{background:var(--designer-primary-soft);color:#1d4ed8}
.admin-body{background:var(--designer-bg)}.admin-sidebar{background:#fff;color:#475467;border-right-color:var(--designer-line)}.admin-brand{color:var(--designer-text);border-bottom-color:var(--designer-line)}.admin-nav a{color:#475467}.admin-nav a:hover{background:var(--designer-primary-soft);color:#1d4ed8}.admin-nav a.is-current{background:var(--designer-primary-soft);color:#1d4ed8}.admin-sidebar__footer{border-top-color:var(--designer-line)}.admin-topbar{background:#fff;border-bottom-color:var(--designer-line)}
.login-shell{background:var(--designer-bg)}.login-panel{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.login-intro{background:#fff;border-right:1px solid var(--designer-line)}.login-intro h1{color:var(--designer-text);font-size:clamp(32px,4vw,52px)}.eyebrow{color:#2563eb}.intro-copy,.status{color:var(--designer-muted)}.form-panel{background:var(--designer-bg)}.auth-card{border-color:var(--designer-line);border-radius:6px;box-shadow:0 8px 24px rgba(16,24,40,.08)}.auth-tabs{border-radius:var(--designer-radius);background:#eef1f4}.auth-tab[aria-selected=true]{background:#dbeafe;color:#1d4ed8}.auth-card input{min-height:40px;border-radius:var(--designer-radius)}.auth-card button:not(.auth-tab):not(.send-code){min-height:40px;border-radius:var(--designer-radius);background:var(--designer-primary)}
@media(max-width:767px){.page{padding:14px 12px 32px}.app-header{padding:0 12px}.login-intro{background:#fff}.login-intro h1{font-size:34px}.form-panel{padding:24px 16px}.auth-card,.auth-card--register{padding:30px 22px}}
.fc-designer-shell .workspace-header,.workspace-shell .workspace-header{background:#fff;border-bottom-color:var(--designer-line)}.edc-designer{background:var(--designer-bg)}.edc-designer__library,.edc-designer__properties{background:#fff;border-color:var(--designer-line)}.edc-designer__canvas{background:var(--designer-bg)}.edc-designer__pane-title{background:#fff;border-color:var(--designer-line)}.edc-type-button{border-color:var(--designer-line);border-radius:var(--designer-radius);background:#f8fafc}.edc-type-button:hover{border-color:#93c5fd;background:var(--designer-primary-soft)}.edc-question-list{border-color:var(--designer-line);box-shadow:0 1px 3px rgba(16,24,40,.05)}.edc-question{border-bottom-color:var(--designer-line-soft)}.edc-question.is-active{border-color:#60a5fa;background:var(--designer-primary-soft)}.edc-property-form input:not([type=checkbox]),.edc-property-form textarea,.edc-property-form select{border-color:#cbd5e1;background:#fff}.edc-pane-tabs button.is-active{color:#1d4ed8}.edc-pane-tabs button.is-active:after{background:var(--designer-primary)}.form-preview-section,.form-preview-scroll{background:var(--designer-bg)!important}.form-preview-scroll .easyclin-form-preview.edc-form-paper{border-color:var(--designer-line);box-shadow:0 1px 3px rgba(16,24,40,.05)}.form-preview-scroll .field-confirm-btn{border-color:#cbd5e1;background:#eef1f4}.fill-toolbar{padding:8px 0}.fill-toolbar .button,.fill-toolbar .btn{border-radius:var(--designer-radius)}
.form-manager-page{grid-template-columns:248px minmax(0,1fr)!important}.form-manager-page.rail-collapsed{grid-template-columns:56px minmax(0,1fr)!important}
.edc-designer__pane-title{min-height:52px;padding:0 16px;background:#f8fafc}.edc-designer__pane-title strong{font-size:14px;font-weight:700}.edc-designer__pane-title span{font-size:11px}.edc-designer__library,.edc-designer__properties{box-shadow:0 1px 4px rgba(16,24,40,.04)}.edc-type-groups{padding:2px 12px 20px}.edc-type-group h3{margin:16px 2px 8px;color:#475467;font-size:11px;letter-spacing:.02em}.edc-type-button{min-height:40px;padding:7px 9px;gap:8px;background:#f8fafc;transition:border-color .15s,background .15s,transform .15s}.edc-type-button:hover{transform:translateY(-1px)}.edc-type-button span{display:grid;flex:0 0 25px;place-items:center;width:25px;height:25px;border-radius:5px;background:#eaf2ff;color:#2563eb;font-size:11px;font-weight:700}.edc-type-button:nth-child(3n+2) span{background:#ecfdf3;color:#15803d}.edc-type-button:nth-child(3n) span{background:#fff7ed;color:#c2410c}.edc-designer__canvas{padding:18px 20px}.edc-canvas-toolbar{margin-bottom:14px}.edc-canvas-actions{padding:5px;border:1px solid var(--designer-line);border-radius:6px;background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.04)}.edc-section-tabs{margin-bottom:12px}.edc-section-tabs button{border-color:#cbd5e1;background:#f8fafc}.edc-section-tabs button.is-active{box-shadow:0 1px 2px rgba(37,99,235,.2)}.edc-question-list{padding:20px;border-radius:6px;background:#fff}.edc-question{min-height:82px;padding:14px 12px;transition:border-color .15s,background .15s,box-shadow .15s}.edc-question:hover{box-shadow:0 1px 4px rgba(16,24,40,.06)}.edc-question.is-active{box-shadow:inset 3px 0 0 #2563eb}.edc-question__heading strong{font-size:var(--theme-field-size,15px);font-weight:600}.edc-question__preview{font-size:12px}.edc-designer__properties .edc-property-form{padding:16px}.edc-property-form label{font-size:12px}.edc-property-block{gap:8px;padding-top:14px}.edc-property-block header strong{font-size:12px;color:#344054}.edc-property-card{border-color:#dfe3e8;background:#f8fafc}.edc-designer.is-readonly .edc-type-button{filter:grayscale(.25)}
/* 组件悬停说明气泡：定位用 fixed 挂在 #ld-designer-app 内，绕开左侧面板的 overflow:auto，避免被裁掉。
   视觉分两层：深色外框承载「图标 + 组件名 + 一句说明」，白色内嵌卡画「填好后长什么样」的迷你预览。
   预览是手绘的 HTML 片段（typeHints.preview），共用下面 .mk-* 这套小控件词汇表。 */
.edc-type-hint{position:fixed;z-index:90;display:grid;gap:9px;width:300px;max-width:calc(100vw - 24px);padding:12px;border-radius:12px;background:#1b2430;color:#fff;box-shadow:0 12px 32px rgba(16,24,40,.28),0 2px 6px rgba(16,24,40,.16);pointer-events:none;animation:edc-type-hint-in .14s ease-out}
.edc-type-hint__head{display:flex;align-items:center;gap:7px}
.edc-type-hint__icon{display:grid;flex:0 0 22px;place-items:center;width:22px;height:22px;border-radius:6px;background:rgba(255,255,255,.14);color:#fff;font-size:11px;font-weight:700}
.edc-type-hint__head strong{font-size:13px;font-weight:600;letter-spacing:.01em}
.edc-type-hint__desc{margin:0;font-size:12px;line-height:1.6;color:rgba(255,255,255,.72)}
.edc-type-hint__preview{border-radius:9px;background:#fff;padding:11px;display:grid;gap:7px;color:#344054;font-size:11px;line-height:1.5}
.edc-type-hint__preview *{box-sizing:border-box}
@keyframes edc-type-hint-in{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}

/* ---- 预览卡内部的迷你控件词汇表 ---- */
.mk-l{font-size:11px;font-weight:600;color:#344054}
.mk-u{font-size:10px;color:#98a2b3;font-weight:400}
.mk-v{color:#2563eb}
.mk-b{border:1px solid #e4e8ee;border-radius:6px;padding:5px 7px;font-size:11px;color:#98a2b3;background:#fff;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mk-b.fill{color:#344054}
.mk-b.area{min-height:52px;white-space:normal;line-height:1.55;padding:7px 8px}
.mk-b.link{position:relative;padding-left:22px;color:#344054}
.mk-b.link:before{content:'';position:absolute;left:7px;top:50%;width:8px;height:6px;margin-top:-3px;border:1.5px solid #b0b8c4;border-radius:4px;transform:rotate(-45deg)}
.mk-ico{display:flex;align-items:center;justify-content:space-between;gap:6px}
.mk-ico i{font-style:normal;color:#98a2b3;font-size:10px}
.mk-row{display:flex;align-items:center;gap:6px}
.mk-grow{flex:1 1 0}
.mk-opts{display:grid;gap:5px}
.mk-opt{display:flex;align-items:center;gap:6px;font-size:11px;color:#475467;white-space:nowrap}
.mk-dot,.mk-sq{flex:0 0 auto;width:11px;height:11px;border:1.5px solid #b6bec9;background:#fff}
.mk-dot{border-radius:50%}
.mk-sq{border-radius:3px}
.mk-dot.on,.mk-sq.on{border-color:#2563eb;background:#2563eb;box-shadow:inset 0 0 0 2px #fff}
.mk-table{border:1px solid #e4e8ee;border-radius:6px;overflow:hidden}
.mk-table > div{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
.mk-table > div > span{display:flex;align-items:center;justify-content:center;min-width:0;padding:4px 5px;border-right:1px solid #eef1f5;border-bottom:1px solid #eef1f5;font-size:10px;color:#475467;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mk-table > div > span:first-child{justify-content:flex-start}
.mk-table > div > span:last-child{border-right:0}
.mk-table > div:last-child > span{border-bottom:0}
.mk-table .th > span{background:#f7f9fc;color:#667085;font-weight:600}
.mk-slide{position:relative;height:4px;border-radius:2px;background:#e4e8ee}
.mk-slide i{position:absolute;left:70%;top:50%;width:12px;height:12px;border-radius:50%;background:#2563eb;transform:translate(-50%,-50%);box-shadow:0 0 0 3px rgba(37,99,235,.16)}
.mk-scale{display:flex;justify-content:space-between;font-size:9px;color:#b0b8c4}
.mk-tilde{font-style:normal;color:#98a2b3;font-size:10px}
.mk-branch{padding:5px 7px;border-radius:6px;border:1px dashed #a7c8f5;background:#f2f7ff;color:#2563eb;font-size:10px}
.mk-add{padding:5px 7px;border:1px dashed #d5dbe3;border-radius:6px;color:#667085;font-size:10px;text-align:center}
.mk-drop{padding:9px 7px;border:1px dashed #cfd6df;border-radius:6px;background:#fafbfd;color:#667085;font-size:10px;text-align:center}
.mk-file{display:flex;align-items:center;gap:6px;padding:5px 7px;border:1px solid #e4e8ee;border-radius:6px;font-size:10px;color:#475467;min-width:0}
.mk-file i{flex:0 0 auto;font-style:normal;padding:1px 4px;border-radius:3px;background:#eef2f7;color:#667085;font-size:9px;font-weight:600}
.mk-file span{margin-left:auto;color:#98a2b3;font-size:9px}
.mk-thumb{flex:1 1 0;height:26px;border-radius:5px;background:linear-gradient(135deg,#e9eef4,#dde5ee)}
.mk-map{position:relative;height:56px;border-radius:6px;overflow:hidden;background:repeating-linear-gradient(0deg,#e9eef3 0 1px,transparent 1px 13px),repeating-linear-gradient(90deg,#e9eef3 0 1px,transparent 1px 17px),linear-gradient(135deg,#eff5f9,#e2eef5)}
.mk-map i{position:absolute;left:52%;top:38%;width:10px;height:10px;border-radius:50% 50% 50% 0;background:#e5484d;transform:rotate(-45deg);box-shadow:0 0 0 2px #fff}
.mk-calc{display:flex;align-items:center;justify-content:space-between;gap:6px;border-style:dashed}
.mk-calc i{font-style:normal;font-size:10px;color:#2563eb}
.mk-sec{padding:0 0 5px;border-bottom:1px solid #e4e8ee;font-size:12px;font-weight:700;color:#172033}
.mk-note{padding:8px 9px;border-left:3px solid #93c5fd;border-radius:4px;background:#f5f8ff;font-size:10px;line-height:1.6;color:#475467}
.mk-note b{display:block;margin-bottom:2px;color:#344054;font-size:11px}
.mk-hr{height:1px;background:#e4e8ee}
.mk-page{display:flex;justify-content:flex-end;padding-top:2px;font-size:10px;color:#2563eb}

/* 深色站点主题下气泡已是深色，压低投影避免糊成一片 */
html[data-color-mode="dark"] .edc-type-hint{box-shadow:0 12px 32px rgba(0,0,0,.5)}
/* 触屏没有 hover，气泡会在点击后闪现：只在有精确指针的设备上启用。 */
@media(hover:none){.edc-type-hint{display:none}}
