:root { --forest:#18533f; --forest-deep:#103a2d; --moss:#c9dca7; --sage:#e9f0e5; --paper:#f7f8f4; --ink:#1d2f2a; --muted:#61746c; --coral:#cf6f57; --line:#d2ddd3; --white:#fff; --sans:"Manrope","Noto Sans SC","Microsoft YaHei",sans-serif; --mono:"DM Mono",ui-monospace,monospace; }
* { box-sizing: border-box; }
body { margin:0; min-height:100vh; background:var(--paper); color:var(--ink); font-family:var(--sans); line-height:1.6; }
a { color:inherit; text-decoration:none; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline:3px solid var(--coral); outline-offset:2px; }
button { cursor:pointer; font:inherit; }
.admin-shell { width:min(980px,calc(100% - 40px)); margin:34px auto 70px; }
.login-panel, .editor-panel { border:1px solid var(--line); background:var(--white); box-shadow:0 18px 46px rgba(16,58,45,.08); }
.login-panel { width:min(470px,100%); margin:70px auto; padding:42px; }
.admin-mark { display:grid; place-items:center; width:56px; height:56px; background:var(--forest); color:var(--moss); font-size:18px; font-weight:800; }
.eyebrow { margin:22px 0 10px; color:var(--coral); font:11px var(--mono); letter-spacing:.1em; }
.login-panel h1, .editor-header h1 { margin:0; color:var(--forest-deep); font-size:32px; line-height:1.2; font-weight:800; }
.muted { color:var(--muted); font-size:13px; line-height:1.75; }
.login-panel form { margin-top:28px; }
.login-panel label, .content-form label { display:block; margin-bottom:7px; color:var(--muted); font-size:12px; font-weight:700; }
.login-panel input, .content-form input, .content-form textarea { width:100%; margin-top:7px; border:1px solid var(--line); border-radius:0; background:#fbfdfb; color:var(--ink); padding:11px 12px; font:14px var(--sans); }
.content-form textarea { resize:vertical; line-height:1.7; }
.login-panel input:focus, .content-form input:focus, .content-form textarea:focus { border-color:var(--forest); outline:3px solid rgba(24,83,63,.14); }
.login-panel button, #saveButton { border:0; background:var(--forest); color:var(--white); padding:12px 18px; font-size:13px; font-weight:800; }
.login-panel button { width:100%; margin-top:14px; }
button:hover { background:var(--forest-deep); }
.form-error { min-height:18px; margin:10px 0 0; color:#b64f3b; font-size:12px; }
.is-hidden { display:none; }
.editor-header { display:flex; justify-content:space-between; align-items:center; gap:25px; padding:28px 34px 24px; border-bottom:1px solid var(--line); }
.header-actions { display:flex; align-items:center; gap:14px; }
.header-actions a { color:var(--forest); font-size:12px; font-weight:800; }
.header-actions button { border:1px solid var(--line); background:var(--white); color:var(--forest); padding:8px 12px; font-size:12px; font-weight:800; }
.header-actions button:hover { background:var(--sage); }
.save-bar { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:13px 34px; background:var(--sage); color:var(--muted); font-size:12px; }
.content-form { padding:4px 34px 34px; }
.content-form fieldset { margin:0; padding:25px 0 6px; border:0; border-top:1px solid var(--line); }
.content-form legend { margin-bottom:16px; color:var(--forest); font-size:16px; font-weight:800; }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.module-editor { margin:28px 0; padding:22px; border:1px solid var(--line); background:var(--paper); }
.module-editor h2 { margin:0; color:var(--forest-deep); font-size:18px; }
.module-editor > p { margin:4px 0 18px; color:var(--muted); font-size:12px; }
.module-entry { margin-top:14px; padding:17px; border:1px solid var(--line); background:var(--white); }
.module-entry-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; color:var(--coral); font:11px var(--mono); }
.remove-entry, .clear-image { border:1px solid #e1b4a7; background:#fff8f5; color:#ad4e3a; padding:7px 10px; font-size:11px; font-weight:800; }
.remove-entry:hover, .clear-image:hover { background:#fde9e2; }
.add-entry { margin-top:14px; border:1px solid var(--forest); background:transparent; color:var(--forest); padding:9px 12px; font-size:12px; font-weight:800; }
.add-entry:hover { background:var(--forest); color:var(--white); }
.image-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:12px; }
.upload-status { grid-column:1/-1; min-height:17px; color:var(--muted); font-size:11px; }
.security-note { margin:0; padding:16px 34px 28px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
.field-help{color:var(--muted);font-size:12px}.theme-editor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.theme-editor label,.style-grid label{font-size:12px}.theme-editor input[type=color]{height:38px;padding:3px}.style-override{margin:14px 0;padding:10px 12px;border:1px solid var(--line);background:var(--paper)}.style-override summary{cursor:pointer;color:var(--forest);font-size:12px;font-weight:700}.style-grid{margin-top:12px}
.team-editor{display:grid;gap:18px}.team-editor textarea{min-height:74px}.team-editor-section{padding:16px;border:1px solid var(--line);background:var(--paper)}.team-editor-section h3{margin:0 0 5px;color:var(--forest-deep);font-size:15px}.team-editor-section>p{margin:0 0 13px;color:var(--muted);font-size:12px}.team-category-entry,.team-member-entry,.repeat-item{padding:13px;border:1px solid var(--line);background:var(--white)}.team-category-entry+.team-category-entry,.team-member-entry+.team-member-entry{margin-top:10px}.team-entry-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:var(--coral);font:11px var(--mono)}.team-entry-head button,.repeat-item button{border:1px solid #e1b4a7;background:#fff8f5;color:#ad4e3a;padding:5px 8px;font-size:11px;font-weight:800}.team-entry-head button:hover,.repeat-item button:hover{background:#fde9e2}.team-member-entry{padding:18px}.team-member-entry h4{margin:18px 0 10px;color:var(--forest);font-size:13px;border-top:1px solid var(--line);padding-top:15px}.team-member-entry .field-grid{gap:12px}.team-member-entry input[type=number]{max-width:160px}.team-member-entry input[type=file]{font-size:12px}.repeat-list{display:grid;gap:8px}.repeat-item{display:grid;grid-template-columns:1fr 1fr auto;gap:9px;align-items:end}.repeat-item label:last-of-type{grid-column:1/-1}.repeat-item textarea{min-height:54px}.repeat-add,.team-add{margin-top:10px;border:1px solid var(--forest);background:transparent;color:var(--forest);padding:8px 10px;font-size:11px;font-weight:800}.repeat-add:hover,.team-add:hover{background:var(--forest);color:var(--white)}.team-member-actions{display:flex;gap:10px;align-items:center}.team-upload-status{color:var(--forest);font-size:11px}.member-links-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.admin-section-toggle,.admin-entry-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;border:0;background:transparent;color:var(--forest-deep);text-align:left;font-weight:800}
.admin-section-toggle{padding:14px 2px;font-size:15px}.admin-entry-toggle{min-width:0;padding:5px 0;font-size:12px}
.admin-section-toggle:hover,.admin-entry-toggle:hover{background:var(--sage);color:var(--forest)}
.admin-toggle-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-toggle-state{flex:0 0 auto;color:var(--coral);font:10px var(--mono)}
.admin-collapsible{padding-top:8px!important}.admin-collapsible.is-collapsed>:not(legend):not(.admin-section-toggle){display:none}
.admin-content-collapsible.is-collapsed>:not(.admin-section-toggle){display:none}
.admin-entry-collapsible.is-collapsed>:not(.team-entry-head):not(.module-entry-head){display:none}
.admin-entry-collapsible.is-collapsed{padding-block:9px}.admin-entry-collapsible.is-collapsed .team-entry-head,.admin-entry-collapsible.is-collapsed .module-entry-head{margin-bottom:0}
.team-entry-head .admin-entry-toggle,.module-entry-head .admin-entry-toggle{flex:1;border:0;background:transparent;color:var(--forest-deep);padding:5px 0}.team-entry-head .admin-entry-toggle:hover,.module-entry-head .admin-entry-toggle:hover{background:var(--sage);color:var(--forest)}
@media(max-width:640px){ .admin-shell{width:min(100% - 24px,620px);margin:16px auto 40px}.login-panel{margin:26px auto;padding:28px 22px}.editor-header{display:block;padding:23px}.header-actions{margin-top:18px}.save-bar{align-items:stretch;flex-direction:column;padding:13px 23px}.save-bar button{width:100%}.content-form{padding-inline:23px}.field-grid{grid-template-columns:1fr;gap:0}.module-editor{padding:16px}.image-row{grid-template-columns:1fr}.clear-image{width:100%}.security-note{padding-inline:23px}.theme-editor{grid-template-columns:1fr}.member-links-grid{grid-template-columns:1fr}.repeat-item{grid-template-columns:1fr}.repeat-item label:last-of-type{grid-column:auto}.team-member-entry{padding:13px}}
.admin-image-preview{display:block;grid-column:1/-1;width:96px;height:96px;object-fit:cover;border:1px solid var(--line);background:var(--sage);padding:6px}.admin-image-preview[src$="member-photo-placeholder.png"]{object-fit:contain;filter:grayscale(1) opacity(.68)}
.member-photo-editor{margin:16px 0;padding:16px;border:1px solid var(--line);background:var(--paper)}.member-photo-inputs{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.member-photo-inputs .team-upload-status{grid-column:1/-1;min-height:17px}.member-crop-layout{display:grid;grid-template-columns:180px minmax(0,1fr);gap:18px;align-items:center;margin-top:12px}.member-crop-frame{position:relative;width:180px;aspect-ratio:3/4;overflow:hidden;border:1px solid var(--forest);background:var(--sage);cursor:grab;touch-action:none;user-select:none}.member-crop-frame:focus-visible{outline:3px solid rgba(24,83,63,.2);outline-offset:3px}.member-crop-frame.is-dragging{cursor:grabbing}.member-crop-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--crop-x,50%) var(--crop-y,50%);transform:scale(var(--crop-zoom,1));transform-origin:var(--crop-x,50%) var(--crop-y,50%);background:var(--sage);pointer-events:none}.member-crop-frame.is-placeholder{border-color:var(--line);cursor:default}.member-crop-frame.is-placeholder img{object-fit:contain;transform:none;padding:34px;filter:grayscale(1) opacity(.62)}.member-crop-controls{display:grid;gap:12px;align-content:center}.member-crop-controls label{color:var(--forest-deep);font-size:12px}.member-crop-controls output{float:right;color:var(--coral);font:11px var(--mono)}.member-crop-controls input[type=range]{width:100%;margin-top:10px;padding:0;accent-color:var(--forest)}.member-crop-controls button{justify-self:start;border:1px solid var(--forest);background:var(--white);color:var(--forest);padding:8px 11px;font-size:11px;font-weight:800}.member-crop-controls button:hover:not(:disabled){background:var(--forest);color:var(--white)}.member-crop-controls button:disabled{cursor:not-allowed;opacity:.45}.member-crop-controls p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}.team-member-entry.is-simple-member{border-left:3px solid var(--forest)}
[data-member-extended][hidden]{display:none!important}
.method-detail-images{margin:22px 0;padding:16px;border:1px solid var(--line);background:var(--paper)}.method-detail-images-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:12px}.method-detail-images-head h4{margin:0;color:var(--forest-deep);font-size:14px}.method-detail-images-head span{color:var(--muted);font-size:11px}.detail-image-list{display:grid;gap:10px}.detail-image-editor{padding:13px;border:1px solid var(--line);background:var(--white)}.detail-image-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.detail-image-editor-head strong{color:var(--forest);font-size:12px}.detail-image-editor-head div{display:flex;gap:6px}.detail-image-editor-head button{min-width:34px;border:1px solid var(--line);background:var(--white);color:var(--forest);padding:6px 8px;font-size:11px;font-weight:800}.detail-image-editor-head button:last-child{border-color:#e1b4a7;color:#ad4e3a}.detail-image-editor-head button:hover{background:var(--sage)}.detail-image-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:14px;align-items:start}.admin-detail-image-preview{display:block;width:132px;height:96px;border:1px solid var(--line);background:var(--sage);object-fit:contain}.detail-image-add{margin-top:11px;border:1px solid var(--forest);background:transparent;color:var(--forest);padding:8px 11px;font-size:11px;font-weight:800}.detail-image-add:hover{background:var(--forest);color:var(--white)}
@media(max-width:640px){.method-detail-images-head{display:block}.method-detail-images-head span{display:block;margin-top:4px}.detail-image-editor-grid{grid-template-columns:1fr}.admin-detail-image-preview{width:100%;height:auto;max-height:220px}.detail-image-editor-head div{flex-wrap:wrap;justify-content:flex-end}}
@media(max-width:640px){.member-photo-inputs,.member-crop-layout{grid-template-columns:1fr}.member-photo-inputs .clear-image{width:100%}.member-crop-frame{width:min(100%,240px);margin:0 auto}.member-crop-controls button{width:100%}}
