:root{color-scheme:light;--bg: #f5f5f5;--surface: #ffffff;--surface-soft: #fafafa;--text: #111111;--muted: #707070;--line: #e4e4e4;--line-dark: #cfcfcf;--shadow: 0 12px 32px rgba(0, 0, 0, .07)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;padding-bottom:82px}.admin-shell{padding-bottom:0}main{padding:14px 14px 24px}.page-section{width:min(920px,100%);margin:0 auto}.page-section.narrow{width:min(760px,100%)}.app-page{display:grid;gap:12px}.simple-title{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:4px 2px}.simple-title h1{margin:0;font-size:24px;line-height:1.2;letter-spacing:0}.simple-title span{color:var(--muted);font-size:13px}.bottom-tabs{position:fixed;right:0;bottom:0;left:0;z-index:40;display:grid;grid-template-columns:repeat(2,1fr);gap:6px;padding:8px 14px calc(8px + env(safe-area-inset-bottom));background:#fffffff5;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.bottom-tabs a{display:grid;min-height:54px;place-items:center;gap:3px;color:var(--muted);font-size:12px;border-radius:10px}.bottom-tabs a.active{color:var(--text);background:#eee;font-weight:700}.map-filter-bar,.resource-filter-bar{display:grid;grid-template-columns:minmax(138px,220px) minmax(0,1fr);align-items:center;gap:10px}.search-box,.select-box,.inline-field{display:flex;align-items:center;gap:8px}.search-box,.select-box{min-height:40px;padding:0 12px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.compact-search{width:min(280px,100%)}.search-box input,.select-box select,.inline-field input{width:100%;min-width:0;color:var(--text);background:transparent;border:0;outline:0}.category-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.category-tabs::-webkit-scrollbar{display:none}.category-tabs button{flex:0 0 auto;min-height:34px;padding:0 13px;color:var(--muted);white-space:nowrap;background:var(--surface);border:1px solid var(--line);border-radius:999px}.category-tabs button.active{color:#fff;background:#111;border-color:#111}.map-panel,.list-panel,.login-card,.admin-form,.admin-table,.resource-detail{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.map-panel{overflow:hidden}.map-canvas{display:grid;width:100%;height:48vh;min-height:320px;max-height:520px;place-items:center;color:var(--muted);background:#f1f1f1}.amap-label{display:inline-block;max-width:120px;overflow:hidden;padding:3px 7px;color:#111;text-overflow:ellipsis;white-space:nowrap;background:#fff;border:1px solid #ddd;border-radius:999px;box-shadow:0 6px 16px #0000001f}.map-popover{max-width:200px;line-height:1.5}.map-popover strong,.map-popover span{display:block}.map-popover span{color:var(--muted);font-size:12px;margin-top:3px}.map-list-panel{padding:14px}.panel-title{display:flex;align-items:center;gap:10px;margin-bottom:12px}.panel-title.compact{justify-content:space-between}.panel-title h2,.admin-form h2,.admin-table h2,.resource-row h2,.point-modal h2{margin:0;font-size:18px;line-height:1.3}.panel-title span{color:var(--muted);font-size:13px}.point-list{display:grid;gap:9px}.point-item{display:grid;gap:5px;width:100%;padding:13px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:10px}.point-item:hover{border-color:#111}.point-item small,.resource-row small,.admin-row span,.detail-lines span,.detail-meta span{color:var(--muted)}.point-category{display:inline-flex;align-items:center;width:fit-content;padding:3px 8px;color:#222;font-size:12px;font-weight:700;background:#eee;border-radius:999px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;align-items:end;padding:18px 12px calc(18px + env(safe-area-inset-bottom));background:#00000052}.point-modal{position:relative;width:min(620px,100%);max-height:82vh;margin:0 auto;overflow:auto;padding:20px;background:#fff;border-radius:16px;box-shadow:0 22px 70px #0000003d}.modal-close{position:absolute;top:14px;right:14px;display:grid;width:38px;height:38px;place-items:center;color:#111;background:#f2f2f2;border:0;border-radius:999px}.point-modal h2{padding-right:42px;margin-top:12px}.point-modal p{color:#333;line-height:1.8}.detail-lines{display:grid;gap:10px;margin-top:16px}.detail-lines span,.detail-meta span,.resource-row small{display:inline-flex;align-items:center;gap:7px}.image-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;margin-top:16px}.image-strip img,.detail-cover,.resource-cover img{width:100%;object-fit:cover;border-radius:10px}.image-strip img{height:92px}.resource-list{display:grid;gap:10px}.resource-row{display:grid;grid-template-columns:96px minmax(0,1fr);gap:13px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.resource-row:hover{border-color:#111}.resource-row p{display:-webkit-box;overflow:hidden;margin:7px 0;color:var(--muted);line-height:1.55;-webkit-line-clamp:2;-webkit-box-orient:vertical}.resource-cover{display:grid;height:82px;place-items:center;color:#444;background:#eee;border-radius:10px}.resource-cover img{height:82px}.back-link{display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;color:#111;font-weight:700}.resource-detail{padding:22px}.resource-detail .point-category{margin-bottom:12px}.resource-detail h1,.admin-topbar h1,.login-card h1{margin:0;font-size:26px;line-height:1.2}.detail-meta{display:flex;flex-wrap:wrap;gap:14px;margin:14px 0 22px}.detail-cover{max-height:420px;margin-bottom:24px}.rich-content{color:#222;line-height:1.9}.rich-content img{max-width:100%;height:auto;border-radius:10px}.rich-content table{width:100%;border-collapse:collapse}.rich-content th,.rich-content td{padding:10px;border:1px solid var(--line)}.status-message{margin:10px 0;padding:11px 12px;color:#222;background:#eee;border:1px solid var(--line-dark);border-radius:10px}.status-message.error,.status-message.success{color:#111;background:#eee;border-color:var(--line-dark)}.empty-state{display:grid;gap:7px;padding:24px;color:var(--muted);text-align:center;background:#fafafa;border:1px dashed var(--line-dark);border-radius:12px}.empty-state strong{color:var(--text)}.login-card{display:grid;gap:16px;padding:24px}.eyebrow{margin:0 0 6px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.login-card label,.admin-form label{display:grid;gap:8px;color:#333;font-weight:700}.login-card input,.admin-form input,.admin-form select,.admin-form textarea{width:100%;min-width:0;padding:11px 12px;color:var(--text);background:#fff;border:1px solid var(--line-dark);border-radius:10px;outline:none}.login-card input:focus,.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus,.search-box:focus-within,.select-box:focus-within{border-color:#111;box-shadow:0 0 0 3px #00000014}.primary-button,.ghost-button,.upload-button,.admin-tabs button,.row-actions button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 14px;color:#111;background:#fff;border:1px solid var(--line-dark);border-radius:10px;font-weight:800}.primary-button{color:#fff;background:#111;border-color:#111}.ghost-button:hover,.upload-button:hover,.admin-tabs button:hover,.row-actions button:hover{border-color:#111}.upload-button{position:relative;white-space:nowrap}.upload-button input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.admin-page{display:grid;gap:16px;width:min(1160px,100%)}.admin-topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.admin-topbar span{display:inline-block;margin-top:8px;color:var(--muted)}.admin-layout{display:grid;gap:16px}.admin-tabs{display:flex;gap:8px;overflow-x:auto}.admin-tabs button.active{color:#fff;background:#111;border-color:#111}.admin-workbench{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:16px;align-items:start}.admin-form,.admin-table{padding:16px}.admin-form{display:grid;gap:15px}.form-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.form-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.inline-field{align-items:stretch}.inline-field input{flex:1}.form-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.checkbox-line{display:inline-flex!important;grid-auto-flow:column;align-items:center;justify-content:start}.checkbox-line input{width:auto}.admin-map-picker{display:grid;gap:9px}.map-picker-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.map-picker-head span{color:var(--muted);font-size:13px}.map-picker-canvas{display:grid;height:260px;overflow:hidden;place-items:center;color:var(--muted);background:#f1f1f1;border:1px solid var(--line-dark);border-radius:12px}.admin-table{display:grid;gap:10px}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;background:#fafafa;border:1px solid var(--line);border-radius:10px}.admin-row>div:first-child{display:grid;min-width:0;gap:4px}.admin-row strong,.admin-row span{overflow-wrap:anywhere}.row-actions{display:flex;flex-shrink:0;gap:8px}.row-actions button{width:38px;padding:0}.image-manager{display:flex;flex-wrap:wrap;gap:8px}.image-chip{display:inline-flex;align-items:center;max-width:100%;gap:6px;padding:8px 10px;color:var(--muted);overflow-wrap:anywhere;background:#fafafa;border:1px solid var(--line);border-radius:10px}@media(min-width:760px){main{padding-top:22px}}@media(max-width:860px){.admin-workbench,.form-row,.resource-row{grid-template-columns:1fr}.resource-cover,.resource-cover img{height:160px}.admin-topbar,.form-heading{align-items:stretch;flex-direction:column}}@media(max-width:520px){main{padding:12px 10px 20px}.simple-title h1{font-size:22px}.map-canvas{height:44vh;min-height:300px}.modal-backdrop{padding-right:0;padding-left:0}.point-modal{border-radius:18px 18px 0 0}.admin-row,.form-actions,.inline-field{align-items:stretch;flex-direction:column}.row-actions{align-self:stretch}.row-actions button{flex:1;width:auto}}
