.auth-page{position:relative;min-height:100vh;overflow:hidden;background:radial-gradient(circle at 14% 18%,rgba(198,87,76,.24),transparent 26%),radial-gradient(circle at 82% 14%,rgba(53,111,107,.22),transparent 24%),radial-gradient(circle at 50% 100%,rgba(212,176,112,.14),transparent 34%),linear-gradient(135deg,#f6efe6,#efe2d2 48%,#d9e3dc);color:#2d241f;isolation:isolate}.auth-page:before,.auth-page:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.auth-page:before{background:linear-gradient(120deg,rgba(255,255,255,.18),transparent 24%,transparent 76%,rgba(255,255,255,.16)),repeating-linear-gradient(0deg,rgba(104,76,49,.03) 0 1px,transparent 1px 28px);opacity:.8}.auth-page:after{inset:auto auto 10% -6%;width:260px;height:260px;border-radius:50%;background:#fff9f080;filter:blur(10px)}.auth-shell{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:clamp(28px,4vw,56px);align-items:center;width:min(1160px,calc(100% - 32px));min-height:100vh;margin:0 auto;padding:clamp(24px,5vw,56px) 0}.auth-hero{display:grid;gap:20px;align-content:center}.auth-hero-eyebrow,.auth-card-eyebrow,.auth-hero-panel-label{letter-spacing:.18em;text-transform:uppercase}.auth-hero-eyebrow{color:#8f5e48;font-size:12px;font-weight:800}.auth-hero-title{max-width:8.6ch;color:#2e221b;font-family:Georgia,Times New Roman,serif;font-size:clamp(36px,5vw,62px);line-height:1.02}.auth-hero-description{max-width:520px;color:#2d241fd6;font-size:clamp(15px,1.2vw,17px);line-height:1.72}.auth-hero-panel{max-width:560px;padding:24px;border:1px solid rgba(89,61,40,.14);border-radius:28px;background:linear-gradient(180deg,#fffaf3d1,#fff5ebad),#ffffff5c;box-shadow:0 26px 44px #583c251f;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.auth-hero-panel-label{margin-bottom:16px;color:#6e4c37;font-size:11px;font-weight:800}.auth-feature-list{display:grid;gap:14px;list-style:none}.auth-feature-item{display:grid;gap:4px;padding:12px 14px;border-radius:18px;background:#ffffff94}.auth-feature-item strong{color:#2f241e;font-size:15px;font-weight:700}.auth-feature-item span{color:#6e5a4e;font-size:14px;line-height:1.65}.auth-panel{display:flex;justify-content:flex-end}.auth-card{width:min(100%,480px);padding:clamp(28px,4vw,38px);border:1px solid rgba(84,59,41,.15);border-radius:32px;background:linear-gradient(180deg,#fffcf7f0,#fff7eee6),#ffffffd6;box-shadow:0 30px 60px #452f1f2e;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:28px}.auth-brand-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:18px;background:linear-gradient(135deg,#2d5f5d,#c86b52);color:#fff;font-family:Georgia,Times New Roman,serif;font-size:20px;font-weight:700;box-shadow:0 16px 24px #2d5f5d3d}.auth-brand-name{color:#2f241e;font-family:Georgia,Times New Roman,serif;font-size:22px;line-height:1.1}.auth-brand-tagline{margin-top:4px;color:#7d6758;font-size:13px}.auth-card-header{margin-bottom:24px}.auth-card-eyebrow{margin-bottom:10px;color:#8f5e48;font-size:11px;font-weight:800}.auth-card-header h2{color:#2e221b;font-family:Georgia,Times New Roman,serif;font-size:clamp(30px,3.1vw,40px);line-height:1.04}.auth-card-header p{margin-top:10px;color:#776255;font-size:14px;line-height:1.7}.auth-form{display:grid;gap:16px}.auth-status{padding:12px 14px;border:1px solid transparent;border-radius:16px;font-size:14px;line-height:1.6}.auth-status.is-success{border-color:#3c81612e;background:#e7f7edeb;color:#2f7a57}.auth-status.is-error{border-color:#ab4a362e;background:#fcece8f0;color:#a44637}.auth-field{display:grid;gap:8px}.auth-field label{color:#4a3a30;font-size:13px;font-weight:700}.auth-input{min-height:52px;padding:0 16px;border:1px solid rgba(92,66,47,.18);border-radius:16px;background:#ffffffd6;color:#2d241f;font:inherit;outline:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.auth-input::placeholder{color:#ac9888}.auth-input:focus{border-color:#366b6594;box-shadow:0 0 0 4px #366b651f;transform:translateY(-1px)}.auth-field-tip{color:#8a7466;font-size:12px;line-height:1.6}.auth-submit{min-height:54px;margin-top:4px;border:0;border-radius:18px;background:linear-gradient(135deg,#254f4d,#3f746f);color:#fff;cursor:pointer;font:inherit;font-size:15px;font-weight:700;letter-spacing:.06em;box-shadow:0 18px 28px #254f4d3d;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}.auth-submit:hover{transform:translateY(-2px);box-shadow:0 22px 34px #254f4d4d}.auth-submit:disabled{cursor:wait;filter:saturate(.8);opacity:.78;transform:none}.auth-switch{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:22px;color:#7f695b;font-size:14px}.auth-switch-link{color:#2f5f5d;font-weight:700;text-decoration:none}.auth-switch-link:hover{color:#214744;text-decoration:underline}.auth-page-register .auth-brand-mark{background:linear-gradient(135deg,#8b5a3d,#c86b52);box-shadow:0 16px 24px #8b5a3d3d}.auth-page-register .auth-submit{background:linear-gradient(135deg,#8b5a3d,#be7251);box-shadow:0 18px 28px #8b5a3d3d}.auth-page-register .auth-submit:hover{box-shadow:0 22px 34px #8b5a3d47}@media (max-width: 960px){.auth-shell{grid-template-columns:1fr;width:min(760px,calc(100% - 24px));gap:24px}.auth-panel{justify-content:stretch;order:-1}.auth-card{width:100%}.auth-hero-title,.auth-hero-description,.auth-hero-panel{max-width:none}}@media (max-width: 620px){.auth-shell{width:min(100% - 18px,560px);padding:16px 0 22px}.auth-card{padding:22px 18px;border-radius:24px}.auth-brand{margin-bottom:22px}.auth-brand-mark{width:48px;height:48px;border-radius:16px;font-size:18px}.auth-hero{gap:14px}.auth-hero-title{max-width:none;font-size:clamp(34px,10vw,46px)}.auth-hero-description{font-size:15px;line-height:1.7}.auth-hero-panel{padding:18px;border-radius:22px}.auth-feature-item{padding:10px 12px}}.profile-page{min-height:100vh;background:radial-gradient(circle at 12% 18%,rgba(198,87,76,.12),transparent 24%),radial-gradient(circle at 86% 14%,rgba(53,111,107,.12),transparent 22%),linear-gradient(135deg,#f6efe6,#efe3d5,#dce5df);color:#2f241d}.profile-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px clamp(18px,4vw,36px);border-bottom:1px solid rgba(80,58,43,.12);background:#fffaf2d6;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.profile-topbar-title{display:grid;gap:4px}.profile-topbar-title span{color:#896a57;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.profile-topbar-title strong{color:#31251f;font-family:Georgia,Times New Roman,serif;font-size:28px;line-height:1}.profile-topbar-actions{display:flex;align-items:center;gap:10px}.profile-topbar-link,.profile-topbar-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 16px;border:1px solid rgba(54,107,101,.2);border-radius:999px;background:#fffaf375;color:#4d4036;cursor:pointer;font:inherit;font-size:14px;font-weight:700;text-decoration:none}.profile-topbar-link:hover,.profile-topbar-button:hover{background:#366b651a;color:#244f4b}.profile-shell{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:clamp(28px,5vw,48px) 0 60px}.profile-hero{display:grid;gap:10px;margin-bottom:28px}.profile-hero-eyebrow{color:#8f5e48;font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.profile-hero h1{color:#31251f;font-family:Georgia,Times New Roman,serif;font-size:clamp(38px,5vw,56px);line-height:1}.profile-grid{display:grid;grid-template-columns:minmax(280px,.88fr) minmax(320px,1.12fr);gap:24px;align-items:start}.profile-panel{border:1px solid rgba(84,59,41,.14);border-radius:30px;background:linear-gradient(180deg,#fffcf7e6,#fff7efd6),#ffffffbf;box-shadow:0 24px 48px #452f1f24;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.profile-summary{padding:28px;display:grid;gap:22px}.profile-identity-card{display:grid;gap:16px;padding:18px;border-radius:24px;background:#ffffff8a}.profile-identity-copy{display:grid;gap:8px}.profile-identity-copy strong{color:#2f241d;font-family:Georgia,Times New Roman,serif;font-size:28px;line-height:1}.profile-user-handle{color:#6e5a4e;font-size:15px;font-weight:700}.profile-identity-copy p{color:#806a5b;font-size:14px;line-height:1.7}.profile-info-list{display:grid;gap:12px}.profile-info-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border-radius:18px;background:#ffffff85}.profile-info-row span{color:#7e695b;font-size:13px}.profile-info-row strong{color:#3d3028;font-size:14px}.profile-notice{padding:16px 18px;border-radius:20px;background:#366b651a;color:#46645f;font-size:14px;line-height:1.7}.profile-editor{padding:28px;display:grid;gap:22px}.profile-card-section{padding:22px;border-radius:24px;background:#ffffff94}.profile-card-section+.profile-card-section{margin-top:0}.profile-section-head{display:grid;gap:8px;margin-bottom:18px}.profile-section-head span{color:#8f5e48;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.profile-section-head h2{color:#2f241d;font-family:Georgia,Times New Roman,serif;font-size:28px;line-height:1.08}.profile-section-head p{color:#7a6658;font-size:14px;line-height:1.68}.profile-avatar-uploader{display:grid;gap:14px}.profile-avatar-stage{display:flex;align-items:center;gap:18px}.profile-avatar{position:relative;width:108px;height:108px;flex:0 0 auto;border:3px solid rgba(255,255,255,.82);border-radius:28px;overflow:hidden;background:linear-gradient(135deg,#366b652e,#c6574c1f),#f5efe7;box-shadow:0 18px 28px #452f1f24;cursor:pointer}.profile-avatar img{width:100%;height:100%;object-fit:cover;display:block}.profile-avatar-placeholder{display:grid;place-items:center;width:100%;height:100%;color:#7b6858;font-family:Georgia,Times New Roman,serif;font-size:34px}.profile-avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#1f18147a;color:#fff;font-size:13px;font-weight:700;opacity:0;transition:opacity .16s ease}.profile-avatar:hover .profile-avatar-overlay{opacity:1}.profile-avatar-meta{display:grid;gap:8px}.profile-avatar-meta strong{color:#31251f;font-size:16px}.profile-avatar-meta p{color:#7b6858;font-size:13px;line-height:1.68}.profile-avatar-actions{display:flex;flex-wrap:wrap;gap:10px}.profile-form{display:grid;gap:14px}.profile-field{display:grid;gap:8px}.profile-field label,.profile-nickname-label{color:#4a3a30;font-size:13px;font-weight:700}.profile-input,.profile-password-form input,.profile-nickname-input{min-height:50px;width:100%;padding:0 16px;border:1px solid rgba(92,66,47,.18);border-radius:16px;background:#ffffffd1;color:#2f241d;font:inherit;outline:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.profile-input::placeholder,.profile-password-form input::placeholder,.profile-nickname-input::placeholder{color:#ab9887}.profile-input:focus,.profile-password-form input:focus,.profile-nickname-input:focus{border-color:#366b658a;box-shadow:0 0 0 4px #366b651a;transform:translateY(-1px)}.profile-action-btn,.profile-save-btn,.profile-inline-btn{min-height:48px;border:0;border-radius:16px;color:#fff;cursor:pointer;font:inherit;font-size:14px;font-weight:700;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}.profile-action-btn,.profile-save-btn{width:100%;background:linear-gradient(135deg,#254f4d,#3f746f);box-shadow:0 18px 28px #254f4d38}.profile-inline-btn{min-width:98px;padding:0 16px;background:linear-gradient(135deg,#8b5a3d,#be7251);box-shadow:0 16px 24px #8b5a3d2e}.profile-action-btn:hover,.profile-save-btn:hover,.profile-inline-btn:hover{transform:translateY(-2px)}.profile-action-btn:disabled,.profile-save-btn:disabled,.profile-inline-btn:disabled{cursor:wait;opacity:.78;filter:saturate(.82);transform:none}.profile-status{margin-top:2px;padding:12px 14px;border:1px solid transparent;border-radius:16px;font-size:14px;line-height:1.6}.profile-status.success{border-color:#3c81612e;background:#e7f7edeb;color:#2f7a57}.profile-status.error{border-color:#ab4a362e;background:#fcece8f0;color:#a44637}.profile-nickname-form{display:grid;gap:12px}.profile-nickname-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.profile-password-form{display:grid;gap:14px}.profile-password-tip{color:#8a7567;font-size:12px;line-height:1.6}.profile-footer-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border:1px solid rgba(54,107,101,.18);border-radius:999px;background:#fffaf36b;color:#4b4036;font-size:14px;font-weight:700;text-decoration:none}.profile-footer-link:hover{background:#366b651a;color:#234c49}@media (max-width: 920px){.profile-grid{grid-template-columns:1fr}}@media (max-width: 640px){.profile-topbar{align-items:start;flex-direction:column}.profile-topbar-actions{width:100%;flex-wrap:wrap}.profile-shell{width:min(100% - 18px,720px);padding:20px 0 40px}.profile-summary,.profile-editor{padding:18px}.profile-card-section{padding:18px;border-radius:20px}.profile-avatar-stage{align-items:start;flex-direction:column}.profile-nickname-row{grid-template-columns:1fr}.profile-inline-btn{width:100%}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:#1a1a1a;background:#fafafa;line-height:1.6}.page{min-height:100vh;display:flex;flex-direction:column}.hint{text-align:center;font-size:13px;color:#999;margin-top:16px}.hint a{color:#1a1a1a;text-decoration:underline}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;background:#fff;border-bottom:1px solid #e8e8e8}.topbar h1{font-size:18px;font-weight:600}.text-btn{font-size:14px;color:#666;text-decoration:none}.text-btn:hover{color:#1a1a1a}.logout-btn{background:none;border:none;cursor:pointer;font-family:inherit;padding:0;margin-left:16px}.topbar-right{display:flex;align-items:center;gap:8px}.user-tag{font-size:13px;color:#888}.content{flex:1;display:flex;flex-direction:column;align-items:center;padding:32px;color:#999}.content h2{font-size:20px;font-weight:500;color:#333;margin-bottom:24px}.upload-section{display:flex;flex-direction:column;align-items:center;margin-bottom:24px;width:100%;max-width:400px}.album-row{display:flex;gap:8px;width:100%;margin-bottom:12px}.album-select{flex:1;padding:8px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;font-family:inherit;background:#fff;outline:none}.album-input{flex:1;padding:8px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;font-family:inherit;outline:none}.album-input:focus,.album-select:focus{border-color:#333}.grid-album{font-size:11px;color:#bbb;padding:4px 10px 0}.create-album{display:flex;gap:8px;width:100%;max-width:400px;margin-bottom:32px}.album-input-lg{flex:1;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit;outline:none}.album-input-lg:focus{border-color:#333}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;width:100%;max-width:960px}.album-card{text-decoration:none;border:1px solid #e8e8e8;border-radius:8px;overflow:hidden;background:#fff;transition:box-shadow .15s}.album-card-link{display:block;color:inherit;text-decoration:none}.album-cover-action{display:block;width:calc(100% - 24px);margin:0 12px 14px;padding:7px 10px;border:1px solid rgba(54,107,101,.36);border-radius:999px;background:transparent;color:#366b65;cursor:pointer;font:inherit;font-size:12px;font-weight:700}.album-cover-action:hover{background:#366b65;color:#fff}.album-cover-action:disabled{cursor:wait;opacity:.62}.album-card-actions{padding:0 12px 14px}.album-card-actions .album-cover-action{width:100%;margin:0}.album-owner-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.album-small-action{padding:7px 8px;border:1px solid rgba(117,97,82,.3);border-radius:999px;background:transparent;color:#756152;cursor:pointer;font:inherit;font-size:12px;font-weight:700}.album-small-action:hover{background:#7561521f}.album-small-action.danger{border-color:#a846376b;color:#a84637}.album-small-action.danger:hover{background:#a846371f}.album-small-action:disabled{cursor:wait;opacity:.62}.album-card:hover{box-shadow:0 2px 12px #00000014}.album-cover{aspect-ratio:1;background:#f5f5f5;display:flex;align-items:center;justify-content:center}.album-icon{font-size:36px}.album-info{padding:12px}.album-info h3{font-size:14px;font-weight:500;color:#333;margin-bottom:4px}.album-info p{font-size:12px;color:#bbb}.topbar .album-date{font-size:13px;color:#999}.upload-desc{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit;resize:none;outline:none;margin-bottom:12px;transition:border-color .15s}.upload-desc:focus{border-color:#333}.file-input{display:none}.upload-btn{display:inline-block;padding:10px 28px;background:#1a1a1a;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s}.upload-btn:hover{background:#333}.upload-btn.disabled{background:#999;cursor:not-allowed}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;width:100%;max-width:960px}.grid-item{position:relative;overflow:hidden;border-radius:6px;border:1px solid #e8e8e8;background:#fff}.grid-item a,.grid-media{display:block;width:100%;aspect-ratio:1;overflow:hidden}.grid-item img{width:100%;height:100%;object-fit:cover;display:block}.grid-item-video{background:#1a1a1a}.grid-video{width:100%;aspect-ratio:1;object-fit:cover;display:block}.grid-desc{font-size:12px;color:#999;padding:8px 10px 2px;line-height:1.5;word-break:break-all;cursor:pointer}.grid-desc.placeholder{color:#ccc;font-style:italic}.grid-date{font-size:11px;color:#bbb;padding:0 10px 8px}.desc-row{cursor:pointer}.edit-area{padding:8px 10px}.edit-input{width:100%;padding:6px 8px;border:1px solid #ddd;border-radius:4px;font-size:12px;font-family:inherit;resize:none;outline:none}.edit-input:focus{border-color:#333}.edit-actions{display:flex;gap:6px;margin-top:6px}.edit-btn{border:none;border-radius:4px;padding:3px 10px;font-size:12px;font-family:inherit;cursor:pointer}.edit-btn.save{background:#1a1a1a;color:#fff}.edit-btn.cancel{background:#eee;color:#666}.del-btn{position:absolute;top:6px;right:6px;z-index:10;width:24px;height:24px;border:none;border-radius:50%;background:#00000073;color:#fff;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.grid-item:hover .del-btn{opacity:1}.del-btn:hover{background:#dc3232cc}.comment-toggle{background:none;border:none;font-size:12px;color:#bbb;cursor:pointer;padding:2px 10px 4px;font-family:inherit}.comment-toggle:hover{color:#666}.comments{padding:0 10px 8px}.comment-item{margin-bottom:8px;font-size:12px;line-height:1.5}.comment-user{color:#444;font-weight:500}.comment-content{color:#555;word-break:break-word}.comment-date{color:#ccc;font-size:11px}.comment-del{background:none;border:none;color:#ccc;cursor:pointer;font-size:12px;padding:0;line-height:1}.comment-del:hover{color:#d44}.comment-input-row{display:flex;gap:6px;margin-top:6px}.comment-input{flex:1;padding:4px 8px;border:1px solid #ddd;border-radius:4px;font-size:12px;font-family:inherit;outline:none}.comment-input:focus{border-color:#333}.comment-submit{border:none;border-radius:4px;background:#1a1a1a;color:#fff;font-size:12px;padding:4px 10px;cursor:pointer;font-family:inherit}.comment-submit:disabled{background:#999;cursor:not-allowed}.admin-page{min-height:100vh;background:#f5ead8}.admin-shell{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;width:min(1280px,calc(100% - 40px));margin:0 auto;padding:32px 0 56px}.admin-sidebar,.admin-panel{border:1px solid rgba(83,56,38,.16);border-radius:8px;background:#fffaf3c7;box-shadow:0 16px 34px #452f1f1a}.admin-sidebar{align-self:start;position:sticky;top:92px;padding:18px}.admin-sidebar h2,.admin-panel-header h2{color:#6e4c37;font-family:Georgia,Times New Roman,serif}.admin-sidebar button{display:block;width:100%;margin-top:10px;padding:11px 13px;border:1px solid rgba(54,107,101,.22);border-radius:999px;background:transparent;color:#5f4e42;cursor:pointer;font:inherit;text-align:left}.admin-sidebar button.active,.admin-sidebar button:hover{background:#366b65;color:#fff}.admin-panel{min-width:0;padding:22px}.admin-batch-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px;padding:12px 14px;border:1px solid rgba(83,56,38,.14);border-radius:10px;background:#fffaf3b3}.admin-batch-meta,.admin-batch-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.admin-batch-toggle{display:inline-flex;align-items:center;gap:8px;color:#5f4e42;font-size:13px}.admin-batch-count{color:#8a7663;font-size:12px}.admin-batch-actions button{min-height:34px;padding:0 12px;border:1px solid rgba(54,107,101,.28);border-radius:999px;background:transparent;color:#366b65;cursor:pointer;font:inherit;font-weight:700}.admin-batch-actions button:hover{background:#366b651a}.admin-batch-actions button.danger{border-color:#a8463757;color:#a84637}.admin-batch-actions button:disabled{cursor:not-allowed;opacity:.45}.admin-panel-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px;border-bottom:1px solid rgba(113,82,55,.16);padding-bottom:14px}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;color:#5f4e42}.admin-table th,.admin-table td{padding:12px 10px;border-bottom:1px solid rgba(113,82,55,.14);text-align:left;vertical-align:top}.admin-table th{color:#6e4c37;font-size:12px;letter-spacing:.6px;text-transform:uppercase}.admin-table td>span:not(.user-identity){display:block;margin-top:4px;color:#8a7663;font-size:12px}.admin-empty-cell{color:#8a7663;text-align:center}.admin-member-identity{max-width:220px}.admin-edit-stack{display:grid;gap:8px}.admin-edit-stack input,.admin-table select{min-height:34px;border:1px solid rgba(92,66,47,.22);border-radius:6px;background:#ffffffb8;color:#5f4e42;font:inherit}.admin-role{display:inline-block;padding:4px 8px;border-radius:999px;background:#366b651f}.admin-role.admin{color:#a84637;background:#a846371f}.admin-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-actions button,.admin-danger-btn{min-height:34px;padding:0 12px;border:1px solid rgba(54,107,101,.28);border-radius:999px;background:transparent;color:#366b65;cursor:pointer;font:inherit;font-weight:700}.admin-actions button:hover{background:#366b651a}.admin-actions button.danger,.admin-danger-btn{border-color:#a8463757;color:#a84637}.admin-actions button:disabled{cursor:not-allowed;opacity:.45}.admin-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px}.admin-media-card{display:grid;gap:10px;padding:12px;border-radius:8px;background:#fffaf3;box-shadow:0 12px 24px #452f1f1f}.admin-media-card.selected{outline:2px solid rgba(54,107,101,.42);box-shadow:0 14px 28px #366b6529}.admin-card-check{display:inline-flex;align-items:center;gap:8px;color:#756152;font-size:12px}.admin-media-preview{aspect-ratio:1;overflow:hidden;border-radius:6px;background:#efe3d2}.admin-media-preview img,.admin-media-preview video{width:100%;height:100%;object-fit:cover}.admin-media-meta{display:grid;gap:3px;color:#5f4e42;font-size:13px}.admin-media-meta span,.admin-media-card p{color:#8a7663;font-size:12px}.admin-cover-thumb{width:54px;height:54px;object-fit:cover;border-radius:6px}@media (max-width: 820px){.admin-shell{display:block;width:min(100% - 24px,720px)}.admin-sidebar{position:static;margin-bottom:16px}.admin-sidebar button{display:inline-block;width:auto;margin-right:8px}.search-bar{grid-template-columns:1fr}.filter-toolbar-head{display:block}}.scrapbook-page{min-height:100vh;background:radial-gradient(circle at 16% 18%,rgba(193,85,76,.08),transparent 28%),radial-gradient(circle at 88% 12%,rgba(34,108,111,.09),transparent 30%),linear-gradient(135deg,#f7efe4,#efe5d6 46%,#d7e2dc);color:#372b23}.memory-topbar{position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(80,58,43,.14);background:#fffaf0e0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.memory-topbar h1{color:#31251f;font-family:Georgia,Times New Roman,serif;font-size:24px;letter-spacing:0}.eyebrow{color:#8c5f49;font-size:11px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase}.memory-content{align-items:stretch;padding:36px clamp(16px,4vw,48px) 56px}.album-book-shell{width:min(1180px,100%);margin:0 auto;filter:drop-shadow(0 28px 50px rgba(57,38,24,.18))}.book-spread{position:relative;display:grid;grid-template-columns:minmax(280px,.74fr) minmax(360px,1.26fr);min-height:640px;overflow:hidden;border:1px solid rgba(83,56,38,.18);border-radius:8px;background:#f9edda}.book-spread:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(90deg,transparent 48%,rgba(75,48,32,.18) 50%,transparent 52%),repeating-linear-gradient(0deg,rgba(96,65,41,.035) 0 1px,transparent 1px 34px);mix-blend-mode:multiply}.book-page{position:relative;padding:clamp(24px,4vw,48px);background:linear-gradient(90deg,rgba(255,255,255,.36),transparent 18%),radial-gradient(circle at 20% 8%,rgba(255,255,255,.58),transparent 24%),#fbf1df}.book-page-left{box-shadow:inset -28px 0 44px #4f32201f}.book-page-right{box-shadow:inset 28px 0 44px #4f32201a}.book-page-header{display:flex;align-items:center;justify-content:flex-start;gap:16px;margin-bottom:28px;color:#6e4c37;font-family:Georgia,Times New Roman,serif}.book-page-header span{font-size:clamp(26px,4vw,44px);line-height:1;white-space:nowrap}.book-page-header strong{min-width:54px;height:54px;display:grid;place-items:center;border:1px solid rgba(107,76,53,.24);border-radius:50%;background:#ffffff6b;font-size:22px}.create-album-note{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 96px auto;width:100%;max-width:none;margin:0 0 24px;padding:20px;transform:rotate(-1deg);border:1px solid rgba(159,111,61,.22);border-radius:4px;background:#fff7be;box-shadow:0 18px 26px #6345251f}.create-album-note:before{content:"";position:absolute;top:-10px;left:34px;width:86px;height:22px;transform:rotate(-6deg);background:#be7a5759}.filter-toolbar{display:grid;gap:12px;margin:0 0 24px;padding:16px;border:1px solid rgba(113,82,55,.16);border-radius:10px;background:#fffaf394}.filter-toolbar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.filter-toolbar-meta{min-width:0;display:flex;flex:1 1 auto}.filter-toolbar-text{min-width:0;display:grid;gap:4px}.filter-toolbar-title{color:#6e4c37;font-size:12px;font-weight:800;letter-spacing:1px;text-transform:uppercase}.filter-toolbar-count{display:block;color:#8a7663;font-size:12px}.filter-toolbar-body{display:grid;gap:10px}.search-bar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.search-input,.filter-select{min-height:42px;width:100%;padding:0 12px;border:1px solid rgba(92,66,47,.22);border-radius:8px;background:#ffffffbd;color:#5f4e42;font:inherit}.search-btn,.search-clear,.filter-reset-btn{flex:0 0 auto;min-height:42px;padding:0 14px;border:1px solid rgba(54,107,101,.24);border-radius:999px;background:#fffaf3a3;color:#366b65;cursor:pointer;font:inherit;font-weight:700;white-space:nowrap}.search-btn:hover,.search-clear:hover,.filter-reset-btn:hover{background:#366b651f}.album-input-lg,.album-year-select,.upload-desc,.upload-event,.comment-input,.edit-input{border-color:#5c422f38;background:#ffffffbd}.album-year-select{height:42px;padding:0 12px;border:1px solid rgba(92,66,47,.22);border-radius:6px;color:#5f4e42;font:inherit}.upload-btn,.comment-submit,.edit-btn.save,.save-btn-full{background:#366b65;color:#fff}.upload-btn:hover,.comment-submit:hover,.edit-btn.save:hover,.save-btn-full:hover{background:#254f4a}.album-polaroid-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-content:start;gap:24px 18px;max-width:none}.album-year-nav{margin-top:30px;padding-top:24px;border-top:1px solid rgba(113,82,55,.16)}.album-year-nav-title,.album-user-nav-title{margin-bottom:12px;color:#6e4c37;font-size:12px;font-weight:800;letter-spacing:1px;text-transform:uppercase}.album-year-list{display:grid;gap:10px}.album-year-btn{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;width:100%;min-height:42px;padding:9px 12px;border:1px solid rgba(54,107,101,.22);border-radius:999px;background:#fffaf3a3;color:#5f4e42;cursor:pointer;font:inherit;text-align:left;transition:border-color .16s ease,background .16s ease,color .16s ease}.album-year-btn:hover,.album-year-btn.active{border-color:#366b657a;background:#366b65;color:#fff}.album-year-btn strong{min-width:30px;height:26px;display:grid;place-items:center;border-radius:999px;background:#ffffff8a;color:inherit;font-size:12px}.album-user-nav{display:grid;gap:8px;margin-top:20px;padding-top:18px;border-top:1px dashed rgba(113,82,55,.18)}.album-user-nav button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:9px 12px;border:1px solid rgba(54,107,101,.22);border-radius:999px;background:#fffaf36b;color:#5f4e42;cursor:pointer;font:inherit;font-size:13px}.album-user-nav button:hover,.album-user-nav button.active{border-color:#366b657a;background:#366b65;color:#fff}.album-user-nav span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-user-nav .user-identity{flex:1 1 auto;overflow:hidden}.album-user-nav .user-identity-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-user-nav strong{min-width:30px;height:26px;display:grid;place-items:center;border-radius:999px;background:#ffffff8a;color:inherit;font-size:12px}.user-identity{display:inline-flex;align-items:center;gap:7px;min-width:0;color:inherit;vertical-align:middle}.user-identity-text{display:inline-flex;flex-direction:column;min-width:0}.user-identity-name{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;min-width:0;overflow-wrap:anywhere}.user-identity-meta{color:#8a7663;font-size:11px}.user-avatar{flex:0 0 auto;display:inline-grid;place-items:center;overflow:hidden;border-radius:50%;background:#366b65;color:#fff;box-shadow:0 2px 5px #452f1f2e;font-weight:800;line-height:1}.user-avatar img{width:100%;height:100%;object-fit:cover;display:block}.user-avatar-sm{width:22px;height:22px;font-size:10px}.user-avatar-md{width:30px;height:30px;font-size:13px}.user-avatar-lg{width:44px;height:44px;font-size:18px}.album-year-sections,.album-year-user-sections{display:flex;flex-direction:column}.album-year-sections{gap:42px}.album-year-user-sections{gap:28px}.album-year-section,.album-user-section{scroll-margin-top:110px}.album-year-heading,.album-user-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid rgba(113,82,55,.16);color:#6e4c37}.album-user-heading p{margin:0 0 4px;color:#8a7663;font-size:11px;font-weight:700;text-transform:uppercase}.album-year-heading h2,.album-user-heading h2{color:#6e4c37;font-family:Georgia,Times New Roman,serif;font-size:clamp(30px,4vw,52px);line-height:1}.album-year-heading span,.album-user-heading>span{color:#8a7663;font-size:13px}.album-user-heading h2{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.album-user-heading .admin-badge{margin-left:0;font-family:inherit}.album-year-grid,.album-user-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.album-polaroid{transform:rotate(var(--photo-tilt));border:none;border-radius:3px;background:#fffaf3;box-shadow:0 16px 28px #452f1f29;transition:transform .18s ease,box-shadow .18s ease}.album-polaroid:nth-child(3n+2){margin-top:22px}.album-polaroid:nth-child(4n){margin-top:8px}.album-polaroid:hover{transform:rotate(0) translateY(-8px);box-shadow:0 22px 34px #452f1f3d}.album-cover{margin:10px 10px 0;border:1px solid rgba(67,48,36,.08);background:linear-gradient(135deg,#366b6533,#c655481f),repeating-linear-gradient(45deg,rgba(255,255,255,.34) 0 8px,transparent 8px 18px);overflow:hidden}.album-cover-img{width:100%;height:100%;object-fit:cover;display:block}.album-icon{display:grid;place-items:center;width:72px;height:42px;border:1px solid rgba(56,42,33,.28);color:#6b4a36;font-size:11px;font-weight:800;letter-spacing:1.6px}.album-info{min-height:92px;padding:12px 14px 16px}.album-info h3{color:#33251f;font-family:Georgia,Times New Roman,serif;font-size:17px;line-height:1.25}.album-info p,.album-owner,.user-tag,.text-btn{color:#756152}.admin-badge{color:#a84637;border-color:#a846377a}@media (max-width: 820px){.memory-topbar{padding:14px 18px}.book-spread{display:block;min-height:auto}.book-spread:before{background:repeating-linear-gradient(0deg,rgba(96,65,41,.035) 0 1px,transparent 1px 32px)}.book-page-left,.book-page-right{box-shadow:none}.book-page{padding:22px}.create-album-note{grid-template-columns:1fr}.album-year-nav{margin-top:22px;padding-top:18px}.album-year-list,.album-user-nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.album-user-nav button{flex:0 0 auto;width:auto;min-width:118px}.album-year-btn{flex:0 0 auto;width:auto;min-width:96px}.album-year-sections{gap:34px}.album-year-grid,.album-user-grid{grid-template-columns:repeat(auto-fill,minmax(142px,1fr))}}html{scroll-behavior:smooth}.album-detail-content{position:relative}.album-title-block{text-align:center}.album-title-block h1{max-width:48vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-book-shell{width:min(1280px,100%)}.detail-spread{grid-template-columns:minmax(300px,.44fr) minmax(520px,1.56fr);min-height:720px}.upload-page{position:sticky;top:84px;align-self:start;min-height:720px}.upload-note{position:relative;width:100%;max-width:none;padding:20px;align-items:stretch;transform:rotate(-1.5deg);border:1px solid rgba(159,111,61,.22);border-radius:4px;background:#fff7be;box-shadow:0 18px 26px #6345251f}.upload-note:before{content:"";position:absolute;top:-11px;right:32px;width:92px;height:24px;transform:rotate(7deg);background:#366b6540}.upload-note .upload-btn{text-align:center}.memories-page{display:flex;flex-direction:column;gap:34px}.memory-year-section{scroll-margin-top:110px;display:grid;gap:24px}.year-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:18px;border-bottom:1px solid rgba(113,82,55,.16);color:#6e4c37}.year-heading h2{color:#6e4c37;font-family:Georgia,Times New Roman,serif;font-size:clamp(30px,4vw,54px);line-height:1}.year-heading span{color:#8a7663;font-size:13px}.media-batch-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid rgba(113,82,55,.14);border-radius:10px;background:#fffaf394}.media-batch-meta,.media-batch-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.media-batch-toggle{display:inline-flex;align-items:center;gap:8px;color:#5f4e42;font-size:13px}.media-batch-count{color:#8a7663;font-size:12px}.media-batch-actions button{min-height:34px;padding:0 12px;border:1px solid rgba(54,107,101,.28);border-radius:999px;background:transparent;color:#366b65;cursor:pointer;font:inherit;font-weight:700}.media-batch-actions button:hover{background:#366b651a}.media-batch-actions button:disabled{cursor:not-allowed;opacity:.45}.media-type-section{display:grid;gap:14px}.media-type-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:10px;border-bottom:1px solid rgba(113,82,55,.16);color:#6e4c37}.media-type-title{display:flex;align-items:center;gap:8px}.media-type-title strong{color:#6e4c37;font-size:14px;font-weight:700}.media-type-heading>span{color:#8a7663;font-size:13px}.media-type-icon{position:relative;display:inline-block;flex:0 0 auto}.media-type-icon-photo{width:18px;height:14px;border:1.5px solid rgba(54,107,101,.48);border-radius:4px;background:#366b6514}.media-type-icon-photo:before{content:"";position:absolute;top:3px;right:3px;width:4px;height:4px;border-radius:50%;background:#366b65}.media-type-icon-photo:after{content:"";position:absolute;left:3px;bottom:2px;width:10px;height:6px;background:#366b65;clip-path:polygon(0 100%,38% 26%,60% 58%,78% 40%,100% 100%)}.media-type-icon-video{width:18px;height:12px;border:1.5px solid rgba(189,89,74,.5);border-radius:4px;background:#bd594a14}.media-type-icon-video:before{content:"";position:absolute;top:2px;left:6px;width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:6px solid #bd594a}.scrapbook-grid{grid-template-columns:repeat(auto-fill,minmax(178px,1fr));align-items:start;gap:24px 18px;max-width:none}.scrapbook-photo{position:relative;transform:rotate(var(--photo-tilt));overflow:visible;border:none;border-radius:3px;background:#fffaf3;box-shadow:0 16px 28px #452f1f29;transition:transform .18s ease,box-shadow .18s ease}.scrapbook-photo:nth-child(4n+2){margin-top:22px}.scrapbook-photo:hover{transform:rotate(0) translateY(-8px);box-shadow:0 24px 34px #452f1f38}.media-preview-btn{position:relative;display:block;padding:0;border:none;background:transparent;cursor:pointer;font:inherit}.scrapbook-photo .media-preview-btn{margin:10px 10px 0;width:calc(100% - 20px);aspect-ratio:1;overflow:hidden;border:1px solid rgba(67,48,36,.08);background:#efe3d2}.scrapbook-photo .media-preview-btn img,.scrapbook-photo .media-preview-btn .grid-video{width:100%;height:100%;object-fit:cover;display:block}.video-play-mark{position:absolute;inset:auto 12px 12px auto;padding:5px 9px;border-radius:999px;background:#241c17b8;color:#fff;font-size:11px}.scrapbook-photo .grid-desc{color:#5f4e42;font-size:12px}.media-select-check{position:absolute;top:14px;left:14px;z-index:4;display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;background:#fffaf3e6;box-shadow:0 6px 12px #452f1f24;color:#5f4e42;font-size:11px;font-weight:700}.media-download-btn{display:block;width:calc(100% - 28px);margin:12px 14px 14px;padding:7px 10px;border:1px solid rgba(54,107,101,.28);border-radius:999px;background:#fffaf3b8;color:#366b65;cursor:pointer;font:inherit;font-size:12px;font-weight:700}.media-download-btn:hover{background:#366b65;color:#fff}.scrapbook-photo .grid-date,.scrapbook-photo .media-user,.comment-toggle{color:#8a7663}.year-bookmarks{position:fixed;top:128px;right:0;z-index:30;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.year-bookmark{display:block;min-width:76px;padding:9px 13px 9px 16px;border-radius:6px 0 0 6px;background:#bd594a;color:#fff;font-size:13px;font-weight:700;text-decoration:none;box-shadow:0 12px 20px #4d2e1f2e;transform:translate(10px);transition:transform .16s ease,background .16s ease}.year-bookmark:nth-child(2n){background:#366b65}.year-bookmark:nth-child(3n){background:#8b6f45}.year-bookmark:hover{transform:translate(0);color:#fff}.empty-memory{margin:auto;color:#8a7663}@media (max-width: 1020px){.detail-spread{display:block}.upload-page{position:relative;top:auto;min-height:auto}.year-bookmarks{position:sticky;top:76px;right:auto;flex-direction:row;justify-content:flex-start;width:100%;margin:0 auto 14px;overflow-x:auto}.year-bookmark{min-width:auto;border-radius:999px;transform:none;white-space:nowrap}.album-title-block h1{max-width:54vw}}@media (max-width: 620px){.album-title-block h1{max-width:36vw;font-size:17px}.scrapbook-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}}.media-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:24px}.media-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:radial-gradient(circle at 50% 38%,rgba(255,242,213,.16),transparent 28%),#1a1411b8;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);cursor:pointer}.memory-draw-card{position:relative;z-index:1;display:grid;grid-template-columns:minmax(280px,1.1fr) minmax(260px,.72fr);width:min(1060px,100%);max-height:min(86vh,820px);overflow:hidden;border:10px solid #fffaf3;border-radius:8px;background:#fffaf3;box-shadow:0 34px 90px #0000006b;animation:drawCardIn .26s ease-out}@keyframes drawCardIn{0%{opacity:0;transform:translateY(26px) scale(.94) rotate(-2deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}.modal-media-frame{min-height:420px;max-height:calc(86vh - 20px);display:grid;place-items:center;overflow:hidden;background:#1f1915}.modal-image,.modal-video{width:100%;height:100%;max-height:calc(86vh - 20px);object-fit:contain;display:block}.modal-memory-details{min-height:0;overflow-y:auto;padding:24px;background:repeating-linear-gradient(0deg,transparent 0 31px,rgba(128,92,59,.12) 31px 32px),#fff7e6}.modal-description{width:100%;padding:0;border:0;background:transparent;color:#403127;cursor:pointer;font-family:Georgia,Times New Roman,serif;font-size:clamp(22px,3vw,34px);line-height:1.22;text-align:left}.modal-description:hover{color:#8b3d32}.modal-meta{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.modal-meta>span,.modal-meta>.modal-user-identity{padding:6px 10px;border-radius:999px;background:#366b651f;color:#366b65;font-size:12px;font-weight:700}.modal-user-identity{max-width:100%}.modal-comments{margin-top:8px;padding-top:10px;border-top:1px solid rgba(108,76,54,.16)}.modal-set-cover,.modal-download{margin-top:12px;border:1px solid rgba(54,107,101,.4);border-radius:999px;background:transparent;color:#366b65;cursor:pointer;padding:8px 12px;font:inherit;font-size:13px}.modal-download:hover,.modal-set-cover:hover{background:#366b65;color:#fff}.modal-delete{margin-top:18px;border:1px solid rgba(168,70,55,.42);border-radius:999px;background:transparent;color:#a84637;cursor:pointer;padding:8px 12px;font:inherit;font-size:13px}.modal-close,.modal-nav{position:absolute;z-index:3;border:0;cursor:pointer;color:#fff;background:#1f1814a3;box-shadow:0 10px 22px #0000003d}.modal-close{top:14px;right:14px;width:34px;height:34px;border-radius:50%;font-size:16px}.modal-nav{top:50%;width:42px;height:56px;transform:translateY(-50%);border-radius:999px;font-size:38px;line-height:1}.modal-prev{left:16px}.modal-next{right:16px}.modal-edit-area{padding:0}.modal-edit-area .edit-input{min-height:110px;font-size:16px}@media (max-width: 760px){.media-modal{padding:12px}.memory-draw-card{grid-template-columns:1fr;max-height:92vh}.modal-media-frame{min-height:280px;max-height:54vh}.modal-memory-details{max-height:38vh}.modal-nav{width:36px;height:48px;font-size:30px}}.health-card{display:flex;align-items:center;gap:10px;margin-top:16px;padding:12px 24px;background:#fff;border:1px solid #e8e8e8;border-radius:8px;font-size:15px;color:#333}.dot{width:10px;height:10px;border-radius:50%;background:#ccc}.dot-ok{background:#4caf50}.dot-err{background:#f44336}.media-user{font-size:11px;color:#bbb;padding:0 10px 4px}.album-owner{font-size:11px;color:#bbb;margin-top:2px}.album-owner,.media-user{max-width:100%}.user-tag{font-size:13px;color:#888;text-decoration:none}.user-tag:hover{color:#333}.view-toggle{display:flex;gap:8px;margin-bottom:16px;width:100%;max-width:960px}.view-btn{border:1px solid #ddd;border-radius:6px;background:#fff;padding:6px 16px;font-size:13px;font-family:inherit;cursor:pointer;color:#888;transition:all .15s}.view-btn.active{border-color:#333;color:#333;font-weight:500}.view-btn:hover{border-color:#999}.section-title{margin:24px 0 16px;font-size:16px;font-weight:600;color:#333;width:100%;max-width:960px}.section-subtitle{font-size:13px;font-weight:500;color:#888;margin:0 0 8px;width:100%;max-width:960px}.timeline{display:flex;flex-direction:column;gap:24px;width:100%;max-width:960px}.timeline-group{border-top:1px solid #eee;padding-top:12px}.timeline-date{font-size:14px;color:#666;margin-bottom:12px;font-weight:500}.upload-event{width:100%;padding:8px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;font-family:inherit;outline:none;margin-bottom:12px;color:#666}.upload-event:focus{border-color:#333}.comment-main{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-bottom:2px}.comment-main .comment-content{order:2;flex:0 0 100%;width:100%;min-width:0;line-height:1.55;overflow-wrap:anywhere;word-break:break-word}.comment-main .comment-user,.comment-main .comment-date,.comment-main .comment-reply-btn,.comment-main .comment-del{order:1;flex:0 0 auto}.comment-main .comment-user{max-width:100%;overflow-wrap:anywhere}.comment-user .user-avatar-sm{width:18px;height:18px;font-size:9px}.comment-reply-btn{background:none;border:none;color:#bbb;font-size:11px;cursor:pointer;padding:0;font-family:inherit}.comment-reply-btn:hover{color:#555}.comment-replies{margin-left:16px;border-left:2px solid #eee;padding-left:8px}.comment-nested{margin-bottom:0}.comment-reply-row{margin-left:0;margin-top:2px}.comment-empty{font-size:12px;color:#ccc;padding:4px 0}.admin-badge{display:inline-block;font-size:10px;color:#d44;border:1px solid #d44;border-radius:3px;padding:0 4px;margin-left:4px;vertical-align:middle;line-height:1.4}.status-text{font-size:14px;color:#888;margin-bottom:12px}.status-text.error{color:#d44}.status-text.success{color:#4caf50}.app-dialog-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;padding:20px}.app-dialog-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:radial-gradient(circle at 50% 24%,rgba(255,245,223,.16),transparent 30%),#221a159e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer}.app-dialog-card{position:relative;z-index:1;width:min(520px,100%);padding:28px;border:1px solid rgba(83,56,38,.18);border-radius:22px;background:linear-gradient(155deg,#fffbf4fa,#f7eee0fa),#fffaf2;box-shadow:0 24px 60px #20161042,inset 0 1px #ffffffc2;animation:appDialogEnter .22s ease-out}.app-dialog-card.danger{background:linear-gradient(155deg,#fff8f4fa,#fbeee9fa),#fff8f4}@keyframes appDialogEnter{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.app-dialog-close{position:absolute;top:14px;right:14px;width:34px;height:34px;border:0;border-radius:50%;background:#4f3a2b14;color:#6e4c37;cursor:pointer;font:inherit;font-size:20px;line-height:1}.app-dialog-close:hover{background:#4f3a2b29}.app-dialog-head{padding-right:40px}.app-dialog-eyebrow{margin-bottom:6px;color:#8c5f49;font-size:11px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase}.app-dialog-head h2{color:#31251f;font-family:Georgia,Times New Roman,serif;font-size:clamp(26px,4vw,34px);line-height:1.08}.app-dialog-body{display:grid;gap:16px;margin-top:18px}.app-dialog-copy{color:#5f4e42;font-size:15px;line-height:1.7}.app-dialog-note{padding:12px 14px;border:1px dashed rgba(168,70,55,.28);border-radius:14px;background:#a846370d;color:#8a5f52;font-size:13px;line-height:1.6}.app-dialog-field{display:grid;gap:8px;color:#6e4c37;font-size:12px;font-weight:800;letter-spacing:.8px;text-transform:uppercase}.app-dialog-input{min-height:48px;padding:0 14px;border:1px solid rgba(92,66,47,.22);border-radius:12px;background:#ffffffd6;color:#3f2f24;font:inherit}.app-dialog-input:focus{outline:none;border-color:#366b659e;box-shadow:0 0 0 4px #366b651f}.app-dialog-error{padding:10px 12px;border-radius:12px;background:#a8463717;color:#a84637;font-size:13px}.app-dialog-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.app-dialog-btn{min-width:104px;min-height:42px;padding:0 16px;border-radius:999px;cursor:pointer;font:inherit;font-weight:700}.app-dialog-btn.subtle{border:1px solid rgba(117,97,82,.24);background:transparent;color:#756152}.app-dialog-btn.subtle:hover{background:#75615214}.app-dialog-btn.primary{border:1px solid rgba(54,107,101,.22);background:#366b65;color:#fff}.app-dialog-btn.primary:hover{background:#254f4a}.app-dialog-btn.danger{border:1px solid rgba(168,70,55,.28);background:#a84637;color:#fff}.app-dialog-btn.danger:hover{background:#89382d}.app-dialog-btn:disabled,.app-dialog-close:disabled{cursor:wait;opacity:.58}@media (max-width: 620px){.app-dialog-layer{padding:12px}.app-dialog-card{padding:22px 18px 18px;border-radius:18px}.app-dialog-footer{display:grid;grid-template-columns:1fr 1fr}.app-dialog-btn{width:100%}}
