*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
--primary:#1a56db;
--primary-dark:#1240a8;
--primary-light:#3b82f6;
--accent:#7c3aed;
--text:#1e293b;
--text-mid:#64748b;
--text-light:#94a3b8;
--bg:#f1f5f9;
--bg-card:#f8fafc;
--border:#e2e8f0;
--input-border:#cbd5e1;
--font:'Inter',system-ui,-apple-system,sans-serif;
--font-serif:'DM Serif Display',Georgia,serif;
--radius:8px;
--transition:.2s ease
}
html{-webkit-font-smoothing:antialiased}
body{font-family:var(--font);color:var(--text);line-height:1.6;background:var(--bg);min-height:100vh;display:flex;flex-direction:column}

a{text-decoration:none;color:var(--primary);transition:color var(--transition)}
a:hover{color:var(--primary-dark)}

.p-header{background:#fff;border-bottom:1px solid var(--border);padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between}
.p-logo{display:flex;align-items:center;gap:9px}
.p-logo-mark{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--primary);border-radius:8px}
.p-logo-text{font-family:var(--font);font-size:1.15rem;font-weight:700;color:var(--text)}
.p-logo-text span{font-weight:400;color:var(--primary)}
.p-header-links{display:flex;gap:16px;font-size:.82rem}
.p-header-links a{color:var(--text-mid);font-weight:500}
.p-header-links a:hover{color:var(--primary)}

.p-banner{width:100%;max-height:220px;overflow:hidden}
.p-banner-placeholder{width:100%;height:220px;background:var(--primary-dark);position:relative;overflow:hidden}
.p-banner-placeholder::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,rgba(124,58,237,.35) 0%,transparent 60%),radial-gradient(ellipse at 80% 30%,rgba(26,86,219,.4) 0%,transparent 50%)}
.p-banner-placeholder::after{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg width='48' height='48' viewBox='0 0 48 48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h48v48H0z' fill='none'/%3E%3Cpath d='M0 48V0h48' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='1'/%3E%3C/svg%3E");opacity:.8}

.p-main{flex:1;max-width:1040px;width:100%;margin:0 auto;padding:32px 24px}
.p-grid{display:grid;grid-template-columns:1fr 340px;gap:28px;align-items:start}

.p-welcome h1{font-family:var(--font-serif);font-size:1.8rem;color:var(--primary-dark);margin-bottom:6px}
.p-welcome p{color:var(--text-mid);margin-bottom:24px;font-size:.95rem}

.p-card{background:var(--bg-card);border-radius:16px;padding:28px 32px}
.p-card h2{font-family:var(--font-serif);font-size:1.3rem;color:var(--primary-dark);margin-bottom:4px}
.p-card .req{font-size:.78rem;color:var(--text-light);margin-bottom:20px}

.p-field{margin-bottom:18px}
.p-field label{display:block;font-size:.84rem;font-weight:600;color:var(--text);margin-bottom:5px}
.p-field input,.p-field select{width:100%;padding:10px 13px;border:1px solid var(--input-border);border-radius:3px;font-family:var(--font);font-size:.88rem;color:var(--text);background:#fff;transition:border-color var(--transition)}
.p-field input:focus,.p-field select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(26,86,219,.08)}
.p-field-link{display:block;font-size:.78rem;margin-top:5px;color:var(--primary)}
.p-field-link:hover{color:var(--primary-dark)}

.p-pw-wrap{position:relative}
.p-pw-wrap input{padding-right:40px}
.p-pw-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-light);padding:4px;transition:color var(--transition)}
.p-pw-toggle:hover{color:var(--text)}

.p-btn{display:block;width:100%;padding:12px;background:var(--primary);color:#fff;border:2px solid var(--primary);border-radius:5px;font-family:var(--font);font-size:.88rem;font-weight:600;cursor:pointer;transition:all var(--transition);margin-top:6px}
.p-btn:hover{background:#fff;color:var(--primary)}

.p-divider{display:flex;align-items:center;gap:14px;margin:20px 0;font-size:.78rem;color:var(--text-light)}
.p-divider::before,.p-divider::after{content:'';flex:1;height:1px;background:var(--border)}

.p-sso-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px;background:#fff;color:var(--text);border:1px solid var(--border);border-radius:5px;font-family:var(--font);font-size:.84rem;font-weight:500;cursor:pointer;transition:all var(--transition)}
.p-sso-btn:hover{border-color:var(--text-light);background:var(--bg)}

.p-side-card{background:var(--bg-card);border-radius:16px;padding:24px 28px;margin-bottom:16px}
.p-side-card h3{font-size:1.05rem;font-weight:700;color:var(--text);margin-bottom:8px}
.p-side-card p{font-size:.85rem;color:var(--text-mid);line-height:1.55;margin-bottom:14px}
.p-side-btn{display:block;width:100%;padding:10px;background:#dbeafe;color:var(--primary);border:2px solid #dbeafe;border-radius:5px;font-family:var(--font);font-size:.84rem;font-weight:600;cursor:pointer;text-align:center;transition:all var(--transition)}
.p-side-btn:hover{background:#fff;border-color:#dbeafe}

.p-notice{background:#fef2f2;border-left:4px solid #dc2626;border-radius:0 var(--radius) var(--radius) 0;padding:14px 18px;margin-bottom:20px;font-size:.84rem;color:#7f1d1d;line-height:1.5}
.p-notice strong{display:block;margin-bottom:2px}

.p-footer{background:#1e293b;color:rgba(255,255,255,.65);padding:20px 24px;font-size:.76rem;margin-top:auto}
.p-footer .wrap{max-width:1040px;margin:0 auto}
.p-ft-links{display:flex;gap:16px;margin-bottom:8px;flex-wrap:wrap}
.p-ft-links a{color:rgba(255,255,255,.65)}
.p-ft-links a:hover{color:#fff}
.p-ft-legal{line-height:1.6;opacity:.7}

@media(max-width:768px){
.p-grid{grid-template-columns:1fr}
.p-banner-placeholder{height:140px}
.p-welcome h1{font-size:1.4rem}
}
@media(max-width:480px){
.p-header{padding:0 16px}
.p-main{padding:20px 16px}
}
