.mbtn{border-radius:var(--radius-sm);font-family:inherit;font-weight:var(--weight-medium);cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);white-space:nowrap;justify-content:center;align-items:center;gap:4px;display:inline-flex}.mbtn:hover{background:var(--color-background)}.mbtn:disabled{opacity:.5;cursor:not-allowed}.mbtn-md{font-size:var(--text-sm);padding:6px 12px}.mbtn-sm{font-size:var(--text-xs);padding:4px 8px}.mbtn-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.mbtn-primary:hover{background:var(--color-primary-hover)}.mbtn-danger{color:var(--color-error);border-color:#fecaca}.mbtn-danger:hover{background:#fef2f2}.minput{box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;font-family:inherit;font-size:var(--text-sm);color:var(--color-text);background:#fff;outline:none;padding:6px 10px}.minput:focus{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.minput:disabled{background:var(--gray-100);color:var(--color-text-secondary)}textarea.minput{resize:vertical}.minput-suffix{align-items:center;gap:4px;display:flex}.msuffix{font-size:var(--text-xs);color:var(--color-text-secondary)}.mfield{flex-direction:column;gap:4px;min-width:0;display:flex}.mfield.span-2{grid-column:span 2}.mfield-label{font-size:var(--text-xs);font-weight:var(--weight-medium);align-items:center;gap:4px;display:flex}.mfield-required{color:var(--color-error)}.mfield-help{color:var(--color-text-secondary);font-size:11px}.mhelptip{border:1px solid var(--color-border);width:15px;height:15px;font-size:10px;font-weight:var(--weight-bold);color:var(--color-text-secondary);cursor:help;border-radius:50%;outline:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.mhelptip-body{z-index:30;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:224px;box-shadow:var(--shadow-lg);color:var(--color-text);pointer-events:none;padding:6px 10px;font-size:11px;font-weight:400;line-height:1.4;display:none;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.mhelptip:hover .mhelptip-body,.mhelptip:focus .mhelptip-body{display:block}.mcheck{font-size:var(--text-sm);align-items:center;gap:6px;padding:6px 0;display:flex}.mchecks{flex-wrap:wrap;gap:0 20px;display:flex}.mcheck input{width:16px;height:16px}.merror{border-radius:var(--radius-sm);color:var(--color-error);font-size:var(--text-xs);background:#fef2f2;border:1px solid #fecaca;margin-bottom:8px;padding:8px 12px}.mcsv-result{white-space:pre-line;margin:0 0 12px}.msuccess{border-radius:var(--radius-sm);color:#166534;font-size:var(--text-xs);background:#f0fdf4;border:1px solid #bbf7d0;padding:8px 12px}.mnotice{border-radius:var(--radius-sm);color:#92400e;background:#fffbeb;margin:0;padding:6px 10px;font-size:11px}.msection-title{font-size:var(--text-base);font-weight:var(--weight-bold);margin:0}.msection-desc{font-size:var(--text-xs);color:var(--color-text-secondary);margin:2px 0 0}.msection-desc b.blue{color:var(--color-info)}.msection-desc b.amber{color:#b45309}.mresource{background:var(--color-background);flex-direction:column;padding:16px;display:flex}.mresource>.msection-desc{flex:none;margin:0 0 12px}.mresource-head{flex:none;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.mresource-actions{align-items:center;gap:8px;display:flex}.msearch{width:176px}.mresource .mtable th{top:0}.mtable-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow:auto}.mtable{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.mresource>.mtable-wrap{flex:auto;min-height:160px}.mtable th{z-index:2;background:var(--color-background);border-bottom:1px solid var(--color-border);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-secondary);white-space:nowrap;padding:8px 12px;position:sticky;top:0}.mtable .mth-id,.mtable .mtd-id{white-space:nowrap;width:1%;color:var(--color-text-secondary);padding-left:8px;padding-right:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.mtd{border-bottom:1px solid var(--color-border);padding:8px 12px}.mrow{cursor:pointer}.mrow:last-child .mtd{border-bottom:none}.mrow:hover{background:var(--color-background)}.mtable .mth-handle,.mtd-handle{width:14px;padding-right:0}.mtd-handle{color:var(--color-text-secondary);letter-spacing:-2px;user-select:none;cursor:grab}.mrow.dragging{opacity:.4}.mrow.drop-before .mtd{box-shadow:inset 0 2px 0 var(--color-primary)}.mrow.drop-after .mtd{box-shadow:inset 0 -2px 0 var(--color-primary)}.mresource.busy .mtable-wrap{opacity:.6;pointer-events:none}.align-left{text-align:left}.align-right{text-align:right;font-variant-numeric:tabular-nums}.align-center{text-align:center}.mcrane{font-weight:var(--weight-bold);color:var(--color-primary)}.mtd-empty{text-align:center;color:var(--color-text-secondary);padding:32px 12px}.mmodal-overlay{z-index:70;background:#0000004d;justify-content:center;align-items:flex-start;padding:64px 16px 16px;display:flex;position:fixed;inset:0}.mmodal-box{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;max-width:512px;box-shadow:var(--shadow-lg)}.mmodal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.mmodal-title{font-size:var(--text-sm);font-weight:var(--weight-bold);margin:0}.mmodal-close{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;font-size:14px}.mmodal-close:hover{color:var(--color-text)}.mmodal-body{max-height:70vh;padding:16px;overflow-y:auto}.mform{flex-direction:column;gap:12px;display:flex}.mform-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mform-stack{flex-direction:column;gap:12px;display:flex}.mform-footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:8px;padding-top:12px;display:flex}.mform-readonly{border:none;min-width:0;margin:0;padding:0}
