:root{--bg: #fafafa;--card: #ffffff;--border: #d9d9d9;--text: #222;--muted: #666;--primary: #2563eb;--primary-hover: #1e40af;--danger: #dc2626;--success: #16a34a;--link: #1d4ed8}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Helvetica Neue,Hiragino Sans,BIZ UDPGothic,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}.app{min-height:100vh;display:flex;flex-direction:column}.header{background:var(--card);border-bottom:1px solid var(--border);padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.header h1{font-size:1.2rem;margin:0}.header a{color:var(--link);text-decoration:none;margin-left:1rem}.container{flex:1;padding:2rem;max-width:560px;margin:0 auto;width:100%}.card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:2rem;margin-bottom:1rem}h2{margin-top:0;margin-bottom:1.5rem}label{display:block;margin-bottom:1rem}label>span{display:block;font-size:.9rem;color:var(--muted);margin-bottom:.25rem}input[type=email],input[type=password],input[type=text],input[type=tel]{width:100%;padding:.6rem;border:1px solid var(--border);border-radius:4px;font-size:1rem;font-family:inherit}input:focus{outline:none;border-color:var(--primary)}button{background:var(--primary);color:#fff;border:none;padding:.7rem 1.5rem;border-radius:4px;font-size:1rem;font-family:inherit;cursor:pointer;width:100%}button:hover:not(:disabled){background:var(--primary-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:transparent;color:var(--primary);border:1px solid var(--primary)}.msg-error{background:#fee2e2;color:var(--danger);padding:.7rem 1rem;border-radius:4px;margin-bottom:1rem;font-size:.9rem}.msg-success{background:#dcfce7;color:var(--success);padding:.7rem 1rem;border-radius:4px;margin-bottom:1rem;font-size:.9rem}.msg-info{background:#dbeafe;color:var(--link);padding:.7rem 1rem;border-radius:4px;margin-bottom:1rem;font-size:.9rem}.links{text-align:center;margin-top:1rem;font-size:.9rem}.links a{color:var(--link);text-decoration:none;margin:0 .5rem}.links a:hover{text-decoration:underline}.profile dt{font-size:.85rem;color:var(--muted);margin-top:.5rem}.profile dd{margin:0;font-size:1rem}.footer{padding:1rem 2rem;text-align:center;color:var(--muted);font-size:.85rem}
