@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif:wght@400;700;900&family=Inter:wght@400;500;600&family=Public+Sans:wght@300;400;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap');

:root {
  --primary: #094cb2;
  --primary-container: #3366cc;
  --primary-fixed: #d9e2ff;
  --on-primary: #fff;
  --on-primary-container: #e7ebff;
  --surface: #faf9fa;
  --surface-dim: #dbdadb;
  --surface-container: #efedee;
  --surface-container-low: #f5f3f4;
  --surface-container-high: #e9e8e9;
  --surface-container-highest: #e3e2e3;
  --surface-container-lowest: #fff;
  --on-surface: #1b1c1d;
  --on-surface-variant: #434653;
  --outline: #737784;
  --outline-variant: #c3c6d5;
  --tertiary: #6d5e00;
  --tertiary-fixed: #f9e37a;
  --secondary-container: #dfe3e8;
  --on-secondary-container: #606569;
  --error: #ba1a1a;
}
*{margin:0;padding:0;box-sizing:border-box;}
html,body{
  height:100%;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  color:var(--on-surface);background:var(--surface);-webkit-font-smoothing:antialiased;
}
a{text-decoration:none;color:inherit;}
img{max-width:100%;border:0;}
ul,li{list-style:none;}
input,select,button{font-family:inherit;outline:none;}
.material-symbols-outlined{font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;}

/* ===== Top Bar ===== */
.alex-topbar{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:center;
  height:56px;padding:0 16px;
  background:rgba(248,250,252,0.85);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
}
.alex-topbar-back{
  position:absolute;left:12px;width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;color:var(--primary);background:none;border:none;cursor:pointer;
}
.alex-topbar-back:hover{background:rgba(9,76,178,0.06);}
.alex-topbar-title{
  font-family:'Public Sans',sans-serif;font-weight:600;
  font-size:16px;color:var(--on-surface);
}

/* ===== Page Container ===== */
.alex-page{
  padding:68px 16px 0;max-width:640px;margin:0 auto;
  display:flex;flex-direction:column;gap:20px;
}

/* Bottom Nav: now rendered by bottom-nav.js */

/* ===== Section Header ===== */
.alex-sec-title{
  font-family:'Noto Serif',serif;font-size:22px;font-weight:700;
  border-left:4px solid var(--primary);padding-left:14px;
  color:var(--on-surface);margin-bottom:16px;
}

