:root{--admin-ink:#17362f;--admin-green:#2e5b4f;--admin-leaf:#dfeae4;--admin-paper:#f3f1eb;--admin-card:#fff;--admin-line:#d9d8d1;--admin-warm:#a46b42;--admin-danger:#a33e39;--admin-muted:#6e7975}.admin-app-shell{min-height:100vh;background:var(--admin-paper);color:var(--admin-ink)}.admin-app-shell button,.admin-app-shell input,.admin-app-shell select,.admin-app-shell textarea{font:inherit}.admin-boot{display:grid;min-height:100vh;place-items:center;color:var(--admin-muted)}.admin-login-page{display:grid;min-height:100vh;place-items:center;padding:32px;background:radial-gradient(circle at 75% 20%,#dce9e2 0,transparent 34%),linear-gradient(135deg,#eef1eb,#f7f3eb)}.admin-login-card{width:min(100%,440px);padding:44px;border:1px solid rgba(46,91,79,.18);border-radius:22px;background:#ffffffeb;box-shadow:0 26px 70px #17362f21}.admin-login-mark{display:grid;width:58px;height:58px;margin-bottom:24px;place-items:center;border-radius:18px 18px 18px 4px;background:var(--admin-green);color:#fff;font-family:Songti SC,serif;font-size:29px}.admin-eyebrow{margin:0 0 7px;color:var(--admin-warm);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.admin-login-card h1,.admin-page-title h1,.admin-editor h2{margin:0;font-family:Songti SC,serif}.admin-login-card h1{font-size:34px}.admin-muted,.admin-page-title p{color:var(--admin-muted)}.admin-login-card form{display:grid;gap:17px;margin-top:28px}.admin-login-card label,.admin-editor-form label{display:grid;gap:7px;color:#53635e;font-size:13px;font-weight:650}.admin-login-card input,.admin-editor-form input,.admin-editor-form select,.admin-editor-form textarea,.admin-filterbar input,.admin-filterbar select{width:100%;border:1px solid var(--admin-line);border-radius:9px;background:#fff;color:var(--admin-ink);outline:none}.admin-login-card input{height:48px;padding:0 13px}.admin-login-card input:focus,.admin-editor-form input:focus,.admin-editor-form select:focus,.admin-editor-form textarea:focus,.admin-filterbar input:focus,.admin-filterbar select:focus{border-color:var(--admin-green);box-shadow:0 0 0 3px #2e5b4f1f}.admin-primary,.admin-button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;padding:0 15px;border:1px solid var(--admin-line);border-radius:9px;background:#fff;color:var(--admin-ink);cursor:pointer;text-decoration:none}.admin-primary{border-color:var(--admin-green);background:var(--admin-green);color:#fff}.admin-primary:disabled,.admin-button:disabled{cursor:not-allowed;opacity:.5}.admin-login-button{width:100%;min-height:48px;margin-top:5px}.admin-error{margin:8px 0;padding:10px 12px;border-left:3px solid var(--admin-danger);background:#f8e9e7;color:#7b302c;font-size:13px}.admin-layout{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.admin-sidebar{position:sticky;top:0;display:flex;height:100vh;flex-direction:column;padding:22px 14px;background:#193f36;color:#fff}.admin-brand{display:flex;align-items:center;gap:11px;padding:3px 8px 25px;color:#fff;text-decoration:none}.admin-brand>span{display:grid;width:38px;height:38px;place-items:center;border-radius:12px 12px 12px 3px;background:#f4efe5;color:#274d42;font-family:Songti SC,serif;font-size:21px}.admin-brand div{display:flex;flex-direction:column}.admin-brand strong{font-family:Songti SC,serif;font-size:18px;letter-spacing:.06em}.admin-brand small{margin-top:2px;color:#adc4bc;font-size:10px}.admin-sidebar nav{display:grid;gap:6px}.admin-sidebar nav button{display:flex;min-height:46px;align-items:center;gap:11px;padding:0 12px;border:0;border-radius:9px;background:transparent;color:#c6d8d2;cursor:pointer;text-align:left}.admin-sidebar nav button span{display:grid;width:25px;height:25px;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:7px;font-size:11px}.admin-sidebar nav button.active{background:#ffffff1f;color:#fff}.admin-sidebar footer{display:grid;gap:5px;margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:14px}.admin-sidebar footer a,.admin-sidebar footer button{padding:9px 10px;border:0;background:none;color:#bcd0c9;text-align:left;text-decoration:none;cursor:pointer}.admin-main{min-width:0}.admin-workspace{min-height:100vh;padding:34px 38px 50px}.admin-page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:26px}.admin-page-title h1{font-size:30px}.admin-page-title p:last-child{margin:7px 0 0;font-size:13px}.admin-create-actions{display:flex;gap:9px}.admin-filterbar{display:grid;grid-template-columns:minmax(240px,1fr) 150px 140px auto;gap:9px;padding:13px;border:1px solid var(--admin-line);border-radius:13px 13px 0 0;background:#faf9f5}.admin-filterbar.audit{grid-template-columns:minmax(260px,1fr) 180px auto;border-radius:13px}.admin-filterbar input,.admin-filterbar select{height:40px;padding:0 11px}.admin-search{position:relative}.admin-search span{position:absolute;left:12px;top:9px;color:var(--admin-muted)}.admin-search input{padding-left:33px}.admin-switch{display:flex;align-items:center;gap:7px;padding:0 8px;white-space:nowrap;font-size:13px}.admin-table-wrap{overflow:auto;border:1px solid var(--admin-line);border-top:0;border-radius:0 0 13px 13px;background:#fff}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{height:43px;padding:0 13px;border-bottom:1px solid var(--admin-line);background:#f4f3ee;color:#69746f;font-size:11px;letter-spacing:.04em;text-align:left;white-space:nowrap}.admin-table td{min-height:58px;padding:13px;border-bottom:1px solid #ebeae5;vertical-align:middle}.admin-table tbody tr{cursor:pointer}.admin-table tbody tr:hover,.admin-table tbody tr:focus{background:#f2f7f4;outline:none}.admin-table td:first-child{min-width:230px}.admin-table td strong{display:block;max-width:320px}.admin-table td small{display:block;max-width:300px;margin-top:4px;overflow:hidden;color:var(--admin-muted);text-overflow:ellipsis;white-space:nowrap}.admin-status{display:inline-flex;padding:4px 7px;border-radius:5px;background:#e4ede8;color:#2e5b4f;font-size:11px;font-weight:700}.admin-status.candidate{background:#f3e7d8;color:#86592f}.admin-pagination{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:14px;color:var(--admin-muted);font-size:13px}.admin-pagination button{min-height:36px;padding:0 12px;border:1px solid var(--admin-line);border-radius:8px;background:#fff}.admin-editor{position:fixed;inset:0 0 0 auto;z-index:30;width:min(680px,calc(100vw - 220px));overflow:auto;border-left:1px solid var(--admin-line);background:#f8f7f2;box-shadow:-24px 0 60px #17362f29}.admin-editor-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:22px 26px;border-bottom:1px solid var(--admin-line);background:#f8f7f2f5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.admin-editor h2{font-size:24px}.admin-icon-button{width:36px;height:36px;border:1px solid var(--admin-line);border-radius:50%;background:#fff;color:var(--admin-ink);cursor:pointer;font-size:24px;line-height:1}.admin-panel-state{padding:60px 26px;color:var(--admin-muted)}.admin-editor-form{padding:24px 26px 110px}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 14px}.admin-form-grid .wide{grid-column:1/-1}.admin-editor-form input,.admin-editor-form select{height:42px;padding:0 11px}.admin-editor-form textarea{padding:10px 11px;resize:vertical}.admin-editor-form small{color:var(--admin-danger)}.admin-editor-actions{position:fixed;right:0;bottom:0;z-index:4;display:flex;width:min(680px,calc(100vw - 220px));justify-content:flex-end;gap:9px;padding:14px 26px;border-top:1px solid var(--admin-line);background:#fffffff5}.admin-media-section{grid-column:1/-1;margin-top:25px;padding-top:22px;border-top:1px solid var(--admin-line)}.admin-media-section>header{display:flex;align-items:center;justify-content:space-between}.admin-media-section h3{margin:0}.admin-media-section header p{margin:4px 0 0;color:var(--admin-muted);font-size:12px}.admin-upload input{display:none}.admin-media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.admin-media-grid article{position:relative;overflow:hidden;border:1px solid var(--admin-line);border-radius:9px;background:#fff}.admin-media-grid img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.admin-media-grid article>span{position:absolute;left:6px;top:6px;padding:3px 7px;border-radius:5px;background:var(--admin-green);color:#fff;font-size:10px}.admin-media-grid article>div{display:flex;justify-content:space-between;padding:6px}.admin-media-grid button{border:0;background:none;color:var(--admin-green);cursor:pointer;font-size:11px}.admin-media-grid button.danger{color:var(--admin-danger)}.admin-empty-inline{padding:22px;border:1px dashed var(--admin-line);border-radius:9px;color:var(--admin-muted);text-align:center}.admin-modal-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:30px;background:#12292373}.admin-modal{width:min(560px,100%);max-height:80vh;overflow:auto;border-radius:16px;background:#fff;box-shadow:0 25px 80px #0003}.admin-modal>header{display:flex;align-items:center;justify-content:space-between;padding:22px;border-bottom:1px solid var(--admin-line)}.admin-modal h2{margin:0}.admin-change-list{display:grid;gap:10px;padding:18px 22px}.admin-change-list article{padding:12px;border-radius:9px;background:#f5f4ef}.admin-change-list article>strong{font-size:12px}.admin-change-list article>div{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;margin-top:7px;color:#55635f;font-size:13px}.admin-change-list article>div b{color:var(--admin-warm)}.admin-modal>footer{display:flex;justify-content:flex-end;gap:9px;padding:15px 22px;border-top:1px solid var(--admin-line)}.admin-audit-list{display:grid;gap:9px;margin-top:14px}.admin-audit-list article{overflow:hidden;border:1px solid var(--admin-line);border-radius:10px;background:#fff}.admin-audit-summary{display:grid;width:100%;grid-template-columns:65px 130px minmax(180px,1fr) 150px 30px;align-items:center;gap:10px;padding:13px;border:0;background:#fff;color:var(--admin-ink);cursor:pointer;text-align:left}.admin-audit-summary code{overflow:hidden;color:var(--admin-muted);text-overflow:ellipsis}.admin-audit-summary time{color:var(--admin-muted);font-size:12px}.admin-audit-detail{display:grid;gap:1px;padding:12px;background:#f1f0eb}.admin-audit-detail>div{display:grid;grid-template-columns:130px 1fr auto 1fr;gap:10px;padding:9px;background:#fff;font-size:12px}.admin-audit-detail span{overflow-wrap:anywhere}.admin-list-error{margin:0 0 10px}.admin-list-error button{border:0;background:none;color:inherit;text-decoration:underline}@media(max-width:900px){.admin-layout{grid-template-columns:72px minmax(0,1fr)}.admin-sidebar{padding:16px 8px}.admin-brand div,.admin-sidebar nav button:not(.active){font-size:0}.admin-brand>span{flex:none}.admin-sidebar nav button{justify-content:center;padding:0}.admin-sidebar nav button span{font-size:11px}.admin-sidebar footer{display:none}.admin-workspace{padding:24px 18px}.admin-editor,.admin-editor-actions{width:calc(100vw - 72px)}.admin-filterbar{grid-template-columns:1fr 130px}.admin-filterbar>*:nth-child(n+3){grid-row:2}.admin-media-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:620px){.admin-layout{display:block}.admin-sidebar{position:relative;width:100%;height:auto;flex-direction:row;align-items:center}.admin-sidebar nav{display:flex;margin-left:auto}.admin-brand{padding:0}.admin-sidebar footer{display:none}.admin-workspace{padding:18px 10px}.admin-page-title{align-items:flex-start;flex-direction:column}.admin-editor,.admin-editor-actions{width:100vw}.admin-form-grid{grid-template-columns:1fr}.admin-form-grid .wide{grid-column:auto}.admin-media-grid{grid-template-columns:repeat(2,1fr)}.admin-table-wrap{max-height:70vh}.admin-audit-summary{grid-template-columns:60px 1fr 30px}.admin-audit-summary code,.admin-audit-summary time{display:none}}@media(prefers-reduced-motion:reduce){.admin-app-shell *{scroll-behavior:auto!important;transition:none!important}}:root{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#253a34;background:#f7f5ef;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}.app-shell{max-width:520px;min-height:100vh;margin:auto;background:#fbfaf6;box-shadow:0 0 0 1px #eee9df}.brand-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;padding:14px 16px;background:#f7f5eff5;border-bottom:1px solid #ddd8cf;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:flex;flex:1;flex-direction:column;color:#29483f;text-decoration:none}.brand strong{font-family:Songti SC,serif;font-size:22px;letter-spacing:.08em}.brand small{font-size:11px;color:#707a75}.back{font-size:36px;line-height:36px;color:#29483f;text-decoration:none}.data-link{color:#3b6257;font-size:13px}.search-panel{position:sticky;top:68px;z-index:9;padding:14px 16px;background:#f7f5ef}.search{height:48px;display:flex;align-items:center;gap:10px;padding:0 14px;background:#fff;border:1px solid #d8d4ca;border-radius:14px}.search input{width:100%;border:0;outline:0;background:transparent;font-size:15px}.filters{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.filters select,.result-head select{height:42px;padding:0 8px;border:1px solid #d8d4ca;border-radius:10px;background:#fff;color:#29483f}.result-head{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;color:#29483f}.result-head select{height:38px;max-width:145px}.cards{display:grid;gap:12px;padding:0 12px 16px}.institution-card{display:grid;grid-template-columns:132px 1fr;min-height:146px;overflow:hidden;border:1px solid #e0dbd1;border-radius:16px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 5px 18px #29483f0f}.institution-card img{width:132px;height:100%;object-fit:cover;background:#e5eee9}.card-body{min-width:0;padding:13px 12px}.card-body h2{margin:0 0 7px;font-size:17px;line-height:1.35}.address{height:36px;margin:0 0 8px;overflow:hidden;color:#707a75;font-size:12px;line-height:18px}.price{display:block;color:#8d5e3e;font-size:15px}.tags{display:flex;gap:5px;overflow:hidden;margin-top:8px}.tags span{flex:none;padding:3px 6px;border-radius:5px;background:#e5eee9;color:#3b6257;font-size:10px}.skeleton{height:146px;border-radius:16px;background:linear-gradient(90deg,#eeeae1 25%,#f7f4ee,#eeeae1 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}.state{padding:70px 26px;text-align:center;color:#707a75}.state button,.state a{display:inline-flex;min-height:44px;align-items:center;padding:0 18px;border:0;border-radius:10px;background:#29483f;color:#fff;text-decoration:none}.pager{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 30px}.pager button{min-height:44px;padding:0 16px;border:1px solid #3b6257;border-radius:10px;background:#fff;color:#29483f}.pager button:disabled{opacity:.35}.hero{width:100%;aspect-ratio:4/3;object-fit:cover;background:#e5eee9}.detail{padding-bottom:92px}.detail-title,.detail-section{padding:20px 18px;border-bottom:1px solid #e0dbd1}.detail-title p{margin:0 0 6px;color:#a06e48;font-size:13px}.detail-title h1{margin:0;font-family:Songti SC,serif;font-size:27px;line-height:1.3}.facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#ddd8cf;border-bottom:1px solid #ddd8cf}.facts div{padding:16px 18px;background:#fff}.facts small{display:block;margin-bottom:6px;color:#707a75}.facts strong{font-size:16px}.detail-section h2,.prose h2{font-family:Songti SC,serif}.capabilities{display:grid;grid-template-columns:1fr 1fr;gap:8px}.capabilities span{padding:10px;border-radius:8px;background:#efede7;color:#8a8f8c;font-size:13px}.capabilities span.yes{background:#e5eee9;color:#29483f}.notice{padding:12px;border-left:3px solid #a06e48;background:#f1e4d6;color:#6c5b4d;font-size:13px}.detail-actions{position:fixed;bottom:0;left:50%;z-index:12;display:grid;grid-template-columns:1fr 1.25fr;gap:10px;width:min(100%,520px);padding:10px 16px calc(10px + env(safe-area-inset-bottom));transform:translate(-50%);background:#fffffff5;border-top:1px solid #ddd8cf}.detail-actions a{display:flex;min-height:48px;align-items:center;justify-content:center;border:1px solid #29483f;border-radius:12px;color:#29483f;text-decoration:none}.detail-actions .primary{background:#29483f;color:#fff}.detail-actions .disabled{pointer-events:none;opacity:.35}.prose{padding:25px 20px;line-height:1.8}.prose h1{font-family:Songti SC,serif;font-size:30px}@keyframes shimmer{to{background-position:-200% 0}}@media(max-width:350px){.institution-card{grid-template-columns:112px 1fr}.institution-card img{width:112px}.filters{gap:5px}.filters select{font-size:12px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}:focus-visible{outline:3px solid #a06e48;outline-offset:2px}.alias,.detail-alias{margin:0 0 6px;color:#8d5e3e;font-size:12px}.tags .pending{background:#f3dfc8;color:#7b4b2b}.candidate-notice{background:#fff7eb}.candidate-notice h2{color:#7b4b2b}.gallery{position:relative;overflow:hidden;background:#e5eee9;aspect-ratio:4/3;touch-action:pan-y}.gallery-image{display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.gallery-image img{width:100%;height:100%;object-fit:cover}.gallery-nav{position:absolute;top:50%;width:42px;height:42px;border:0;border-radius:50%;transform:translateY(-50%);background:#14231f9e;color:#fff;font-size:30px;line-height:1}.gallery-nav.previous{left:12px}.gallery-nav.next{right:12px}.gallery-count{position:absolute;right:12px;bottom:12px;padding:5px 9px;border-radius:999px;background:#14231fad;color:#fff;font-size:12px}.gallery-preload{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}.lightbox{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#080f0df0}.lightbox img{max-width:100%;max-height:88vh;object-fit:contain}.lightbox button{position:absolute;z-index:2;border:0;background:#ffffff24;color:#fff}.lightbox-close{top:18px;right:18px;width:48px;height:48px;border-radius:50%;font-size:32px}.lightbox-prev,.lightbox-next{top:50%;width:48px;height:64px;transform:translateY(-50%);font-size:38px}.lightbox-prev{left:8px}.lightbox-next{right:8px}.lightbox-count{position:absolute;bottom:24px;padding:6px 12px;border-radius:999px;background:#ffffff24;color:#fff}.facts{grid-template-columns:repeat(3,1fr)}@media(max-width:420px){.facts{grid-template-columns:1fr 1fr}.facts div:last-child{grid-column:1/-1}}
