:root{--bg-top: #f6f8fc;--bg-bottom: #e8eef7;--surface: rgba(255, 255, 255, .86);--surface-strong: rgba(255, 255, 255, .96);--surface-soft: rgba(247, 250, 255, .78);--line: rgba(14, 30, 52, .08);--line-strong: rgba(14, 30, 52, .14);--text: #102033;--text-dim: #5d6f86;--brand: #1966e5;--brand-strong: #0f4fb8;--brand-soft: #edf4ff;--ok: #11845f;--ok-soft: #edf9f3;--warn: #a76b00;--warn-soft: #fff6e6;--danger: #c6344d;--danger-soft: #fff1f4;--shadow-lg: 0 24px 60px rgba(28, 50, 84, .12);--shadow-md: 0 12px 32px rgba(28, 50, 84, .08);--shadow-sm: 0 4px 14px rgba(28, 50, 84, .06);--radius-xl: 26px;--radius-lg: 18px;--radius-md: 14px;--radius-sm: 10px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;min-height:100%}body{font-family:SF Pro Display,SF Pro Text,PingFang SC,Noto Sans SC,sans-serif;color:var(--text);background:radial-gradient(circle at top left,rgba(78,152,255,.16),transparent 26%),radial-gradient(circle at right 12% top 12%,rgba(109,208,173,.18),transparent 22%),linear-gradient(160deg,var(--bg-top) 0%,var(--bg-bottom) 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}body:before,body:after{content:"";position:fixed;border-radius:999px;filter:blur(48px);pointer-events:none;z-index:0}body:before{width:320px;height:320px;left:-120px;top:48px;background:#74b5ff3d}body:after{width:260px;height:260px;right:-96px;bottom:48px;background:#72d7bc33}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,.hero-btn,.secondary-btn,.outline-btn,.tab,.segment{border:1px solid transparent;border-radius:12px;padding:11px 14px;font-weight:600;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease}button:disabled,.hero-btn:disabled,.secondary-btn:disabled,.outline-btn:disabled,.tab:disabled,.segment:disabled{opacity:.62;cursor:not-allowed;transform:none;box-shadow:none}button:hover:enabled,.hero-btn:hover:enabled,.secondary-btn:hover:enabled,.outline-btn:hover:enabled,.tab:hover:enabled,.segment:hover:enabled{transform:translateY(-1px)}input,select,textarea{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#ffffffe6;color:var(--text);box-shadow:inset 0 1px #fff6}input:focus,select:focus,textarea:focus{outline:none;border-color:#1966e557;box-shadow:0 0 0 4px #1966e51f}textarea{resize:vertical}label{display:grid;gap:8px;color:var(--text-dim);font-size:13px}h1,h2,h3,p{margin:0}.section-kicker{display:inline-flex;align-items:center;gap:6px;margin-bottom:10px;padding:4px 10px;border-radius:999px;background:var(--brand-soft);border:1px solid rgba(25,102,229,.14);color:var(--brand);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.section-copy{color:var(--text-dim);line-height:1.65}.portal-shell,.app-loading-shell,.login-shell{position:relative;z-index:1;width:min(1320px,calc(100% - 28px));margin:0 auto;padding:24px 0 40px}.app-loading-shell,.login-shell{min-height:100vh;display:grid;align-items:center}.portal-hero,.auth-hero-card,.loading-card,.page-panel,.hero-sidecard,.auth-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.portal-hero,.auth-hero-card{border-radius:var(--radius-xl);padding:26px}.portal-hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,.9fr);gap:18px;margin-bottom:16px}.hero-copy h1,.auth-copy h1,.loading-card h1{font-size:clamp(2rem,3vw,3rem);line-height:1.08;margin-bottom:12px}.hero-badges,.auth-highlight-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.hero-badges span,.auth-highlight-list span{padding:8px 12px;border-radius:999px;background:#ffffffc2;border:1px solid rgba(16,32,51,.08);box-shadow:var(--shadow-sm);color:var(--text-dim);font-size:13px}.hero-sidecard,.auth-card,.loading-card{border-radius:var(--radius-lg);padding:20px}.hero-sidecard{display:grid;align-content:space-between;gap:16px;background:linear-gradient(180deg,#fffffffa,#f7faffe6)}.hero-sidecard h2,.auth-card-header h2,.page-header h2{margin-bottom:6px;font-size:1.38rem}.hero-actions{display:grid;gap:10px}.page-panel{border-radius:var(--radius-xl);padding:22px}.page-header,.panel-subheader{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.page-header{margin-bottom:18px}.panel-subheader{margin:22px 0 14px}.tab-row{display:flex;flex-wrap:wrap;gap:10px}.shell-tabs{margin-bottom:16px}.tab{background:#ffffffc2;border-color:#10203314;color:var(--text-dim);box-shadow:var(--shadow-sm)}.tab.active,.hero-btn,button:not(.outline-btn):not(.tab):not(.segment):not(.secondary-btn){color:#fff;border-color:#1055c52e;background:linear-gradient(180deg,#2b7af0,#1458ca);box-shadow:0 10px 24px #1458ca42}.secondary-btn{color:var(--brand-strong);background:#ffffffe0;border-color:#1966e529;box-shadow:var(--shadow-sm)}.outline-btn,.segment{color:var(--brand-strong);background:#fffc;border-color:#1966e52e}.segment.active{background:var(--brand-soft);border-color:#1966e538;color:var(--brand)}.ghost-link{color:var(--brand-strong);font-size:13px;text-align:center}.text-link-btn{display:inline-flex;align-items:center;justify-content:center}.segmented-control{display:inline-flex;flex-wrap:wrap;gap:8px}.content-stack{display:grid;gap:16px}.toolbar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.gallery-toolbar{margin-bottom:16px}.photo-grid,.review-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.photo-card,.review-card,.profile-card,.result-card{border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface-strong);box-shadow:var(--shadow-md)}.photo-card,.review-card,.profile-card{padding:12px;display:grid;gap:10px}.profile-card.elevated{background:linear-gradient(180deg,#fffffffa,#f1f7fff0)}.card-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.card-body{display:grid;gap:6px}.photo-preview{width:100%;aspect-ratio:16 / 10;object-fit:cover;border-radius:14px;border:1px solid rgba(16,32,51,.08);background:linear-gradient(180deg,#eef3fb,#e2ebf7)}.photo-preview-empty{display:grid;place-items:center;color:var(--text-dim);font-size:12px}.status-pill{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;border:1px solid #a9c2ea;background:#edf4ff;color:#3565a3;font-size:12px;font-weight:700}.status-published{border-color:#11845f2e;background:var(--ok-soft);color:var(--ok)}.status-pending,.status-change{border-color:#a76b002e;background:var(--warn-soft);color:var(--warn)}.status-draft,.status-archived{border-color:#5d6f862e;background:#f0f4f8eb;color:#607181}.status-rejected{border-color:#c6344d2e;background:var(--danger-soft);color:var(--danger)}.meta-line{color:var(--text);line-height:1.5}.meta-light{color:var(--text-dim);font-size:12px;line-height:1.55}.card-actions{display:flex;gap:10px}.danger-outline{color:var(--danger);border-color:#c6344d2e}.danger-outline:hover:enabled{background:var(--danger-soft)}.upload-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.full-span{grid-column:1 / -1}.checkbox-line{display:flex;align-items:center;gap:10px;min-height:48px}.checkbox-line input{width:auto}.quality-hint,.quality-note,.empty-note,.auth-summary{color:var(--text-dim);line-height:1.6}.quality-note{color:var(--brand-strong)}.result-card{padding:14px 16px;display:grid;gap:6px}.result-card.subtle{margin-bottom:16px;background:#ffffffb8}.result-card.success{background:var(--ok-soft);border-color:#11845f2e;color:var(--ok)}.result-action{margin-top:8px}.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.stats-grid div{padding:10px;border-radius:12px;border:1px solid rgba(16,32,51,.08);background:#ffffffd1}.stats-grid span{display:block;margin-bottom:4px;color:var(--text-dim);font-size:12px}.stats-grid strong{font-size:1.14rem}.decision-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.review-btn.approve{background:linear-gradient(180deg,#27a06b,#168157)}.review-btn.revise{background:linear-gradient(180deg,#d59635,#b67816)}.review-btn.reject{background:linear-gradient(180deg,#de5367,#be3349)}.form-error,.app-inline-error{color:var(--danger)}.auth-alert,.app-inline-error{margin:8px 0 0}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--text-dim);font-size:12px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#10203314}.auth-hero-card{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.95fr);gap:18px}.auth-card,.auth-form{display:grid;gap:12px}.auth-card-header{display:grid;gap:6px}.loading-card{max-width:620px;margin:0 auto}@media (max-width: 980px){.portal-hero,.auth-hero-card{grid-template-columns:1fr}.page-header,.panel-subheader{flex-direction:column}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 720px){.portal-shell,.app-loading-shell,.login-shell{width:min(100% - 18px,1320px);padding:16px 0 26px}.portal-hero,.auth-hero-card,.page-panel{padding:18px;border-radius:20px}.hero-copy h1,.auth-copy h1,.loading-card h1{font-size:1.72rem}.stats-grid,.decision-row,.toolbar-grid,.upload-grid{grid-template-columns:1fr}}