/* ===== Project Card (列表页) ===== */
.alex-card{
  background:var(--surface-container-lowest);border-radius:16px;
  overflow:hidden;box-shadow:0 2px 15px -3px rgba(0,0,0,0.07);
  display:block;text-decoration:none;color:inherit;transition:transform 0.2s;
}
.alex-card:active{transform:scale(0.985);}
.alex-card+.alex-card{margin-top:16px;}
.alex-card-img{height:180px;position:relative;overflow:hidden;background:var(--surface-dim);}
.alex-card-img img{width:100%;height:100%;object-fit:cover;display:block;}
.alex-card-badge{
  position:absolute;top:12px;left:12px;padding:4px 12px;
  background:var(--primary);color:#fff;
  font-family:'Public Sans',sans-serif;font-size:10px;font-weight:700;
  text-transform:uppercase;letter-spacing:0.12em;border-radius:50px;
}
.alex-card-sold{position:absolute;bottom:10px;right:10px;width:60px;height:60px;}
.alex-card-sold img{width:100%;height:100%;object-fit:contain;}
.alex-card-body{padding:20px;display:flex;flex-direction:column;gap:16px;}
.alex-card-title{
  font-family:'Noto Serif',serif;font-size:18px;font-weight:700;
  line-height:1.4;color:var(--on-surface);
}
.alex-card-meta{font-size:12px;color:var(--on-surface-variant);}
.alex-card-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
.alex-stat{display:flex;flex-direction:column;gap:2px;text-align:center;}
.alex-stat-val{
  font-family:'Noto Serif',serif;font-size:18px;font-weight:900;color:var(--primary);
}
.alex-stat-val.red{color:#dc2626;}
.alex-stat-label{font-size:11px;color:var(--outline);font-weight:500;}
/* Progress */
.alex-progress-wrap{display:flex;flex-direction:column;gap:6px;}
.alex-progress-row{display:flex;justify-content:space-between;font-size:12px;font-weight:600;}
.alex-progress-row .l{color:var(--on-surface-variant);}
.alex-progress-row .r{color:var(--primary);}
.alex-progress-track{
  height:6px;width:100%;background:var(--surface-container-highest);
  border-radius:50px;overflow:hidden;
}
.alex-progress-fill{
  height:100%;border-radius:50px;
  background:linear-gradient(to right,var(--primary),var(--primary-container));
}
/* CTA */
.alex-cta{
  display:block;width:100%;padding:14px;text-align:center;
  font-size:15px;font-weight:700;color:#fff;border:none;border-radius:12px;
  cursor:pointer;background:linear-gradient(135deg,var(--primary),var(--primary-container));
  transition:transform 0.15s;
}
.alex-cta:active{transform:scale(0.98);}
.alex-cta.ghost{background:var(--surface-container-high);color:var(--primary);}

/* ===== Detail Page ===== */
.alex-detail-hero{border-radius:16px;overflow:hidden;background:var(--surface-dim);}
.alex-detail-hero img{width:100%;display:block;aspect-ratio:16/9;object-fit:cover;}
.alex-detail-header{display:flex;flex-direction:column;gap:8px;}
.alex-detail-title{
  font-family:'Noto Serif',serif;font-size:22px;font-weight:700;
  line-height:1.3;color:var(--on-surface);
}
.alex-detail-grid{
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;
  padding:16px;background:var(--surface-container-low);border-radius:14px;
}
.alex-detail-stat{display:flex;flex-direction:column;align-items:center;gap:4px;}
.alex-detail-stat-val{
  font-family:'Noto Serif',serif;font-size:20px;font-weight:900;color:var(--primary);
}
.alex-detail-stat-label{font-size:11px;color:var(--outline);font-weight:500;}
/* Info rows */
.alex-info-list{
  display:flex;flex-direction:column;gap:0;
  background:var(--surface-container-lowest);border-radius:14px;overflow:hidden;
}
.alex-info-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 16px;font-size:14px;
}
.alex-info-row+.alex-info-row{
  border-top:1px solid rgba(195,198,213,0.15);
}
.alex-info-row .k{color:var(--on-surface-variant);font-weight:500;}
.alex-info-row .v{color:var(--on-surface);font-weight:600;text-align:right;max-width:60%;}
.alex-info-row .v em{font-style:normal;color:var(--primary);font-weight:700;}
/* Tabs */
.alex-tabs{display:flex;gap:0;background:var(--surface-container-low);border-radius:12px;overflow:hidden;}
.alex-tab{
  flex:1;padding:12px;text-align:center;font-size:14px;font-weight:600;
  color:var(--on-surface-variant);cursor:pointer;transition:all 0.2s;border:none;background:none;
}
.alex-tab.on{background:var(--surface-container-lowest);color:var(--primary);}
/* Detail table */
.alex-table{
  width:100%;border-collapse:collapse;
  background:var(--surface-container-lowest);border-radius:14px;overflow:hidden;
}
.alex-table tr+tr td{border-top:1px solid rgba(195,198,213,0.15);}
.alex-table td{padding:12px 16px;font-size:13px;line-height:1.6;color:var(--on-surface);}
.alex-table td:first-child{
  width:30%;color:var(--on-surface-variant);font-weight:500;
  background:var(--surface-container-low);
}
.alex-table td em{font-style:normal;color:var(--primary);font-weight:600;}
/* Fixed bottom button */
.alex-fixed-btn{
  position:fixed;bottom:0;left:0;right:0;z-index:40;
  padding:12px 16px 28px;
  background:rgba(248,250,252,0.9);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
}
.alex-fixed-btn a,.alex-fixed-btn button{
  display:block;width:100%;max-width:640px;margin:0 auto;
  padding:16px;text-align:center;font-size:16px;font-weight:700;
  color:#fff;border:none;border-radius:14px;cursor:pointer;
  background:linear-gradient(135deg,var(--primary),var(--primary-container));
  transition:transform 0.15s;
}
.alex-fixed-btn a:active,.alex-fixed-btn button:active{transform:scale(0.98);}
.alex-fixed-btn a.disabled{background:#94a3b8;cursor:default;}

/* ===== Form Page ===== */
.alex-form-summary{
  background:linear-gradient(135deg,var(--primary),var(--primary-container));
  border-radius:16px;padding:24px;color:#fff;
  display:grid;grid-template-columns:1fr 1fr;gap:16px;
}
.alex-form-summary-item{display:flex;flex-direction:column;gap:4px;}
.alex-form-summary-label{font-size:12px;opacity:0.8;font-weight:500;}
.alex-form-summary-val{font-family:'Noto Serif',serif;font-size:22px;font-weight:900;}
.alex-form-group{
  background:var(--surface-container-lowest);border-radius:14px;
  overflow:hidden;
}
.alex-form-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:16px;font-size:14px;
}
.alex-form-row+.alex-form-row{border-top:1px solid rgba(195,198,213,0.15);}
.alex-form-row .label{color:var(--on-surface-variant);font-weight:500;flex-shrink:0;}
.alex-form-row .value{
  color:var(--on-surface);font-weight:600;text-align:right;
}
.alex-form-row .value em{font-style:normal;color:var(--primary);font-weight:700;}
.alex-form-row .value .hint{font-size:12px;color:var(--outline);font-weight:400;}
/* Amount stepper */
.alex-stepper{
  display:flex;align-items:center;gap:0;
  background:var(--surface-container-low);border-radius:12px;overflow:hidden;
}
.alex-stepper-btn{
  width:44px;height:44px;display:flex;align-items:center;justify-content:center;
  font-size:20px;font-weight:700;color:var(--primary);
  background:none;border:none;cursor:pointer;transition:background 0.15s;
}
.alex-stepper-btn:hover{background:var(--surface-container);}
.alex-stepper input{
  width:100px;height:44px;text-align:center;border:none;
  font-family:'Noto Serif',serif;font-size:18px;font-weight:700;
  color:var(--on-surface);background:transparent;
}
/* Password input */
.alex-pwd-input{
  width:160px;height:44px;padding:0 14px;text-align:right;
  font-size:14px;color:var(--on-surface);
  background:var(--surface-dim);border:2px solid transparent;
  border-radius:10px;transition:border-color 0.2s,background 0.2s;
}
.alex-pwd-input:focus{border-color:var(--primary);background:var(--surface-container-lowest);}
.alex-pwd-input::placeholder{color:var(--outline-variant);}

