/* ═══════════════════════════════════════
   共享样式 - 边城旧事
   ═══════════════════════════════════════ */

/* Reset & Variables */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --gold:#c8a45c;--gold-l:#e0c070;--gold-d:#a88a3c;--gold-a:rgba(200,164,92,.12);
  --red:#c4463a;--jade:#5a8a6a;--jade-l:#7ab08a;
  --ink:#1c2a23;--ink-l:#2c3e35;--ink-m:#5a6e63;--ink-s:#8a9a91;
  --paper:#f8f5f0;--paper-w:#f3efe8;--paper-d:#ebe5da;
  --border:#ddd5c8;
  --r:6px;--r-sm:8px;--r-lg:12px;--r-xl:16px;
  --t:.3s cubic-bezier(.25,.46,.45,.94);
  --shadow-sm:0 1px 4px rgba(28,42,35,.06);
  --shadow:0 2px 12px rgba(28,42,35,.08),0 1px 3px rgba(0,0,0,.04);
  --shadow-md:0 4px 20px rgba(28,42,35,.1),0 2px 6px rgba(0,0,0,.04);
  --shadow-lg:0 8px 32px rgba(28,42,35,.12),0 4px 12px rgba(0,0,0,.04);
}

html{font-size:16px;scroll-behavior:smooth}
body{font:16px/1.8 'Noto Sans SC',sans-serif;color:#333;background:#f5f5f5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
input,button,textarea,select{font:inherit}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{cursor:pointer}

/* App Header - 共享 */
.app-header{position:fixed;top:0;left:0;right:0;z-index:100;height:60px;background:rgba(255,255,255,.98);backdrop-filter:blur(20px);border-bottom:1px solid #e8e8e8;display:flex;align-items:center;padding:0 24px;box-shadow:0 2px 12px rgba(0,0,0,.05)}
.app-logo{display:flex;align-items:center;gap:10px;margin-right:40px}
.app-logo svg{width:32px;height:32px}
.app-logo span{font-family:'Noto Serif SC',serif;font-size:15px;font-weight:700;color:#333;letter-spacing:.06em}
.app-nav{display:flex;gap:4px;flex:1}
.app-nav a{padding:8px 16px;font-size:13px;color:#666;border-radius:var(--r-sm);transition:var(--t);letter-spacing:.04em}
.app-nav a:hover{color:#333;background:#f0f0f0}
.app-nav a.active{color:var(--gold);background:rgba(200,164,92,.1)}
.app-right{display:flex;align-items:center;gap:12px}
.app-back{padding:8px 16px;font-size:12px;color:#666;border:1px solid #e0e0e0;border-radius:var(--r-sm);cursor:pointer;transition:var(--t);background:transparent;display:flex;align-items:center;gap:6px}
.app-back:hover{border-color:var(--gold);color:var(--gold)}

/* Main Content */
.app-main{padding-top:60px;min-height:100vh}

/* Auth Screen */
.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:#f5f5f5}
.auth-card{background:#fff;border:1px solid #e8e8e8;border-radius:var(--r-lg);width:100%;max-width:420px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.08)}
.auth-header{padding:40px 40px 20px;text-align:center}
.auth-logo{width:64px;height:64px;margin:0 auto 16px;background:linear-gradient(135deg,var(--gold),var(--gold-l));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;color:#fff;font-weight:700;font-family:'Noto Serif SC',serif}
.auth-title{font-size:24px;color:#333;margin-bottom:8px}
.auth-subtitle{font-size:14px;color:#999}
.auth-body{padding:20px 40px 40px}
.auth-tabs{display:flex;margin-bottom:24px;background:#f5f5f5;padding:4px;border-radius:100px;border:1px solid #e8e8e8}
.auth-tab{flex:1;padding:10px;text-align:center;font-size:13px;color:#999;cursor:pointer;transition:var(--t);border-radius:100px;border:none;background:transparent}
.auth-tab:hover{color:#333}
.auth-tab.active{color:#fff;background:linear-gradient(135deg,var(--gold),var(--gold-l))}
.auth-form{display:none}
.auth-form.active{display:block}

/* Form Elements */
.form-group{margin-bottom:16px}
.form-label{display:block;font-size:12px;color:#999;margin-bottom:6px}
.form-input{width:100%;padding:12px 14px;border:1px solid #e0e0e0;border-radius:var(--r-sm);font-size:13px;background:#fff;color:#333;transition:var(--t)}
.form-input:focus{outline:none;border-color:var(--gold)}
.form-input::placeholder{color:#ccc}
.form-error{font-size:11px;color:var(--red);margin-top:4px;display:none}
.form-error.show{display:block}

/* Buttons */
.btn{padding:6px 14px;font-size:12px;border:none;cursor:pointer;transition:var(--t);border-radius:var(--r-sm);display:inline-flex;align-items:center;gap:4px;font-weight:500}
.btn-primary{background:linear-gradient(135deg,var(--gold),var(--gold-l));color:#fff}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(200,164,92,.3)}
.btn-outline{background:transparent;color:#666;border:1px solid #e0e0e0}
.btn-outline:hover{border-color:var(--gold);color:var(--gold)}
.btn-danger{background:var(--red);color:#fff}
.btn-danger:hover{opacity:.9}
.btn-sm{padding:4px 8px;font-size:11px}

/* Cards */
.card{background:#fff;border-radius:var(--r-lg);border:1px solid #e8e8e8;margin-bottom:16px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.card-header{padding:12px 16px;border-bottom:1px solid #f0f0f0;display:flex;align-items:center;justify-content:space-between}
.card-title{font-size:14px;font-weight:600}
.card-body{padding:16px}

/* Badges */
.badge{display:inline-block;padding:2px 8px;font-size:11px;border-radius:100px;font-weight:500}
.badge-success{background:#f6ffed;color:#52c41a}
.badge-warning{background:#fffbe6;color:#faad14}
.badge-error{background:#fff2f0;color:var(--red)}
.badge-info{background:#e6f7ff;color:#1890ff}
.badge-gold{background:rgba(200,164,92,.1);color:var(--gold)}

/* Tables */
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid #f0f0f0;font-size:13px}
th{background:#fafafa;font-weight:600;color:#333}
td{color:#666}
tr:hover td{background:#fafafa}

/* Modals */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:200;opacity:0;visibility:hidden;transition:var(--t)}
.modal-overlay.active{opacity:1;visibility:visible}
.modal{background:#fff;border-radius:var(--r-lg);width:90%;max-width:500px;max-height:80vh;display:flex;flex-direction:column;transform:translateY(20px);transition:transform .3s;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.modal-overlay.active .modal{transform:translateY(0)}
.modal-header{padding:12px 16px;border-bottom:1px solid #f0f0f0;display:flex;align-items:center;justify-content:space-between}
.modal-title{font-size:15px;font-weight:600}
.modal-close{background:none;border:none;font-size:18px;color:#999;cursor:pointer}
.modal-close:hover{color:var(--red)}
.modal-body{flex:1;overflow-y:auto;padding:16px}
.modal-footer{padding:10px 16px;border-top:1px solid #f0f0f0;display:flex;justify-content:flex-end;gap:8px}

/* Toast */
.toast{position:fixed;top:20px;right:20px;background:#fff;border-radius:var(--r-sm);padding:10px 16px;box-shadow:0 4px 12px rgba(0,0,0,.15);display:flex;align-items:center;gap:8px;z-index:999;transform:translateX(120%);transition:transform .3s}
.toast.show{transform:translateX(0)}
.toast-icon{font-size:16px}
.toast-icon.success{color:var(--jade)}
.toast-icon.error{color:var(--red)}

/* Loading */
.loading{display:inline-block;width:16px;height:16px;border:2px solid #fff;border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.btn.loading{opacity:.7;pointer-events:none}

/* Filters */
.filters{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.filter-btn{padding:5px 12px;font-size:12px;border:1px solid #d9d9d9;background:#fff;border-radius:100px;cursor:pointer;transition:var(--t)}
.filter-btn:hover{border-color:var(--gold);color:var(--gold)}
.filter-btn.active{background:var(--gold);border-color:var(--gold);color:#fff}

/* Section Tabs */
.section-tabs{display:flex;gap:4px;margin-bottom:24px;background:#fff;padding:4px;border-radius:100px;border:1px solid #e8e8e8;width:fit-content;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.section-tab{padding:10px 20px;font-size:13px;color:#999;cursor:pointer;transition:var(--t);border-radius:100px;border:none;background:transparent}
.section-tab:hover{color:#333}
.section-tab.active{color:#fff;background:linear-gradient(135deg,var(--gold),var(--gold-l))}
.section-tab i{margin-right:6px;font-size:12px}

/* Profile Header */
.profile-header{background:#fff;padding:40px 24px 30px;border-bottom:1px solid #e8e8e8}
.profile-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:24px}
.profile-avatar{width:80px;height:80px;background:linear-gradient(135deg,var(--gold),var(--gold-l));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;color:#fff;font-weight:700;font-family:'Noto Serif SC',serif;box-shadow:0 8px 24px rgba(200,164,92,.2);position:relative}
.profile-avatar-edit{position:absolute;bottom:0;right:0;width:28px;height:28px;background:#fff;border:2px solid #e0e0e0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;color:#666;cursor:pointer;transition:var(--t)}
.profile-avatar-edit:hover{background:var(--gold);color:#fff;border-color:var(--gold)}
.profile-info{flex:1}
.profile-info h1{font-size:24px;color:#333;margin-bottom:4px}
.profile-info p{font-size:13px;color:#999}
.profile-stats{display:flex;gap:24px;margin-top:12px}
.profile-stat{text-align:center}
.profile-stat .num{font-family:'Noto Serif SC',serif;font-size:20px;font-weight:700;color:var(--gold)}
.profile-stat .lbl{font-size:11px;color:#999}
.profile-actions{display:flex;gap:8px}
.profile-btn{padding:8px 16px;font-size:12px;border:none;cursor:pointer;transition:var(--t);border-radius:var(--r-sm);font-weight:500}
.profile-btn-primary{background:linear-gradient(135deg,var(--gold),var(--gold-l));color:#fff}
.profile-btn-outline{background:transparent;color:#666;border:1px solid #e0e0e0}
.profile-btn-outline:hover{border-color:var(--gold);color:var(--gold)}

/* Content Area */
.content-area{max-width:1200px;margin:0 auto;padding:24px}

/* Slide Panel */
.slide-panel{position:fixed;top:0;right:-460px;width:440px;max-width:92vw;height:100vh;background:#fff;box-shadow:-4px 0 20px rgba(0,0,0,.08);z-index:1200;transition:right .3s ease;overflow-y:auto}
.slide-panel.open{right:0}
.slide-panel-overlay{position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:1199;display:none}
.slide-panel-overlay.show{display:block}
.slide-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);position:sticky;top:0;background:#fff;z-index:1}
.slide-panel-header h3{font-size:16px;color:var(--ink)}
.slide-panel-header button{width:32px;height:32px;border:1px solid var(--border);background:#f9f9f9;border-radius:50%;cursor:pointer;font-size:14px;color:var(--ink-m);transition:var(--t)}
.slide-panel-header button:hover{background:var(--red-a,#fce4e4);border-color:var(--red);color:var(--red)}
.slide-panel-body{padding:20px}
.slide-panel-body .row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #f5f5f5;font-size:13px}
.slide-panel-body .row .lbl{color:var(--ink-m)}
.slide-panel-body .row .val{color:var(--ink);font-weight:500}

/* Responsive */
@media(max-width:768px){
  .app-header{padding:0 16px}
  .app-logo{margin-right:20px}
  .app-nav{display:none}
  .content-area{padding:16px}
  .profile-inner{flex-direction:column;text-align:center}
  .profile-stats{justify-content:center}
}
