:root{--paper:#f7f4eb;--ink:#253d35;--muted:#74766a;--line:#dcddcf;--accent:#8b6549}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.8 "Microsoft YaHei","PingFang SC",sans-serif}button,input,textarea,select{font:inherit;color:inherit}button,a.button{border:1px solid #bec4b7;background:transparent;padding:10px 17px;border-radius:4px;cursor:pointer;text-decoration:none;color:var(--ink);display:inline-block}button:disabled{opacity:.5;cursor:wait}button:hover,a.button:hover{background:#eeeade}button.primary{background:var(--ink);color:#fffef8;border-color:var(--ink)}input:not([type=checkbox]),textarea,select{display:block;max-width:100%;border:1px solid #cbd0c1;border-radius:4px;padding:12px;background:#fffef8;width:100%}input[type=checkbox]{accent-color:var(--ink)}textarea{resize:vertical}label{display:block;margin:16px 0 7px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #8b6549;outline-offset:3px}[hidden]{display:none!important}h1,h2{font-family:"Songti SC","STSong","SimSun",serif;font-weight:400}h1{font-size:36px;line-height:1.55;margin:15px 0}h2{font-size:27px;margin:10px 0 20px}p{margin:10px 0 18px}header{border-bottom:1px solid var(--line);padding:22px 5%;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font:30px Georgia,serif;text-decoration:none;color:inherit}.brand i{color:var(--accent)}.brand span{font:13px "Microsoft YaHei",sans-serif;margin-left:22px;letter-spacing:3px}.header-right{display:flex;align-items:center;gap:15px;font-size:12px;color:var(--muted)}main{max-width:1280px;margin:0 auto;padding:40px 32px}.eyebrow{font:11px Georgia,serif;letter-spacing:2.4px}.intro{display:flex;justify-content:space-between;align-items:center;gap:24px}.intro p{color:var(--muted)}.tabs{display:flex;gap:28px;border-bottom:1px solid var(--line);margin:20px 0 25px}.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;padding:15px 0}.tabs .active{border-color:var(--ink)}.notification{display:flex;justify-content:space-between;gap:16px;align-items:center;background:#eaeedf;padding:14px 20px;font-size:13px}.notification button{font-size:12px;padding:6px 10px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:24px 0}.stat{border:1px solid var(--line);padding:22px 25px}.stat span{display:block;color:var(--muted);font-size:12px}.stat b{font:38px Georgia,serif;display:block;margin-top:8px;font-weight:400}.toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.toolbar label{margin:0}.search-label{flex:1;min-width:190px}.check{display:flex;align-items:center;gap:9px}.exports{display:flex;gap:8px}.exports a{font-size:12px;padding:12px}.hint{font-size:12px;color:var(--muted);line-height:1.9}.table-wrap{overflow:auto;border:1px solid var(--line);background:#fffef8}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{text-align:left;padding:16px;border-bottom:1px solid var(--line);font-size:13px}th{background:#eeeade;font-weight:400;color:#697160}td:first-child{white-space:normal;min-width:120px;max-width:200px;overflow-wrap:anywhere}td button{padding:4px 10px;font-size:12px}.unread{display:inline-block;color:#8b6549;margin-left:8px;font-size:10px}.badge{display:inline-block;padding:2px 10px;border-radius:20px;background:#e9eddf}.badge.no{background:#eee9e4;color:#817269}.badge.maybe{background:#efe8d8;color:#8b6549}#empty{text-align:center;padding:48px 20px;color:var(--muted)}.login-card{max-width:430px;margin:35px auto;border:1px solid var(--line);padding:38px;background:#fffef8}.login-card .primary{width:100%;margin:24px 0 5px}.settings-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:24px}.card{border:1px solid var(--line);padding:28px;margin-bottom:24px;background:#fffef8}.card .primary{margin:20px 0 10px}.coordinate{display:flex;gap:16px}.coordinate>div{flex:1;min-width:0}audio{width:100%;margin:12px 0}.security-card{max-width:540px}.status{position:sticky;bottom:20px;background:var(--ink);color:#fffef8;border-radius:5px;padding:14px 20px;box-shadow:0 5px 25px #253d3520;z-index:4}.status:empty{display:none}.status.error{background:#874a35}dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);width:min(500px,calc(100vw - 32px));max-height:85vh;overflow:auto;border-radius:8px;padding:32px}dialog::backdrop{background:#18231f66}.close{float:right;border:0;font-size:24px;padding:0 10px}dl{display:grid;grid-template-columns:95px 1fr;gap:14px;font-size:13px}dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}.danger{color:#874a35;border-color:#bc8a77}footer{text-align:center;font:10px Georgia,serif;letter-spacing:2px;color:var(--muted);padding:40px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:700px){main{padding:26px 18px}.intro{align-items:flex-start}.intro h1{font-size:27px}.intro button{font-size:12px;padding:8px;white-space:nowrap}.stats{grid-template-columns:repeat(2,1fr);gap:12px}.stat{padding:16px}.settings-grid{display:block}.notification{align-items:flex-start;flex-direction:column}.login-card{padding:26px;margin:10px auto}.brand span{margin-left:12px}.header-right{gap:8px}.card{padding:22px}.toolbar .exports{width:100%}.coordinate{display:block}}
@media(max-width:700px){header{padding:16px 18px;align-items:flex-start}.brand{white-space:nowrap;font-size:27px}.brand span{display:block;font-size:10px;margin:8px 0 0}.header-right{align-items:flex-end;flex-direction:column;font-size:10px}.header-right button{white-space:nowrap;padding:6px 12px}.intro{display:block;position:relative;padding-top:40px}.intro>button{position:absolute;right:0;top:0}.intro h1{font-size:27px;letter-spacing:0}}

.photo-section{margin-bottom:32px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.photo-card{padding:20px;min-width:0}.photo-card h3{font-size:22px;font-weight:400;margin:10px 0 18px}.photo-image{display:block;width:100%;max-height:330px;object-fit:contain;background:#f7f3e8;aspect-ratio:2/3}.photo-image.share{aspect-ratio:5/4}.photo-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.photo-actions button,.photo-actions .primary{margin:0;font-size:12px;padding:10px 12px}.photo-card input[type=file]{font-size:12px;max-width:100%}.photo-card select{font-size:13px}.photo-card .photo-note{min-height:46px}.photo-actions button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:1000px){.photo-grid{grid-template-columns:1fr}.photo-image{max-height:400px}.photo-card{padding:24px}}

/* v1.0.3: main gallery is independent of opening/share photos. */
.gallery-section{margin:28px 0 40px}.gallery-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px;margin:16px 0}.gallery-item{min-width:0;padding:16px}.gallery-thumbnail{display:block;width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:8px;background:#eae4d8}.gallery-item h3{margin-bottom:4px}.gallery-item .photo-actions{gap:6px}.gallery-item button{padding:9px 12px}.gallery-upload{max-width:680px;margin:20px 0}.gallery-preview{display:block;width:100%;max-width:320px;aspect-ratio:2/3;object-fit:contain;margin-top:16px}.gallery-preview[hidden]{display:none}@media(max-width:540px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gallery-item{padding:10px}.gallery-item button{padding:9px;font-size:13px}.gallery-upload{padding:18px}}