/* ===== Calculator Page ===== */
.alex-calc-form{
  background:var(--surface-container-lowest);border-radius:16px;
  padding:24px;display:flex;flex-direction:column;gap:16px;
}
.alex-calc-logo{text-align:center;margin-bottom:8px;}
.alex-calc-logo img{height:40px;}
.alex-calc-group{display:flex;flex-direction:column;gap:6px;}
.alex-calc-label{
  font-family:'Public Sans',sans-serif;font-size:13px;
  font-weight:600;color:var(--on-surface);
}
.alex-calc-input{
  width:100%;height:48px;padding:0 16px;font-size:14px;
  color:var(--on-surface);background:var(--surface-dim);
  border:2px solid transparent;border-radius:12px;
  transition:border-color 0.2s,background 0.2s;
}
.alex-calc-input:focus{border-color:var(--primary);background:var(--surface-container-lowest);}
.alex-calc-input::placeholder{color:var(--outline-variant);}
.alex-calc-select{
  width:100%;height:48px;padding:0 12px;font-size:14px;
  color:var(--on-surface);background:var(--surface-dim);
  border:2px solid transparent;border-radius:12px;
  -webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23737784' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;
}
.alex-calc-btns{display:flex;gap:10px;margin-top:8px;}
.alex-calc-btns .alex-cta{flex:1;}
.alex-calc-result{
  background:var(--surface-container-lowest);border-radius:16px;
  padding:20px;display:none;
}
.alex-calc-result.show{display:block;}
.alex-calc-result ul{display:flex;flex-direction:column;gap:0;}
.alex-calc-result li{
  display:flex;justify-content:space-between;padding:12px 0;
  font-size:14px;border-bottom:1px solid rgba(195,198,213,0.15);
}
.alex-calc-result li:last-child{border-bottom:none;}
.alex-calc-result li .k{color:var(--on-surface-variant);}
.alex-calc-result li .v{font-weight:700;color:var(--primary);}

/* ===== Toast / Msg (通用) ===== */
.alex-msg-overlay{
  display:none;position:fixed;inset:0;z-index:10000;
  background:rgba(26,28,32,0.4);backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  justify-content:center;align-items:center;
}
.alex-msg-overlay.show{display:flex;}
.alex-msg{
  width:85%;max-width:320px;background:var(--surface-container-lowest);
  border-radius:16px;overflow:hidden;
  box-shadow:0 24px 48px rgba(26,28,32,0.1);
  animation:alexMsgIn 0.3s cubic-bezier(0.16,1,0.3,1);
}
@keyframes alexMsgIn{from{transform:scale(0.9);opacity:0;}to{transform:scale(1);opacity:1;}}
.alex-msg-title{
  padding:16px 20px;font-family:'Public Sans',sans-serif;
  font-weight:600;font-size:14px;color:var(--on-primary);
  background:linear-gradient(135deg,var(--primary),#3a7ae8);
}
.alex-msg-content{padding:20px;font-size:14px;line-height:1.6;color:var(--on-surface);}
.alex-msg-actions{padding:12px 20px;display:flex;justify-content:flex-end;gap:10px;}
.alex-msg-btn{
  padding:8px 20px;font-size:13px;font-weight:500;
  border:none;border-radius:8px;cursor:pointer;
  background:var(--primary);color:var(--on-primary);transition:opacity 0.2s;
}
.alex-msg-btn:hover{opacity:0.9;}

/* ===== Responsive ===== */
@media(max-width:375px){
  .alex-detail-title{font-size:20px;}
  .alex-detail-stat-val{font-size:18px;}
  .alex-card-body{padding:16px;}
  .alex-form-summary-val{font-size:18px;}
}
